diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a1825a1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,80 @@ +# This .gitignore file should be placed at the root of your Unity project directory +# +# Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore +# +/Aimbot-PPO-MultiScene/[Ll]ibrary/ +/Aimbot-PPO-MultiScene/[Tt]emp/ +/Aimbot-PPO-MultiScene/[Oo]bj/ +/Aimbot-PPO-MultiScene/[Bb]uild/ +/Aimbot-PPO-MultiScene/[Bb]uilds/ +/Aimbot-PPO-MultiScene/[Ll]ogs/ +/Aimbot-PPO-MultiScene/[Uu]ser[Ss]ettings/ + +# MemoryCaptures can get excessive in size. +# They also could contain extremely sensitive data +/Aimbot-PPO-MultiScene/[Mm]emoryCaptures/ + +# Recordings can get excessive in size +/Aimbot-PPO-MultiScene/[Rr]ecordings/ + +# Uncomment this line if you wish to ignore the asset store tools plugin +# /[Aa]ssets/AssetStoreTools* + +# Autogenerated Jetbrains Rider plugin +/Aimbot-PPO-MultiScene/[Aa]ssets/Plugins/Editor/JetBrains* + +# Visual Studio cache directory +.vs/ + +# Gradle cache directory +.gradle/ + +# Autogenerated VS/MD/Consulo solution and project files +ExportedObj/ +.consulo/ +*.csproj +*.unityproj +*.sln +*.suo +*.tmp +*.user +*.userprefs +*.pidb +*.booproj +*.svd +*.pdb +*.mdb +*.opendb +*.VC.db + +# Unity3D generated meta files +*.pidb.meta +*.pdb.meta +*.mdb.meta + +# Unity3D generated file on crash reports +sysinfo.txt + +# Builds +*.apk +*.aab +*.unitypackage +*.app + +# Crashlytics generated file +crashlytics-build.properties + +# Packed Addressables +/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* + +# Temporary auto-generated Android Assets +/[Aa]ssets/[Ss]treamingAssets/aa.meta +/[Aa]ssets/[Ss]treamingAssets/aa/* + + +# Python Folder +/Aimbot-PPO-Python/.vscode/ +/Aimbot-PPO-Python/__pycache__/ +/Aimbot-PPO-Python/Backup/ +/Aimbot-PPO-Python/Build-MultiScene-WithLoad/ +/Aimbot-PPO-Python/PPO-Model \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/.vsconfig b/Aimbot-PPO-MultiScene/.vsconfig new file mode 100644 index 0000000..d70cd98 --- /dev/null +++ b/Aimbot-PPO-MultiScene/.vsconfig @@ -0,0 +1,6 @@ +{ + "version": "1.0", + "components": [ + "Microsoft.VisualStudio.Workload.ManagedGame" + ] +} diff --git a/Aimbot-PPO-MultiScene/Assets/1x20Cube.prefab b/Aimbot-PPO-MultiScene/Assets/1x20Cube.prefab new file mode 100644 index 0000000..4b14f4b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/1x20Cube.prefab @@ -0,0 +1,315 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &589623276620307787 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2549211768804229017} + - component: {fileID: 1052484998016832026} + - component: {fileID: 2381076109874992468} + - component: {fileID: 1721641481729382250} + - component: {fileID: 3332178016245946598} + m_Layer: 0 + m_Name: 1x20Cube + m_TagString: Wall + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2549211768804229017 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 589623276620307787} + 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!114 &1052484998016832026 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 589623276620307787} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8233d90336aea43098adf6dbabd606a2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_MeshFormatVersion: 1 + m_Faces: + - m_Indexes: 000000000100000002000000010000000300000002000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 040000000500000006000000050000000700000006000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 08000000090000000a000000090000000b0000000a000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 0c0000000d0000000e0000000d0000000f0000000e000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 100000001100000012000000110000001300000012000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 140000001500000016000000150000001700000016000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + m_SharedVertices: + - m_Vertices: 000000000d00000016000000 + - m_Vertices: 010000000400000017000000 + - m_Vertices: 020000000f00000010000000 + - m_Vertices: 030000000600000011000000 + - m_Vertices: 050000000800000015000000 + - m_Vertices: 070000000a00000013000000 + - m_Vertices: 090000000c00000014000000 + - m_Vertices: 0b0000000e00000012000000 + m_SharedTextures: [] + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 20, y: 0, z: 0} + - {x: 0, y: 2, z: 0} + - {x: 20, y: 2, z: 0} + - {x: 20, y: 0, z: 0} + - {x: 20, y: 0, z: -1} + - {x: 20, y: 2, z: 0} + - {x: 20, y: 2, z: -1} + - {x: 20, y: 0, z: -1} + - {x: 0, y: 0, z: -1} + - {x: 20, y: 2, z: -1} + - {x: 0, y: 2, z: -1} + - {x: 0, y: 0, z: -1} + - {x: 0, y: 0, z: 0} + - {x: 0, y: 2, z: -1} + - {x: 0, y: 2, z: 0} + - {x: 0, y: 2, z: 0} + - {x: 20, y: 2, z: 0} + - {x: 0, y: 2, z: -1} + - {x: 20, y: 2, z: -1} + - {x: 0, y: 0, z: -1} + - {x: 20, y: 0, z: -1} + - {x: 0, y: 0, z: 0} + - {x: 20, y: 0, z: 0} + m_Textures0: + - {x: 0, y: 0} + - {x: -20, y: 0} + - {x: 0, y: 2} + - {x: -20, y: 2} + - {x: 0, y: 0} + - {x: -1, y: 0} + - {x: 0, y: 2} + - {x: -1, y: 2} + - {x: 20, y: 0} + - {x: 0, y: 0} + - {x: 20, y: 2} + - {x: 0, y: 2} + - {x: 1, y: 0} + - {x: 0, y: 0} + - {x: 1, y: 2} + - {x: 0, y: 2} + - {x: 0, y: 0} + - {x: 20, y: 0} + - {x: 0, y: -1} + - {x: 20, y: -1} + - {x: 0, y: -1} + - {x: -20, y: -1} + - {x: 0, y: 0} + - {x: -20, y: 0} + m_Textures2: [] + m_Textures3: [] + m_Tangents: + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + m_Colors: [] + m_UnwrapParameters: + m_HardAngle: 88 + m_PackMargin: 20 + m_AngleError: 8 + m_AreaError: 15 + m_PreserveMeshAssetOnDestroy: 0 + assetGuid: + m_Mesh: {fileID: 0} + m_IsSelectable: 1 + m_SelectedFaces: + m_SelectedEdges: [] + m_SelectedVertices: +--- !u!23 &2381076109874992468 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 589623276620307787} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: e7fec641232aada4b9419c7ece6a7203, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 2 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1721641481729382250 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 589623276620307787} + m_Mesh: {fileID: 0} +--- !u!64 &3332178016245946598 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 589623276620307787} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 0} diff --git a/Aimbot-PPO-MultiScene/Assets/1x20Cube.prefab.meta b/Aimbot-PPO-MultiScene/Assets/1x20Cube.prefab.meta new file mode 100644 index 0000000..5f97772 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/1x20Cube.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 21c16987bc303a7479256130e9b40fbb +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/1x30Cube.prefab b/Aimbot-PPO-MultiScene/Assets/1x30Cube.prefab new file mode 100644 index 0000000..10bbe44 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/1x30Cube.prefab @@ -0,0 +1,315 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8288440288027676086 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4658081160006525512} + - component: {fileID: 7872882754437720452} + - component: {fileID: 5074690860633056340} + - component: {fileID: 1225757330756864865} + - component: {fileID: 7581380566783588035} + m_Layer: 0 + m_Name: 1x30Cube + m_TagString: Wall + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4658081160006525512 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8288440288027676086} + 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!114 &7872882754437720452 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8288440288027676086} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8233d90336aea43098adf6dbabd606a2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_MeshFormatVersion: 1 + m_Faces: + - m_Indexes: 000000000100000002000000010000000300000002000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 040000000500000006000000050000000700000006000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 08000000090000000a000000090000000b0000000a000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 0c0000000d0000000e0000000d0000000f0000000e000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 100000001100000012000000110000001300000012000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 140000001500000016000000150000001700000016000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + m_SharedVertices: + - m_Vertices: 000000000d00000016000000 + - m_Vertices: 010000000400000017000000 + - m_Vertices: 020000000f00000010000000 + - m_Vertices: 030000000600000011000000 + - m_Vertices: 050000000800000015000000 + - m_Vertices: 070000000a00000013000000 + - m_Vertices: 090000000c00000014000000 + - m_Vertices: 0b0000000e00000012000000 + m_SharedTextures: [] + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 50, y: 0, z: 0} + - {x: 0, y: 2, z: 0} + - {x: 50, y: 2, z: 0} + - {x: 50, y: 0, z: 0} + - {x: 50, y: 0, z: -1} + - {x: 50, y: 2, z: 0} + - {x: 50, y: 2, z: -1} + - {x: 50, y: 0, z: -1} + - {x: 0, y: 0, z: -1} + - {x: 50, y: 2, z: -1} + - {x: 0, y: 2, z: -1} + - {x: 0, y: 0, z: -1} + - {x: 0, y: 0, z: 0} + - {x: 0, y: 2, z: -1} + - {x: 0, y: 2, z: 0} + - {x: 0, y: 2, z: 0} + - {x: 50, y: 2, z: 0} + - {x: 0, y: 2, z: -1} + - {x: 50, y: 2, z: -1} + - {x: 0, y: 0, z: -1} + - {x: 50, y: 0, z: -1} + - {x: 0, y: 0, z: 0} + - {x: 50, y: 0, z: 0} + m_Textures0: + - {x: 0, y: 0} + - {x: -50, y: 0} + - {x: 0, y: 2} + - {x: -50, y: 2} + - {x: 0, y: 0} + - {x: -1, y: 0} + - {x: 0, y: 2} + - {x: -1, y: 2} + - {x: 50, y: 0} + - {x: 0, y: 0} + - {x: 50, y: 2} + - {x: 0, y: 2} + - {x: 1, y: 0} + - {x: 0, y: 0} + - {x: 1, y: 2} + - {x: 0, y: 2} + - {x: 0, y: 0} + - {x: 50, y: 0} + - {x: 0, y: -1} + - {x: 50, y: -1} + - {x: 0, y: -1} + - {x: -50, y: -1} + - {x: 0, y: 0} + - {x: -50, y: 0} + m_Textures2: [] + m_Textures3: [] + m_Tangents: + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + m_Colors: [] + m_UnwrapParameters: + m_HardAngle: 88 + m_PackMargin: 20 + m_AngleError: 8 + m_AreaError: 15 + m_PreserveMeshAssetOnDestroy: 0 + assetGuid: + m_Mesh: {fileID: 0} + m_IsSelectable: 1 + m_SelectedFaces: + m_SelectedEdges: [] + m_SelectedVertices: +--- !u!23 &5074690860633056340 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8288440288027676086} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: e7fec641232aada4b9419c7ece6a7203, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 2 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1225757330756864865 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8288440288027676086} + m_Mesh: {fileID: 0} +--- !u!64 &7581380566783588035 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8288440288027676086} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 0} diff --git a/Aimbot-PPO-MultiScene/Assets/1x30Cube.prefab.meta b/Aimbot-PPO-MultiScene/Assets/1x30Cube.prefab.meta new file mode 100644 index 0000000..163881e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/1x30Cube.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: db65a59014728b245830bf6269cbbfa6 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/1x5Cube.prefab b/Aimbot-PPO-MultiScene/Assets/1x5Cube.prefab new file mode 100644 index 0000000..5c18529 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/1x5Cube.prefab @@ -0,0 +1,315 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8292847989533250525 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8038673802331550199} + - component: {fileID: 5046978806096422044} + - component: {fileID: 8722606809633521714} + - component: {fileID: 5062173087561975370} + - component: {fileID: 6727079418557461791} + m_Layer: 0 + m_Name: 1x5Cube + m_TagString: Wall + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8038673802331550199 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8292847989533250525} + 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!114 &5046978806096422044 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8292847989533250525} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8233d90336aea43098adf6dbabd606a2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_MeshFormatVersion: 1 + m_Faces: + - m_Indexes: 000000000100000002000000010000000300000002000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 040000000500000006000000050000000700000006000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 08000000090000000a000000090000000b0000000a000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 0c0000000d0000000e0000000d0000000f0000000e000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 100000001100000012000000110000001300000012000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 140000001500000016000000150000001700000016000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + m_SharedVertices: + - m_Vertices: 000000000d00000016000000 + - m_Vertices: 010000000400000017000000 + - m_Vertices: 020000000f00000010000000 + - m_Vertices: 030000000600000011000000 + - m_Vertices: 050000000800000015000000 + - m_Vertices: 070000000a00000013000000 + - m_Vertices: 090000000c00000014000000 + - m_Vertices: 0b0000000e00000012000000 + m_SharedTextures: [] + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 5, y: 0, z: 0} + - {x: 0, y: 2, z: 0} + - {x: 5, y: 2, z: 0} + - {x: 5, y: 0, z: 0} + - {x: 5, y: 0, z: -1} + - {x: 5, y: 2, z: 0} + - {x: 5, y: 2, z: -1} + - {x: 5, y: 0, z: -1} + - {x: 0, y: 0, z: -1} + - {x: 5, y: 2, z: -1} + - {x: 0, y: 2, z: -1} + - {x: 0, y: 0, z: -1} + - {x: 0, y: 0, z: 0} + - {x: 0, y: 2, z: -1} + - {x: 0, y: 2, z: 0} + - {x: 0, y: 2, z: 0} + - {x: 5, y: 2, z: 0} + - {x: 0, y: 2, z: -1} + - {x: 5, y: 2, z: -1} + - {x: 0, y: 0, z: -1} + - {x: 5, y: 0, z: -1} + - {x: 0, y: 0, z: 0} + - {x: 5, y: 0, z: 0} + m_Textures0: + - {x: 0, y: 0} + - {x: -5, y: 0} + - {x: 0, y: 2} + - {x: -5, y: 2} + - {x: 0, y: 0} + - {x: -1, y: 0} + - {x: 0, y: 2} + - {x: -1, y: 2} + - {x: 5, y: 0} + - {x: 0, y: 0} + - {x: 5, y: 2} + - {x: 0, y: 2} + - {x: 1, y: 0} + - {x: 0, y: 0} + - {x: 1, y: 2} + - {x: 0, y: 2} + - {x: 0, y: 0} + - {x: 5, y: 0} + - {x: 0, y: -1} + - {x: 5, y: -1} + - {x: 0, y: -1} + - {x: -5, y: -1} + - {x: 0, y: 0} + - {x: -5, y: 0} + m_Textures2: [] + m_Textures3: [] + m_Tangents: + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + m_Colors: [] + m_UnwrapParameters: + m_HardAngle: 88 + m_PackMargin: 20 + m_AngleError: 8 + m_AreaError: 15 + m_PreserveMeshAssetOnDestroy: 0 + assetGuid: + m_Mesh: {fileID: 0} + m_IsSelectable: 1 + m_SelectedFaces: + m_SelectedEdges: [] + m_SelectedVertices: +--- !u!23 &8722606809633521714 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8292847989533250525} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: e7fec641232aada4b9419c7ece6a7203, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 2 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &5062173087561975370 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8292847989533250525} + m_Mesh: {fileID: 0} +--- !u!64 &6727079418557461791 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8292847989533250525} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 0} diff --git a/Aimbot-PPO-MultiScene/Assets/1x5Cube.prefab.meta b/Aimbot-PPO-MultiScene/Assets/1x5Cube.prefab.meta new file mode 100644 index 0000000..31c91d9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/1x5Cube.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7aa87ef090c46f54480d5e04fad6a346 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames.meta b/Aimbot-PPO-MultiScene/Assets/DelthorGames.meta new file mode 100644 index 0000000..cb3e0d2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ea4a0c3b5643c1548b189763ff2d873a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM.meta b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM.meta new file mode 100644 index 0000000..48f2c8f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 323a367237bfa884a91403ea9d5b820e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/HowToUse.txt b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/HowToUse.txt new file mode 100644 index 0000000..d372649 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/HowToUse.txt @@ -0,0 +1,4 @@ +Thank you for acquiring my asset. +A prefab is already made for you so that you can start using the asset right away, but you're also provided with all of the base files such as textures, models and materials to play around with them. +Take a look at the demo scene for some ideas. As you can see, you can move, delete and animate several parts of the gun as you like. +This weapon is made for use in FPS games, but it can also look good from other perspectives. \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/HowToUse.txt.meta b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/HowToUse.txt.meta new file mode 100644 index 0000000..9131003 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/HowToUse.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 80cfc9f5e8fbfa1458fdd439aeb9cfec +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Materials.meta b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Materials.meta new file mode 100644 index 0000000..679e22d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2fc0c700bcd28ef408769554bd2ee0fd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Materials/AKM_Mat.mat b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Materials/AKM_Mat.mat new file mode 100644 index 0000000..26cd038 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Materials/AKM_Mat.mat @@ -0,0 +1,81 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: AKM_Mat + m_Shader: {fileID: 47, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _EMISSION _METALLICGLOSSMAP _NORMALMAP _PARALLAXMAP _SPECGLOSSMAP + m_LightmapFlags: 1 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 80fda85ccf513bb448c4524e625a3b62, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 2800000, guid: c3dbe8c6e34132c4b9d8d50206d19a31, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 05694d3d0fd443d4fb8e7a3d9271a870, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 2800000, guid: 9492c443a3af7e54baa12dc95bdf7660, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 2800000, guid: 13830bcfb3a8e004d93ff25bad454c8a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 2800000, guid: 8b69847459ee14e4090c46ab5d24043a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 2800000, guid: f93e7d11111564d47a022d4640605868, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1.1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0.26041293, g: 0.41509432, b: 0.3160982, a: 1} diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Materials/AKM_Mat.mat.meta b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Materials/AKM_Mat.mat.meta new file mode 100644 index 0000000..f8a7828 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Materials/AKM_Mat.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 08d76a9e6d6712d4aa9193bdb4f6b55f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Models.meta b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Models.meta new file mode 100644 index 0000000..2e9f852 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Models.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0a2aca1c328f42747b3e0fc8ef1e2840 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Models/AKM.fbx b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Models/AKM.fbx new file mode 100644 index 0000000..c325ce0 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Models/AKM.fbx differ diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Models/AKM.fbx.meta b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Models/AKM.fbx.meta new file mode 100644 index 0000000..51cda45 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Models/AKM.fbx.meta @@ -0,0 +1,101 @@ +fileFormatVersion: 2 +guid: 99fcce1f10b2ebd4a8cd31a345f6bed8 +ModelImporter: + serializedVersion: 19300 + internalIDToNameTable: [] + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: Material + second: {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + materials: + materialImportMode: 1 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Prefabs.meta b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Prefabs.meta new file mode 100644 index 0000000..8083876 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: efa8f954d1aa0374faadfec452b7ab8f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Prefabs/AKM.prefab b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Prefabs/AKM.prefab new file mode 100644 index 0000000..07b6f16 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Prefabs/AKM.prefab @@ -0,0 +1,2863 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &79850419368877288 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8224422968836797133} + - component: {fileID: 457898379676303472} + - component: {fileID: 2129391292795838622} + m_Layer: 0 + m_Name: Circle_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8224422968836797133 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 79850419368877288} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &457898379676303472 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 79850419368877288} + m_Mesh: {fileID: 3440213568303713751, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &2129391292795838622 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 79850419368877288} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &113975541733930079 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6642604299524818536} + - component: {fileID: 3911581685421027944} + - component: {fileID: 7745293123110662163} + m_Layer: 0 + m_Name: Cylinder.000 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6642604299524818536 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 113975541733930079} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 22 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3911581685421027944 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 113975541733930079} + m_Mesh: {fileID: 7348556155622324996, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &7745293123110662163 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 113975541733930079} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &143926870381455860 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6299779328606210272} + - component: {fileID: 5540542882326151810} + - component: {fileID: 6897490099712531786} + m_Layer: 0 + m_Name: Cube.013_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6299779328606210272 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 143926870381455860} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 13 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5540542882326151810 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 143926870381455860} + m_Mesh: {fileID: -3139941974747981782, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &6897490099712531786 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 143926870381455860} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &164301141140617583 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8966801548327565977} + - component: {fileID: 3339990935256946772} + - component: {fileID: 6328728553069795705} + m_Layer: 0 + m_Name: Cube.006_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8966801548327565977 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 164301141140617583} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: 0.15559006, y: 0.4127557, z: 1.3653904} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3339990935256946772 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 164301141140617583} + m_Mesh: {fileID: 3382770850716141589, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &6328728553069795705 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 164301141140617583} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &212744310539419914 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2008978900310059458} + - component: {fileID: 2082164661430068512} + - component: {fileID: 657247084456149931} + m_Layer: 0 + m_Name: Cube.004_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2008978900310059458 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 212744310539419914} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2082164661430068512 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 212744310539419914} + m_Mesh: {fileID: -6813842297940566337, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &657247084456149931 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 212744310539419914} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &824065960568186122 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4347767577096267681} + - component: {fileID: 6739061240550240264} + - component: {fileID: 3141798787991649715} + m_Layer: 0 + m_Name: Cube.001_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4347767577096267681 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 824065960568186122} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6739061240550240264 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 824065960568186122} + m_Mesh: {fileID: 1964926367440911766, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &3141798787991649715 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 824065960568186122} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &996357954830380452 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8468384041209860943} + - component: {fileID: 7252078918206030117} + - component: {fileID: 48441705105364796} + m_Layer: 0 + m_Name: Torus.001_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8468384041209860943 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 996357954830380452} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: 0.36568335, y: 1.2728398, z: 3.6131558} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 35 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7252078918206030117 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 996357954830380452} + m_Mesh: {fileID: 7206358537197127457, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &48441705105364796 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 996357954830380452} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &1115510420516875044 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 210541914490680265} + - component: {fileID: 4755158224963961245} + - component: {fileID: 2018053934601858956} + m_Layer: 0 + m_Name: Cylinder.006_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &210541914490680265 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115510420516875044} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 28 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4755158224963961245 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115510420516875044} + m_Mesh: {fileID: -8980357973529549349, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &2018053934601858956 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115510420516875044} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &1503171321366361026 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8453648901218519321} + - component: {fileID: 2713940262985014120} + - component: {fileID: 2695465546166783642} + m_Layer: 0 + m_Name: Cylinder.009_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8453648901218519321 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1503171321366361026} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 30 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2713940262985014120 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1503171321366361026} + m_Mesh: {fileID: 287060331232230867, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &2695465546166783642 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1503171321366361026} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &1547058226378453950 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3007559860243483753} + - component: {fileID: 8528213865501554853} + - component: {fileID: 8671449237492660722} + m_Layer: 0 + m_Name: Cylinder.011_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3007559860243483753 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1547058226378453950} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 32 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8528213865501554853 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1547058226378453950} + m_Mesh: {fileID: 7280481152629387332, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &8671449237492660722 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1547058226378453950} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &1702199144745806083 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7642513192565930724} + - component: {fileID: 7057969338353993505} + - component: {fileID: 8182526869200707834} + m_Layer: 0 + m_Name: Cube.018_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7642513192565930724 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1702199144745806083} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 18 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7057969338353993505 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1702199144745806083} + m_Mesh: {fileID: -3773398725173850471, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &8182526869200707834 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1702199144745806083} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &1849399280449358554 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3774083540018477240} + - component: {fileID: 6640353871008239365} + - component: {fileID: 7020451539303760094} + m_Layer: 0 + m_Name: Cube.002_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3774083540018477240 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1849399280449358554} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6640353871008239365 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1849399280449358554} + m_Mesh: {fileID: 7848903858435477928, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &7020451539303760094 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1849399280449358554} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &2652395578182003164 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2653654740416492352} + - component: {fileID: 1049939187756412312} + - component: {fileID: 2892092142243727022} + m_Layer: 0 + m_Name: Cylinder_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2653654740416492352 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2652395578182003164} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: 0.049297333, y: 0.81470364, z: 2.4645214} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 33 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1049939187756412312 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2652395578182003164} + m_Mesh: {fileID: 1785010775391022613, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &2892092142243727022 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2652395578182003164} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &3023024702069955923 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6423360572704802893} + - component: {fileID: 687319626086027306} + - component: {fileID: 6132772750445280806} + m_Layer: 0 + m_Name: Cube.003_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6423360572704802893 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3023024702069955923} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &687319626086027306 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3023024702069955923} + m_Mesh: {fileID: 5488722605592516591, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &6132772750445280806 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3023024702069955923} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &3991073920238667950 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9213034114897854619} + - component: {fileID: 2542173387026340986} + - component: {fileID: 6313660002440138778} + m_Layer: 0 + m_Name: Cube.007_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &9213034114897854619 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3991073920238667950} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2542173387026340986 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3991073920238667950} + m_Mesh: {fileID: 5687744605115444253, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &6313660002440138778 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3991073920238667950} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &4092516151411517680 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2433373590614447653} + - component: {fileID: 1304177443078836213} + - component: {fileID: 7741112797872393515} + m_Layer: 0 + m_Name: Cube.014_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2433373590614447653 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4092516151411517680} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 14 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1304177443078836213 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4092516151411517680} + m_Mesh: {fileID: -1094834897351882323, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &7741112797872393515 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4092516151411517680} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &4177823969075763376 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3442564592934597948} + - component: {fileID: 8850373086885901873} + - component: {fileID: 6725781222391743786} + m_Layer: 0 + m_Name: Cube.010_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3442564592934597948 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4177823969075763376} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8850373086885901873 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4177823969075763376} + m_Mesh: {fileID: -160208019829609773, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &6725781222391743786 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4177823969075763376} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &4220649102806631884 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7899839600265221192} + - component: {fileID: 5053290363884013511} + - component: {fileID: 2952469748460951840} + m_Layer: 0 + m_Name: Cube.015_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7899839600265221192 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4220649102806631884} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 15 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5053290363884013511 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4220649102806631884} + m_Mesh: {fileID: 8029401347676143002, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &2952469748460951840 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4220649102806631884} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &4524238938705987281 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8116892952193606583} + - component: {fileID: 7151361175692233885} + - component: {fileID: 2552165894475672581} + m_Layer: 0 + m_Name: Cube.016_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8116892952193606583 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4524238938705987281} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 16 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7151361175692233885 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4524238938705987281} + m_Mesh: {fileID: 7170122609824211509, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &2552165894475672581 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4524238938705987281} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &4890362083569023165 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2471955279596499269} + - component: {fileID: 4690915706807841469} + - component: {fileID: 8572883710204071564} + m_Layer: 0 + m_Name: Cube.008_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2471955279596499269 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4890362083569023165} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4690915706807841469 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4890362083569023165} + m_Mesh: {fileID: -1813769483251343583, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &8572883710204071564 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4890362083569023165} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &5049238578220961238 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 302322558764211431} + - component: {fileID: 8999916506064065128} + - component: {fileID: 4413445799704405814} + m_Layer: 0 + m_Name: Cylinder.002_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &302322558764211431 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5049238578220961238} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 24 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8999916506064065128 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5049238578220961238} + m_Mesh: {fileID: 8684665421547244038, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &4413445799704405814 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5049238578220961238} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &5193829057098413167 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5947236105920015251} + - component: {fileID: 8402319454488250940} + - component: {fileID: 4817789729902833475} + m_Layer: 0 + m_Name: Cylinder.004_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5947236105920015251 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5193829057098413167} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 26 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8402319454488250940 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5193829057098413167} + m_Mesh: {fileID: 2619653575200246064, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &4817789729902833475 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5193829057098413167} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &5266473752082562266 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8000872715010646414} + - component: {fileID: 4278708461927917724} + - component: {fileID: 6488047171906969860} + m_Layer: 0 + m_Name: Cylinder.007_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8000872715010646414 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5266473752082562266} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 29 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4278708461927917724 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5266473752082562266} + m_Mesh: {fileID: -8872914256712105324, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &6488047171906969860 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5266473752082562266} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &5493592423169863488 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5026014923794592220} + - component: {fileID: 4953340283288597213} + - component: {fileID: 1187022533779782909} + m_Layer: 0 + m_Name: Cylinder.001_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5026014923794592220 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5493592423169863488} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0.4829301, y: 1.386794, z: 3.058825} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 23 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4953340283288597213 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5493592423169863488} + m_Mesh: {fileID: 5796478305813232498, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &1187022533779782909 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5493592423169863488} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &5675382093180839472 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7746749889290149607} + - component: {fileID: 5777007598879584050} + - component: {fileID: 5364275191098126652} + m_Layer: 0 + m_Name: Cylinder.003_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7746749889290149607 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5675382093180839472} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 25 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5777007598879584050 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5675382093180839472} + m_Mesh: {fileID: 1022286299411585782, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &5364275191098126652 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5675382093180839472} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &5758171482012678490 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9114950995152499573} + - component: {fileID: 4215617234736373070} + - component: {fileID: 8890033653978377072} + m_Layer: 0 + m_Name: Cylinder.005_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &9114950995152499573 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5758171482012678490} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 27 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4215617234736373070 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5758171482012678490} + m_Mesh: {fileID: -3715088358359381335, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &8890033653978377072 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5758171482012678490} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &5996691997195503095 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5859376232934871885} + - component: {fileID: 1202529934473602757} + - component: {fileID: 487779855466542040} + m_Layer: 0 + m_Name: Cube.020_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5859376232934871885 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5996691997195503095} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 20 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1202529934473602757 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5996691997195503095} + m_Mesh: {fileID: 6286744291313444990, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &487779855466542040 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5996691997195503095} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &6237750725105212004 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2913706498151224919} + - component: {fileID: 5126811988045532504} + - component: {fileID: 530858580157826525} + m_Layer: 0 + m_Name: Cube.019_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2913706498151224919 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6237750725105212004} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 19 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5126811988045532504 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6237750725105212004} + m_Mesh: {fileID: -5124059043551020927, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &530858580157826525 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6237750725105212004} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &6259183442245287854 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4983126124185809201} + m_Layer: 0 + m_Name: Empty.001_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4983126124185809201 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6259183442245287854} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 1.2633394, z: 0.42388362} + m_LocalScale: {x: 27.770853, y: 27.770853, z: 27.770853} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 34 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6975497155788886916 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6239359517610320279} + m_Layer: 0 + m_Name: AKM + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6239359517610320279 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6975497155788886916} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -11.74, y: 5.679755, z: -3.7217774} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8224422968836797133} + - {fileID: 4347767577096267681} + - {fileID: 3774083540018477240} + - {fileID: 6423360572704802893} + - {fileID: 2008978900310059458} + - {fileID: 2323681290285985726} + - {fileID: 8966801548327565977} + - {fileID: 9213034114897854619} + - {fileID: 2471955279596499269} + - {fileID: 4664335916671172192} + - {fileID: 3442564592934597948} + - {fileID: 5041077639692458185} + - {fileID: 6555631629283668477} + - {fileID: 6299779328606210272} + - {fileID: 2433373590614447653} + - {fileID: 7899839600265221192} + - {fileID: 8116892952193606583} + - {fileID: 4048685327547290959} + - {fileID: 7642513192565930724} + - {fileID: 2913706498151224919} + - {fileID: 5859376232934871885} + - {fileID: 2037339912105395970} + - {fileID: 6642604299524818536} + - {fileID: 5026014923794592220} + - {fileID: 302322558764211431} + - {fileID: 7746749889290149607} + - {fileID: 5947236105920015251} + - {fileID: 9114950995152499573} + - {fileID: 210541914490680265} + - {fileID: 8000872715010646414} + - {fileID: 8453648901218519321} + - {fileID: 3572485928094884022} + - {fileID: 3007559860243483753} + - {fileID: 2653654740416492352} + - {fileID: 4983126124185809201} + - {fileID: 8468384041209860943} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7024773960602722740 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3572485928094884022} + - component: {fileID: 8318487060256715812} + - component: {fileID: 8379319436055252330} + m_Layer: 0 + m_Name: Cylinder.010_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3572485928094884022 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7024773960602722740} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 31 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8318487060256715812 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7024773960602722740} + m_Mesh: {fileID: -7775485357160322779, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &8379319436055252330 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7024773960602722740} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &7423940751750724361 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5041077639692458185} + - component: {fileID: 4204225381596411471} + - component: {fileID: 7665774909833964709} + m_Layer: 0 + m_Name: Cube.011_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5041077639692458185 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7423940751750724361} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4204225381596411471 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7423940751750724361} + m_Mesh: {fileID: -8669127404902318575, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &7665774909833964709 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7423940751750724361} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &8023309497647640773 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2037339912105395970} + - component: {fileID: 3909667578766482202} + - component: {fileID: 469190940846118058} + m_Layer: 0 + m_Name: Cube_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2037339912105395970 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8023309497647640773} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 21 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3909667578766482202 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8023309497647640773} + m_Mesh: {fileID: -8126535997912153522, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &469190940846118058 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8023309497647640773} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &8304025631331651037 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6555631629283668477} + - component: {fileID: 5371756146705670669} + - component: {fileID: 5222686241233132803} + m_Layer: 0 + m_Name: Cube.012_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6555631629283668477 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8304025631331651037} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5371756146705670669 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8304025631331651037} + m_Mesh: {fileID: -1479511118752177815, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &5222686241233132803 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8304025631331651037} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &8327606860996804274 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4048685327547290959} + - component: {fileID: 1954359725985610840} + - component: {fileID: 9182295567905279338} + m_Layer: 0 + m_Name: Cube.017_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4048685327547290959 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8327606860996804274} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 17 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1954359725985610840 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8327606860996804274} + m_Mesh: {fileID: -8211673063228289779, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &9182295567905279338 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8327606860996804274} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &8568081154848059450 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4664335916671172192} + - component: {fileID: 7696886707794297777} + - component: {fileID: 7487070628141929651} + m_Layer: 0 + m_Name: Cube.009_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4664335916671172192 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8568081154848059450} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7696886707794297777 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8568081154848059450} + m_Mesh: {fileID: 1558708428209142139, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &7487070628141929651 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8568081154848059450} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &8768279491680524108 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2323681290285985726} + - component: {fileID: 7065020628692939371} + - component: {fileID: 3848160679801990381} + m_Layer: 0 + m_Name: Cube.005_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2323681290285985726 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8768279491680524108} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 6239359517610320279} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7065020628692939371 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8768279491680524108} + m_Mesh: {fileID: -7823134470834710897, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!23 &3848160679801990381 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8768279491680524108} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Prefabs/AKM.prefab.meta b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Prefabs/AKM.prefab.meta new file mode 100644 index 0000000..504ee98 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Prefabs/AKM.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 67f716418f7ba2146a845739c7782755 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Scenes.meta b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Scenes.meta new file mode 100644 index 0000000..e4f5464 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a3d8de89776a8b449ae9b47cc59e07d5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Scenes/DemoScene.unity b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Scenes/DemoScene.unity new file mode 100644 index 0000000..19d83a9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Scenes/DemoScene.unity @@ -0,0 +1,481 @@ +%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: 9 + 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.4627451, g: 0.4627451, b: 0.4627451, 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: 3 + 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: 705507994} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 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: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + 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!1001 &627692120 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 5026014923794592220, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.8242444 + objectReference: {fileID: 0} + - target: {fileID: 5026014923794592220, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000004612564 + objectReference: {fileID: 0} + - target: {fileID: 5026014923794592220, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000006714323 + objectReference: {fileID: 0} + - target: {fileID: 5026014923794592220, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.5662343 + objectReference: {fileID: 0} + - target: {fileID: 5026014923794592220, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -111.023994 + objectReference: {fileID: 0} + - target: {fileID: 5026014923794592220, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000015258789 + objectReference: {fileID: 0} + - target: {fileID: 5758171482012678490, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5996691997195503095, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6237750725105212004, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalPosition.x + value: -11.74 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalPosition.y + value: 11.43 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalPosition.z + value: -3.7217774 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6975497155788886916, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_Name + value: AKM (1) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 67f716418f7ba2146a845739c7782755, type: 3} +--- !u!1 &705507993 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 705507995} + - component: {fileID: 705507994} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &705507994 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 705507993} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 1 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &705507995 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 705507993} + m_LocalRotation: {x: 0.52402985, y: 0.4508698, z: 0.3915599, w: 0.6072808} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 16.462, y: 87.357, z: 81.355} +--- !u!1 &963194225 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 963194228} + - component: {fileID: 963194227} + - component: {fileID: 963194226} + 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 &963194226 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 963194225} + m_Enabled: 1 +--- !u!20 &963194227 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 963194225} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + 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_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &963194228 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 963194225} + m_LocalRotation: {x: -0.08156626, y: 0.6904372, z: 0.07884812, w: 0.7144413} + m_LocalPosition: {x: -25.896313, y: 5.326275, z: -3.8787189} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: -90, z: 0} +--- !u!1001 &1435553867038096636 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalPosition.x + value: -11.74 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalPosition.y + value: 5.679755 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalPosition.z + value: -3.7217774 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6239359517610320279, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6975497155788886916, guid: 67f716418f7ba2146a845739c7782755, + type: 3} + propertyPath: m_Name + value: AKM + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 67f716418f7ba2146a845739c7782755, type: 3} diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Scenes/DemoScene.unity.meta b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Scenes/DemoScene.unity.meta new file mode 100644 index 0000000..6833a9f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Scenes/DemoScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cc905de7bc1b60047a62944d7200cfc0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures.meta b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures.meta new file mode 100644 index 0000000..fb60d51 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6fd57c5383d4a3346a5aa3f0fca3ba33 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat4K_NormalOpenGLFix.png b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat4K_NormalOpenGLFix.png new file mode 100644 index 0000000..cfa4fec Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat4K_NormalOpenGLFix.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat4K_NormalOpenGLFix.png.meta b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat4K_NormalOpenGLFix.png.meta new file mode 100644 index 0000000..e68495c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat4K_NormalOpenGLFix.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 80fda85ccf513bb448c4524e625a3b62 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_AO.png b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_AO.png new file mode 100644 index 0000000..cfbcacb Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_AO.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_AO.png.meta b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_AO.png.meta new file mode 100644 index 0000000..b875b2a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_AO.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 13830bcfb3a8e004d93ff25bad454c8a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_AlbedoTransparency.png b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_AlbedoTransparency.png new file mode 100644 index 0000000..6788a1b Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_AlbedoTransparency.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_AlbedoTransparency.png.meta b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_AlbedoTransparency.png.meta new file mode 100644 index 0000000..6d2909f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_AlbedoTransparency.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 05694d3d0fd443d4fb8e7a3d9271a870 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_Emission.png b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_Emission.png new file mode 100644 index 0000000..85679ea Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_Emission.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_Emission.png.meta b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_Emission.png.meta new file mode 100644 index 0000000..265c3b6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_Emission.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: c3dbe8c6e34132c4b9d8d50206d19a31 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_Height.png b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_Height.png new file mode 100644 index 0000000..be634f5 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_Height.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_Height.png.meta b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_Height.png.meta new file mode 100644 index 0000000..938fbd9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_Height.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 8b69847459ee14e4090c46ab5d24043a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_MetallicSmoothness.png b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_MetallicSmoothness.png new file mode 100644 index 0000000..0f23bb8 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_MetallicSmoothness.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_MetallicSmoothness.png.meta b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_MetallicSmoothness.png.meta new file mode 100644 index 0000000..274209b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_MetallicSmoothness.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 9492c443a3af7e54baa12dc95bdf7660 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_Roughness.png b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_Roughness.png new file mode 100644 index 0000000..947ee53 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_Roughness.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_Roughness.png.meta b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_Roughness.png.meta new file mode 100644 index 0000000..1e35bcc --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/DelthorGames/AKM/Textures/AKMDis_Mat_Roughness.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: f93e7d11111564d47a022d4640605868 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font.meta b/Aimbot-PPO-MultiScene/Assets/Font.meta new file mode 100644 index 0000000..1ab2d81 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 191ffff14264cf949a748b676d2d2086 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode SDF.asset b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode SDF.asset new file mode 100644 index 0000000..1b8425f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode SDF.asset @@ -0,0 +1,2721 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &-4662725986004701985 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: CascadiaCode SDF Material + m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Cube: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FaceTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 52128046682858857} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OutlineTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Ambient: 0.5 + - _Bevel: 0.5 + - _BevelClamp: 0 + - _BevelOffset: 0 + - _BevelRoundness: 0 + - _BevelWidth: 0 + - _BumpFace: 0 + - _BumpOutline: 0 + - _ColorMask: 15 + - _CullMode: 0 + - _Diffuse: 0.5 + - _FaceDilate: 0 + - _FaceUVSpeedX: 0 + - _FaceUVSpeedY: 0 + - _GlowInner: 0.05 + - _GlowOffset: 0 + - _GlowOuter: 0.05 + - _GlowPower: 0.75 + - _GradientScale: 6 + - _LightAngle: 3.1416 + - _MaskSoftnessX: 0 + - _MaskSoftnessY: 0 + - _OutlineSoftness: 0 + - _OutlineUVSpeedX: 0 + - _OutlineUVSpeedY: 0 + - _OutlineWidth: 0 + - _PerspectiveFilter: 0.875 + - _Reflectivity: 10 + - _ScaleRatioA: 0.8333333 + - _ScaleRatioB: 0.6770833 + - _ScaleRatioC: 0.6770833 + - _ScaleX: 1 + - _ScaleY: 1 + - _ShaderFlags: 0 + - _Sharpness: 0 + - _SpecularPower: 2 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _TextureHeight: 512 + - _TextureWidth: 512 + - _UnderlayDilate: 0 + - _UnderlayOffsetX: 0 + - _UnderlayOffsetY: 0 + - _UnderlaySoftness: 0 + - _VertexOffsetX: 0 + - _VertexOffsetY: 0 + - _WeightBold: 0.75 + - _WeightNormal: 0 + m_Colors: + - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} + - _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0} + - _FaceColor: {r: 1, g: 1, b: 1, a: 1} + - _GlowColor: {r: 0, g: 1, b: 0, a: 0.5} + - _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767} + - _OutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5} + m_BuildTextureStacks: [] +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 71c1514a6bd24e1e882cebbe1904ce04, type: 3} + m_Name: CascadiaCode SDF + m_EditorClassIdentifier: + hashCode: -1519282621 + material: {fileID: -4662725986004701985} + materialHashCode: 363668355 + m_Version: 1.1.0 + m_SourceFontFileGUID: 979318e2cdafc0e43bfd56bb63011857 + m_SourceFontFile_EditorRef: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_SourceFontFile: {fileID: 0} + m_AtlasPopulationMode: 0 + m_FaceInfo: + m_FaceIndex: 0 + m_FamilyName: Cascadia Code + m_StyleName: Regular + m_PointSize: 70 + m_Scale: 1 + m_LineHeight: 81.34766 + m_AscentLine: 64.94141 + m_CapLine: 49 + m_MeanLine: 36 + m_Baseline: 0 + m_DescentLine: -16.40625 + m_SuperscriptOffset: 64.94141 + m_SuperscriptSize: 0.5 + m_SubscriptOffset: -16.40625 + m_SubscriptSize: 0.5 + m_UnderlineOffset: -5.126953 + m_UnderlineThickness: 3.4179688 + m_StrikethroughOffset: 14.4 + m_StrikethroughThickness: 3.4179688 + m_TabWidth: 41 + m_GlyphTable: + - m_Index: 1 + m_Metrics: + m_Width: 37.953125 + m_Height: 48.53125 + m_HorizontalBearingX: 1.53125 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 256 + m_Y: 341 + m_Width: 39 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 29 + m_Metrics: + m_Width: 33.296875 + m_Height: 48.53125 + m_HorizontalBearingX: 5.46875 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 339 + m_Y: 188 + m_Width: 34 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 30 + m_Metrics: + m_Width: 36 + m_Height: 49.90625 + m_HorizontalBearingX: 2.9375 + m_HorizontalBearingY: 49.21875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 132 + m_Y: 321 + m_Width: 37 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 37 + m_Metrics: + m_Width: 33.984375 + m_Height: 48.53125 + m_HorizontalBearingX: 4.78125 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 327 + m_Y: 66 + m_Width: 35 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 42 + m_Metrics: + m_Width: 32.125 + m_Height: 48.53125 + m_HorizontalBearingX: 5.46875 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 373 + m_Y: 66 + m_Width: 33 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 64 + m_Metrics: + m_Width: 32.125 + m_Height: 48.53125 + m_HorizontalBearingX: 6.15625 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 416 + m_Y: 6 + m_Width: 33 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 66 + m_Metrics: + m_Width: 36.03125 + m_Height: 49.90625 + m_HorizontalBearingX: 2.25 + m_HorizontalBearingY: 49.21875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 163 + m_Y: 383 + m_Width: 37 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 73 + m_Metrics: + m_Width: 31.453125 + m_Height: 48.53125 + m_HorizontalBearingX: 4.78125 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 416 + m_Y: 126 + m_Width: 33 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 78 + m_Metrics: + m_Width: 29.53125 + m_Height: 48.53125 + m_HorizontalBearingX: 5.75 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 414 + m_Y: 395 + m_Width: 31 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 93 + m_Metrics: + m_Width: 33.359375 + m_Height: 49.21875 + m_HorizontalBearingX: 2.9375 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 259 + m_Y: 68 + m_Width: 35 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 96 + m_Metrics: + m_Width: 34.59375 + m_Height: 48.53125 + m_HorizontalBearingX: 5.125 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 370 + m_Y: 6 + m_Width: 35 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 101 + m_Metrics: + m_Width: 32.125 + m_Height: 48.53125 + m_HorizontalBearingX: 5.46875 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 416 + m_Y: 186 + m_Width: 33 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 111 + m_Metrics: + m_Width: 32.265625 + m_Height: 48.53125 + m_HorizontalBearingX: 4.375 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 416 + m_Y: 246 + m_Width: 33 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 112 + m_Metrics: + m_Width: 30.890625 + m_Height: 48.53125 + m_HorizontalBearingX: 5.0625 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 416 + m_Y: 455 + m_Width: 31 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 120 + m_Metrics: + m_Width: 35.828125 + m_Height: 49.90625 + m_HorizontalBearingX: 2.59375 + m_HorizontalBearingY: 49.21875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 176 + m_Y: 445 + m_Width: 37 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 149 + m_Metrics: + m_Width: 32.8125 + m_Height: 48.53125 + m_HorizontalBearingX: 5.46875 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 353 + m_Y: 126 + m_Width: 34 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 151 + m_Metrics: + m_Width: 35.828125 + m_Height: 64.9375 + m_HorizontalBearingX: 2.59375 + m_HorizontalBearingY: 49.21875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 26 + m_Y: 88 + m_Width: 37 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 152 + m_Metrics: + m_Width: 34.25 + m_Height: 48.53125 + m_HorizontalBearingX: 4.78125 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 292 + m_Y: 190 + m_Width: 36 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 157 + m_Metrics: + m_Width: 31.859375 + m_Height: 49.90625 + m_HorizontalBearingX: 4.40625 + m_HorizontalBearingY: 49.21875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 180 + m_Y: 286 + m_Width: 33 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 166 + m_Metrics: + m_Width: 35.546875 + m_Height: 48.53125 + m_HorizontalBearingX: 2.734375 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 324 + m_Y: 396 + m_Width: 37 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 173 + m_Metrics: + m_Width: 31.453125 + m_Height: 49.21875 + m_HorizontalBearingX: 4.78125 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 263 + m_Y: 129 + m_Width: 33 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 193 + m_Metrics: + m_Width: 37.953125 + m_Height: 48.53125 + m_HorizontalBearingX: 1.53125 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 269 + m_Y: 276 + m_Width: 39 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 197 + m_Metrics: + m_Width: 39.640625 + m_Height: 48.53125 + m_HorizontalBearingX: 0.6875 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 318 + m_Y: 6 + m_Width: 41 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 202 + m_Metrics: + m_Width: 36.578125 + m_Height: 48.53125 + m_HorizontalBearingX: 2.21875 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 368 + m_Y: 456 + m_Width: 37 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 203 + m_Metrics: + m_Width: 39.296875 + m_Height: 48.53125 + m_HorizontalBearingX: 0.859375 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 224 + m_Y: 409 + m_Width: 41 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 212 + m_Metrics: + m_Width: 31.453125 + m_Height: 48.53125 + m_HorizontalBearingX: 5.125 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 417 + m_Y: 66 + m_Width: 32 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 225 + m_Metrics: + m_Width: 36.296875 + m_Height: 37.265625 + m_HorizontalBearingX: 3.28125 + m_HorizontalBearingY: 36.578125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 128 + m_Y: 460 + m_Width: 37 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 252 + m_Metrics: + m_Width: 31.984375 + m_Height: 51.953125 + m_HorizontalBearingX: 5.578125 + m_HorizontalBearingY: 51.265625 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 88 + m_Y: 163 + m_Width: 33 + m_Height: 53 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 253 + m_Metrics: + m_Width: 32.84375 + m_Height: 37.609375 + m_HorizontalBearingX: 4.65625 + m_HorizontalBearingY: 36.921875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 354 + m_Y: 346 + m_Width: 34 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 259 + m_Metrics: + m_Width: 32 + m_Height: 51.953125 + m_HorizontalBearingX: 3.28125 + m_HorizontalBearingY: 51.265625 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 87 + m_Y: 6 + m_Width: 33 + m_Height: 53 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 264 + m_Metrics: + m_Width: 31.71875 + m_Height: 37.609375 + m_HorizontalBearingX: 4.3125 + m_HorizontalBearingY: 36.921875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 372 + m_Y: 248 + m_Width: 33 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 287 + m_Metrics: + m_Width: 36.09375 + m_Height: 51.953125 + m_HorizontalBearingX: 2.328125 + m_HorizontalBearingY: 51.953125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 175 + m_Y: 6 + m_Width: 37 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 288 + m_Metrics: + m_Width: 32 + m_Height: 53.265625 + m_HorizontalBearingX: 3.28125 + m_HorizontalBearingY: 36.921875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 44 + m_Y: 165 + m_Width: 33 + m_Height: 54 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 298 + m_Metrics: + m_Width: 29.53125 + m_Height: 51.265625 + m_HorizontalBearingX: 5.75 + m_HorizontalBearingY: 51.265625 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 132 + m_Y: 161 + m_Width: 31 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 303 + m_Metrics: + m_Width: 32.203125 + m_Height: 52.09375 + m_HorizontalBearingX: 5.46875 + m_HorizontalBearingY: 52.09375 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 119 + m_Y: 70 + m_Width: 33 + m_Height: 53 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 318 + m_Metrics: + m_Width: 25.21875 + m_Height: 68.5 + m_HorizontalBearingX: 5.8125 + m_HorizontalBearingY: 52.09375 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 6 + m_Y: 170 + m_Width: 27 + m_Height: 70 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 323 + m_Metrics: + m_Width: 33.5 + m_Height: 51.265625 + m_HorizontalBearingX: 5.46875 + m_HorizontalBearingY: 51.265625 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 90 + m_Y: 227 + m_Width: 34 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 328 + m_Metrics: + m_Width: 33.359375 + m_Height: 51.953125 + m_HorizontalBearingX: 3.34375 + m_HorizontalBearingY: 51.265625 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 74 + m_Y: 81 + m_Width: 34 + m_Height: 53 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 340 + m_Metrics: + m_Width: 33.359375 + m_Height: 36.921875 + m_HorizontalBearingX: 3.828125 + m_HorizontalBearingY: 36.921875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 460 + m_Y: 102 + m_Width: 35 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 341 + m_Metrics: + m_Width: 29.53125 + m_Height: 36.921875 + m_HorizontalBearingX: 5.75 + m_HorizontalBearingY: 36.921875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 441 + m_Y: 335 + m_Width: 31 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 350 + m_Metrics: + m_Width: 31.71875 + m_Height: 37.609375 + m_HorizontalBearingX: 4.65625 + m_HorizontalBearingY: 36.921875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 372 + m_Y: 297 + m_Width: 33 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 379 + m_Metrics: + m_Width: 31.984375 + m_Height: 52.640625 + m_HorizontalBearingX: 5.75 + m_HorizontalBearingY: 36.921875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 131 + m_Y: 6 + m_Width: 33 + m_Height: 53 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 381 + m_Metrics: + m_Width: 32 + m_Height: 52.640625 + m_HorizontalBearingX: 3.28125 + m_HorizontalBearingY: 36.921875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 163 + m_Y: 70 + m_Width: 33 + m_Height: 53 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 382 + m_Metrics: + m_Width: 36.640625 + m_Height: 36.921875 + m_HorizontalBearingX: 2.734375 + m_HorizontalBearingY: 36.921875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 224 + m_Y: 469 + m_Width: 38 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 387 + m_Metrics: + m_Width: 30.359375 + m_Height: 37.609375 + m_HorizontalBearingX: 5.328125 + m_HorizontalBearingY: 36.921875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 399 + m_Y: 346 + m_Width: 31 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 396 + m_Metrics: + m_Width: 34.1875 + m_Height: 47.859375 + m_HorizontalBearingX: 2.390625 + m_HorizontalBearingY: 47.171875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 319 + m_Y: 250 + m_Width: 35 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 402 + m_Metrics: + m_Width: 34.25 + m_Height: 36.921875 + m_HorizontalBearingX: 4.984375 + m_HorizontalBearingY: 36.234375 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 321 + m_Y: 461 + m_Width: 36 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 422 + m_Metrics: + m_Width: 35.546875 + m_Height: 36.234375 + m_HorizontalBearingX: 2.734375 + m_HorizontalBearingY: 36.234375 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 273 + m_Y: 469 + m_Width: 37 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 425 + m_Metrics: + m_Width: 36.234375 + m_Height: 36.234375 + m_HorizontalBearingX: 2.390625 + m_HorizontalBearingY: 36.234375 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 460 + m_Y: 6 + m_Width: 37 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 430 + m_Metrics: + m_Width: 33.765625 + m_Height: 36.234375 + m_HorizontalBearingX: 3.625 + m_HorizontalBearingY: 36.234375 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 460 + m_Y: 150 + m_Width: 35 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 431 + m_Metrics: + m_Width: 36.234375 + m_Height: 52.640625 + m_HorizontalBearingX: 1.875 + m_HorizontalBearingY: 36.234375 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 114 + m_Y: 395 + m_Width: 38 + m_Height: 54 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 440 + m_Metrics: + m_Width: 29.796875 + m_Height: 36.234375 + m_HorizontalBearingX: 5.609375 + m_HorizontalBearingY: 36.234375 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 458 + m_Y: 429 + m_Width: 31 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1732 + m_Metrics: + m_Width: 33.078125 + m_Height: 49.90625 + m_HorizontalBearingX: 3.96875 + m_HorizontalBearingY: 49.21875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 158 + m_Y: 224 + m_Width: 35 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1733 + m_Metrics: + m_Width: 30.140625 + m_Height: 48.53125 + m_HorizontalBearingX: 5.8125 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 372 + m_Y: 395 + m_Width: 31 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1734 + m_Metrics: + m_Width: 33.15625 + m_Height: 49.21875 + m_HorizontalBearingX: 3.625 + m_HorizontalBearingY: 49.21875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 273 + m_Y: 6 + m_Width: 34 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1735 + m_Metrics: + m_Width: 31.421875 + m_Height: 49.90625 + m_HorizontalBearingX: 4.265625 + m_HorizontalBearingY: 49.21875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 204 + m_Y: 218 + m_Width: 32 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1736 + m_Metrics: + m_Width: 35.75 + m_Height: 48.53125 + m_HorizontalBearingX: 2.53125 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 276 + m_Y: 401 + m_Width: 37 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1737 + m_Metrics: + m_Width: 32.875 + m_Height: 49.21875 + m_HorizontalBearingX: 4.515625 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 211 + m_Y: 348 + m_Width: 34 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1738 + m_Metrics: + m_Width: 33.015625 + m_Height: 49.421875 + m_HorizontalBearingX: 4.375 + m_HorizontalBearingY: 48.734375 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 224 + m_Y: 280 + m_Width: 34 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1739 + m_Metrics: + m_Width: 35.609375 + m_Height: 48.53125 + m_HorizontalBearingX: 3.828125 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 306 + m_Y: 336 + m_Width: 37 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1740 + m_Metrics: + m_Width: 33.078125 + m_Height: 49.90625 + m_HorizontalBearingX: 3.96875 + m_HorizontalBearingY: 49.21875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 174 + m_Y: 156 + m_Width: 35 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1741 + m_Metrics: + m_Width: 33.015625 + m_Height: 49.421875 + m_HorizontalBearingX: 3.96875 + m_HorizontalBearingY: 48.734375 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 247 + m_Y: 215 + m_Width: 34 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1862 + m_Metrics: + m_Width: 10.109375 + m_Height: 10.125 + m_HorizontalBearingX: 15.453125 + m_HorizontalBearingY: 9.4375 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 216 + m_Y: 131 + m_Width: 11 + m_Height: 11 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1863 + m_Metrics: + m_Width: 10.671875 + m_Height: 23.59375 + m_HorizontalBearingX: 14.078125 + m_HorizontalBearingY: 8.6875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 52 + m_Y: 474 + m_Width: 11 + m_Height: 24 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1864 + m_Metrics: + m_Width: 10.109375 + m_Height: 37.609375 + m_HorizontalBearingX: 15.453125 + m_HorizontalBearingY: 36.921875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 384 + m_Y: 186 + m_Width: 11 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1865 + m_Metrics: + m_Width: 11.484375 + m_Height: 51.828125 + m_HorizontalBearingX: 14.078125 + m_HorizontalBearingY: 36.921875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 135 + m_Y: 224 + m_Width: 12 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1866 + m_Metrics: + m_Width: 38.109375 + m_Height: 10.125 + m_HorizontalBearingX: 1.453125 + m_HorizontalBearingY: 9.4375 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 166 + m_Y: 134 + m_Width: 39 + m_Height: 11 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1867 + m_Metrics: + m_Width: 10.109375 + m_Height: 49.5625 + m_HorizontalBearingX: 15.453125 + m_HorizontalBearingY: 48.875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 305 + m_Y: 67 + m_Width: 11 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1869 + m_Metrics: + m_Width: 30.421875 + m_Height: 49.90625 + m_HorizontalBearingX: 3.96875 + m_HorizontalBearingY: 49.21875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 220 + m_Y: 153 + m_Width: 32 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1873 + m_Metrics: + m_Width: 33.359375 + m_Height: 31.390625 + m_HorizontalBearingX: 3.828125 + m_HorizontalBearingY: 40.203125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 460 + m_Y: 245 + m_Width: 35 + m_Height: 33 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1875 + m_Metrics: + m_Width: 34.171875 + m_Height: 48.53125 + m_HorizontalBearingX: 3.421875 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 307 + m_Y: 128 + m_Width: 35 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1878 + m_Metrics: + m_Width: 34.734375 + m_Height: 61.53125 + m_HorizontalBearingX: 3.890625 + m_HorizontalBearingY: 55.03125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 40 + m_Y: 326 + m_Width: 36 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1879 + m_Metrics: + m_Width: 34.734375 + m_Height: 61.53125 + m_HorizontalBearingX: 2.390625 + m_HorizontalBearingY: 55.03125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 43 + m_Y: 251 + m_Width: 36 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1881 + m_Metrics: + m_Width: 25.015625 + m_Height: 62.21875 + m_HorizontalBearingX: 9.09375 + m_HorizontalBearingY: 55.375 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 40 + m_Y: 400 + m_Width: 26 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1882 + m_Metrics: + m_Width: 25.015625 + m_Height: 62.21875 + m_HorizontalBearingX: 6.90625 + m_HorizontalBearingY: 55.375 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 77 + m_Y: 400 + m_Width: 26 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1883 + m_Metrics: + m_Width: 25.296875 + m_Height: 62.890625 + m_HorizontalBearingX: 8.40625 + m_HorizontalBearingY: 55.578125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 50 + m_Y: 6 + m_Width: 26 + m_Height: 64 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1884 + m_Metrics: + m_Width: 25.296875 + m_Height: 62.890625 + m_HorizontalBearingX: 7.3125 + m_HorizontalBearingY: 55.578125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 6 + m_Y: 251 + m_Width: 26 + m_Height: 64 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1885 + m_Metrics: + m_Width: 21.390625 + m_Height: 63.15625 + m_HorizontalBearingX: 12.71875 + m_HorizontalBearingY: 55.84375 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 6 + m_Y: 326 + m_Width: 23 + m_Height: 64 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1886 + m_Metrics: + m_Width: 21.390625 + m_Height: 63.15625 + m_HorizontalBearingX: 6.90625 + m_HorizontalBearingY: 55.84375 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 6 + m_Y: 401 + m_Width: 23 + m_Height: 64 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1893 + m_Metrics: + m_Width: 34.171875 + m_Height: 6.34375 + m_HorizontalBearingX: 3.421875 + m_HorizontalBearingY: 27.40625 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 44 + m_Y: 230 + m_Width: 35 + m_Height: 7 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1900 + m_Metrics: + m_Width: 34.171875 + m_Height: 6.359375 + m_HorizontalBearingX: 3.421875 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 74 + m_Y: 145 + m_Width: 35 + m_Height: 7 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1913 + m_Metrics: + m_Width: 21.921875 + m_Height: 21.875 + m_HorizontalBearingX: 9.546875 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 74 + m_Y: 474 + m_Width: 23 + m_Height: 23 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1914 + m_Metrics: + m_Width: 7.921875 + m_Height: 21.875 + m_HorizontalBearingX: 16.546875 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 108 + m_Y: 474 + m_Width: 9 + m_Height: 23 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2013 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2014 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2025 + m_Metrics: + m_Width: 31.859375 + m_Height: 70.40625 + m_HorizontalBearingX: 4.40625 + m_HorizontalBearingY: 59.46875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 6 + m_Y: 6 + m_Width: 33 + m_Height: 71 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2058 + m_Metrics: + m_Width: 34.171875 + m_Height: 35.46875 + m_HorizontalBearingX: 3.421875 + m_HorizontalBearingY: 41.96875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 460 + m_Y: 198 + m_Width: 35 + m_Height: 36 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2062 + m_Metrics: + m_Width: 34.171875 + m_Height: 23.4375 + m_HorizontalBearingX: 3.421875 + m_HorizontalBearingY: 35.953125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 6 + m_Y: 476 + m_Width: 35 + m_Height: 24 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2064 + m_Metrics: + m_Width: 32.75 + m_Height: 33.84375 + m_HorizontalBearingX: 4.984375 + m_HorizontalBearingY: 41.15625 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 458 + m_Y: 383 + m_Width: 34 + m_Height: 35 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2065 + m_Metrics: + m_Width: 32.75 + m_Height: 33.84375 + m_HorizontalBearingX: 3.28125 + m_HorizontalBearingY: 41.15625 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 460 + m_Y: 289 + m_Width: 34 + m_Height: 35 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2070 + m_Metrics: + m_Width: 34.171875 + m_Height: 15.171875 + m_HorizontalBearingX: 3.421875 + m_HorizontalBearingY: 31.78125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 120 + m_Y: 134 + m_Width: 35 + m_Height: 16 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2072 + m_Metrics: + m_Width: 27.015625 + m_Height: 20.5 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 48.53125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 90 + m_Y: 290 + m_Width: 28 + m_Height: 21 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2084 + m_Metrics: + m_Width: 38.015625 + m_Height: 49.90625 + m_HorizontalBearingX: 1.84375 + m_HorizontalBearingY: 49.21875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 223 + m_Y: 6 + m_Width: 39 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2180 + m_Metrics: + m_Width: 35.890625 + m_Height: 35.890625 + m_HorizontalBearingX: 2.5625 + m_HorizontalBearingY: 42.21875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 460 + m_Y: 54 + m_Width: 37 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2538 + m_Metrics: + m_Width: 32.953125 + m_Height: 57.5 + m_HorizontalBearingX: 3.6875 + m_HorizontalBearingY: 49.1875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 87 + m_Y: 325 + m_Width: 34 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2539 + m_Metrics: + m_Width: 39.921875 + m_Height: 49.90625 + m_HorizontalBearingX: 1.921875 + m_HorizontalBearingY: 49.21875 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 207 + m_Y: 69 + m_Width: 41 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2550 + m_Metrics: + m_Width: 7.109375 + m_Height: 69.71875 + m_HorizontalBearingX: 16.953125 + m_HorizontalBearingY: 59.125 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 6 + m_Y: 88 + m_Width: 9 + m_Height: 71 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 3040 + m_Metrics: + m_Width: 16.78125 + m_Height: 19.140625 + m_HorizontalBearingX: 11.453125 + m_HorizontalBearingY: 55.640625 + m_HorizontalAdvance: 41.015625 + m_GlyphRect: + m_X: 129 + m_Y: 290 + m_Width: 18 + m_Height: 20 + m_Scale: 1 + m_AtlasIndex: 0 + m_CharacterTable: + - m_ElementType: 1 + m_Unicode: 32 + m_GlyphIndex: 2013 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 33 + m_GlyphIndex: 1867 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 34 + m_GlyphIndex: 1913 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 35 + m_GlyphIndex: 1875 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 36 + m_GlyphIndex: 2025 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 37 + m_GlyphIndex: 2084 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 38 + m_GlyphIndex: 2539 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 39 + m_GlyphIndex: 1914 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 40 + m_GlyphIndex: 1881 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 41 + m_GlyphIndex: 1882 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 42 + m_GlyphIndex: 1873 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 43 + m_GlyphIndex: 2058 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 44 + m_GlyphIndex: 1863 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 45 + m_GlyphIndex: 1893 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 46 + m_GlyphIndex: 1862 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 47 + m_GlyphIndex: 1878 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 48 + m_GlyphIndex: 1732 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 49 + m_GlyphIndex: 1733 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 50 + m_GlyphIndex: 1734 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 51 + m_GlyphIndex: 1735 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 52 + m_GlyphIndex: 1736 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 53 + m_GlyphIndex: 1737 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 54 + m_GlyphIndex: 1738 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 55 + m_GlyphIndex: 1739 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 56 + m_GlyphIndex: 1740 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 57 + m_GlyphIndex: 1741 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 58 + m_GlyphIndex: 1864 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 59 + m_GlyphIndex: 1865 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 60 + m_GlyphIndex: 2065 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 61 + m_GlyphIndex: 2062 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 62 + m_GlyphIndex: 2064 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 63 + m_GlyphIndex: 1869 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 64 + m_GlyphIndex: 2538 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65 + m_GlyphIndex: 1 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 66 + m_GlyphIndex: 29 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 67 + m_GlyphIndex: 30 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 68 + m_GlyphIndex: 37 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 69 + m_GlyphIndex: 42 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 70 + m_GlyphIndex: 64 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 71 + m_GlyphIndex: 66 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 72 + m_GlyphIndex: 73 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 73 + m_GlyphIndex: 78 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 74 + m_GlyphIndex: 93 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 75 + m_GlyphIndex: 96 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 76 + m_GlyphIndex: 101 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 77 + m_GlyphIndex: 111 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 78 + m_GlyphIndex: 112 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 79 + m_GlyphIndex: 120 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 80 + m_GlyphIndex: 149 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 81 + m_GlyphIndex: 151 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 82 + m_GlyphIndex: 152 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 83 + m_GlyphIndex: 157 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 84 + m_GlyphIndex: 166 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 85 + m_GlyphIndex: 173 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 86 + m_GlyphIndex: 193 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 87 + m_GlyphIndex: 197 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 88 + m_GlyphIndex: 202 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 89 + m_GlyphIndex: 203 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 90 + m_GlyphIndex: 212 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 91 + m_GlyphIndex: 1885 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 92 + m_GlyphIndex: 1879 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 93 + m_GlyphIndex: 1886 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 94 + m_GlyphIndex: 2072 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 95 + m_GlyphIndex: 1900 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 96 + m_GlyphIndex: 3040 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 97 + m_GlyphIndex: 225 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 98 + m_GlyphIndex: 252 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 99 + m_GlyphIndex: 253 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 100 + m_GlyphIndex: 259 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 101 + m_GlyphIndex: 264 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 102 + m_GlyphIndex: 287 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 103 + m_GlyphIndex: 288 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 104 + m_GlyphIndex: 298 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 105 + m_GlyphIndex: 303 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 106 + m_GlyphIndex: 318 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 107 + m_GlyphIndex: 323 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 108 + m_GlyphIndex: 328 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 109 + m_GlyphIndex: 340 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 110 + m_GlyphIndex: 341 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 111 + m_GlyphIndex: 350 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 112 + m_GlyphIndex: 379 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 113 + m_GlyphIndex: 381 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 114 + m_GlyphIndex: 382 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 115 + m_GlyphIndex: 387 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 116 + m_GlyphIndex: 396 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 117 + m_GlyphIndex: 402 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 118 + m_GlyphIndex: 422 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 119 + m_GlyphIndex: 425 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 120 + m_GlyphIndex: 430 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 121 + m_GlyphIndex: 431 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 122 + m_GlyphIndex: 440 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 123 + m_GlyphIndex: 1883 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 124 + m_GlyphIndex: 2550 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 125 + m_GlyphIndex: 1884 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 126 + m_GlyphIndex: 2070 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 160 + m_GlyphIndex: 2014 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8230 + m_GlyphIndex: 1866 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 9633 + m_GlyphIndex: 2180 + m_Scale: 1 + m_AtlasTextures: + - {fileID: 52128046682858857} + m_AtlasTextureIndex: 0 + m_IsMultiAtlasTexturesEnabled: 0 + m_ClearDynamicDataOnBuild: 0 + m_UsedGlyphRects: + - m_X: 0 + m_Y: 0 + m_Width: 44 + m_Height: 82 + - m_X: 0 + m_Y: 82 + m_Width: 20 + m_Height: 82 + - m_X: 0 + m_Y: 164 + m_Width: 38 + m_Height: 81 + - m_X: 20 + m_Y: 82 + m_Width: 48 + m_Height: 77 + - m_X: 44 + m_Y: 0 + m_Width: 37 + m_Height: 75 + - m_X: 0 + m_Y: 245 + m_Width: 37 + m_Height: 75 + - m_X: 0 + m_Y: 320 + m_Width: 34 + m_Height: 75 + - m_X: 0 + m_Y: 395 + m_Width: 34 + m_Height: 75 + - m_X: 0 + m_Y: 470 + m_Width: 46 + m_Height: 35 + - m_X: 34 + m_Y: 320 + m_Width: 47 + m_Height: 74 + - m_X: 37 + m_Y: 245 + m_Width: 47 + m_Height: 74 + - m_X: 34 + m_Y: 394 + m_Width: 37 + m_Height: 74 + - m_X: 46 + m_Y: 468 + m_Width: 22 + m_Height: 35 + - m_X: 68 + m_Y: 468 + m_Width: 34 + m_Height: 34 + - m_X: 71 + m_Y: 394 + m_Width: 37 + m_Height: 74 + - m_X: 81 + m_Y: 319 + m_Width: 45 + m_Height: 70 + - m_X: 102 + m_Y: 468 + m_Width: 20 + m_Height: 34 + - m_X: 108 + m_Y: 389 + m_Width: 49 + m_Height: 65 + - m_X: 122 + m_Y: 454 + m_Width: 48 + m_Height: 49 + - m_X: 38 + m_Y: 159 + m_Width: 44 + m_Height: 65 + - m_X: 38 + m_Y: 224 + m_Width: 46 + m_Height: 18 + - m_X: 68 + m_Y: 75 + m_Width: 45 + m_Height: 64 + - m_X: 68 + m_Y: 139 + m_Width: 46 + m_Height: 18 + - m_X: 82 + m_Y: 157 + m_Width: 44 + m_Height: 64 + - m_X: 81 + m_Y: 0 + m_Width: 44 + m_Height: 64 + - m_X: 113 + m_Y: 64 + m_Width: 44 + m_Height: 64 + - m_X: 125 + m_Y: 0 + m_Width: 44 + m_Height: 64 + - m_X: 114 + m_Y: 128 + m_Width: 46 + m_Height: 27 + - m_X: 157 + m_Y: 64 + m_Width: 44 + m_Height: 64 + - m_X: 169 + m_Y: 0 + m_Width: 48 + m_Height: 63 + - m_X: 84 + m_Y: 221 + m_Width: 45 + m_Height: 63 + - m_X: 126 + m_Y: 155 + m_Width: 42 + m_Height: 63 + - m_X: 84 + m_Y: 284 + m_Width: 39 + m_Height: 32 + - m_X: 123 + m_Y: 284 + m_Width: 29 + m_Height: 31 + - m_X: 129 + m_Y: 218 + m_Width: 23 + m_Height: 63 + - m_X: 160 + m_Y: 128 + m_Width: 50 + m_Height: 22 + - m_X: 201 + m_Y: 63 + m_Width: 52 + m_Height: 62 + - m_X: 217 + m_Y: 0 + m_Width: 50 + m_Height: 62 + - m_X: 126 + m_Y: 315 + m_Width: 48 + m_Height: 62 + - m_X: 157 + m_Y: 377 + m_Width: 48 + m_Height: 62 + - m_X: 170 + m_Y: 439 + m_Width: 48 + m_Height: 62 + - m_X: 152 + m_Y: 218 + m_Width: 46 + m_Height: 62 + - m_X: 168 + m_Y: 150 + m_Width: 46 + m_Height: 62 + - m_X: 210 + m_Y: 125 + m_Width: 22 + m_Height: 22 + - m_X: 174 + m_Y: 280 + m_Width: 44 + m_Height: 62 + - m_X: 198 + m_Y: 212 + m_Width: 43 + m_Height: 62 + - m_X: 214 + m_Y: 147 + m_Width: 43 + m_Height: 62 + - m_X: 253 + m_Y: 62 + m_Width: 46 + m_Height: 61 + - m_X: 267 + m_Y: 0 + m_Width: 45 + m_Height: 61 + - m_X: 205 + m_Y: 342 + m_Width: 45 + m_Height: 61 + - m_X: 218 + m_Y: 274 + m_Width: 45 + m_Height: 61 + - m_X: 241 + m_Y: 209 + m_Width: 45 + m_Height: 61 + - m_X: 257 + m_Y: 123 + m_Width: 44 + m_Height: 61 + - m_X: 299 + m_Y: 61 + m_Width: 22 + m_Height: 61 + - m_X: 312 + m_Y: 0 + m_Width: 52 + m_Height: 60 + - m_X: 218 + m_Y: 403 + m_Width: 52 + m_Height: 60 + - m_X: 218 + m_Y: 463 + m_Width: 49 + m_Height: 48 + - m_X: 267 + m_Y: 463 + m_Width: 48 + m_Height: 48 + - m_X: 250 + m_Y: 335 + m_Width: 50 + m_Height: 60 + - m_X: 263 + m_Y: 270 + m_Width: 50 + m_Height: 60 + - m_X: 270 + m_Y: 395 + m_Width: 48 + m_Height: 60 + - m_X: 300 + m_Y: 330 + m_Width: 48 + m_Height: 60 + - m_X: 315 + m_Y: 455 + m_Width: 47 + m_Height: 49 + - m_X: 318 + m_Y: 390 + m_Width: 48 + m_Height: 60 + - m_X: 362 + m_Y: 450 + m_Width: 48 + m_Height: 60 + - m_X: 286 + m_Y: 184 + m_Width: 47 + m_Height: 60 + - m_X: 301 + m_Y: 122 + m_Width: 46 + m_Height: 60 + - m_X: 321 + m_Y: 60 + m_Width: 46 + m_Height: 60 + - m_X: 364 + m_Y: 0 + m_Width: 46 + m_Height: 60 + - m_X: 313 + m_Y: 244 + m_Width: 46 + m_Height: 60 + - m_X: 333 + m_Y: 182 + m_Width: 45 + m_Height: 60 + - m_X: 347 + m_Y: 120 + m_Width: 45 + m_Height: 60 + - m_X: 367 + m_Y: 60 + m_Width: 44 + m_Height: 60 + - m_X: 410 + m_Y: 0 + m_Width: 44 + m_Height: 60 + - m_X: 454 + m_Y: 0 + m_Width: 48 + m_Height: 48 + - m_X: 454 + m_Y: 48 + m_Width: 48 + m_Height: 48 + - m_X: 411 + m_Y: 60 + m_Width: 43 + m_Height: 60 + - m_X: 454 + m_Y: 96 + m_Width: 46 + m_Height: 48 + - m_X: 410 + m_Y: 120 + m_Width: 44 + m_Height: 60 + - m_X: 454 + m_Y: 144 + m_Width: 46 + m_Height: 48 + - m_X: 410 + m_Y: 180 + m_Width: 44 + m_Height: 60 + - m_X: 378 + m_Y: 180 + m_Width: 22 + m_Height: 49 + - m_X: 454 + m_Y: 192 + m_Width: 46 + m_Height: 47 + - m_X: 454 + m_Y: 239 + m_Width: 46 + m_Height: 44 + - m_X: 410 + m_Y: 240 + m_Width: 44 + m_Height: 60 + - m_X: 366 + m_Y: 242 + m_Width: 44 + m_Height: 49 + - m_X: 366 + m_Y: 291 + m_Width: 44 + m_Height: 49 + - m_X: 348 + m_Y: 340 + m_Width: 45 + m_Height: 49 + - m_X: 366 + m_Y: 389 + m_Width: 42 + m_Height: 60 + - m_X: 393 + m_Y: 340 + m_Width: 42 + m_Height: 49 + - m_X: 408 + m_Y: 389 + m_Width: 42 + m_Height: 60 + - m_X: 410 + m_Y: 449 + m_Width: 42 + m_Height: 60 + - m_X: 454 + m_Y: 283 + m_Width: 45 + m_Height: 46 + - m_X: 435 + m_Y: 329 + m_Width: 42 + m_Height: 48 + - m_X: 452 + m_Y: 377 + m_Width: 45 + m_Height: 46 + - m_X: 452 + m_Y: 423 + m_Width: 42 + m_Height: 48 + m_FreeGlyphRects: + - m_X: 34 + m_Y: 468 + m_Width: 12 + m_Height: 2 + - m_X: 37 + m_Y: 319 + m_Width: 44 + m_Height: 1 + - m_X: 81 + m_Y: 389 + m_Width: 27 + m_Height: 5 + - m_X: 68 + m_Y: 502 + m_Width: 54 + m_Height: 9 + - m_X: 108 + m_Y: 454 + m_Width: 14 + m_Height: 14 + - m_X: 20 + m_Y: 159 + m_Width: 18 + m_Height: 5 + - m_X: 44 + m_Y: 75 + m_Width: 24 + m_Height: 7 + - m_X: 68 + m_Y: 157 + m_Width: 14 + m_Height: 2 + - m_X: 81 + m_Y: 64 + m_Width: 32 + m_Height: 11 + - m_X: 113 + m_Y: 128 + m_Width: 1 + m_Height: 11 + - m_X: 38 + m_Y: 242 + m_Width: 46 + m_Height: 3 + - m_X: 82 + m_Y: 221 + m_Width: 2 + m_Height: 3 + - m_X: 114 + m_Y: 155 + m_Width: 12 + m_Height: 2 + - m_X: 126 + m_Y: 218 + m_Width: 3 + m_Height: 3 + - m_X: 169 + m_Y: 63 + m_Width: 32 + m_Height: 1 + - m_X: 84 + m_Y: 316 + m_Width: 42 + m_Height: 3 + - m_X: 123 + m_Y: 315 + m_Width: 3 + m_Height: 4 + - m_X: 126 + m_Y: 377 + m_Width: 31 + m_Height: 12 + - m_X: 157 + m_Y: 439 + m_Width: 13 + m_Height: 15 + - m_X: 160 + m_Y: 150 + m_Width: 8 + m_Height: 5 + - m_X: 201 + m_Y: 125 + m_Width: 9 + m_Height: 3 + - m_X: 129 + m_Y: 281 + m_Width: 45 + m_Height: 3 + - m_X: 152 + m_Y: 280 + m_Width: 22 + m_Height: 35 + - m_X: 168 + m_Y: 212 + m_Width: 30 + m_Height: 6 + - m_X: 210 + m_Y: 147 + m_Width: 4 + m_Height: 3 + - m_X: 217 + m_Y: 62 + m_Width: 36 + m_Height: 1 + - m_X: 174 + m_Y: 342 + m_Width: 31 + m_Height: 35 + - m_X: 198 + m_Y: 274 + m_Width: 20 + m_Height: 6 + - m_X: 214 + m_Y: 209 + m_Width: 27 + m_Height: 3 + - m_X: 232 + m_Y: 125 + m_Width: 25 + m_Height: 22 + - m_X: 253 + m_Y: 123 + m_Width: 4 + m_Height: 24 + - m_X: 267 + m_Y: 61 + m_Width: 32 + m_Height: 1 + - m_X: 205 + m_Y: 403 + m_Width: 13 + m_Height: 36 + - m_X: 0 + m_Y: 505 + m_Width: 218 + m_Height: 6 + - m_X: 46 + m_Y: 503 + m_Width: 172 + m_Height: 8 + - m_X: 170 + m_Y: 501 + m_Width: 48 + m_Height: 10 + - m_X: 218 + m_Y: 335 + m_Width: 32 + m_Height: 7 + - m_X: 241 + m_Y: 270 + m_Width: 22 + m_Height: 4 + - m_X: 250 + m_Y: 395 + m_Width: 20 + m_Height: 8 + - m_X: 263 + m_Y: 330 + m_Width: 37 + m_Height: 5 + - m_X: 270 + m_Y: 455 + m_Width: 45 + m_Height: 8 + - m_X: 300 + m_Y: 390 + m_Width: 18 + m_Height: 5 + - m_X: 315 + m_Y: 510 + m_Width: 196 + m_Height: 1 + - m_X: 315 + m_Y: 504 + m_Width: 47 + m_Height: 7 + - m_X: 318 + m_Y: 450 + m_Width: 44 + m_Height: 5 + - m_X: 257 + m_Y: 184 + m_Width: 29 + m_Height: 25 + - m_X: 299 + m_Y: 122 + m_Width: 2 + m_Height: 1 + - m_X: 312 + m_Y: 60 + m_Width: 9 + m_Height: 1 + - m_X: 286 + m_Y: 244 + m_Width: 27 + m_Height: 26 + - m_X: 301 + m_Y: 182 + m_Width: 32 + m_Height: 2 + - m_X: 321 + m_Y: 120 + m_Width: 26 + m_Height: 2 + - m_X: 502 + m_Y: 0 + m_Width: 9 + m_Height: 511 + - m_X: 500 + m_Y: 96 + m_Width: 11 + m_Height: 415 + - m_X: 392 + m_Y: 120 + m_Width: 18 + m_Height: 60 + - m_X: 347 + m_Y: 180 + m_Width: 31 + m_Height: 2 + - m_X: 400 + m_Y: 120 + m_Width: 10 + m_Height: 122 + - m_X: 378 + m_Y: 229 + m_Width: 32 + m_Height: 13 + - m_X: 333 + m_Y: 242 + m_Width: 33 + m_Height: 2 + - m_X: 313 + m_Y: 304 + m_Width: 53 + m_Height: 26 + - m_X: 359 + m_Y: 242 + m_Width: 7 + m_Height: 98 + - m_X: 348 + m_Y: 304 + m_Width: 18 + m_Height: 36 + - m_X: 348 + m_Y: 389 + m_Width: 18 + m_Height: 1 + - m_X: 366 + m_Y: 449 + m_Width: 44 + m_Height: 1 + - m_X: 410 + m_Y: 509 + m_Width: 101 + m_Height: 2 + - m_X: 499 + m_Y: 283 + m_Width: 12 + m_Height: 228 + - m_X: 410 + m_Y: 300 + m_Width: 44 + m_Height: 29 + - m_X: 410 + m_Y: 300 + m_Width: 25 + m_Height: 40 + - m_X: 435 + m_Y: 377 + m_Width: 17 + m_Height: 12 + - m_X: 450 + m_Y: 377 + m_Width: 2 + m_Height: 72 + - m_X: 477 + m_Y: 329 + m_Width: 34 + m_Height: 48 + - m_X: 497 + m_Y: 329 + m_Width: 14 + m_Height: 182 + - m_X: 452 + m_Y: 471 + m_Width: 59 + m_Height: 40 + - m_X: 494 + m_Y: 423 + m_Width: 17 + m_Height: 88 + m_fontInfo: + Name: + PointSize: 0 + Scale: 0 + CharacterCount: 0 + LineHeight: 0 + Baseline: 0 + Ascender: 0 + CapHeight: 0 + Descender: 0 + CenterLine: 0 + SuperscriptOffset: 0 + SubscriptOffset: 0 + SubSize: 0 + Underline: 0 + UnderlineThickness: 0 + strikethrough: 0 + strikethroughThickness: 0 + TabWidth: 0 + Padding: 0 + AtlasWidth: 0 + AtlasHeight: 0 + atlas: {fileID: 0} + m_AtlasWidth: 512 + m_AtlasHeight: 512 + m_AtlasPadding: 5 + m_AtlasRenderMode: 4165 + m_glyphInfoList: [] + m_KerningTable: + kerningPairs: [] + m_FontFeatureTable: + m_GlyphPairAdjustmentRecords: [] + fallbackFontAssets: [] + m_FallbackFontAssetTable: [] + m_CreationSettings: + sourceFontFileName: + sourceFontFileGUID: 979318e2cdafc0e43bfd56bb63011857 + pointSizeSamplingMode: 0 + pointSize: 70 + padding: 5 + packingMode: 0 + atlasWidth: 512 + atlasHeight: 512 + characterSetSelectionMode: 0 + characterSequence: 32 - 126, 160, 8203, 8230, 9633 + referencedFontAssetGUID: 8f586378b4e144a9851e7b34d9b748ee + referencedTextAssetGUID: + fontStyle: 0 + fontStyleModifier: 0 + renderMode: 4165 + includeFontFeatures: 0 + m_FontWeightTable: + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + fontWeights: [] + normalStyle: 0 + normalSpacingOffset: 0 + boldStyle: 0.75 + boldSpacing: 7 + italicStyle: 35 + tabSize: 10 +--- !u!28 &52128046682858857 +Texture2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: CascadiaCode SDF Atlas + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_ForcedFallbackFormat: 4 + m_DownscaleFallback: 0 + m_IsAlphaChannelOptional: 0 + serializedVersion: 2 + m_Width: 512 + m_Height: 512 + m_CompleteImageSize: 262144 + m_MipsStripped: 0 + m_TextureFormat: 1 + m_MipCount: 1 + m_IsReadable: 0 + m_IsPreProcessed: 0 + m_IgnoreMasterTextureLimit: 0 + m_StreamingMipmaps: 0 + m_StreamingMipmapsPriority: 0 + m_VTOnly: 0 + 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: 0 + m_PlatformBlob: + image data: 262144 + _typelessdata: 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b11131f1f1f1f110f0900000000000000000000000000000000000000000000000000000000000000000000000000050b0d101111100f0c0a0400000000000000000000000000000000000000070b0e131618191817130f0d070000040a0c11100f0e0d0c09030000000000000000070c0e1a1a1a1a1a1a1a181107000000000000000000000000000000000000000000000000000000000000000000000000000000000000080e10202020202020201e1910040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d1316181917150f0b080100000000000000000000000000000913191c2020202020202020202020202020202020202020202020202020202020201b19130900000000000000000000000c151c1e2020202020202020201b191309000912191b2020202020202020201e1c160c00000000000000000000000b151b1d202020202020100e080000000000000000000000000000070b1c2020202020202014120c0300000000000a141a1d202020202020100e080000000000000000000000000000000000000000000000000000000000000000000000050e141720202020202020201b1913090000030c1215202020202020202017150e0500000000000000000000000000000000000000000000000000000000000000000005131e25283434343426241d12040000000000000000000000000000000000000000000000000000000000000001080b121920222526262624211f170c0c03000000000000000000000000000408131c2024282c2d2e2e2c2924211a0f0c181f222625242322211e160b0000000000010f1a21242f2f2f2f2f2f2f2c24190b00000000000000000000000000000000000000000000000000000000000000000000000000000003111c232635353535353535332d2214040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080e192022282c2d2e2c2a25201d14090200000000000000000000000d1b262e31353535353535353535353535353535353535353535353535353535353535312e261a0c000000000000000000101e293033353535353535353535302e261a0c1a262d303535353535353535353331291e100000000000000000000f1d28303335353535353525221b10030000000000000000000008131c20313535353535353529272014070000000e1c272f3235353535353526231c11030000000000000000000000000000000000000000000000000000000000000000081622292c3535353535353535312e261b0d071520272a35353535353535352c2922160800000000000000000000000000000000000000000000000000000000000000011323313a3d494949493b382f221200000000000000000000000000000000000000000000000000000000000009141d20272b35383a3b3b3b3937332a2720150700000000000000000000000c171f253035393e41434343413e39362d251c2a33373c3b3938373632281b11040000000f1f2d3639444444444444444137291907000000000000000000000000000000000000000000000000000000000000000000000000000011212f383b4a4a4a4a4a4a4a483f32221000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111c232b35383e414343423f3a3531261d150a000000000000000000091b2b3842464a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4642382b1a0900000000000000001e2e3b45484a4a4a4a4a4a4a4a4a4642382a1a2a3842454a4a4a4a4a4a4a4a4a49453c2e1e00000000000000000b1d2d3a44484a4a4a4a4a4a3a372e21100000000000000000000818253035464a4a4a4a4a4a4a3f3b32251403000a1c2c3a43474a4a4a4a4a4a3b382f211100000000000000000000000000000000000000000000000000000000000000051626343e414a4a4a4a4a4a4a4a4642382b1b1525323c3f4a4a4a4a4a4a4a4a413e342616050000000000000000000000000000000000000000000000000000000000000b1e31414e525e5e5e5e514c402f1d090000000000000000000000000000000000000000000000000000000112192631353c3c484d4f5151504f4c473a3c32251503000000000000000001131c2a3336434a4e535658595857534e4a3e39303a474c51504f4e4c4b46392f22110000071a2d3d4a4e5a5a5a5a5a5a59544737241100000000000000000000000000000000000000000000000000000000000000000000000000081c2f3f4c506060606060605f5c503f2d19050000000000000000000000000000000000000000000000000000000000000000000000000000000009151d2f373c484d5356585857544f4b443732281a0e000000000000000013263849565b6060606060606060606060606060606060606060606060606060606060605b55493826130000000000000009193b4c585e6060606060606060605b554838263848555b6060606060606060605e594c3c1a0a0000000000000015283a4b585d6060606060604f4b3f2e1b080000000000000000132536434a5b60606060606060544f4332200c0014273a4a575c606060606060504c3f2f1c080000000000000000000000000000000000000000000000000000000000000e223444515660606060606060605b564938262032434f54606060606060606057514534220e00000000000000000000000000000000000000000000000000000000000011253a4e606874747474665e4c38240f000000000000000000000000000000000000000000000000000009141d2f37444b51595a6265666665646158544f4332200c0000000000000009141d313a474c546063686b6d6e6d6c68645c524d41475861666564636261574c402f1c09000c21364a5b636f6f6f6f6f6f6f6554412c18030000000000000000000000000000000000000000000000000000000000000000000000000e23384c5d65757575757575756e5c48331e09000000000000000000000000000000000000000000000000000000000000000000000000000000091927313f4b505a62686b6d6e6c6a6460554b45382b1e0e00000000000005192e42566771757575757575757575757575757575757575757575757575757575757575706755422e1900000000000002152737586a73757575757575757575706755422e42556670757575757575757575736a59382815020000000000001b3044586972757575757575655d4b37220e00000000000000071c30435460717575757575757569614f3b2712001a2f43576872757575757575655d4c38230e00000000000000000000000000000000000000000000000000000000000014293e51626c7575757575757575706756422e273c4f616a75757575757575756c63513e291500000000000000000000000000000000000000000000000000000000000013283d52687d898989897c66513b26110000000000000000000000000000000000000000000000000009192631404c5560676e74777a7b7b7b79767269614f3c271200000000000009192631424e58616a73797d81828383817e7971675f4b4c61767c7a79787776665e4c38230f000e24394e6379848484848484836f59442f1a0400000000000000000000000000000000000000000000000000000000000000000000000010263b50657b8a8a8a8a8a8a8c755f4a35200a000000000000000000000000000000000000000000000000000000000000000000000000000009192737444b5d6570787d818283817f7a74696056483c2c1e0e0000000000061c31465b71858a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a85705b46311b000000000000081d31445573888a8a8a8a8a8a8a8a8a85705b3828375b70848a8a8a8a8a8a8a8a8a88735645321d090000000000001d33485d72878a8a8a8a8a8a7b654f3a2510000000000000011426364a6072858a8a8a8a8a8a8a7f69543f2914001d32475c72868a8a8a8a8a8a7b65503b2610000000000000000000000000000000000000000000000000000000000001172c41566c818a8a8a8a8a8a8a8a85705b3b2a2a3f546a7f8a8a8a8a8a8a8a8a816c57412c1700000000000000000000000000000000000000000000000000000000000013293e53687e939e9e917c66513c271100000000000000000000000000000000000000000000000001142637444b5e66737c83898d8f9090908e8c877f69543f2a14000000000001142637444b60687680878e939698989896938e867d6f6057667c91908e8d8c8b7b66503b26110010253a50657a8f99999999998b755f4a35200a00000000000000000000000000000000000000000000000000000000000000000000000010263b50657b909f9f9f9f9f8a755f4a35200a00000000000000000000000000000000000000000000000000000000000000000000000000011426374455606c7b858d9396989897948f887e74625a493c2c1a0a00000000061c31465b71869b9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9b86705b46311b0000000000000b20364b60758a9f9f9f9f9f9f9f9f9d8873564532445573889d9f9f9f9f9f9f9fa68b75604b36200b0000000000001d33485d72889d9f9f9f9f8f7a654f3a2510000000000000081c304354677c91a39f9f9f9f9d8774604b36210b001d32475c72879c9f9f9f9f907b65503b2610000000000000000000000000000000000000000000000000000000000004192e43596e83989f9f9f9f9f9f9e89745947342d42576d82979f9f9f9f9f9f99846f5a37261401000000000000000000000000000000000000000000000000000000000013293e53687e93a8a6917c66513c27110000000000000000000000000000000000000000000000000b1d314455606c7c8791989ea7a4a6a6a5a4a596806b56412b1600000000000d1d314455606d7e89959da5a8abadaeadaca8a49c92837560687e93a5a4a3a1907b66503b26110010253a50657a8fa5afafaf9f8a755f4a35200a00000000000000000000000000000000000000000000000000000000000000000000000010263b50657b90a5b5b5b49f8a755f4a35200a00000000000000000000000000000000000000000000000000000000000000000000000000081d314455607381909aa2a8abadadaca9a69d938678635a4938281603000000061c31465b71869bb0b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b09b86705b46311b0000000000000d23384d62788dabbcb5b5b5b5b5b59f8a75604b364b60758a9fb4b5b5b5b5b5c5a28d78634d38230e0000000000001d33485d72889db2b5b5a48f7a654f3a25100000000000021527374b6073869cb1c1b5b6a4927d685645321e09001d32475c72879cb1b5b5a5907b65503b26100000000000000000000000000000000000000000000000000000000000021527375b70869bb0b5b5b5b5b9a78c77614c3729395b70859ab0b5b5b5b5b29c87725544311d08000000000000000000000000000000000000000000000000000000000013293e53687e93a8a6917c66513c271100000000000000000000000000000000000000000000000b1b31424b607381919da5aeb3b9c5bbbbbac3a8937d68533e2813000000000d1d31424b607381929ea8b2b7c3c0c2c2c0bfc2b6b1a19983726b8095aab9b8a5907b66503b26110010253a50657a8fa5bac4b49f8a755f4a35200a00000000000000000000000000000000000000000000000000000000000000000000000010263b50657b90a5bacab49f8a755f4a35200a000000000000000000000000000000000000000000000000000000000000000000000000061a2c3d4b607383979fb0b4c0b9b4b3b8c4b8b3a49c8878635645321e0a000000061c31465b71869bb0c6cacacacacaccc3bfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb09b86705b46311b00000000000010253a4f657a8fa4c9c7bab4adb2bcab8d78634d384d62788dabbcb2adb4bac7baa58f7a65503a25100000000000001d33485d72889db2c7baa48f7a654f3a25100000000000081d314455677d92a4b6cac1b19c8673604b38281602001d32475c72879cb1c7baa5907b65503b26100000000000000000000000000000000000000000000000000000000000081d31445573889db3c7bab4aeb2a48f7a654f3a33465773889db3b1b0b5c1b49f8a75604b35200b000000000000000000000000000000000000000000000000000000000013293e53687e93a8a6917c66513c2711000000000000000000000000000000000000000000000417293a4e606d81969fb2b6c3c9c6c8bbb4bbc7a5907b65503b261000000005182a3b4e606d81979fb3b9c6cac4b7b3adabaaacaeb4b3a1937e6d8297adc2bba5907b66503b26110010253a50657a8fa5bacab49f8a755f4a35200a00000000000000000000000000000000000000000000000000000000000000000000000010263b50657b90a5bacab49f8a755f4a35200a0000000000000000000000000000000000000000000000000000000000000000000000000c2136495b6b8095a1b1bdb4b0a89e9ea7acb0bdb5a69b8575604b392816030000061c31465b71869bb0c6dbdfdfe3ccbcafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9b86705b46311b00000000000012273d52677c92a7bcbaa99f98a0b2a5907a65503b50657a8fa5b2a0989fa9babca7927d67523d28120000000000001d33485d72889db2c7baa48f7a654f3a251000000000021628384b6074879db2c2c9b5a3917c675544311a0a00001d32475c72879cb1c7baa5907b65503b261000000000000000000000000000000000000000000000000000000000000b20364b60758a9fb4baa99f98a0a8927d68533d364c61768ba6a49c9ba3b5bbaa8d78624d38230d00000000000000000000000000000000000000000000000000040a0c0f13293e53687e93a8a6917c66513c2711000000000000000000000000000000000000000000000a1f334658687e939fb1bdcac2b5b1a6aa9faaa1a98d78624d38230d0000000b1f344859687e939fb1bdccc2b6b1a69d98969596999fa9b19c8772849aafc4bba5907b66503b26110010253a50657a8fa5bacab49f8a755f4a35200a00000000000000000000000000000000000000000000000000000000000000000000000010263b50657b90a5bacab49f8a755f4a35200a0000000000000000000000000000000000000000000000000000000000000000000000021527384e63798d9fb5bfb4a39b8f89898c969fafbcb5a3947f6a5745321e090000061c31465b71869bb0c6d8e5e7d5c5af9e959595959595959595959595959595959595959585705b46311b000000000000152a3f546a7f94a9bfb49f8b8298ada8927d68533d52687d92a7ad98838a9fb4bfaa947f6a553f2a150000000000001d33485d72889db2c7baa48f7a654f3a251000000000091e324556687e93a5b6cac0b09b85705f4d3726140000001d32475c72879cb1c7baa5907b65503b261000000000000000000000000000000000000000000000000000000000000d23384d62788dabbcb49f8b8398ab95806b5640394f64798ea49c86859bb0c8a5907b66503b2611000000000000000000000000000000000000000000060b0d13171f2124272a3e53687e93a8a6917c66513c27110d0700000000000000000000000000000000000000000c21364c6176899eb3becebfb2a49c918c8a8a8b8e8b73604b35200b00000417293a4c62778a9eb4bdcebfb3a49c908883807f81848a939ea48d78869cb1c6bba5907b66503b26110010253a50657a8fa5bacab49f8a755f4a35200a00000000000000000000000000000000000000000000000000000000000000000000000010263b50657b90a5bacab49f8a755f4a35200a0000000000000000000000000000000000000000000000000000090f110b0700000000091d3145566d8298abbcb5a39b857a74737781959eafc2b39e8875604b36210b0000061c31465b71869bb0bac7d0dfccb8a79580808080808080808080808080808080808080807e68533d2813000000000002172c41576c8196acc1b29d877a8fa4aa95806a5540556a7f95aaa48f7a879cb2c1ac97816c57422c170200000000001d33485d72889db2c7baa48f7a654f3a2510000000031729394b6075889db2c3c9b3a2907b6550403019090000001d32475c72879cb1c7baa5907b65503b2610000000000000000000000000000000000000000000000000000000000010253a4f657a8fa4c9b29d877b90a599836e59363d52677c92a797818095abbea8937e69533e2914000000000000000000000000000000000000040a0e192023282a33373a3c3f4153687e93a8a6917c66513c2924221b100800000000000000000000000000000000000014293e53697e93a7b8ccc4b2a199867c76757576787a655443301c0800000a1f3346586c8197a8b9cdc1b3a199867b746d6b6a6c6f757e899d978297a4b6cabba5907b66503b26110010253a50657a8fa5bacab49f8a755f4a35200a00000000000000000000000000000000000000000000000000000000000000000000000010263b50657b90a5bacab49f8a755f4a35200a00000000000000000000000000000000000000000000000004121d2426201c130800000b20364b6075899fb4c3b09b8574645c59626c8095a5b7b8a6907b66513b26110000061b30455b7084969fa9b3bfcbc8b39e88776a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a68604e3a2611000000000004192f44596e8499aec3b09b85768ba7ad97826d5842576d8297aca78c76859ab0c4ae99846f59442f1a0000000000001d33485d72889db2c7baa48f7a654f3a25100000000a1e334657697f94a6b7cbbcab9a846f5d4b382212000000001d32475c72879cb1c7baa5907b65503b2610000000000000000000000000000000000000000000000000000000000012273d52677c92a7bcb09b86788daa9c8671544340556a7f95a9947f7e93a8beab96816c56412c1700000000000000000000000000000000000c171f212b35383e3a474c4f52545657687e93a8a6917c6651473a39362d231c1102000000000000000000000000000000051a2f445a6f8499afc5cbb7a6998274676158606163655d4b3626140100000c21364c61768a9fb4c6c9b4a399837466605456555757606978879d979fb1c2d3bba5907b66503b26110010253a50657a8fa5bacab49f8a755f4a35200a00000000000000000000000000000000000000000000000000000000000000000000000010263b50657b90a5bacab49f8a755f4a35200a00000000000000000000000000000000000000000000000513222f383c353025180d0010253a50657a8fa8bab6a58f7a64564b484d6074879db2c5ab96816b56412c160000000c21364c6175808b99a1b3b7c4b8a79e897d6e6158555555555555555555555555555555534e42311e0b0000000000021628385b71869bb0c3ae998373889eaf9a85705a365a6f859aaf9e89748398aec3b19b86715c3928160300000000001d33485d72889db2c7baa48f7a654f3a2510000004172a3a4b6176889eb3c4c8b59f8d7a644f3f2f1c04000000001d32475c72879cb1c7baa5907b65503b26100000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9bfae9984738a9f9f8974604a43586d8398a6917c7c91a6bcae99846f59362614010000000000000000000000000000000c1c2a33373c494d5358586164676a6b6c6d7e93a8a6917c666158564f4a3e372f1e160a0000000000000000000000000000091e33485e73889db3c8c8b39d887561564c474b4c4e4f4b3f2e180800000114263753687d93a8bacdbcab9b857460564b43364039454b5a63798b9fb4bdced0bba5907b66503b26110010253a50657a8fa5bacab49f8a755f4a35200a00000203040301000000000000000000000000000000000000000000000000000000000010263b50657b90a5bacab49f8a755f4a35200a0000000000000000000000000000000000000000000000132330404c514a43362a1d1213293e53687e93a8c6b29d87725c4a383444556b8196abc0af99846f5a442f1a0000000a1e334657616b7884919da6b2beb8a79e928376645c4e424040404040404040404040403d3a312413020000000000091e32455673889eb3c1ac978170859bb09d877254435472879cb09b86718196acc1b39e89735745321e0900000000001d33485d72889db2c7baa48f7a654f3a251000000a1f3347586a7f95a7b8ccbbaa98836e5c4a36211100000000001d32475c72879cb1c7baa5907b65503b26100000000000000000000000000000000000000000000000000000000002172c41576c8196acc1ac978272879da98d78624d3a5b70869ba38e797a8fa4b9b19c87725443301c08000000000000000000000000000004172a3a474c535a62686d7276797c7f818182939cadaf99837b76716b645c504b3f32281a0b000000000000000000000000000a20354a5f758a9fb4cac1ab96816c574638333536393a372e2110000000081d3144556f8499aec6cab49f8c796456453830262a28323c495b6a8095a9bacdd0bba5907b66503b26110010253a50657a8fa5bacab49f8a755f4a35200d0f131718191816130f0b080100000000000000000000000000000000000000000000000010263b50657b90a5bacab49f8a755f4a35200a000000000000000000000000000000000000000000000d1d30414d5e666054473b2f1d152a3f556a7f94aabfae99846e593e2e273753687d92a8bdb09b86715b46311c00000003172939464c5a636f7c8898a0b3b8b9b3a098877a68604b4437282b2b2b2b2b2b2b2b2b28261e13060000000000000b21364b60768ba6b8bfaa947f6d8297ad9f8a75604b60758a9fad98836d7f94a9bfb8a78b76604b36210b00000000001d33485d72889db2c7baa48f7a654f3a25100005182a3b4c6176899eb3c5c7b49f8c79634e3e2d1b0300000000001d32475c72879cb1c7baa5907b65503b26100000000000000000000000000000000000000000000000000000000004192f44596e8499aec0aa95806f849aa5907b6550475974899ea68b76788da2c5b49f8a75604b35200b00000000000000000000000000000a1f334758616870787d82878c8f9194969798a0adbab3a199908b87817970655d4b4538291b0b0000000000000000000000000a20354a5f758a9fb4cabda8937e685339291f20212325221b10030000000b20354b6074899eb4c9c8ae98836e5c4a38281c1415161e2c3d4c61768a9fb4c9d0bba5907b66503b26110010253a50657a8fa5bacab49f8a755f4a351a2124292c2e2e2e2c2924201c1408040000000000000000000000000000000000000000000010263b50657b90a5bacab49f8a755f4a35200a00000000000000000000000000000000000000000005182a3b4d5f677b7262594c4032282b40566b8095abc0ad98836e583727273d52677c92a7bcb19c87715c47321c000000000b1b29333c494d5f677682919ea7b4bfb2a59d8b7e6c60554639291b1515151515151513110b02000000000000000e23384d63788da2c5bda8927d6a7f94aaaa8c77624d62778ca9aa95806a7d92a7bdc5a38d78634e38230e00000000001d33485d72889db2c7baa48f7a654f3a25120c0b1f3448596b8095a7b9ccbaa997826d5b493520100000000000001d32475c72879cb1c7baa5907b65503b261000000000000000000000000000000000000000000000000000000000021628385c71869bb1bea9937e6c8197a8937e68534c61778ca79e8873758ba7b8baa98d78624d38230d00000000000000000000000000000c21374c61767e858d93989da5a4a7a9abacadb2becabfb3afab9f9c968e857b6d605646392916030000000000000000000000081e33485d73889db2c8bea9937e69543e29140b0c0e100e0800000000000e24394e63798ea8b9cdbbaa917c66513e2d1a0a0100030f1f3346586e8399aec3d0bba5907b66503b26110010253a50657a8fa5bacab49f8a755f4a352d36393e41434343413e393530261f180c00000000000000000000000000000000000000000010263b50657b90a5bacab49f8a755f4a35200a0000000000000000000000000000000000000000000b1f344859677d918477665e4b45382c3f54697f94a9beaf9a846f5544312a3b53697e93a8beb09a85705b45301b00000000000b171e2c35414d58616d7c899aa2b0bcb7a99f9381736157463a291c0c0000000000000000000000000000000010253b50657a90a5babba6907b677c91a7a48f7a654f647a8fa4a7927d677b90a5bbbaa5907b65503b261000000000001d33485d72889db2c7baa48f7a654f3a2a27211f2b3c4c62778a9fb4c5c5b49f8a77624d3d2c1a020000000000001d32475c72879cb1c7baa5907b65503b261000000000000000000000000000000000000000000000000000000000091e32455673889eb3bca7917c697e94a996816c564f657a8fa49b857073899eb3c7a5907b65503b26100000000000000000000000000000162b40566b80939ba3a8adb2b7c3bcbfc0c1c2c5cfdcd0c7c9bcb5b1aba39b908274615746321e130000000000000000000000051b30455a70859aafc5c1ab96816c563a2917040000000000000000000012273c52677c91a7c6c9b49f8a75604b36210f000000000417293a53697e93a8bed0bba5907b66503b26110010253a50657a8fa5bacab49f8a755f4a393d4a4e535758595856534e4b4336332a1c14020000000000000000000000000000000000000010263b50657b90a5bacab49f8a755f4a35200a00000000000000000000000000000000000000000b1e31414c6277899e99887c6c6056493d3d52687d92a7c4b39e8975604b3d3848596d8298adc2ae99836e59442e19000000000000030e1920303a464c5e667784959eb4babab49f9783756158463a291b0b00000000000000000000000000000012283d52677d92a7bcc9a48e7964798ea3a7927c6752677c91a7a48f7a64798ea3c8bda7927d68523d281300000000001d33485d72889db2c7baa48f7a654f473a3d373335485a6c8196a8baccb9a796806b5948341f0f000000000000001d32475c72879cb1c7baa5907b65503b26100b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000000000000000000000b21364b60768ba7b8baa58f7a667b91a699846f5a52687d92a798826d71869cb1bda8937e68533e2913000000000000000000000000000013283e53687d93a8b4c1c2c7c4bec4b8b3b0afb3bfcacac0bcbcc4c6c1b4b09f978475614b42311a0a0000000000000000000001162b41566b8096abc7c5b09b85705846331f0a00000000000000000000152a3f556a7f94aabfc6b19c87715645321e09000000000010253a50657a8fa5bacfbba5907b66503b26110010253a50657a8fa5bacab49f8a755f414d525c64686c6d6e6d6b686460544c473a311d150900000000000000000000000000000000000010263b50657b90a5bacab49f8a755f4a35200a000000000000000000000000000000000000000010253a4e5f6e8399a7a69e8d8174635b4e424e63788ea6b7b8a7927d675b504f5662778a9fb4c1a9947f6a543f2a15000000000000000006121c2933404c59627280919fa9b8bdb1a1998476615846392819090000000000000000000000000000152a3f556a7f94aabfbcab8c7762768ba6aa947f6a556a7f94a9a78c7762778caabbbfaa957f6a55402a1500000000001d33485d72889db2c7baa48f7a65615858524c473d4d62788b9fb4c6c4b39e8976614c3b2b1801000000000000001d32475c72879cb1c7baa5907b65503b2620202020202020202020202020200d0b060000000000000000000000000e23384d63788da2c5c8a38e7863798eab9c877255566b8095aa957f6a6f849aafc0ab96816b56412c16000000000000000000000000000010263b50657b90a5c9c8bbb4afa9a5a69d9b9aa1adbab9aca7a6afb3c0c8bdb1a299836f604e382815020000000000000000000011263c51667b91a9bac9b49f8a76614c36210c00000000000000000000172c41576c8196acc1c3ad98836e583828160300000000000d22374c62778ca1b7ccbba5907b66503b26110010253a50657a8fa5bacab49f8a755f4b5f6771797e81838383817e79746b61584e4231271909000000000000000000000000000000000010263b50657b90a5bacab49f8a755f4a35200a000000000000000000000000000000000000000013283d52687d92a1b3b8ab9f96857968604c495b73889db2c5b39e89796a65646874849aa8bab5a38f7a644f3a240f000000000000000000000c171f303b4854606b7d8b9ea7b7bfb3a39b85766157463726140100000000000000000000000002172c42576c8197acc1b59f8a756073889dac97826c576c8197ac9e897360758a9fb4c1ac97826c57422d1702000000001d33485d72889db2c7c2ac97817a77736d6761584e5b6d8297a9bacbb7a6947f6a5847331d0d00000000000000001d32475c72879cb1c7baa5907b65503b3535353535353535353535353535352320190e000000000000000000000010253b50657a90a5babbaa8c7661768b9f9f8a7560596e8398a7927c676d8297adc2ae99846e5936251300000000000000000000000000000e23384d63788dabb4adaa9f9a94908c888684939cadac9b92919aa2b4bac7c0b3a1937e685645321d09000000000000000000000b21364b60768a9fb4c9baa9927d67523a2a1804000000000000000000192e43586e8398adc3c1ab96816c56412c170000000000000c21364b61768ba0c7d7bba5907b66503b26110010253a50657a8fa5bacab49f8a7556606e7d868e939698989896938e88807768604b44372715020000000000000000040a0c0d0d0d0d0d10263b50657b90a5bacab49f8a755f4a35200d0d0d0d0d0d0d0d0d0d0b0500000000000000000011263b51667c899aa2b4bab5a39b8a7e6e6158556a7f95a7b8b8a79e8a807a797d869aa2b4bdb19b86715c4a36220d000000000000000000000004121d2b36434b5f677b899da6b7c1b4a39b8475615544311d12000000000000000000000000041a2f44596f8499aec4b39e88735570859aaf99846f5a6f8499ae9b86705473889db3c4af99846f5a442f1a00000000001d33485d72889db2c7c5b19f978f8c88827c766d6463798c9fb4c7c3b39d8875614b3a2a170000000000000000001d32475c72879cb1c7baa5907b65504a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a352b1e0e0000000000000000000013283d52687d92a7bdb49f8a756073889daa8d78635471869ca48f7a646b8095abc0b19c87715443301c07000000000000000000000000000b20364b60758a9f9f98918a857f7b7773706f7e93a8a7927d7c84919fa9bacdbfb29d8875604b36200b00000000000000000000091e3245576e8399aec7c7ae99846f5847331f0a000000000000000000192f44596e8499aec3c0aa95806b55402b16000000000000091e324657758aa9bacdbba5907b66503b26110010253a50657a8fa5bacab49f8a75607483929ca4a8acadaeadaba8a69d958a7e6d605544311d14000000000000000c181f22232323232323263b50657b90a5bacab49f8a755f4a35232323232323232323232220180d00000000000000000f24384c5e667784949fa9b6b5a89f938376655d6176899eabbcb8a89e958f8f929ca4b4bfb19f917c66513e2e1b07000000000000000000000000000d182630414d5d6479889da6b7c1b4a3998373604b41301e0e0000000000000000000000031628395c71869cb1c6b19c86715c6d8297ac9c87725c71879cad98836d5c71869bb1c6b19c87715c39291703000000001d33485d72889db2c7cebdb1aca5a69d98928a8279738298aabbcab6a5937e695746321c0c0000000000000000001d32475c72879cb1c7baa5907b6560606060606060606060606060606060605e483c2b1906000000000000000000152a3f556a7f94aabfb29d88735470859aa6917b666074899fa78c7761697e93a8beb49f8974604a35200b00000000000000000000000000081d3144557287938a837c766f696561595b687e93a8a6917c676f7d8b9fb4c0cbb7a6917c67513c2712000000000000000000000316283952677d92a9bac9b49f8a77614c37220c0000000000000000001a2f445a6f8499afc4bfa9947f6a543f2a15000000000000031628395f748a9fb4c9bba5907b66503b26110010253a50657a8fa5bacab49f8a75728399a1b1b5c2bfc0c2c2c0c4b7b2a89e938273604b42321d0d00000000000c1c2a3437383838383838383b50657b90a5bacab49f8a755f4a383838383838383838383837342b1d0d00000000000000091d2f404c5962727f8b9ca4b1bab4a199877b6b60667c8d9fabb8b9b4aaa5a4a8b1b6bbb4a197816d5e4c39201000000000000000000000000000000008141c303f4b5b6379889da7b9c1b3a196816c5f4d3c2b190500000000000000000000091e32465773899eb3c4af9a846f5a697f94a99f89745974899eaa95806a5a6f8499afc4b39e89745746331e0a000000001d33485d72889db2c7ddcec5c2c4b7b3ada99f988e8898a0b2c8c2b29d8774604b392816000000000000000000001d32475c72879cb1c7baa5907b757575757575757575757575757575757575705a4835200b000000000000000002172d42576c8297acc1b19b86715c6d8297a9947e6962778da99e897458677c91a6bcbaa98d77624d38220d0000000000000000000000000002152737576c817e766e67615754504c4753687e93a8a6917c665f677d91a2b4c8c4ad98826d5837271501000000000000000000000c21364c61768a9fb4c9bbaa937e68533928160300000000000000001a2f44596f8499aec4bfaa947f6a553f2a15000000000000001f354a5f748a9fb4c9bba5907b66503b26110010253a50657a8fa5bacab49f8a757d92a1b3b4aeacaaabadb3b7c4cac6b9b4a098826d604f3b2b180500000004182a3a474c4d4d4d4d4d4d4d4d50657b90a5bacab49f8a755f4d4d4d4d4d4d4d4d4d4d4d4d4d483b2b18050000000000000012222f3b485460697a86979fb3b8b2a69d8c807362697e8d9da6b1b5c2bab9c4b8b3aa9f968374604b40301d02000000000000000000000000000000000113202e3d495b6379899eaabbbfb09e917d675a48352012000000000000000000000c21364b61768ba7b8c2ad97826d58667c91a6a98c7761768ca8a7927c67586d8297adc2b9a88b76614c36210c000000001d33485d72889db2c7ddcec5c1c0c3c8c7bab4ada69da6b2bec9b5a3927d675544311b0b0000000000000000000020354a60758aa4b6cabeab99908a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a78624d38230d0000000000000000051a2f445a6f8499afc4af99846f5a6a7f94aa97826c657a90a59b86715b647a8fa4c9c7a5907a65503b25100000000000000000000000000000092a3e52636c696158514c46393b373e53687e93a8a6917c66515f70859ab0c5c7b29c87725544311d08000000000000000000000a1f3346586f8499aec4c8b09a85705746321e090000000000000000192e44596e8399aec3c0ab95806b56402b16010000000000091e324556758aa9bacdbba5907b66503b26110010253a50657a8fa5bacab49f8a75869cb1a99f99969596989da6b1b6c2cdbeb2a0937e69594834200c0000000a1f34475961626262626262626262657b90a5bacab49f8a756262626262626262626262626262594834200b0000000000000004121d2b36434a5c647581919ea7b3b7ab9f95857867697c88949ca4a5a6a7a5a69e978b807360564532221200000000000000000000000000000000000002101f2c3d4a5b657b8c9fb4bebdb39e8978624d41301a0a0000000000000000000e23384e63788da3c5c0ab95806b5663798eaba48e7964798ea3a48f7964556b8095aac0c6a38e78634e39230e000000001d33485d72889db2c7cebdb1acaaaeb3b8c5c9c4b7b2b7c4cfc6b19b8672604a372715000000000000000000000020354a60758a9fc2d3c8b8aba59f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f8d78624d38230d0000000000000000031729395c71869cb1c2ad98826d58677c91a79a856f687e93a898836e5962778dabbcbda8937d68533e281300000000000000000000000000000f2234455257534c473a36332926293e53687e93a8a6917c665153697e93a8becab49f8a75604b35200b000000000000000000000417293a54697e94a9becab49f8a76614b36210c0000000000000000182d43586d8298adc2c1ac96816c57412c170000000000000b21364b60768ba0b5d7bba5907b66503b26110010253a50657a8fa5bacab49f8b788da49e948a84817f808388909ca4b3bfcfbeb49f8a77624d3a2a170400000c22374c6177787878787878787878787e92a8bdcebbaa8d787878787878787878787878787877624d37220d0000000000000000000d1825303e4a56606c7c899aa2b4bab4a39b897d6d66757f868c8f9192908e8882786b6055453828150400000000000000000000000000000000000000010f1f2d3d4b5d697e93a0b2c4b9a799846f5f4d38271502000000000000000010263b50657b90a5babea9937e695460768a9fa6917c677c91a6a78c766153697e93a8bebba5907b66503b2611000000001d33485d72889db2c7c5b19f9795999ea7adb4bbc8c8cbd4d0bba6907b665443301909000000000000000000000020354a60758a9fb5cad6c8bebab5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5a28d78624d38230d00000000000000000a1e33465774899eb3c0ab96806b5664798ea49d88736b8196ab95806b5660758a9fb5c0ab96806b56412b160000000000000000000000000000051727343e423e37332a211e1713293e53687e93a8a6917c665150657b90a5bacebbaa8c77614c37220c00000000000000000000000f253a4f647a8fa4b9cebbaa907a65503b25100000000000000000162c41566b8196abc0c4ae99846f593a29170400000000000c22374c61778ca1b6ccbba5907b66503b26110010253a50657a8fa5bacebbaa9781979d8a7e766f6c6a6b6d747b8699a1b3c1cdbaa897826c5847331f0a0000192e43596e838d8d8d8d8d8d8d8d8d8d929cadc1d9c8a7968d8d8d8d8d8d8d8d8d8d8d8d8d8d86715c47321c0700000000000000000008131c2d38454b5e667784949fa9b6b4a89e928275646971777a7c7d7b79746d635b4b4437281a0a000000000000000000000000000000000000000000010f1f2e3f4f606e8398a6b8c5b3a1917c675645311d09000000000000000013283d52687d92a7bdbca7917c67525672889da9947e697e93a99e88735851677c91a6bcbda8927d68533d2813000000001d33485d72889db2c7c1ac978180838890989faab2bfcfd9cab59f8a755e4d3e2e1d0d000000000000000000000020354a60758a9fb5caded1c8c5bfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb7a28d78624d38230d00000000000000000c21364b61768ba7b9bea9947f695461768ba7a68b766f8499a8927d68535673899eb3c3ae99836e593625130000000000000000000000000000000917222a2c29211f170c0a0313293e53687e93a8a6917c66514f64798fa4b9d8c7a28c77624d37220d000000000000000200050b0d22374c62778ca1b7d8c8a7927d67523d2812000000000000000014293f54697e94a9bec7b29d87725846331f0a00000000000f24394f64798ea4b9cebba5907b66503b26110010253a50657a8fa5bad9c8b19f979d8878696157575556546065748399a3b4c9c6b49f8a76614c37210c0000192e43596e8398a2a2a2a2a2a2a2a2a2a8adbacae6c5b4a7a2a2a2a2a2a2a2a2a2a2a2a2a29c87715c47321c0700000000000000000000000f1a2832404c5962727f8b9ca4b1b9b3a098877a6a6062656767666360544d493c3126190a000000000000000000000000000000000000000000000001112132424c6177889eb3c1bfb29c8774604b3620100000000000000000152a40556a7f95aabfbaa58f7a65505a6f849aab96816c8196ab9b85705b4f657a8fa4babfaa95806a55402b15000000001d33485d72889db2c7baa48f7a6b6e747a828b98a0b4bcc9d3bba6917c665c4a3b2b18080000000000000000000020354a60758a9fb5cad1c0b4b0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa28d78624d38230d00000000000000000e23394e63788ea3c5bca7927d67525873889ea38e7972879ca58f7a65505c71869cb1c6b19c86715443301c07000000000000000000000000000000050f1517140c0a0400000013293e53687e93a8a6917c665150667b90a5bbcebaa98b76614b36210c000000010a101218191920222b364b60758ba0b5cabea8937e69533e2914000000000000000011263c51667c91a6c5cab49f8b76614c36210f000000000215273753687d92a8bdd0bba5907b66503b26110010253a50657a8fa5bacfcebdb49f8b79635a4b46394036434b566074859babbccdbaa9937e68533727150100192e43596e8398aeb7b7b7b7b7b7b7b7bdc1cad8e2d2c5bbb7b7b7b7b7b7b7b7b7b7b7b7b19c87715c47321c070000000000000000000000080f1a21303b485460697a86979fb3b8b2a59c8c7f7262595152504e4a4336352c1d14090000000000000000000000000000000000000000000000000003141f334758687d92a3b5c9b6a5927d68533f2e1b0800000000000002182d42576d8297acc2c6a38d78634e576c8197ac99846e8399ad98826d584d63788da2c6c2ad97826d58422d18030000001d33485d72889db2c7baa48f7a655560656d7883919fabb6c2c9b49f8b7a6459483625130000000000000000000020354a60758a9fc2d3c8b4a29a95959595959595959595959595959595958d78624d38230d000000000000000011263b50667b90a5bbbaa5907b65505b70869ba7917c748a9fa98c77624d5a6f849aafc4b49f8974604a35200b000000000000000000000000000000000000020000000000000013293e53687e93a8a6917c6651576b8095aac0c9b49f8a745746321e0a000005131d25272d2e2b35383b484d62778ca2b7d0c0a7927c67523d271200000000000000000e23384d63788da7b8ccbcab927d67523d2d19090000000a1d3144556d8297acc2d0bba5907b66503b26110010253a50657a8fa5bacfcebaa995806b5b493c32282a263038455664798c9fb4cac7af9a846f5544311d0800192e43596e8398aebababababababababfc3ccdae5d5c7bdbabababababababababababab19c87715c47321c0700000000000000000002101b222d36393f36434a5c647581919ea7b3b6aa9f948477665e4b453835302521190e0100000000000000000000000000000000000000000000000000000004182a3a4a6072869bb1c3c3b19c86715d4b37220e000000000000051a2f445a6f8499afc4baa88b76614c54697e94a99b8671869baa957f6a554b60768ba8b9c4af9a846f5a452f1a000000001d33485d72889db2c7baa48f7a654f4b505a626e7c8d9ca4b5c2baa99d8877625443301c0d00000000000000000020354a60758aa4b6cac5b09a8480808080808080808080808080808080808076614c36210c000000000000000013283d53687d92a8bdc9a38e79644e586d8398aa947f788daa9f8974604a586d8297adc2baa88c77624d37220d000000000000000000000000000000000000000000000000000013293e53687e93a8a6917c66516075889db2c8c6b09b86715b392916030001132330393c42443c484d5259626e8197acc1c4b3a28d78634e38230e00000000000000000c2035495a73889eb3c8c9ae99836e5c4a3726191110121b293a4b6074899eb3c8d0bba5907b66503b26110010253a50657a8fa5bacfc9b49f8a76614c3d2c1e1615141c28384a5c6e8398aec7c9b49f8974604b35200b00192e43596e8398a4a4a4a4a4a4a4a4a4aaafbccce6c7b7aaa4a4a4a4a4a4a4a4a4a4a4a4a49c87715c47321c0700000000000000000614202e373d4a4e54595b5c5b56606c7c899aa2b4bab4a29a897c6c60564a3d321f180c0000000000000000000000000000000000000000000000000000000000000c1c304354677c91a5b6cab6a48f7a654f3a2510000000000000031729395c71879cb1c6b49f8974574651667b90a69e8974889ea7927c6752455774899eb4c7b19c87725c3a2917040000001d33485d72889db2c7baa48f7a654f3a3c494d5e6678869ca4b5c3b8a69a8472604a3b2b180500000000000000001d32475c72879cb1c7baa5907b6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a615846331f0a0000000000000000152b40556a8095aabfbcab8c77624c556a8095aa98827c90a69c87715443566b8095abc0c6a58f7a65503a2510000000000000000000000000000000000000000000000000000013293e53687e93a8a6917c66606c8197a6b7cbc0ab96816b56412c1600000a1d30414d5257595b5a62686e7783979fb1c0b4a69a846f5b4935210c000000000000000006192c3c596e8398aec6cab49f8c79645544342b2725272e394658687d92a7b8ccd0bba5907b66503b26110010253a50657a8fa5bacfc3ae99846e5847331f0f0300010a1a2d3e51667c91a9bacdbaa88e79644e39240f00192e43596e838f8f8f8f8f8f8f8f8f8f959eafc3d9c8aa998f8f8f8f8f8f8f8f8f8f8f8f8f8f86715c47321c0700000000000000071524323e4b4f5c646a6e7072706f6a64667784949fa9b6b4a79e918175635b4f42342a1c110200000000000000000000000000000000000000000000000000000000001325364b6073879db2c7c2ac97816c573c2c190600000000000a1e33465774899eb3c7b29d87725d394e63788daaa78c778ca7a48e79644f395d72879cb2c7b49e89745847331f0a0000001d33485d72889db2c7baa48f7a654f3a2b35404c5a6376869ca5b7c4b3a2937e69594834201000000000000000001d32475c72879cb1c7baa5907b6555555555555555555555555555555555554c463a2917040000000000000003182d42586d8297adc2b59f8a75604b52677d92a79b857e93a999846e593653697e93a8bebda8927d68533d2813000000000000000000000000000000000000000000000000000013293e53687e93a8a6917c677481979fb1c4c7b4a28f7a644f3a240f00001025394d5f676d6e7074787d838b99a1b1b4aea29a8878624d3d2c1a0600000000000000000012283d52677d92a8b9ccbcab9a8473604d483c3c3b3c3e4a576176889db3c0d1d0bba5907b66503b26110010253a50657a8fa5bacfbea9937e69543a291701000000000f21364b60758a9fb4c9c6a7927c67523d2712000e23384e63797a7a7a7a7a7a7a7a7a7a8095aabfcebbaa8f7b7a7a7a7a7a7a7a7a7a7a7a7a7a7a644e39240f0000000000000003152533434f5c6470797f83858786847f7a7165727e8b9ca4b1b8b39f97867969604c473a2f1d150900000000000000000000000000000000000000000000000000000000081c3043546b8095aac5c7b29d88725a4935200c00000000000c21364c61768ba8b9c5b09b85705b464b60758a9fa7917c91a7a78b76614c455b70859ab0c5b9a88c76614c37210c0000001d33485d72889db2c7baa48f7a654f3a2520303c49586277879daabbc0b49e8a77624d3e2d1b07000000000000001d32475c72879cb1c7baa5907b6550404040404040404040404040404040403633291c0c0000000000000000051a2f455a6f849aafc4b39e887355444f657a8fa49f8c859aab96816b564151667c91a6bbc0ab95806b56402b1601000000000000000000000000000000000000000000000007101b293e53687e93a8a6917d7c86979fb1bdcdbaa99a84705c4a36220d000012273c52677d828386898d92999faaa7a99f99918578625948341f0f000000000000000000000c21364b6176899eb4c6c9b4a297816f625a54515052555c6475849a9ba2b4c7d7bba5907b66503b26110010253a50657a8fa5bacfbaa5907a65503b25100000000000091e32455671869cb1c6bfaa957f6a55402a15000c2135495b63656565656565656565657b90a5bacab49f8a7565656565656565656565656565645c4a36220d00000000000000112233435061697a848e94999b9c9b99958f857b6b697a86979fb3b8b1a49c8b7e6f61594c3f3127190e000000000000000000000000000000000000000000000000000000011426364e64798ea7b8cbb7a58d78634d38230e00000000000e23394e63788ea3c6c3ae98836e5943445572879cb29b919bb39e8873584643586e8398adc3c6a38e79634e39240e0000001d33485d72889db2c7baa48f7a654f3a25121e2c3a4859647a8c9fb4c3b9a898826d5c4a36220e000000000000001d32475c72879cb1c7baa5907b65503b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b211f170c00000000000000000004172a3a5c72879cb1c6b19c87715c374c62778ca8aa9f9aa2a8937e68533e4f647a8fa4c9c3ae98836e59432e1900000000000000000000000000000000000000000000030f1a212d363c53687e93a8ac9b91919ca4b1bdcebbb49f8b79644e3e2e1b070000172d42576c8197999b9ea7a79f9794928f8a847c706259483b2b1901000000000000000000000a1e3246576c8196a8b9cdc0b19f9783786f696665676a707a859a9b859ba9bacdbba5907b66503b26110010253a50657a8fa5baccb7a28c77624d37220d000000000002162838586e8398adc3c1ac97816c57422c1700061a2c3d494e4f4f4f4f4f4f4f4f50657b90a5bacab49f8a755f4f4f4f4f4f4f4f4f4f4f4f4f4e4a3e2d1b0700000000000008182f4050616a7f8c9aa2a9aeb0b1b0aeaaa39b908072647581919ea7b3b6a99f938377655d4b44372c1f0e0000000000000000000000000000000000000000000000000000000b20354a6074899eb3c8c3a7927c67523d2712000000000011263b50667b90a5bbc1ac96816c5741375a6f8499afaca7acb09b85705b3a41566c8196abc1bba6907b66513b26110000001d33485d72889db2c7baa48f7a654f3a25100e1c2b3b4b5c6a7f95a4b6c6b59f8d7a644f3c2c19060000000000001d32475c72879cb1c7baa5907b65503b2615151515151515151515151515150c0a04000000000000000000000a1f33475874899fb4c4af9a856f5a45475974899eb4b4b0b4a5907b66503b4d62778dabbcc6b19b86715c3b2a180500000000000000000000000000000000000000000a161e2d363e4a4f5b687e93a8b9aca6a7b1b6c2c7bab49d937e695c4a362010000000172d42576c8297acb0b3b9ac97817f7d79766f665e4d483b2b1d0d0000000000000000000000031629394c62778a9eb4becebdb1a1998b847e7c7a7c7f858d9ba38e788a9fb4c9bba5907b66503b26110010253a50657a8fa5bacbb6a18b76614c36210c000000000000162c41566b8196abc0c3ad98836e58432e1900000f1f2c35383a3a3a3a3a3a3a3b50657b90a5bacab49f8a755f4a3a3a3a3a3a3a3a3a3a3a3a39362d2010000000000000011426364c5e6a7f949faab4c0b6b1afb1b5bcb5b09e95816c606c7c899aa1b4bab4a199887b6b6055493d2c19090000000000000000000000000003000000000000000000000000071c3043546f849aafc4bfaa95806a55402b15000000000013283e53687d93a8bdbfaa947f6a553f41566c8196abc1bcc2ad98826d58433f546a7f94a9bfbda8937e68533e29130000001d33485d72889db2c7baa48f7a654f3a2510000d1d2e3e4b6074879cb2c1bcab98836e5a493520090000000000001d32475c72879cb1c7baa5907b65503b261000000000000000000000000000000000000000000000000000000c21374c61778ca8bac3ad98836e58433b5c71869bb1c6c5bbaa8d78634d384b60758a9fb5c9b49e89745948341f0b000000000000000000000000000000000000010f1b28323d4a4e5c646e798d9cadc1bfbbbcc7cac3b7a99f937f6a604e3d2d1a02000000172d42576c8297acbbc8bca7927d7977736f6861574e42342717060000000000000000000000000b1f344859697e93a0b2bfcfbfb3aa9f9993919091949b9fab9d87728a9fb4c9bba5907b66503b26110010253a50657a8fa5bacebbaa8a75604b35200b000000000000152b40556a8095aabfc3ae99846e59442f190000010f1a2123252525252525263b50657b90a5bacab49f8a755f4a282525252525252525252524221b1002000000000000081c304354667b8c9fb4bbb6b2a49c9a9c9fabb5bcb09f927d675e667784949fa9b6b3a69d8d8074635b4937271502000000000000000000070d0f190b080200000000000000000000132536576c8197acc1c2ad97826d58422d180300000000152b40556a8095aabfbda8927d68533d3e53697e93a8bed1bfaa947f6a553f3d52687d92a7bdc0aa95806b55402b160000001d33485d72889db2c7baa48f7a654f3a25100000101d314556667c91a3b5c9b49f8c78634d3727150100000000001d32475c72879cb1c7baa5907b65503b261000000000000000000000000000000000000000000000000000000f24394e64798ea3c6c1ab96816c564144596e8399aec3cab49f8a75604b35455673899eb3c8b9a88c77624c37220d000000000000000000000000000000000003111f2c39454b5b636e7a838c9fb4bacad3d1cfc8bbb4a59d8b7e6a615042311f0f00000000172d42576c82979faaa8adb49b928e8c89847d766860524534241300000000000000000000000005182a3b4a60728298a1b4bcc9c8bbb4afa9a6a5a7aab0b5a3947f748a9fb4c9bba5907b66503b26110010253a50657a8fa5bacab49f8a755443301c08000000000000142a3f54697f94a9bec4af9a846f5a452f1a00000000060c0e101010101010253b50657a90a5bacab49f8a755645321e1010101010101010100f0d0700000000000000000b20354b6073869cabbcb6a59c8f8784868c9ba3b5bdb39d8875605962727e8b9ca4b1b7ab9f968579635544311d0800000000000000010f1a21242e201d1509000000000000000000152b40556a8095aabfc3ae99846e59442f190400000003182d42586d8297adc2bba6907b66513b3b50657b90a5babfbca7917c67523c3b50667b90a5bbc2ad98826d58432d180300001d33485d72889db2c7baa48f7a654f3a25100000021527384c5e71869bb1c5bcab96816c5544311d0800000000001d32475c72879cb1c7baa5907b65503b2610000000000000000000000000000000000000000000000000000011263c51667b91a6babaa9947f6a543f41566b8096abbfbfb29c8772554431385c71869cb1bac6a48f7a654f3a2510000000000000000000000000000000000311212f3d4957606b79838e999fabbccfd8cfc6bfb2aa9f96877a686050433324140100000000152b40556a80888a8e92989ea8a7a4a79e9a93887e6c6352423119090000000000000000000000000d1c304354607483969fabb4bbc8c5c4bebbbac7bab4a39b8574748a9fb4c9bba5907b66503b26110010253a50657a8fa5bacab49f8a755f39281603000000000000152a3f546a7f94a9bfc4af99846f5a442f1a0000000000000000000000000f253a4f647a8fa4b9cfbcab8b76604b36210b0000000000000000000000000000000000000012273c51677c91a4b6b9a89c877a726f7179859ba6b7b8a6937e69535460697a86979fb3b8b5a39b8875604b36200b0000000000000210202d36394336312719090000000000000000152a3f546a7f94a9bfc4af99846f5a442f1a05000000051a2f455a6f849aafc4c9a48e79644f39384d62788da2a9a9a9a48e79644f39394e64798ea3c8c4af9a856f5a45301a0000001d33485d72889db2c7baa48f7a654f3a25100000000a1a2f4052677c91a7b8c9b39d8874604b35200b00000000001d32475c72879cb1c7baa5907b65503b2610000000000000000000000000000000000000000000000000000013293e53687e93a4a4a4a4927d68533d3e53687d93a8a9a9a99a846f5a3727455a6f849aa4a4a4a4927d68523d28130000000000000000000000000000000010212f3f4b5b6375808c99a1aeb4bcc9d9ccbfb3aea1998c8075645c4e4233251506000000000013283c50616a7375797d8389929ca4b0b3afa79e93816c604e3726140100000000000000000000000013253645566073808c999faaadb0b2b3b2b0ada99f95857761748a9fb4c9bba5907b66503b26110010253a50657a8fa5bacebbaa8a755746321e09000000000000162b40556b8095aac0c3ae99846e59442f190000000000000000000000000f24394e64798ea3c8d9b6a18c77614c37220c00000000000000000000000000000000000002152838586d8298adc2b49e8a78645c5a5b6376889db3c4af9a846f56454a5c647581909ea6b1a0917c675544311d0800000000000210202d3e4a4e584b443727190c00000000000000162b40556b8095aac0c3ae98836e59432e190400000004172a3a5c72879cb1c7bcab8c77624d37354b60748a94949494948b76614c36374c62778caabbc7b29c87725d3a2a180400001d33485d72889db2c7baa48f7a654f3a2510000000001220364b6075889eb3c8b8a6907b66503b261100000000001d32475c72879cb1c7baa5907b65503b26100000000000000000000000000000000000000000000000000000162b40566b808f8f8f8f8f8f7c66513b3b50657b90949494949485705b453042586d828f8f8f8f8f8f806b55402b160000000000000000000000000000000d1d2e3f4b5d657986969faab3bfcacfd9ccbbaea1998e83796b61574b3e312415070000000000000d2133435055556063686e757d86969eb0bcb8b39f927e685544311d08000000000000000000000000081828384555606b79838b92979b9d9d9d9b98938a80756159748a9fb4c9bba5907b66503b26110010253a50657a8fa5bad9b6a08b76614b36210c000000000002172c41576c8196acc1c2ad98826d58432d180000000000000000000000000d22374d62778caabbceb8a38e79634e39240e000000000000000000000000000000000000091d32455673889db2c0aa95806b5a4b3e4958697e93a9c8b49f8975604b3d4a56606c7c8899a197826d5f4d37271502000000000210202d3e4a5c646e605544372a1c11070000000005182b3b576c8297acc1c1ac97826c57422d17020000000a1f33475874899eb4c9b49f8a75604b35304354687e7f7f7f7f7f7e69574633354b60758a9fb4c9b49f89745947341f0a00001d33485d72889db2c7baa48f7a654f3a251000000000091d3145566c8196abc5c4ac97826d573d2c1a06000000001d32475c72879cb1c7baa5907b65503b26100a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a000000000000000e23384d63787a7a7a7a7a7a75614c36364c61767f7f7f7f7f7f7a644f3a25384d62787a7a7a7a7a7a78634d38230e000000000000000000000000000005182a3b4b5d657b8a9ca4b4bbc8ccc9c8cbc2ae9d94837a6e635b4b46392e20140600000000000000041525333c37444b4e535660687480959eb0c3bdb39d8874604b35200b000000000000000000000000000a1a2837444b5c646e777d828587888786827d766b60575f748a9fb4c9bba5907b66503b26110010253a50657a8fa5baccb7a18c77624c37220d000000000003172939596e8499aec3c1ab96816c56412c170000000000000000000000000b20354b60758a9fb4cabca7927c67523625130000000000000000000000000000000000000b20364b60758ba6b7b9a48f79644f3c2e3a4d62788daabbbaa98d77624d3838454b5e667784938775614b41301909000000000010202d3e4a5c647a83736055473a2f221b100d0c0e142034485971869bb0c6c0ab95806b56402b16010000000c21374c61768ca8b9c8b39e887355443126364e60686a6a6a6a6a69614f392930435473889db3c8baa98c77614c37220c00001d33485d72889db2c7baa48f7a654f3a2510000000000215273850657a90a7b9c8b29d88735b4935210c000000001d32475c72879cb1c7baa5907b65503b261f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f100e08000000000c2035495a6365656565656561574633334658616a6a6a6a6a6a645c4b372235495a62656565656565635a4935200c00000000000000000000000000000b1f344759657b8a9ea8b6c2cec5b9b3b3b8c4a9947f6e645c4e4a3d32281b1002000000000000000000071521282731363938454b55606b8095abc0cbb8a68f7a654f3a251000000000000000000000000000000a1927313e4a4e5962686d70727372716d6861584b455f748a9fb4c9bba5907b66503b26110010253a50657a8fa5baceb9a48f7a644f3a240f00000000000a1e33465772879cb2c7bea9947f69543f2a14000000000000000000000000081d31445572879cb1c7c0ab96816b5443301c0800000000000000000000000000000000000d22374d62778ca2c4b6a18c76614c372135485a748a9fb4c7a48e79644f392832404c5962727e7a64574633231200000000000e1e2d3e4a5c647a8998827361584c40362d2522222326303f4d62778b9fb4cac4a7927d68523d2813000000000f24394e64798ea3c6c6b19b86715c37271831424e535454545454544f42321b26365b71869bb0c6c7a48e79644f39240f00001d33485d72889db2c7baa48f7a654f3a251000000000000b20354b6075899eb3c9b7a68e78634e39230e000000001d32475c72879cb1c7baa5907b65503b34343434343434343434343434343434343434343426231c1103000006192c3c494d4f4f4f4f4f4f4c463929293a464c5454545454544f4b3e2e1b2b3c494d4f4f4f4f4f4f4d493c2c190600000000000000000000000000071a2d3d4c6277899ea8b9c6c9bcb4a79e9ea6b8a6917c66514a3e362d1e160b000000000000000000000000040d09151d2023283237444c61778ca1b6d5c4a7927d68523d281300000000000000000000000000000009151d2d363b484d53585b5d5e5d5b58534c463a4a5f748a9fb4c9bba5907b66503b26110010253a50657a8fa5bacfbda8937d685338281502000000000c21364c61768b9fb4cac5a6917c66513c271100000000000000000000000001142637596e8398aec3c7b29d8773604a36261408020002020304060805030000000000000d23384d62788da2c6b6a08b76614b362133465874899fb4c9a48f7a644f3a251e2f3b48546069645c4b392917040000000006192c3c4a5c647a899ea0988376655e4f4a3e3a38373836434b5d6b8096aabbcbb7a68d78634d38230e0000000011263b51667b90a6bbc4af99846f5a442f1a24313a3e3f3f3f3f3f3e3b32241a2f44596f8499aec4bba6917b66513c261100001d33485d72889db2c7baa48f7a654f3a25100000000000081d3144556f8499aec4c4a8937d68533e2813000000001d32475c72879cb1c7baa5907b6550494949494949494949494949494949494949494949493b382f21110000000e1e2c35383a3a3a3a3a3a3633291b1c2933363f3f3f3f3f3f3a372e20101e2b35383a3a3a3a3a3a38352c1e0e00000000000000000000000000000c21364a5b6e8399a7b8c6c6b9ab9f9689889eb3a6917c66513c2d211a0f030000000000000000000000000000000002080b0e161e27364b60768ba0b5cbbea8937e69533e291400000000000000000000000000000000010f1a212b34373d424648484846433e3633294a5f748a9fb4c9bba5907b66503b26110010253a50657a8fa5bacfc2ad97826d5645321d0c00000009192d3d52677c92aabbccb9a78d78634e38230e0000000000000000000000000014293e53697e93a8c1cab6a58f7a65544330261e16171718181a1b1e1a181108000000000c21364c61768ba8b9b8a28d78634d3726364c61768ba9babcab8d78634d3823121d2a36434a544f4b3e2e1b0b00000000000c2035495a647a899ea7b2a19a877b6e645c54504d4c4d505460687b8c9fb4c8c7b39d88735a4935200c0000000013293e53687e93a8bdc2ad97826d58422d18141f26282a2a2a2a2a29271f14182d42576d8297acc2bea8937e69533e291400001d33485d72889db2c7baa48f7a654f3a2510000000000001152737556a7f94aabfc1ac97826c57422d17000000001d32475c72879cb1c7baa5907b655f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f504c3f2f1c080000000e192023252525252525211e170b0c171f212a2a2a2a2a2a25221b10020e1920232525252525252320190e0000000000000000000000000000000e24394e63798ea1b2c5c8b9a89e8d81767e93a8a6917c66513c27110700000000000000000000000000000000000000000000020d22374d62778ca2b7d7c6a7927c67523d2712000000000000000000000000000000000000070d182022282d30323332312d28211f354a5f748a9fb4c9bba5907b66503b26110010253a50657a8fa5bacfc9b39e8975604b3a291b1210111926374a5c6e8399aec8c9b39e8974604a35200b000000000000000000000000000e23384d63788da3b5c9c3b09b8573604b433632282c2c2d2e2f31332f2c25190b0000000a1e33465774899eb4bda8927d685544364351667b90a6c7b59f8b76614c36210c0d182530353e3a372e20100000000000000e23384d6378899ea7b8bfb3a59d90837a716a65626163656a737d8b9faabbcdbaa996806b563c2c190600000000162b40556b8095aac0c0ab95806b56402b16020b1113151515151514120c02162b40556b8095aac0c0ab95806b56402b1601001d33485d72889db2c7baa48f7a654f3a251000000000000011263b50667b90a5c7c5b09b86705b3a2917040000001d32475c72879cb1c7baa5907b747474747474747474747474747474747474747474747474655d4c38230e00000000060c0e1010101010100c0a030000040a0c1515151515150f0d08000000060b0d1010101010100e0c0600000000000000000000000000000005182a3b576c8197acbfcebbaa9e8a7b6c687e93a8a6917c66513c271100000000000000000000000000000000000000000000000010253a4f657a8fa4bacdbaa88f7a644f3a250f0000000000000000000000000000000000000000050b0d13181b1d1e1d1c18130c1f354a5f748a9fb4c9bba5907b66503b26110010253a50657a8fa5bacfccb9a7927d685846392e2725272b34445564798c9fb4cac6ae99836e5443301c07000000000000000000000000000c2135495b71869bb0c3c9b5a3957f6a60544b4538414142434446484441372919080000031729395a6f849aafc6b19b867360545153616f849aafc9b19c86715746331e0a0008131c202925221b10020000000000000b20354b6074849aa3b4c0c3b7b2a1998e867f7a7777787b7f86929fa9bac8c0b49f8a77624c37220e0000000003182d43586d8298adc2bea9937e69543e29140000000000000000000000000014293e53697e93a8bec2ad98836d58432e1800001d33485d72889db2c7baa48f7a654f3a25100000000000000d22384d62788da9bac9b49e89745846331f0a00000020354a60758aa4b6cabeab999089898989898989898989898989898989898989898989898a7b65503b26100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1f34475972879db2c7cab49f8c7b655d687e93a8a6917c66513c2711000001000000000000000000000000000000000000000004172a3a54697f94a9bec9b49f8975604b36200b00000000000000000000000000000000000000000000000003060809080603000a1f354a5f748a9fb4c9bba5907b66503b26110010253a50657a8fa5bacfd2c3b39e887661574b3e3c3b3c3b484d6073849aabbccdb9a8927d6853362513000000000000000000000000000006192c3c53687d92a5b7cac1af9d9580736660565856575758595b5d5a544737251100000014293f54697f94a8b9b5a3968173696668707f95a2b4bcab96816c5639291703000000070b140f0d080000000000000000081d3144556176859aa2b4bbc8bfb3aea39b948f8d8c8d90959ca4b4bac7c2b4a296816c594834200b00000000051b30455a70859aafc5bca7917c67523c27120000000000000000000000000012273c51677c91a6bcc5b09a85705b36251300001d33485d72889db2c7baa48f7a654f3a25100000000000000b20354a6074899fb4c9b9a88b76614c36210c00000020354a60758a9fc2d3c8b8aba89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e907b66503b261100000000090f111919191919191919191919191919191919191919191919191919191919191919191919110f090000000000000000000000000000000d22374c62778ca5b6cac1ac97816c5d53687e93a8a6917c66513c27110b0d160b090200000000000000000000000000000000000a1f3347586f849aafc4c6ae99836e5544311d0800000000000000000000000000000000000000000000000000000000000000000a1f354a5f748a9fb4c9bba5907b66503b26110010253a50657a8fa5bad2c2b5a59d9a8475645c555250515359626f8197a2b4c9c7b49e8a76614c36210c0000000000000000000000000000000e20364b6074879db2bdccbbaf9e95867c756f6d6c6c6d6d6f70736f6554412c080000000c21374c6176899eb4c0b19f96857e7b7d84959dafc0b49f8c78634e38230e000000000000000000000000000000000000011527374758617684959faab3c0c9c1b5b0a9a5a2a1a2a5aab1b6c2cabeb2a49b8474604b3b2b18050000000004182a3b5d72879cb2c7baa58f7a65503a25100000000000000000000000000010253a4f657a8fa4bac7b29d87725443301c07001d33485d72889db2c7baa48f7a654f3a2510000000000000071c30435472879db2c7c6a38e79634e39240e00000020354a60758a9fb5cad6c8c6b9b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4a5907b66503b2611000004121d24262e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e26241d1204000000000000000000000000000f24394f64798ea4c3d3baa48f7a654f53687e93a8a6917c66513c27181f222b201d150a000000000000000000000000000000000c21374c61768b9fb4cab9a8917c67513727150200000000000000000000000000000000000000000000000000000000000000000a1f354a5f748a9fb4c9bba5907b66503b26110010253a50657a8fa5bac9b5a39b879d9a857a706a676566696f7883979fb1c0cdbaa997816c5746331e0a000000000000000000000000000000081d314455667c909fb1bfccbcafa39b918a858381818283848688836f5a3625130000000a1f3347586a7f95a2b4bdb1a39b9391939aa2afbcb6a498826d5b4935210c0000000000000000000000000000000000000009192a3a47586173808c9aa2adb4bac7c6bfbab7b6b8babfc7c9bcb5afa0988677625645311d0d00000000000b1f344759748a9fb4c0c6a28d78634d38230e000000000000000000000000000d23384d62788da2c6c0b49f8a75604a35200b001d33485d72889db2c0baa48f7a654f3a2510000000000000001325365b70859bb0c0baa5907b65503b261000000020354a60758a9fb5cacacfc6c3c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0bba5907b66503b2611000012222f383b43434343434343434343434343434343434343434343434343434343434343434343433c382f22120000000000000000000000000010263b50657b90a5bacbb6a18c76614c53687e93a8a6917c66513c272a3437403631271a0a00000000000000000000000000000317293953687d92aabbc9b49e8975604b36210b0000000000000000000000000000000000000000000000000000000000000000000a1f354a5f748a9fb4c9bba5907b66503b26110010253a50657a8fa5bac6b19b857f94a39b8d857f7c7a7c7e848b99a1b1bdcebfb49f8a77624d39291703000000000000000000000000000000021527374c5e6c8197a1b1bdcac2b5b1a99f9a9896969798999b9c87725443301c0700000417293a4b6073849aa2b4bab5b0a8a6a8afb4bcb5a49c8675614b3d2c1a0600000000000000000000000000000000000000000c1c2a3a4655606b7a848f989fa9adb1b4bbc8b9b8c3b7b2aeab9f999082756259483827150000000000000c22374c61778ca9abababa88b76614b36210c000000000000000000000000000b21364b60768ba8abababaa8c77624c37220d001d33485d72889dabababa48f7a654f3a2510000000000000001a2f44596f8499abababa6917c66513c271100000020354a60758a9fc4b5b5bfb2aeababababababababababababababababababababababa5907b66503b261100091d2f404c515959595959595959595959595959595959595959595959595959595959595959595959514c402f1d0900000000000000000000000010253a50657a8fa5bacbb5a08b76604b53687e93a8a6917c66513c2f3b474c564b4538271909000000000000000000000000000a1e3346576f8499afc8c6ad98826d5645321e090000000000000000000000000000000000000000000000000000000000000000000a1f354a5f748a9fb4c9bba5907b66503b26110010253a50657a8fa5bac4af9a847a8ea2ab9f9b9491909193999faab3bfcfc0b3a1947f695948341b0b000000000000000000000000000000000009192f404b607383979fb2b7c3c9c7bab4afadabacacadaeb09f8975604a35200b0000000c1d314455617684969fa9b1b5c2b9c3b6b2ab9f988678625746331f0e000000000000000000000000000000000000000000000c1c2937444b5c646f7a838a91979c9faaa3a4a3a1a59d98948c847b6d6157483b2a1a0a0000000000000f24394f64798e95959595958a745746331e0a00000000000000000000000000091e324556748995959595958f79644f3a240f001d33485d728795959595958f7a654f3a251000000000000004192e44596e839595959595927c67523d271200000020354a60758aa69f9f9f9fa0989595959595959595959595959595959595959595959595907c66503b2611000f24384c5e666e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e665e4c38240f0000000000000000000000000e24394e63798ea3c4d4b7a28d77624d53687e93a8a6917c66513c404c59626b605645372719090000000000000000000000000c21364b61768a9fb4c9b9a8907b6651382816020000000000000000000000000000000000000000000000000000000000000000000a1f354a5f748a9fb4c9bba5907b66503b26110010253a50657a8fa5bac2ad98826f849aa8b5b0aaa7a5a6a8aeb4bbc8c9bcb5a2998372604b3b2b1800000000000000000000000000000000000000121d314455607381919da5b0b5c1c1c4c4c2c1c1c2c2c4baa98c77624c37220d0000000114263747586174818b969ca4a2a4a2a59c978c8276625a493929170000000000000000000000000000000000000000000000000c1927313e4a4e5d656e767c82868a8d8e8e8d8c8b88837e786f665e4b46392a1d0d000000000000000e23384e63798080808080807f6a5439291703000000000000000000000000000316283854697f80808080808079634e38230e00152a3f546a7f80808080808078624d38220d0000000000000012273c52677d8080808080807a644f39240f0000001e33485d73888a8a8a8a8a8a8380808080808080808080808080808080808080808080808079634e38230e0011263b51667b83838383838383838383838383838383838383838383838383838383838383838383837c66513c26110000000000000000000000000d22374c62778ca6b7cbbca6917c675153687e93a8a6917c6651474c5e6577807460554437271909000000000000000000000012273c51677c91a9bac9b49e8975604b36200b000000000000000000000000000000000000000000000000000000000000000000000a1f354a5f748a9fb4babaa5907b66503b26110010253a50657a8fa5babaab96816b788a9ea7b4bbc8babbbec4c5c9bcb4ab9f968475615443301d0d00000000000000000000000000000000000000021527374455606c7c87929ba3a7acafb1b3b3b3b2b1b0aea48f79644f3a240f0000000009192a3a4756606b7880868b8d8e8d8b8781796d6158493c2c1b0b0000000000000000000000000000000000000000000000000009151d2d363f4b4f5861676d7175777879787775726e69635b504c4032281b0d00000000000000000c2135495b636b6b6b6b6b6b6a614f3c1b0b0000000000000000000000000000000a273c4f61696b6b6b6b6b6b635b4935210c0012273c4f616a6b6b6b6b6b6b625a4835200b000000000000001025394d5f676b6b6b6b6b6b645c4a36220d0000001b3044586a737575757575756e6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b635b4935210c0014293e54697e93989898989898989898989898989898989898989898989898989898989898989898947f69543f2a140000000000000000000000000b1f34475973889db2c8c3ae99836e5e53687e93a8a6917c665158616c7b889583736055443727190900000000000000000002172c41576c8196acc7c4af9a856f5645321d09000000000000000000000000000000000000000000000000000000000000000000000a1f354a5f748a9fa5a5a5a5907b66503b26110010253a50657a8fa4a4a4a4947f69647a89989faaadb1b2b3b2b0adab9f998d817461574636261400000000000000000000000000000000000000000009192737444b5e66757d868d92969a9c9d9e9e9d9c9b9895917c67513c271200000000000c1c2a38454b5a626b717678797876726c635b4c463a2c1e0e00000000000000000000000000000000000000000000000000000001101b222e373a474c525855606263646361605559544e493d382f1e160b000000000000000000061a2c3d494e565656565656544f433220000000000000000000000000000000000c2032434f545656565656564e493d2c1a06000c2032434f545656565656564d483c2b1905000000000000000a1e30414d525656565656564f4a3e2d1b0700000015293b4c585d606060606060595656565656565656565656565656565656565656565656564e493d2c1a060014293e54697e93a9aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaea9947f69543f2a1400000000000000000000000005182a3b586d8297adc2c7b3a1917c6860687e93a8a6917c66616a7781909da1998373605544372614010000000000000000061b30465b70859bb0c5c0ab96806b563828150201080b080100000000000000000000000000000000000000000000000000000000000a1f354a5f748b9090909090907b66503b26110010253a50657b8f8f8f8f8f8f7d685c6477828b93989b9d9d9d9b97938b847a6b605646392818080000000000000000000000000000000000000000000009192731404d56606871787d81848788898988878683807d78624d38220d0000000000000c1a27313c484d5657616264636158574e4a3d33291b0e00000000000000000000000000000000000000000000000000000000000007111c232a33373c37444b4d4e4f4e4c4b44373f38352c231c110300000000000000000000000e1f2c35384040404040403f3c32251503000000000000000000000000000000031525323c3f40404040404038352c1f0f0000031525323c3f40404040404038352b1e0e000000000000000001132330393c40404040404039362d2010000000000c1d2e3b44484a4a4a4a4a4a4340404040404040404040404040404040404040404040404038352c1f0e000014293e54697e93a9c2b5b1a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9b1b5c2a9947f69543f2a140000000000000000000000000011273c51667c91a4b5c9bfb49f8b7d71697e93a8a6917c6e777f89979fb3b3a1988273605544311d080000000000000000091e33485e73889db3c8bea9947e69543f29171b141c201c1408000000000000000000000000000000000000000000000000000000000010253b50657b7b7b7b7b7b7b76614c37210c000c21364c61767a7a7a7a7a7a76614c59626d777e838687888785827d776f645c4b4538281b0b00000000000000000000000000000000000000000000000009151d3038454b535a62686c6f717374737271706e6b68625a4835200b000000000000000a151d2b353839464b4d4f4d4c463a39362d1f170b000000000000000000000000000000000000000000000000000000000000000000080c171f212727313538393938373631272923211a0f0900000000000000000000000000000e1a21232b2b2b2b2b2b2a272015070000000000000000000000000000000000071520272a2b2b2b2b2b2b23211a0f01000000071520272a2b2b2b2b2b2b2220190e0000000000000000000005131e25272b2b2b2b2b2b24221b10020000000000101d2930333535353535352e2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b23211a0e00000014293e54697e93a9b5a49c949494949494949494949494949494949494949494949494949ca4b5a9947f69543f2a14000000000000000000000000000b20354b6073869cb1bccdbaa99f92867e8298adaf9a84848a959ea7b1bdbfb2a0988373604b35200b00000000000000000b20354a60758a9fb5cabfaa95806a554133293026303530261808000000000000000000000000000000000000000000000000000000000e23374b5d65656565656565615847331f0a000a1f33465861656565656565615847484c5962696d71727372706d6862594f4a3e31271a0b000000000000000000000000000000000000000000000000000001121a2832363c484d52575a5c5e5e5e5d5c5b5956534d483c2b19050000000000000000020e19202228323638393836332924211a0f04000000000000000000000000000000000000000000000000000000000000000000000000040a0c12151d202223242322201d15140e0c060000000000000000000000000000000000060c0e16161616161615130c0300000000000000000000000000000000000000030c12141616161616160e0c06000000000000030c12151616161616160d0b05000000000000000000000000010a10121616161616160f0d0700000000000000000c151b1e202020202020191616161616161616161616161616161616161616161616160e0c060000000014293e54697e93a9b19c867f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f869cb1a9947f69543f2a1400000000000000000000000000081c304354667c919eb0bec7bab4a49c9498a0b2b4a29a999fa9b3b9c5c5b8b39f978476614b36210c00000000000000000a1f354a5f748a9fb4c9c5b09a85705f4c473a4536434b4336261401000000000000000000000000000000000000000000000000000000081c2e3f4b505050505050504c473a2a1704000417293a464c4f4f4f4f4f4f4c473a343b484d54585c5d5e5d5b58534d483b362d1d150a00000000000000000000000000000000000000000000000000000000000a161e212b35383d41454748494948474643403d38352b1e0e0000000000000000000000050b0d161e21232423211f170e0c0700000000000000000000000000000000000000000000000000000000000000000000000000000000000001080b0d0e0f0e0c0b08020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e54697e93a9ae99836e69696969696969696969696969696969696969696969696e8398aea9947f69543f2a1400000000000000000000000000011426364c5e6b8096a0b4bac7c2b5b1a9adb2bec0b4afaeb4bac7c8bbb4a79e918173615746321e0a0000000000000000081d32485d72879db2c7c8b4a2927d6b61585a5b5c54605443301c0d0000000000000000000000000000000000000000000000000000000011212e373b3b3b3b3b3b3b37332a1c0c0000000b1b2933363a3a3a3a3a3a37332a202b34373e434648484846423e37342b221b10020000000000000000000000000000000000000000000000000000000000000002090e192022282c2f323334343332312e2b282220190e00000000000000000000000000000003090c0d0f0e0c0a040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080d0f2020202020202020202020201f1f1d1b1915110c0a040000000000000000000000000000000000000006121b20202020202020202020202020202020202020202020202020202020202020202017150f0500000000000b151b1d20202020202020202020202020202020202020202020202020202020202017150f0500000014293e54697e93a9ae99846e59545454545454545454545454545454545454545454596e8398aea9947f69543f2a14000000000000000000000000000008182f404a607282939fa9b4bac7c6bec2c6cfd0c8c4c3c4c5b8b3aa9f97897c6c60554639291603000000000000000003182e43586d8298adc0d0c0b49f8d8076716f70717373604b3b2a180500000000000000000000000000000000000000000000000000000003111c2325262626262626211f170c00000000000b171f21252525252525211f170d182022292e31323332302d282220180d07000000000000000000000000000000000000000000000000000000000000000000000000050b0d13171a1c1e1f1e1d1c1b1916130d0b050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080e10171917100e09000000000000000002101b2225353535353535353535353535353433302e2a26211f170c0a040000000000000000000000000000000616242f3535353535353535353535353535353535353535353535353535353535353535352d2a2217090000000f1d2830333535353535353535353535353535353535353535353535353535353535352c2a221709000014293e54697e93a9ae99846e59443f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f43596e8398aea9947f69543f2a14000000000000000000000000000000121c304354606d7e8b979fa9adb2b7c3c3cccac5b8b3afaba79e968b8177665e4b4437291b0b0000000000000000000010253b50657b90a2b4c4cfbcab9f958b868585868889745947341f0b0000000000000000000000000000000000000000000000000000000000080e101010101010100c0a0400000000000000040a0c1010101010100c0a0400050b0d14181c1d1e1d1b18130d0b0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c0e1215171819191815130e0b08010000000000000000000000000000000000000002111c23252c2e2c26231c110300000000000010202e373a4a4a4a4a4a4a4a4a4a4a4a4a4a49484643403b373329211f170b0400000000000000000000000000122434424a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a423e35271705000b1d2d3a44484a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a413e342717050014293e54697e93a9ae99846e59442f2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2e43596e8398aea9947f69543f2a1400000000000000000000000000000000132536434a606979828a93989da5aaafbcb9aca69e9a95908981786c61584d403127190b00000000000000000000000e23384b5d6f849aa6b7c4c9bcb4aa9f9b9a9a9b9e8c77624c37220d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c0e1316171919181613100c0a030000000000000000020b0b0b0b0b0b0b0b00000000000000000000000000000000000000060c0e192023272a2d2e2e2e2d2b2824201c140807000000000000000000000000000000000a161e2e373b4143413b382f1e160a00000000081b2e3e4b4f6060606060606060606060605f5e5d5b5855514c473a3633291f170c0000000000000000000000001b2f42525e606060606060606060606060606060606060606060606060606060606060606057524535220f0015283a4b585d60606060606060606060606060606060606060606060606060606060606057524534220f0014293e54697e93a9ae99846e59442f19141414141414141414141414141414192e43596e8398aea9947f69543f2a140000000000000000000000000000000008182530424f5b636d777e83878b959eafac9b928885807b746c625a4c473a301d1509000000000000000000000000081c2f3f4d6278889da6b2bfc9c8bbb4b1afb0b1a48f7a644f3a250f0000000000000000000000000000000000000000000000000000000000000000000000040e14162020202020202020202020202020202020202020202020202020202020202019171107000000000000000000000000000000000000000000000000000000000000071117191a1a1a1a1a1a0f0d070000000000000000000000000000050b0f1a2123282b2d2e2e2d2b2925211e170d0b050000050f1517202020202020202013110b0200000000000000000000000000050e1921232c35383c3f4243444342403d39353026221b1007000000000000000000000000000a1a28323f4b50575957504c3f32281b0a0000000d22374b5c64757575757575757575757575747472706e6a666158534c463a332a1c13020000000000000000000020354a5e7075757575757575757575757575757575757575757575757575757575757575756c63523e2a15001b30445869727575757575757575757575757575757575757575757575757575757575756c63523e2a150014293e54697e93a9ae99846e59442f19040000000000000000000000000004192e43596e8398aea9947f69543f2a14000000000000000000000000000000000008131c323d494e5962696d72757f95aaa7927d736f6b6560554d493c332a1c12010000000000000000000000000000112035485a647a8898a0adb4b9c6bfc0c1c0bca7927d67523d281200000000000000000000000000000000000000000000000000000000000000000000081621292b353535353535353535353535353535353535353535353535353535353535352e2b24180a000000000000000000000000000000000000000000000000000000000b19242c2f2f2f2f2f2f2f24221b100200000000000000000000020d1920222c35393e4042434342413e3b363329221f180d0617222a2c353535353535353528261f140600000000000000000000000d19202c35383c494d5255575859585755524e4b4336362d211a0f010000000000000000000002162838454b5d656c6e6c655d4b453928160300000f253a4f647a8a8a8a8a8a8a8a8a8a8a8a8a8a898885837f7b76706961584c473a311d150a00000000000000000020354a60758a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a816c57422d17001d33485d72878a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a816c57412c170014293e54697e93a9ae99846e59442f19040000000000000000000000000004192e43596e8398aea9947f69543f2a1400000000000000000000000000000000000000141f2c363b474c535856687e93a8a6917c665a56504b4437352b1f180c0000000000000000000000000000000005192b3c4a5c6477838f989ea8a8aaabababa9a695806a55402b15000000000000000000000000000000000000000000000000000000000000000000041626333d404a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a434036281807000000000000000000000000000000000000000000000000000007192936404444444444444439362d20100000000000000000000a151d2b34383d494e5356575958575653504b463937342a201927343e414a4a4a4a4a4a4a4a3e3a31241402000000000000000004121d2b343c494d565a63676a6c6d6e6e6d6a686360544f4a3e362d1f1400000000000000000000091e324556606e7b8183817b6e605745321e0f00000f253a4f647a8f9f9f9f9f9f9f9f9f9f9fa99f9e9d9b9895908b857e766c61584e4232281a0b000000000000000020354a60758a9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f97816c57422d17001d33485d72889d9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f96816c57412c170014293e54697e93a9ae99846e59442f19040000000000000000000000000004192e43596e8398aea9947f69543f2a1400000000000000000000000000000000000000010f1a212a34373e3853687e93a8a6917c6651403b35312720190e040000000000000000000000000000000000000e1e2d3d4a59626e7a82898f929596969594918d826d58422d180000000000000000000000000000000000000000000000000000000000000000000e21334451566060606060606060606060606060606060606060606060606060606060606059534636241100000000000000000000000000000000000000000000000000001124364754595a5a5a5a5a5a4f4a3e2d1b07000000000000000e1a28323c484d565b63686b6c6e6e6d6b68656157544c483b352b344552576060606060606060534e42311f0b00000000000000061422303b484d5b636b72787c7f8283838382807d79746d645c4e4a3d321c130800000000000000071a2d3d4b60748290969896908375604b3e2d1a07000f253a4f647a8fa4b5b5b5b5b5b5b5b5b5bab4b3b2b0adaaaa9f9a938a817668604b4538291b0b0000000000000020354a60758a9fb5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5ac97826c57422d17001d33485d72889db2b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5ac96816c57412c170014293e54697e93a9ae99846e59442f19040000000000000000000000000004192e43596e8398aea9947f69543f2a14000000000000000000000000000000000000000000060d181f22293e53687e93a8a6917c66513c27201d1509060000000000000000000000000000000000000000000f1f2d3b484c5c646d757a7d808181807f7c786d63523f2a1600000000000000000000000000000000000000000000000000000000000000000014293d51626b757575757575757575757575757575757575757575757575757575757575756e6453402b170000000000000000000000000000000000000000000000000002172c4054656e6f6f6f6f6f6f645c4a36220d0000000000000e1e2c38454b5a626b73787d8082838382807e7b76706962594d493c4352636c757575757575757568604e3a261100000000000005142432404d59626d7880878d9194979899989795928e88827a6f635b4f43302518080000000000000c21364a5b6d8297a0acaeaca198826d5c4a36210d000f253a4f647a8fa4b9cacaccc3bfbfbfbfbfc0c1c4c5c3c8bbb4b0a89e96897d6d6056463929180800000000000020354a60758a9fb5cacacaccc3bfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfac97826c57422d17001d33485d72889db2c7cacacec4c1bfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfac96816c57412c170014293e54697e93a9ae99846e59442f19040000000000000000000000000004192e43596e8398aea9947f69543f2a140000000000000000000000000000000000000000000000050b13293e53687e93a8a6917c66513c271108010000000000000000000000000000000000000000000000010f1d2a343e4b4f556064686a6b6c6b6967625a524535230f000000000000000000000000000000000000000000000000000000000000000000162b40566b808a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a826e59432e190000000000000000000000000000000000000000000000000004192f44596e838484848484847a644f39240f00000000000d1d2c3c4956606c7880888e9395979898979693908a857f776d625a4b50616c818a8a8a8a8a8a8a8a7e68533e2813000000000001132332424f5f6778828c969da5a7aaacadaeadacaaa7a69e978f847969614a433625130000000000000e24394e63798ea0b1bec3bfb2a08e79644e39240f000f253a4f647a8fa4b9cfccbcafaaaaaaaaaaabacaeb2b6c3c4cac6b9b4a79e92827461574636261401000000000020354a60758a9fc1d2dbccbcafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa97826c57422d17001d33485d72879db2c7ddcebdb1acaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa96816c57412c170014293e54697e93a9ae99846e59442f19040000000000000000000000000004192e43596e8398aea9947f69543f2a140000000000000000000000000000000000000000000000000013293e53687e93a8a6917c66513c27110000000000000000000000000000000000000000000000000000000d181f2e3737444b4f535556565654514d493c35271706000000000000000000000000000000000000000000000000000000000000000000162b40566b80959f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f98836e59432e19000000000000000000000000000000000000000000000000000a1f354a5f748a9999999999907b66503b2611000000000a1a2b3b495a6374818b969ea6a8abacaeadacaba8aa9f9b948b82786a60606a7f959f9f9f9f9fa095806b604e3a261100000000000f1f30414f60697c89989fabb2b6c3bfc1c1bfc0c2bfc4b8b3aca29a8b7f6c605443301c120000000000142a3f54697f94a9beced8cfbea9947f6a543f2a15000f253a4f647a8fa4b9d4c4af9e95959595959597999ca5a7afb4c0c9c5b9b3a0988475615443301c10000000000020354a60758aa3b5c9cebdaf9e959595959595959595959595959595959595959595959595816c57422d17001e33485e73889db3c9dac4b19f9795959595959595959595959595959595959595959595816c57412c170014293e54697e93a9ae99846e59442f19040000000000000000000000000004192e43596e8398aea9947f69543f2a140000000000000000000000000000000000000000000000000013293e53687e93a8a6917c66513c27110000000000000000000000000000000000000000000000000000000005101b222731363a3d404141403f3c38352c1e170900000000000000000000000000000000000000000000000000000000000000000000162b40566b8095abb5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5ae98836e59432e19000000000000000000000000000000000000000000000000000a1f354a5f748a9fafafafa5907b66503b2611000000021628384859637886969faab3b8c5c0c1c3c2c2c0c8bbb4b0aa9f978b7f73687e939dafbdc2b4a2988272604a42311f0b00000000061a2c3d4d5f697e8d9ea7b5bcc9c5b8b3aeacaaabacb1b5bcc9c0b3a99f948172604a41301b0b00000000162b40566b8095abc7d7e8d8c7ab96806b56412b16000f253a4f647a8fa4b9cbb7a6958080808080808184878c929aa2b0b5c1ccbeb2a2998372604b3e2d1b07000000001c31465b71869bb0c6c4b19f958080808080808080808080808080808080808080808080807c66513b26110020354a60758a9fabbccfc1ac9781808080808080808080808080808080808080808080807c66513b26110014293e54697e93a9ae99846e59442f19040000000000000000000000000004192e43596e8398aea9947f69543f2a140000000000000000000000000000000000000000000000000013293e53687e93a8a6917c66513c27110000000000000000000000000000000000000000000000000000000000000809151d2025282b2c2c2b2a272320190e000000000000000000000000000000000000000000000000000000000000000000000000162b40566b8095abbcbcbcbcbcbcbcbcbcbcbcc0cacacacad4cbc8bcbcbcbcbcbcbcbcae98836e59432e19000000000000000000000000000000000000000000000000000a1f354a5f748a9fb4c4bba5907b66503b2611000000091e3245566277879ca4b4bbc8c8bbb4b1aeadadafb2b7c4c8bbb4a99f94857e8d9fb4bcc4b5a49a847460544330241402000000000c2135495b677d929fabb9c5c1b5b0a79e99969595979b9fabb4bac7bab49f96806b5f4d3929170300000013293e53687e93a9baccd6cdbaa9937e69533e2914000f253a4f647a8fa4b9c8b29d88736a6a6a6a6b6c6f72777d848f9ba3b0bcccc0b3a195806b5c4a36221100000000162b40566b8095abc0c1ac96816c6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a665e4c38240f0010253a50657b8d9fb5c4c3ad98836e6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a665e4c38240f0014293e54697e93a9ae99846e59442f19040000000000000000000000000004192e43596e8398aea9947f69543f2a140000000000000000000000000000000000000000000000000013293e53687e93a8a6917c66513c2711000000000000000000000000000000000000000000000000000000000000000002080b0f131516171614120d0c0600000000000000000000000000000000000000000000000000000000000000000000000000162b40566b8095a7a7a7a7a7a7a7a7a7a7a7a7acb9caddd4c4b7b2a7a7a7a7a7a7a7a7a798836e59432e19000000000000000000000000000000000000000000000000000a1f354a5f748a9fb4c9bba5907b66503b2611000004172a3a4b6074869ca5b5c2c5b8b3aa9f9b9997989a9da6a9b2b7c4bab4a29a939fabbcc6b7a69c86766156453625130600000000091d2f404e63798b9fb4bcc9bcafa39b908983817f8082868c969fa9b8c5bdb09e917c675746331e0a0000000d22374d62778a9fb4b9c6b9b49f8b78624d38220d000f253a4f647a8fa4b9c8b29d88735d5555555657595861686f7a85969eafbbccbfb49f8c7a644f402f1c09000000162b40566b8095abc0c1ac96816c5755555555555555555555555555555555555555555555514c402f1d09000e23374b5d6c8197a6b7c6b2a0917c665755555555555555555555555555555555555555514c402f1c090014293e54697e93a9ae99846e59442f19040000000000000000000000000004192e43596e8398aea9947f69543f2a140000000000000000000000000000000000000000000000000013293e53687e939494917c66513c27110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40566b80929292929292929292929292929bacbfd0cbb7a69d92929292929292929292826e59432e19000000000000000000000000000000000000000000000000000a1f354a5f748a9fb4c9bba5907b66503b261100000a1f3347586a7f94a4b5c3c1b5a79e948b8683828385888d949da6b4bbc0b4b0a8b4bcc8b9a89d88786258463827180800000000000f24384c5e70859aa9bacdbbae9e95857b746e6c6a6b6d7177818b9ea6b8c7bcb39e8876614c3828150200000b20344859697f939ea8a8a89e947f6a5a4834200b000f253a4f647a8fa4b9c8b29d88735d48404040423a474c525c647380949dafbecebbaa9b85705e4c38230d000000162b40566b8095abc0c1ac96816c57414040404040404040404040404040404040404040403b382f22120000081c2e3f4c6176889db3bfbeb29d8776614c3f40404040404040404040404040404040403b382f2212000014293e54697e93a9ae99846e59442f19040000000000000000000000000004192e43596e8398aea9947f69543f2a14000000000000000000000000000000000000000000000000000f24394e647a7f7f7f7f79634d38230e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d121617191918181614110e0b0801000000000000000f24394e647a7d7d7d7d7d7d7d7d7d7d7d7d7d92a1b3c7c8b29d887d7d7d7d7d7d7d7d7d7d7a654f3a2510000000000000000000000000000000000000000000000000000a1f354a5f748a9fb4c9bba5907b66503b261100000c21374c6176899eb3c2c3b5a39b897e76716e6d6d6f73787f87949faabbc8c5bdcacebbaa9e8a7a645a483a291a0a000000000005182a3b51667b90a2b4c7c0ae9d947f706660555755565759626c7a889ea9baccb8a795806a5645321d09000005182b3b4f61697e899193918a7f6a614f3c2b1905000f253a4f647a8fa4b9c8b29d88735d48332b2b2c2a33373e4a55606b7f94a0b2c4c8b4a3907b65503b2b18050000162b40566b8095abc0c1ac96816c57412c2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26241d1204000000111f334658677c91a1b3c5b7a697816c5d4b38282b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26241c1204000014293e54697e93a9ae99846e59442f19040000000000000000000000000004192e43596e8398aea9947f69543f2a14000000000000000000000000000000000000000000000000000d21364a5c646a6a6a6a635b4935210c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0d181f22272b2c2e2e2e2d2b292723201d14100e08000000000d21364a5c646767676767676767676767676f8499afc4c0ab95806b676767676767676767655d4b37230e000000000000000000000000000000000000000000000000000a1f354a5f748a9fb4c9bba5907b66503b2611000013283d52687d92a8b9cbb7a59b85776961585958585a5a636a757f8c9fb4c9dad3dfcab49f8c7c665c4a3c2b1c0c0000000000000b1f3448596f849aafc0c7b3a2947f6a61504b443740403b484d5c64798a9fb4c4c5b39e8875604b36200b0000000d1d32434f6069767c7e7c7669614f43321d0d00000f253a4f647a8fa4b9c8b29d88735d48331e1617181f222e37444b616d8298a6b7cbc1af99846f594834200b0000162b40566b8095abc0c1ac96816c57412c1715151515151515151515151515151515151515110f0900000000000417293a4d5f6e8399a7b9c4b59f8d7b655645321d1515151515151515151515151515110f090000000014293e54697e93a9ae99846e59442f19040000000000000000000000000004192e43596e8398aea9947f69543f2a1400000000000000000000000000000000000000000000000000071a2d3e4a4e545454544d493c2c19060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004121d242a34373d404243434342403e3c3835312625221b10020000071a2d3e4a4e52525252525252525252525a6f8499afc4c0ab95806b5652525252525252524f4b3f2e1c08000000000000000000000000000000000000000000000000000a1f354a5f748a9fb4c9bba5907b66503b26110004192e43596e8398aec6c7b29d877662594c473a42433c494d56606a7b90a5bbd0e5d2bda8927d685e4c3e2d1e0e000000000000000d22374c62778c9fb5cac1af9a8472604a433531262a2b2b343e4a5b697e93a6b7cbb8a6917c66513c261100000000142532424e586166686661584f433225150000000f253a4f647a8fa4b9c8b29d88735d48331e0800040a10192631434c6176889db3c5cab49f8b77624d37220d0000162b40566b8095abc0c1ac96816c57412c17020000000000000000000000000000000000000000000000000000000b1b30404d6277899eb3c0bcab9c8674604b3d2d19090000000000000000000000000000000000000014293e54697e93a9ae99846e59442f19040000000000000000000000000004192e43596e8398aea9947f69543f2a1400000000000000000000000000000000000000000000000000000f202d36393f3f3f3f38352c1e0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c171f30393b484c525557585958575654514e4b44373a372e21100000000f202d36393d3d3d3d3d3d3d3d3d3d445a6f8499afc4c0ab95806b56403d3d3d3d3d3d3d3a372e211100000000000000000000000000000000000000010304030200000a1f354a5f748a9fb4c9bba5907b66503b261100031729395d72889db2c7baa9927d6758473b33292d2e2c3544556074849aafc5dadfcab59f8a75604e402f200f000000000000000013283d52687d92abbcc8b4a38e7a64544330201d14151618202d3d4b6074889db3c8c5ac97826d5738281502000000071424313a464c5153514c473a322415070000000f253a4f647a8fa4b9c8b29d88735d48331e080000000009141e334657687e93a6b8cbbcab937e69543626140100162b40566b8095abc0c1ac96816c57412c1702000000000000000000000000000000000000000000000000000000001220344859687e93a2b4c7b6a495806b5b4a3726140100000000000000000000000000000000000014293e54697e93a9ae99846e59442f19090909090909090909090909090909192e43596e8398aea9947f69543f2a140000000000000000000000000000000000000000000000000000010f1a21242a2a2a2a2321190e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c2a33404d515962676b6c6e6e6d6d6b6966636055564f4b3f2e1b080000010f1a21242828282828282828282f445a6f8499afc4c0ab95806b56402b28282828282825231c1103000000000000000000000000000000060c0e13161819181714100b1f354a5f748a9fb4c9bba5907b66503b2611000a1e33465774899fb4c9b49f8a76614b3a2a1f17182433444b60738399a2b4c8dce5d0bba5907b66503c2c19060000000000000002172d42576c8297acc9c5b09b85705c4a3625130801000005101d3144556b8095aac9c6b19c86715645321d090000000010202d36393e3e3e3e3e38352c1f0f000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000031729394b6075889eb3c8c9ae99846f5443301c0800162b40566b8095abc0c1ac96816c57412c17020000000000000000000000000000000000000000000000000000000005182b3b4a6072849aa9bac2b49f8b79635544311d0e00000000000000000000000000000000000014293e54697e93a9ae99846e59442f1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e2e43596e8398aea9947f69543f2a1400000000000000000000000000000000000000000000000000000000070d0f151515150e0c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1d2a3a474c5e6671777c808183838382807e7c7875706b655d4b37220e00000000070d0f12121212121212121a2f445a6f8499afc4c0ab95806b56402b161212121212100e08000000000000000000000000000002090f1a2123282b2d2e2e2c2925201d354a5f748a9fb4c9bba5907b66503b2611000c21364b61768ba9bac7b29d87725746321c0d1323324250626c8197a1b2c0d1cfdad9c4af99846f5a4935200c00000000000000001325365b70869bb0c5bfaa95806a553e2d180800000000000215273750657a90abbccab49f8a75604b36200b000000071b2d3e4a4f53535353534e493d2c1a060000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000000b1d3245566c8197acc8c9b49e8974604b35200b00162b40566b8095abc0c1ac96816c57412c170909090909090909090909090900000000000000000000000000000000000d1c30435463798b9fb4c2bbaa9b8573604b3c2c1906000000000000000000000000000000000014293e54697e93a9ae99846e59443434343434343434343434343434343434343443596e8398aea9947f69543f2a14000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005182a3b475861707c868c929597989898979593918d8a85807b654f3a25100000000000000000000000000000051a2f445a6f8499afc4c0ab95806b56402b160100000000000000000000000000000000000000000a161e212c35383d41434443423f3b3631274a5f748a9fb4c9bba5907b66503b2611000b20364b60758ba8b9c7b29c87725443301c112130414f606b80959fb1bfcec9bac4c8cab59f8c78634d38230e00000000000000071c30435473889db3babaa5907b66503b2611000000000000000c21364b61768a9fb4cabbaa8d78624d38230d0000000d22364a5c646868686868635b4935210c0000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000000215283850657b90aabbccb9a88d78634d38230e00162b40566b8095abc0c1ac96816c57412c1f1f1f1f1f1f1f1f1f1f1f1f1f1f14120c020000000000000000000000000000132536495b6a7f95a4b5c8b5a3947f695a49352013000000000000000000000000000000000014293e54697e93a9ae99846e59494949494949494949494949494949494949494949596e8398aea9947f69543f2a14000000000000000000000000000002090b171717171717170b090300000000000000000000000000000000000000000000000000000000000000040a0c11151718191a1a14120c0300000000000000000000000000000000000000000b1f344759627684919ba3a7aaacadaeadacaba9a6a99f9b96826d57422d180000000000000000000000000000051a2f445a6f8499afc4c0ab95806b56402b160100000000000000000000000000000000000003111a2832363d494e53565859585754504b44374a5f748a9fb4c9bba5907b66503b261100081d31445574899eb3c9b49e8974604a3520202f3f4d5f697e939eafbdc8bbb4a5afb4c0bcab947f6a553a2a18040000000000000b20354a60758a9fa5a5a5a38d78634e38230e000000000000000a1e32465773899eb3c8c8a48f7a644f3a250f0000000f24394f647a7e7e7e7e7e79634e38230e0000000f253a4f647a8fa4b9c8b29d88735d48331e08000000000000000c21364b61768a9fb4cac6a6917c66513c271100162b40566b8095abc0c1ac96816c574134343434343434343434343434343429261f14060000000000000000000000000008182c3d4b6074869cabbcc1b49f8a78624d41311d0d0000000000000000000000000000000014293e54697e93a9ae99846e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e6e8398aea9947f69543f2a14000000000000000000000000000a151d202d2d2d2d2d2d2d211e160a00000000000000000000000000000000000000000000000000000002090c171f21262a2c2d2f2f2f2a27201407000000000000000000000000000000000000091d2f404c6277869aa2b0b5c1c0c1c3c3c2c2c0bec7bab4aa947f6a553f2a150000000000000000000000000000051a2f445a6f8499afc4c0ab95806b56402b160100000000000000000000000000000000000714212f38454b545b63686b6d6e6d6c696560554c475f748a9fb4c9bba5907b66503b261100021527375c71869cb1c6b9a88f7a644f3f2f2d3e4c5d677d8d9fb5bccebbaa9f909aa2b4c9b19b86715947341f0a0000000000000b21364b60758b90909090908c77624c37220d00000000000000031629395d72879db2c7baa5907b65503b2610000000162b40556b8093939393927d68533d28130000000f253a4f647a8fa4b9c8b29d88735d48331e0800000000000000091e32465772879cb1c7bea9947f69543f2a1400162b40566b8095abc0c1ac96816c57494949494949494949494949494949493e3b32241402000000000000000000000000000f1d314556647a8c9fb4c4baa89a846f5f4e3b2a180500000000000000000000000000000014293e54697e93a9ae9983737373737373737373737373737373737373737373737373738398aea9947f69543f2a140000000000000000000000000a1a283236424242424242423632281a0a000000000000000000000000000000000000000000000000000a161e212933363b4041434444443f3b3225140300000000000000000000000000000000000f24384c5e6f849aa4b4c0c9cbc8c6b9b4b2b1b2b3b9c5bca7927c67523d27120000000000000000000000000000051a2f445a6f8499afc4c0ab95806b56402b160100000000000000000000000000000000061425323f4c56606971787d80828383817e7a756b61595f748a9fb4c9bba5907b66503b26110000172c41576c8196acc3c6ad98826d5d4b3e3d4a5c657c8b9fabbccfbbb49f8c7a849aafc4b5a38c77614c37220c0000000000000b20354b60747b7b7b7b7b7b7b73604b35200b00000000000000001c31465c71869bb1c6bba6907b66513b2611000001162b40566b8095a8a8a8937e68533e29130000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000000003162839596e8399aec3c0ab96816b56412c1600162b40566b8095abc0c1ac96816c5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e534f42321f0c00000000000000000000000000021527384b5c6c8196a6b7c6b4a2927d685947341f1200000000000000000000000000000014293e54697e93a9b49f8b888989898989898989898989898989898989898989898989888b9fb4a9947f69543f2a14000000000000000000000002152838454b575757575757574b45382816030000000000000000000000000000000000000000000002131a2832363a464c51555658595a5a544f4332200c0000000000000000000000000000000005182a3b51667c91a1b3c2d1c4b7b2a8a89e9c9c9c9ea7a5aaa48f7a644f3a250f0000000000000000000000000000051a2f445a6f8499afc4c0ab95806b56402b160100000000000000000000000000000003142432434f5d65757e868d9296989998979490898077655d748a9fb4c9bba5907b66503b2611000011263b51667b90a4b6cab59f8d7b655c4d495b647a8a9ea9bac9bdaf9d927d697e93a9c6c2a6917c66513c2711000000000000081d3144556065656565656565605544311d0800000000000000071c31465c71869bb1c6bba6907b66513b2611000001162c41566b8196abbda9937e69543e29140000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000000000172c41576c8196acc1c2ad98836d58432e1800162b40566b8095abc0c1ac968174747474747474747474747474747474747469604f3b261200000000000000000000000000000a1a2e3e4b6175879db2bec0b39e8977624c40301b0b000000000000000000000000000014293e54697e93a9baa99f9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9fa9baa9947f69543f2a140000000000000000000000091d324556606c6c6c6c6c6c6c605645321e090000000000000000000000000000000000000000000a161e3138454b535861666a6c6d6e6f6f69614f3b2712000000000000000000000000000000000b1f3447596f849aafbfd0c1b5a69d938d89878687898c90949a8c77624c37220d0000000000000000000000000000051a2f445a6f8499afc4c0ab95806b56402b1601000000000000000000000000000000112132434f61697b87939ca4a8abadaeadaca9a79e96887b65748a9fb4c9bba5907b66503b261100000b20354b6074879cb2bfbcab9e897a675f596379899ea8b9c7bfb19f947f6a63788ea8b9c0ab96806b56412b1600000000000001142637444b505050505050504b443726140100000000000000071c31465c71869bb1c6bba6907b66513b2611000001172c41566c8196abbea9947f69543f2a140000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000000000152a40556a7f95aabfc4ae99846f59442f1a0020354a60758a9eb0c3c4b19f968989898989898989898989898989898989897e69533e2914000000000000000000000000000000101e334657667c91a0b2c5b8a798836e5e4c3a2917040000000000000000000000000014293e54697e93a9c7bab4b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b4bac7a9947f69543f2a1400000000000000000000000b20364b60748182828282828175604b36210b00000000000000000000000000000000000000000a1a2832424e56606871767b7f81828484847f69543f2a14000000000000000000000000000000000d22374c62778b9fb5cac9b5a39b877e787472717274777b7f848973604a35200b0000000000000000000000000000051a2f445a6f8499afc4c0ab95806b56402b160100000000000000000000000000000a1a2f3f4f61697f8d9da5b1b6c2c0c2c3c1bfc5b9b3a69e8a79748a9fb4c9bba5907b66503b26110000081d314455677d92a1b3c2b9a79e8a7d706677879da7b8c6c1b3a197816d616074899eb3c4ae99846f593726140100000000000009192631353b3b3b3b3b3b3b35312619090000000000000000071c31465c71869bb1c6bba6907b66513b2611000002172c42576c8197acbfa9947f6a543f2a150000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000000000142a3f54697f94a9bec4af9a846f5a452f1a0020354a60758a9fbccdcebdb1a79e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e947f69543f2a14000000000000000000000000000000031729394c5e6e8398a7b8c5b2a0917c665846331f110000000000000000000000000014293e54697e93a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4947f69543f2a1400000000000000000000000c21364b61768b97979797978b76614c36210c0000000000000000000000000000000000000002162838454b6068757e868b90959698999999846f5a452f1a0000000000000000000000000000000012273d52677c92abbccfbcab9b857669625a5d5c5d5861656a6f74605443301c070000000000000000000000000000051a2f445a6f8499afc4c0ab95806b56402b160100000000000000000000000000031628384b5d697f949fabb7c3cac7bab4afacaaaaabaeb2a89a84748a9fb4c9bba5907b66503b26110000011426374a60728399a4b4c0b9a89e92847b869ca5b7c5c3b5a3998373604b5470859aafc5b29d87725544311d080000000000000009141d2026262626262626201d1409000000000000000000071c31465c71869bb1c6bba6907b66513b2611000002172d42576c8297acbfaa957f6a55402a150000000f253a4f647a8fa4b9c8b29d88735d48331e08000000000000000014293e54697e93a9bec5af9a85705a45301b0020354a60758a9fb5cadbcec5b9b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3a9947f69543f2a14000000000000000000000000000000000b1b2f404c6277899eb3c0beb29d8876614c3f2e1a0a00000000000000000000000014293e54697f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f7f69543f2a1400000000000000000000000c21364b61768ba0acacaca18b76614c36210c000000000000000000000000000000000000000e1e324556606d7e88939b9fabaaabadaeaf9c87725c3a291704000000000000000000000000000001172c41566c8196abc9cab59f8c7963584d483c473a474c505555605544362513000000000000000000000000000000051a2f445a6f8499afc4c0ab95806b56402b160100000000000000000000000000091e324556657b8d9fb5bcc9c5b9b3a99f9a97959596999da5a28c778a9fb4c9bba5907b66503b2611000000091c3043546175869aa2b4bbb9b4a29a909ca4b5c3c5b7a59b8575615544576d8297acc2b49f8a75604b35200b000000000000000001080b101010101010100b080100000000000000000000071c31465c71869bb1c6bba6907b66513b2611000002182d42576d8297acc0aa95806b55402b160000000f253a4f647a8fa4b9c8b29d88735d48331e08000000000000000014293f54697e94a9bec4af9a856f5a45301a0020354a60758a9fb5cadfdacdc4c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0bea9947f69543f2a140000000000000000000000000000000000121f344759687d92a2b4c7b7a697816c5d4b3828160200000000000000000000000d22374c62777a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a77624c37220d00000000000000000000000c21364b61768ba0b6c1b6a18b76614c36210c0000000000000000000000000000000000000e1e32434b607482929ea6b1b5bcc9c1c0beb49e89745846331f0a0000000000000000000000000000051a2f445a6f8499afc4c5b09b85705b4a3a352b312a33373b37444b4437271808000000000000000000000000000000051a2f445a6f8499afc4c0ab95806b56402b1601000000000000000000000000021527384b6075879dabbccfc2b5a79e938a8481807f8183878e99968196a9bacdbba5907b66503b2611000000001325364657617684969faab4bab4afa6b1b5c2c7b9a79d877762574637556a7f94aabfbcab8c77624c37220d00000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611000003182d43586d8298adc0ab96806b56412b160100000f253a4f647a8fa4b9c8b29d88735d48331e080000000000000000152a3f556a7f94aabfc4ae99846f59442f1a0020354a60758a9fc2d2dbcdbcb0ababababababababababababababababa9947f69543f2a14000000000000000000000000000000000005182a3b4e606f849aa9bac4b59f8d7b655645321e0f00000000000000000000000b1f34485962646464646464646464646464646464646464646464646464646464646464646464646462594834200b00000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000000000000000000000000006192b3c4f616e83979fb3b8c4c4b8b3adaaa9a8a88b76614c36210c0000000000000000000000000000071c32475c71879cb1c6c0ab96806b563d2d20191c181f22262731363127190900000000000000000000000000000000051a2f445a6f8499afc4c0ab95806b56402b1601000000000000000000000000091d3145566a7f94a5b7c9c3b5a49c897e766f6c6a6a6b6e72798394969eb0c7d7bba5907b66503b2611000000000818293947586174808b989fa9bac5bbc6c9c9baa99e8979635948393e53687d93a8bdc9a38e79644e39240f00000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611000003182e43586d8398adc0ab96816b56412c160100000f253a4f647a8fa4b9c8b29d88735d48331e080000000000000001162b41566b8096abc0c3ae98836e59432e190020354a60758aa4b5c9cebdb09e9696969696969696969696969696969696947f69543f2a140000000000000000000000000000000000000d1d31424d63788b9fb4c2bcab9c8674604b3e2d19090000000000000000000005182a3b484c4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4c483b2b180500000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000000000000000000000000000000000b2035485a697f94a1b1bec3b7b2a69d98959493938e79634e39240e0000000000000000000000000000091e33495e73889eb3c8bda8937d68533e28130500040a0c10151d201d15090000000000000000000000000000000000051a2f445a6f8499afc4c0ab95806b56402b16010000000000000000000000000b20364b6075889db3c3cab6a59c867769615757555556595c646e7f94a2b3c7d0bba5907b66503b261100000000000b1b2a3a4756606b78838b9fb4c9d0dbcfbcab9f8b7b655b493b2b3c51667c91a6b9b9a58f7a65503a251000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611000004192e43596e8398aec1ac96816c57412c170200000f253a4f647a8fa4b9c8b29d88735d48331e080000000000000003182d42586d8297adc2c1ac97816c57422c17001c31475c71869cb1c6c4b19f968081818181818181818181818181818181807b65503a251000000000000000000000000000000000000000132035495a6a7f94a3b5c8b6a495806b5c4a37261401000000000000000000000d1d2a34373a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a37342b1d0d0000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000000000000000000000000000000031729394d62788b9fb4bfc2b5a59d918883807e7e7e7e77624d37220d00000000000000000000000000000a1f344a5f74899fb4c9bba6917b66513c261100000000000002080b080200000000000000000000040a0c0d0d0d0d0d0d1a2f445a6f8499afc4c0ab95806b56402b160100000000000000000000000012273c51677c91a6b8cbc0b29d877762594c46394040413e4a4f616f849aafc4d0bba5907b66503b26110000000000000c1c2a38454b5b636e788da2b7cdcfbeb59f8d7d675d4b3d2c263b50667b90a3a3a3a3907b66503b261100000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611000004192e44596e8399aec1ac97826c57422d170200000f253a4f647a8fa4b9c8b29d88735d48331e080000000000000005182b3b5a70859aafc5bfaa95806a55402b1500162b40566b8095abc0c1ac96816c6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b655d4b37230e0000000000000000000000000000000000000006192c3c4b6073869baabbc3b49f8c7a645544311d0e00000000000000000000000d181f2225252525252525252525252525252525252525252525252525252525252525252525252220180d000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000000000000000000000000a1e3346576c8196aabbc7b5a49c877c746e6b6969696962594834200b00000000000000000000000000000a1f354a5f748a9fb4c9baa5907b65503b261000000000000000000000000000000000000000000b171f21232323232323232f445a6f8499afc4c0ab95806b56402b16010000000000000000000000061a2c3d586d8398adc4c8b4a2907b6659483b33292b2a2c2d364351667b91a6bbd0bba5907b66503b2611000000000000000c1a27313c4b5d6d8297acc2d2c2b2a0947f6a5f4d3f2e1f253b50657b8e8e8e8e8e8e7c66513c261100000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611000004192f44596e8499aec2ad97826d58422d180300000f253a4f647a8fa4b9c8b29d88735d48331e08000000000000000b2034485973889db3c8bda8937d68533e281300162b40566b8095abc0c1ac96816c5756565656565656565656565656565656504b3f2e1c0800000000000000000000000000000000000000000e1d314455647a8c9fb4c3bbaa9b8573604b3c2c19060000000000000000000000050b0d0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0d0b0500000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000000000000000000000000c21364c6176899eb4c8baa99c867767605455545353534d483b2b180500000000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b2610000000000000000000000000000000000000000b1b2933363838383838383838445a6f8499afc4c0ab95806b56402b160100000000000000000000000c2135495b73889eb3c8c9af9a846f5e4c3a2a1e171515161b21374c61768ca1b6cbbba5907b66503b261100000000000000000a1c304354657b8f9fb1c5c7b5a498826e614f4130211121364b617579797979797976614c36210c00000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b26110000051a2f445a6f8499afc2ad98826d58432d180300000f253a4f647a8fa4b9c8b29d88735d48331e08000000000000000d22374c62778ca6b7cbc3a48f7a654f3a251000162b40566b8095abc0c1ac96816c57414141414141414141414141414141413a372e2111000000000000000000000000000000000000000000011527374a5c6b8196a5b7c8b5a3947f695a493520130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000011263b51667b90a8b9c9b49f8a7963594b43363f3e3e3e37342b1d0d0000000000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b26100000000000000000000000000000000000000417293a464c4d4d4d4d4d4d4d4d4d5a6f8499afc4c0ab95806b56402b160100000000000000000000000e23384e63788da6b8cbbcab927d6852402f1c0d030000000a1f334758758a9fb5cabba5907b66503b261100000000000000000b20354b6073859bb1bdcdbaa99c8675604b43322313091e32465761646464646464615846331f0a00000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b26110000051a2f455a6f849aafc3ad98836e58432e190300000f253a4f647a8fa4b9c8b29d88735d48331e080000000000000316283951677c91a6c4cab6a58c76614c37210c00162b40566b8095abc0c1ac96816c57412c2c2c2c2c2c2c2c2c2c2c2c2c2c2c25231c11030000000000000000000000000000000000000000000009192d3e4b6175879db2bec1b49f8a78634d42311d0d00000000000000000000070c0e20202020202020200a04050e1417202020202017150f05040a20202020202020200f0d07000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000000000000000000000000000001162b40566b8095abc6c7ac97816c5b493b3026292929292220180d000000000000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b26100000000000000000000000000000000000000a1f33465861626262626262626262626f8499afc4c0ab95806b56402b1601000000000000000000000011273c51667c91a6c5cab49f8b76614c362112000000000004172a3a60758a9fb5cabba5907b66503b261100000000000000061a2c3d51677c91a3b5c9c2b49f8b796357453225150503162839464b4e4e4e4e4e4e4c463a29170400000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b26110000051b30455a70859aafc3ae99836e59442e190400000f253a4f647a8fa4b9c8b29d88735d48331e08000000000000091e3245576d8298adc2c7b29d87725847331f0a00162b40566b8095abc0c1ac96816c57412c1716161616161616161616161616100e0800000000000000000000000000000000000000000000000000101e324657667b90a0b2c5baa99a846f604e3b2a180500000000000000010f1a212435353535353535351f181622292c35353535352c2a2217171f353535353535353524211a0f0100000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000050b1b30455a70859aafc5baa98f7a644f3d2c1c14141414140d0b0500000000000000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b26100000000000000000000000000000000000000c21364c61767878787878787878787878869cb1c7c1ac97826c57422d17020000000000000000000000152a3f546a7f94a9bfc7b29c87725846331f0a00000000000020354a60758a9fb5cabba5907b66503b2611000000000000000c2135495b70859bb0c1c9b5a4947f6a5b493928160700000b1b2832363939393939393633291b0b0000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b26110000061b30455b70859ab0c4ae99846f59442f1a0400000f253a4f647a8fa4b9c8b29d88735d48331e080000000000031628384b6075899eb3c9c7ad97826d583a2a170400162b40566b8095abc0c1ac96816c57412c170201010101010101010101010100000000000000000000000000000000000000000000000000000000031628394c5e6d8298a7b8c7b4a2927d685948341f12000000000000000f1f2d36394a4a4a4a4a4a4a4a332a26343e414a4a4a4a4a413e342729334a4a4a4a4a4a4a4a39362d200f00000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000000000000000030d181f222b485d72879db2c7b49f8a75604b362220180d03000000000000000000000000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b2610000000000000000000000000000000000000152a3f556a7f8d8d8d8d8d8d8d8d8d8d8d9ca4b6cac5b19f8a75604a35200b0000000000000000000000172c41566c8196abc1c3ae99836e593a29170400000000000b20354a60758a9fb5d7bba5907b66503b2611000000000000000e23384e63788da2b4c8c5b19c8674604b3d2c1b0a000000000b161e21242424242424211f170b000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b26110000061b31465b70869bb0c4af9a846f5a452f1a0500000f253a4f647a8fa4b9c8b29d88735d48331e080000000001111e324556687e93a7b9ccbaa9927d67523d27120000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000000000b1b2f404c6177889eb3bfc0b39e8977624c40301c0c0000000000071a2d3d4a4e606060606060605e473a344451566060606060575245343a465e606060606060604e4a3e2d1a07000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000000000000000000000b161e2a34373b485473899eb3c6b19c867155483b37342b1e160b0000000000000000000000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b2610000000000000000000000000000000000000152a3f556a7f94a2a2a2a2a2a2a2a2a2a2b1b6c2d3cebd9f8a75604a35200b0000000000000000000000182e43586d8398adc2c1ab96816c56412c170000000000000b20354a60758aa9bacdbba5907b66503b261100000000000000152a3f546a7f94a9c0ccb8a7917c675544311f0e00000000000003090c0f0f0f0f0f0f0c0a0400000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b26110000061c31465b71869bb0c4af9a856f5a45301a0500000f253a4f647a8fa4b9c8b29d88735d48331e0800000108141c2f404b6075879db2c5c9b49f8a76614b36210c0000162b40566b8095abc0c1ac96816c57412c1702000000000000000000000000000000000000000000000000000000000000000000000000000000000000111f334758677d92a1b3c6b9a798836e5e4d3a291704000000000c21364a5b70757575757575757058473e51626c75757575756c63523e46587075757575757575705c4a36210d000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000000000010f1b28323b474c545962748b9fb4c5b09a85706259554c483b32281b1002000000000000000000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b2610000000000000000000000000000000000000152a3f556a7f94aab7b7b7b7b7b7b7b7b7c7cad3cfcebe9f8a75604a35200b0000000000000000000000192e44596e8399aec3c0aa95806b55402b160000000000000a1f354a5f748a9fb4c9bba5907b66503b2611000000000000021527375a6f849aafc4c8b39e8874604b3727150000000000000303030303030100000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b26110000071c31465c71869bb1c5b09a85705b45301b0600000f253a4f647a8fa4b9c8b29d88735d48331e0a0c0e141c26303f4c5e6b8095a5b7cbc0ae98836e5746331e0a0000162b40566b8095abc0c1ac96816c57412c170a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a010000000000000000000005070a0a0a0a0a0a0a0a0a0a0a04182a3a4d5f6f849aa8bac5b2a0917c665846331f11000000000e24394e63798a8a8a8a8a8a8a77614c41566c818a8a8a8a8a816c57414c61768a8a8a8a8a8a8a7a644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000000003111f2d39464b59626a71777d92abbcc8b4a2917d77726a62594b46392d2011030000000000000000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b2610000000000000000000000000000000000000152a3f556a7f94aababababababababababababababab2a08a75604a35200b00000000000000000000001a2f44596f8499aec4bfa9947f6a543f2a150000000000000a1f354a5f748a9fb4c9bba5907b66503b2611000000000000081d31445573889eb3c8c3ae98836e55443119090000000a101219191919191916140e0400000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b26110000071c32475c71879cb1c5b09b86705b46311b0600000f253a4f647a8fa4b9c8b29d88735d4833171e2124263036434b5d667c8d9fb4c3c9b4a28f7a644f392917030000162b40566b8095abc0c1ac96816c57412c1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f17140e0500000000000a141a1c1f1f1f1f1f1f1f1f1f1f1f1f1f1c30414d62788a9fb4c1bfb39d8876614c3f2e1a0a0000000e24394e63798e9f9f9f9f9f8c77614c41566c81969f9f9f96816c57414c61768b9f9f9f9f9f8e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000000111212e3d4a57616b777f868c929badc9d1c0ac9b918c877f776b61574a3e2e21110100000000000000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b2610000000000000000000000000000000000000152a3f556a7f94a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a498826d58432d180300000000000000000000001a2f44596f8499aec4bfaa957f6a55402a150000000000000a1f354a5f748a9fb4c9bba5907b66503b26110000000000000b20364b60758ba6b8cbbfaa957f6a55372715000004121d24272e2e2e2e2e2e2b29211608000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b26110000071d32475c72879cb1c6b19b86715c46311c0700000f253a4f647a8fa4b9c8b29d88735d48342933363936434b5460697b8a9fabbccfbcab9a85705d4b371b0b000000162b40566b8095abc0c1ac96816c57413434343434343434343434343434343434343434342c292216080000000e1c272f3234343434343434343434343434343435495a697f94a3b5c8b7a697826d5d4b3828160300000e24394e63798ea3b5b5b5a18c77614c41566c8196abb5ac96816c57414c61768ba1b5b5b5a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000000f1f2e3f4b5c6475808a949ca4a7adbacad7c9b9aca6a49c948a8075645c4b3f2e200f00000000000000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b2610000000000000000000000000000000000000152a3f556a7f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f806b56402b16010000000000000000000000192e43596e8398aec3c0ab96806b56412b160100000000000a1f354a5f748a9fb4c9bba5907b66503b26110000000000000c21374c61768ca1c5d5bea9937e69543e29140000122230393c434343434343403d3326160400000000000000000000000000000000000000000000000000000000000a0a0a0a0a0a0a1c31465c71869bb1c6bba6907b66513b26110000081d32485d72879db2c6b19c86715c47311c0700000f253a4f647a8fa4b9c8b29d88735d494939464b4e52546066737e8c9fa8bac9c1b49f8c7a644f3f2e1b00000000162b40566b8095abc0c1ac96816c5749494949494949494949494949494949494949494949413e34261605000a1c2c394347494949494949494949494949494949493c4b6073859baabbc4b19f907b655645321e0900000e24394e63798ea3b8cab6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cab9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000b1b2d3d4b5d657a86959fa8b1b6c2cac6c3c2c3c6cac2b6b1a99f96867a655d4b3e2d1c0c000000000000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b26100000000000000000000000000000000000000d22384d62787a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a78624d38220d000000000000000000000000182d42586d8297adc2c1ac97826c57422d170000000000000a1f354a5f748a9fb4c9bba5907b66503b26110000000000000b20364b60758ba8b9cdbfaa947f6a553f2a15000a1d30404d5158585858585856514433210e0000000000000000000000000000000000000000000000000000080e101f1f1f1f1f1f1f1f31465c71869bb1c6bba6907b66513b26110000081d33485d72889db2c7b19c87725c47321d0700000f253a4f647a8fa4b9c8b29d88735f5f5f5f576163676c747b85949faabac6c3b5a396816c5c4a36201000000000162b40566b8095abc0c1ac96816c5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f56514434220e001427394a575c5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f55647a8c9fb4cabdb29c8775604b36210b00000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000031729394a5b657b8a9ca4b4bac6c8bbb4b1aeadaeb1b4bbc8c7bab4a49c8a7b655c4a3a2917040000000000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b26100000000000000000000000000000000000000b2034485a62656565656565656565656565656565656565625a4835200b000000000000000000000000162b41566b8096abc0c4af9a856f5a3c2c19060000000000081d314455758a9fb4cabba5907b66503b2611000000000000091d32455674899eb4c9c1ac97816c573e2d190d0d24394d5f676e6e6e6e6e6e6b62513d291400000000000000000000000000000000000000000000000003111c2325343434343434343434465c71869bb1c6bba6907b66513b26110000081e33485d73889db2c7b29d87725d48321d0800000f253a4f647a8fa4b9c8b29d8874747474747576797c8188909ba3b4bbc8c3b6a59b8574604b3e2d1b0200000000162b40566b8095abc0c1ac96817474747474747474747474747474747474747474747474746c62513e2914001a2f435768717474747474747474747474747474747474747474748096abc0cab6a596806b56412b1601000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000000000a1e33465763798a9ea8b6c2c5b8b3aa9f9b9897989b9faab3b8c4c2b6a89e8a7a645846331f100000000000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b261000000000000000000000000000000000000005192b3c484d4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4d483c2b190500000000000000000000000014293e53697e93a8bec8b39e88735a4935200800000000000b20354b60758aaabbcebba5907b66503b2611000000000000021528385d72879db2c7c6b19c86715c4a37282222293951677d838383838383806b56402b1601000000000000000000000000000000000000000000000011212e373a494949494949494949495c71869bb1c6bba6907b66513b26110000091e33495e73889eb3c8b29d88735d48331e0800000f253a4f647a8fa4b9cbb7a68f8a898989898a8b8e91979da6b0b5c1cbbfb3a59c8778625645322010000000000020354a60758a9eb0c3c4b19f96898989898989898989898989898989898989898989898989816c56412c17001c32475c71868989898989898989898989898989898989898989898c9fb4cad3c3b09e8a75604a35200b000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000000071a2d3e4c6176879da8b9c6c0b4a79e948b86838283868b939ea6b4c0c6b9a89d8776614c3e2d1b0700000000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b2610000000000000000000000000000000000000000d1d2b34383a3a3a3a3a3a3a3a3a3a3a3a36434b43363a38352b1e0e0000000000000000000000000010263b50657b90a5c3ccb8a78d78634d36261401000000000c21374c61768ca1b6d8bba5907b66503b261100000000000000192e43596e8398aec8c9b5a48e796455453837373846576d82979898989898856f5a45301a0500000000000000000000000000000000000000000000081c2e3f4b4f5f5f5f5f5f5f5f5f5f5f5f71869bb1c6bba6907b66513b26110000091e34495e73899eb3c8b39d88735e48331e0900000f253a4f647a8fa4b9d4c4b7a89e9e9e9e9f9faba3a7acb2b7c4c9c4b7b2a1998778625a4838281502000000000020354a60758a9fbccdcebdb1a89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e97816c57422d17001d33485d72889d9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9fabbccfddc8b29d88735d48331e08000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000d21364a5c6c8197a5b7c6c0b4a29a887e77716e6d6e71767e889aa2b4c0c6b7a597826d5c4a36220e00000000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b261000000000000000000000000000000000000000000d19202225252525252525252a39464b56546054594e4a3d2f2211000000000000000000000000000c22374c61778ca5b6cac5aa947f6a5443301c0d0000000110253a4f657a8fa4bacfbba5907b66503b26110000000000000013293e53687e93aabbcec2b09a847360564f4d4c4f566175889dadadadad98836d58432e1803000000000000000000000000000000000000000000000e23374b5d65747474747474747474747474869bb1c6bba6907b66513b261100000a1f34495f74899eb4c8b39e89735e49341e0900000f253a4f647a8fa4b9cfd4c6b9b4b4b4b4b4b4bcc9bcc1c8c5c3b6b2a69d928376625a483c2b1a0a00000000000020354a60758a9fb5cadbcec6b9b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4ac97826c57422d17001d33485d72889db2b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4bcc9d9d5c8b29d88735d48331e08000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000005192b3c4e64798d9fb5c3c5b4a29a847769615859585958616977849aa2b4c4c3b19f8e7a644f3c2b1906000000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b2610000000000000000000000000000000000000000000050b0d101010101010182a3a4757616b7275746e635b4c402f1c0c0000000000000000000000000a1f34475972879cb2c7c6b19c8673604b3c2b1c131011141c304054697e94a9bed0bba5907b66503b2611000000000000000d23384d62788b9fb4c8c8b4a29882756a6462626469748298a6b8c3bfa8937e69533e2914000000000000000000000000000000000000000000000010253a4f657b8a898989898989898989898a8fa3b5c9bba6907b66513b261100000a1f344a5f74899fb4c9b49e89745f49341f0000000f253a4f647a8fa4b9c0c0c3c3c0c0c0c0c0bfbebdc7bab4b0aaa59c93887d6e6158483c2b1d0d0000000000000020354a60758a9fb5cacad3cac6c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0ac97826c57422d17001d33485d72889db2c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0b29d88735d48331e08000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000b2035485a6e8399abbcccb8a79a847461594c473a423a474c586174849aa6b8cbbdae99836e5a4835200b000000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b261000000000000000000000000000000000000000000000000000000000000a1f334758617580888a898379665e4c3a2a1804000000000000000000000004182a3a576c8196acc2cab6a4927d685a483a3028262626303d4c5e71869bb1c6d0bba5907b66503b2611000000000000000b2035485a6d8298aabbcec0b2a098887f797777797e8698a0b2c4c7b2a18d78624d38230d000000000000000000000000000000000000000000000010253a50657a8f9e9e9e9e9e9e9e9e9e9e9ea8b5c2d2bba6907b66513b261100000a1f354a5f748a9fb4c9b49f8a745f4a26140100000f253a4f647a8fa4abababadb0abababababaaa9a8a5a99f9b958f877e75675f4c463a2b1e0e000000000000000020354a60758a9fbdb5b5c2b6b1ababababababababababababababababababababababab97826c57422d17001d33485d72889dababababababababababababababababababababababababababab9d88735d48331e08000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000d22384d62788c9fb4c9c3b39e89776156473a332a2d2a333a47566176889eb3c3cab59f8c78624d38230d000000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b26100000000000000000000000000000000000000000000000000000000006192c3c4c617686959d9f9e998a7c665947341f0a00000000000000000000000010253a50657a8fa4b6cac2b39e887862594d403d3b3b36434b5b667c91a3b5c9d0bba5907b66503b26110000000000000006192b3c4e63798b9fb4bdcdbeb2a69d948f8c8c8e939ca4b2bec8baa999836e5a4835200b000000000000000000000000000000000000000000000010253a50657a8fa5b4b4b4b4b4b4b4b4b4b4b9c6d2d0bba6907b66513b26110000081c304354758a9fb5c7b49f8a755544311d0800000f253a4f647a8f95959595989e9595959595959493908e8a85807a736961574d4133291c0e00000000000000000020354a60758a9f9f9f9f9fa49c959595959595959595959595959595959595959595959595816c57422d17001d33485d7287959595959595959595959595959595959595959595959595959595959588735d48331e08000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000005182b3b556a7f95abbccbb7a5937e685947382a1f1718171f2a384758687d92a5b7cabcab95806a553c2b19050000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b2610000000000000000000000000000000000000000000000000000000000c2035495a6e8399a4b2b5b4a99e8977614c37220c0000000000000000000000000b20354a6073879cb1c2cbb8a69c8677665e565250505254606779899ba3b4c1d2bba5907b66503b261100000000000000000e2135495b687e939fb4bac7c4b7b2a9a4a2a1a4a9b2b6c3c4b8aa9f8a78624d3c2b1906000000000000000000000000000000000000000000000010253a50657a8fa5bac0c0c0c0c0c0c0c0c0c9cdcbc8bba6907b66513b261100000b20354b60758aabb2b2b2ab8a75604b35200b00000d22384d62788080808080838a80808080807f7f7d7b7875706b6460544b4639301f170c00000000000000000000172c41566c818a8a8a8a8a8a878080808080808080808080808080808080808080808080807c66513c271100152a3f546a7f80808080808080808080808080808080808080808080808080808080807f6a543f2a1500000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000b2034485971869cb1c9c7b29d8774604b3a2a1a0c0400040c1a2a3a4b6074879db2c7c9b19c86715a4834200b0000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b2610000000000000000000000000000000000000000000000000000000000e23384d63788da1b3c2cac7b9a7947f6a543f2a15000000000000000000000000071c304354687d93a4b6c8c4b6a49c887c726b686566676c747d899b859ba3b5c9bba5907b66503b26110000000000000000061a2c3d4e606c81939fa9b4bbc8c8bfb9b7b7b9bec7c7bab4a69e8c7c665a49351e0e00000000000000000000000000000000000000000000000010253a50657a8fa5ababababababababababb4bab7b2aba6907b66513b261100000b20364b60758b9d9d9d9d9d8b76604b36210b00000b2034485a626b6b6b6b6b6e756b6b6b6b6b6a696866636055554f4a433632281b1304000000000000000000000014293e51626c757575757575716b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b665e4c39240f0012273c4f616a6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6a614f3c271300000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000d22374d62778ca4b5c9c3aa95806a5544311c0c00000000000c1d3144556a7f95aac3c9b5a48d77624d38220d0000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b26100000000000000000000000000000000000000000000000000000000012273c52677c91a7bfd0dfd6c5ae98836e59432e19040000000000000000000000001325364b6073869caabbcec2b6a69d9187807d7b7b7d8187929e8e79859bb0c6bba5907b66503b26110000000000000000000f1f314251636c7e8b989faaaeb3b9c5b9b8c3b7b2aea99f97887c665e4c3c2b190000000000000000000000000000000000000000000000000010253a50657a8f95959595959595959595959fa9a69d9595907b66513b261100000b21364b60758788888888888775614b36210c000005192b3c484d565656565658605656565656555453504e4b44373a3530251e160b000000000000000000000000000e22344451566060606060605c565656565656565656565656565656565656565656565656514c40301d09000c2032434f545656565656565656565656565656565656565656565656565656565656544f4332200d00000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000012283d52677d92a7c2cbb7a58e79634e372715000000000000011527374e63798ea5b7cac2a7927d67523d28120000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b26100000000000000000000000000000000000000000000000000000000012273d52677c92a7c0d1e0d7c7ae98836e59432e1904000000000000000000000000081d314455647a8c9fb4bbccc4b7b3a59c9592909092969ca49e89748499aec4bba5907b66503b2611000000000000000000011424344451606879838b94999ea7a2a3a3a2a59d99938a8277665e4c402f1e0e000000000000000000000000000000000000000000000000000d23384d62788080808080808080808080808a8a8a8880808079634e38230e0000091e3245566072727272727272615746321e090000000d1d2b34384040404040434a4040404040403f3e3b3935312724201c1308030000000000000000000000000000051626343e414a4a4a4a4a4a474040404040404040404040404040404040404040404040403c393022120000031525323c3f40404040404040404040404040404040404040404040404040404040403f3c3225150300000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0001172c41566c8196abc1c7b29d88725b4a36190900000000000000092135495b72879db2c7c1ac96816c57412c170000000000000000000000000a20354a5f758a9fb4cabaa5907b65503b2610000000000000000000000000000000000000000000000000000000000e23394e63798ea2b4c3ccc8baa9957f6a55402a1500000000000000000000000000011527374a5c687e939db3b9c5cbc3b6b2aba7a5a5a7abb2a696816d8297adc2bba5907b66503b26110000000000000000000006162634424e5b636e787f84898b8d8e8e8d8b88837e766d61584c402f221200000000000000000000000000000000000000000000000000000c2035495a626b6b6b6b6b6b6b6b6b6b6b6b747575736b6b6b635b4935210c000003162838454b5d5d5d5d5d5d5d4b4639281603000000000d1920222b2b2b2b2b2e352b2b2b2b2b2a2a282623201d150f0b07000000000000000000000000000000000000081622292c353535353535322b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b27241d1204000000071520272a2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2a272015070000000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00031628395b70859ab0c5c3ad98836e583d2d1a0000000000000000061a2c3d586d8398adc2c5b09b85705b3929170300000000000000000000000a20354a5f758a9fb4cabaa5907b65503b2610000000000000000000000000000000000000000000000000000000000c2136495b6f849aa5b3b9b4aa9f8a78624d37220d000000000000000000000000000009192e3e4e606a7f919ea7b4b9c6c5c7c0bdbabbc0b4a89e88776b8095abbabaa5907b66503b26110000000000000000000000081624313d4a4e5a636a6f74767779797776726e6961584c473a2f221204000000000000000000000000000000000000000000000000000006192c3c494d5656565656565656565656565f60605d5656564e493d2c1a060000000a1a283236484848484848483632281b0b000000000000050b0d161616161619201616161616151413110e0b080100000000000000000000000000000000000000000000050e14172020202020201c161616161616161616161616161616161616161616161616110f09000000000000030c1215161616161616161616161616161616161616161616161616161616161615130d03000000000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00091e32465773889eb3c8bfa9947f6a543f2a15000000000000000000142a3f54697f94a9bec8b39e88735746331e0a00000000000000000000000a20354a5f758a9fb4cabaa5907b65503b261000000000000000000000000000000000000000000000000000000000061a2c3d4d627887979ea79f9a8c7d67594834200b000000000000000000000000000000102031424f616a7d89969ea8acafb2b3b2b1aeaaa29a8a7b65697e93a4a4a4a4907b66503b261100000000000000000000000006141f2d363c494d5459576162646362615759534c473a332a1c1204000000000000000000000000000000000000000000000000000000000e1e2c35384040404040404040404040404a4a4a4840404038352c1f0f00000000000a161e2133333333333333211e160b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000c21364b61768ba6b8cbbba6917b66513c261100000000000000000011263b51667b90a6bbcbb8a68b76614b36210c00000000040a0c0d0d0d0d0d20354a5f758a9fb4cabaa5907b65503b261000000000000000000000000000000000000000000000000000000000000f20344859627681898c8a847a675f4d3b2b190500000000000000000000000000000002142432434f5f6777818991979a9c9d9d9c99958e8479655d677d8f8f8f8f8f8f7b66503b261100000000000000000000000000010f1a212c35383f39464b4d4e4e4d4b46393e37332a1f180c000000000000000000000000000000000000000000000000000000000000000e1920232b2b2b2b2b2b2b2b2b2b2b2b343535332b2b2b23211a0f0100000000000003090b1d1d1d1d1d1d1d0c0903000000000000000000000000000000000000000000000000000000000000000000040e141620202020202017150f050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080d0f2020202020201e1b150c00000000000000000000000b151b1d202020202020100e08000000000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000e23384e63788da3c4d5b9a38e79644e39240f0000000000000000000e24394e63798ea3c9d5c5a38e78634e39230e0000000b171f21222222222222354a5f758a9fb4cabaa5907b65503b2610000000000000000000000000000000000000000000000000000000000005192b3b4858616c7476756f645d4d41301d0d000000000000000000000000000000000006152532414d59616c767c818587888886837f796f635b4c61767a7a7a7a7a7a76614c36210c000000000000000000000000000000070e1920232a2933363839393836332929211f170c04000000000000000000000000000000000000000000000000000000000000000000060c0d1616161616161616161616161f20201e1616160e0c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081621292b3535353535352c2a221709000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002101b22253535353535353330291d0f0000000000000000000f1d28303335353535353525221b100300000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0010253a4f657a8fa4bad7c6a18c77614c37220c0000000000000000000c21374c61768cabbccfbaa48f7a654f3a251000000b1b293336373737373737374a5f758a9fb4cabaa5907b65503b26100000000000000000000000000000000000000000000000000000000000000d1d2b3a474c54606160554f4b3f30231300000000000000000000000000000000000000071523303b474c5761676c70727372716e6a635b4e49475861656565656565615846331f0a0000000000000000000000000000000000060c0e15171e2122242422211e17140c0a04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e171d1f2020202020200a03000000030a2020202020201f1d180e020000000000000000000000041626333d404a4a4a4a4a4a413e342717050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010202e373a4a4a4a4a4a4a48443b2d1d0c000000000000000b1d2d3a44484a4a4a4a4a4a3a372e211000000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0011263c51667b91a6bbcdbaa88a75604b35200b0000000000000000000b20354b60758a9fb5cabba6917c66513c2711000417293a464c4c4c4c4c4c4c4c4c5f758a9fb4cabaa5907b65503b2610000000000000000000000000000000000000000000000000000000000000000d1c2a3336434a4c4b4437372e201305000000000000000000000000000000000000000005121d2a3439464b51575a5d5e5d5c59554e4a3d353a474c4f4f4f4f4f4f4c463a291704000000000000000000000000000000000000000000030a0c0d0f0e0d0c0a0300000000000000000000000000000000000000000000000000000000000000000000000000000001080b0f1316181919191715120e0c0600000000000000000000000000000000000000000212202b32343535353535351e170b000b171e35353535353534322b201202000000000000000000000e213344515660606060606057524534220f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081b2e3e4b4f6060606060605d584c3b29150100000000000115283a4b585d6060606060604f4b3f2e1b08000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0012273d52677c92a7bcc9b49f89745544311d08000000000000000000081c30435474899eb4c9bca7927d67523d2812000a1f33465861626262626262626262758a9fb4cabaa5907b65503b261000000000000000000000000000000000000000000000000000000000000000000c181f25303537363127221b100200000000000000000000000000000000000000000000000c181f2933363c424547484847444039362d212933373a3a3a3a3a3a3633291c0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000809151d2024282b2d2e2e2e2d2a2723211a0e0c0600000000000000000000000000000000000e20303e464a4a4a4a4a4a4a33291b0b1b29334a4a4a4a4a4a4a473e3020000000000000000000000014293d51626b7575757575756c63523e2a150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d22374b5c64757575757575736a5844301b070000000000061b3044586972757575757575655d4b37220e000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0013283d52687d92a7bdc8b39e89735e49271501000000000000000000011426495e73889eb3c8bda8927d68533d2813000c21364c6176777777777777777777778caabbcebaa5907b65503b26100000000000000000000000000000000000000000000000000000000000000000000408131c2021201d1509080000000000000000000000000000000000000000000000000000040b171e21272c30323333312e2a23211a0f171f21252525252525211f170c000000000000000000000000000000000000080e10171917100e09000000000000000000000000000000000000000000000000000000000000000000000000000000000007111c23273135393d404243444342403c38352c23211a0f05000000000000000000000000000003172b3e4e5a5f60606060605e463929172939465e60606060605f5b4e3e1b0b00000000000000000000162b40566b808a8a8a8a8a8a816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8a8a8a8a8a8a88735d48331e080000000000081d33485d72878a8a8a8a8a8a7b654f3a2510000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0013283e53687d93a8bdc8b39e88735e49331e00000000000000000000001e33485e73889db3c8bda8937e68533e291300192e43586e828c8c8c8c8c8c8c8c8c8c95a7c8d9baa5907b65503b2610000000000000000000000000000000000000000000000000000000000000000000000000070b0c0b0802000000000000000000000000000000000000000000000000000000000000030a0c12171b1d1e1d1c19150e0c0700040a0c1010101010100c0a04000000000000000000000000000000000002111c23252c2e2c26231c110300000000000000000000000000000000000000000000000000000000000000000000000000010f1a212e3737444b4f5355585859585755524e493d39352c1f180d00000000000000000000000000081d32465a6c747575757575705746331e334657707575757575746c5b39291603000000000000000000162b40566b80959f9f9f9f96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8f9f9f9f9f9d88735d48331e080000000000081d33485d72889d9f9f9f9f8f7a654f3a2510000e24394e63798ea3b8ccb6a18c77614c41566c8196abc1ac96816c57414c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0013283e53687d93a8bdc8b39e88735e49331e00000000000000000000091e33485e73889db3c8bda8937e68533e291300192e43586e8398a1a1a1a1a1a1a1a1a1a7b3c4d0baa5907b65503b261000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a161e2e373b4143413b382f1e160a000000000000000000000000000000000000000000000000000000000000000000000005131f2d363f4b50556064686b6d6e6e6e6c6a67635b564e493d342a1d110300000000000000000000000a1f344a5f748a8a8a8a8a8a76614c3621364b61768a8a8a8a8a8b745746321e0a000000000000000000162b40566b8095abb5b5ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b5b5b29d88735d48331e080000000000081d33485d72889db2b5b5a48f7a654f3a2510000e24394e63798ea3b8ccb7a28c77624d41566c8196abc1ad98826d58434c61768ba1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0013283d52687d92a7bdc8b39e89735e49271502000000000000000000091e34495e73899eb3c8bda8927d68533d281300192e43586e8398adb7b7b7b7b7b7b7b7bac4d0d0baa5907b65503b26100000000000000000000000000000000000000000080d0f1313131313130d0b0600000000000000000000000000000000000000000000000000000000000000000000000000080e10171917100e090000000000080e10171917100e090000000000080e10171917100e090000000000000000000a1a28323f4b50575957504c3f32281b0a000000000000000000000000000000000000000000000000000000000000000000061423313d4a4e5d656d75797d8082838383827f7c78726c635b4c483b2f21120400000000000000000000081d33485d72889d9f9f9f8d78634d382333465774899f9f9fa98b76614b36210c000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510000e24394e63798ea3b8ceb9a48e79644f41566c8196abc1b2a08a75603b4c61768ca1b6cbb9a38e79644e39240f000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0012273d52677c92a7bcc9b49f89745544311d08000000000000000000081d31445574899eb4c9bca7927d67523d281200192e43586e8398adbababababababababebabababaa5907b65503b261000000000000000000000000000000000000002101b22252828282828282320190e000000000000000000000002090b0d0f0d0b0902000000000000000000000000000002111c23252c2e2c26231c11030002111c23252c2e2c26231c11030002111c23252c2e2c26231c110300000000000002162838454b5d656c6e6c655d4b45392816030000000000000000000000000000000000000000000000000000000000000003142431414e5b63707a82898e9295979899989795918d8781796d62594c3f30221201000000000000000000061b31465b70869bb0b5a48f7a644f3a2529395d72889db2b5a28d78624d38230d000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510000e24394e63798ea3b8cebca7917c67523f576c8197acc1be9f8a7559484e63788da3b8cdb8a38e79634e39240e000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0011263c51667b91a6bbcdbaa98b75604b36200b0000000000000000000b20354b60758aa8b9cdbba6917b66513c261100192e43586e8398a5a5a5a5a5a5a5a5a5a8a5a5a5a5a5907b65503b261000000000000000000000000000000000000010202e373a3d3d3d3d3d3d38352b1e0e00000000000000060c0e161e21232423211e160a0900000000000000000000000a161e2e373b4143413b382f1e160a161e2e373b4143413b382f1e160a161e2e373b4143413b382f1e160a0000000000091e324556606e7b8183817b6e605745321e0f00000000000000000000000000000000000000000000000000000000000000112131424e5f6879848f989ea7a8aaadadaeadacaaa7a59d968c8277655d4c4030200f000000000000000000041a2f44596f8499aebba6917b66513c2631465b71869bb0b9a48f79644f3a240f000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510000e24394e63798ea3b8cec1ac97816c5d575d6f849aafc4b7a28c77625757677c91a6bcd4c4a28d78624d38230d000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000f253a4f647a8fa4b9d7c7a18c77614c37220c0000000000000000000c21374c61768ca1c6d6baa48f7a654f3a251000192e43586e8290909090909090909090939090909090907b65503b26100000000000000000000000000000000000081b2e3e4b4f5353535353534d483c2b190600000000060e192123283236383938363228241d120200000000000000000a1a28323f4b50575957504c3f32281b28323f4b50575957504c3f32281b28323f4b50575957504c3f32281b0a000000071a2d3d4b60748290969896908375604b3e2d1a0700000000000000000000000000000000000000000000000000000000000a1a2e3f4e60687d8b9aa2adb3b9c5c0c2c3c3c3c1bfc3b7b2ab9f98897b665e4c3e2d1909000000000000000003182d42586d8297adbda8927d68533d282f445a6f8499afbba6907b66513b2611000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510000e24394e63798ea3b8cfbeb49f8b7b6f6c6f7b8c9fb4cab5af9983756d6d76859bb0c6cbb7a68b76614c36210c000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000e23384e63788da3c5d5b9a38e79644e39240f0000000000000000000e24394e63798ea3b8d5c5a38e78634e39230e000e24394e63797b7b7b7b7b7b7b7b7b7b7e7b7b7b7b7b7b76614c37210c00000000000000000000000000000000000d22374b5c64686868686868625a4835200b0000060e19202c353838454b4d4f4d4b453839301d150900000000000002162838454b5d656c6e6c655d4b45392838454b5d656c6e6c655d4b45392838454b5d656c6e6c655d4b453928160300000c21364a5b6d8297a0acaeaca198826d5c4a36210d00000000000000000000000000000000000000000000000000000000031628384b5d687e929fa9b4c0c9c9c7bab4b2b1b2b4bac7c9c9bcb5a79e8c7c665c4a372715010000000000000001162b41566b8096abbfaa947f6a553f2a2d43586d8298adbda8927d68533d2813000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510000e24394e63798ea3b8c6b2a098888c8481848c9fabbcc1a8978d99888282879ba3b5c9c8b29d88735846331f0a000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000c21364b61768ba6b8cbbba6907b66513b261100000000000000000011263b50667b90a5bbccb8a78b76614b36210c000c21364a5b636565656565656565656569656565656565615847331f0a00000000000000000000000000000000000f253a4f647b7d7d7d7d7d7d78624d38230d020e19202c353c494d5556606264626056514d40312719090000000000091e324556606e7b8183817b6e605745324556606e7b8183817b6e605745324556606e7b8183817b6e605745321e0f00000e24394e63798ea0b1bec3bfb2a08e79644e39240f00000000000000000000000000000000000000000000000000000000091e324556657b8c9fb4bac7c6b9b3aaa99f9d9c9d9fa9abb4bac6c5b8aa9f8a7a645544311d080000000000000000142a3f54697f94a9beab96816c56412c2c41566b8196abbfa9947f6a543f2a15040400000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510000e24394e63798ea3b8c3ad988281979996999faabbc9b5a38d78899d97979da5b5c1d0bfad98836e583a291704000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00091e32465773889eb3c8bea9947e69543f291400000000000000000014293f54697e94a9bec8b39e88735746331e0a00071a2d3d4a4e50505050505050505050535050505050504c473a2a17040000000000000000000000000000000000172c41576c819292929292917c67513c2712161e2b353c494d5b636a7176787978756f665e4b4437271502000000071a2d3d4b60748290969896908375604b3e4b60748290969896908375604b3e4b60748290969896908375604b3e2d1a0700142a3f54697f94a9beced8cfbea9947f6a543f2a15000000000000000000000000000000000000000000000000000000001325364b6075879daabbcdc0b4a89e958e89888788898f969fa8b5c1c8baa99c8673604b3520100000000000020b1113283d52677d92a7bcad98836d58432e2a3f54697f94a9beab96816b56412c19191913110b02000000162b40566b8095abc0c1ac96816c57412c170a0a090907050200000000000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510000e24394e63798ea3b8baab96807d91a4acaeb4bbc8bbb09b85718298a8adb2b7c3c6bfb3a1907b66513b261100000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00031628395b70859bb0c5c2ad97826d583b2b18050000000000000005182a3b576d8297acc2c5b09b85705b3929170300000f1f2d36393b3b3b3b3b3b3b3b3b3b3e3b3b3b3b3b3b37332a1c0c000000000000000000000000000000000000172c41576c8196a8a8a8a6917c67513c271a28323c494d5a636d7880868b8d8e8d8a847c6e605544311d100000000c21364a5b6d8297a0acaeaca198826d5c4a5b6d8297a0acaeaca198826d5c4a5b6d8297a0acaeaca198826d5c4a36210d00162b40566b8095abc7d7e8d8c7ab96806b56412b16000000000000000000000000000000000000000000000000000000071c304354697e94a5b7c8c1b4a29a89807975727172757a808a9ba3b5c2c7b5a4927d68533e2e1b0800000006131e26282f3b50667b90a5bbaf9a846f5a452f2f3d52687d92a7bdad98826d58432f2f2f2f29261f14060000162b40566b8095abc0c1ac96816c57412c1f1f1f1f1e1c1a17140f0b07000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510000e24394e63798ea3a4a4a4937e74869ca5aeb2b3b1aa9f907b65788a9ea7b0b2b2b1aca199836f5e4c38240f00000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000172c42576c8197acc1c7b19c8772594834200b000000000000000b1f34485971869cb1c6c1ac97816c57422c17000000010f1a21242626262626262626262629262626262626211f170c00000000000000000000000000000000000000172c41566c8196abbdbca6917c67513c273038454b5a626d78828b959ca4a2a4a99f9a918373604b3e2e1b0800000e24394e63798ea0b1bec3bfb2a08e79644e63798ea0b1bec3bfb2a08e79644e63798ea0b1bec3bfb2a08e79644e39240f0013293e53687e93a9baccd6cdbaa9937e69533e29140000000000000000000000000000000000000000000000000000000b20354a6073879db2c3c9b5a39a84766b6460545c5560646b77859ba4b6c9c2b19c86725c4b37220d0000021324313a3e44444f64798ea4b9b19b86715c3644444451667b90a6bbaf99846f5a44444444443e3a3124140200162b40566b8095abc0c1ac96816c574134343434343332302d2924201c130807000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510000e24394e63798e8f8f8f8f8f7c67798793999c9d9c978b7e685d657b89959b9d9d9b97908375614b402f1c0900000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000013283d53687d92a8c3cab6a48c77624d372210000000000000000d22374c62778b9fb5cac3a8937d68533e28130000000000070c0e10101010101010101010141010101010100c0a040000000000000000000000000000000000000000162b40556b8095aac0bda7927d68523b3c404c56606a78828c989faab1b5c2c7bab4afa197826d5c4b37220a0000142a3f54697f94a9beced8cfbea9947f6a54697f94a9beced8cfbea9947f6a54697f94a9beced8cfbea9947f6a543f2a15000d22374d62778a9fb4b9c6b9b49f8b78624d38220d00000000000000000000000000000000000000000000000000000010253a50657a8fa5b7cabcab9b857461584f4b4337444b4f596275869cabbccab6a48f7a644f3a250f00000b1e31424e5359595962778da2b7b39d887354595959595964798fa4b9b19b86715c5959595959534e42311f0b00162b40566b8095abc0c1ac96816c57494949494949484745423e39353025211a0f0600000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510000b21364b60757a7a7a7a7a7a766163757e84878886817968604e5d65778085888886827b6f6157463322120000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000e23384e63788da5b7cac2a8937e68533e2e18080000000000071b2d3e53687d92abbccab7a58d78634e38230e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9bfc1ab96816c595051545e6675808a979faab4bbc8c3c5c9cec9bfb1a08f7a644f3827150200162b40566b8095abc7d7e8d8c7ab96806b566b8095abc7d7e8d8c7ab96806b566b8095abc7d7e8d8c7ab96806b56412b16000b20344859697f939ea8a8a89e947f6a5a4834200b000000000000000000000000000000000000000000000000000001162b40566b8095abc3cab49f8c796356473a35302631353b4857647a8d9fb5cac2aa95806a55402b15000011263a4e60686e6e6e6e758ba0b5b49f8b726e6e6e6e6e6e6e788da2b7b29d88736e6e6e6e6e6e68604e3a261100162b40566b8095abc0c1ac96816c5f5f5f5f5f5f5e5e5c5a57534e4a4336362d21190e000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a251000091e3245576065656565656561585761696f7273716c635b4e424c59626b707272716c665e4b46392917040000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000c2135495b72879db2c7c5b09b85705c4b36251303000000021222364a5c70859ab0c9c7b29d87725b4935210c0000000000070d0f1212121212121212121212121212121212121212121212121212121212121212120f0d070000000013283d52687d92a7c7c8b39e89776966666a717c87959fa9b4bbc2b6b1aeb0b4bbc8cebead98836d5645311d090013293e53687e93a9baccd6cdbaa9937e6953687e93a9baccd6cdbaa9937e6953687e93a9baccd6cdbaa9937e69533e29140005182b3b4f61697e899193918a7f6a614f3c2b19050000000000000000000000000000000000000000000000000000031629395a70859aafc5c4af9a846f5b4a382a201c141d202b394a5c6f849aafc4c4af9a856f5a392917030013283e53687d838484848399aec3bbaa9a8484848484848484849aafc4b7a699838484848484837e68533e291300162b40566b8095abc0c1ac9681747474747474747473716f6c696460544e4a3d352c1e140600000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a25100003162839454b4f4f4f4f4f4f4c46464b53595d5e5c574e4a3d313b484c555b5d5d5c57504c4033291b0b000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000061a2c3d576c8196acc1c8b4a38f7a645443301e160d0c0d161e31424f647a8fa2b4c8c2ac96816c573d2c1a0600000002101b222428282828282828282828282828282828282828282828282828282828282828282824221b100200000f24394f64798ea9baccb8a79d877f7b7c7f86919da5b4bac0b3afa49c999b9faabac6c9b39e8975604b36200b000d22374d62778a9fb4b9c6b9b49f8b78624d62778a9fb4b9c6b9b49f8b78624d62778a9fb4b9c6b9b49f8b78624d38220d00000d1d32434f6069767c7e7c7669614f43321d0d0000000000000000000000000000000000000000000000000000000a1e32465773899eb3c8bda8927d68533d2d1a0c0801080d1b2d3e53687d92a8c9c8b39e89735746331e0a00172c41576c819699999999a1b3c7c8b4a29a999999999999999aa2b3c7c4b3a199999999999997816c57422d1700162b40566b8095abc0c4b19f968989898989898989888785827e79746c645c4d493c31241708000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e0c0c0c0c0c0c0c1d33485d72889db2c7baa48f7a654f3a251000000a1b2832363a3a3a3a3a3a363332363e444748474239362d1f2b34374046484846423b382f1e170b00000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000f24394f64798ea3b5c9c1af9a8472604a4032282322232832404e606f849aafc0c9b5a38f7a644f3a240f0000000010202d363a3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3a362e201000000b21364b60758a9fb4c9c5b7a69d949091949ca4b2b6c3b8b3a29a8f8784858b9fa8baccb9a78e79644e39240f000b20344859697f939ea8a8a89e947f6a5a4859697f939ea8a8a89e947f6a5a4859697f939ea8a8a89e947f6a5a4834200b000000142532424e586166686661584f43322515000000000000000000000000000000000000000000000000000000000c21364b61768ba7b8ccc6a38e79634e39240f00000000001024394e63798eabbcccb8a78b76614b36210c00172c41576c8196acaeaeaeb3bfcfd1c0b4afaeaeaeaeaeaeaeafb3c0d0cfbfb3aeaeaeaeaeac97826c57422d1700162b40566b8095abc0cebdb1a89e9e9e9e9e9e9e9e9d9c9a97938e8881796e635b4e42342717080000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d483322222222222222222233485d72889db2c7baa48f7a654f3a25100000000a161e21252525252525211f1e21292f3233312d24211a0f1820222b303333312d26231c11030000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000d22364a5c71869bb1c1c8b4a2937e695f4b453838373838454b5e697e93a2b4c8c1b19b86715c4a36220d000000071b2d3e4a4f5252525252525252525252525252525252525252525252525252525252525252524f4a3e2e1b0700091e3245566e8398aebecfc4b7b2a9a5a6a9b1b6c2bbb4a69d92847a726e707b8a9fb4c9c5a7917c67523c27120005182b3b4f61697e899193918a7f6a614f3c4f61697e899193918a7f6a614f3c4f61697e899193918a7f6a614f3c2b1905000000071424313a464c5153514c473a32241507000000000000000000000000000000000000000000000000000000000e23384d63788da2c5cdb9a88a75604b35200b00000000000b20354b60758a9fb5cac5a38d78634e38230e00172c41576c8196acb7b7b7c0c4cddacfc6c3b7b7b7b7b7b7b7b7c2c6cfdbcec5c1b7b7b7b7ac97826c57422d1700162b40566b8095abc0d5cec6b9b4b4b4b4b4b4b4b3b3b1afaca8a69e968e8379696051453426160400000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d483737373737373737373737485d72889db2c7baa48f7a654f3a25100000000003090b1010101010100c0a0a0c141a1d1e1c170e0c0700050b0d161b1d1d1c17110f0900000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000071b2d3e51677c91a3b5c8c0b49f8c7d6b6056504d4c4d5056606a7c8c9fb4c0c8b5a3917c67523e2d1b070000000d22364a5c64676767676767676767676767676767676767676767676767676767676767676767645c4a36220d000216283850657b90a0b2c0cbcbc8bebbbbbfc9bcb5aa9f97887d6f645c595d6c8297acc1bfa9947f6a543f2a1500000d1d32434f6069767c7e7c7669614f4332434f6069767c7e7c7669614f4332434f6069767c7e7c7669614f43321d0d000000000006141b2933363c3e3c3733291c140600000000000000000000000000000000000000000000000000000000000f24394e64798ea3b9c9b49e89745544311d080000000000081d31445574899eb3c9b9a48e79644f39240f00172c41576c8196a2a2a2a2abb0bccdbfb3aea2a2a2a2a2a2a2a2adb2becebdb1aca2a2a2a2a297826c57422d1700162b40566b8095abc0d5dacdc3c0c0c0c0c0c0c0c1c2c4c4c1c4b8b3aca1998b7e6c63514433221200000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d4c4c4c4c4c4c4c4c4c4c4c4c4c5d72889db2c7baa48f7a654f3a251000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000001020354a6072859baabbcebbaa9f8c80756b65626162656b75808c9faabbcebbaa9b8573604b352010000000000f243a4f64797d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7a644f3a240f00000a23384b5d6e8298a2b3b8c5c0c1c0c5b9b3ab9f998c8176675f4f4b3f53687d93a8bdc0aa95806b55402b16000000142532424e586166686661584f43322532424e586166686661584f43322532424e586166686661584f4332251500000000000000000b171f21272927211f170c000000000000000000000000000000000000000000000000000000000000000f243a4f64798fa4b9c8b39d88735e372715010000000000011426375d72889db2c7b9a48f7a644f3a250f00172c41576c818c8c8c8c8c969eb0c4b3a1998c8c8c8c8c8c8c8c98a0b2c5b19f978c8c8c8c8c8c816c57422d1700162b40566b8095abc0d5cdbcb0abababababababacadafb4b9c6c9c8bfb3a99f93816c625140301b0b000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d887361616161616161616161616161616172889db2c7baa48f7a654f3a251000000000050b0d1e2020202020201f0f0d070000000000000000000000070d0f1f2020202020201e0d0b05000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000000071c304354647a8c9fb4bdc8bbaa9f9588807b7877787b8088959faabbc8bdb49f8c7a645443301c0800000000172c41576c81929292929292929292929292929292929292929292929292929292929292929292816c57422d170000081c2f3f4b617584949ea6a9abacaba9a79e978c83796c61584d41373c51667c91a6bbc1ab96816c56412c17000000071424313a464c5153514c473a32241524313a464c5153514c473a32241524313a464c5153514c473a32241507000000000000000000040a0c1113110c0a0400000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e000000000000001d33485d72889db2c7baa48f7a654f3a2510000c21364c617677777777788096abc0ae998378777777777777788298adc1ac978178777777777776614c36210c00162b40566b8095abc0cebdb09e9595959595959596989a9ea8acb4bac7c7bab49f95806b5e4c392916030000000000000000000000000000000000000000000f253a4f647a8fa4b9c9b49f8b76777777777777777777777777777777768a9eb4c9baa48f7a654f3a25100000000d181f22333535353535353524211a0f0100000000000000010f1a212435353535353535342220180d0000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000000001325364a5c697f949fb0bcc8bbb4a69d96908d8c8d90959da6b4bbc8bdb09f947f695c4a3626140100000000172c41576c8196a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a797816c57422d17000000111e32465761747e888f9496979694908982796e635b4c463a30273c51667c91a6b0b0ac97816c57422c170000000006141b2933363c3e3c3733291c1406141b2933363c3e3c3733291c1406141b2933363c3e3c3733291c14060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510000a1f3346586162626262677c92a7bcad98836e626262626262697e94a9beab96816c6262626262615846331f0a00162b40566b8095abc0c4b19f9580808080808080818385898e979fa9b4c0cdbdb09e917c665746321e090000000000000000000000000000000000000000000f253a4f647a8fa4b9cdbaa99f8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c9ea8b9cdbaa48f7a654f3a251000000d1d2a3437494a4a4a4a4a4a4a39362d200f000000000000000f202d36394a4a4a4a4a4a4a4937342b1d0d00000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000008182d3e4f616c81969eb3b8c5c4b7b3aba5a2a1a2a5abb2b7c4c5b8b39e96816c614f3e2d18080000000000172c41576c8196acbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcac97826c57422d170000000316293946566069747a7e8082807e7a756d635b4e493d33291c273c51667c919b9b9b9b97826c57422d170000000000000b171f21272927211f170c0000000b171f21272927211f170c0000000b171f21272927211f170c000000000000000000000000000000000000000000000000000002090b131819150e0c0600000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510000417293a464c4d4d4d50657b90a5baaf9a856f5a4d4d4d4d52677d92a7bcad98836d584d4d4d4d4c463a29170400162b40566b8095abc0c1ac96816c6b6b6b6b6b6b6c6d6f7479818a9aa2b1becdbcb39d8875614b3727150200000000000000000000000000000000000000000f253a4f647a8fa4b9d7c7bab4a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1b4b9c6d7baa48f7a654f3a25100005182a3b484c5e6060606060605f4e4a3e2d1a0a00000000000a1a2d3e4a4e5f6060606060605e4d483b2b1805000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000f20324352636c80919ea7b3b8c5c7c0bab7b6b7bac0c7c5b8b3a79e918172604a43322010000000000000172c41576c8196acb5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5ac97826c57422d17000000000b1b2938454b556064696b6c6b696560554e4a3d352c1f1710253a50657b8586868686857f69543f2a1400000000000000040a0c1113110c0a040000000000040a0c1113110c0a040000000000040a0c1113110c0a0400000000000000000000000000000000000000000000000000000a151d20282d2e2b23211a0e000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a251000000c1c2933363737394e64798ea3b9b19c87715c3637373b50667b90a5bbaf9a856f5a453737373633291c0c0000162b40566b8095abc0c1ac96816c57565656565657585460646c778497a0b1c1cbb7a6947f6a5544311d0800000000000000000000000000000000000000000f253a4f647a8fa4b9cfd7cdc9b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6c9cdd7cfbaa48f7a654f3a2510000b1f344859627375757575757574645c4a38271502000000021628384a5c64747575757575757362594834200b000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000011424344552626b7c89959ea7acb1b4bbc8b9c8bbb4b1aca79e96897d6c60544330251402000000000000172c41576c81969f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f97826c57422d1700000000000b1a273137444b4f5456575654504b4437362d211a0f040e23374b5d6570707070707069614f3c27120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1a2731363d42434038352c1f140600000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a25100000000c171f212222374d62778ca2c5b39e887354433024394f64798ea4b9b19c86715c36252222211f170c000000162b40566b8095abc0c1ac96816c5741404040404136434b4f5962738297a3b4c8c4b39d8874604b36200b00000000000000000000000000000000000000000f253a4f647a8fa4b9cfd8cac1bdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdc1cad8cfbaa48f7a654f3a2510000d22374c6277888a8a8a8a8a8a8b7a645645311d100000000c1e324556647a8b8a8a8a8a8a8a8977624d37220d000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000000617273444515f6776808991979c9faaa3a4a3aa9f9c9791898076675f4a433625130700000000000000172c41576c818a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a816c57422d170000000000000a151d2731353a3f4142413f3b363127211a0f060000081c2e3f4b505b5b5b5b5b5b544f4332200c000000000000000000000000000000000000000000000001080b0f1315171819181715130f0b0801000000000000000000000000000000000000000000000000000000000e1e2c38454b525858554e493d32241405000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a251000000000040a0c0d20364b60758ba7b9b49f8a75604b3522384d62778da2c6b39d88735443301c0d0c0a0400000000162b40566b8095abc0c1ac96816c57412c2b2b2b2c2630353b48556074859bb0c0cbb7a6907b66503b261100000000000000000000000000000000000000000f253a4f647a8fa4b9cfcabaada8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8adbacacfbaa48f7a654f3a2510000b1f344859667c909f9f9f9faa9c8674604b3e2d1a0a000c1c2f404b6074869ca99f9f9f9f917c66594834200b000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000000009172634414d58616b757c82878a8d8e8e8e8d8a87827c756b61584d41302518080000000000000000152a3e52636c7575757575757575757575757575757575757575757575757575757575757575756c63523e2a15000000000000000209151d2025292b2d2b2925201d150907000000000011212e373a4646464646463f3c32251503000000000000000000000000000000000000000002090b151d2024282b2c2d2e2d2c2b2824201d150b09020000000000000000000000000000000000000000000000000b1b2c3c495660686d6e6a635b4f43322313000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a251000000000000000081d31445574899eb3bbaa8c77614c3722364b60758ba8b9b49f8a75604a35200b00000000000000162b40566b8095abc0c1ac96816c57412c17161617141c202b374556647a8fa2b4c7c4ac96816c5736261401000000000000000000000000000000000000000f253a4f647a8fa4b9d4c4ad9c93939393939393939393939393939393939cadc3d4baa48f7a654f3a25100005182a3b4c5e6c8196a4b5b5b5a495806b5c4a38281604172a3a4c5e6c8196a4b6b5b5a497816c5e4c3b2b1805000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000000000081623303a464c5660676d7275777879797775726d6760564c473a301c13080000000000000000000f223445525760606060606060606060606060606060606060606060606060606060606060606057524535220f00000000000000000001080b0f1416171614100b08020000000000000003111c23253131313131312a2720150700000000000000000000000000000000000000020a161e21273135393e404142434341403e39353127211e160a0200000000000000000000000000000000000000000003172939495b63747d8283807969614f413018080000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510000000010a1012171527375d72879cb2c8a38e78634e392332455674899eb4bbaa8c76614c37211712100a01000000162b40566b8095abc0c1ac96816c57412c1702010001080d1927384a5c6f849aafc4c6b09b86715443301c08000000000000000000000000000000000000000f253a4f647a8fa4b9cbb7a6937e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e93a5b7cabaa48f7a654f3a251000000d1d2f404b6074869ca9bac2b49f8c7a645645321e101f334758657b8d9fb5c2baa99c8674604b402f1d0d00000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000004121b293338454b515755606263646362605557524b453833291c120000000000000000000000051727343e414a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a423e3527170500000000000000000000000000000102010000000000000000000000000000080e101b1b1b1b1b1b14120c030000000000000000000000000000000000000009151d28323637444b4e5355565859585655534f4b44373632281d150900000000000000000000000000000000000000000a1e334657637986929798958b7f695f4d3625130000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510000005121d24272c2c30455b70859ab0baa58f7a65503a2c28385d72879cb2c8a38d78634e382c2c27251d13050000162b40566b8095abc0c1ac96816c57412c170200000000000a1a2d3e53697e93a8bec9b49f8a74604b35200b000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d887368686868686868686868686868686872879db2c7baa48f7a654f3a2510000000121d32455663798a9fb4bfbbaa9c8674604b3f2e1e31424c6176889dabbcbfb49f8b796356453222120000000000000000000000000000000c21364b61768ba0b6b7b6a18b76614c36210c0000000000000000000000000b171f2832363c37444b4d4e4f4e4d4b44373c3632281f170c000000000000000000000000000917222a2c3535353535353535353535353535353535353535353535353535353535353535352d2a2217090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010f19273138454b52556064686a6c6d6e6d6c6a68646055524b45383127190f010000000000000000000000000000000000000c21364b6175879ca4adadaa9f917d675443301c0700000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a25100001122330393c41414144596e8399aebca6917c6751414141465b70859bb0baa48f7a654f4141413c393023130100162b40566b8095abc0c1ac96816c57412c17020000000000001024394e63798ea3c7cdbaa98c77624d37220d000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d535353535353535353535353535d72889db2c7baa48f7a654f3a251000000002152838495b687e93a1b2c4b6a496806b5d4b392c3c4e606e8399a6b7c4b3a1937e685b4a382816040000000000000000000000000000000c21364b61768ba0a2a2a2a18b76614c36210c00000000000000000000000000040a161e2127263135383939393835312727211e160a04000000000000000000000000000000050f151720202020202020202020202020202020202020202020202020202020202020202017150f05000000000000000000000000000000000000080e10202020202020201e19100400000000000000030f181d1f202020202020110f0900000000000000000004121f2d37444b5660676f75797d808182838281807d7975706860564b44372d1f12040000000000000000000000000000000000152a3f546a7f94a5b6c2c8bbb29d8773604a35200b00000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510000a1d30414d5157575757576c8297acbea8937e695757575757596e8499aebca6917c6757575757524d41301d0a00162b40566b8095abc0c1ac96816c57412c17020000000000000b21364b60768ba9bacdc7a48e79644f39240f000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d483e3e3e3e3e3e3e3e3e3e3e485d72889db2c7baa48f7a654f3a2510000000000a1a2c3d4e606e8399a6b7c2b49f8c7b65574537495a687d92a1b2c4b7a699836e604e3d2d1a0a000000000000000000000000000000000c21364b61768b8d8d8d8d8d8b76614c36210c00000000000000000000000000000002090b12141d202223242422201d15120b0902000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003111c232535353535353535332d22140400000000000313212c323535353535353526231c11040000000000000212222f3d4a55606a757d85898e9395969798989695938e89857d756a60554a3d2f221202000000000000000000000000000000051b30455a70859aafc3d3d8cbb7a58e79634e39230e00000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510001024394d5f676c6c6c6c6c6c8095aabfaa95806c6c6c6c6c6c6c6d8297acbda8937e6c6c6c6c6c675f4d39251000162b40566b8095abc0c1ac96816c57412c1702000000000000091e32455674899fb4c9baa58f7a65503a2510000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d483329292929292929292933485d72889db2c7baa48f7a654f3a251000000000000f1f31424c6176879dabbcbcab9c8775604b445562788a9eb4bfbcab9d8876614c42311f0f00000000000000000000000000000000000b20354a60727878787878787872604b35200b0000000000000000000000000000000000000001080b0d0e0f0e0d0b080100000000000000000000000000000000000000000000000000000000000000000000000001080b0d0f111315161718191918181614110d0b0500000000000000000000000000000000000000000011212e373a4a4a4a4a4a4a4a483f32221000000000000f21313e474a4a4a4a4a4a4a3b382f221100000000000010202f404c5c64747f89929a9fa9a8aaabadaeadabaaa8a99f9a92898074645c4c402f2010000000000000000000000000000000071c31475c71869cb1c6dbe5d2c1a48f7a654f3a251000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a25100012273c51677c818181818181959eafc3af9e958181818181818181969fb1c1ad9c9381818181817d67523c271200162b40566b8095abc0c1ac96816c57412c17020000000000000417293a5e73889eb3c8baa5907b65503b2610000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e131313131313131d33485d72889db2c7baa48f7a654f3a2510000000000001141f334758657b8d9fb4c1b6a596816c5d4b6073859ba8b9c1b49f8d7b655847332414010000000000000000000000000000000000071c3043546062626262626262605443301c08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008141c20222426292a2b2c2d2e2e2e2d2b2926222019120c090300000000000000000000000000000000081c2e3f4b506060606060605f5c503f2d190500000004182c3e4f5b5f606060606060504c402f1c09000000000b1b2e3e4c5e667a86959ea7afb4bac7bfc1c2c2c2c1bfc7bab4afa79e95867a665e4c3e2e1b0b0000000000000000000000000000041a2f44596f8499aec0cfd3c7b5a38d78624d38230d00000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a251000172c41576c819696969696969fafbcccbcaf9f96969696969696969fb1bdcabaad9f9696969696816c57422d1700162b40566b8095abc0c1ac96816c57412c17020000000000000a1f334658748a9fb4c9baa48f7a654f3a2510000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a251000000000000004172a3a4b5d6b8095a3b4c3b59f8d7b655c6a7f95a2b4c6b5a395806b5d4b3a2a170600000000000000000000000000000000000000132536434a4d4d4d4d4d4d4d4b433626140100000000000000000000000000000000000000000000000000080e101110100f0e0e0d0c0c0b0801000401000000000000000000000000000000000000000000081826303537393c3e4041424243444342413e3c38342b27211e160b0600000000000000000000000000000e23374b5d65757575757575756e5c48331e09000000081d32475b6d74757575757575665e4c38230f000000031628394b5c667c8b9ca4b3b8c5c9c5b8b3afaeadaeafb3b8c5c9c5b8b3a39b8b7c665c4b39281603000000000000000000000000000013283d52687d92a2b5bcc3b6a99b85715a4835200b00000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a251000172c41576c8196acacacacacb1bdccdaccbdb1acacacacacacacacb1bdced8cabdb1acacacac97826c57422d1700162b40566b8095abc0c1ac96816c57412c17020000000000000c21364c61768ba9bacec5a38e79644e39240f000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510000000000000000c1c2e3f4b6073859ba7b9bcab9d8775647a8c9fb4c0b9a89b8573604b3f2f1c0c0000000000000000000000000000000000000000081825303538383838383838353026180800000000000000000000000000000000000000000000000003111c2325262625242423222221201c141c1916120d0b050000000000000000000000000000000001142636434b4c4f515355565758585958575654514d483c3d36322820190e0300000000000000000000000010253a50657b8a8a8a8a8a8a8c755f4a35200a0000000a1f354a5f748b8a8a8a8a8a8a7c66503b2611000000091e324657647a8b9fa9b5c2c6b9b4aba79e9a9897989a9ea7abb4b9c6c2b5a99f8b7a645746321e0a00000000000000000000000000000b20354b607384979faba8a59d8b7a644f3c2b190600000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a251000172c41576c8196acbabababababdc7d5d7c9bfbcbababababababababec8d5d5c7bebababaac97826c57422d1700162b40566b8095abc0c1ac96816c57412c170200000000010a192b3c51667b91a6c7cbb8a68c76614c37210c000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a25100000000000000000111d3144556278899eb3beb7a5978176869caabbbeb49e8a786355443121110000000000000000000000000000000000000000000008131c2023232323232323201c14080000000000000000000000000000000000000000000000000011212f383b3c3b3a3a3938373736353026312e2b272220180d0b0400000000000000000000000000081c30435460626466686a6b6c6d6e6e6d6d6b6966625a58524b4639352b1e160b000000000000000000000010253a50657a8f9f9f9f9f9f8a755f4a35200a0000000a1f354a5f748a9f9f9f9f9f907b66503b26110000031628384b6175879da9bac7c1b4a89e968e898583828385888e969ea8b4c1c7baa99d8775614b3928160300000000000000000000000000081d3144556075828c929390877b655c4a361e0e0000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a251000172c41576c8196a4a4a4a4a4a4aab7c7c9b9aca6a4a4a4a4a4a4a4a5aab7c8c7b7aaa5a4a4a497826c57422d1700162b40566b8095abc0c1ac96816c57412c1700070b0c0e141c2837485a6c8297acc1c8b39e88735847331f0a000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510000000000000000001152737485a677d92a0b1c3b19f97889ca4b6c3b2a0927d675a4937271503000000000000000000000000000000000000000000000000070b0d0d0d0d0d0d0d0b080100000000000000000000000000000000000000000000000000081c2f3f4b5051504f4f4e4d4d4c4b4b43484644413c37342b221f180c0400000000000000000000000b20354b607377797b7e7f80818283838382807e7b77736d6761574d483c32281b100200000000000000000010253a50657a8fa5b5b5b49f8a755f4a35200a0000000a1f354a5f748a9fb4b5b5a5907b66503b26110000091e3245566a8095a5b7c7c1b4a39b8a8179736f6e6d6e6f7379818a9ba3b4c1c7b7a595806b5745321e0900000000000000000000000000011426374557606d787d7d7a74655d4b3e2d1b000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a251000172c41576c818f8f8f8f8f8f8f99aac2bfac9b918f8f8f8f8f8f8f9099aac5beaa998f8f8f8f8f816c57422d1700162b40566b8095abc0c1ac96816c57412c1f131c202123263039455562788b9fb4c9c7ae99846e593a291704000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a251000000000000000000009192b3c4d5f6d8297a4b6bdb1a59da5b6c2b6a598826d5f4d3c2c190900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23384b5d6566656564636362616160545e5c5956514d483b37342a1f170c00000000000000000000182d42586d828c8e919395969797989998979693918d88837d766c625a4b46392e201305000000000000000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100000b21364b6075899eb3c3c9b5a39b85786c635b5a5958595a5b636b78859ba3b5c9c3b39e8975604b36210b000000000000000000000000000009192839454b5a6267686560554b3f2e2010000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510000d23384d62787a7a7a7a7a7a7b8fa4b6bca6917d7a7a7a7a7a7a7a7b90a7b9baa58f7b7a7a7a7a78634d38230e00162b40566b8095abc0c1ac96816c57413434253035363836434b576073849aa9bacdbaa9937e68533e291300000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510000000000000000000000e1e30414b6175869caabbc3b7b2b7c3bbaa9d8775614b41301e0e00000000000000000000000000000000000000000000000000000a0f1111100e0d0b090200010000000000000000000000000000000000000000000000000010253b50657b7b7b7a797978777776757473716e6b676259544c473b332a1c1204000000000000000014293e53697e93a4a6a8aaabacadadaeadacaba9a6a69e98928981786c61574b3e302313050000000000000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b2611000012273c51677c91a7b9ccbcab9b8575625a4e4a3d4342433d494e5a6275859babbcccb9a7917c67523c27120000000000000000000000000000000a1b28323c494d5253504b44372e211002000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a2510000c2035495a6265656565656572879cb1b8a38e796565656565656574899eb3b6a18c7765656565635a4935200c00162b40566b8095abc0c1ac96816c5749494949434a4c4d51546066758298a2b3c7c6b49f8a77614c37220c00000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a25100000000000000000000000131e324657647a8b9fb4c4cbc7cbc0b49f8c7a6457463323130000000000000000000000000000000000000000000000000004121d242727252422211e161a17130e0b070000000000000000000000000000000000000000071c31475c718691908f8f8e8d8c8c8b8a89888683807c77716a61594c473a2f2214060000000000000014293e53697e93a8bbbdbfc0c1c1c0bfbfc0c0bec5b8b3ada89e978b8175645c4d413023130300000000000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b26110002172d42576c8297acc5cab49f8c796357493c362d2e2d2e2c363c495763798c9fb4cac5ac97826d57422d180000000000000000000000000000000d1d2b34383e3e3e3e3e3e39362d1f0f00000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a25100006192c3c494d4f4f4f4f4f5a70859aafbaa5907a65504f4f4f4f5c72879cb1b8a38e78634f4f4f4d493c2c190600162b40566b8095abc0c1ac96816c5f5f5f5f5f54606163676b747b8798a0b2c0cdb9a897826d5947341f0b00000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a25100000000000000000000000031629394a5c697f94a6b7cbddc8b4a2947f6a5c4a3929170500000000000000000000000000000000000000000000000000122230393c3c3a39373632282f2c2824201c130b070000000000000000000000000000000000081d33485d72889da5a4a4a3a2a2a1a0a99f9d9b9996918c867f776c61584c403124140500000000000014293e53697e93a8bed3cebdb1acabaaaaabacaeb3b7c4c6b9b4a99f96877a675f4d4130211100000000000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100001325365b71869bb0c6c3ae99836e5b4a392c211a1918191a212c394a5b6e8399aec3c6b19b86715c372614010000000000000000000000000005192b3c484d5353535353534e4a3d2d1a07000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a251000000e1e2c35383a3a3a3a43596e8398aebca7917c67523c3a3a455b70859ab0baa58f7a65503a3a38352c1e0e0000162b40566b8095abc0c1ac9681747474747474747576787c8087909ca5b2becfbcb49e8a77624d3b2a180400000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a25100000000000000000000000000b1b2d3e4a6074889db2c8dac5af9a8573604b3e2e1b0b000000000000000000000000000000000000000000000000000a1d30404d5151504e4d4b453844413d39353025201c1308010000000000000000000000000000021628385e73899eb3bab9b8b8b7b6c7bab4b3b1aeaba6a39b948b8176665e4e4231231300000000000014293e53697e93a8bed2c2b19f979695949597999da6a9b3b8c5bab4a59d8b7d675f4d3f2e1c0c000000000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100071c30435474899eb3c9bda8937d68533d2d1b0e07000300060e1b2d3d53687d92a8bdc9b39e89745544311d08000000000000000000000000000b2034485a62686868686868635b4a36210c000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a25100000000e1920232525252c42576c8197acbea9937e69543e292e44596e8399aebca7917c67523c272320190e000000162b40566b8095abc0c4b19f96898989898989898a8b8d91969da5b2b6c3c9bcb59e927d685948341d0c0000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a25100000000000000000000000000c1c2e3f4b6075889db3c8d6c1ac97816c5d4b3a291704000000000000000000000000000000000000000000000000000f24394d5e666665636260565c5a56524e4a43363530251d140900000000000000000000000000091e324556758a9fb4bdbebebfc0c0c1c2c2c4c6c3c0c1b5b1a99f96887c68604e41301f0e000000000014293e53697e93a8bec9b5a3978181807f808284888e949ea6b4bbc3b6a99f8d7d675d4b3a2a17040000000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b2611000b20354a60758a9fb5cabaa48f7a654f3a2510000000000000000f253a4f647a8fa4b9ccb9a88a75604b35200b000000000000000000000000000d22384d62787e7e7e7e7e7e79634e39230e000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a251000000000060c0d1010152b40556a8095aabfaa95806b55402b2d42576c8297acbea8937e69533e29140c0600000000162b40566b8095abc0cebdb1a89e9e9e9e9e9e9e9faba2a6abb2b7c3cac3b7ab9f95806b604e3b2b18000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a251000000000000000000000000417293a4b5d6b8095a6b7cbdfcab49f8c7b655846331f140100000000000000000000000000000000000000000000000011273c51667c7c7a79777674716f6c68636054504a4336312619100200000000000000000000000b21364b60768baaa7a8a9a9aaaaabacacadafb1b4bac7cac7bab4a69d8d7e685f4d3d2c1a060000000014293e53697e93a8bec6b19b86716b6a6a6b6d6e73797f88959faab9c6baab9f8c7b655847331f0f0000000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b2611000b20364b60758baabbceb8a38e78634e39230e000000000000000e23384e63788da3b8cebbaa8b76604b36210b0000000000000000000000000011263b50667b9093939393937e69533e2914000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a251000000000000000000014293e53697e93a8beac97826c57422d2b40556b8095aabfaa95806a55402b15000000000000162b40566b8095abc0d5cec6b9b4b4b4b4b4b4b4b4bcc9bcc0c7c6c3b7b2a59d8d806b625142311d0d000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a251000000000000000000000000e1f334658657b8c9fb4c4d4cbcebbaa9d8776614c42311f0f0000000000000000000000000000000000000000000000081e33485d7388918f8e8c8b898784817d79746d6660544b44372d201204000000000000000000000c22374c61778c91929393949595969697989a9c9fa9adb4bbc8c4b8ab9f927d675b493521110000000014293e53697e93a8bec6b19b86715c55555657595b636a757f8b9ea8b9c6bbaa9d8876614c3e2d1a0700000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100081d314455748a9fb4c9b9a48e79644f39240f000000000000000f24394e64798ea3b9cab49f8a755645321e090000000000000000000000000011263b50667b90a5a8a8a8937e69533e2914000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a251000000000000000000012273c51677c91a6bcae99836e59442e293e53697e93a8beac97816c57422c17020000000000162b40566b8095abc0c0c0c1c6c0c0c0c0c0c0c0bfbfbdc9bcb5b1aca59d94877c6a62514434231300000000000000000000000000000000000000000000000f253a4f647a8fa4b9c0b29d88735d48331e080000000000081d33485d72889db2c0baa48f7a654f3a2510000000000000000000000e1e30414c6176879dabbcc9c6b6c6c8b7a598836e604e3d2c1a0a00000000000000000000000000000000000000000000071c30435474899ea5a3a2a89e9c9996928e88827b736860554a3e302212040000000000000000000b21364b60757c7c7d7d7e7f7f808181828385878a90979faab4c0c9bcb49f8a79634e3f2e1c0800000014293e53697e93a8bec6b19b86715c463f40423d4a4e57616a7b8a9ea8b9c8b7a697826d5c4a36210d00000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100021527375d72879db2c7bba6907b66513626140100000000000114263650667b90a5bbc7b29d87725d382816020000000000000000000000000011263b50667b90a5bbbda9937e69543e2914000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a251000000000000000000010253a50657a8fa5bab09a85705b4530273c52677c91a7bcae98836e59432e19040000000000162b40566b8095ababababacb1abababababababaaaaa8a6ab9f9c9690877f75665e50433426160500000000000000000000000000000000000000000000000f253a4f647a8fa4ababab9d88735d48331e080000000000081d33485d72889dabababa48f7a654f3a251000000000000000000009192b3c4d5f6e8298a5b7c2b5b1a1b1b5c2b2a0937e685b49382816020000000000000000000000000000000000000000000b20354a60758a9fb5b8c6b9b3b1afaba7a69d9790877e73645c4c40302212010000000000000000091e324556606667686869696a6b6b6c6d6d6f71767b828b9aa2b3bfcdbaa99a846f5d4b37230c00000014293e53697e93a8bec6b19b86715c46312b2d2d3639464b5d657a8a9eb4bfc4b49f8c79644e3b2a1805000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b26110000192e44596e8399aec7c0ab95806b5443301c110902000209111c3043546b8095aac0c7ae99846e59442f19000000000000000000000000000010253a50657a8fa5c9c0ab95806b563e2d19090000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a25100000000000000000000e23394e63788ea3c8b29c87725d3827253b50657a90a5bab09a85705b45301b060000000000162b40566b809595959595979c95959595959595959493918e8b86817b736960564c40332516080000000000000000000000000000000000000000000000000f253a4f647a8f959595959588735d48331e080000000000081d33485d728795959595958f7a654f3a2510000000000000000001142637485a677d92a0b2c3b5a49c8b9ca4b5beb49f8a79635645321e120000000000000000000000000000000000000000000c21364c61768babbcbcbec0c2c5c4c1c4b8b3ada49c93857a665e4c402f1f0f000000000000000003162838454b5152525354545555565757585a5760666d788499a1b3c3c7b4a2907b65503a2a1804000014293e53697e93a8bec6b19b86715c46311c181a2129323f4b5c687e92a1b3c7bcab98826d5947341f0b000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b2611000014293e53697e93a9bac7b19c8673604b3d2f201d1519151d202f3d4b6073869cb1c6baa9937e69533e291400000000000000000000000000000e24394e63798eabbcc5b09a85705c4a3727190c00000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000081d33485d72889db2c7baa48f7a654f3a25100000000000000000000c22374c61778caaabab9e897456453124394e63798ea3abab9c87725c47321d07000000000011263b50667c8080808080818780808080808080807f7e7c7976716c6560544b45382f221507000000000000000000000000000000000000000000000000000d22384d62788080808080807f6a543f2a1500000000000000152a3f546a7f80808080808078624d38220d00000000000000000b1d3144556278899eb3bebbaa9c8676869caabbbaa99c8674604b40301d0d00000000000000000000000000000000000000000d22374d62778ca2a5a7a9abadb0b3b8c4c4c8c3b6b2a39b8a7c665e4c3d2c1a0600000000000000000a1a2832363c3c3d3e3e3f40404141424339454b505a63748399a5b7cac0ae99836e5847331f0a000014293e53697e93a8bec6b19b86715c46311c00070b161e2f3d4e606e8399aec1c9b49f8b77624c37220d000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100000c21374c61778a9fb4c3b6a4927d675b4b3f3631272e2731363f4b5b677d92a4b6c3b49f8b77614c37220c00000000000000000000000000000b21364b60768b9fb4cab4a28e79645544372a1c12010000000000000000000f253a4f647a8fa4b9c0b29d88735d48331e080000000000081d33485d72889db2c0baa48f7a654f3a25100000000000000000000b20354b60748c959595958b75604b3622374c62778c9595959589735e49341e0900000000000f23384c5e666b6b6b6b6b6c716b6b6b6b6b6b6b6a6a686664605757504b433632281a120400000000000000000000000000000000000000000000000000000b2034485a626b6b6b6b6b6b6a614f3c27130000000000000012273c4f616a6b6b6b6b6b6b625a4835200b000000000000000b1b2e3e4b6073849aa8b9c1b49f8b7a647a8b9fb4c1b5a496816c5e4c3b2b1808000000000000000000000000000000000000000e23394e63798c8e90929495989a9ea6a8afb4c0c9c1b5a89f8d7c665b493621120000000000000000000a161e2127272828292a2a2b2c2c2d2e2832363c49566176879db2c4c9b49f8a77614c37220c000014293e53697e93a8bec6b19b86715c46311c07000003111f31424f647a8fa3b4c8bbaa937d68533e2813000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100000a1f3347586b8196a5b6c2b39e8979655d504b45384338454b505d6579899eb3c2b6a596816c5947341f0a0000000000000000000000000000091e32455671869bb0c6c0b09b85746055473a2f1d140900000000000000000f253a4f647a8fa4ababab9d88735d48331e080000000000081d33485d72889dabababa48f7a654f3a2510000000000000000000081c3043546a7f808080808075614b3621354b60738080808080806b56402b16010000000000091c2f404c505656565656575c56565656565656555553514f4b45393b3530261e160a0000000000000000000000000000000000000000000000000000000005192b3c484d565656565656544f4332200d000000000000000c2032434f545656565656564d483c2b1905000000000000031628394a5c6a7f95a2b4c6b5a3957f6a5c6a7f94a3b4c2b19f917c665948362614010000000000000000000000000000000000000b20354a607276787a7c7e808285888c939aa2b1b5c2c6baab9e8a79634e40301d0900000000000000000003090b11121313131c2024282c2d2e2e2c292c384657677c91a6b7cbbbaa927c67523d2712000014293e53697e93a8bec6b19b86715c46311c07000000011322374b5c70859bb0c5c8ae99846f593c2c19060010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b2611000004172a3a4b6175879da7b6b9a79d887b6e6560565a585a5660656e7b889da7b9b6a79d8775614b3a2a1804000000000000000000000000000003162838546a7f94a8b9c9b5a398827361594c403126190a000000000000000f253a4f647a8f959595959588735d48331e080000000000081d33485d728795959595958f7a654f3a25100000000000000000000114263650616a6b6b6b6b6b615746321e314455606b6b6b6b6b6b62503d28140000000000000011222f383b4040404040424740404040404040403f3e3c3936322825201c1408030000000000000000000000000000000000000000000000000000000000000d1d2b34384040404040403f3c3225150300000000000000031525323c3f40404040404038352b1e0e000000000000000d1e324657647a8c9fb4c0baa99b8573604b6073859ba8babdb39e8978625443301c10000000000000000000000000000000000000071c3043546061636567696b6d7073777d848f9ca4b3bfc9b9a89a84705e4d39240e000000000000000000000000000c171f253035393e41434343413e3936394b6074889db2c8c8ac97826d57362513000014293e53697e93a8bec6b19b86715c46311c0700000000071b2e3e53697e93a8c6c8b39e89735a4935200c0010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b26110000000c1e3346576379899da5b4b7a69d8c837a75706f6e6f70757a838c9da6b7b4a59d8979635746331c0c000000000000000000000000000000000c21374c61768a9eb4bfc1b2a0988477665e4b4437281b0a0000000000000d22384d62788080808080807f6a543f2a1500000000000000152a3f546a7f80808080808078624d38220d0000000000000000000008183343505556565656564b463928162637444b565656565656504433210e0000000000000004111c23262b2b2b2b2b2c322b2b2b2b2b2b2b2b2a292724211e16100b08010000000000000000000000000000000000000000000000000000000000000000000d1920222b2b2b2b2b2b2a27201507000000000000000000071520272a2b2b2b2b2b2b2220190e000000000000000d1d30404b6175879caabbc0b49f8b796355445563798a9fb4c0b8a79a8472604b3f2e1c0c000000000000000000000000000000000000132536434a4c4e50525456585b5962686f7b8699a1b3c3c6b4a2917c66513c2c19060000000000000000000001131c2a3336434a4e535658595857534e4a3e44556c8196abc1c6b09b86715443301c070014293e53697e93a8bec6b19b86715c46311c0700000000001024394f64798ea8baccb8a78d78634d38230e0010253a50657a8fa5bacab49f8a755f4a3520000000000a1f354a5f748a9fb4c9bba5907b66503b261100000003172939495b637987959fa9b2ab9f99908a86848384868a8f999fabb3a99f958779635b4939291700000000000000000000000000000000000a1f334758697f94a1b3c0beb2a29a887c6c6055453928190900000000000b2034485a626b6b6b6b6b6b6a614f3c27130000000000000012273c4f616a6b6b6b6b6b6b625a4835200b00000000000000000000001525333c4040404040403632281b0b192631354040404040403d33261604000000000000000000090f111616161616171c16161616161616151513110f0b09030000000000000000000000000000000000000000000000000000000000000000000000000000050b0d16161616161615130d030000000000000000000000030c12151616161616160d0b050000000000000008182b3b4d5e6d8297a5b6c6b4a2937e695b4937495b697e93a2b4c5b4a2957f6a5d4b3a2917040000000000000000000000000000000000081825303537393b3d3f40433b484d535d65758399a4b6cac0af9a85705a4935200c00000000000000000009141d313a474c546063686b6d6e6d6c68645c524d52677c92a7bcc9b49f8974604a35200b0014293e53697e93a8bec6b19b86715c46311c0700000000000b20354b6075899fb4c9c5a5907b66503b26110010253a50657a8fa5bacab49f8a755f392816030000000a1f354a5f748a9fb4c9bba5907b66503b2611000000000b1b2c3d495b6375808b969da6adaea99f9b9998999b9fa9aeafa69d968b8075635b493d2c1b0b000000000000000000000000000000000004172a3a4b60728399a2b1bdc0b3a69d908173605745372715020000000005192b3c484d565656565656544f4332200d000000000000000c2032434f545656565656564d483c2b19050000000000000000000000071520282a2b2b2b2b2b211e160b0009141d202b2b2b2b2b2b282116080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001325364859667c919fb1c3b9a89a8472604a3d2c3d4a6072849aa7b9c0b49f8c7b655846331f1401000000000000000000000000000000000008131c2021232527292b2d2b34373f4b576175869cb2c2cab59f8c78634d38230e000000000000000009192631424e58616a73797d81828383817e7971675f4e63788da3b8cdbaa88c77614c37220c0014293e53697e93a8bec6b19b86715c46311c070000000000081d31445571869bb1c6bda8937d68533e28130010253a50657a8fa5bacebbaa8a755746321e090000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000f1f2c3d4957606b7880888f98a0b2b4b0afadafb0b4b3a199908880786b6057493d2c1f0f000000000000000000000000000000000000000c1c304354617584979fb3b8c4b8b39e968375605544311d1200000000000d1d2b34384040404040403f3c3225150300000000000000031525323c3f40404040404038352b1e0e00000000000000000000000000030d131516161616160c090300000001080b161616161616140e04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080e10171917100e0900000000000000000000000000000000000006121b20202020202020202020202020202020202020202020202020202020202020202017150f0500000000000a1c3043546277899eb3bdbfb49e8a78625443301c3043546278899eb3bfbbaa9d8776614c42311f0f00000000000000000000000000000000000000070b0c0e10121416181820222e394657657b8fa4b5c9bcab937e69543e29140000000000000001142637444b60687680878e939698989896938e867d6f6061768ca1c7d7c6a38e79634e39240e0014293e53697e93a8bec6b19b86715c46311c070000000000011527375a70859aafc5bfaa947f6a553f2a150010253a50657a8fa5bad9b6a08b76614b36210c0000000a1f354a5f748a9fb4c9bba5907b66503b26110000000000010f1f2c39454b5a636b737b8298adc2c5c4c3c4c5c4af99847b736b635a4b45392c1f0f0100000000000000000000000000000000000000011426364657617481919da6b4c0bdb0a1998373604b402f190900000000000d1920222b2b2b2b2b2b2a27201507000000000000000000071520272a2b2b2b2b2b2b2220190e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002111c23252c2e2c26231c11030000000000000000000000000000000616242f3535353535353535353535353535353535353535353535353535353535353535352d2a2217090000000a1a2d3d4a6072849aa7b8c5b3a1927d685a483625132536485a687d92a1b3c5b7a598836e604e3d2c1a0a000000000000000000000000000000000000000000000000000100050b111b29394b5d71869cb1c6c9ae98836e59382816020000000000000d1d314455606d7e89959da5a8abadaeadaca8a49c92837560758aa9bacdb9a48f7a644f3a250f0014293e53697e93a8bec6b19b86715c46311c07000000000000192e44596e8399aec3c0aa95806b55402b160010253a50657a8fa5baccb7a28c77624d37220d0000000a1f354a5f748a9fb4c9bba5907b66503b26110000000000000a1b2838454b5d6470798096a0b2c8bbb4b3b4bbc8b3a196807a71655d4b4538281b0b000000000000000000000000000000000000000000081829394656606c7c889aa2b3bfbfb3a197816c5e4c372614010000000000050b0d16161616161615130d030000000000000000000000030c12151616161616160d0b050000000000000000000000000000000000000000000000000000000000000000000000000000040e14162020202020202020202020202020202020201f1e1d1b16110c0a040000000000000000000000000000000a161e2e373b4143413b382f1e160a0000000000000000000000000000122434424a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a423e3527170500021628384a5b697e94a2b3c5b8a799836e604e3c2b1808182b3c4e5f6e8399a6b8c3b2a0937e685b493828160200000000000000000000000000000000000000000000000000000000000b1b2e3f546a7f94a9bfc8b29d88735645321e0900000000000d1d31424b607381929ea8b2b7c3c0c2c2c0bfc2b6b1a1998372748a9fb4c9baa5907a65503b25100014293e53697e93a8bec7b29d87725d48321d00000000000003182d42586d8297adc2c0ab96816b56412c160010253a50657a8fa5bacfbaa58f7a65503a2510000000091e324556748a9fb4c9baa5907b65503b26100000000000031628394556606d7a858e969eb4aca5aa9f9e9faaa5acb49e968e867b6d605646392816030000000000000000000000000000000000000000000b1b2938454b5e66778499a1b3c2bfb19f907c665544311d0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081621292b353535353535353535353535353535353535353332302b27211f170c070000000000000000000000000a1a28323f4b50575957504c3f32281b0a000000000000000000000000001b2f42525e606060606060606060606060606060606060606060606060606060606060606057524535220f00091e32455663798b9fa4a4a4a49e8977624c42311e0e000d1d31414c6177889ea4a4a4a49f8a79635645321e0900000000000000000000000000000000000000000000000000000000000011253b50657a90a5c8cab59f8b76604b36210b0000000005182a3b4e606d81979fb3b9c6cac4b7b3adabaaacaeb4b3a1937e748a9fb4c9bba5907b66503b26110014293e53697e93a8becab6a58a75603b2a1805000000000004192e43596e8398aec3bfaa957f6a55402a150010253a50657a8fa5bacfbea9937e69543c2b190600000b21364b60768ba9baceb9a48f79644f3a240f0000000000091e3245576074818d9ba3aba89e97908c8a898a8c90979ea8aba39b8f8274615746321e120000000000000000000000000002080b0802000000000b1a2832404c5961748399a4b5c9bdb19c8673604b35200b00000000000000000000000000000000000000000000000000000000000000000000080d0f2020202020201e1b150c000000000000000000000000020b1113202020202020201b19130900000000041626333d404a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a484745413c373329211a0f0200000000000000000002162838454b5d656c6e6c655d4b453928160300000000000000000000000020354a5e7075757575757575757575757575757575757575757575757575757575757575756c63523e2a15000b21364b6076868f8f8f8f8f8f8f7d675947342313000000131f344759667c8f8f8f8f8f8f8f8675604b36210b0000000000000000000000000000000000000000000000000000000000000c21374c61768caabbcebcab8d78634e38230e000000000b1f344859687e939fb1bdccc2b6b1a69d98969596999fa9b19c87748a9fb4c9bba5907b66503b26110014293e53697e93a8bed4c39f8a755948341f0b000000000004182a3a5a6f849aafc4bea8937e69533e29140010253a50657a8fa5bacfc4af9a846f5a4835201811101423384e63788da3c7d4c3a38d78634e38230e00000000091d2f404b607583979fabb4a29a8a827b77747474777b818a9aa2b4b1a0988475614b40301d09000000000000000000000009151d201d1509000000000a151d2f3b47566175869cabbccab6a4927d6752382815020000000000000000000000000000000000000000000000000000000000000002101b22253535353535353330291d0f0000000000000000000006141f262935353535353535302e261a0c0000000e21334451566060606060606060606060606060606060605f5e5c5a56514c473a362d1d150a0000000000000000091e324556606e7b8183817b6e605745321e0f00000000000000000000000020354a60758a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a816c57422d17000c21374c61767b7a7a7a7a7a7a7a675f4d3b2a180500000004182a3b4c5e667a7a7a7a7a7a7a7b76614c37210c0000000000000000000000000000000000000000000000000000000000000a1f334758758a9fb4cac9a58f7a65503a25100000000417293a4c62778a9eb4bdcebfb3a49c908883807f81848a939ea48d788a9fb4c9bba5907b66503b26110014293e53697e93a8beccb7a18c77624c37220d00000000000a1f33475872889db2c7c8a7927d67523d28120010253a50657a8fa5bacfcab49f8c78624d43342a272526304253687d92a8bdcab7a58c76614c37210c000000000f24384c5e6e8298a1b5b5a39a84786d6661585e5861656c78849aa3b5b2a299836e5e4d39240f000000000000000000000d19273136312719120400000002121d2a384657647a8d9fb5cac2af99846f5645321d090000000000000000000000000000000000000000000000000000000000000010202e373a4a4a4a4a4a4a48443b2d1d0c0000000000000000001424313b3e4a4a4a4a4a4a4a4642382a1a09000014293d51626b757575757575757575757575757575757575747372706b6661584e4a3d31271a0c000000000000071a2d3d4b60748290969896908375604b3e2d1a07000000000000000000000020354a60758a9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f97816c57422d17000a1f3347586165656565656565645c4d41301d0d00000000000c1d30404c5c6465656565656565615847331f0a0000000000000000000000000000000000000000000000000000000000000417293a5e73899eb3c8bba6907b66513b26110000000a1f3346586c8197a8b9cdc1b3a199867b746d6b6a6c6f757e899d978297a9bacdbba5907b66503b26110014293e53697e93a8bed0bba6907b66513a2a1706000000011325364c61778ca5b7cabbaa8f7a65503a25100010253a50657a8fa5bacfcfbcab99836e614c483b3c3b36434b6070859bb0c5c7b29d87725847331f0a00000006192c3c51667c90a0b2bfb09b8575625a504c473a474c505a6274859bb0c0b2a1917c66513d2c1a0600000000000000000d1d2a37444b44372f221201000000000c1a28394a5c6f8499afc4c9b49f8a75604b36200b000000000000000000000000000000000000000000000000000000000000081b2e3e4b4f6060606060605d584c3b29150100000000000000091931424e53606060606060605b55483826130000162b40566b808a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a888785807c766d635b4b45382a1c0c00000000000c21364a5b6d8297a0acaeaca198826d5c4a36210d000000000000000000000020354a60758a9fb5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5ac97826c57422d17000417293a474c4f4f4f4f4f4f4f4f4a3e302312000000000000001222303e4a4f4f4f4f4f4f4f4f4c473a2a1704000000000000000000000000000000000000000000000000000000000000001e33485d73889db2c8bca6917c67513c27120000000c21364c61768a9fb4c6c9b4a399837466605456555757606978879d979fb1c7d7bba5907b66503b26110014293e53697e93a8bed3c2ad97826d584733211a121110151d304354687d93a8c3cab49f8a75604b36210b0010253a50657a8fa5bad9c8b4a29b947f6d6259535150515460697e93a3b4c8c4ad98836d583a2a17040000000c2035495a71869bb1beb5a38e7a6457483c37332a33373c485664798ea3b5bfb19c86715b4935210c000000000000000c1c2a3b485560554c40301c1408000000000b1b2d3e53687d92a8bdcebbaa8e79644f39240f0000000000000000000000000000000000000000000000000000000000000d22374b5c64757575757575736a5844301b07000000000000011527374e606875757575757575706655422e190400162b40566b80959f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa99f9d9c9a96918a82796b6056473a2a1a0a000000000e24394e63798ea0b1bec3bfb2a08e79644e39240f000000000000000000000020354a60758a9fb5cacacaccc3bfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfac97826c57422d1700000c1c2933373a3a3a3a3a3a3a3a362e201204000000000000000412202d363a3a3a3a3a3a3a3a37332a1c0c00000000000000000000000000000000000000000000000000000000000000081e33485d73889db2c8bca7927c67523d271200000114263753687d93a8bacdbcab9b857460564b43364039454b5a63798b9fb4bdced0bba5907b66503b26110014293e53697e93a8bed3c9b49f8a76614c43352c27262627313f4a6073859bb0c6c8b09b86705745321e090010253a50657a8fa5bacebbaa9b859b9482776e696665666a737e8c9fb4c1cbb8a6927d67523d2812000000000e23384d63788da3b5c6b19b86715c4a392b221f181f212b384a5c71869bb1c6b5a48d78634e38230e0000000000000c1c2a3a48596275665e4c403026180f0800000010243a4f64798fa4b9d8c8a6917c66513c27110000000000000000000000000000000000000000000000000000000000000f253a4f647a8a8a8a8a8a8a88735d48331e08000000000000081d314455687e8a8a8a8a8a8a8a85705b46301b0600162b40566b8095abb5b5b5b5b5b5b5b5b5b5b5b5b5b5b5bab4b3b1afaba99f978d817461594738281603000000142a3f54697f94a9beced8cfbea9947f6a543f2a15000000000000000000000020354a60758a9fc1d2dbccbcafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa97826c57422d170000000c171f212525252525252524221b100200000000000000000002101b222425252525252525211f170c0000000000000000000000000000000000000000000000000000000000000000081e33485d73889db2c8bca7927d67523d28120000081d3144556f8499aec6cab49f8c796456453830262a28323c495b6a8095a9bacdd0bba5907b66503b26110014293e53697e93a8bed3cdbaa998826e624e493d3d3b3b37444b5d687e93a3b5c9bbaa95806b56392816030010253a50657a8fa5bacab49f8b798e9f978a837e7c7a7c7f86939faabbcec0b39d8874604b36200b0000000014293e53697e93a8c1c2ac97826d573e2d1b0e0a040a0d1a2d3e576c8297acc1c2a9937e69543e291400000000000b1b293a47586277877c665e4b43362d221b1412111223394e63788ea3b8cdbca7927d67523d28120000000000000000000000000000000000000000000000000000000000000f253a4f647a8f9f9f9f9f9d88735d48331e080000000000001325364b6074879d9f9f9f9fa2907b65503b26100000162b40566b8095abc0cacaccc3bfbfbfbfbfbfbfbfbfc0c1c3c8c7c5c7bab4ab9f968577615645321e0f000000162b40566b8095abc7d7e8d8c7ab96806b56412b16000000000000000000000020354a60758aa3b5c9cebdaf9e959595959595959595959595959595959595959595959595816c57422d1700000000040a0c101010101010100f0d0700000000000000000000000000070d0f101010101010100c0a04000000000000000000000000000000000000000000000000000000000000000000081e33485d73889db2c8bca7927d67523d281200000b20354b6074899eb4c9c8ae98836e5c4a38281c1415161e2c3d4c61768a9fb4c9d0bba5907b66503b26110014293e53697e93a8bed2c2b5a49c95806e635b55525050525560697b8a9eb4c1c7b49f8b78624d38230d000010253a50657a8fa5bacab49f8a74899ea89f9993919091959ca4b4bbc8c3b4a2947f6a5645311d0900000001162b41566b8096abc0c0ab96806b56412b160000000000162b40556b8095aac0c0ab96816b56412c16010000000317293947586176869c8b7c6a60544a3d372e292726272f3d50657b90a5badac9a6917c66513c27110000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b5b5b29d88735d48331e080000000000071c304354677d92a5b6b5c0b09a85705d4c38230e0000162b40566b8095abc0d5ccbcafaaaaaaaaaaaaaaaaaaabacaeb2b7c4cacdc9bcb5a39b8574604b3e2d1a07000013293e53687e93a9baccd6cdbaa9937e69533e291400000000000000000000001c31465b71869bb0c6c4b19f958080808080808080808080808080808080808080808080807c66513b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081e33485d73889db2c8bca7927d67523d281200000e24394e63798ea8b9cdbbaa917c66513e2d1a0a0100030f1f3346586e8399aec3d0bba5907b66503b26110014293e53697e93a8bec9b5a39b869c958379706a676665676c747e8a9ea8b9cdbaa998836e5a4835200b000010253a50657a8fa5bacab49f8a758298a9b4aea8a6a5a6aab1b5c2cbc1b5a59b8573604b3827150200000003182d43586d8298adc2c1ac97816c573828160300000002152838576c8196acc1c2ad98836d58432e18030000000a1e3346576176859ba49f8c7f73635b4f4b3e3e3c3b3d404c5b6c8196abc1cfbcab8f7a644f3a250f0000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e0800000000000b20354a6073869cb1c3c8b4a2907b65503f2f1c090000162b40566b8095abc0cebdaf9e9595959595959595959597999da6acb4bbc8cfc1b4a397826d5c4a36210b00000d22374d62778a9fb4b9c6b9b49f8b78624d38220d0000000000000000000000162b40566b8095abc0c1ac96816c6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a665e4c38240f0000000000000000000000000000000000030a0c151515151515150c0a0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081e33485d73889db2c8bca7927d67523d2812000012273c52677c91a7c6c9b49f8a75604b36210f000000000417293a53697e93a8bed0bba5907b66503b26110014293e53697e93a8bec6b19b867d92a1998b857f7c7b7b7d8187939fa8b9c6bfb49f8b79634e3c2b1906000010253a50657a8fa5bacab49f8a75788a9faab5c1bbbabbbfc6c4c4b8b3a39b8778625544311a0a0000000003182d42586d8297adc2c4af99846f5645321e120d0c0d121d3245566f8499afc4c2ad98826d58432d18030000000c21364b6175859ba3b5aa9f9484796e645c5753515152555e66798b9fb4c9cab59f8b77614c37220c0000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e0800000000081c2f3f51667c91a4b6c9c0af9a85705d4b372111000000162b40566b8095abc0c4b19f95808080808080808080808184888e979faab7c3d1c1b59f8d79644e39291603000b20344859697f939ea8a8a89e947f6a5a4834200b0000000000000000000000162b40566b8095abc0c1ac96816c5755555555555555555555555555555555555555555555514c402f1d09000000000000000000000000000000000b171e212b2b2b2b2b2b2b211f170c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081e33485d73889db2c8bca7927d67523d28120000152a3f556a7f94aabfc6b19c87715645321e09000000000010253a50657a8fa5bacfbba5907b66503b26110014293e53697e93a8bec6b19b867a8ea5aa9f9a9592909092969da5b4bac6beb2a0937e695b4a361e0e00000010253a50657a8fa5bacab49f8a75677d8b9ba3aaaeb1b2b2b1afaba69e938577625a48372614000000000001162b40566b8095abc0c9b49f8a75604b3e302523222325303d4b6075899eb4c9c0ab96806b56412b16010000051a30455a6f859aa3b5c1bbb4a29a8c837a726d696766676b717b889da9bacdc3b09b85705947341f0b0000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e08000000000e23384c5d70859bb0c2c8b4a28f7b65503f2f1c03000000162b40566b8095abc0c1ac96816c6a6a6a6a6a6a6a6a6b6c6e7379818c9da5b7c4cfbcab99836e5746321e0a0005182b3b4f61697e899193918a7f6a614f3c2b19050000000000000000000000162b40566b8095abc0c1ac96816c57414040404040404040404040404040404040404040403b382f2212000000000000000000000000000000000b1b293336404040404040403633291c0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081e33485d73889db2c8bca7927d67523d28120000172c41576c8196acc1c3ad98836e583828160300000000000d22374c62778ca1b7ccbba5907b66503b26110014293e53697e93a8bec6b19b8672879db2b4b0aaa7a5a5a7acb2b7c3c6b9b4a098826e604f3d2d1a0000000010253a50657a8fa5bacab49f8a755f677a858e95999c9d9d9c9a9690887e746259483c2b190900000000000014293e54697e93a9c3cdbaa8947e695c4d413a3837383a404d5c697e93a8b9cdc3a9937e69543e29140000000013283e53687e939eb4bcc9c0b4aa9f988f87827e7c7b7c8086909da6b7c7c9b7a5947f69543b2a18040000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e08000000071b2e3e50657b90a3b5c9c0af9a846f5d4b37211100000000162b40566b8095abc0c1ac96816c57555555555555555657595b636c7a879da6b7cbc9b49f8a75614b36210c00000d1d32434f6069767c7e7c7669614f43321d0d000000000000000000000000162b40566b8095abc0c1ac96816c57412c2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b26241d120400000000000000000000000000000003172939464c555555555555554c463a29170400000000000000000000000000000000000000000000000000000000000000000000000000000000000000081e33485d73889db2c8bca7927d67523d28120000192e43586e8398adc3c1ab96816c56412c170000000000000c21364b61768ba0c7d7bba5907b66503b26110014293e53697e93a8bec6b19b86717d929fb4b9c6bcbbbabcc1c3c5b8b3a89e938273604b42321f0f0000000010253a50657a8fa5bacab49f8a755f5c64717980848688888685817b75696056483b2b1e0e000000000000000e24394e63798ea5b6cac6b49e8a7a675f544f4d4c4d4f545e667a8a9eb4c6cab7a58e79644e39240f0000000011263a4e606b80949fabb7c3c8bbb4ada59d9793919092959ba3b3b7c4c9bcab9d8775604b36210c000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000d22374b5c6f849aafc1c7b3a28f7a654f3f2e1c0300000000162b40566b8095abc0c1ac96816c574140404040404040423d4a4e5c6478889db3c4cebbaa907c66513b2611000000142532424e586166686661584f4332251500000000000000000000000000162b40566b8095abc0c1ac96816c57412c1715151515151515151515151515151515151515110f0900000000000000000000000000000000000a1e334657616a6a6a6a6a6a6a615846331f0a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000091e33495e73889eb3c8bca7927d67523d28120000192f44596e8499aec3c0aa95806b55402b16000000000000091e324657758aa9bacdbba5907b66503b26110014293e53697e93a8bec6b19b86716d81949ea8adb0b2b3b2b1aeaaa79e96897e6e605544312414010000000010253a50657a8fa5bacab49f8a755f4b4f5c646a6e717273716f6b6560564b45382a1d0e00000000000000000c21364a5b72879db2c2cdb9a89e897c7169656261626569717c899ea8b9cdc2b29d87725c4a36210d000000000b1f314250626b7f8d9da5b3b9c6cac3b7b2aca8a6a6a7aab0b5c1cbc4b7ab9f8d7c665645321e09000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000071a2d3d4f647a8fa2b4c8bfaf9a846f5d4b3721110000000000162b40566b8095abc0c1ac96816c57412c2b2b2b2b2b2b2c2d363e4a5a677d92a6b7cbc8ab95806b56402b16000000071424313a464c5153514c473a3224150700000000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000c21364c61768080808080808076614c36210c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354a60758aa7b8ccc4af99846f5a442f1a05001a2f445a6f8499afc4bfa9947f6a543f2a15000000000000031628395f748a9fb4c9bba5907b66503b26110014293e53697e93a8bec6b19b867160727e8992979b9d9d9d9b99959089807769604b4437271506000000000010253a50657a8fa5bacab49f8a755f4a3e4a4f55595c5d5d5c5a56504b453831271a0d000000000000000000071a2d3d54697e94a4b6c5c6b9a79e91867f7a7877787a7e86919ea7b8c6c6b6a4947f69543d2d1a070000000002142433445061697b87959ea8b1b6c2c4c7c2bebcbbbcc0c6c6c5b9b3a69d8d7d685e4c38281603000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e0800000c21364a5b6e8399aec0c7b3a18f7a644f3f2e1b030000000000162b40566b8095abc0c1ac96816c57412c171515151516171a212d3c4a6073889db3c8c2ac97826d57422d180000000006141b2933363c3e3c3733291c14060000000000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778c95959595958d78624d38230d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354a60758aa6b7cbbda8937d68533e281300001a2f44596f8499aec4bfaa947f6a553f2a15000000000000001f354a5f748a9fb4c9bba5907b66503b26110014293e53697e93a8bec6b19b8671546069767d82868788888683807b746b62594f423127190900000000000010253a50657a8fa5bacab49f8a755f4a2d363940444748484745413b3632281d150a00000000000000000000000f20354b6073869ca7b9c6c5b9b3a39b948f8d8c8d8f949ba3b3b8c5c6b9a89c8674604b36200f00000000000006162633434f5d65757f89949ca4a9afb2b5bcc9b9c8bbb4b1ada79e96887c685f4e402f1a0a00000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080006192c3c4e63798c9fb5cabfaf99846f5c4b372110000000000000162b40566b8095abc0c1ac96816c57412c1702000000010007101c3043546d8297adc2c3ae99846e59442f190000000000000b171f21272927211f170c00000000000000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2aaaaaaa28d78624d38230d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000081e33485d73889db2c8bca7927d67523d28120000192e44596e8399aec3c0ab95806b56402b16010000000000091e324556758aa9bacdbba5907b66503b26110014293e53697e93a8bec6b19b86715c4b5761686d71727372716e6a6560554c483b321d15090000000000000010253a50657a8fa5bacab49f8a755f4a3522242b2f31333331302c26211e160a02000000000000000000000000081d314455647a899ea8b4c0c8c2b5b1a9a4a2a1a2a4a9b1b5c1c9c0b4a89e8a7a645645311d0900000000000000081625323f4b57616a777f878e94999d9faba3a4a3aa9f9c9792898176665e4e413122120000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e08000c2035495a6d8298abbcc7b3a18f7a644f3e2e1b03000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000132536556a8095aabfc4af9a856f5a45301a00000000000000040a0c1113110c0a040000000000000000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bfb7a28d78624d38230d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000081e33485d73889db2c8bca7927d67523d28120000182d43586d8298adc2c1ac96816c57412c170000000000000b21364b60768ba0b5d7bba5907b66503b26110014293e53697e93a8bec6b19b86715c39464b53585b5d5e5d5c5955504b4437342a1d1402000000000000000010253a50657a8fa5bacab49f8a755f4a35200f15191c1d1e1c1a16100b09020000000000000000000000000000011527374a5c647a8a9aa2b0b4c1c3c6bebab7b6b7babec6c3c1b5b0a29a8a7b655c4a3827150200000000000000000714212e39464b58616972797f84888a8d8e8e8d8c8a86827d756c61584c40312313040000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e0805182b3b4d62788b9fb4c9bfae99846f5c4a36201000000000000000162b40566b8095abc0c1ac96816c57412c17020000000000000014293f54697e94a9bec3ad98836e58432e19000000000000000000000000000000000000000000000000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7ccb7a28d78624d38230d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000081e33485d73889db2c8bca7927d67523d28120000162c41566b8196abc0c4ae99846f593a29170400000000000c22374c61778ca1b6ccbba5907b66503b26110014293e53697e93a8bec6b19b86715c4633363d42464848484644403b3531271f180d0000000000000000000010253a50657a8fa5bacab49f8a755f4a35200a00040708080705010000000000000000000000000000000000000009192d3e4b5c647884929ba3aaaeb2b7c4b8b9b8c4b7b3aeaaa39b928479655d4b3e2e1a0a0000000000000000000003111b28323a474c545c64696f7276777979787775716d6760574c473a30221305000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48331e1616203448596c8197aabbc7b3a18e7a644f3e2e1b0200000000000000162b40566b8095abc0c1ac96816c57412c170200000000000003162839566b8095abc0c8ab96816c56412c17000000000000000000000000000000000000000000000000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7ccb7a28d78624d38230d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000081e33485d73889db2c8bca7927d67523d2812000014293f54697e94a9bec7b29d87725846331f0a00000000000f24394f64798ea4b9cebba5907b66503b26110014293e53697e93a8bec6b19b86715c463121282d31323333312e2b25201d150905000000000000000000000010253a50657a8fa5bacab49f8a755f4a35200a0000000000000000000000000000000000000000000000000000000010202e3e4b5a63727d858e94999da6a1a3a4a3a1a69d99958e867d72635b4b3f2e2010000000000000000000000000000b161e2a33373e4a4e545a57606263646361605658524b453933291c120400000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48332c2c2c2a3a4c62778a9fb4c8bfae99836e5c4a3620100000000000000000162b40566b8095abc0c1ac96816c57412c1702020202000408131e3246576e8499aec3bbaa927d68523d2813000000000000000000000000000000000000000000000000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7ccb7a28d78624d38230d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000081e33485d73889db2c8bca7927d67523d2812000011263c51667c91a6c5cab49f8b76614c36210f000000000215273753687d92a8bdd0bba5907b66503b26110014293e53697e93a8bec6b19b86715c46311c13181c1d1e1d1c1915100b08010000000000000000000000000010253a50657a8fa5bacab49f8a755f4a35200a000000000000000000000000000000000000000000000000000000000210202e3c4954606770797f83888b8c8d8e8d8c8b88847f7971686054493d2e2110020000000000000000000000000000030c171f212d36393f39454b4d4e4f4e4c4b45383d3632281f170c000000000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d48414141414147586b8096a9bac9b3a18e79644e3e2d1b020000000000000000162b40566b8095abc0c1ac96816c57412c181818181819171f2530404b61758a9fb4c7b49f8b76614c37210c000000000000000000000000000000000000000000000000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7ccb7a28d78624d38230d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000081e33485d73889db2c8bca7927d67523d281200000e23384d63788da7b8ccbcab927d67523d2d19090000000a1d3144556d8297acc2d0bba5907b66503b26110014293e53697e93a8bec6b19b86715c46311c070306080908070400000000000000000000000000000000000010253a50657a8fa5bacab49f8a755f4a35200a000000000000000000000000000000000000000000000000000000000002101e2c36434a525b636a6e7376777879787776736e6a645c524a43362c1f10030000000000000000000000000000000000040a101b22242a283236383939383736312728211e160a0400000000000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88735d565656565656566176899eb4c7bcab99836e5c4a362010000000000000000000162b40566b8095abc0c1ac96816c57412d2d2d2d2d2d2e2a3336434a5e6b8095a8babaa999846f5847331f0a000000000000000000000000000000000000000000000000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7ccb7a28d78624d38230d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000081e33485d73889db2c8bca7927d67523d281200000c2035495a73889eb3c8c9ae99836e5c4a3726191110121b293a4b6074899eb3c8d0bba5907b66503b26110014293e53697e93a8bec6b19b86715c46311c070000000000000000000000000000000000000000000000000010253a50657a8fa5bacab49f8a755f4a35200a000000000000000000000000000000000000000000000000000000000000000e182530353d4a4e555956606263646362605759554e4a3e353025180f01000000000000000000000000000000000000000000070d0f14161e212224242322201d15120b0903000000000000000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9c8b29d88736b6b6b6b6b6b6b6b6c8095a8b9cab59f8c79634e3e2d1b02000000000000000000162b40566b8095abc0c1ac96816c5742424242424242433a474c5460687c8b9fb4bcb49f8b79634e3a2a1704000000000000000000000000000000000000000000000000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000001090909090909090d22374d62778ca2b7ccb7a28d78624d38230d09090909090909010000000000000000000000000000000000000000000000000000000000000000000000081e33485d73889db2c8bca7927d67523d2812000006192c3c596e8398aec6cab49f8c79645544342b2725272e394658687d92a7b8ccd0bba5907b66503b26110014293e53697e93a8bec6b19b86715c46311c070000000000000000000000000000000000000000000000000010253a50657a8fa5bacab49f8a755f4a35200a000000000000000000000000000000000000000000000000000000000000000008131c202d36393f38454b4c4e4f4e4c4b45394039362d201c130800000000000000000000000000000000000000000000000000000003090b0d0e0f0e0c0b090200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9cbb7a69680818181818181818181959eafc6c3ae98836e5b4a372b1d10020000000000000000162b40566b8095abc0c1ac96816c5757575757575757585a586168737e8b9fa9b9b49e947f6a5b49351c0c000000000000000000040b0c0e0d0b05000000000000000000000000000000000000162b40566b8095abc0c1ac96816c57412c1702000000000000000000000000000000000000000000000000000000040e14161e1e1e1e1e1e1e1e22374d62778ca2b7ccb7a28d78624d38231e1e1e1e1e1e1e1e16140e040000000000000000000000000000000000000000000000000000000000000000081e33485d73889db2c8bca7927d67523d281200000012283d52677d92a8b9ccbcab9a8473604d483c3c3b3c3e4a576176889db3c3d2d0bba5907b66503b26110014293e53697e93a8bec6b19b86715c46311c070000000000000000000000000000000000000000000000000010253a50657a8fa5babab49f8a755f4a35200a00000000000000000000000000000000000000000000000000000000000000000000070f1a21242a28323637383938373632282a24211a0f070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9d4c4b09e969696969696969696979fafbcccb9a48e79696055483b2d20100000000000000000162b40566b8095abc0c1ac96816d6d6d6d6d6d6d6d6d6e6f72767d85939fa9b4a89e93806b61503d2c1a0000000000000000070c181f2224221f180d0800000000000000000000000000000000162b40566b8095abc0c1ac96816c57412c17020000000000000000000000000000000000000000000000000000081621282b333333333333333333374d62778ca2b7ccb7a28d78624d383333333333333333332b2921160800000000000000000000000000000000000000000000000000000000000000081e33485d73889db2c8bca7927d67523d28120000000c21364b6176899eb4c6c9b4a297816f625a54515052555c6475849a9da5b5c1d2bba5907b66503b26110014293e53697e93a8bec6b19b86715c46311c070000000000000000000000000000000000000000000000000010253a50657a8fa5a5a5a59f8a755f4a35200a000000000000000000000000000000000000000000000000000000000000000000000000070c0e15161e212223242322211e16150f0d07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b1114171614110e0b090200000000000000000000000000000000000000000000000000000f253a4f647a8fa4b9cfcdbcb0abababababababababacb1bdccddc8b29d887f7362594a3e2d1e0e00000000000000162b40566b8095abc0c4b19f968282828282828282828384878c929ba3b0aa9f988a7e6b625143331f0f00000000000002101b222a34373937342a221b10020000000000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000041626333d40484848484848484848484d62778ca2b7ccb7a28d78624d48484848484848484848413d342616040000000000000000000000000000000000000000050b0d0d0d0d0d0d0d0d0d1e33485d73889db2c8bca7927d67523d28120000000a1e3246576c8196a8b9cdc0b19f9783786f696665676a707a859a9d889ba3b5c9bba5907b66503b26110014293e53697e93a8bec6b19b86715c46311c070000000000000000000000000000000000000000000000000010253a50657b8f90909090908c755f4a35200a0000000000000000000000000000000000000000000000000000000000000000000000000000000003090b0d0e0f0e0d0b090300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006141f26292d2b292724211e16130d0c06000000000000000000000000000000000000000000000f253a4f647a8fa4b9cfdacdc4c0c0c0c0c0c0c0c0c0c1c4ced1d8cbb7a69d948477645c4a3c2b1808000000000000162b40566b8095abc0cebdb19f97979797979797979798999da5a6a89e9a948b8378696051443325150100000000000311202d363b474c4e4c473b372e20110400000000000000000000000000162b40566b8095abc0c1ac96816c57412c1702000000000000000000000000000000000000000000000000000e21334450565e5e5e5e5e5e5e5e5e5e5e62778ca2b7ccb7a28d78625e5e5e5e5e5e5e5e5e5e5e56514434210e000000000000000000000000000000000000000e19202223232323232323232333485d73889db2c8bca7927d67523d2812000000031629394c62778a9eb4becebdb1a1998b847e7c7a7c7f858d9ba39580859bb0c6bba5907b66503b26110014293e53697e93a8babab19b86715c46311c07000000000000000000000000000000000000000000000000000c21374c61767b7b7b7b7b7b7b65503b2510000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021424313b3e42403e3c39363228282320190e0c06000000000000000000000000000000000000000f253a4f647a8fa4b9cfd4c6b9b4b4b4b4b4b4b4b4b4b4bac7bcc3cac4b7b2a29a887a645a48362513000000000000162b40566b8095abc0d5cebdb1acacacacacacacacacad9d9392918e89857f776e625a4f423326160700000000000011212f3e4a4f59616362594f4b3e2f221100000000000000000000000000162b40566b8095abc0c1ac96816c57412c17020000000000000000000000000000000000000000000000000014283d50626b737373737373737373737373788ca2b7ccb7a28d787373737373737373737373736b62513d29140000000000000000000000000000000000000e1e2b353838383838383838383838485d73889db2c8bca7927d67523d2812000000000b1f344859697e93a0b2bfcfbfb3aa9f9993919091949b9faba38f7a8499aec4bba5907b66503b26110014293e53697e93a5a5a5a59b86715c46311c07000000000000000000000000000000000000000000000000000a1f33475861656565656565655d4b37230e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0c0f1214161718191918171615110d0b050000000000000000000000000000000000000000000b1f31424e53575554514e4b45383d38352c2320190e0800000000000000000000000000000000000f253a4f647a8fa4b9d4c4b7a89e9e9e9e9e9e9e9e9e9fa9a2a7aeb4bcc9c0b4a69d8878625443301c080000000000162b40566b8095abc0d5dbcec5c2c2c2c2c2c2c2c2bea9937e7d7c7974706962594d483c322416080000000000000b1b2f3f4b5c647077797770645c4c402f1b0b000000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000162b40566b808888888888888888888888888c96a7bbcfbba7968d888888888888888888888888806b56412b16000000000000000000000000000000000005192b3c484d4d4d4d4d4d4d4d4d4d4d4d5d73889db2c8bca7927d67523d28120000000005182a3b4a60728298a1b4bcc9c8bbb4afa9a6a5a7aab0b5a89b85708297adc2bba5907b66503b26110014293e53697e90909090909086715c46311c07000000000000000000000000000000000000000000000000000417293a474c505050505050504b3f2f1c0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c0e13161e212427292b2d2d2e2e2d2c2b2a26222019120b0902000000000000000000000000000000000011263b4e60696c6b696663605658534d493c38352c231c11070000000000000000000000000000000f253a4f647a8fa4b9cbb7a68f8a8989898989898989898b8d92999fabb6c2c4b7a69a8472604a3625130000000000162b40566b8095abc0d5cec3b7b2b2b2b2b2b2b2b3b4b49f8a86827d766d625a5043352b1e1406000000000000031628394b5d657a858c8e8c857a665e4c392917030000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000172c41576c81969d9d9d9d9d9d9d9d9d9d9da6a7b4c4d7c5b4a7a69d9d9d9d9d9d9d9d9d9d9d97816c57422d1700000000000000000000000000000000000b2035485a6262626262626262626262626273889db2c8bca7927d67523d281200000000000d1c304354607483969fabb4bbc8c5c4bebbbac9bcb4a79e8a796b8095abbabaa5907b66503b2611000d22374d62787b7b7b7b7b7b7a644f3a240f0000000000000000000000000000000000000000000000000000000c1c2933373b3b3b3b3b3b3b372f2111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e192023292932363a3c3e40424243444342403f3c38352b27211e160a0400000000000000000000000000000014293e53697e82807e7c7976726d68625a554d493c372f211a0f01000000000000000000000000000f253a4f647a8fa4b9c8b29d887474747474747474747475787c838c9ca4b5c2c4b4a2927d675443301c0700000000162b40566b8095abc0cebdb1a59d9d9d9d9d9d9d9d9fa8a99f9b97928a82786a614b4437271501000000000000091e324657657b8b9ba2a3a39b8b7c665746331e0a0000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000172c41576c8196acb3b3b3b3b3b3b3b3b3b3b8c4c4d2e2d2c5c4b8b3b3b3b3b3b3b3b3b3b3ac97826c57422d1700000000000000000000000000000000000d22384d6278787878787878787878787878788b9fb4c9bca7927d67523d281200000000000013253645566073808c999faaadb0b2b3b2b1adab9f98897b65697e93a4a4a4a4907b66503b2611000b2034485962656565656565645c4b37220d000000000000000000000000000000000000000000000000000000000c171f2126262626262625231c11030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1e2c35383e39464b4f5154565758585958575654514d483c3c3632281f170b00000000000000000000000000051a2f445a6f84979593918e8a87827d78716a625a504b3f362d1d15090000000000000000000000000f253a4f647a8fa4b9c8b29d88735f5f5f5f5f5f5f5f566062676e79869ca4b5c8c0b29c8773604a35200b00000000162b40566b8095abc0c4b19f968788888888888888898c9199a1ada99f988a7f6d605544311d100000000000000c21364b6175889da9b4c0b5a99e8876614b36210c0000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000172c41576c8196acbebebebebebebebebebec1c4cddbebdbcec4c1bebebebebebebebebebeac97826c57422d17000000000000000000000000000000000a1f354a5f748b8d8d8d8d8d8d8d8d8d8d8d8d8d9fa9bacebca7927d67523d2812000000000000081828384555606b79838b92979b9d9d9d9b98938b8378655d677d8f8f8f8f8f8f7b66503b26110005192b3b484d5050505050504f4b3e2e1b070000000000000000000000000000000000000000000000000000000000040a0c101010101010100e080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006192c3c494d535857616467696b6c6d6e6e6d6c6b6a66625a59514b453833291b13020000000000000000000000031628385c71869caaa9a6ab9f9c97928d867f786e655d4e4a3d3127190d00000000000000000000000f253a4f647a8fa4b9c8b29d88735d49494949494949454b4d525b6375869caabbcab6a4907b65503b251000000000162b40566b8095abc0c1ac9681727272727272727374777c84909da6b4a99f948273604b3e2d1b07000000000012273d52677d92a6b7c7d1c7b8a6927d67523d28120000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000172c41576c8196a9a9a9a9a9a9a9a9a9a9a9abb0bdcde0cebdb1aca9a9a9a9a9a9a9a9a9a9a997826c57422d17000000000000000000000000000000000a1f354a5f748a9fa2a2a2a2a2a2a2a2a2a2a2a2b4bac7d8bca7927d67523d2812000000000000000a1a2837444b5c646e777d828587888786837e776e62594c61767a7a7a7a7a7a76614c36210c00000d1d2b34373b3b3b3b3b3b3a372e2010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c2035495a63686e72767a7c7e80828283838281807f7b77736e6760564c463a301d150900000000000000000000091e32455673899eb3bec9bcb4b1ada8a49c958c837b6f635b4b44372b1d0f010000000000000000000f253a4f647a8fa4b9c8b29d88735d483434343434273136383d4a5763788b9fb4c9c3ab96816c5637271501000000162b40566b8095abc0c1ac96816c5d5d5d5d5d5d5e5962676f7b889da8b9b4a095806b5c4a36220a0000000000162b40556b8095aac4d5e5d5c5ab95806b56402b160000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000172c41576c81949494949494949494949494969fb0c4d8c4b19f96949494949494949494949494816c57422d17000000000000000000000000000000000a1f354a5f748a9fb4b7b7b7b7b7b7b7b7b7b7b7c9ced8cfbca7927d67523d281200000000000000000a1927313e4a4e5962686d70727372716e6962594d48475861656565656565615846331f0a0000000d19202226262626262624221b100200000000000000000000000000000000000000000000000000000000000000000913191b1e1e1e1e1e18161006000000000000000000000000000000000000000000000002090b1014171819181714100b090300000000000000000000000000000000000e23384d63787e83878b8f9193959797989998979594918d89837c756c61584d41312719090000000000000000000b21364b60768ba7b5bcc9bec3c7c2c2b5b1ab9f999084796b6055483c2c1f0f0100000000000000000f253a4f647a8fa4b9c8b29d88735d48331f1f1f1f151d20222d39495a6c8297acc1c6b19b86715544311d08000000162b40566b8095abc0c1ac96816c5748484848483b484d525d65798a9eb4beb49f8c7a644f3828150200000000152a40556a7f95aac1d1ddd2c1aa95806a55402b150000000000000000000000162b40566b8095abc0c1ac96816c57412c17020000000000000000000000000000000000000000000000000010253b50657b7f7f7f7f7f7f7f7f7f7f7f7f8196abc1d6c1ac96817f7f7f7f7f7f7f7f7f7f7f7f7b65503b2610000000000000000000000000000000000a1f354a5f748a9fb4babababababababababababcbabababaa7927d67523d281200000000000000000009151d2d363b484d53585b5d5e5d5c58544d483b343a474c4f4f4f4f4f4f4c463a29170400000000050b0d1010101010100f0d070000000000000000000000000000000000000000000000000000000000000000000d1b262e3133333333332e2b23180a0000000000000000000000000000000000000000080a161e2125292c2e2e2e2c2926211e160a080000000000000000000000000000071c31465c718593989d9faba6a9abacadadaeadacaba9a6a79e9991898176675f4b443727180800000000000000000e23384d63788d9e9faba5a9adb2b7c4c7c9bcb4aea19a8c8073625a493d2c1f0f00000000000000000f253a4f647a8fa4b9c8b29d88735d48331e0a0a0002090b0f1b2c3c50667b90a5c7cab49f8a75604b35200b000000162b40566b8095abc0c1ac96816c5741333333332b34373f4b5b6a7f95aac5bbaa98826d5645321d090000000010253b50657b90a3b4c2c8c3b5a3907c66503b26110000000000000000000000162b40566b8095abc0c1ac96816c57412c1702000000000000000000000000000000000000000000000000000e23384b5d65696969696969696969696969788ca2b7ccb7a28d78696969696969696969696969655d4c38230e000000000000000000000000000000000a1f354a5f748a9fa4a4a4a4a4a4a4a4a4a4a4a4a7a4a4a4a4a4927d67523d281200000000000000000000010f1a212b34373d424648484846433e37342b202933373a3a3a3a3a3a3633291c0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091b2b3842464848484848433f36281806000000000000000000000000000000000006111c232832363b3e41434443423f3b363228231c110600000000000000000000000004192e43596e8398adb2b5bcc9bec0c1c2c2c2c2c1c0bfc5b8b3aea79e96887d6d60554436261401000000000000000f24394f647a87898a8d9094989da6aab2b6c3cabfb3ab9f958578635b493d2c1d0c000000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000000e21364c61768ba9bacebbaa8d77624d38220d000000162b40566b8095abc0c1ac96816c57412c1d1d1d1920222e3d4d62788da7b8c8b39e8975604b36200b000000000b20354a6072859ba4b0b2b1a59b8572604a35200b0000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000081c2f3f4b50545454545454545454545462778ca2b7ccb7a28d78625454545454545454545454504c3f2f1c08000000000000000000000000000000000a1f354a5f748b8f8f8f8f8f8f8f8f8f8f8f8f8f928f8f8f8f8f8f7d67523d2812000000000000000000000000070d182022282d30323332312e292220180d171f21252525252525211f170c00000000000000040e14162020202020201a1811080000000000000000000000090f1120202020202020201917100700000013263849565b5e5e5e5e5e585346362310000000000000000000000000000000000e19202e3738454b5054575859585754504b4538372e20190e000000000000000000000001162b41566b8096abc0c0c4b8b3b0aeadadadaeafb2b5bcc9c8c5b9b3a69d928273605443301c0e000000000000000d22364a5c64727475787b7f83888e949ca5b0b4c0c9bcb4a39b8779635b493b2a18080000000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000000a1f334658748a9fb4c9c8a48e79644f39240f000000162b40566b8095abc0c1ac96816c57412c170800050b112035485a73889eb3c8b9a88e78634e39230e00000000071c304354627786949b9d9b958778625443301c070000000000000000000000162b40566b8095abc0c1ac96816c57412c1702000000000000000000000000000000000000000000000000000011212f383b3f3f3f3f3f3f3f3f3f3f4d62778ca2b7ccb7a28d78624d3f3f3f3f3f3f3f3f3f3f3b382f21110000000000000000000000000000000000000f253a4f647a7a7a7a7a7a7a7a7a7a7a7a7a7a7d7a7a7a7a7a7a77614c37220c0000000000000000000000000000050b0d13181b1d1e1d1c19140d0b0500040a0c1010101010100c0a0400000000000000081621292b3535353535352f2c25190b000000000000000003111c232635353535353535352e2b24180a0000192e4256677073737373736d64533f2b0b000000000000000000000000000004121e2b353f4b4f566065696c6d6e6d6c69656056504b3f352c1e12040000000000000000000013293e53687e93a8b1aba6a69e9b99989797989a9c9fabadb4bac7c4b8b3a0978272604b3c2b1906000000000000071b2d3e4a4f5d56606366696e73797f87909ba2b3b8c4c1b5a69d89796359473626140100000000000f253a4f647a8fa4b9c8b29d88735d48331e08000000000000081d31445574899eb4c9baa48f7a654f3a2510000000162b40566b8095abc0c1ac96816c57412c170200000006192b3c5d72879cb2c7c6a5907b65503b26100000000000132536485962757f8688868076625a48362513000000000000000000000000162b40566b8095abc0c1ac96816c57412c1702000000000000000000000000000000000000000000000000000003111c23252a2a2a2a2a2a2a2a2a374d62778ca2b7ccb7a28d78624d382a2a2a2a2a2a2a2a2a26231c11030000000000000000000000000000000000000d22374b5d646565656565656565656565656567656565656565615947341f0a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041626333d404a4a4a4a4a4a4441372919080000000000000011222f383b4a4a4a4a4a4a4a4a434036281807001b31465b70858888888888826d583a2917040000000000000000000000000412222f3c494d5d656e757a7e81838383817e7b756e655d4d493c2f22120400000000000000000011263b50667b909f9b96908c8886848382828384878b90989fa9b3bfcbbeb1a0947f6a5a4935200a0000000000000010202d363938454b4d5054585b636a727b85919da6b4c0c4b7a79d8777615443301c0e00000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000000b20364b60758ba8b9cdb9a48f7a644f3a250f000000162b40566b8095abc0c1ac96816c57412c1701080b0c132035485a73889eb3c8bba6917c66513c2711000000000008182b3b4857616a7173716a6158483c2b1808000000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000080e10141414141414141422374d62778ca2b7ccb7a28d78624d38231414141414141414100e080000000000000000000000000000000000000000081b2e3f4b4f4f4f4f4f4f4f4f4f4f4f4f4f4f524f4f4f4f4f4f4c473a2a180400000000040e14161f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f16140e050000000e21334451566060606060605a544737251100000000000009192f404c506060606060606060595346362410001b30455b70859a9d9d9d9d88725846331f0a000000000000000000000002122230404c5a626f7a838a9093969899989794908a837b6f625a4c403022120200000000000000000e23384e63788d8b86817b7773706f6d6d6d6e6f72767b828b99a1b0bdcdbeb49f8b78624d3928160300000000000002101b2224273136383b3f3d4a4e555e66707c889aa2b2bec5b6a59a8473604b3c2b1905000000000f253a4f647a8fa4b9c8b29d88735d48331e080000000000000e23384e63788da3c6d5c5a38e79634e39240e000000162b40566b8095abc0c1ac96816c57412c1f141c202125303f4d62788da7b8ccc5a48f7a644f3a250f0000000000000d1d2b39464b555b5d5c554c463a2b1e0e00000000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7ccb7a28d78624d38230d0000000000000000000000000000000000000000000000000000000000000010202e373a3a3a3a3a3a3a3a3a3a3a3a3a3a36434a4a43363a37342a1c0c00000000081621292b3434343434343434343434343434343434343434343434343434343434343434342c29221608000014293d51626b7575757575756f6554412c180300000000021527374c5e6675757575757575756e6453402b1700182e43586d8398adb3b3a58b76614c36210c0000000000000000000000102030404c5e6678838f989fa9a9acadaeadaca9a99f988f8478665e4d4030201000000000000000000b20364b60747c77716b6661595b59585858595a5761666d7883969fb0c0cebaa997826d5745321e090000000000000000070d0f151d2023262a2d3639404c505f67778498a0b2bfc3b4a2947e695a4835200e000000000f253a4f647a8fa4b9c8b29d88735d48331e0a0a0002090b111e2f4053687d92a8bdcbb8a68c76614c37210c000000162b40566b8095abc0c1ac96816c574134342630353736434a5d6b8095aac5ccb8a78d78624d38230d000000000000000d1b2932363f464846403633291b0e0000000000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7ccb7a28d78624d38230d0000000000000000000000000000000000000000000000000000000000000002101b22252525252525252525252535414d5254606054524d4134261605000000041626343d41494949494949494949494949494949494949494949494949494949494949494949413d3426160500162b40566b808a8a8a8a8a8a836f5a442f1a0500000000081d314455667c8a8a8a8a8a8a8a8a826e59432e1900162b40566b8095abc0c3a48f7a654f3a2510000000000000000000000a1a2d3e4c5e667c8999a1aeb4bac7c1c2c2c2c1c7bab4aea199897c665e4d3e2d1b0b00000000000000091d3145566067615856514c473a444342424339464b515a63728196a2b4c8c7b49e8975604b36210b000000000000000000000002090b0e11141a21242f38414d5961738298a1b3c3c0b49f8a78624d3c2c19060000000f253a4f647a8fa4b9c8b29d88735d48331f1f1f1f161e21232f3c4c5e70859ab0c5c8b39e88735847331f0a000000162b40566b8095abc0c1ac96816c5749494949434b4c505460687b8b9fb4c9c8b39e8874604b35200b00000000000000000b161e212a3133312b211f170b000000000000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7ccb7a28d78624d38230d000000000000000000000000000000000000000000000000000000000000000000080d0f1010101010101013233545525f6771757570675f51443423120100000e21344451565e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e56514434220e00162b40566b80959f9f9f9f99846f5a442f1a0500000005182a3b4b6074869c9f9f9f9f9f9e8a77624d37220d0013293e53687e93a8bdbda8937e68533e2913000000000000000000031628384a5c667c8c9ea7b3bfc9c3b7b2aeadaeb2b6c3c9bfb3a79e8c7d665c4a3928160300000000000002152738454b524c473a3b37342a2f2e2d2d2e2932363c49546072849aafc2cdb9a8907b66503b26110000000000000000000000000002090b101517181c23303a475560738399a5b6cabaa997826d5a493520090000000f253a4f647a8fa4b9c8b29d88735d483434343434283236383f4b5a657b90a2b4c8c6ae99846e593a291704000000162b40566b8095abc0c1ac96816c5f5f5f5f5f546061656a737e8a9fa9bacebfad98826d5544311d08000000000000000000030a0c151c1e1c150c0a0400000000000000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7ccb7a28d78624d38230d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1e314152636c7d868a8a867d6c625141301d0a000014293d51626b7474747474747474747474747474747474747474747474747474747474747474746b62513d291400162b40566b8095abb5b5af99846f5a442f1a05000000081f344759697f94a4b6b5b5b5a4947e69594834200b0011263b51667b90a6bbc1ac96816c57412c17000000000000000000091e324556647a8b9faab9c5c0b4afa59d9997999da5afb4c0c5b9aa9f8b7a645746321e0d000000000000000a1a2731363c37332a26221f181a18181819161e212c36435463798ea3b5c9c6a9947f6a543f2a150000000000000000000000060a151d20252a2c2e2e2d2b2a3744556176879db2bfc7b49f8b78634d3727150200000f253a4f647a8fa4b9c8b29d88735d49494949494938454b4d535d6578889eb3c0cdbaa8937d68533e281300000000162b40566b8095abc0c1ac96817474747474747475777a7f86929fa8bac7c5b3a1907b665037261401000000000000000000000000000000000000000000000000000000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7ccb7a28d78624d38230d00000000000000000000000000000000000000000000000000000000000000000000000000000000000011253a4e606c81929b9f9f9b91806c5f4d3924080000162b41566b80898989898989898989898989898989898989898989898989898989898989898989806b56412c1600162b40566b8095abc0c4af99846f5a442f1a05000008182e3e4c6277899eb3c2cfbcab9c8673604b3b2b1805000e24394e63798ea3c6c5af9a85705a3b2b18050000000000000004182a3b4b6075879ca9bac8bcb0a29a8f87838283878f9aa2b0bcc8baa99d8775614b3b2a1805000000000000000a151d2027221f18110c0a040003030300030a0e182536495b71869bb1c6c2ac97826d57422d18000000000000000000020e1a212731363b3f41434443413d38374658657b90a1b3c7bbaa96806b5544311d0800000f253a4f647a8fa4b9c8b29d88735f5f5f5f5f5f5f5f566063686f7b889ea6b8cbc4b49f8a76614c37210c00000000162b40566b8095abc0c4b19f96898989898989898a8c8f949ca4b4bac6c5b9a799836f5e4c38190900000000000000000000000000000000000000000000000000000000000000000000000000162b40566b8095abc0c1ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7c9b7a28d78624d38230d00000000000000000000000000000000000000000000000000000000000000000000000000000000000216283852687d929fb0b4b4b09e917c67513625130000172c41576c81969e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e97816c57422d1700162b40566b8095abc0c4af99846f5a442f1a0500001325364a5c6d8297a8b9ccc5b59f8d7a655544311d0d00000c21374c61768ca8b9c8b39e8973594834200b000000000000000b1f3447596b8095a5b6c7beb09e96847a726e6d6e727a84969eb0bec7b7a595806b5948341f09000000000000000002090b120c0a0400000000000000000000000008182c3d586d8297adc2c3ae98836e59432e1900000000000000000a151d2c3538454b50555658595856524d483c4c5e6f8499aec2c8b39e8874604b36200b00000f253a4f647a8fa4b9c8b29d887474747474747474747476787d84909ea6b8c4c8b7a696816b5847331f0a00000000162b40566b8095abc0cebdb1a89e9e9e9e9e9e9f9faba5aab1b6c2ccc2b5a79e8978634d402f1c0000000000000000000000000000000000000000000000000000000000000000000000000000162b40566b8095abc0c0ac96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b4b4b4a28d78624d38230d0000000000000000000000000000000000000000000000000000000000000000000000000000000000091e32455671869cb1bdcac9bdb09b85705443301c0700172c41576c8196acb3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3ac97826c57422d1700162b40566b8095abc0c4af99846f5a442f1a0500071c304354647a8d9fb5c6ccb8a797826d5d4b3727150000000a1f33475874899eb4c9b8a78c77624d37220d000000000000011426364c61778a9fb4c3c5b2a0968073645c5958595c64728096a0b2c4c3b49f8a77624c37261401000000000000000000000000000000000000000000000000000000162b40566b8095abc0c2ad98836d58432e18000000000000000b1a27313d494e5660656a6c6d6e6d6b67625a514c50657a8fa4b6cab8a6907b66513b261100000f253a4f647a8fa4b9cbb7a68f8a8989898989898989898b8d929aa2b3b8c4c7baaa9d8876614c3a2a170400000000162b40566b8095abc0d5cec6b9b4b4b4b4b4b4b4b5bcc9bfc7c8c5b8b3a49c897a645a493522110000000000000000000000000000000000000000000000000000000000000000000000000000162b40566b8095abababab96816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778c9f9f9f9f9f8d78624d38230d00000000000000000000000000000000000000000000000000000000000000000000000000000000000b21364b60768ba4b5c9dfdfc9b49f8a75604a35200b00172c41576c8196acbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdac97826c57422d1700162b40566b8095abc0c4af99846f5a442f1a05031729394a6072859babbccfc1b39e8977614c3f2e19090000000417293a5c71879cb1c6c5a5907b66503b2611000000000000081c3043546b8095a9bacbb8a698826d60544b3e423e4a54606d8298a6b8cbbaa995806b5544311d08000000000000000000000000000000000000000000000000000005182a3b566c8196abc1c1ab96816c56412c170000000000000b1b2938454b5b636d757a7f81838382807c7870665e4c5d72879cb1c7c5ac96816c573b2a1805000f253a4f647a8fa4b9d4c4b7a89e9e9e9e9e9e9e9e9e9fa9a2a8afb4c0cbc2b6a99f8c7b655846331c0c0000000000162b40566b8095abc0c0c0c6c6c0c0c0c0c0c0c0bfbebdc4b8b3aea79e94867a645c4a3c2c19030000000000000000000000000000000000000000000000000000000000000000000000000000162b40566b80959595959595816c57412c170200000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778b8a8a8a8a8a8b78624d38220d00000000000000000000000000000000000000000000000000000000000000000000000000000000000b21364b60768ba4b6cadedfcab49f8a75604a35200b00172c41576c8196a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a897826c57422d1700162b40566b8095abc0c4af99846f5a442f1a050a1e334657687d92a3b5c9c9b5a3937e68594734211000000000001a2f445a6f8499afc4bea9947e69543f29140000000000000b20354b6074889db3c7c7b39e8876614c43362e2d2d36434c6176889db3c6c7b39d8874604b35200b000000000000000000000000000000000000000000000000030a151f3448596f859aafc4c5a9947f6a543f2a150000000000081829394656606c79838990949698999896928b857c6f62596b8095aac9c7b29c87725947341f0b000f253a4f647a8fa4b9cfd4c6b9b4b4b4b4b4b4b4b4b4b4bac7bdc4c9c5b8b3a49c8b7d675d4b3a2917000000000000162b40566b8095ababababb1b1abababababababaaa9a7a6a69e9991887f73645c4a3e2d1e0e00000000000000000000000000000000000000000000000000000000000000000000000000000011263b50667c8080808080807c66513c26110000000000000000000000000000000000000000000000000000000000000000000000000000000b203448596274747474747474625a4835200b0000000000000000000000000000000000000000000000000000000000000000000000000000000000091e32455672879cb2becacabeb19b86715443301c0700172c41576c81939393939393939393939393939393939393939393939393939393939393939393816c57422d1700162b40566b8095abc0c4af99846f5a442f1a0e1a2c3d4c6176889db3c1cfbcab9b8573604b3a2a18020000000002172d42576c8297acc1c2ad97826d5836261401000000000010263b50657b90a6b7cbbaa9947f695846332618181825334657697e93a8bacbb8a6907b65503b261000000000000000000000000000000000000b0b00040a0c0f161e2731424c62778a9fb4c9b9a78f7a654f3a2510000000000114263646576174818b989ea8aaabadaeadabab9f9a91847763657a90abbccab6a58c77624c37220d000f253a4f647a8fa4b9c0c0c3c3c0c0c0c0c0c0c0c0c0c0bebdc6b9b3afa79e95867a675f4d3f2e1c0c000000000000162b40566b8095959595959c9c95959595959595959392908c88837c756a60554a3d2d2010000000000000000000000000000000000000000000000000000000000000000000000000000000000f23384c5e666b6b6b6b6b6b665e4c38240f00000000000000000000000000000000000000000000000000000000000000000000000000000005182b3b484d5f5f5f5f5f5f5f4d483c2b190500000000000000000000000000000000000000000000000000000000000000000000000000000000000316283854697e93a0b2b6b6b1a0927d6853362513000010253a4f657b7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7a654f3a251000162b40566b8095abc0c4af99846f5a442f25242135495b6b8096a6b8cbc4b49f8c7a645443301c0c000000000000152a3f556a7f94aabfc6b09b86715443301c08000000000417293a576c8196acc4c9b49f8a76614c3a29170800081729394b61768a9fb4c9c4ac96816c573a2a170400000000000000000000000000060c0e202020171f2125283238454b606c8197a9bac6b39e8974604b35200b00000000081c304354617584969faab4b9c6c1c2c3c2c9bcb5afa29a877963768a9fb4cac3a5907b66503b2611000f253a4f647a8fa4abababadb0abababababababababaaa9a8a6a89e9a93898075645c4d413021110000000000000011263b50667c80808080808687808080808080807f7e7d7b77736e6760564b44372d1f100200000000000000000000000000000000000000000000000000000000000000000000000000000000091c2f404c50565656565656514c402f1d09000000000000000000000000000000000000000000000000000000000000000000000000000000000d1d2b34374a4a4a4a4a4a4a38352b1e0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b607282939ca5a49c93826d604e3a180800000e22374b5d65686868686868686868686868686868686868686868686868686868686868686868655d4b37230e00162b40566b8095abc0c4af99846f5a443b3a3936404e63798b9fb4c4cbb8a696816c5c4a3626140000000000000013283d52687d92a7bdc9b49f8975604b35200b000000000a1f33475871869cb1c6c3ae98836e5746331b0b0000000b1e3346576e8398adc3c6b19c87715847331f0a0000000000000000000000000e1920233535352933363a39464b56606b7e939fb1c7b9a896816c5544311d0800000006192c3c4b6072849aa2b4bbc8cbc8bbb4b0aeacadaeb1b5a59c877672889db2c7bfa9947f6a543f2a15000f253a4f647a8f95959595989e959595959595959595959492918e89847e756b61574a3e30231203000000000000000f23384c5e666b6b6b6b6b71716b6b6b6b6b6b6b6a696866625959514b45383127190f0100000000000000000000000000000000000000000000000000000000000000000000000000000000000011222f383b4040404040403c382f22120000000000000000000000000000000000000000000000000000000000000000000000000000000000000d182022353535353535352220190e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081c30435460727e878b8b877e72604a42311e000000081b2e3f4b4f5353535353535353535353535353535353535353535353535353535353535353534f4b3f2e1c0800162b40566b8095abc0c4af99846f5a50504f4e4c4c5e6f8499aabbcec0b39d8876614c3e2d18080000000000000010253b50657a90a5c9cdbaa98d78634e38230e000000000c21374c61768ca4b5c9c5a7927d68523929170b0d0f0d0b17293952687d92a7c5cab6a48c77614c37210c00000000000000000000000e1e2c35384a4a4a3a464c4f5357616874808d9fb5bdbcb49e8a77624c372715010000000c2035495a6a7f94a2b3c0cec4b7b2aa9f9b989797999c9faba5978170859ab0c5c1ac97826c57422d17000d22384d62788080808080838a808080808080808080807f7d7c79746f6961574b46392d2012040000000000000000091c2f404c5056565656565c5c56565656565656555452514d483b3c3631271d1509000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111c23262b2b2b2b2b2b26241d120400000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d1f1f1f1f1f1f1f0d0b05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011426364354606972767672686054433023130100000010212e373a3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3a372e21110000162b40566b8095abc0c4af99846f65656564636157667c91a1b3c8c8b4a2927d67584633201000000000000000000e23384d63788dabbccfc7a6917c66513c27110000000010253b50657a90a5c2ccb8a78d78624d38231820222422201923384d62788da7b8ccc2a5907b65503b25100000000000000000000006192c3c495e60606060586164696e767d87959fabbcbcb49e937e685947341909000000031628394d63788b9fb4c0d0c0b4a69d938b8683828284878b939c9f8c798399aec3c4ae99846f59442f1a000b2034485a626b6b6b6b6b6e756b6b6b6b6b6b6b6b6b6b696866636054534b463932291b0f010000000000000000000011222f383b4040404040474740404040404040403e3d3b37342b27201d150a010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090f11161616161616110f09000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008182636434b5457616157534a43362513050000000003101b222529292929292929292929292929292929292929292929292929292929292929292925231c11030000162b40566b8095abc0cab49f8c7b7b7b7a7a79767374879cb2bfcebbaa9a84705f4d3a29170200000000000000000b20364b60758a9fb5cabfaa957f6a55402a150000000014293e54697e93a9bec8b39e89735a4935242b34373937342b2535485a73889eb3c8bea9947e69543f2914000000000000000000000c2035495a707575757575767a7e8389929ca5b5bcb6ab9f95806b604e3b2a1800000000091e3245576b8196aabbcec2b4a29a887e76716e6c6d6e71777e879695808298adc2c6b19b86715c46311c0005192b3c484d56565656565860565656565656565656555453514e4b43363632281e160b00000000000000000000000004111c23262b2b2b2b2b31322b2b2b2b2b2b2b2a292826222018120b090200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002090b0902000000000000000000000002090b090200000000000000000000000000000000000000000000000000000000000000000000000000000000000000081826303539464b4b4639353025180800000000000000080e10131313131313131313131313131313131313131313131313131313131313131313100e0800000000162b40566b8095abc0cebbaa9f909090908f8e8b888b9ca5b6cac3b49f8b79634e41301b0b000000000000000000091d32455673889db3c8c3ae98836e5938281602000002172c41576c8196acc1c5b09b85705b3c30393b484d4e4d483b39303c5b70859ab0c5c1ac96816c57412c17020000000000000000000e23384d63788a8a8a8a8a8b8f93999ea8b2b6b5b0a49c8c7f72604a42311d0d000000000b21364b6075899eb3c8c9b5a49a8476696158595758595861687481958998a0b2c6c7b29d88725d48331d00000d1d2b34384040404040434a404040404040404040403f3d3c39353026211e160b03000000000000000000000000000000090f1116161616161c1c16161616161616151413110d0b0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061016182020202020200f0d0800000000000000000000000000070d0f2020202020201816100600000000000000000000000000000a161e211e160a0000000000000000000a161e211e160a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000008141c20293236363228201c1308000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40566b8095abc0d9c8bbb4a5a5a5a5a4a3a69ea6b2b6c3cab7a596806b5b4935231300000000000000000000021528385b70869bb0c5c7b19c87725645321e09000004192f44596e8499aec3c2ad98826d5843404d515962646259524d4142586d8297adc2c4ae99846f59442f1a04000000000000000000152b40556a80959f9f9f9fa1a4a8aeb4b9adab9f9b92867b6a605443302414000000000011263b50667b90a7b9ccc0b19c867561584c463a42423a474c56606c8095a2b2becfc8b39e88735e49331e0000000d1920222b2b2b2b2b2e352b2b2b2b2b2b2b2b2b2b2a282724201c140c090300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000917232b2d35353535353525221b1002000000000000000000010f1a21243535353535352e2b23180a0000000000000000000000010f1a28323632281a1104000000000003111a28323632281a0f0100000000000000000000000000000000000000000000000000000000000000000000000000000000000001080b161e21211e160b070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40566b8095abc0d5d9cecababababab9c5b8b3b8c5cad3c7b29d8775614b3d2c1a050000000000000000000000192e44596e8399aec3cab49f8a75604b36210b0000061c31465b71869bb0c6c0ab95806b56424f5f677277797772675f4f43556b8095aac0c6b19b86715c46311c070000000000000000081d32485d72879db2b5b5b5b6b9bec3c2ad9c928b857d73655d4a43362513060000000000152b40556a8095aac5c8b4a28f7a6457473a33292d2d2a3338454b6072849aafc4dac9b49e89745f49341f00000000050b0d16161616161920161616161616161616161413110e0b0801000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0c101316181919191918171513110e0b09020000000000000000061727353f424a4a4a4a4a4a3a372e20100000000000000000000f202d36394a4a4a4a4a4a433f3528180600000000000000000003111f2c38454b45382f2211000000000011212f38454b45382d1f12040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0c0c090300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40566b8095abc0d5d7cdc9babababbbec1c6c8cbd5dfd7c2ac97826d5f4d40301f0f0000000000000000000001172c41566c8196abc1c3bbaa8e79644e39240f0000081d32485d72879db2c7bea9937e69544f60697c868c8e8c877d69614f53697e93a8bec7b29d88725d48331d0000000000000000000b20354a60758aa5a0a4a9aeb3b9c5c9b5a4927e77706760554b3f302518080000000000051a2f445a6f8499afc4c5b09a85705c4a392a1f171718171f27314354647a8fa4bdcecab49f8a755f4a352000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d171e2125282b2d2e2e2e2e2d2c2a282624201d150a060000000000001023354552586060606060604f4b3e2e1b0800000000000000071a2d3e4a4e60606060606058534635231000000000000000000114212f3d495660564c402f1d0d0000000c1c2f3f4c5660564a3d2f2214010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40566b8095abc0d7c6b9b4a4a4a5a6a8acb1b5bcc9ccd6cab49f8d7d675f4d3d2d19090000000000000000000014293f54697e94a9aeaeaea7927d67523d28120000091f34495e74899eb3c9bda7927d68525a697e919ca4a3a59c927f695a52677d92a7bcc9b49e89745f4926140100000000000000000b20354a60758a8a8b8f93989ea7adb4b19c867d766b61594d4130251808000000000000081d32475d72879cb2c7bfaa947f6a553e2e1b0c040000040a1525364b5c758a9fb1c4cab49f8a755f4a35200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080b0f1215171819191918171613100e0b08010000000000000000000000000000000000000000000000060d1820222933363a3e4042434443434241403e3c39363127211a0e0000000000162b3f52646d757575757575645c4b37220d000000000000000d21364a5c707575757575756d64533f2b160000000000000009141d31404c5b6376665e4c3b2a18080004182a3a4c5d6576635b4c40321d1409000000000000000000000000000000000000000000000000040a0c0f101111100d0b07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d151515151515150b080100000000162b40566b8095abc0cdb9a89e8f8f909193969b9fabb3b9c5cfbcab9f8d7d675b4a3727150100000000000000000012273c51677c91999999999996806b56412b160100071c304354758a9fb4cabca6917c675162788b9fb1b6c2b6b29f8b786251667c91a6bbcab49f8a755544311d0800000000000000000a20354a5e707575767a7e838990979fa9a49c928a8177675f4a43362513000000000000021527375e73889eb3c8baa5907b65503b261000000000000008182e3e576c8197acc1cebbaa8a75604a35200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080b141d2024282a2c2e2e2e2e2d2c2b292623201d15090000000000000000000000000000000000000000020f1a212b343739464b4f5355575859595857565553514e4b4538352c1f0e00000000182d42586d828a8a8a8a8a8a7a644f3a250f000000000000000f24394e647a8a8a8a8a8a8a826d58432e1800000000000009192631424e5e6579877c665947362513000f1f344759657c8779665e4f42312619090000000000000000000000000000000000000000030c0c171f21242626262523201c130b0801000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1920222b2b2b2b2b2b2a201d1509000000162b40566b8095abc0c9b49e8a7b7a7b7c7e81868c959ea7b3bfc9bcab9e8a79635544311d0c0000000000000000000e23384e6379838484848484837f6a543f2a1500000b20354a60758aaabbcebba6917b6654697e94a9bacad3cabbaa947f6954667b90a6bbcfbcab8a75604b35200b0000000000000000071b2f42525e60566064696e747b828a969fa9a99f96897d6c605443301c140000000000081d314455748a9fb4c9b9a48e79644f39240f0000000000000014293f54697e94a9becdb9a88a75604a352000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008141c20263135393d4042434344434341403e3b3835312719150700000000000000000000000000000000000a151d2c353b484d54576165686b6d6e6e6e6e6d6c6a68666360564e493d2c1a06000000182d42586d82979f9f9f9f8f7a644f3a250f000000000000000f24394e64798e9f9f9f9f98826d58432e18000000000001142637444b60687c899c8877625443301c101f32424c6177889d8a7c69604b443726140100000000000000000000000000000000000007142027293337393b3b3b3a38353025201d150900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1e2b35384040404040404035312719090000162b40566b8095abc0c4af99846f656566696c7177808999a1b2bec9b9a89b8573604b3a29170400000000000000000c2135495b636e6e6e6e6e6e6e6a614f3c271300000b20364b60758ba0b5d8bba5907b66576c8197acc7d8e5d8c8ac97826c57657b90a5bad9b5a08b76604b36210b000000000000000000122434424a4a454b4f545560656d77808b9ba3b4a79e928172604a42311e0e000000000b20364b60748baabbceb8a38d78634e38230e0000000000000012283d52677d92a7bcc9b49e89745f49341f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000121826303537444b4e5255575859595858575553504d4b4437322515030000000000000000000000000000000c1a27313d494e59626a70767a7d80828383838382817f7d7b797572635b4935210c000000182d42586d8297adb5b5a48f7a644f3a250f000000000000000f24394e64798ea3b5b5ad98836d58432e180000000000081d314455606c7e8c9ea6998372604a3e2d1b2d3d4f606f8399a69e8c7e6c605544311d080000000000000000000000000000000000031425323b3a474c4e5051514f4d4a4336353127191201000000000000000000000000000000000000000000000000000000000000000000000000000000000005192b3c484d555555555555554b443727150100162b40566b8095abc0c4af99846f5a5051535759626b778398a0b2c0c6b5a3947f695847331f0a0000000000000000061a2c3d494e59595959595959544f4332200d00000b20364b60758ba0b5d8bba6907b66576c8197acc6d6e1d7c6ac97816c57667b90a5bbcbb5a08b76604b36210b0000000000000000000616242f352832363a37444b5059616b79859aa2b3b39f96816c604e3c2b1906000000081d314455758a9fb4cab9a48f79644f3a240f0000000000000012283d52677d92a7bcc8b39e88735e49331e00000000000000000000000000000000000000000000000000000000000000000000000000000000000008131c2f36434b51556064676a6c6d6e6e6e6d6c6b68656360554f4332200c00000000000000000000000000000c1c2a38454b5b636e777f858b8f9395979899989897969593918e8a8679634e38230e000000182d42586d8297adc2b9a48f7a644f3a250f000000000000000f24394e64798ea3b9c2ad98836d58432e1800000000000b20354b607381939faab3a1947e695c4a3928394a5b697e93a1b3aa9f938173604b35200b00000000000000000000000000000000000c2032434f5458616465666665626054524b4437301d1509000000000000000000000000000000000000000000000000000000000000000000000000000000000b2035485a626a6a6a6a6a6a6a605544311d0800162b40566b8095abc0c4af99846f5a443c3e3b484d5962738298a2b4c7c1b39e8976614c3828150200000000000000000f1f2c3538444444444444443f3c322515030000081d314455758aaabbcebba6917b6653687e93a8b9c7ccc8b9a8937e6953667b90a6bbcfbcab8a75604b35200b0000000000000000000000121b20161e21252631353b474c5b6374849aa5b6b09f937e685a4835200b000000021527495e73899eb3c8bba6907b66513b26110000000000000014293e54697e93a9bec6b19c87715c47321c000000000000000000000000000000000000000000000000000000000000000000000000000000000008182530404c5460666e74797d7f81838383838281807e7b78746a614f3c2713000000000000000000000000000c1d2a3a4756606b79838b949b9faba8aaacadaeaeadacabaaa8a6aa9f8c77614c37220c000000182d42586d8297adc2b9a48f7a644f3a250f000000000000000f24394e64798ea3b9c2ad98836d58432e180000000002172d42576c82969fb4bbbfb49f8b7a64574632455763798b9fb4bfbbb49f96826d57422d18020000000000000000000000000000000012273b4f61697276797b7b7b7a78746e6760554d403127190900000000000000000000000000000000000000000000000000000000000000000000000000000417293a4d62788080808080807f74604b35200b00162b40566b8095abc0c4af99846f5a442f292b343b48556073849aa9baccb9a795806a5645321d090000000000000000010f1a21232f2f2f2f2f2f2f2a272015070000000215274a5f748a9fb4c9bca6917c67516176899ea9b4b9b4aa9e8a776151667c91a6bbcab49f8a755544311d08000000000000000003090b0b090202090b0f141d202a343d49566175879cb2bdb49f8a78624d392816030000001c31465c71869bb1c6bfaa957f6a553d2c1a060000000000071b2d3e576c8197acc1c4af9a856f5a45301a0000000000000000000000000000000000000000000000000000000000000000000000000000000000132536434a5e66737c83898e9295979898999898969593908d8c7f6a543f2a150000000000000000000000000a1a2a3b47596174808c989faab0b4bcc9c0c2c3c3c3c3c2c1bfbdc8b39e89745847331f0a000000182d42586d8297adc2b9a48f7a644f3a250f000000000000000f24394e64798ea3b9c2ad98836d58432e1800000000000d23384d6278889da6b7c5baa99c8675614b414b6075869ca9bac5b8a69d8878634d38230e000000000000000000000000000000000014293f54697f878c8e9090908f8d89837c74665e4b4437271501000000000000000000000000000000000000000000000000000000000000000000000000000a1f3346586c81959595959595836e5544311d0800162b40566b8095abc0c4af99846f5a442f1a18202b37445562788b9fb4c8c5b39e8875604b36200b00000000000000000000060c0e1919191919191915130d0300000000001f34495e74899eb3c9bda7927d685258667c8b999ea89e998c7d675952677d92a7bcc9b39e89745e49261401000000000000000a161e21211e160a00000001080c181f2c384657667b90a5b6baa997816c5746321e09000003192e43586e8398adc3c4af9a846f5b4935211408010002081522364a5c71869cb1c6c1ac96816c57412c1700000000000000000000000000000000000000000000000000000000000000000000000000000000091c304354606b7c8791989ea8a7aaacadaeaeadadacaaa8a5aa937d68533e28130000000000000000000000021628384759617785959faab4bbc8c9c2c3b7b2b0afaeafb0b1b2b4bbb09b86715b3a2a1804000000182d42586d8297adc2b9a48f7a644f3a250f000000000000000f24394e64798ea3b9c2ad98836d58432e1800000000000c2035495a6379889da6b8c5b6a497826d5f4d5e6c8197a4b6c5b8a79e8879635a4935200c0000000000000000000000000000000000162b40566b8095a5a3a5a6a6a4a89e9991877c6c605544311d14000000000000000000000000000000000000000000000000000000000000000000000000021527374c61768a9eaaaaaaa38f7a654f3727150100162b40566b8095abc0c4af99846f5a442f1a050d192737485a6b8095aabbcbb8a6927d675239291703000000000000000000000000040404040404040000000000000000081d32485d72879db2c7bea9937e69544d5e667a83898b89847a675f4d53697e93a8bec7b29d88725d48331d000000000000000a1b2832363632281a0b0000000000040e1a28394c5e72879db2c7b49f8a76614b36210c00000014293f54697e94a9c2cab59f8c78634e4131201c1417151d2033424f64798ea4b5c9c3a8937d68533e281300000000000000000000000000000000000000000000000000000000000000000000000000000009192f404a607280909ca4aeb4b9c6bfc1c2c3c3c3c2c1c0bdc8a5907b65503b26100000000000000000000000091e3245566177869ba3b4bbc8c7bab4aca6a59d9b9a999a9b9c9d9faaa698836e58432e1900000000182d42586d8297adc2b9a48f7a644f3a250f000000000000000f24394e64798ea3b9c2ad98836d58432e18000000000006192c3c495b6379889ea7b8c2b19f917d675a667c919fb1c2b8a79e8979635b493c2c1906000000000000000000000000000000000013283d53687d92a8c3babbbbc6b9b3aea59d918173604b42311c0c0000000000000000000000000000000000000000000000000000000000000000000000081d3144556a7f94a8b9c3b09b85705d4b3719090000162b40566b8095abc0c4af99846f5a442f1a050009192b3c4c62778b9fb4c9c4ae99846e5746331e0a000000000000000000000000000000000000000000000000000000061c31465b71869bb0c6c0aa95806b55404d5c646e7475746f645c4d41556b8095aac0c6b19b86715c46311c0700000000000b1b2839454b4b4538291b0f0200000000000b1b2f40586d8298adc2baa9907b66503b26110000000e23394e63798ea4b5c9bcab98826d5f4e423530262c2731364350616f8399aec2cab6a58d78634e38230e0000000000000000000000000000000000000000000000000000000000000000000000000000021527374c5e6b80969eb2b6c3c9c7c4c6b9b4b2b1b1b3b4b9c6bbaa8d78634d38230e00000000000000000000071b2d3e4b6074859ba4b4c1c8bbb4a99f97918c88868583848687888a8e9194806b55402b1600000000182d42586d8297adc2b9a48f7a644f3a250f000000000000000f24394e64798ea3b9c2ad98836d58432e180000000000000e1e2c3d495b647a899ea7b9bdb39e89786278899eb3bdb9a89e897a645b4a3d2c1e0e00000000000000000000000000000000000010253b50657a90a5c7bbb4bbc8c6c9c3b7b29f97826d604e3a2a1704000000000000000000000000000000000000000000000000000000000000000000000b20364b6074889db2c6b7a5917c67523f2e1b000000162b40566b8095abc0c4af99846f5a442f1a0500000e1f3447596e8398aec7c9b49f8a76614c36210c00000000000000000000000000000000000000000000000000000004192f44596e8499aec3c2ad97826d58423e4a4f59566056594f4b3e42576d8297acc2c4ae99846f59442f1a04000000000b1b28394557606056463a2d1d15090300000000162b41566b8096abc0c7aa957f6a55402a150000000c2135495b71869cb1c2c9b2a0927d68604f4b43364137444b51616a7f93a1b3c7c7b29c87725b4935210c0000000000000000000000000000000000000000000000000000000000000000000000000000081d314455667c919eb0bccaccc0b3afa7a89e9d9c9c9d9ea8a2a49f8a75604b36200b000000000000000000000d22364a5c6c8196a3b5c3c3b7aa9f958a827c7772716f6e6f70727375797c7f7b654f3a251000000000182d42586d8297adc2b9a48f7a644f3a250f000000000000000f24394e64798ea3b9c2ad98836d58432e18000000000000000e1f2c3d4a5c647a899ea8b9b9a79a8475849aa7b8b9a89e8a7a645c4a3d2d1f0f000000000000000000000000000000000000000d22384d62778da9a1aa9faaa6b1b5c2cabdb1a0937e695847331f0a000000000000000000000000000000000000000000000000000000000000000000081c2e3f52677d92a6b7c6b29d8774604b352010000000162b40566b8095abc0c4af99846f5a442f1a05000005182a3b52677c91a9bacebaa9917b66513c261100000000000000000000000000000000000000000000000000000002172c41576c8196acc1c5af9a85705a3b2d363938454b45383a372e3b5a70859aafc5c1ac97816c57422c17020000000b1b2839465760757561584a3d31271e160f0d0d0e192c3c576c8197acc1c1ac97816c57422c17020000061a2c3d53687d92a4b6c8beb49f8c7e6f656054585658556066707f8d9fb4bfcdbaa9957f6a553d2c1a0600000000000000000000000000000000000000000000000000000000000000000000000000000b20364b6074879cb2bccdc5b8b3a29a928d8988878788898b8d8f9187725544311d08000000000000000000071a2d3d4f647a8d9fb5c1c5b7a59d8c80776d6661595b5a595a5b5c566063676a655d4b37230e00000000182d42586d8297adc2b9a48f7a644f3a250f000000000000000f24394e64798ea3b9c2ad98836d58432e1800000000000000000f1f2d3d4a5c647b8a9ea8bab4a29a8a9aa2b4baa99e8a7b655c4a3e2d1f0f01000000000000000000000000000000000000000b20354a60738b8e8b8a8a8b919ba3b2bfcebeb39e8976614c37210c0000000000000000000000000000000000000000000000000000000000000000000e23374b5d71869bb1c4b9a8947e695544311d08000000162b40566b8095abc0c4af99846f5a442f1a050000000d21364b61768a9fb4c9c7ac96816c573828160300000000000000000000000000000000000000000000000000000014293f54697e94a9bec8b39d887359483422242731363127242234475973889db2c8bea9947f69543f2a140000000b1b293946576175848576635b4b44373228242222232a37495b70859bb0c5c2ad98826d58432d18030000000f20354b6074869caabbcebbaa9f93847a746f6d6c6d6f757b85949fabbccfc1b49f8a77614c37220f00000000000000000000000000000000000000000000000000000000000000000000000000000115273751677c91a5b6cac8b8a79e90847c7874727172737475777a7c7d6752372715020000000000000000000c21364a5b6f849aabbcc8b8a69d877b6b6158514c473b4544454638454b4e51554f4b3f2e1c0800000000182d42586d8297adc2b9a48f7a644f3a250f000000000000000f24394e64798ea3b9c2ad98836d58432e180000000001080b111921232d3e4b5c657b8a9fa9bab4ab9fabb4baa99f8b7b655d4b3e2e23211a110b080200000000000000000000000000000000071c304354657a78767575767c8699a1b2c4ccb9a8947e69543f29140000000000000000000000000000000000000000000000000000000000000000061a2c3d50657b90a3b5c8b39e8976614b37261401000000162b40566b8095abc0c4af99846f5a442f1a050000000a1e33465770859bb0c5c6b19b86715645321e0900000000000000000000000000000000000000000000000000000010263b50657b90a5c3cbb8a68c77624c37220f151d201d150f22374c61778ca6b7cbc3a5907b66503b261100000316293946576175849a9a86796a60554b4539393737393b485563788c9fb4cac0ab96816b56412c1601000000081d314455657b8c9fb4bcc8bbb4a29a8f88848281828589909ba3b4bcc9c3b5a395806a5947341f0b0000000000000000000000000000000000000000000000000000000000000000000000000000081d3144556e8399aec3cebbaa9e897c6f67625a5d5c5c5e5560626467675f4d391909000000000000000000000e23394e63798ea2b4c9bbaa9e8878645d4c473a37342a302e2f31273136393c3f3a372e21110000000000182d42586d8297adc2b9a48f7a644f3a250f000000000000000f24394e64798ea3b9c2ad98836d58432e1800000009151d20262c353838454b515d657b8b9fb4c9bcb5bcc9b49f8b7b655d514b453938352c26201d1509000000000000000000000000000000001325364b5d65636160586167748299a6b7cbc6af9a85705a36261401000000000000000000000000000000000000000000000000000000000000000c2135495b6f8499aec1bbaa96816b574633190900000000162b40566b8095abc0c4af99846f5a442f1a0500000003172939566b8096abc0cab49f8a76604b36210b0000000000000000000000000000000000000000000000000000000d22374c62778ca5b7cac4a6917c665136261402090b090213253651667c91a6c4cab7a58c77624c37220d00000a1e3246576175849aa2a49c8a7f74686057524e4c4c4e51596273849aabbccfc4a9947f69543f2a1400000000011527374b5d697f949eb4bac6c0b4afa79e999796989a9ea8b0b4c1ccc1b5a59b8574604b3b2a180400000000000000000000000000000000000000000000000000000000000000000000000000000b20354b6075899eb4c9c9b49f8b7b665e524d483c474737444b4d4f52524d41301e0000000000000000000005182b3b566b8096abc0c8b49f8c7b655a4b3f332a2222222222222222222223272a2522211f170c00000000182d42586d8297adc2b9a48f7a644f3a250f000000000000000f24394e64798ea3b9c2ad98836d58432e18000009192731353b3c494d545660666c72798499afc4cfcacfc4af9a8479726c666057544e493d3b363127190900000000000000000000000000000008182e3f4b4f4e4c4b464c566175889db2c8c9b39e89745443301c0800000000000000000000000000000000000000000000000000000000000004182a3a4e63798c9fb5cab49f8b78624d3929170000000000162b40566b8095abc0c4af99846f5a442f1a050000000012273c51677c91a6c8babbaa8f7a644f3a240f0000000000000000000000040b0c0e0d0b050000000000000000000b1f34475972879db2c7c1ac97816c5443301c08000000071c3043546c8196acc1c7b29d8772594834200b00000c21364b6175849aa2b4b6a99f94877d756d6864626263676d778399a2b4c9cbb7a68f7a644f3a240f000000000009192e3f4f616b80929fa8b3bfc8c5b8b3aeadabadafb4b9c6cac6b9b3a39b8778625645321d0c0000000000000000000000000000000000000000000000000000000000000000000000000000000e23394e63798ea8b9cdc6ad97826d5d4c4038352b3232273136383a3c3d39302313010000000000000000000b2034485972879cb1c7bbaa97826d5d4b3c37373737373737373737373737373737373737332a1c0c000000182d42586d8297adc2b9a48f7a644f3a250f0d0e11120f0e0d0f24394e64798ea3b9c2ad98836d58432e180001152737444b50575b63696f757b81878d99a1b3c7dcdfdcc7b3a29a8d87817b766f69635b57514b443727150200000000000000000000000000000010212e373a393635333846576b8196abc0ccb9a88a75604b35200b0000000000000000000000000000000000000000000000000000000000000a1f3347586c8197abbcc0ad98836e5a48351b0b0000000000162b40566b8095abc0c4af99846f5a442f1a05000000000e23394e63788eaaa4a4a4a4927d68523d2813000000000000000000070c181f2224221f180d080000000000000005182a3b586d8297adc6c8b39d8874604b3520130100010f20354a6073889db2c8c6ad97826d583b2b18050000152a3f556a7f94a0b0bcc7bab4a59d9389827d797777787c828a99a1b3c0d0c1b29d8873604a35200b0000000000001021324350626b7e8a99a1acb3b8c4c0c2c2c1c2c3c1c9bcb5b0a89e948577625a483828150000000000000000000000000000000000000000000000000000000000000000000000000000000011273c51667c91a6c6cdbaa88f7a644f3f2f2320191c1d151d2022252727251e1305000000000000000000000d22374c62778ca4b6cab49f8b78624d4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c473a2a17040000182d42586d8297adc2b9a48f7a644f3a2520222426272424222024394e64798ea3b9c2ad98836d58432e1800081d31445560666c72787e848a90969ca5afb3bfd0dce8dcd0c0b3afa59d96908a847e78726c66605544311d0800000000000000000000000000000003101b22252321201f293953687d93a8bdcab59f8a75604b35200b0000000000000000000000000000000000000000000000000000000000021527384c61778a9fb4c9b4a28f7a644f3c2b19000000000000162b40566b8095abc0c4af99846f5a442f1a05000000000b20354b60748c8f8f8f8f8f8f806b56402b160100000000000002101b222a34373937342a221b100200000000000012273c52677c91a8b9cbb7a6907b665141301f110c111f304150667b90a6b7cbbaa8917c67523c27120000000b20354b607382969eb3b8c5c3b6b2a79e98928e8c8c8e91979ea8b3bfd0c2b5a3937e695443301c07000000000000031525334450606879838e979da6a7abadaeafaeaeaca9ab9f9b94897f746259483c2b1a0a0000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8bec9b49f8975604b3520110b06000002080b0d0f1212100a01000000000000000000000011263b51667b90a6c2c4af9a856f62626262626262626262626262626262626262626262615847331f0a0000182d42586d8297adc2b9a48f7a644f3a2b3438393b3c393938342b394e64798ea3b9c2ad98836d58432e18000b20354b60737c81878d93999fa9acb2b6c3bcbdc0cad8cac0bdbcc3b6b2aca99f99938d87817c74604b36200b0000000000000000000000000000000000080e100e0c0b14293e53697e93a8bec8b39d88735544311d080000000000000000000000000000000000000000000000000000000000091d3145566a7f95a9bac3b09a85705c4a361e0e000000000000162b40566b8095abc0c4af99846f5a442f1a0500000000081d314455647a7a7a7a7a7a7a79634d38230e0000000000000311202d363b474c4e4c473b372e20110400000000000b21364b6075899eb4c9c4b09a85705f4d3d2f2322232e3d4d5f70849aafc4c9b49f8a76614b36210c000000081d314455607380919ea7b4bbc8c5b9b3ada7a3a1a1a3a6acb4b9c6c9bfb3a49b8573604b362513000000000000000007152633424e5b636e7981888e929598999a99989694908b867e766a6055483b2b1d0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f556a7f94aabfc6b19c87715544311d080000000000000000000000000000000000000000000000000014293f54697e94a9bec1ac9781777777777777777777777777777777777777777777777776614c37210c0000182d42586d8297adc2b9a48f7a644f3a3c484d4e50524f4e4d483c394e64798ea3b9c2ad98836d58432e18000b20364b607589969ca5a9afb4bac7c1b5b1a7a7adbacabaada8a7b0b5c1c7bab4afa9a59d968975604b36210b0000000000000000000000000000000000000000000003172939566b8096abc0c5b09a85705b3727150100000000000000000000000000000000000000000000000000000000000b20364b6074889db3c7b6a5917c66513e2d1b00000000000000162b40566b8095abc0c4af99846f5a442f1a0500000000011527374a5c64656565656565635b4935210c00000000000011212f3e4a4f59616362594f4b3e2f22110000000000091e3245576d8297adbfc8b4a2927d675b4c3f3837383f4b5b677d91a2b4c8bfad98826d5746321e09000000011426374455606b7d89979faab3b7c4c4c2bdb9b7b7b8bcc2c8c4c2b5b1a1998677625544311808000000000000000000071524313c494d5c646c74797d808284848483817f7b77716961584b44372b1d0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000152b40556a8095aabfc5b09a85705b3727150100000000000000000000000000000000000000000000000000162c41566b8196abc0c4b19f978c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c87725d48321d0000182d42586d8297adc2b9a48f7a644f3a485a626366676463625a48394e64798ea3b9c2ad98836d58432e1800091d3145566c8197acb6c3c4c9bcb5aea39b92929cadc0ad9c92929ba3aeb4bcc9c4c3b6ac97826d5645321e09000000000000000000000000000000000000000000000a1e33465770859ab0c5c7ab96816b56412c160000000000000000000000000000000000000000000000000000000000091c2f4052687d92a6b7c5b29c8773604b35201000000000000000162b40566b8095abc0c4af99846f5a442f1a05000000000009192d3e4a4f4f4f4f4f4f4f4d493c2c190600000000000b1b2f3f4b5c647077797770645c4c402f1b0b00000000031628394e64798ea1b3c7c0b39e8979655d524d4c4d525d6579899eb3c0c8b3a18e79644f392816030000000009192637444b5f6777828b969da6aaafb2b4bcc9b9b8c5b8b3afaba49c918377625948372614000000000000000000000006131e2c353e4a4e546063686b6d6e6f6f6e6c69666158544c473a3127190d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b8095aac0c4af9a856f5a45301a0000000000000000000000000000000000000000000000000000182d43586d8298adc2cebdb1aca1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a19e89745e4926140100182d42586d8297adc2b9a48f7a644f3a4d6278797b7c797978624d3b4e64798ea3b9c2ad98836d58432e1800021527384f657a8fa5b6c6bab4ab9f998f867d7e92a7bda8927e7c858f999fabb4b9c6b7a58f7a655038281602000000000000000000000000000000000000000000000c21364b61768a9fb4c9baa9917c66513c271100000000000000000000000000000000000000000000000000000000000e23384c5e71869cb1c4b8a7937e695443301c0800000000000000162b40566b8095abc0c4af99846f5a442f1a0500000000000010202d363a3a3a3a3a3a3a38352c1e0e0000000000031628394b5d657a858c8e8c857a665e4c39291703000000000a21364a5c6e8399a9baccb9a79e887b6f67636163676e7b889ea7b8ccbbaa99846f5c4a361b0b00000000000009192631414d59616d7881888f95999d9faba3a4a3a2a79e9a958e867c6f6159483b2a1909000000000000000000000000000e19212d3636434a4e525658595a59595754504c473a37332a1d15090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b8095aac0c4af9a856f5a45301a0500000000000000000000000000000000000000000000000000192e43596e8398aec3d8cdc4c0b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b49f8a755443301c0800182d42586d8297adc2b9a48f7a644f475971868e90918e8e867159484e64798ea3b9c2ad98836d58432e1800000a22374b5d72879db2b2a89f978c837b71697e93a8bea9937e69717a838c969ea8b2b29d8773604a35200b000000000000000000000000000000000000000000000417293a52677c92a9bac9b49f8a76604b36210b00000000000000000000000000000000000000000000000000000000071a2d3d50657b90a4b5c8b39e8975614b3626140100000000000000162b40566b8095abc0c4af99846f5a442f1a0500000000000002101b22242525252525252321190e000000000000091e324657657b8b9ba2a3a39b8b7c665746331e0a00000000071a2d3d4d63798b9fb4bec5b8a69e90847c7877787c83909ea6b8c5beb49f8b79634e3e2d1b000000000000000009141d303a474c5a626b747a7f84888a8d8e8e8e8d8b8884807971675f4c473b2a1d0d000000000000000000000000000000060f1a21253035393d404344454443413f3b37332a211f170c02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b8095aac0c4af9a856f5a45301a0500000000000000000000000000000000000000000000000000192e44596e8399aec3cdbcb0aba9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9afb4c0cebbaa8a75604b35200b00182d42586d8297adc2b9a48f7a644f4c61778b9fa5a7a4a48c77624c4e64798ea3b9c2ad98836d58432e180000081b2e3f556a8095a69d948a81786e655d6a7f95aabfaa95806a5d656e78818a949da695806b5443301c07000000000000000000000000000000000000000000000a1f3347586e8399aec7c8ae99836e5745321e09000000000000000000000000000000000000000000000000000000000c21364a5b6f8499afc2bbaa95806b57463218080000000000000000162b40566b8095abc0c4af99846f5a442f1a050000000000000000070d0f1010101010100e0c06000000000000000c21364b6175889da9b4c0b5a99e8876614b36210c00000000000f2135495b697f94a0b2bfc5b8b3a199918d8c8d9199a1b3b8c4bfb2a0947f695b4935201000000000000000000001131c2a343c484d5460656a6f7275777879797776736f6b645c514d41342a1d0d0000000000000000000000000000000000000708131c2024282b2d2f2f2f2e2c2a26221f180c0a04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a20354a5f758a9fb4cac7b4a28a75604a35200b00000000000000000000000000000000000000000000000000182e43586d8398adc2c4b09e9693939393939393939393939393939393939aa2b4c8baa98b75604b36200b00182d42586d8297adc2b9a48f7a644f52677c91abbcbcc2a7927c67524e64798ea3b9c2ad98836d58432e180000001023384d63788d92887f766c635b50566c8196abc1ac96816c57505a636c767f88928d79634e36251300000000000000000000000000000000000000000000000c21374c61768a9fb4c9bbaa927d67523928160300000000000000000000000000000000000000000000000000000005182a3b4e63798ea1b3c9b49f8b77624d392816000000000000000000162b40566b8095abc0c4af99846f5a442f1a0500000000000000000000000000000000000000000000000000000012273d52677c92a6b7c7d1c7b8a6927d67523d2812000000000006192c3c4a60728298a1b4bbc8bfb3aea7a2a1a2a7aeb3bfc8bbb4a1988272604a3d2c1a0200000000000000000000000c181f2b3536434b4f555a5660626364636261585a564f4a3e39301f180c00000000000000000000000000000000000000000000070b0e131618191a1a191714110c0a04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354a60758aa8b9ccd0c09f8a75604a35200b00000000000000000000000000000000000000000000000000172d42576c8297acc1c0ab96807e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e849aafc5b49f8a745544311d0800182d42586d8297adc2b9a48f7a644f576c8297acc9dac2ac97826d574e64798ea3b9c2ad98836d58432e180000000c2035495a6d827d746a61584e493d586d8398adc2ad98836d583c494d58616a747d826d5b49351808000000000000000000000000000000000000000000000316283853687d93a9bac9b49f8a76614c36210c000000000000000000000000000000000000000000000000000000000b1f3447596d8297acbfc0ad98826d5948341b0b000000000000000000162b40566b8095abc0c4af99846f5a442f1a05000000000000000000000000000000000000000000000000000000162b40556b8095aac4d5e5d5c5ab95806b56402b160000000000000e1c304354607383959faab3bfc5c4bcb8b6b8bcc3c5c0b4aa9f958373605443301f0f00000000000000000000000000040e19202630353a4038454b4d4e4f4e4d4c463a4039362d241d120400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091f34495e74899eb3c9c7b4a28a75604a35200b00000000000000000000000000000000000000000000000000152b40556a8095aabfb9a48f7a696969696969696969696969696969696c8297acc1b39d88735e3727150200182d42586d8297adc2b9a48f7a644f5a72879db2c7c9c7b29d87725a4e64798ea3b9c2ad98836d58432e1800000006192c3c52636d6760554c473a35445a6f8499afc4af9a846f5a45353a474c5560676d63523d2c1a0000000000000000000000000000000000000000000000091e32455670859aafc7c4af99846f5846331f0a000000000000000000000000000000000000000000000000000000021628384c62778a9fb4c9b4a28e79644e3b2b1800000000000000000000162b40566b8095abc0c4af99846f5a442f1a05000000000000000000000000000000000000000000000000000000152a40556a7f95aac1d1ddd2c1aa95806a55402b150000000000000013253644556072808c9aa1aab0b4b9c6b9c6b9b4b0aaa29a8c8072605544362513010000000000000000000000000000000508141c20252a27313638393939383633292b24221b100a01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080b1e2020202020202020201f0b08010000000000000000000000000000000000000000000000000000162b40556b8095aac0c4af9a856f5a45301a050000000000000000000000000000000000000000000000000013283e53687d93a8c8bda8937e685454545454545454545454545454596e8398aec3b19c87725c47321d0000182d42586d8297adc2b9a48f7a644f62788da5b6b9b4b9b7a58d78634e64798ea3b9c2ad98836d58432e18000000000e1e35455257524b4437332a31465b70869bb0c5b09b86715b4631293337444b52575245351f0f00000000000000000000000000000000000000000000000b21364b60768a9fb4c9bea9947f69543a291704000000000000000000000000000000000000000000000000000000091e3245566a8095a9bac2af9a846f5c4a361d0d00000000000000000000162b40566b8095abc0c4af99846f5a442f1a0500000000000000000000000000000000000000000000000000000010253b50657b90a3b4c2c8c3b5a3907b66503b261100000000000000081827374454606a79848e959b9ea8a3a4a3a89e9b958e847a6b6054443727180800000000000000000000000000000000000001080b1015151d202223242422211f17160f0d070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008141c203435353535353535353534201d150900000000000000000000000000000000000000000000000000162b40556b8095aac0c4af9a856f5a45301a050000000000000000000000000000000000000000000000000010253a4f657a8faabbc2ad97826d56453e3e3e3e3e3e3e3e3e3e3e475872879cb1c5b09a85705b45301b0600182d42586d8297adc2b9a48f7a6453687d92a8b9a89ea8b9a8937e685364798ea3b9c2ad98836d58432e1800000000001727353e423d3631271f1725365d72879cb2c7b29d87725d3726171f2731363d423f35271701000000000000000000000000000000000000000000000010253a4f657a8faabbcebaa48f7a654f3a2510000000000000000000000000000000000000000000000000000000001325364b6075889eb3c7b6a4907b66513e2d1b0000000000000000000000162b40566b8095abc0c4af99846f5a442f1a050000000000000000000000000000000000000000000000000000000b20354a6072859ba4b0b2b1a59b8572604a35200b000000000000000009192736434b5c646f797f85898c8e8e8e8c898580796f645c4b433627190900000000000000000000000000000000000000000000000002090b0d0e0f0e0d0c0a04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000818263035494a4a4a4a4a4a4a4a4a493531271909000000000000000000000000000000000000000000000000162b40556b8095aac0c4af9a856f5a45301a05000000000000000000000000000000000000000000000000000c21364b61768a9fb4c9b39e8975604b3a292929292929292928384c61768b9fb5c1ab96816c56412c170100182d42586d8297adc2b9a48f7a64546e8398adaa9e899ea9ae98836e5464798ea3b9c2ad98836d58432e1800000000000917232a2d28201d15091c30435473899eb3c8b39e89745544311d09151d20282d2a23170900000000000000000000000000000000000000000000000012273d52677c92a7c8d8b7a28c77624d37220d0b0600020000000000000000000000000000000000000000000000071c304354687e93a7b8c5b19c8673604a3520100000000000000000000000162b40566b8095abc0c4af99846f5a442f1a05000000000000000000000000000000000000000000000000000000071c304354627786949b9d9b958778625443301c07000000000000000000091826303d4a4e5b636a7074777879787774706a635b4e4a3e3026180900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001142636434b5e6060606060606060605e4b44372715010000000000000000000000000000000000000000000000162b40556b8095aac0c4af9a856f5a45301a05000000000000000000000000000000000000000000000000000a1e32465770859bb0c9b9a7927d68584636281d1515151a21324556697e93abbcc2a7927c67523d27120000182d42586d8297adc2b9a48f7a646074889eb39f8b778b9fb39e88746064798ea3b9c2ad98836d58432e18000000000000060f1518120b08020b20354a60758a9fb4b9b59f8a75604b35200b02080b1218160f060000000000000000000000000000000000000000000000000013293e53687e93a8bdcbb5a08b76604b362b232019191812100a01000000000000000000000000000000000000000b20354a6073869cb1c5b8a7937e685443301c070000000000000000000000162b40566b8095abbabaaf99846f5a442f1a0500000000000000000000000000000000000000000000000000000000132536485962757f8688868076625a48362513000000000000000000000008141c2d363d494e55546062636463626054554e493d362d1c14080000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080b0e1215171819191816130f0b090200000000000000000000000000000000000000000000000000000000081c304354607375757575757575757574605544311d080000000000000000000000000000000000040a0c0d0d0d162b40556b8095aac0c4af9a856f5a45301a0d0d0d0d0d0d0d0d0d0d0d0b090200000000000000000000000003162939546a7f94abbcc5b39d88766154453831272a2b2d36434b6074879cb2c9b5a48d78634d38230e0000182d42586d8297adc2b9a48f7a6463798ea6b09b8570859ab0a78e796464798ea3b9c2ad98836d58432e1800000000000000000102000000000c21374c61768caba4a4a4ab8c77614c37220c00000000020100000000000000000000000000000000000000000000000000000012273d52677c92a7bfd0b7a28d78624d483b38352b2e2d27251e13050000000000000000000000000000000000071a2d3e51667b90a4b6c7b39e8875604b362513000000000000000000000000162b40566b8095a5a5a5a599846f5a442f1a050000000000000000000000000000000000000000000000000000000008182b3b4857616a7173716a6158483c2b1808000000000000000000000000010f1a212c353936434a4d4e4f4e4d4a433639362c221b10010000000000000000000000000000000000000000000000000000000000000000000000000000000000000808141c2024282a2d2e2e2e2d2b2824201d150b0801000000000000000000000000000000000000000000000000000b20354b6073898a8a8a8a8a8a8a8a8a8973604b35200b000000000000000000000000000000000c171f21232323232b40556b8095aac0c4af9a856f5a4530232323232323232323232323201d150a0000000000000000000000000d22384d62788b9fb4c8b7a698827260564b44373f403d4a4e616b8096a5b6c5b19c86715a4935200c0000182d42586d8297adc2b9a48f7a64697e93a9aa95806b8095aaa9947e6964798ea3b9c2ad98836d58432e1800000000000000000000000000000e23384d63788d8e8e8e8e8e8d78634e38230e0000000000000000000000000000000000000000000000000000000000000000000e23384d63788da1b3c4c2ac97816e6259524d483c44423d3930231301000000000000000000000000000000000d21364a5c6f849aafc2baa995806a5645321808000000000000000000000000162b40566b80909090909090846f5a442f1a0500000000000000000000000000000000000000000000000000000000000d1d2b39464b555b5d5c554c463a2b1e0e000000000000000000000000000000070f1a2123253035373939393735302523211a0f0700000000000000000000000000000000000000000000000000000000000000000000000000000000000008111c23263035393d404243444342403e3a363127201c14080000000000000000000000000000000000000000000000000f253a4f647a8fa79f9f9f9f9f9f9fa78f7a654f3a25100000000000000000000000000000000c1c2a3337383838383840556b8095aac0c4af9a856f5a45383838383838383838383838383631271a0a00000000000000000000000b2035485a6e8398aabbc4b2a0988274666055565455575c646f7f959eb0c3b9a7937d68533c2c19060000182d42586d8297adc2b9a48f7a646f8499aea9907b657a90a9af99846f64798ea3b9c2ad98836d58432e1800000000000000000000000000000b21364b60747a79797979797a75604b36210b0000000000000000000000000000000000000000000000000000000000000000000c2035495a6f8499a6b4c0b19f9783786e68625a5b5957524d41301e0a00000000000000000000000000000005182b3b4e64798ea2b4c9b49f8a77624c382816000000000000000000000000000e23384d63787b7b7b7b7b7b7a644e39240f000000000000000000000000000000000000000000000000000000000000000d1b2932363f464846403633291b0e000000000000000000000000000000000000060c0e131c202223242322201c130e0c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000002101b222f3736434b4e5255575859595856534f4b453835302618110200000000000000000000000000000000000000000004172a3a556a8095aac5b5b5b5b5b5c5aa95806b553a2a18040000000000000000000000000004172a3a474c4d4d4d4d4d4d556b8095aac0c4af9a856f5a4d4d4d4d4d4d4d4d4d4d4d4d4d4d4b45382715020000000000000000000005192b3c4e63798b9fb4c1beb2a098877c746e6b6a6a6c727984959dafbcbfb39e8975604b36210e000000182d42586d8297adc2b9a48f7a6475899eb49f8a7660758a9fb49e897564798ea3b9c2ad98836d58432e180000000000000000000000000000091e3245566064646464646464605745321e0900000000000000000000000000000000000000000000000000000000000000000006192c3c4d6277889aa2aeb4b1a1998b837d7874706e6d675f4d3925100000000000000000000000000000000b203448596d8298adc0bfad97826d5947341a0a000000000000000000000000000c2035495a63656565656565645c4a36210d00000000000000000000000000000000000000000000000000000000000000000b161e212a3133312b211f170b0000000000000000000000000000000000000000000000070b0d0e0f0e0d0b070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000715212e373f4b50546063676a6c6d6e6e6d6b68646056514b43362f1d150a00000000000000000000000000000000000000000a1f33475870859bb0c5c3b7b2b7c3c6b09b86715947341f0a000000000000000000000000000a1f33475861626262626262626b8095aac0c4af9a856f626262626262626262626262626262605645311d0900000000000000000000000e21364a5b6b8096a3b4c2beb2a59c918983817f8082878e99a1afbbc3b3a1937e685745321e09000000182d42586d8297adc2b9a48f7a647a8fa8b09a85705770859aafa88f7a65798ea3b9c2ad98836d58432e18000000000000000000000000000003162838454b4f4f4f4f4f4f4f4b4539281603000000000000000000000000000000000000000000000000000000000000000000000e2034485962778490999fa9a7aa9f99928d898683827d67523d27120000000000000000000000000000031628394d62778b9fb4c9b3a18e79634e3b2a18000000000000000000000000000006192c3c494d5050505050504e4a3e2d1a07000000000000000000000000000000000000000000000000000000000000000000030a0c151c1e1c150c0a040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091725333f4b4f5d656d74797d7f8283838382807d7a756e6660544c4032281a0b000000000000000000000000000000000000000c21374c61778b9fb4c7b7a59da5b7c7b59f8b77614c37220c000000000000000000000000000c21374c617678787878787878788298adc2c7b29c877878787878787878787878787878787874604b36200b0000000000000000000000071a2d3d4b6074859ba4b4c0c3b6b2a79e98969495979ca4afb3bfc2b5a599836f604e39281603000000182d42586d8297adc2b9a48f7a6a7f94aaaa95806b556a8095aaaa957f6a798ea3b9c2ad98836d58432e180000000000000000000000000000000a1a283236393939393939393632281b0a000000000000000000000000000000000000000000000000000000000000000000000005182b3b485962707b838a8f9294969fa7a89e9b9997826d57422d180000000000000000000000000000091e3245576b8095aabbc2af9a846f5b4a361d0d0000000000000000000000000000000e1e2c35383b3b3b3b3b3b39362d200f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0c0f1215161718191918171613100c0a04000000000000000000000000000000000000000717273544505d65707b82888e9295979899989795938f89837b73665e4b4538291b0b00000000000000000000000000000000000013253652677c92abbcbaa99d889da9babcab927d675236251300000000000000000000000000182d42576d818d8d8d8d8d8d8d8d98a0b2c6cab6a59c8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7a644f39240f0000000000000000000000000f1d3145566277869ba2b4bac7c5b9b3aeaba9aaacb1b6c2c9bcb4a49c8777614c42311b0a00000000182d42586d8297adc2b9a48f7a70859aafa9907a6550657a8fa9b09a8570798ea3b9c2ad98836d58432e18000000000000000000000000000000000a161e2124242424242424211e160a000000000000000000000000000000000000000000000000000000000000000000000000000d1d2b3b484c5e666e75797d7f8196acb9b3b0ac97826d57422d1800000000000000000000000000011426364b6075899eb3c8b5a4907b66503d2d1a00000000000000000000000000000000000e19202326262626262624211a0f0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0d13171f2124272a2c2c2d2e2e2e2d2b2825211f170f0d07000000000000000000000000000000011425354552626a7a8590989ea7a7aaacadaeaeadaba8a89e9890867b6d6056463929190900000000000000000000000000000000071c3043546d8298adc9b49f8b778b9fb4c9ad98826d5443301c07000000000000000000000000182d42576d8297a2a2a2a2a2a2a2adb2becfd3c3b6b2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a28e79644f39240f000000000000000000000000021527384759627784959fa9b3b8c5c3c3c0bfbfc1c4c7bab4ab9f9786786259473424140000000000182d42586d8297adc2b9a48f7a758a9fb49f8a75604b60758a9fb49f8a76798ea3b9c2ad98836d58432e18000000000000000000000000000000000003090b0f0f0f0f0f0f0f0b0903000000000000000000000000000000000000000000000000000000000000000000000000000005162634424e5761686f7377797d91a6bcc8bbac97826d57422d1800000000000000000000000000081c304354697e93a7b8c4b19c86715e4c381f0f000000000000000000000000000000000000060c0e1010101010100f0d07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0e192023282a33373a3c3f41424343434342403e3b37332924221b1008000000000000000000000000000f1f324352636c808c9ba3adb3b8c5bfc1c2c2c2c2c0c6b9b4aea49c908174615746372715020000000000000000000000000000000b20354a6074889db3c5af9a8570859aafc4b39e8874604a35200b000000000000000000000000182d42576d8297acb7b7b7b7b7b7c2c6cfdce1d3cac7b7b7b7b7b7b7b7b7b7b7b7b7b7b7a48e79644f39240f000000000000000000000000000a1a2a3b47596274808b969ea7aaaeb1b2b3b2b1afaba99f988c81756259483a2a18060000000000182d42586d8297adc2b9a48f7a7b90a9af9a85705645566f859aafaa907b798ea3b9c2ad98836d58432e18000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013233444516068757d84898c8e919bb4ada8aa9f97826d57422d18000000000000000000000000000b20354b6073879cb2c5b8a6927d6853402f1c0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c171f212b35383e3a474c4f5254565758595958575553504c473a39362d231c110200000000000000000000061a2c3d4f616c81959fabb5c1c8c9c3b6b2afadadafb2b7c4c9c2b5b19f978475615544311d0f0000000000000000000000000000000f24394f64798ea6b7c6aa957f6a7f94aac5b8a68e79644f39240f000000000000000000000000182d42576d8297acbabababababac5c8d1dee5d7cdc9bababababababababababababab9a48e79644f39240f00000000000000000000000000000d1d2a3b4756606a7881899095999b9d9e9d9c9996918a83796c6057483b2b1c0c000000000000182d42586d8297adc2b9a48f7a8096abaa95806a5538556a7f95aaab9680798ea3b9c2ad98836d58432e180000000000000000000000000000000000000000000000000000000000000000000000040a0c150b0802000000000000000000000000000000000000000000000000000818314151626c7d8892999ea7a3a6a89e98928e8a88806b55402b16000000000000000000000000071b2d3e51667c91a5b6c7b39d8875604b3620110000000000000000000000000000000000000912191b1f1f1f1f1f1f191711070000000000071117191f1f1f1f1f1f1b1913090000000000000000000000000000000000070b151515151515150c0a040000000000000000000000000000000000000000000000000000000c1c2a33373c494d5358586164676a6b6c6d6e6e6d6c6b68656158564f4a3e372f1e160a0000000000000000000c2135495b697f949fb4bcc9c5b9b3aaa59d9998989a9da6acb4bbc8bdb1a29a8473604b3d2d1a070000000000000000000000000003172939556a7f94aac4b9a88f7a647a8fa7b8c5aa957f6a553a2917040000000000000000000000182d42576d8297a4a4a4a4a4a4a4afb4c0d1d7c7bab4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a48e79644f39240f0000000000000000000000000000000d1d2a38454b5a626c757b8083868788888784817c766d645c4b45392b1d0d00000000000000182d42586d8297adc2bba6907c859bb0a98f7a65503a4f657a8fa8b19b857b90a5bac2ad98836d58432e18000000000000000000000000000000000000000000000000000000000000000000080c181f222a201d15090000000000000000000000000000000000000000000000011426364e5f6c81929ea6afb3b0a49c9289837d7975736b62503d28130000000000000000000000000d22364a5c70859ab0c3baa9957f6a5645321d0900000000000000000000000000000000000c1a262d303535353535352f2c24190a0000000a18242c2e353535353535302e261a0c000000000000000000000000000008131c202a2b2b2b2b2b2b211f170b0000000000000000000000000000000000000000000000000004172a3a474c535a62686d7276797c7f81818283838382807d7a76716b645c504b3f32281a0b0000000000000006192c3c4e63798b9fb4bdcfc1b4a79e958d8784838384888e979faab8c4c0b4a295806b5c4a36210e000000000000000000000000000a1e33465770859ab0c5b39e89746074899eb3c5b09b85705846331f0a0000000000000000000000182d42576d828f8f8f8f8f8f8f8f9aa2b4c8cdbaa99f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8e7a644f39240f000000000000000000000000000000000d1a27313c484d5560656a6e71727373716f6b6761574e4a3d32281b0d0000000000000000182d42586d8297adc2bfab9a909ba3b49f8a75604b364b6075899fb4a39b9099abbec2ad98836d58432e18000000000000000000000000000000000000000000000000000000000000030a101b222a34373f363127190900000000000000000000000000000000000000000000081c304354687d929fb3b8bcb09e96877d756e6863605655504433210d000000000000000000000005192b3c4f647a8ea2b4c9b49f8a77614c3828150200000000000000000000000000000000091a2a3842454a4a4a4a4a4a444036291900000018283640444a4a4a4a4a4a4642382a1a0900000000000000000000000008182530353f4040404040403633291b0b0000000000000000000000000000000000000000000000000a1f334758616870787d82878c8f9194969798989898979593908b87817970655d4b4538291b0b0000000000000c2035495a6e8399a9bacdc1b4a39b898078726f6d6d6f7379828c9da6b8c5c0b49f8c79644e3d2c1a060000000000000000000000000c21364c61768a9fb4c3ae99846e556e8399aec3b49f8b76614c36210c00000000000000000000000e23384d63787a7a7a7a7a7a7a7a849aafc5c9b49f8b7b7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a75614b36210c00000000000000000000000000000000000a151d2b3537444b5055595c5d5e5d5c5a56514b4639362d1e160a000000000000000000182d42586d8297adc2c9b8aba6b0b5af9a856f56453244556f849aafb5b1a5abb8c8c2ad98836d58432e1800000000000000000000000000000000000000000000000000000000070b171e212e373a474c544b44372715020000000000000000000000000000000000000000000b20354b6073889db2bdc4b09e968074686056534e4b45383d3326150400000000000000000000000b2034485a6e8398adc0bcab97816c5847331a0a000000000000000000000000000000000012263848555b5f5f5f5f5f5f595447361d0d000d1d364653595f5f5f5f5f5f5b5548382613000000000000000000000000132536434a545555555555554c463a29170400000000000000000000000000000000000000000000000c21374c61767e858d93989da5a4a7a9abacadaeaeadacaaa8ab9f9c968e857b6d6056463929160300000000000e23384d63788c9fb5c7c7b5a39b84776b625a5a58585a5b636d7a889da7b9ccbcab99846f5b4935210c00000000000000000000000011273c51667c91aabbc4a8937e6953687e93a8c3bbaa917c67513c271200000000000000000000000c2035495a63656565656565656b8095aac0c4af9a846f656565656565656565656565656565615746321e0a000000000000000000000000000000000000020e19202731363b4044464849484744413c363329211a0f0300000000000000000000182d42586d8297adc2d7c9bfbbc6c7aa957f6a55382837556a7f94aac6c6babec8d8c2ad98836d58432e180000000000000000000000000000000000000000000000000002090f1a212933363f4b4f59616a605544311d080000000000000000000000000000000000000000000f253a4f647a8fa6b7cbc0ab96806b60564b453839363127282115070000000000000000000000031729394d62788b9fb4cab59f8c79634e3a2a18000000000000000000000000000000000000192d425566707474747474746e65543b2b1805182a3b53646e747474747474706755422e190400000000000000000000071c304354606a6a6a6a6a6a6a615846331f0a0000000000000000000000000000000000000000000000162b40566b80939ba3a8adb2b7c3bcbfc0c1c2c3c2c2c1c0c9bcb5b1aba39b908274615746321e130000000003162939556a7f95abbccdbaa99b857462594d483c43433d4a4e5c6478899eb3c2c9b59f8c78634e38230e0000000000000000000000061a2c3d576c8297acc8b7a68e78634e63788da5b7c8ac97826d573d2d1a070000000000000000000006192c3c494d4f4f4f4f4f4f556b8095aac0c4af9a856f5a4f4f4f4f4f4f4f4f4f4f4f4f4f4f4b463929160300000000000000000000000000000000000000000509151d20262b2e31323333322f2c27211e170b07000000000000000000000000182d42586d8297adc2d7dbd3d0cdbaa98f7a654f3a253a4f647a8fa8b9cdd0d2dad8c2ad98836d58432e180000000000000000000000000000000000000000000000060a151d202d3639464b535d656d777f74604b36200b00000000000000000000000000000000000000000012283d52677d92a7c4d4b7a18c77624c4538322823201d150a0d040000000000000000000000000a1e3346576b8096aabbc1ae99846f5b49351c0c0000000000000000000000000000000000001b30455b70848a8a8a8a8a8a836e594834200b1f3447596e828a8a8a8a8a8a85705b46301b06000000000000000000001325364a60727f80808080808076614c36210c000000000000000000000000000000000000000000000013283e53687d93a8b4c1c2c7c4bec4b8b3b0afadadadafb2b4bbc8c6c1b4b09f978475614b42311a0a0000000a1e32465770859bb0c9c9b49f8a786256483b352b2e2e2d363e4a5a677d91a4b5c9bcab957f6a5538271502000000000000000000000c2136495b72879db2c7b29d88735b495b72879db2c7b29d88735b4a36210c00000000000000000000000e1e2c35383a3a3a3a3a40556b8095aac0c4af9a856f5a453a3a3a3a3a3a3a3a3a3a3a3a3a3632291b0b000000000000000000000000000000000000000000000002080b1015191c1d1e1e1c1a16120c0a030000000000000000000000000000182d42586d8297adc2d5d5d8d8c9b49f8a75604b3620364b6075899eb4c9d7d8d5d5c2ad98836d58432e18000000000000000000000000000000000000000001080e19202832363d4a4e576168717a838a8b75604b36210b00000000000000000000000000000000000000000013293e53687e93a8bdcbb6a08b76614b36271e160e0b09020000000000000000000000000000011426374b6176899eb3c8b5a3907b65503d2c1a0000000000000000000000000000000000000012283d52677d929f9f9f9f9f8b77624c37221022374c62778b9f9f9f9f9f927d68523d281300000000000000000000071c304354677c91959595959586705846331f0a000000000000000000000000000000000000000000000010263b50657b90a5c9c8bbb4afa9a5a69d9b9a989798999c9faaafb3c0c8bdb1a299836f604e3828150200000c21364b61768a9fb4cac5ac96816c5a48382b201918181a212d3c4d5f71869cb1c6c9b09b85705645311d09000000000000000000000e23394e63798ea5b7c2ad98826d583d586d8297adc9b7a68e79634e39240e0000000000000000000000000e192023252525252b40556b8095aac0c4af9a856f5a4530252525252525252525252525211e160b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc0c0c0c3c2c0af9a846f5645311d3144556f8499afc0c2c3c0c0c0ad98836d58432e180000000000000000000000000000000000000508141c202c3538454b525b636c767e868f989f8b76604b36210b00000000000000000000000000000000000000000012273c52677c91a7c6d6b7a28d77624d38220d02000000000000000000000000000000000000081d314455697e94a7b9c4b19b86715d4b371f0f000000000000000000000000000000000000000b20364b6074889db3b4b4aa947f69543e2e1b2d3e54697f94aab4b4b39e8875604b36200b000000000000000000011426364a6073869caaaaaaa6927c67523a29170400000000000000000000000000000000000000000000000e23384d63788dabb4adaa9f9a94908c88868483828384878a919aa2b4bac7c0b3a1937e685645321d0900000f253a4f647a8faabbccb9a78e79644f3c2b1a0d06000007101e304153687e93a8c6c9b49f8a75604b36200b0000000000000000000316283954697e94a9c3c2a7927d67523d52677c92abbcc4a9947f695439291603000000000000000000000000060c0e101010162b40556b8095aac0c4af9a856f5a45301a10101010101010101010100c0a030000000000000000000000000000000000000000000000000000030a0c1014171819181714110c0a03000000000000000000000000000000182d42586d8297ababababb0adabaa947f6a553827152737546a7f94a9abadb0abababab98836d58432e1800000000000000000000000000000000080d181f2630353c494d56606770798189939ca4ada08b76604b36210b0000000000000000000000000000000000000000000f24394f64798ea8b9cdbaa58f7a65503a2510000000000000000000000000000000000000000b20354b6074879db2c5b7a6927d67523f2e1c0100000000000000000000000000000000000000091d3145566a7f95a9bac8b19c86715c4b3722364a5c71869cb1c8bbaa95806a5645321d09000000000000000000081c304354677c91a4b5c6b29d8774604b35200b0000000000000000000000000000000000000000000000000b20364b60758a9f9f98918a857f7b7773706f6e6d6e6f72767c84919fa9bacdbfb29d8875604b36200b000013283d52687d92a7c8c9b39e8974604b35200e0000000000001323384e63788da8b9ccbaa98e79634e39230e000000000000000000091e3245576f849aafc4b6a48c77624c374c61778b9fb5c4af9a846f5746321e0a000000000000000000000000000000000000162b40556b8095aac0c4af9a856f5a45301a0500000000000000000000000000000000000000000000000000000000000000000000000000090b171e21262a2c2e2e2e2c2a26211e170b0700000000000000000000000000182d42586d8295959595959e9895958f7a644f3a250f243a4f647a8f9595989e9595959595826d58432e1800000000000000000000000000030a111c232a3436434b515a626b757d858e979ea8b1b5c2a08b76604b36210b0000000000000000000000000000000000000000000b20354b6075899eb4c9bfa9947f6a543a2a17040000000000000000000000000000000000081b2e3f51677c91a5b7c6b29d8874604b3620110000000000000000000000000000000000000000021527384c62778a9fb4c9b6a48f7a644f3828384f64798ea4b5c9b49f8b77624c382815020000000000000000011426374b6073869cb1c2baa8947f6a5544311d08000000000000000000000000000000000000000000000000081d3144557287938a837c766f696561595b5a5858585a5761676f7d8b9fb4c0cbb7a6917c67513c27120000152a3f556a7f94aabfc6b09b86715443301c080000000000000b20354a6074899eb4c9c7a5907b66503b26110000000000000000000b21364b60768a9fb4c6b19c8671594834475971869cb1c6b49f8a76614b36210c000000000000000000000000000000000000162b40556b8095aac0c4af9a856f5a45301a05000000000000000000000000000000000000000000000000000000000000000000000007121d242933363b3f42434443423f3b363329201c1308000000000000000000000012273c51677d80808080808a8380808074604b36200b20354b6073808080828a80808080807c67523c27120000000000000000000000070b171e212e373b474c5460666f788088929ba2acb4b9c6cac7a08b76604b36210b000000000000000000000000000000000000000000081d3144556e8398aec5c4af9a846f5847331f0a00000000000000000000000000000000000d22374b5d70859bb0c3b9a8947f6a5544311d080000000000000000000000000000000000000000000a1f3447596d8298adc0c2ac97816c56453245566c8197acc2c1ad98826d5948341a0a000000000000000000081d314455677d92a4b6c9b49f8a76614c3727150100000000000000000000000000000000000000000000000002152737576c817e766e67615754504c473b4543424339464b515f677d91a2b4c8c4ad98826d583727150100172c41566c8196abc1c4af9a846f5a36261401000000000000071c30435472879db2c7bca7917c67523c271200000000000000000011263b51667b90a9bac8ab96816c563b2b3b566b8196abc8baa9917b66513c2611000000000000000000000000000000000000162b40556b8095aab8b8af9a856f5a45301a0500000000000000000000000000000000000000000000000000000000000000000002101b222f3839464b5054575859585754504c46393530251810020000000000000000001024394d5f676b6b6b6b6b756d6b6b6b605544311d081d314455606b6b6b6d756b6b6b6b6b675f4d392510000000000000000002090f1a212933363f4b5059626a737c848c969ea7b0b4c0c9c9bcb4afa98b76604b36210b0000000000000000000000000000000000000000000115273751667c91a7b9cab49f8b77614c37210c0000000000000000000000000000000006192b3c4f647a8fa3b4c9b49e8a76614c3727150200000000000000000000000000000000000000000005182a3b4f64798ea2b4c9b39e8975604b364b6075899eb3c8b4a38f7a644f3b2b18000000000000000000011527374b6073879cb2c2bcab97816c58473319090000000000000000000000000000000000000000000000000000092a3e52636c696158514c46393b37342a2f2e2d2e283236414d5f70859ab0c5c7b29c87725544311d0800172d42576c8297acc1c4af99846f5a36251300000000000000001325365b71869bb0c6bda7927d68523d2813000000000000000006192c3c576c8196acc7bbaa917b66513c263b51667b90aabbc7ac97816c573d2c1a060000000000000000000000000000000000162b40556b8095a3a3a3a39a856f5a45301a0500000000000000000000000000000000000000000000000000000000000000000614202d36404c51576165696c6d6e6d6c69666157514a43362d20140600000000000000000a1d30414d51565656565660585656564b4437271502142637444b56565658605656565656524d41301d0a000000000000060a161e212d3639464c535d656e777f8791999fabb3b8c5c8c2b5b1ab9f9a928a74604b36200b000000000000000000000000000000000000000000000b20364b6075899eb3c9bbaa927d6853392917030000000000000000000000000000000b2035495a6e8398aec1bcab96816c584733190900000000000000000000000000000000000000000000000d22364a5c70859ab0c3b9a7927c67523b52677c91a7b8c4b09b85705c4a361d0d000000000000000000081d314455687d92a4b6cab59f8c79634e3a2a170000000000000000000000000000000000000000000000000000000f2234455257534c473a36332926221f181a191819161e21304153697e93a8becab49f8a75604b35200b001a30455a6f859aafc4c6b09b86715443301c0700000000000005192b3c5c72879cb1c7bca7917c67523c271200000000000000000c2035495a72879cb2c7b49f8a76614b3621364b61768a9fb4c7b29d87725b4935210c0000000000000000000000000000000000162b40556b808e8e8e8e8e8e846f5a45301a0500000000000000000000000000000000000000000000000000000000000000071524313e4a4f5e666f767b7f81838383817f7b766f6660544a3e322516080000000000000001122330393c40404040404a434040403631271909000919263135404040434a40404040403c393023130100000000080e19202832363e4a4e576169717a838b949da5afb4bcc9c4b7b2aba39b948b847d75615645311d0900000000000000000000000000000000000000000000091d3245566d8297acc6c8af99846f5746331e0a00000000000000000000000000000417293a4d62788c9fb4cab49f8c78634d3a2917000000000000000000000000000000000000000000000000071b2d3e51677c91a5b7c5af9a846f5948596f8499afc5b7a6917c67523e2d1b000000000000000000021527384b6074879db2c3c2ae99846f5b49351c0c000000000000000000000000000000000000000000000000000000051727343e423e37332a211e17100c0b0400030300030913263b50657b90a5bacebbaa8c77614c37220c00192e43596e8398aec3c8b39e8974604a35200d0000000000000b2034485a73889eb3c8baa5907b65503b261000000000000000000d23384d62788da5b6c5b09b85705746331e32465770859ab0c5b6a58d78634e38230e00000000000000000000000000000000000c22374c617779797979797978624d38230d0000000000000000000000000000000000000000000000000000000000000005152533424e5c64717b848a9094979899989794908a847c72645c4f43332616060000000000000005121d24272b2b2b2b2b352e2b2b2b201d150900000009141d202b2b2b2d352b2b2b2b2b27251d130500000003111c232c3538454b525c646c767e868f989faab2b7c3c5b9b3aca69d968e867f776f6861574638271502000000000000000000000000000000000000000000000215283850667b90a8b9c9b49f8a76614c36210c00000000000000000000000000000a1f3346586c8196abbcc1ae99836e5a49351c0c000000000000000000000000000000000000000000000000001020354b6074879db2c6b49f8b77624d62778b9fb4c7b29d8774604b352010000000000000000000091d314556687d92a5b6c9b5a4907b65503d2c1a00000000000000000000000000000000000000000000000000000000000917222a2c29211f170c0a03000000000000000000000f243a4f64798fa4b9d8c7a28c77624d37220d00182d42586d8297adc2ccb8a78e79644e3c2b1a0e06000100081325364d62778da6b8cbc3a48f7a644f3a240f000000000000000215273853697e93a8c3c6aa95806a553929172839556a7f95aac6c3a9937e695438281602000000000000000000000000000000000b1f34475961636363636363625a4835200b00000000000000000000000000000000000000000000000000000000000001132333435060697a8590999faaa9acadaeadaca9aa9f9991867a696150443324140100000000000000010a1012161616161620181616160b0802000000000001080b1616161820161616161612100a010000000011212f383c494d5660677079828a939ca4adb4bbc8bbb4aea79e979088807971696259524b4639291a0a0000000000000000000000000000000000000000000000000b20364b6075899eb4c9baa9917c67523c271200000000000000000000000000011527374c6176899eb4c9b5a38f7a654f3c2c190000000000000000000000000000000000000000000000000000081d314455697f94a8babcab947f6a556a7f94aabbbaa9947f6a5544311d080000000000000000021528384b6074879db2c3c4b19c86715d4b381f0f000000000000000000000000000000000000000000000000000000000000050f1517140c0a040000000000000000000000010a16283950667b90a5bbcebaa98b76614b36210c00182d42586d8297adc2d5c5ab96816b5a48382b20191816171b22304354687d93a8c5cab6a58c77614c37220c00000000000000091d3145566f8499aec4b9a88f7a654f3a2510253a4f647a8fa8b9c4af99846f5645321e090000000000000000000000000000000004182a3b474c4e4e4e4e4e4e4d483c2b19060000000000000000000000000000000000000000000000000000000000000f1f314250616a7e8c9ba3aeb4bbc8c1c2c3c2c1c8bbb4afa39b8c7f6b625042311f0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081c2f3f4b505a636b757d858e979ea8b1b5c2c0b4b0aa9f999189827b736b635b544d483b3633291b0b00000000000000000000000000000000000000000000000000081d3144556f849aafc4c7ac96816c57412c1700000000000000000000000000081d314455697f94a8b9c3b09b85705d4b371e0e0000000000000000000000000000000000000000000000000000011426374c61768a9fb4c9b29c87725d72869cb1c8b49f8a77614c372715010000000000000000091d324556687e93a5b7cab8a6927d68533f2f1c0100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000308141c283245576b8095aac0c9b49f8a745746321e0a00172d42576c8297acc1d7c9b49f8a786256483c352b2d2c2d2e37424a6072869cb1c6c7b29d87725947341f0b000000000000000b20364b6075899eb4c9b49e8975604b36200b20354b6075899eb3c9b49f8a75604b36210b00000000000000000000000000000000000c1d2a343739393939393938352b1e0e000000000000000000000000000000000000000000000000000000000000061a2c3d4e606a7f939faab5c1c9c9bcb5b3b1b3b5bcc9cac1b5aa9f94806b604e3d2d1a070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23384b5d656f788088929ba3acb4b9c2b6b1aaa29b938a837c756d6560544e4a3d37342b211e170b00000000000000000000000000000000000000000001080b080102152737566b8095abc0c5b09b86705b362614010000000000000000000000000b20354b6074879db2c6b7a5917c67523f2e1b00000000000000000000000000000000000000000000000000000000091f3347586c8197acc0b6a48f7a657a8fa4b6c0ac97826d58473319090000000000000000021628384b6075879db2c3c7b39e8875604b36201100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a161e263038454b6075889db2c8c6b09b86715b3929160300172c41566c8196abc1dac9b7a69b8574625a4d493c4241423f4b4f606a7f95a4b6cac4ad98836e583b2a18040000000000000010263b50657b90a8b9c4ae99846f5544311d081d3144556e8499aec3baa9907b66503b26110000000000000000000000000000000000000c181f222424242424242320190e000000000000000000000000000000000000000000000000000000000000000c2136495b687e929db4bbc8c3b7b2ab9f9e9c9e9fabb2b7c3c8bbb49e937e685b4a36211200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010253b50657b848c969ea7b0b4c1b8b3aba49c958d857e766e676056504a4336362d2220180d0a0300000000000000000000000000000000000000000008141c201c141b17293e53697e93a8bec8b39e88735443301c080000000000000000000000081c2e3f52677d92a6b7c6b29d8774604b352010000000000000000000000000000000000000000000000000000000000417293a4e63798ea2b3c3ac97826d8297acc2b4a28e79634e3a2a17000000000000000000091e324556697e93a6b7cbbaa995806a5645321d090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c181f283236434b56606c8197a6b7cbc0ab96816b56412c160000162b40566b8095abc0cfbcab9d889b85786b625a59575657595d656f7e8d9fb4c2cbb8a6927d67523d27120000000000000005192b3b566b8196abc6c4a9947e69543727150215273754697e93a9c4c7ab96816c563c2b1905000000000000000000000000000000000000040b0c0e0e0e0e0e0e0d0b0600000000000000000000000000000000000000000000000000000000000000081c2f3f4e63798b9fb4bccebfb3a59d938b8887888b939da5b2bfcebcb49f8b79634e402f1c0900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a2f445a6f84999fabb3b8bab4ada69e968f877f7870686158514b4538353025211a0f0b050000000000000000000000000000000000000000000000081826303530263029334154697f94a9beccb8a78a75604b35200b00000000000000000000000e23374b5d71859bb0c4b9a8947f695544311d0800000000000000000000000000000000000000000000000000000000000c2135495b6f849aafc3b49e8a77899eb3c3af9a846f5b4a361c0c0000000000000000031628394b6075889db3c4c9b49f8a77624c38281502000000000000000000000000000000000000000000000000000000000000000000000000000000000000070e19212a3438454b5460677481979fb1c4c7b4a28f7a644f3a240f0000152a3f546a7f94a9bfcab59f8c798e9b898078726e6d6b6c6e737a84939fabbccfc2b39d8875604b36200b000000000000000b2034485971869cb1c6b8a68e79634e39240e000e23394e63798ea6b7c7b19c87725a4835200b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23384c5d6f849aa9bacdc0b3a199877e77737173767e8798a0b2c0cdbaa99a85705e4c38240d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a2f445a6f8499afbcc9baa99f989088817a726a625a534c473a363228201c1308070000000000000000000000000000000000000000000000000001142636434b4336453a464c5f6f849aafc4cab49f8a755443301c080000000000000000000006192c3c50657a8fa3b5c8b39e8976614c372715010000000000000000000000000000000000000000000000000000000000061a2c3d51667b90a4b6b9a89e899ea7b9b6a5917c66513d2d1a000000000000000000091e324557697e94a6b7cbc0ad97826d5947341a0a000000000000000000000000000000000000000000000000000000000000000000000000000000000007101b222c353a474c566068737c86979fb1bdcdbaa99a84705c4a36220d000012283d52677d92a7bccfbcab8b74869b9e968d888382818284888f99a1b4bcc9c7b5a4957f6a5645311d09000000000000000d22374d62778ca4b5c8b39d88735b4a36210c000c2136495b73889db2c8b6a48d78624d38220d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004182a3b50657b90a2b4c7c7b4a29983766961585c586168768298a2b4c7c7b4a2907b66513b2b1905000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a2f445a6f8499afc4c9b49f8b827b746c645c554d493c37332a211e160b0700000000000000000000000000000000000000000000000000000000081c30435460545c5b5a58616b7d91a2b3c7c7b29d87725d36261401000000000000000000000c2135495b6e8399aec1bbaa96816b5746331909000000000000000000000000000000000000000000000000000000000000000f20354a6073879cb2c6b9a89fa8b9c5b29d8773604b35200f0000000000000000031629394b6075889db3c4c2b4a28e79634e3b2a1800000000000000000000000000000000000000000000000000000000000000000000000000000000030f1a212d363c494d59616a757e87919ca4b1bdcebbb49f8b79644e3e2e1b07000010253b50657a90a5c5d6b7a28c777b90a0aba59d99979697999ea6afb3bfcfc5b9a99c8674604b382715020000000000000114263753687d92a8c2c2ad98836d583d2d1a0700061a2c3d586d8298adc2c2a8937e68533727150200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1f3447596f8499afc0cdbaa99a847461584c473a474c576173849aa9bacdc0af9a846f594834200b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a2f445a6f8499afc4c7b19c877971696259534c4639363127221b100c060000000000000000000000000000000000000000000000000000000004182a3a4b60737371706f7176808c9fb4c0d0c0ad98836e58432e190000000000000000000004172a3a4d63788c9fb5cab49f8b78624d3929170000000000000000000000000000000000000000000000000000000000000000071c304354697e93a8b9c6bab4bac6b9a8937e695443301c0800000000000000000a1e324657697f94a6adadadad9a846f5b4a361d0d0000000000000000000000000000000000000000000000000000000000000000000000000000000a161e2d363e4a4f5b636c778088939ca5b1b6c2c7bab49d937e695c4a3620100000000d22384d62788da7b9ccb9a48f7a6d8297a1b4b2aeacabacaeb3b8c4c7cac2b5a79e8b7a645645321a0a00000000000000081d3144556e8398aec3c2a7927d68523d281300000012283d52677d92a7c2c3ae99836e5544311d0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c22374c61778b9fb4cac9b49f8a786256463a332a3339465562778a9fb4c9cab59f8c77624d37220d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a2f445a6f8499afc4cab6a49c8e867f776f686157514b4437372e2321190e0a04000000000000000000000000000000000000000000000000000a1f334758738988868585868b959faabbcec4b4a2907b65503b2610000000000000000000000a1f3347586c8197abbcc0ad98836e5a48351b0b0000000000000000000000000000000000000000000000000000000000000000001325364b6176899eababababababab9e8976614c3626140100000000000000000c21364b617688989898989898907c66513d2d1a0000000000000000000000000000000000000000000000000000000000000000000000000000010f1b28323d4a4e5c646e78818a959ea7b2b6c3cac3b7a99f937f6a604e3d2d1a020000000b2035485a74899eb3c9bda8927d687483969faab4bac7c1c3c4c2c1c2b6b1a49c897b655c4a38281500000000000000000b20354b6074899eb3c9b6a48d77624d38220d0000000d22374d62778ca4b6c9b49e8975604b36200b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013283d53687d92aabbcec2ab96806b5a4838291f181f293748596b8096abc2cfbcab937e68533e2913000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a2f445a6f8499acb4b9c2b6b1a49c948b847d766e6660554f4b3f38352c221f180c0903000000000000000000000000000000000000000000000c22374c61778c9e9b9a9a9b9faab4bbc8c4b7a69a8472604a35200b000000000000000000021527384c61768a9fb4c9b4a28f7a644f3c2b1900000000000000000000000000000000000000000000000000000000000000000000081e3246576c81959595959595959595816c574633180800000000000000000010253a50657b828383838383838172604a35200f0000000000000000000000000000000000000000000000000000000000000000000000000003111f2c39454b5b636e7a838c979fa9b3b8c5cac8bbb4a59d8b7e6a615042311f0f0000000005192b3c5a70859aafc5c1ac97826c6073808c989fa9abadafafadaba8a49c928679655d4b3e2d1a0a000000000000000010253a4f657a8fa7b9c7b19c87725a4834200b0000000b2034485971879cb1c6b9a88f7a65503a25100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002162838586d8398adc8cab6a48e79634e3c2b1a0b040b192b3b4e63788da4b5c9c9ae98836e5939291703000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000172d42576c818e979ea8b1b5c2b5b1ab9f9a928a837c756c645d554d493c37342a211e160b0801000000000000000000000000000000000000000f243a4f64798fa4b1b0afb1b4bbc8c9bfb3a69d8878625443301c07000000000000000000091d3145566a7f94a8bac3b09b85705c4b371e0e00000000000000000000000000000000000000000000000000000000000000000000031629394d627880808080808080808078624d392917000000000000000000000e23374b5d656d6d6d6d6d6d6d6c605443301c070000000000000000000000000000000000000000000000000000000000000000000000000311212f3d4957606b79838e999fabb4bac7cccabfb2aa9f96877a68605043332414010000000000162b40566b8095abc6c7b29c87725b606b79838a9195989a9a9896938d877d73635b4b3f2e200f000000000000000004182a3b556b8095aac5c8ac97816c573c2b190500000005182b3b576c8196acc8c6ab95806b563b2b1805000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091e32455672879cb2c7c7b19c87725b49351d0d0000000d2135495b71869cb1c6c7b29d87725746331e0a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3e52636c79828a939ca4adb4bbbcb4afa99f989188817a726a635b544c473a363228201c140801000000000000000000000000000000000012273d52677c92a7bcc0c1c0bfc6b9b4ada199887a645a49362513000000000000000000000b20364b6074889da0a0a0a5917c66513e2e1b0000000000000000000000000000000000000000000000000000000000000000000000000b2035485a626b6b6b6b6b6b6b6b6b625a48351b0b00000000000000000000081c2e3f4b5058585858585858574a433625130000000000000000000000000000000000000000000000000000000000000000000000000010212f3f4b5b6375808c99a1aeb4bcc9cdc9bcb5aea1998c8075645c4e423325150600000000000010253a50657a8fa8b9cab6a58e79634e5b636e767c8083848483817e78726860544a3d2e21110100000000000000000b1f34475971869bb0c6bbaa917c66513c2711000000000011263c51667b91aabbc6b19b8671594834200b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b21364b60758a9fb4cac2ac97826d573d2c1a00000000061a2c3d576c8297acc1cab59f8b76614b36210c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f223545525c646c767e868f989faab2b7c3bab4aea79e978f87807870696159524b45393530261c140800000000000000000000000000000000152a40556a7f95a6a9abababaaa8a89e988f8377645c4a3c2b18080000000000000000000013283d52687d8b8b8b8b8b8b8773604b35201000000000000000000000000000000000000000000000000000000000000000000000000005192b3c484d5656565656565656564d483c2b1900000000000000000000000011212e373a434343434343434235302518080000000000000000000000000000000000000000000000000000000000000000000000000d1d2e3f4b5d657986969faab3bfcacdc8bbb4ab9f998e83796b61574b3e31241507000000000000000b20364b6075899eb3c9c3ab96816c584a4e5861676b6e6f6f6d6c68625a524b43362d1f11030000000000000000000c22374c61778b9fb5cab49f8b76614c36210c00000000000c21364c61768a9fb4cab5a38c77624c37220d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23384d63788dabbccfbea9947e69543f2914000000000014293e54697e93a9becfbcab8e79634e39230e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051727353e4a4e576169717a838b949da5afb4bcc5b8b3aca59c958d857e776f676057504b433630261808000000000000000000000000000000172d42576c818d919495969695938f89837a6e62594a3e2d1e0e00000000000000000000000b20354b607375767676767674605443301c08000000000000000000000000000000000000000000000000000000000000000000000000000e1e2b353840404040404040404038352b1e0e00000000000000000000000003111c23252e2e2e2e2e2e2e2d201c130800000000000000000000000000000000000000000000000000000000000000000000000005182a3b4b5d657b8a9ca4b4bbc8ccc6bab4aa9f978c837a6e635b4b46392e2014060000000000000000081d3144556d8297adc1c9b49e8a76614c3f474c5156585a5a5856534d493c353026180f010000000000000000000013253652677d92abbcc5b09b85705846331f0a00000000000a1e33465770859bb0c5c2a7927d685236261401000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010253a4f657a8fa4c9d9bba6917b66513c2611000000000011263b51667b90a6bbdac9a5907b65503b2610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000917202d3639464c535d656e777f8790999fabb3b8c5c3b6b2aaa39b938b847d756d6560544b43362614010000000000000000000000000000152a3e52636c787c7f808181807d7a756e655d4d483b2d2010000000000000000000000000081d314455606060606060606055443626140100000000000000000000000000000000000000000000000000000000000000000000000000000e1920222b2b2b2b2b2b2b2b2b2320190e000000000000000000000000000000080e1018181818181818170b0700000000000000000000000000000000000000000000000000000000000000000000000000000b1f344759657b8a9ea8b6c2cec5b9b3a89f968b82796e645c4e4a3d32281b1002000000000000000000021527374f647a8fa3b5c9b9a897816c5d4b3c373c4043454543413e38352b201c14080000000000000000000000071c3043546d8398adc9c7aa95806b553a291704000000000003172939556a8095aac6c3ad98836e5443301c08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263b51667b90a6bbcfbaa58f7a65503a2510000000000010253a4f657a8fa4bacfbca6917c67513c27120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010f1a212933363f4b5059626a737b848c959ea6b0b4c0c7c1b5b0aa9f999289827b746b605443301c0800000000000000000000000000000f223545525a6267696b6c6b6a686560564f4b3f342b1d100200000000000000000000000001152737444b4b4b4b4b4b4b4b443727180800000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d1616161616161616160d0b06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071a2d3d4c6277899ea8b9c6c9bcb4a79e958a81786d635b4f4a3e362d1e160b0000000000000000000000000922374b5d71869bb1c1c6b49f8c7b655a483b2e2b2e2f2f2e2c292320190e08010000000000000000000000000b20354a6074889eb3c8baa9907a65503b25100000000000000010253a50657a8fa8b9c8b39e8974604b35200b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012273c51677c91a6bcceb9a48e79644f39240f00000000000f24394e64798ea3b9cebca7927c67523d271200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070b171e212e373b474c5460666f788088929aa2acb4b9c6c8bbb4afa89e9890888073604b35200b0000000000000000000000000000051727353c494d515456565655534f4b4538372e20180d000000000000000000000000000000091927313536363636363636312719090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070b0e11141618181918171614110e0b08020000000000000000000000000c21364a5b6e8399a7b8c6c6b9ab9f968980776c625a4e493d362d211a0f0300000000000000000000000000081b2e3f51667c91a3b4c7bcab9d887862594b3e32281d151817130d0b060000000000000000000000000000000f243a4f64798fa6b8c9b49f8a75604b36200b000000000000000b20364b6075899eb4c9b8a78f7a644f3a250f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012273c51677c91a6bcceb9a38e79644e39240f00000000000e24394e63798ea3b8cebca7927d67523d2812000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a111c232a3436434b515a626b757d858e979ea8b1b5c2c9c6b9b4ada69d8b75604b36210b00000000000000000000000000000009171e2b35383c3f404141403e3a363127221b1005000000000000000000000000000000000009151d20212121212121201d15090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0c131c202327292c2d2e2e2e2d2c292624201d15100b070000000000000000000e24394e63798ea1b2c5c8b9a89e8d81766a61584d483c352c221b1007000000000000000000000000000000001024384c5e70859ba9bac9b8a69c8778645c4b45383127201c14110e0b08010000000000000000000000000417293a556a7f95aac5c4af9a846f5645321d0900000000000000081d3144556f8499afc4c5aa95806a553a2a17040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263c51667b91a6bbcfbaa48f7a654f3a251000000000000f253a4f647a8fa4b9cfbca6917c67513c2712000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080d181f2630353c494d56606770798189939ca4adb4bac7c9c4b7a08b76604b36210b00000000000000000000000000000000000e192023272a2b2c2c2b2825201d150a08000000000000000000000000000000000000000001080b0b0b0b0b0b0b0b080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c171f21253035383c3e414243444342413f3c3936312725201c130801000000000005182a3b576c8197acbfcebbaa9e8a7b6c61584c473a342b211a0f07000000000000000000000000000000000000091d2f404e63798b9fb4bec4b6a59c887a6b60564b45383530262623201d1514120c0300000000000000000a1f33475870859bb0c5c5a9947f695438281502000000000000000215273754697e94a9c4c5b09b85705847331f0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010253b50657a90a5bacfbba5907b66503b2611000000000010263b50657b90a5bad0bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000508141c202b3538454b525b636c767e868f989fa9b2b7c3b5a08b76604b36210b000000000000000000000000000000000000060b0d12141617161513100b0902000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040f1a212a333736434a4d51545657585958575654514e4b44373a3530251d1409000000000b1f34475972879db2c7cab49f8c7b655d4c463a332a20190d060000000000010000000000000000000000000000001221364a5b6a7f94a0b2c0c3b6a69d8b80746860564f4b43363b383531272a27201507000000000000000c21374c61768b9fb4cab8a78e79644f39240f0000000000000000000f24394e64798ea6b8cab49f8b77614c37210c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23394e63798ea3c4d4bda8937d68533e2813000000000013283e53687d93a8bdd5c5a38e79644e39240f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080e19202832363d4a4e576168717a828a949da5aeb4a08b76604b36210b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0c0e0f101111100e0b090200000000000000000000000000000000000000000000000c171f2d363a474c5354606366696b6d6d6e6d6c6b6966636055554f4a4336312619090000000d22374c62778ca5b6cac1ac97816c5d4c3f33291f170c0500000000050b0d160b0902000000000000000000000000071a2d3d4a60728298a2b3bfc4b7a99f95877e756c64605454504d4b44373f3c3225150300000000000012273c52677c91aabbc8b39e8874604a35200b0000000000000000000b20354a6074889eb3c8bcab927c6752362513000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c21364c61768ba6b7cbc1ac96816c573b2a180500000004182a3a566c8196abc1ccb8a78c77614c37220c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060a151d202d3639464b535d656d777f8790999fab8b76604b36210b0000000000000000000000000000000000040b0c1111111111111611111111111111111111111111110b09020000000000000001080b151515151515150d0b060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c0e15171f2123252626262523201d150a0f0500000000000000000000000000000000000002101c2a333d4a4e5861686e74787c7e818283838382817e7b7975706b6560544b443726140100000f24394f64798ea4c3d3baa48f7a654f3f2f1f170c0400000000000d181f222b201d150a0000000000000000000000000f1c3043546074849aa1b1bdc7bab4a59d9388817a746e6a666360555c544f4332200c0000000000071a2d3d586d8297adc8c0ae98836e5443301c07000000000000000000071c3043546e8398adc0c9ad98826d5443301c070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1e33465773889db2c8c5b09b85705947341f0b0000000a1f34475970859ab0c5c8b39e88735947341f0a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002090f1a212933363f4b4f59616a737b848c958b76604b36210b000000000000000000000000000000000c181f222727272727272b2727272727272727272727272727211e160a000000000009141d202a2b2b2b2b2b2b2320190e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080f1a21232a293337393a3b3c3b3a383631272a221709000000000000000000000000000000000512202e3a474c5b636d777d84898d91939697989998979694918e8985807a736b605544311d08000010263b50657b90a5bacbb6a18c76614c37211104000000000004111d2a3437403631271a0a0000000000000000000000001325364556617583979fb3b8c5c3b7b2a79e968f89837f7b7875737169614f3c271200000000000c21364a5b73889dabababa8937d6853362513000000000000000000000013253653687d92a8ababab9d8874604a35200b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003172939596f8499aec4cab49f8b77624c3929160700071628394c61778b9fb4cac4af9a846f5a3a2a1804000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070b171e212e373a474c5460666f78808875604b36210b0000000000000000000000000000000c1d2a34373c3c3c3c3c3c403c3c3c3c3c3c3c3c3c3c3c3c3c3c3632281a0a00000009192631353f40404040404038352b1e0e000000000000000000000000000000000000000000000000000000000000000000000000000000000009141d202c35383f3a474c4e4f5051504f4d4b45383e342717050000000000000000000000000000041223303f4b58616c79828a92999ea7a6a9abacadaeadacaba9a6a99f9a958f878073604b35200b000010253a50657a8fa5bacbb5a08b76604b36210b00000000040c181f2f3b474c564b45382719090000000000000000000000081828384657617381919ea7b4bbc8c5b8b3aba79e9994908d8a88867f69543f2a1400000000000e24394e63798e95959595958d78624d38230d00000000000000000000000d22384d62788d95959595958e79644e39240f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000142a3f54697f94a9c1cfbcab937e69574632221b181a21324557697e93aabbcec2aa947f6a553f2a15000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a101b222a3436434b515a626b7572604a35200b000000000000000000000000000004182a3b474c5151515151515651515151515151515151515151514b45382816020001142637444b555555555555554d483c2b190600000000000000000000000000000000000000000000000000000000000000000000000000000112192631353d494e5559586163646566666563605657524534220f0000000000000000000000000001122330414d5d6476818c979fa9aeb3b9c5bec0c2c2c3c2c1c0bec7bab4afaaa69c87725544311d0800000e24394e63798ea3c4d4b7a28d77624d3822130d0c0d10181f2a33404c59626b6056453727190900000000000000000000000a1a28394655606c7c89979faab4bac6c8c5b8b3aea9a5aa9f9d95806a55402b1500000000000f243a4f647a8080808080807f6a5a4935200c00000000000000000000000b2035485a6a7f8080808080807a644f3a240f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23394e63798ea3b5c9c9b39d8875614b43362d2d2d36434b6075889db3c8cab6a48e79644e39240f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080c181f2630353c484d5660605443301c0700000000000000000000000000000b1f344759616666666666666b6666666666666666666666666666605645321e0900081d314455606a6a6a6a6a6a6a625a4835200c0000000000000000000000000000000000000000000000000000000000000000000000000008141c2f37444b535b636a6f7376787a7b7b7b7a7875716c63523e2a15000000000000000000000000000f2030414d5f677b87979faab4bac7c9c6c7bab4b1afadadadaeb0b3b9c5c1c4ac97816c573726140100000d22374c62778ca6b7cbbca6917c6751403125222122252a333a474c5e657780746055443727190900000000000000000000000b1b2837444b5f6777818b979fa8afb4bbc8c6c3bfc8bbb4a8937d68533e281300000000000d22364a5c646b6b6b6b6b6b6a61503c2c1906000000000000000000000005192b3c50616a6b6b6b6b6b6b645c4b37220d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c2135495b71869bb1c3cbb8a697816c614e4a3e423d4a4e616c8196a6b7cbc3b19c86715c4a36210d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000408141c202b3538454b4a433625130000000000000000000000000000000c22374c61777c7c7c7c7c7c807c7c7c7c7c7c7c7c7c7c7c7c7c7c74604b36210b000b20354b60737f80808080808078624d3a2a1704000000000000000000000000000000000000000000000000000000000000000000000009182630404c55606871787f84888c8e8f9091908f8d8a87816c57422c170200000000000000000000000a1a2d3e4d5f677d8c9da6b4bbc8c8c2b5b1aaa99f9c99989798999b9ea7a7acb3ab917c67513c27120000000b1f34475973889db2c8c3ae99836e5e4e423a3837383a3a474c58616c7b889583736055443727190900000000000000000000000b192731414d59616c79818a939a9faaacb1b4bbc8bebba6907b66513b26110000000000071b2d3e4a4f565656565656555043331e0e000000000000000000000000000e1e334350555656565656564f4b3e2e1b0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061a2c3d53687d92a5b6cac4b19f947f6f645c5957595c646e7f949fb0c4cab7a5937e68533e2d1a070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080e1920273136353025180800000000000000000000000000000011263b50667b90919191919195919191919191919191919191918c78624d37220d00081d3144556e83959595959595816c5847331f0a0000000000000000000000000000000000000000000000000000000000000000000009192636434b5e66737d868d94999da6a3a4a5a6a5a4aa9f9c8a75604a35200b00000000000000000000031628384a5c677d8c9faab7c4cec1b4b0a49c948e8a86848382838486898c91979d9f8b76614c37210c00000005182a3b586d8297adc2c7b3a1917c6860544f4d4c4d4f5358616a7781909da199837360554437261401000000000000000000000009151d303a474c5b636c767e858b92979b9faaa6a9aba38e79644e39240f00000000000010202d363a404040404040403c3325150000000000000000000000000000001525333c3f4040404040403a372e20100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f20364b6074879cb2bdcebdaf9d948379726e6d6e727983949daebdcdbdb29d8775604b36210f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060a151d20201c13080000000000000000000000000000000011263b50667b90a5a6a6a6a6aba6a6a6a6a6a6a6a6a6a6a6a6a28c77624d37220d00011426374f647a8fa2aaaaaa9f8a76614c382715020000000000000000000000000000000000000000000000000000000000000000011426374454606b7c86939ca4aaaeb2b7c4b9babbbbc8bbb49f8a75604a35200b00000000000000000000091e324556647a8a9faabbc8c8bbb4a39b90867f7975716f6e6d6d6e7074777c82889085715847331f0a0000000011273c51667c91a4b5c9bfb49f8b7d71696562616265696e777f89979fb3b3a1988273605544311d0800000000000000000000000002121c2a343d494e58616970777c81868a8e919495978c77614c37220c00000000000002101b22242b2b2b2b2b2b2a28201507000000000000000000000000000000071520282a2b2b2b2b2b2b24221b1002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091d314556667c909fb1bfccbbafa1998e87848284878e99a1aebbccbfb19f917c665645321e090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002090b0b0700000000000000000000000000000000000011263b50667b90a5bbbbbbbbc0bbbbbbbbbbbbbbbbbbbbbbb7a28c77624d37220d00000922374b5c70859bb0c3baa8947f6a5645311d0900000000000000000000000000000000000000000000000000000000000000000c1d3144556072808d9ca4b1b5c2c4bfc5b8b3b2b1b2b3b4bc9f8a75604a35200b00000000000000000005182b3b4b6075879ca9bac8c7baaa9f94857b716a6460555a585858595b5962676c747b7d67523a2a1704000000000b20354b6073869cb1bccdbaa99f92867e7a7776777a7e848a959ea7b1bdbfb2a0988373604b35200b00000000000000000000000000000c181f2c353a474c535861676c7175787b7e80828372604a35200b0000000000000000070d0f16161616161615130d030000000000000000000000000000000000030d13151616161616160f0d070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021527384c5e6c8196a1b2beccbfb3aea49c9997999ca4aeb3bfcdbfb2a197816d5e4d3828160200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbd0d8cec9b8b8b8b8b8b8b8b8b8b8b8b7a28c77624d37220d0000071b2e3e51677c91a5b6c6b39d8874604b362011000000000000000000000000000000000000000000000000000000000000000c1d31424b607382959fabb6c2c1b5b0a9a4a79e9d9c9d9e9fab9f8a75604a35200b0000000000000000000b203448596b8095a5b6c7c9baa99f8c7e72655d554f4b4437434243443b484d52556066675f4d391c0c0000000000081c304354667c919eb0bec7bab4a49c948f8d8c8d8f93999fa9b3b9c5c5b8b39f978476614b36210c000000000000000000000000000000040e1a212933373a474c525756606366696b6d6e605443301c070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1a2f404b60738398a0b4b9c6c7c2b6b1aeacaeb1b6c2c7c6b9b4a1998374604b40301a0a0000000000000000000000000000000000000000000000000000000000000000080e10202020202020201e19100400000000000000030f181d1f202020202020110f0900000000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbd8c7bab4a3a3a3a3a3a3a3a3a3a3a3a3a28c77624d37220d0000001020354b6073879db2c5b7a6927d68523f2f1c08000000000000000000000000000000000000000000000000000000000004182a3b4e606c8196a0b5bcc0b4afa39b948f8b89888787888a8d918a75604a35200b0000000000000000031628384d62778b9fb4c3cfbcab9f8b7b6960544b3f393531272e2d2e2f2b343737444b50524d41301d000000000000011426364c5e6b8096a0b4bac7c2b5b1a9a4a2a1a2a4a8aeb4bac7c8bbb4a79e918173615746321e0a0000000000000000000000000000000000060c171f212a33373d38454b4e51545657594a4336251300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070b1d2020202020201e0b0801000000000000000000000000000000000000000000000000000000000000000000000000000000000000121d314455607482939ea8b3b8c5c3c6c3c2c3c6c3c5b8b3a89e9383756056453222120000000000000000000000000000000000000000000000000000000000000003111c232535353535353535332d22140400000000000313212c323535353535353526231c11040000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbcebaa99f8e8e8e8e8e8e8e8e8e8e8e8e8e8c78624d37220d000000081c304354697e93a7b9c4b19c86715d4c38230f00000000000000000000000000000000000000000000000000000000000b1f344759687e929fb0bfbbb4a29a8f867f7a76737272727375787b816c56412c17010000000000000000091e3245566b8196a9bacec3b49f8d7c665d4a43362f24201d15191818191820222631353b3c393023120100000000000008182f404a607282939fa9b4bac7c6bebab7b6b7babec3c4c5b8b3aa9f97897c6c6055463929160300000000000000000000000000000000000000040a0c181f2227273136393c3f4042443530251808000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131c203335353535353533201d15090000000000000000000000000000000000000000000000000000000000000000000000000000000000021527374556606e7e89959ea6aaaeb1b2b3b2b1aeaaa79e968a7e72605745382815040000000000000000000000000000000000000000000000000000000000000011212e373a4a4a4a4a4a4a4a483f32221000000000000f21313e474a4a4a4a4a4a4a3b382f22110000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc9b49f8b797979797979797979797979797974604b35200b000000011426364b6176899eb3c8b5a4907b65503d2c1a0600000000000000000000000000000000000000000000000000000006192c3c4c6177899eb3bdbbaa9f94847a716a6461575d5c5d556062666c62513e29140000000000000000000b21364b6075899eb4c7cab6a595806b5e4c3f302518110b080100030300050b0d141d202627251d12050000000000000000121c304354606d7e8b979fa9adb2b7c3b8b9b8c5b8b3afaba79e968b8177665e4b4437291b0b0000000000000000000000000000000000000000000000040a0c12151d202326292b2d2e201c130800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000818253035484a4a4a4a4a4a493531271909000000000000000000000000000000000000000000000000000000000000000000000000000000000009192838454b60687780889095999b9d9e9d9c9995908881776960544539281a0a00000000000000000000000000000000000000000000000000000000000000081c2e3f4b506060606060605f5c503f2d190500000004182c3e4f5b5f606060606060504c402f1c0900000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c867163636363636363636363636363605544311d0800000000081e3246576b8096aabbc2af99846f5b4936210c0000000000000000000000000000000000000000000000000000000c2035495a6d8297a7b9bbaa9f8c7f70645c544f4b46394737444b4d515651443422100e0c0600000000000013253652677c91a8b9ccc4b29c8774604b402f1c1308000000000000000000000001080b1112100a0100000000000000000000132536434a606979828a93989da5a1a3a4a3a2a69e9a95908981786c61584d403127190b0000000000000000000000000000000000000000000000000000000002090b0e11141618190b0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000132536434a5d6060606060605e4b443727150100000000000000000000000000000000000000000000000000000000000000000000000000000000000a1a2832424e59616b747b8083868888888684807b756b62594a4336281b0a00000000000000000000000000000000000000000000000000000000000000000e23374b5d65757575757575756e5c48331e09000000081d32475b6d74757575757575665e4c38230f00000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c4e4e4e4e4e4e4e4e4e4e4e4e4b443727150100000000031629394d62788b9fb4c9b59f8c79634e3b2a180400000000000000000000000000000000000000000000000000021628384d63788c9fb5c0b49f8c7d69614f4b3e3a36332932263135383c413e3425252523211a0f01000000071c3043546e8398aec6cbb7a6927d6756453222120000000000000000000000000000000000000000000000000000000000000008182530424f5b636d777e83878b8c8d8e8e8d8b8885807b746c625a4c473a301d150900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c304354607275757575757573605544311d080000000000000000000000000000000000000000000000000000000000000000000000000000000000000a161e313b474c5560656a6e71727372716e6b6560554c483b3025180a00000000000000000000000000000000000000000000000000000000000000000010253a50657b8a8a8a8a8a8a8c755f4a35200a0000000a1f354a5f748b8a8a8a8a8a8a7c66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47393939393939393939393935312719090000000000000b203448596d8298adc0bcab97826d5947341f0a00000000000000000000000000000000000000000000000000091e3245566b8196abbcb4a2947f6a5f4f43373840464848463f36332933363a3a3a3a3a39352c1f0f0000000b20354a6074889eb3c8c8b29d8874604b38281504000000000000000000000000000000000000000000000000000000000000000008131c323d494e5962696d7275777879797876736f6b6560554d493c332a1c1201000000000000000000000000000000000000000000000000000000000000000000000000000000000a10122020202020201d1b140b00000000000000000000000000000000000a141a1c20202020202012100a0100000000000000000000000000000b20354a6073878a8a8a8a8a8a8973604b35200b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000002141d2a3437444b5055595c5d5e5d5c5955504b4437342a1c13080000000000000000000000000000000000000000000000000000000000000000000010253a50657a8f9f9f9f9f9f8a755f4a35200a0000000a1f354a5f748a9f9f9f9f9f907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c473224242424242424242424201d15090000000000000005192b3b4f64798ea2b4c9b49f8a77614c382816020000000000000000000000000000000000000000000000000b21364b6075899eb3c0b09b8572604a413c484d555b5e5e5b544c463a464c50505050504e493d2c1a0600000f24394e64798ea7b8ccc7ab96816b5544311a0a0000000000000000000000000000000000000000000000000000000000000000000000141f2c363b474c53585660626364636260575a56504b4437352b1f180c0000000000000000000000000000000000000000000000000000000000000000000000000000000004121d2427353535353535322f271c0e0000000000000000000000000000000e1c272f3235353535353527251d130500000000000000000000000000071c3043546b81969f9f9f9fa7907b66503828150200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c181f2731353b4044464849484744403b3631271f180d00000000000000000000000000000000000000000000000000000000000000000000000010253a50657a8fa5b5b5b49f8a755f4a35200a0000000a1f354a5f748a9fb4b5b5a5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c0e0e0e0e0e0e0e0e0e0b08010000000000000000000d22364a5c70859aafc2baa995806a5645321e0800000000000000000000000000000000000000000000000011263c51667c91a7b8b4a28f7a645443434a5a626b707373706a61574a58616565656565635b4935210c000013283d53687d92a8c5cdbaa98f7a654f372715000000000000000000000000000000000000000000000000000000000000000000000000010f1a212a34373e38454b4c4e4f4e4d4b4539403b35312720190e040000000000000000000000000000000000000000000000000000000000000000000000000000000000122230393c4a4a4a4a4a4a47433a2c1c0000000000000000000000000000001c2c3943474a4a4a4a4a4a3c3930231301000000000000000000000000001325364f647a8fa5b6b5c5ad97826d5645321d090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000409151d20252b2e31333333312f2b26201d1509050000000000000000000000000000000000000000000000000000000000000000000000000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c070000000000000000000000000000000000000000071b2d3e51667c91a4b6c7b39e8875604b362513000000000000000000000000000000000000000000000005192b3c576c8197acc5af9a84705c4a4354606a7880858888857f76645c61767b7a7a7a7a79634e39230e0001162c41566b8196abc0c9b49f8975604b36200b0000000000000000000000000000000000000000000000000000000000000000000000000000060d181f222928323637383939383632282b26201d1509060000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1d30404d516060606060605d574a3a1e0e000000000000000000000000000d1d394a575c606060606060524d41301d0a000000000000000000000000000822364a5c72879cb2c7c9b39e8975604b36200b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080b1015191c1d1e1d1c1916100b080200000000000000000000000000000000000000000000000000000000000000000000000000000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c070000000000000000000000000000000000000000001020354a6073879cb1c5b8a6927d685443301c07000000000000000000000000000000000000000000000b2034485a72879cb2baa9917c6752424a60727f8b959b9d9d9b94887a64657a8f8f8f8f8f826d58432e1800041a2f44596f8499aec4c5b09b85705645311d0900000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d14151d202223242423211e1616100b080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000001024394d5f677575757575757268573c2b1905000000000000000000000005182b3b576871757575757575675f4d39251000000000000000000000000000071b2d3e556b8095aac2ccb9a7917c66513928160300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c07000000000000000000000000000000000000000000071c304354687e93a7b8c5b19c8673604a35200f000000000000000000000000000000000000000000000d22384d62778da5b6b49f8a76614b4f606c81949faab0b3b3b0a69d8a79657a8fa4a5a598836d58432e1800071c31465c71869bb1c6c2ac97826d5738271502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002090b0d0e0f0e0d0b09030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012273c51677c8a8a8a8a8a8a86725a4835200b00000000000000000000000b2034485971868a8a8a8a8a8a7d67523c271200000000000000000000000000001024394e63798ea4b5c9c5ad98836e5745321e090000000000000000000000000000000000000000000000000000000000000001080b0e121517181919181717161513110f0c0a0300000000000000000000000000040a0c0f111416171818191919191918171513100c0a04000000000000000000000000000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c07000000000000000000000000000000000000000000001325364b6075889eb3c7b6a4907b66503d2d1a0700000000000000000000000000000000000000000011263b51667b90a6c3af99846f574759697e939fb4bbc8c8c7c4b7a89b85727a8fa4baad98836d58432e1800091e33485e73889db3c8bfaa947f6a553f2a150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c21364c61768a9f9f9f9fa48d78624d38220d00000000000000000000000d22374d62778ca49f9f9f9f8b76614c36210c00000000000000000000000000000c21364a5b71869cb1c6c9b49e8975604b36210b0000000000000000000000000000000000000000000000000000000002090b141d2023272a2c2e2e2e2d2d2c2b2a292624211e160b0b0200000000000000030c0b171f212427292b2c2d2e2e2e2e2e2e2d2c2a2825221f18120b09030000000000000000000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c0700000000000000000000000000000000000000000000081e3245566b8095a9bac2af9a846f5b4a36210d000000000000000000000000000000000000000000152a3f546a7f94a9bfaa947f6a554c62778a9fb4bdcec3b6b2adacafa3917c7a8fa4baad98836d58432e1800081d314455748a9fb4c9bda8927d68533d28130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0c111516171919181614100c0a030000000000000000000000000000000a1e33465770859aafb5c3a8927d6853362513000000000000000000000013253652687d92a7c2b5b09a85705846331f0a0000000000000000000000000000071a2d3d556a7f95aac1cdb9a8917c67523929170300000000000000000000000000000000000000000000000000030a161e21263135393d3f4243434343424140403e3c39363229261f1406000000000007142027293336393c3e40414243434444444342413f3d3a37342a27211e160a04000000000000000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c0700000000000000000000000000000000000000000000031628384c62778b9fb4c9b3a28e79634e3b2b18050000000000000000000000000000000000000003182e43586d8398adc5a5907b6550576b8095a8bac9bcb4a59d97979a9f99847b8fa4baad98836d58432e18000b20354b60758aaabbcebba6917b66513c26110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c0e171f21262a2b2d2e2e2d2c2925211e160b09020000000000000000000000000317293954697f94a9c3c3ad98836e5443301c07000000000000000000071c3043546d8398adc2c4a9947f6a543a2917040000000000000000000000000000000f23384d63788da3b5c9c6ae99836e5746331e0a0000000000000000000000000000000000000000000000000b161e28323637444b4e525557585959585756565553514f4b46393a31241402000000031425323b3a464c4f515455575758595959595858565552504c473a3c3632281f170c0000000000000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c0700000000000000000000000000000000000000000000000a1f3448596d8297adc0c0ad97826d594834200a00000000000000000000000000000000000000001325365b71869bb0b8a78c77624c6176899eb3c6bcab9f94878281848b9a8a7b90a5bbad98836d58432e18000b21364b60768ba0b5d8bba5907b66503b2611000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060e1920232a33373b3f4142434342413e3b363229201d150a0000000000000000000000000e24394e63798ea5b7c8b39e8874604a35200b0000000000000000000b20354a6074889eb3c8b7a68e79644e39240f000000000000000000000000000000000c2135495b71869bb0c9c9b49f8a76614c36210c0000000000000000000000000000000000000000000000121b293238454b52556063676a6c6d6e6e6d6c6c6b6a6866646157534e42311f0b0000000c2032434f5458616466696b6c6d6d6e6e6e6e6e6d6c6a6865615958524b453933291c1103000000000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c07000000000000000000000000000000000000000000000005182a3b4e63798ea2b3c9b49f8b77624c39281603000000000000000000000000000000000000071c30435473889db2b39e89735951667c91a8b9c4b49f8d7f736d6c6f7884957f95aabfad98836d58432e18000c21364c61768ba1b6dabaa5907a65503b251000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1a212c35383a474c515456575859585653504b46393632281c1308000000000000000000000c21364a5b72879db2c7b8a78e79644f39240f0000000000000000000f24394e64798ea6b8c8b29d88735c4a36210d0000000000000000000000000000000006192c3c54697f94abbccdbaa9927d68523a2a1704000000000000000000000000000000000000000008131c2f39464b5660676e74797c7f81838383828281807f7e7b79767268604e3a261100000012273b4f61697276797c7e80818283838383838382817f7d7a77726d6760574c463a2e2112040000000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c070000000000000000000000000000000000000000000000000d21364a5b6f849aafc2baa995806b5745321e080000000000000000000000000000000000000b20354a60748a9fb4b19b86715c576c8197acc6b7a695806a6054575a627485959eafc2ad98836d58432e18000b20364b60758babbccfbba6907b66513b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131c2c353c494d565861666a6b6c6e6e6d6b69656157524b45383025180c000000000000000000071a2d3d576c8197acc7c5a9947f6a543828160e0e0e0e0e0e0e0e0e15283854697f94a9c4c8ac97826d573d2d1a0700000000000000000000000000000000000e22384d62788c9fb5cac7af99846f5847331f0a0000000000000000000000000000000000000008182530404c57616a757d83898e929497989898989796959593918e8b877e68533e2813000000142a3f54697f878b8e9193959697989899999998979694928f8c88827c756b61584b3f2f22120000000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c07000000000000000000000000000000000000000000000000071a2d3d50667b90a4b5c7b39e8975604b3626140100000000000000000000000000000000000c22374c61778caabbae99846f595672879cb2c7b29d8774604b433c4856647a8fa4bcc2ad98836d58432e1800091d324556758a9fb5cabca7927c67523d27120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091825303d494e5a636b72777b7f8082838382817e7a766f6860564a43362a1c0e00000000000000000011263c51667b91a9bac4af9a846f56453224242424242424242424243245566f849aafc4bbaa917c66513c27110000000000000000000000000000000000000b2035485a70859bb0c8cab49f8b77614c37210d00000000000000000000000000000000000000132536434a5e66757f8992999ea8a7aaacadaeaeadacababaaa8a6ab9f947f69543f2a14000000162b40566b8095a5a4a6a9aaacacadaeaeaeaeadadabaaa7a5a59d9891898076655d4c402f1d0d00000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c07000000000000000000000000000000000000000000000000000f20354a6073869cb1c4b8a7937e685443301c0800000000000000000000000000000000000e23394e63798ea3c8ad97826d5860758a9fb4c7aa947f6a5544312b384a5c758aa2b4c2ad98836d58432e1800021528385f74899eb4c9bda8937e68533e29130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009192636434a5b636f7880878c909496979898979693908a847d75686054473a2b1e0e00000000000000000c21364b61768a9fb4c9b49f8a75604b393939393939393939393939394b60758a9fb4c9b49f8a76614b36210c00000000000000000000000000000000000005192b3c53697e93aabbcebbaa937e68533b2b18050000000000000000000000000000000003111c304354606b7c88959ea7aeb3b9c6bfc1c2c3c3c2c1c1c0bfbdc9bca6917c67513c271200000013283e53687d93a8c3bbbec0c1c2c2c3c3c3c3c3c2c1bfbdc3b7b2ada79e95887b665e4c3c2b1905000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c0700000000000000000000000000000000000000000000000000071c304354687d92a6b8c5b29c8773604b35201000000000000000000000000000000000000f24394f647a8ea4b9ab96816b5663788eaabbbaa98e79644f37271a2e3e5b70859bb0c2ad98836d58432e1800001d32475d72879cb2c7bfaa947f6a553f2a15000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011426374454606979848c969ca5a6a9abacadaeadaba8a99f9a92887e726158483c2b1b0b00000000000000091e3246576f849aafc4baa9907b65504e4e4e4e4e4e4e4e4e4e4e4e4e50657b90a9bac4af9a846f5746331e0a000000000000000000000000000000000000000e22374c62778b9fb4cac8af9a8570594834200b00000000000000000000000000000000112133434a607280909da6b3b8c5c9c9c1c7bab4b3b1b1b2b3b4bbc8bac6a48e79644f39240f00000010263b50657b90a5c9bebbc9bcb4b3b2b1b1b1b2b3b4bbc8bfc6c7c5b9b3a69d8b7c665a4834200c000010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c0700000000000000000000000000000000000000000000000000001325364b6075889eb3c7b6a4917c66513e2d1b070000000000000000000000000000000010253a4f657b8fa4baaa957f6a55667b90a6c8b49f8a75604b3520182d42586d8297adc2ae99846f59442f1a00051b30455a70859aafc5c2ad98826d583a2917040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091d31445560727e8a999fabb2b6c3bfc0c1c2c2c2c0c7bab4afa69e938476625a483a2917040000000000000316283954697e93a9c3c7ab96806b6363636363636363636363636363636b8095abc7c3a9947e695439291703000000000000000000000000000000000000000b1f3447596f849aafc8cab49f8b77624c37220e00000000000000000000000000000009192e3f50616c81959eb2b7c4ccc6b9b4aca7a99f9d9c9c9d9e9faaa2a5a8a88c77614c37210c0000000e23384e63788dabaca9a6a3ab9f9e9d9c9c9c9c9d9faaa5aab1b6c2ccc4b7a99e8978624d3a2a18040010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c070000000000000000000000000000000000000000000000000000081d3245566a7f95a9bac3af9a85705c4a36220d0000000000000000000000000000000010253b50657a90a5baa9947f6a54677c92a7bcb19c87725443301c1b30455a70859aafc5b3a18a75604a35200002182d42576d8297acc2c7b19c87725846331f0a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091930404b607382939fa9b5bcc9c9bcb5b1aeadadafb2b7c3c9c4b8b3a29a8778625846331f11000000000000000e23384e63788da5b6cab49f8c79797979797979797979797979797979798b9fb4c9b7a58e78634e39230e000000000000000000000000000000000000000005182a3b53687d93aabbcebcab937e69543c2b190500000000000000000000000000011527374b5d6a7f959fafbccbc7bab4a89e97928c8a88878788898a8b8d90939589745847331f0a0000000b20364b60758c999693918e8c8a898787868787888a8c90959ca4b4bac7c7b9a898826d5847331f0a0010253a50657a8fa5bacab49f8a755f4a35200a0000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c070000000000000000000000000000000000000000000000000000021528384c61778a9fb4c9b4a28e7a644f3b2b190500000000000000000000000000000011263b50667b90a5bba9947f6954687d93a8bdaf9a85705a3626141a2f445a6f8499afc4bf9f8a75604a3520000014293e54697e93a9c7cab59f8b76614c36210d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021527374c5e6c8196a0b4bac7c2b5b1ab9f9c9998989a9da5abb4bac7c0b4a59c8676614c3f2f1c080000000000000c2135495b72879cb2c7bbaa9f8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e9fa9bac7b29d87725b4935210c0000000000000000000000000000000000000000000d21374c61768a9fb4c9c9b09b85705a4835200b00000000000000000000000000081d314455657b8c9fb4bdccc3b6a99f9489827c777473717273747575787a7d80806b563a2a1704000000091d324556708484817e7b7977757372727171727375777b8086929fa9bacdc6b49f8a77614c37220c0010253a50657a8fa5bacab49f8a755f4a3520000000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c070000000000000000000000000000000000000000000000000000000a1f3447596d8297abbcc0ad98826d594834200b00000000000000000000000000000011263c51667b91a6bba9947e6954697e94a9beaf99846f5a442f1a1a30455a6f859aafc4b59f8a75604a3520000010253a50657a8fa9bacdbcab907b66513b2a18050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081d314455667c919fb0becdbcafa49c928b8784838384878d969fa9b6c3c3b5a498826d5d4c382310000000000000061a2c3d576c8196acc6c8bbb4a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3b4bac7c7ac97816c573d2c1a060000000000000000000000000000000000000000000a1f3347586f8499afc7cab59f8c78624d38220e000000000000000000000000000b20354b6074869cabbccfc3b6a59c8a7f766c6762595e5c5c5d5e56606265686b6b62513d1c0c00000000021528385566706f6c6966646160545d5c5c5c5d546062656a737d8b9fb4c6cebbaa927c67523d27120010253a50657a8fa5bacab49f8a755f392916030000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c0700000000000000000000000000000000000000000000000000000004182a3a4e63798c9fb5cab49f8b78624d39291603000000000000000000000000000011263b51667b90a6bba9947f6954697f94a9beae99846f59442f1a1b30465b70859bb0c5b59f8a75604a352000000b20364b60758a9fb4c9c9ae98836e5947341f0f000000000000000000000000020c1214110f0a000000000000000000000000000000000000000000000000000000000000000000000000000000000b20364b6074879db2bdccbcaf9e95867d76716f6d6d6f7278818b9da5b6c4c2b2a0907b65503e2d1b0700000000000011263b50667b90a8bacdcecab8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8c9cecdbaa9907b66513b26110000000000000000000000000000000000000000000004172a3a52677d92a9bacdbcab947f69543d2c1a060000000000000000000000071b2d3e53687d92a4b6c9c7b7a59c87796a6158524d483b47474838454b4d50535656514434210000000000000a1a3848555b5a5754514e4c4b433647474736434b4c505460677d92a8b9ccc8ab95806b56402b160010253a50657a8fa5bacebbaa8a755746321e0a0000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c07000000000000000000000000000000000000000000000000000000000c2135495b6f8499afc2bbaa96806b5746321e09000000000000000000000000000010263b50657b90a5baa9947f6a54697e94a9beaf9a856f5a45301a1c31475c71869cb1c6b59f8a75604a35200000091d3245566f849aafc7c9b49f8b77624c3d2c18080000000000000000000006141f262927241d1204000000000000000000000000000000000000000000000000000000000000000000000000000316283852677d92a5b7cac2af9e9580746861585958585a5b636b79879da6b7cbbeb09a85705c4a36220d0000000000000b21364b6075899fb4c9dedfc9bfbcbcbcbcbcbcbcbcbcbcbcbcbcbfc9dfdec9b49f8a76604b36210b00000000000000000000000000000000000000000000000c21364b61768a9fb4c9c9b19b86715b4935210c00000000000000000000000d22364a5c71869cb1c2cdbaa99d8776635b4c463a37342b323233283236383b3e40413d342616040000000000001a2a38424544413e3c39373530263231322630353736434b6074899eb4c9c2ad98826d58432d180010253a50657a8fa5bad9b6a08b76614b36210c0000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c0700000000000000000000000000000000000000000000000000000000061a2c3d50657b90a3b5c8b39e8976614b372614010000000000000000000000000010253b50657a90a5baaa957f6a55687d93a8bdb09b86715b3b2a181e34495e73899eb3c8b59f8a75604a352000000215283853687e93a9bacebbaa957f6a5b49362614040000000000000000041424323b3e3c3930221204000000000000000000000000000000000000000000000000000000000000000000000000091e3245566f849aafc3c9b5a395806b60554c463a43433c494d5b6377889db3c1c8b4a28e79644f39240f000000000000091e3245566f8499aec4d9c9b9aca6a6a6a6a6a6a6a6a6a6a6a6a6acb9c9d9c4af99846f5745321e0900000000000000000000000000000000000000000000000a1e3346576e8399aec6c9b5a38d78634e38230f00000000000000000000000f24394f64798ea4b5c9c7b49f8a7a64584a3d33292220191c1d1e151d202325282b2c29211608000000000000000c1a262d302f2c29262422201c141d1c141c2024273136455672879db2c7c3ae98836e59432e190010253a50657a8fa5baccb7a28c77624d37220d0000000a1f354a5f748a9fb4c9bba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c0700000000000000000000000000000000000000000000000000000000000f23384c5d71869bb1c4b9a7937e695544311d08000000000000000000000000000f243a4f647a8fa4b9ab96816b56677c91a7bcb39e89735948341f16283960758aa7b8ccc29f8a75604a35200000000c21374c61768a9fb4c9c8b49f8b79635443301f180c03000000000006132232424f54514d403023120500000000000000000000000000000000000000000000000000000000000000000000000b21364b60758a9fb4c9c9b19b8673604b443733292e2e2c353d4959667b90a3b4c8c0aa95806b553827150200000000000216283853697e93a8c2d3c6ac9b919191919191919191919191919bacc5d3c3a9937e69543928160300000000000000000000000000000000000000000000000317293952677c91a8b9cdc1aa957f6a553d2d1a0700000000000000000000132536556a8095aac2cdbaa996806b5c4a3a2d1f170d0b0500070002090b0d10131616140e040000000000000000000912191b1a1714110f0c0c131c20242630353937444b5160758b9fb4cac1ac97826c57422d170010253a50657a8fa5bacfbaa5907b65503b2610000000091e324556748a9fb4c9baa5907b65503b261000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c070000000000000000000000000000000000000000000000000000000000081c2f3f52687d92a6b7c5b29d8774604b352010000000000000000000000000000e23384e63798da3c8ac97826d57657a8fa5c6b8a78c77624c37221e324657758a9fc5c9b5a48a75604a35200000000a1f3347586d8298abbccdbaa99b8573604b44332a1e17100d0c0d0f192030404f6069665e4d4130231305000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8faabbc2bcab927d67544331271f17181819212c3b4c5e70859bb0c5c6b19b86715645311d090000000000000d23384d62788da4b6cab9a8917d7c7c7c7c7c7c7c7c7c7c7c7d91a7b9cab6a48d78634d38230e000000000000000000000000000000000000000000000000000b21364b6075899eb4c9c6b19c86715b4a36210c000000000000000000071c30435470859aafc5c9b49f8a77624c3e2d1c0f040000000000000000000000000101000000000000000000000000000004060500090c171f212530353936434b4e545560666f8096aabbcec3aa957f6a55402a150010253a50657a8fa5bacfbfa9947f6a543e2e1a0b03000b21364b60768ba9baceb9a48f79644f3a240f00000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c070000000000000000000000000000000000000000000000000000000000001120364b6074889db2c6b6a5917c67513e2e1b080000000000000000000000000c22374c61778caabbae99846e5962788da8bac5a7927d6752402f27384b61768ba0b6c6b19c86715c47311c0000000417293a4e63798c9fb4c5c7b4a396806b624c473a332925232222242c35414d5e697e7c675f4d413023130500000000000000000000000000000000000000000000000000000000000000000012283d52677d92a7acacac9f8b77614c36261509040000060f1d2f4052687d92a7c5cab49f8a75604b36200b0000000000000b2035485a72879cb1c7b49e8975676767676767676767676775899eb3c7b29c87725a4935200c00000000000000000000000000000000000000000000000000091e3245566d8398adc5cab6a48e79634e3924100000000000000000000b20354a6074899eb4c9c3ae99846e594834200f000000000000000000000000000000000000000000000000000000000000000008111c2329333736434a4e54546064696f757b84969eb0c8cbb7a58f7a65503a25100010253a50657a8fa5bacfc6b09b86715c4b38281e16171827384e63798ea3c7d4c3a38d78634e38230e00000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c07000000000000000000000000000000000000000000000000000000000000091d3145566a7f94a8bac3b09b85705c4b37220e0000000000000000000000000b20354b60748a9fb4b09b86705b6075899fb4c4af9a846f5e4c3f364556687d92a7bfc2ad98836d58432e18000000000c2135495b6d8297a7b8c9c1b09e95806e61584c46393a3837373a3c494d5f677c8b8b7d675f4d4130231301000000000000000000000000000000000000000000000000000000000000000014293f54697e949797979797887358473318080000000000001123384d63788da7b9ccbbaa8e79634e39230e00000000000006192b3c566b8196abc6b9a88f7a65515151515151515151647a8fa7b9c6ab96816c563c2c1906000000000000000000000000000000000000000000000000000316283851667c91a7b9ccc2ab95806b563e2e1b0700000000000000000d22374d62778ca8b9ccbea9947e69543b2b180100000000000000000000000000000000000000000000000000000000000003111c232f383a474c52546063696e74797e8489909aa2b0bccebdb29d8774604b36200b0010253a50657a8fa5bacfc9b5a38f7a6456463932282d2c364556697e93a9becab7a58c76614c37210c00000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c07000000000000000000000000000000000000000000000000000000000000021527384c61768a9fb4c9b4a38f7a644f3c2b19060000000000000000000000081d31445573889db2b39d8873575470859bb0c5b4a2917c665d53515460748699a1b3c2ad98836d58432e1800000000061a2c3d4c6177899eabbccfbcaf9e95837769615753504d4c4d4f535a626e7d8b9f9f8c7d675f4d41301e0a000000000000000000000000000000000000000000000000000000000000000011263b50667b828282828282806b553a2a17000000000000000c2035495a74899eb3c9c8a5907b66503b26110000000000000010253b50657b90a8b9c6aa95806a553a3c3c3c3c3c39556a7f95aac5b9a8907b65503b261000000000000000000000040a0c151515151515150c0a04000000000b20364b6075899eb3c9c7b29d87725c4a36220800000000000000000f243a4f64798fa4c6d6b9a48f7a644f3a240f0000000000000000000000000000000000000000000000000000000000000816212e373f4c505861676d74797e83898e94999ea8afb3c0c8bbb49f927d685544311d080010253a50657a8fa5bacfd1c0b19c867461574b4539423d49546074879cb2c7c7b29d87725847331f0a00000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c07000000000000000000000000000000000000000000000000000000000000000a1f3347586c8197abbcc1ae98836e5a4835200b0000000000000000000000011426375b70859bb0b7a68b7661566b8095abc2c0b49e8a7b6e6866687381978499afc2ad98836d58432e1800000000000f1f334758667c8d9fb5bdcfbcafa199897f766e686562616264686f7883929fa9aa9f8c7d675f4d39251000000000000000000000000000000000000000000000000000000000000000000f23384c5e666d6d6d6d6d6d6b62503d1c0c0000000000000006192c3c5d72879cb2c7bca6917c67513c2712000000000000000b20364b6075899eb4c5b09b857058463327272733465770859ab0c5b49e8975604b36200b0000000000000000000c181f222a2a2a2a2a2a2a211f170c000000091d3145566d8297adc4cab6a58f7a644f362513000000000000000011263b50667b90a5bbd9c8a28c77624d37220d0000000000000000000000000000000000000000000000000000000000081626333f4b4f5d656e767c82888e93999ea7a9aeb3b9c6c9c0b4aa9f95816c5f4e372715020010253a50657a8fa5bad2c2b4a29b9983756760575857585b63728197a5b6cac4ad98836d583a2a170400000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c070000000000000000000000000000000000000000000000000000000000000004172a3a4d63788c9fb4cab49f8b78624d3a2917040000000000000000000000182e43586d8398adc4a48f79644f647a8fa4b6c9b9a89e8d837d7b7e85978b7c91a6bbad98826d58432d18000000000004182a3a4c5e6a80959fb5bcc9bfb2a79e948a837e7a787777797e848c98a0b4babbaa9f8c7d67523d27120000000000000000000000000000000000000000000000000000000000000000091c2f404c5057575757575755504433210000000000000000001c31465b71869bb0c6bda7927d68523d281300000000000000081d3144556e8399aec3b49f8b76614c36211221364b61768a9fb4c3ae99846e5645321d0900000000000000000c1c2a34373f3f3f3f3f3f3f3733291c0c00000215273850657b90a6b8cbc3ab96816b5443301c070000000000000011273c51667c91a6bbcebbaa8b76604b36210b000000000000000000000000000000000000000000000000000000000216263444515d65707b838a92989ea6a9aeb3b8c5c4c6c6b9b3aca29a8c8072604b41311909000010253a50657a8fa5bac9b5a39b859b99877d76706e6c6e717983979fb1c3cbb8a6927d67523d28120000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c0700000000000000000000000000000000000000000000000000000000000000000c2035495a6e8399aec1bbaa96816c5846331f090000000000000000000000152a3f556a7f94aabda8937e68535c71869cb1c0c6b9ab9f999290939b9a847c90a6bbac97826d57422d180000000000000c1c2f4050626c81959fabb8c5c5b8b3a89f98938f8d8c8c8f93999fabb2becdc1b5a498826d58432e1800000000000000000000000000000000000000000000000000000000000000000012222f383b424242424242403d332616040000000000000005182b3b5c72879cb1c7bca6917c67513c2712000000000000000215273753687d93a8c2bbaa917c66513c2711263c51667b91aabbc2a8937e6853382815020000000000000004182a3a474c555555555555554c473a29170400000b20354b6074889eb3c8c8b29d8873604a35200b0000000000000012273c51677c91a6bccab49f8a755745321e09000000000000000000000000000000000000000000000000000000001020344451626b7b8590989fa9adb3b8c5c3c6c9bcb5b1aba89e978f847a6a60544330231300000010253a50657a8fa5bac6b19b86798ea59d928a85838283868d99a1b1bdcec0b39d8874604b36200b0000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c07000000000000000000000000000000000000000000000000000000000000000006192c3c50657a8fa3b5c8b49e8976614c372715010000000000000000000011263c51667c91a6c3ad97826d5852677d92a2b3c3c9bcb5aea8a6a8a4927d7c92a7bcac97816c57422c17000000000000001222334451636c808d9ea7b4bbc8c6bab4aea8a5a2a1a2a4a8aeb4bcc9c8bbb4a39b8676614c36210c00000000000000000000000000000000000000000000000000000000000000000004121c23262d2d2d2d2d2d2b2821160800000000000000000b2034485973889eb3c8baa5907a65503b251000000000000000000d22374d62778ca4b5c8ac97816c573c2b192b3b576c8196acc8b5a48d78624d38220d00000000000000000a1f344759616a6a6a6a6a6a6a615847331f0a0000081d3144556c8197acc4cbb7a68f7a65503726140100000000000011263c51667b91a6bbcebbaa8b75604b36200b000000000000000000000000000000000000000000000000000000071b2d3e51626b808d9ba3aeb4bac7c7c9bcb4b0abab9f9c969089827a6f645c4b433626140500000010253a50657a8fa5bac4af9a8474899eb2a99f9a9897989ca4aeb3bfcec3b4a2947f6a5645311d090000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c070000000000000000000000000000000000000000000000000000000000000000000e23374b5d71859bb0c3b9a8947f695544311d08000000000000000000000d22374d62778ca5b6b29d88735c4a6072849aa5b4c0cacac3c7baaa9c86737e93a8beaa95806b55402b1600000000000000041525344551626b7c88979faab3b8c4c4c3bdbab7b6b7b9bdc4c6c6b9b3aa9f968577615846331f0a0000000000000000000000000000000000000000000000000000000000000000000000090f111818181b1b1b1c0f0d070000000000000000000e22374d62778ca7b8ccc3a48e79644f39240f00000000000000000b2034485971869cb1c6b19c87725a48352034485972879cb1c6b19c86715a4835200b00000000000000000c22374c61777f7f7f7f7f7f7f76614c37210c00000114263750657a8fa6b7cbc4ac97816c5544311d0800000000000010253a50657a8fa5c8d9b7a18c77624c37220d0000000000000000000000090f1113110b010000000000000000000d22364a5c6b80959fabb5c1c9c2b6b1abab9f9b96918b86817b756d645c4f4a3e302618080000000010253a50657a8fa5bac2ad98826d8298a9bab4b0adacadb1b5c2c7cbc1b5a59b8573604b382715020000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c07000000000000000000000000000000000000000000000000000000000000000000081c2e3f52677d92a5b7c6b29d8774604b352011000000000000000000000b2034485972879db2b7a68e79644f546176879aa2b0b5bcbbb4a99f8b7a6c8297acbea9937e69543e291400000000000000000716263444505e6676828b969da6aaafb2b4bcc9b9b9c6b9b3b0aba89e978b80746159473a29170400000000000000000000000000000000000000000000000000000000000000000000000006141f26283030303224211a0f0b050001010007101e2f4052677d92a7c5cab6a58c77614c37220c000000000000000005182b3b566b8095abc5b6a48d78624d3822374d62778ca4b6c6ab96806b563c2b190500000000000000000e24394e63798e94949494948d78634d38230e0000000b20354a6073889db2c8c8b39e8874604b35200b0000000000000e23384d63788daabbceb9a48f79644f3a240f00000000000000000004121c242628251e130300000000000000000f24394e647a8c9fb4bcc9c0b4afa49c96908b86817c76716b6560564f4b3e362d1c1408000000000010253a50657a8fa5babaab96816b788a9faab5c1c3c1c3c6c6c4c4b8b3a39b8778625544311a0a000000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c07000000000000000000000000000000000000000000000000000000000000000000001120354b6074879db2c6b7a5917c67523f2e1c0800000000000000000005182b3b586d8297adc4ab96806b574758627784929b9fabaa9f9a8b7d6770859bb0c5a6917b66513c261100000000000000000008162633404d58616c7881888f959a9d9faba3a4a3a2a89e9b96918982786b6056473b2a1b0b000000000000000000000000000000000000000000000000000000000000000000000000021424313a3e4545454739362d222018181616171a212e3c4c5e70859ab0c5c7b29d87725947341f0b00000000000000000010253a4f657a8fa7b9c2a8927d685336253652687d92a7c2b9a88f7a65503a25100000000000000000000e24394e63798ea3aaaaaaa28d78634d38230e000000071c3043546b8196abc3cbb8a6907b65503827150200000000000b21364b60768a9fb4cabea9937e69543b2a1805000000000000000012222f383b3d3a311e160a00000000000002162838586d8297abbccfc1b4a29a8f87817b76716b66615856504b4538372e221b100100000000000010253a50657a8fa4a4a4a4947f69677d8b9ba3aaaeb1b2b2b1afaba69e938577625a4837261400000000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c0700000000000000000000000000000000000000000000000000000000000000000000081d314455697f94a8b9c3b09b85715d4b37230e0000000000000000000011273c51667c91a8bab39e8975604b485962737d858b8d8e8a847a6761768a9fb4b9a78d78634d38230e00000000000000000000071522303a474c5a626c747a8084888a8d8e8e8e8d8c8986817c756c625a4b45382a1d0c000000000000000000000000000000000000000000000000000000000000000000000000000b1f31424e535a5a5a5c4e4a3d37342b2d2b2b2d2d363f4b5a667c90a2b4c8c5ad98826d583b2a18040000000000000000000b20354b6075899eb3c3ad98836e54433043546d8398adc2b39e8975604b36200b0000000000000000000e24394e63798ea3b8bfb8a28d78634d38230e000000001325364f647a8fa5b6cac5ac97826d5645311d090000000000091e32455671879cb1c6c3ae98836e5948341f10000000000000000e1e2f404c51524e4132281b0f0100000000091e32455673889db3c9c9b5a39a847a726b66615856514c473a3b363228221b1007000000000000000010253a50657b8f8f8f8f8f8f7d685f677a858e95999c9d9d9c9a9690887e746259483c2b190900000000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c0700000000000000000000000000000000000000000000000000000000000000000000011527374c6176899eb4c8b5a38f7a654f3c2c19060000000000000000000b21364b60758a9fb4b8a7947f6959484855606870757879766f645c687d93aabbb39e8974604a35200b000000000000000000000004121c2a333c484d5560656a6f737577787979787674716c6660564d493c32281a0c000000000000000000000000000000000000000000000000000000000000000000000000000011263a4e606870707071645c534d483b424140423d4a4e5d6478899eb3c0ccb8a7927d68523d281300000000000000000000081d3144556e8398aec9b39e8874604a354a6074889eb3c3ae98836e5544311d080000000000000000000e24394e63798ea3b8cdb8a28d78634d38230e000000000822364a5c72879db2c7c9b39e8975604b36200b000000000002162838576d8297acc6c9b49f8a77624c3e2e1e110903000108121e2b3c4c5e6668604b45392c1f13050000000b21364b60768ba6b7cbc5b09b8573645c56514c463a3c37332a26211e160a08080b08020000000000000c21364c61767a7a7a7a7a7a76614c5c64717980848688888685817b75696056483b2b1e0e0000000000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c070000000000000000000000000000000000000000000000000000000000000000000000091f3346586c8196aabbc1ae99836e5a4935200c000000000000000000091e3245576d8297adc0b39e8977625544444b525660636361584e6074869cb1c7ae99846f5443301c07000000000000000000000000000c171f2b3537444b50555a5660626364646361585b56514b4538352b1d150a00000000000000000000000000000000000000000000000000000000000000000000000000000013283e53687e8585858679706962595a57565657595c646d7a889da7b8ccc4b39e8875604b36210b000000000000000000000115273752687d92abbcb8a78e79644f394e64798ea6b8c1a8927d6853372715020000000000000000000e24394e63798ea3b8cdb8a28d78634d38230e0a0a0a0a071b2e3e566b8095abc2ccb9a7917b665138281603000000000012273c51677c91a8b9ccbaa995806b5c4b3c2f211e1617141d202f3c485a667c7d6d6057493d3023130400000d22374d62778ca2c4d4bea9947f69554b3e3b36332926211f171818191a1b151d201d150900000000000a1f334658616565656565656158474b4f5c646a6e717273716f6b6560564b45382a1d0e000000000000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c0700000000000000000000000000000000000000000000000000000000000000000000000417293a4d62788b9fb4cab49f8c78634d3a2a17040000000000000000031628394f647a8fa2b4b9a89a84736055493d38454b4d4e4c4b5e697e93a4b5baa9937e6853362513000000000000000000000000000000040e19202631353a4038454b4d4e4f4e4d4c473a413c36322820190e0200000000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b80959a9a9c8e857e77736f6d6b6b6c6e7379828c9da6b7c5c9b7a695806b5645321e0900000000000000000000000d22374c62778b9fb5c5a9947f6a543854697f94a9c4b5a38c77624d37220d000000000000000000000e24394e63798ea3b8cdb8a28d78634d38231f1f1f1f1f1f1f24394e64798ea4b6cac5ad98836d5645321e0900000000000c21364b6176899eb3c7c7b49f8c7a645a4c3f3632282d263135404c5a627888928275635b4d4130221200000c22374c61778ca9bacdbfaa947f6a5445393632282f2d2d2c2d2d2e2e2f302731363127190a000000000417293a464c4f4f4f4f4f4f4c473a373e4a4f55595c5d5d5c5a56504b453831271a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c070000000000000000000000000000000000000000000000000000000000000000000000000b2035485a6e8398aec1bcab96816c5847331f090000000000000000000a22364a5c6f849aafbdb4a2988273635b514d4b4b4c4f5560697c8b9fb4c2b49f8a77614c37220c00000000000000000000000000000000000509141d20252b273136383939393837332a2c27211e160a06000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f556a7f94aaafb1a29a938c88848280808283888e989faab7c4cebcab9d8877614c3828160300000000000000000000000b1f34475971869bb0c4af9a846f5645566f849aafc4b19b8671594834200b000000000000000000000e24394e63798ea3b8cdb8a28d78634d38343434343434343434364a5c71869cb1c6c9b49e8975604b36210b0000000000091e3246576c8197a9bacdbbaa9d8778655d504b45384237444b505e6678869ca0978679675f4d402f1d09000b20354b60758a9fb4c9c6b19b857260574f4b46394443424242424343444637444b4437281b0a000000000b1b2933363a3a3a3a3a3a37332a222d363940444748484745413b3632281d150a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c0700000000000000000000000000000000000000000000000000000000000000000000000006192b3c4f647a8fa3b4c9b49e8a76614c372715020000000000000000071b2e3e4f647a8f9fb1c0b2a09885796e6762606061646a747f8b9fa9babaa998826d5947341f0a0000000000000000000000000000000000000001080b1015151d202223242423211f1717110b09020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000142a3f54697f94a9bec0b4afa8a69d9997969597999da6adb4bbc8c8bbb49f8d7b655847331a0a00000000000000000000000005182a3b556a8095aac5b49f8a75604b60758a9fb4c5aa95806b553b2b1805000000000000000000000e24394e63798ea3b8cdb8a28d78634d49494949494949494949493d556a7f95aac1cdb9a8917c67513929170300000000031628394d62788b9fb4c1c8b7a59d897b6f6660565957585560656f7c889ca4b1a49c8a7d675e4c38240f00081d31445571869bb0c8c9b5a39782756b6561575b59585757575858595a5b5c5560554539281603000000000b171f21252525252525211f17101b22242b2f31333331302c26211e160a02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c07000000000000000000000000000000000000000000000000000000000000000000000000000e22374b5c70859bb0c3b9a8947f6a5544311d080000000000000000001022364a5c6c8197a4b6beb2a39b8b837c77757577797f86949fa9bac0b49f8b78634d3a2a180400000000000000000000000000000000000000000000000002090b0d0e0f0f0e0c0a040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e54697e93a9bed1c8c5c4b7b3afacababacaeb3b8c4cacac2b5aa9f947f6a5d4b3a2a1800000000000000000000000000000f253a4f647a8fa7b8baa9907b6550657b90a9bab8a78f7a654f3a251000000000000000000000000e24394e63798ea3b8cdb8a28d78635f5f5f5f5f5f5f5f5f5f5f5f5f5f63788da3b5c9c6ae99836e5746331e0a00000000000b2034485a6b8095a3b5c4c3b7a79e90847b75706e6c6d6f747b84909da6b6c2b5a89e907b66513b26110001142637556b8095aabbcec1b1a09788807a7672706e6d6d6c6c6d6d6e6f707273746f5745321e090000000000040a0c1010101010100c0a0400070d0f15191c1d1e1c1a16100b09020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c0703030303030303030000000000000000000000000000000000000000000000000000000000081b2e3e51677c91a5b6c6b29d8874604b362011000000000000000000071b2d3e4b6175869ca6b7c1b4aa9f98918d8a8a8c8f959ca4b4bac1b4a295806a5a49351c0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013283e53687d93a8bdd2cfbeb2adb3b8c5bec0c1c2c2c1c8bbb4afa49c8c7f6a61503f2f1c0c00000000000000000000000000000b20354b6074889eb3c7ab96806b566b8095abc7b39e8974604b35200b00000000000000000000000e24394e63798ea3b8cdb8a28d787474747474747474747474747474747474869bb1c6c9b49f8a76614b36210c000000000005192b3c4b6074859ba6b7c3c5b8b3a29a908a8583828284899099a1b3b7c4c9bbaa9c8774604b36200b00000d22384d62788b9fb4bfcebeb1a69d958f8b87858482828182828383848587898d75604b36210b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47321c1818181818181818180c0a040000000000000000000000000000000000000000000000000000001020354b6074879db2c5b7a6927d67523f2f1c08000000000000000000101e3246576378889da5b3bfbbb4ada6a2ab9faba4aab1b6c2bdb1a39a8473604b3c2c19000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002090b0f12151718191918171614110e0b0802000000000000000000000000000013283d52687d92a7bdd4c4b2a0989ea7a6a9abacadadaba9aa9f9a91867b69615043332111000000000000000000000000000000081c3043546d8298adc8b19b86715971869bb0c9ad98836e5544311d08000000000000000000000012273c51677c91a6bcd1bba8978d898989898989898989898989898989898a8fa3b5c9cdbaa9927d67523a2a170400000000000d1d3145566278889da5b4c0cbc0b3afa99f9b9997979a9ea7afb3bfcbc6baab9f8b7b655544311d0800000b2034485a6b8095a1b1bdc8c4b8b3abab9f9d9b9998979797979898999b9c9e8d78634e38230e0000000000000000000000000000000000000000000001080b150c0b04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c47322e2e2e2e2e2e2e2e2e2e211f170c0000000000000000000000000000000000000000000000000000081d314455697e93a7b9c4b19b86715d4b37230f00000000000000000003162839495a6379879aa1b1b5c2c3bcb7bcb4bcc9bfc4c0b4af9f978475615544311e0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0d151d2024282a2c2d2e2e2d2c2b2a2723201d15120d0b050000000000000000000012273d52677c92a7bccbb7a69882898d9194969798979694908a847c73655d4f43332515030000000000000000000000000000000114263652677c92aabbb59f8b7761778b9fb5bcab927d675237261401000000000000000000000012273c52677c91a7bcd1c5b5a8a89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea8b5c1d2d7c7ae99846f5847331f0a000000000002152738485a6379879aa2b3b8c4cac7bab4b0aeacadafb3b8c5c7c9bfb3a89f8d7e685d4b37271502000005192b3c4b607383979fb0b4c1c6c8c9bcb5b2b0aeadacacacadadaeafb0b1a5907b66503b261100000000000000000000000000000000000000000008141c202a221f180c0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c4743434343434343434343433733291c0c00000000000000000000000000000000000000000000000000011426374b6176899eb3c8b5a3907b65503d2c1a060000000000000000000b1b2c3c4a5b637784929ca4abb1b4bac7b8c5b8b3afaaa29a8f817461574637271500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070e1920232731363a3d40424343434241403f3c38363127282220190d08000000000000000012273c51677c91a6bcc8b29d887374787b7f81828382817e7b766f6760554b3f3225150700000000000000000000000000000000000c21374c61768b9fb4bcab927c677c91abbcb49f8b77614c37220c00000000000000000000000012273c52677c91a7bcd1d5c5c6b9b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b9c6d2dddfc9b49f8a76614c37210d0000000000000a1a2b3c495b637784939da6b0b4bcc9c3c5c3c1c2c4c5c3c6bab4ada1998a7c68604e3f2e1909000000000d1d314455607381909ba3abb1b5bcc9c0c3c5c3c2c2c1c1c2c2c3c4c4bda8937d68533e2813000000000000000000000000000000000000000008182630353f37342a231c110a0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c87715c5858585858585858585858584c473a29170400000000000000000000000000000000000000000000000000091e3246576b8096aabbc2ae99846f5b4935210c000000000000000000000e1e2d3d4a59626f7d868f969b9fa9a3a3a2a79e9a958e857b6d60564639291909000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101b222b353838454b4f52555758595958575654514e4b44373d37342b221b100300000000000011263b51667b90a6bbc8b39e8973606366696b6c6d6d6c69656158514b44372e2114060000000000000000000000000000000000000a1f33475870859bb0c9ad97826d8297acc9b09b85705947341f0a00000000000000000000000012273c52677c91a7bcc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c5c9d1cebbaa937d68533b2a18050000000000000d1d2c3d495962737e88929b9fababaeb0b2b3b2b1b0adaaa89f988f8478665e4e423121110000000000011426374455606c7b858e969c9faba8abadafb1b2b2b3b3b3b2b1b0afacaa95806b55402b160000000000000000000000000000000000000001142636434b554c473b372e211e170b070000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc6b19c86716d6d6d6d6d6d6d6d6d6d6d6d6d615847331f0a00000000000000000000000000000000000000000000000000031629394d62788b9fb4cab59f8c79634e3a2a1804000000000000000000000f1f2d3b484c5f67737a8186898c8d8e8d8b89847f7970655d4b4538291b0b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c181f2e373c484d54566064676a6c6d6e6e6d6c6b696663605557524d483b372e211000000000000010263b50657b90a5bac9b49f89745f4e5154565758585654504c463a3531261910020000000000000000000000000000000000000004172a3a556a7f94aac4b29d8773879db2c4aa957f6a553a2a180400000000000000000000000012273c52677c91a7abababababababababababababababababababababababababb0b5c1b5b5b09b86715948341f0b000000000000000f1f2c3b48546068757d858b9196999b9d9d9d9c9b98959089827a6f625a4d403124130300000000000009192737444b5d65707980868b909396989a9b9d9d9d9e9d9d9c9b99979492826d58432e1803000000000000000000000000000000000000081c304354606a6159504b3f363329211a0f09020000000000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc9b5a498828383838383838383838383838276614c37210c00000000000000000000000000000000000000000000000000000b2034485a6d8398adc0bcab97816c5947341f0a00000000000000000000010f1d2b34414d5460656c71757778797876736f6a635b504b3f32281a0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002101c2a343e4b4f5a62697075797d7f818283838281807f7c7875716c6762594f4b3f2e1b08000000000010253a50657a8fa5bacab59f8a7556453c3f41424342413f3b363329201d1409000000000000000000000000000000000000000000000f24394f64798ea6b7b7a6947f94a5b7b8a68f79644f3a240f0000000000000000000000000010253b50657b9095959595959595959595959595959595959595959595959595959ba39f9f9f9fa38c77624c37220d00000000000000010f1d2b36434b56606870777c8083868788888786837f7b756d645c4d493c302213060000000000000000091927313f4c505c646b71767b7e81838586878888888888878684827f7d7a644f39240f000000000000000000000000000000000000000b20354b60737f776e655d534c4639362d201d150a06000000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbd2c2b2a0989898989898989898989898988c77624d37220d000000000000000000000000000000000000000000000000000005192b3c4f647a8ea2b4c9b49f8a77614c3828150200000000000000000000000d18203036434a505655606263636261575a554e4a3d372e1d150a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412202e3a474c5c646e787f858a8f92959798989897969594918d8a86827d7775655d4b37220e00000000000f243a4f64798fa4b9cfbcab8b75604b362a2c2d2e2d2c2926211f170b080100000000000000000000000000000000000000000000000b20354a6074889db3c4af9d949dafc3b39e8874604a35200b000000000000000000000000000d22374c6277808080808080808080808080808080808080808080808080808080868a8a8a8a8a8a8a7c66513c26110000000000000000000d18263038454b535962676b6e7172737372706e6a6560564f4b3e352b1e12040000000000000000000009151d2f383e4a4f56586165696b6e707172737373737272706f6c6a68645c4a36220d000000000000000000000000000000000000000b20354b60758a8a837a716961574e4a3d36322820190e0801000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbd0cfbeb2adadadadadadadadadadadada28c77624d37220d0000000000000000000000000000000000000000000000000000000d22364a5c70859ab0c3baa9957f6a5645321d090000000000000000000000000513182530353a37444b4c4e4e4d4c46394039362d231c1102000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000312222f3e4b59616d7a838b949a9fa9a7aaacadaeaeadacaba9a6aa9f9c97928c8a7b654f3a251000000000000f24394e64798ea3b9dab6a18b76614c3621161718181714100c0a040007070700000000000000000000000000000000000000000000071c3043546d8297adc8bbafaaafbbc8ad98826d5443301c07000000000000000000000000000b1f344759626b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b7075757575757575665e4c38240f0000000000000000000008141c2832363b474c5156595b5d5e5d5c5b5855504b4538372e20190e0000000000000000000000000002111c232d36393a464c505356585a5c5d5d5e5e5e5d5c5b5a5755524f4a3e2d1b07000000000000000000000000000000000000000b20354b60758a9f988f867e766c645c524b4538352c201d14090500000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc7c7c7c6c2c2c2c2c2c2c2c2c2c2c2b7a28c77624d37220d000000000000000000000000000000000000000000000000000000071b2d3e51667c91a4a0a0a09e8875604b36200b000000000000000000000000000008131c2025263135373839383633292a23211a0f0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011212f404c5c6477828d999fabb0b4bac7bfc1c2c3c2c2c1c0bec8bbb4b1aca7a28f7a65503a251000000000000e23394e63788ea3b8ccb7a18c77624c37221c1c1c1c1c1c1c1c1c1c1c1c1c1c100e08000000000000000000000000000000000000000013253651677c91aabbc0c0bfc0c0bbaa917c6752362513000000000000000000000000000005182a3b474c5656565656565656565656565656565656565656565656565656565b60606060606060514c40301d090000000000000000000000010a161e212a34373c414446484848474643403b363228221b10060000000000000000000000000000000008101b22242933363b3e41434546484848494848474644423f3d39362d201000000000000000000000000000000000000000000b20354b60758aa0ada49c93898279706760564d493c3531261f180d080000000000000000000000000000000000000000000000000000000000000011263b50667b90a5b1b1b1b1b6b1b1b1b1b1b1b1b1b1b1b1b1a28c77624d37220d000000000000000000000000000000000000000000000000000000001020354b6073868b8b8b8b8b8b7d68533d281300000000000000000000000000000000070b10141d2022232423211e17150e0c07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1d2f3f4c5e667a88989fabb4bcc9c9c3c3b7b2afadadadaeafb2b7c3cac6c1baa58f7a65503a251000000000000d23384d62788da2b7ccb7a28d77624d3832323232323232323232323232323225231c11030000000000000000000000000000000000000c21364c61768a9fababababababab9f8b76614c37210c0000000000000000000000000000000d1d2a3437404040404040404040404040404040404040404040404040404040464a4a4a4a4a4a4a3c38302212000000000000000000000000000003090d181f22272b2e3132333332312e2a26201d150a070000000000000000000000000000000000000000070d0f171f2125292c2e303132333333333332312f2d2a2824221b100200000000000000000000000000000000000000000b20354b60758aa0c2b5b1a89e978e857d756b625a514b4437342a231c110a040000000000000000000000000000000000000000000000000000000011263b50667b909c9c9c9c9ca49c9c9c9c9c9c9c9c9c9c9c9c9c8c77624d37220d00000000000000000000000000000000000000000000000000000000081c304354607476767676767573604b35200b0000000000000000000000000000000000000001080b0d0e0e0d0c0a030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005192b3c4b5d667c8b9da6b5bcc9c8bbb4aea7a59d9a989798999a9da5afb4c0d1baa58f7a65503a251000000000000d22374d62778ca2b7ccb8a38d78634e474747474747474747474747474747473b372f21110000000000000000000000000000000000000a1f334658708495959595959595959585705847331f0a000000000000000000000000000000000d181f222b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b313535353535353526241d12040000000000000000000000000000000000050b0d1216191c1d1e1e1d1b1915100b090200000000000000000000000000000000000000000000000000040a0c101416191b1c1d1e1e1e1e1d1d1b1a1715130f0d07000000000000000000000000000000000000000000000b20354b60758aa0b5c8c6b9b4aca39b928880786f6660554c483b372e211f170b07000000000000000000000000000000000000000000000000000010253a4f657b8687878787878a878787878787878787878787878677624c37220d0000000000000000000000000000000000000000000000000000000001142636445560606060606060605544311d08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000092034485a657b8b9fa9b7c4cdbeb2aa9f99918c87858382838485878b9aa2b4c8baa58f7a65503a251000000000000c22374c61778ca1b6ccb9a38e79645c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c504b3f2f1c0800000000000000000000000000000000000417293a50667c8080808080808080807c66513a2917040000000000000000000000000000000000050b0d1616161616161616161616161616161616161616161616161616161b20202020202020110f090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b60758aa9b0b4c1c8c9c1b4b0a79e968c847c746a6259504b3f363329221b10090200000000000000000000000000000000000000000000000e22374b5d65727272727272757272727272727272727272727272625947341f0b000000000000000000000000000000000000000000000000000000000008182737444b4b4b4b4b4b4b4b44372715010000000000000000000000000000000000000000000000000000000000000000070c0e110f0c0a0400020000000000000000000000000000000000000000000000000000000000000000000000000000091930414d6278899ea9bac7c7bab4a0988c837c77726f6e6d6d6e707276849aafc5baa58f7a65503a251000000000000c21364b61768ba0b6dab9a48f7a717171717171717171717171717171717171655d4b37230e0000000000000000000000000000000000000b23384c5e666b6b6b6b6b6b6b6b6b665e4c381c0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070d0f20202020202020202020202020202020202020202020202020202020201f1d170e020000000000080e102020202020202020202020202020202020202020202020202020202020110f090000000000000b20354b60748a939ba3abb3b7c4c9c5b8b3ab9f9991877f776e655d544c463a362d211e160a06000000000000000000000000000000000000000000081b2e3f4b4f5c5c5c5c5c5c605c5c5c5c5c5c5c5c5c5c5c5c5c5c4c473b2a18050000000000000000000000000000000000000000000000000000000000000919273136363636363636353127190900000000000000000000000000000000000000000000000000000000000000010f1a21242624221f181a1714100b09020000000000000000000000000000000000000000000000000000000000000000011426374d5f70849aa7b8c7c7baa99f9283786e6761595a585858595a576b8095aac0baa58f7a65503a251000000000000b20364b60758babbccfbdaa998f8687878787878787878787878787878787867b65503b2510000000000000000000000000000000000000091c2f404c50565656565656565656514c402f1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a2020202020202020200a0400000000000000000000000000000000000000010f1a2124353535353535353535353535353535353535353535353535353535353534322b201202000003111c2325353535353535353535353535353535353535353535353535353535353526231c110400000000081d31445561767d858e969da6aeb4bbc8c9bcb5afa59d948b837a716961584e4a3e36322820190e09000000000000000000000000000000000000000010212e373a4747474747474a474747474747474747474747474737342a1d0d000000000000000000000000000000000000000000000000000000000000000009151d20212121212121201d150900000000000000000000000000000000000000000000000000000000000000000f1f2d36393c3937332a302d2925201d150b09030000000000000000000000000000000000000000000000000000000000081d314455677d91a2b4c5cdbaa99f8b7d6e635a524c473a4342434439556b8095aac0baa58f7a65503a25100000000000091d314556758a9fb5cac7b7aaa49c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c917c66513c27110000000000000000000000000000000000000011222f383b4040404040404040403b382f221200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b161e3535353535353535351f170c0000000000000000000000000000000000000f202d36394a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a49463d30200e000011212e373a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a3b382f22110000000001142637465861687079808891999faab1b5c2c8c3b7b2aa9f988f867e766d645c524b4538352c231c110300000000000000000000000000000000000003101b2225323232323232353232323232323232323232323232221f180d0000000000000000000000000000000000000000000000000000000000000000000002080b0b0b0b0b0b0b0b08010000000000000000000000000000000000000000000000000000000000000000071a2d3d4a4e514e4c473a45423f3a363228211e160a030000000000000000000000000000000000000000000000000000000b20354b6073879db2c0cebdb49f8b7b675f4d493c37342a2e2d2e2f40556b8095aac0baa58f7a65503a251000000000000215274a5f748a9fb4c9dfc7c2b5b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1a6917c66513c27110000000000000000000000000000000000000004111c23262b2b2b2b2b2b2b2b2b26241c1204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1b29324a4a4a4a4a4a4a4a4a33291c0c00000000000000000000000000000000071a2d3e4a4e60606060606060606060606060606060606060606060606060606060605f5a4e3d2b1700081c2e3f4b506060606060606060606060606060606060606060606060606060606060504c402f1c09000000000919293a464c535b636b747b838b949ca4acb3b8c5c8bbb4ada49c938a8279706860564d493c382f21110000000000000000000000000000000000000000080e101d1d1d1d1d1d201d1d1d1d1d1d1d1d1d1d1d1d1d1d0d0b05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c21364a5b63666461585d5a5754504b45383632281e160a0000000000000000000000000000000000000000000000000005182b3b52677c91a5b6cac6b19f917d675d4d41352c221f181918182b40556b8095aac0baa58f7a65503a25100000000000001f34495e74899eb3c9ced1c8c5c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0bba6917c66513c2711000000000000000000000000000000000000000000090f11161616161616161616110f09000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003162939465e606060606060605e463a2917040000000000000000000000000000000d21364a5c707575757575757575757575757575757575757575757575757575757575746c5a46321d000e23374b5d657575757575757575757575757575757575757575757575757575757575665e4c38230f00000000000b1b2933363d494e5560666e777e868e969ea7afb4bcc9c2b6b1a89e978e857d756b635a504c3f2f1c0900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c0e1316191b1c1c1d0d0b0500000000000000040a0c1d1c1c1b1916130e0c06000000000000000000000000000000000000000000000e24394e63797b797774726f6c69656056524b453932281a100300000000000000000000000000000000000000000000000b2034485970859aafc3ccb9a897826d5f4d3f3020190e0a040003162b40556b8095aac0baa58f7a65503a25100000000000091e33495e73889eadb1bec0b4b0ababababababababababababababababa6917c66513c271100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1e3246577075757575757575705846331f0a0000000000000000000000000000000f24394e647a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a745f49341f0010253a50657b8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a7c66503b26110000000000000b171f212c3637444b515961697179818991999fabb2b6c3c6b9b4aca39b928981786f655d4c38230e0000000000000000000000000000000000000002090b1111111111111111111111111111161111111111110d0b05000000000000000000000000000000000000000000060c0e192023282b2e30313232221f180d00000000000c181f22323231302e2b2823211a0e0c0700000000000000000000000000000000000000152a40556a7f918e8c898785827e7a756f6760574b45382e211406000000000000000000000000000000000000000000000d22374c62778b9fb4cac9b49e8977614c41302113090b0f0f0f0f162b40556b8095aac0baa58f7a65503a25100000000000081e33485d73879597a09f9fa29a9595959595959595959595959595959595917c66513c27110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b11132020202020201a171107000000000000000000000000000000000000000000000c21364b61758a8a8a8a8a8a8a76614c36210c0000000000000000000000000000000f24394e64798e9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9e89745f49341f0010253a50657a8f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f907b66503b261100000000000000040a0f1a212731353a474c545c646c757c848b949ca5adb4b9c6c1b5b0a79e968c847c65503b26100000000000000000000000000000000000000a151d2027272727272727272727272727272b272727272727221f180d000000000000000000000000000000000000070f1a21232c35383d40444546474737342a1d0d0000000c1c2a33374747464544403d38352c23211a0f070000000000000000000000000000000001162b41566b8096a3a99f9c9a97948f8a847d756a60564b3f3124150700000000000000000000000000000000000000000013293e53687e93abbccfbcab96806b5947342312161e2125252525252b40556b8095aac0baa58f7a65503a2510000000000000142a3f54697f80828a8a8a8a8580808080808080808080808080808080808079634e39230e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006141f26293535353535352f2c24190b0000000000000000000000000000000000000000000c21364b61768b9f9f9f9f9f8b76614c36210c0000000000000000000000000000000f24394e64798ea3b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b49e89745f49341f0010253a50657a8fa5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5a5907b66503b2611000000000000000000000609151d202a34373e4a4f5660676f777f878f979ea8b0b4c0c5b8b3ab9f9a846f5a45301a00000000000000000000000000000000000a1a2832363c3c3c3c3c3c3c3c3c3c3c3c3c3c403c3c3c3c3c3c37342a1d0d00000000000000000000000000000003101b222c35393c494d5256595a5b5c5c4c473b2a18050004182a3a474c5c5c5b5a5956524e493d39362d221b1003000000000000000000000000000002172d42576c8297acbab4b2afaca9a99f9992887f75655d4e42322515050000000000000000000000000000000000000005182a3b596e8398aec9cab59f8c78624d3b2a181a2832363a3a3a3a3a3a40556b8095aac0baa58f7a65503a251000000000000012273b4f61696b6d75757575706b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b635b4936210c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021424313a3e4a4a4a4a4a4a44403729190700000000000000000000000000000000000000000c21364b61768ba0b5b5b5a18b76614c36210c0000000000000000000000000000000f24394e64798ea3b9bfbfbfbfbfbfbfbfc0c3cccacacacec5c1bfbfbfbfbfbfbfb49e89745f49341f0010253a50657a8fa5babfbfbfbfbfbfbfc1c4cecacacacdc3c0bfbfbfbfbfbfbfbba5907b66503b261100000000000000000000000001080c181f222d3638454b5259626a727a8289929aa2b4c8ccc9bcaf9a856f5a45301a0000000000000000000000000000000002152838454b5151515151515151515151515151565151515151514c473b2a1805000000000000000000000000000b161e2d363d494e565a63686b6e70717172625947341f0b000a1f33475861727171706e6b68635b564e4a3d362d1e170b0000000000000000000000000003182e43586d8398adbfc1c4c4c1c7bab4afa69e94867b68604f43322313010000000000000000000000000000000000000b1f34485973889db3c8c6b09b86715a49351d162838454b4f4f4f4f4f4f4f556b8095aac0baa58f7a65503a25100000000000000c2032434f545658606060605b5656565656565656565656565656565656564e493d2c1a060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1f31424e5360606060606059544737241100000000000000000000000000000000000000000c21364b61768ba0b6cab6a18b76614c36210c0000000000000000000000000000000f24394e647a8ea3aaaaaaaaaaaaaaaaaaaaafbcccdfcebdb1acaaaaaaaaaaaaaaaa9e89745f49341f0010253a50657a8fa5aaaaaaaaaaaaaaaaacb1bdcedfcdbcb0abaaaaaaaaaaaaaaaaa5907b66503b2611000000000000000000000000000000040a101b222832363b484d555d656d767d849ab0c5dadac4af9a856f5a45301a00000000000000000000000000000000091d3245566066666666666666666666666666666b666666666666625947341f0b0000000000000000000000010f1b29323e4a4f5b636c72787d80838586878677624c37220d000c22374c61778687868583807d78726c635b4f4a3e33291b10020000000000000000000000041a2f44596f8499a7aaacafb2b5bcc9c8c5b8b3a49c8c7e6a614f41311f0f0000000000000000000000000000000000000d22374c62778ca6b7cbbfaa95806a553c2b191e3245566064646464646464646b8095aac0baa58f7a65503a2510000000000000031525323b3f40424a4a4a4a4540404040404040404040404040404040404039362c1f0f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263a4e60687575757575756f6554402c1703000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000f24394e647a8e95959595959595959595959eafc3d7c5b19f979595959595959595958a745f49341f0010253a50657b8f959595959595959595969fb1c4d8c3b09e95959595959595959595907b66503b26110000000000000000000000000000000003090e192025303539464c535b636b737c91a6bcd1dac4af9a856f5a45301a000000000000000000000000000000000b20364b60747c7c7c7c7c7c7c7c7c7c7c7c7c7c807c7c7c7c7c7c77624c37220d0000000000000000000003111f2d39464b5c646f7981878d9295999a9b9c8c77624d37220d000d22374c62778c9c9b9a9995928d8781796f645c4c46392d20110300000000000000000000051b30455a70848f929497999d9fabacb3b8c5c3b6aa9f937f6a5f4e3d2d1a0a000000000000000000000000000000000010253b50657a90a5c4d5c5a5907b65503b261021364b60747a7a7a7a7a7a7a7a7a849aafc4baa5907a65503b251000000000000000071520272a2b2d35353535302b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b23211a0f010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013293e53687e8a8a8a8a8a8a836f59442f1a04000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000d22374c627780808080808080808080808095aac0d5c1ac97818080808080808080807f6a553f2a15000d23384d6278808080808080808080808196acc1d5c0ab95808080808080808080808078634d38230e0000000000000000000000000000070a161e212b3536434a5057616870788088919bacbfd7cdc4af9a856f5a45301a000000000000000000000000000000000d22374c62778c91919191919191919191919191959191919191907c66513b26110000000000000000000311212e3d4a57616d7a848e969da5a7abaeafb0a28c77624d37220d000d22374c62778ca1b0afaeaba7a59d968e847a6d61574a3e2f211103000000000000000000000d22374d62777a7d7f8284878b90979ea7b3b8c5bbb49d927d685c4a382816020000000000000000000000000000000013283e53687d93a8bdccb8a78c76614c37210e23384e63798d8f8f8f8f8f8f8f8f9aa2b4c7bba6907b66513b26110000000000000000030c12141618202020201b1616161616161616161616161616161616160e0c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013293e53687e939f9f9f9f99846f59442f1a04000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000b1f344859626a6a6a6a6a6a6a6a6a6a6a748aa0b5cab7a18c776a6a6a6a6a6a6a6a6a6a61503c2713000b2035485a626a6a6a6a6a6a6a6a6a6a778ca1b6cbb5a08b756a6a6a6a6a6a6a6a6a6a635a4935200c0000000000000000000000050b101b222832363c484d5460656d767d858d969da6acb9cac6b9b4ac9a856f5a45301a000000000000000000000000000000000d22374c62778ca1a6a6a6a6a6a6a6a6a6a6a6a6aba6a6a6a6a6907b66513b261100000000000000000011212e3f4b5c6475828d9aa2abb2b7c3c0c3c0b7a28c77624d37220d000d22374c62778ca1b7c0c3c0c3b7b2aba29a8d8276645c4b3f2f2111010000000000000000000b203448596265676a6c6f72767b8189949ea7b4c0bbb49f8b7a645645321e0d00000000000000000000000000000000152b40556a8095aabfc8b39e88735847331f0e23384e63788da3a4a4a4a4a4a4a4afb4c0d0bba6907b66513b26110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013293e53687e93a8b5b5ae99846f59442f1a04000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000000000000000000000000000005182a3b484c5555555555555555555560758aa0b5cab7a18c7762555555555555555555504333200d0006192b3c484d55555555555555555561778ca1b6cbb5a08b76605555555555555555554d493c2c1906000000000000000002080d181f222e3738454b525a626a737b828a939ba3abb3b7c4c2b6b1a89e978e826d57422d18000000000000000000000000000000000d22374c62778ca1b7bbbbbbbbbbbbbbbbbbbbbbc0bbbbbbbba6907b66513b261100000000000000000e1e2e3f4b5d657a86979fabb3c0c7c6b9b4aeaba8a28c77624d37220d000d22374c62778ca1a8abaeb3b9c6c7c0b4ab9f98877a655d4b3f2f1f0f00000000000000000005182b3b484d505255575a5761666c757e899aa2b3bfbaa99c8674604b3b2b1805000000000000000000000000000000172d42576c8297acc1c5b09b86705b3a29170e23384e63788da3b8b9b9b9b9b9b9c4c7d0d0bba6907b66513b261100000000000000000000000000000000000000000000000000000000000000000000030a2020202020202020200a04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013293e53687e93a8bdc4ae99846f59442f1a04000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000000000000000000000000d1d2a34374040404040404040404b60758aa0b5cab7a18c77624c404040404040403f3c3325150300000e1e2b353840404040404040404c61778ca1b6cbb5a08b76604b404040404040404038352c1e0e000000000000000009151d202a34373e4b4f5660676f787f8790989fa8b0b4c1c8bbb4ada49c938a82796d63523f2a16000000000000000000000000000000000d22374c62778ca1b7b8b8b8b8b8b8b8b8b8b8b8c9cdd7d0bba6907b66513b2611000000000000000a1a2c3c4b5d657b8a9ca4b5bcc9bfb3afa89e999593918c77624d37220d000d22374c62778c919395999ea8afb3bfc9bcb5a59c8a7b655d4b3d2c1b0a0000000000000000000d1d2b34373a3d3f4239464b50566069778499a1b3c1b6a4947f6a594834200d000000000000000000000000000000192e43596e8398aec3c4ae99846f59442f1a0e23384e63788da3b8bababababababdc0c0c0bba6907b66513b26110000000000000000000000000000000000000000000000000000000000000000000b161e3535353535353535351f170c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000013293e53687e93a8bdc4ae99846f59442f1a04000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000000000000000000000000000000000d181f222b2b2b2b2b2b2b2b354b60758aa0b5cab7a18c77624c372b2b2b2b2b2b2a27201507000000000e1920232b2b2b2b2b2b2b374c61778ca1b6cbb5a08b76604b362b2b2b2b2b2b2b2320190e0000000000000008131c2731363b474c545c646c757d848c959da5adb4bac6c3b7b2aa9f988f867e766c645c524535230f000000000000000000000000000000000d22374c62778ca1a3a3a3a3a3a3a3a3a3a3a3a3b4bac7d7bba6907b66513b261100000000000003162838495b657b8b9ea8b6c3c2b6b1a19a908984807d7c7c74604b36210b000b20364b60747c7c7d8084899099a1b1b6c2c3b6a89e8b7b655b49392816030000000000000000000d18202225282a2d29323638454b5962748399a3b4c2b49e8a77624d3b2a180500000000000000000000000000001a2f44596f8499aec4c2ad98826d58432d180e23384e63788da3a5a5a5a5a5a5a5a8ababababa6907b66513b261100000000000000000000000000000000000000000000000000000000000000000b1b29324a4a4a4a4a4a4a4a4a33291c0c000000000000000000000000000000000000000000050b0d101010101010100d0d0d0d0d0d0d0d0d0d0d13293e53687e93a8bdc4ae99846f59442f1a09030000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000000000000000000000000000050b0d1515151515151520354b60758aa0b5cab7a18c77624c3722151515151515130d03000000000000060b0d15151515151522374c61778ca1b6cbb5a08b76604b36211515151515150e0c06000000000000000818253037444b51596269717a8189929a9fabb2b6c3c9bcb5afa59d948b837a716961584e4a3e35271706000000000000000000000000000000000d22374c62778c8e8e8e8e8e8e8e8e8e8e8e8e8e9fa9bacdbba6907b66513b2611000000000000091e3245566379899ea9b9c6bfb2a49c90847b756f6b686766605645321e0900091d324556606667686b6e757b848f9ca4b2bec6b9a99e8979635745321e1000000000000000000000050b0d10121517161e2128323b48566074859ba8b9b9a896816c5948341f0a00000000000000000000000000001a2f455a6f849aafc4c2ac97826d57422d180e23384e63798d9090909090909090939595959595907b66513b26110000000000000000000000000000000000000000000000000000000000000003162939465e606060606060605e463a291704000000000000000000000000000000000000000d19202225252525252525232323232323232323232323293e53687e93a8bdc4ae99846f59442f211e160a00000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b000000000000000000000000000000132536434a5560666e777f868f979ea7afb5bcc9c5b8b3ab9f9991877f776e655d534c463a362d20170900000000000000000000000000000000000b20354b607579797979797979797979797979798a9fb4c9bba6907b66513b26110000000000071b2e3e4b6075869ca7b8c7beb1a098867b6f666055565352514b45382816020002152838454b515253565560666f7b8698a0b1bdc7b9a79c8675604b3e2e1b0800000000000000000000000000000000030a0c161e2b38455662788a9eb4c3b49f8a77624c38271502000000000000000000000000001a30455a6f859aafc4c1ac97816c57422c170b21364b60757b7b7b7b7b7b7b7b7b7d80808080808076614c37220c000000000000000000000000000000000000000000000000000000000000000a1e3246577075757575757575705846331f0a0000000000000000000000000000000000000d1d2b34373a3a3a3a3a3a3a383838383838383838383838383e53687e93a8bdc4ae99846f5944383632281a0a000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b0000000000000000000000000000071c304354606b747c848b949ca4acb3b9c5c9c1b4b0a79e968c847c746a6259504b3f363329221b1002000000000000000000000000000000000000081d314455606363636363636363636363636371869bb1c6bba6907b66513b261100000000000d22364a5c6b8196a4b6c5bfb19f978275655d514b44373e3c3c3632281a0a0000000a1a2832363c3c3e37444b505d657582979fb1bfc5b6a496816c5c4b37221100000000000000000000000000000000000000020d1a2838485a697e93a5b6baa995806b5645311d09000000000000000000000000001a2f445a6f8499afc4c2ad97826d58422d18091e32455760656565656565656565686b6b6b6b6b6b615847331f0a000000000000000000000000000000000000000000000000000000000000000c21364b61758a8a8a8a8a8a8a76614c36210c000000000000000000000000000000000005192b3b484d5050505050504f4d4d4d4d4d4d4d4d4d4d4d4d4d4d53687e93a8bdc4ae99846f594d4d4b45382816030000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b00000000000000000000000000000b20354a6072808891999faab1b6c2c9c6b9b4aca39b928880786f6660554c483b372e211f170b07000000000000000000000000000000000000000001152737444b4e4e4e4e4e4e4e4e4e4e4e4e5c71869bb1c6bba6907b66513b261100000000091c2f3f4f647a8c9fb4c2c3b3a197817261574b3f363127282727211e160a00000000000a151d202727282731363f4b5760728197a1b3c3c2b59f8d7a644f402f1c0900000000000000000000000000000000000001142637444b5d6074879cb2c7b39e8875604b36200c00000000000000000000000000192f44596e8499aec3c3ae99836e59442e1903162839454b505050505050505050535656565656564c473a2a1804000000000000000000000000000000000000000000000000000000000000000c21364b61768b9f9f9f9f9f8b76614c36210c00000000000000000000000000000000000b203448596265656565656565626262626262626262626262626262687e93a8bdc4ae99846f626262605645321e090000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b00000000000000000000000000000b20354b60758a9ea6aeb4bbc8c9c2b5b1a89e978e857d756b625a514b4437342a231c110a04000000000000000000000000000000000000000000000009192731353939393939393939393939465c71869bb1c6bba6907b66513b2611000000000e23384c5d70849aabbccbb7a5998372605446392e201d151312110b09020000000000000002090b111213151d202e39455460728399a5b7cabcab9a85705e4c38230e000000000000000000000000000000000000081d314455607375757e93a8bdb8a6917c67523a2a1804000000000000000000000000182d43586d8298adc2c4af9a856f5a362614010a1b2832363b3b3b3b3b3b3b3b3b3e40404040404037332a1c0c00000000000000000000000000000000000000000000000000000000000000000c21364b61768ba0b5b5b5a18b76614c36210c00000000000000000000000000000000000d22374d62787a7a7a7a7a7a7a787878787878787878787878787878788095abc0c6b19c867878787875604b36210b0000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b00000000000000000000000000000b20354b60758aa0b8c5cac7bab4ada49c93898179706760564d493c3531261f180d0800000000000000000000000000000000000000000000000000000009151d202424242424242424242431465c71869bb1c6bba6907b66513b261100000006192c3c50657b90a2b4c9bfb29d877661544336281b110802000000000000000000000000000000000000000208111b283643546176879db2bfc9b4a2907b66503d2c1a0600000000000000000000000000000000000b20354b6073878a8a939cadc1c4af99846f5847331f0a000000000000000000000000162b41566b8096abc0c6b09b86715443301c08000a161e21262626262626262626282b2b2b2b2b2b221f180c0000000000000000000000000000000000000000000000000000000000000000000c21364b61768ba0b6cab6a18b76614c36210c000000000000000000000000000000000014293e54697e8f8f8f8f8f8f8f8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d959eb0c3c9b5a49c8d8d8d8d7c66503b26110000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b00000000000000000000000000000b20354b60758aa0b5c3b7b2a99f988f867e766c645c524b4538352c201d14090500000000000000000000000000000000000000000000000000000000000001080b0e0e0e0e0e0e0e0e0e1c31465c71869bb1c6bba6907b66513b26110000000c2035495a6f849aafc0c7b3a1917c6658473626180b000000000000000000000000000000000000000000000000000a1826364758667b90a1b3c7c0af9a846f5b4935210c0000000000000000000000000000000005192b3b51667c91a69fa8adbacacab49f8b77614c37220c00000000000000000000000014293f54697e94a9bec9b49e8975604b35200b000003090b101010101010101010131616161616160c0a04000000000000000000000000000000000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000000000000000000000000000000000e23384e63788da8a5a5a5a5a4a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2abb0bccdd2c2b5b1a2a2a2907b66503b26110000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b00000000000000000000000000000b20354b60758aa0b4aea59d948a837a716961574e4a3d36322820190e080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b26110000000e23384d63788c9fb5cac0af99846f5e4c3a2a18080000000000000000000000000000000000000000000000000000000818293a4c5e6f8399aec0cab59f8c78634e38230f000000000000000000000000000000000b203448596f8499aec4bdc1c6c9cebbaa937e68533a2a1704000000000000000000000011263c51667b91a6c5cdb9a88d78634e38230e000000000000000000000000000000010101010101000000000000000000000000000000000000000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000000000000000000000000000000000b20354a6074899eb4babababab7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7c0c3cddae0d2c9c6b7b7a5907b66503b26110000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b00000000000000000000000000000b20354b60758aab9f9990877f776e655d534c4639362d201d150a0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b26110000061a2c3d566b8095abbcc8b4a28f7a644f402f1c0c00000000000000000000000000000000000000000000000000000000000c1c2f404f647a8fa2b4c8bcab96806b563d2c1a060000000000000000000000000000011426364d62788b9fb4cac1b5b0b5c1c8af9a856f5847331f0a00000000000000000000000d23384d62788da7b9ccc6a7927c6752382815020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000071c30435470859ab0c5cfcfcac0bdbabababababababababababababac2c6cfdce3d6ccc9babaa5907b66503b26110000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b00000000000000000000000000000b20354b60758a958c847b736a61594f4b3f363329211a0f0902000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b261100000c2135495b72879cb1c9c7b09a85705c4b372212000000000000000000000000000000000000000000000000000000000000001222364a5c70859aafc7c9b29c87725b4936210c0000000000000000000000000000081c3043546a7f95aabbc2b5a39ba3b5c6b49f8b77614c37210c00000000000000000000000b20354a6074899eb3c9c1ac97816c5645321d090000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000000000000000000000000000132536566c8196abc1d6cabaada8a4a4a4a4a4a4a4a4a4a4a4a4a4a4adb2becfd6c5b9b3a4a4a4907b66503b26110000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b00000000000000000000000000000b20354b60748880786f6660544c473b372e211e170b07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b261100000e23384e63788da4b6cabaa9927d68533e2e1b0400000000000000000000000000000000000000000000000000000000000000071b2e3e52687d92a9bacab6a58e79634e39230e00000000000000000000000000000b20354b6074879db2c8b5a49b869ba8b9bbaa927d68523928160300000000000000000000071c3043546e8499aec9c8b39e8975604b36201300000000000000000000000000070c0e170b0700000000000000000000000000000000000000000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000000000000000000000000000000000013283d52687d92a7c7d7c0ad9c928f8f8f8f8f8f8f8f8f8f8f8f8f8f98a0b2c6ccb9a79e8f8f8f8f7b66503b26110000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b0000000000000000000000000000081d31445560756b625a514b4336342a231c110a030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611000014293e54697e93a9c2c9b49f8a76614b3621100000000000000000000000000000000000000000000000000000000000000000001021364b61768a9fb4c9c3a9947e69543f29140000000000000000000000000005182b3b51667b90a5b7c7b19c86758a9eb4c8ae99836e5746321e09000000000000000000000013253654697e93abbcccb8a7917c675241301c0c00000000000000000000010f1a21242c201c13080000000000000000000000000000000000000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000e24394e63798ea9bacdbda8927e7a7a7a7a7a7a7a7a7a7a7a7a7a7a8298adc2c9b39e897b7a7a7a76614c36210c0000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b000000000000000000000000000001152737455660564d483c3530261f180c080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b26110004182a3b596e8398aec3c4af9a846f5746331e0a0000000000000000000000000000000000000000000000000000000000000000000a1e3346576f849aafc4c3ae98836e593b2b18050000000000000000000000000b203448596e8399aec3baa9937e6e8499aec3b49f8a76614b36210c00000000000000000000000d22384d62788c9fb5cac5af9a84705f4d3a2a190a0000000000000000000f1f2d363941353025180800000000000000000000000000000000000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000b20354b6075899fb4c9bca7927c67656565656565656565656565687e93a8bdc4ae99846f656565615846331f0a0000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b00000000000000000000000000000009192738454b4538352b201c14080400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611000b1f34475973889db2c8c8a9947f6954392917030000000000000000000000000000000000000000000000000000000000000000000317293954697e94a9c8c8b29d8873594834200b0000000000000000000000011426364d62778b9fb4c9b49f8a77687e93a8c2baa9917c675137271502000000000000000000000b2035485a70859aafc3c8b4a2927d67584737271a0e040000000000030f1d2d3d4a4e574a4336251808000000000000000000000000000000000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000000000000000000000000000081d31445570869bb0c5c0ab96816b564f4f4f4f4f4f4f4f4f4f53687e93a8bdc4ae99846f594f4f4c463a2917040000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b000000000000000000000000000000000a1a273136312720190e0801000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611000c22374c61778ca6b7cbbbaa8f7a654f3a251000000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8faabbcbb7a68c77624c37220d0000000000000000000000081c3043546a7f94aabbc4ae98836e62788da4b6c7ad98826d5544311d080000000000000000000005192b3c52677c91a5b6cac0b39e8876615545382b1f18110e0d0c0e171e2d3b4a5b636c605443362618080000000000000000000000000000000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000000000000000000000000000000000001142637576c8197acc1c4af9a856f54433a3a3a3a3a3a3a3a3e53687e93a8bdc4ae99846f59443a3633291c0c000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b00000000000000000000000000000000000a151d201d150a06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b26110010253a4f657a8fa4c4cab49f8a76604b36210b00000000000000000000000000000000000000000000000000000000000000000000000b21364b60768a9fb4cac4a58f7a65503a251000000000000000000000000b20354b6074879db2c8b7a6907b665a71869cb1c6b39e8975604b36200b00000000000000000000000e20354b6073879cb2c0cbb8a69983736056483c342a262322222329333d4a59637981726054433626180800000000000000000000000000000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000013283e53687d93a8c8c9b39e8974604a35252525252525293e53687e93a8bdc4ae99846f59442f211f170c00000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b00000000000000000000000000000000000002090b09020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b26110013283d53687d92a8bdc7b19c87725745321e090000000000000000000000000000000000000000000000000000000000000000000000091e32455672879cb1c7bda8937d68533e28130000000000000000000005182a3b50667b90a5b7c9b29d887460566b8096abc6b9a7907b65503625130000000000000000000000081d314455677d91a2b3c5c5b3a1988274625a4c473b3b3837373939464b5b63778796817260544336261808000000000000000000000000000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000000000000000000000000000000f24394f64798eaabbccb9a78d78634d38231010101013293e53687e93a8bdc4ae99846f59442f1a0a040000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b261100162b40566b8095abc0c4af99846f5a39281603000000000000000000000000000000000000000000000000000000000000000000000003162838596f8499aec4c0ab96806b56412b16000000000000000000000b1f3448596e8399aec3bcab95806b5450657a90a8b9c5ac97816c5443301c0700000000000000000000011426374d5f6f849aa7b8c8bfb2a09884786b615954504e4c4c4e5157616a79879d9f978172605443362614010000000000000000000000000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000000000000000000000000000000b20364b60758a9fb4c9c5a7917c67523c271200000013293e53687e93a8bdc4ae99846f59442f1a04000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b00000000000000000000000000000000020b1113202020202020202020202020202020202020202020202020202020202013110b020000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b261100182d42586d8297adc2c1ac96816c57412c1700000000000000000000000000000000000000000000000000000000000000000000000000172c41576c8196acc1c2ad97826d58422d18000000000000000000001325364c62778b9fb4cab59f8c78634d4b6075899eb3c8b39d8874604a35200b0000000000000000000000091930414d6278899eaabbc9beb2a29a8a80776f696663626163676d767f8b9da5b19f978172605443301c080000000000000000000000000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210e00000000000000000000000000000000000000091d31455671869bb1c6c0ab96806b56412b1600000013293e53687e93a8bdc4ae99846f59442f1a04000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b00000000000000000000000000000006131e2628353535353535353535353535353535353535353535353535353535353529261f140600000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611001a2f44596f8499aec4bfaa947f6a553f2a1500000000000000000000000000000000000000000000000000000000000000000000000000152a3f556a7f94aabfc4af99846f5a442f1a000000000000000000071c3043546a7f94aabbc6af9a85705a4944556e8399aec3b7a68f7a644f3a250f000000000000000000000000132035485a657c8c9fabbac6c0b4a89e958b847f7b787777787c8289959fa9b6beb1a0978273604b35200b000000000000000000000000000000000000000000000000000000000005192b3c4d63788da2b8cdb8a38e79634e3c2c190600000000000000000000000000000000000002152738576d8297acc2c4af9a846f5a3c2b1906000013293e53687e93a8bdc4ae99846f59442f1a04000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c0000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b0000000000000000000000000000021324313a3d4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a3e3a31241402000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611001b31465b70869bb0c5bda8937e68533e29130000000000000000000000000000000000000000000000000000000000000000000000000013283e53687d93a8bdc6b09b86715b46311c0000000000000000000b20354a6073879db2c8b9a8927d67523c3753687d92a8c2c4ab96806b563d2d1a07000000000000000000000005192b3c4c5e677d8d9fa8b6c2c6b9b4aa9f9994908d8c8c8e91979ea7b4bac7c5b8a99d8877614c37220c00000000000000000000000000000000000000000000000000000000000b2035485a6d8298adc2d7c3ad98836e5a4935200f0000000000000000000000000000000000000013293e53687e93a8c8c8b39e89735a4935200b000013293e53687e93a8bdc4ae99846f59442f1a04000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000000000000000000000000000000000000070d0f0d0b0600000b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b00000000000000000000000000000b1e31424e536060606060606060606060606060606060606060606060606060606060534e42311f0b000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611001c32475c71879cb1c6bca7917c67523c27120000000000000000000000000000000000000000000000000000000000000000000000000012273c51677c91a6bcc7b19c87725c47321d000000000000000005182a3b50657b90a5b6c9b39e8975604b36374d62778ca3b5c7b29c87725b4a36210c0000000000000000000000000e1e2f404d5f677d8a9ca4b4b9c6c8bbb4afa9a5a3a1a1a3a6acb3b9c5c9bfb2a79e8b7b655847331f0a00000000000000000000000000000000000000000000000000000000061a2c3d4d62788da0b2c5dac6b2a08d78624d3d2c1a060000000000000000000000000000000000000f253a4f647a8faabbccb8a78d78624d38230d000013293e53687e93a8bdc4ae99846f59442f1a04000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000000000000000000000000002101b22242320190e0b0b20354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b000000000000000000000000000011263a4e6068757575757575757575757575757575757575757575757575757575757568604e3a2611000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611001d32475d72879cb2c7bba6917b66513c26110000000000000000000000000000000000000000000000000000000000000000000000000011263c51667b91a6bbc7b29d87725d48321d00000000000000000b1f3447596e8398aec3c2ac97826c56453234485971869bb1c6b6a58e79634e39240e00000000000000000000000000112130414d5f677a86959ea8b2b7c3c4c4bebbb8b7b6b8bcc2c6c7bab4ada199897b655d4b3a2a1804000000000000000000000000000000000000000000000000000000000c2135495b6d8297adbeced1cfbead98826d5b493521100000000000000000000000000000000000000b21364b60768a9fb4cac5a6917c67513c2712000013293e53687e93a8bdc4ae99846f59442f1a04000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000000000000000000000000010202d363938352b22201820354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b000000000000000000000000000013283d53687e8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a7e68533e2913000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611001d33485d72889db2c7bba5907b66503b26110000000000000000000000000000000000000000000000000000000000000000000000000010263b50657b90a5bac8b29d88735d48331e00000000000000001325364c62778b9fb4c9b5a48f7a644f38282b3b566b8095abc5c3aa957f6a553c2b190600000000000000000000000003132330414d5c64747f8a959da5aaafb2b4bcc9b9b9c6b9b4b1aca99f988e8377655d4b3f2e1c0c00000000000000000000000000000000000000000000000000000000071a2d3d4e63798c9fb4cac9bcc9cab49f8c79634e3e2d1b070000000000000000000000000000000000091e32455671869cb1c6c0ab95806b56402b16000013293e53687e93a8bdc4ae99846f59442f1a04000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c00000000000000000000000000000000071b2d3e4a4e4d483c37342b21354b60758aa0b5cab7a18c77624c37220d000000000000000000000000000000000000000000000c22374c61778ca1b6cbb5a08b76604b36210b000000000000000000000000000013283d53687d929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f937e68533e2913000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611001e33485e73889db3c8baa5907b65503b26100000000000000000000000000000000000000000000000000000000000000000000000000010253b50657a90a5bac8b39e88735e49331e00000000000000071c3043546a7f94aabbc8b19c86715c4a361a253a4f657a8fa7b8c6b19b86715a4935200b00000000000000000000000000051323303e4a56606a7680878f94999d9faba3a4a3a2a89e9b97918a837a6e62594b3f2e211100000000000000000000000000000000000000000000000000000000000c21364a5b6e8398aabbbab4a7b4babcab98836e5c4a362210000000000000000000000000000000000003162838586d8298adc2c4af9a846f5a3c2b19050013293e53687e93a8bdc4ae99846f59442f1a04000000000000000000000000000000000000000c21364b61768ba0b6cbb6a18b76614c36210c000000000000000000000000000000000d22364a5c64625a544c483b37354b60758aa0b5cab7a18c77624c37220d00000000000000000000000000000000000a0a0a0a0a0c22374c61778ca1b6cbb5a08b76604b36210b0a0a0a0a0a00000000000000000013283d53687d92a8b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5a8937e68533e2913000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611001d33485d72889db2c7bba6907b66513b26110000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b90a5bbc8b29d88735d48331e000000000000000b20354a6073879cb2c8bbaa947e69543e2e1b20354b6074899eb3c8b5a38d78624d38230d00000000000000000000000000000412202d38454b58616a727a7f84888a8d8e8e8e8d8c8986817c766e645c4c483b2e21110300000000000000000000000000000000000000000000000000000000071b2e3e4e63798c9fb5baa99f919fa9bab59f8d79644e3e2e1b08000000000000000000000000000000000014293e54697e93a9c9c8b39e88735a4835200b0013293e53687e93a8bdc4ae99846f59442f1a0400000000000000000000000a0a0a0a0a0a0a0a0c21364b61768ba0b6cbb6a18b76614c36210c0a0a0a0a0a0a0a0a00000000000000000f24394e647a7870696259534c474b60758aa0b5cab7a18c77624c37220d0000000000000000000000000000080e101f1f1f1f1f1f22374c61778ca1b6cbb5a08b76604b36211f1f1f1f1f1f100e0800000000000013283d53687d92a8bdcacacad1c8c4bebebebebebebebebebebebebebebebebebda8937e68533e2913000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611001d32475d72879cb2c7bba6917c66513c27110000000000000000000000000000000000000000000000000000000000000000000000000011263c51667b91a6bbc7b29d87725d48321d00000000000004182a3a50657b90a5b6c9b49f8b77614c3722101d3144556e8398adc9c1a9947e69543b2a1804000000000000000000000000000002101a28323a474c555c646a6f727577787979787674716c6761574f4a3e342b1d110300000000000000000000000000000000000000000000000000000000000d22364a5c6e8399abbcb49f8b7c8b9fb4bcab99846f5c4b372211000000000000000000000000000000000010253a50657a8fabbcccb8a78d77624d38220d0013293e53687e93a8bdc4ae99846f59442f1a040000000000000000080e101f1f1f1f1f1f1f1f1f21364b61768ba0b6cbb6a18b76614c36211f1f1f1f1f1f1f1f1f100e080000000000152b40556a808d857e776f6861585260758aa0b5cab7a18c77624c37220d00000000000000000000000003111c232534343434343434374c61778ca1b6cbb5a08b76604b363434343434343426231c11030000000013283d53687d92a8bdd2e3d1c0b4afa8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8937e68533e2913000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611001c32475c71879cb1c6bca7927c67523d27120000000000000000000000000000000000000000000000000000000000000000000000000012273c52677c91a7bcc6b19c87715c47321c0000000000000a1f3447596e8398adc3c4ae99836e5947341f0a14263752687d92abbcc5b09a85705947341f0b000000000000000000000000000000000a151d2a33373e4b4f555a5660626364646361585c57524c4639362d20180d000000000000000000000000000000000000000000000000000000000000081c2e3f4f647a8fa1b3bbaa97816c8197aabbb3a18f7a644f3f2f1c08000000000000000000000000000000000c21364b61768b9fb5cac5a6917c66513c27110013293e53687e93a8bdc4ae99846f59442f1a0400000000000003111c232534343434343434343434364b61768ba0b6cbb6a18b76614c363434343434343434343426231c1103000000152b40556a80959b938b857d766f6761758aa0b5cab7a18c77624c37220d00000000000000000000000011212e373a49494949494949494c61778ca1b6cbb5a08b76604b49494949494949493b382f21110000000013283d53687d92a8bbcbdcc8b4a29a93939393939393939393939393939393939393937e68533e2913000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611001b30465b70859bb0c5bea8937e69533e29140000000000000000000000000000000000000000000000000000000000000000000000000013293e53687e93a8bdc5b09b86705b46311b0000000000000c22374c61778a9fb4c9b7a6907b66513a2a18040c22374c61778b9fb5cab49f8b77614c37220c0000000000000000000000000000000000020c171f212e373a3f38454b4d4e4f4e4d4c473a423c363329221b1005000000000000000000000000000000000000000000000000000000000000000e23374b5d6f849aafbfb49f8b7862788b9fb4bfaf9a846f5d4b372312000000000000000000000000000000000a1e33465772879cb2c7c0aa95806b55402b160013293e53687e93a8bdc4ae99846f59442f1a0400000000000011212e373a49494949494949494949494b61768ba0b6cbb6a18b76614c49494949494949494949493b382f2111000000152b40556a8095aaab9f9a938a847d76738aa0b5cab7a18c77624c37220d0000000000000000000000081c2e3f4b4f5f5f5f5f5f5f5f5f5f61778ca1b6cbb5a08b76605f5f5f5f5f5f5f5f5f504c3f2f1c0800000011273c51667c919daebdcdc4af9a847e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e79634e39230e000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b261100192f44596e8499aec3bfaa957f6a55402a1500000000000000000000000000000000000000000000000000000000000000000000000000152a40556a7f95aabfc4ae99846f59442f1a0000000000081c2e3f54697f94a9bac8b29d8874604b35200c000b1f34475971869bb0c6bcab927d685339291703000000000000000000000000000000000000040a101b22252a273136383939393837332a2c27211e170b070000000000000000000000000000000000000000000000000000000000000000091c2f4050657a8fa2b3bcab97826d5a6d8297aabbb4a2907b6550402f180800000000000000000000000000000003172939586e8398adc3c4af99846f5a3b2b180513293e53687e93a8bdc4ae99846f59442f1a040000000000081c2e3f4b505f5f5f5f5f5f5f5f5f5f5f5f61768ba0b6cbb6a18b76615f5f5f5f5f5f5f5f5f5f5f5f504c3f2f1c080000152b40556a8095aabcb4afaa9f99928a8399aec3ccb7a18c77624c37220d00000000000000000000000e23374b5d6574747474747474747474768ca1b6cbb5a08b7474747474747474747474655d4c38230e0000000f24394c5e697f949fb0bfc9b49f8a7a69696969696969696969696969696969696969635b4a36210c000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b261100182d42576d8297acc2c1ac97826c57422d1700000000000000000000000000000000000000000000000000000000000000000000000002172d42576c8297acc1c2ac97826d57422d1800000000000e23374b5d72879cb1c7c0ab95806b5544311d080004182a3b556a8095aac5c9ae99846f5746331e0a000000000000000000000000000000000000000000080d0f15151d202223242423211f1717120c0a03000000000000000000000000000000000000000000000000000000000000000000000823384c5e70859ab0c0b49f8c79634e63788c9fb4c0b09b85705e4c36251300000000000000000000000000000000142a3f54697f94a9bec8b39d8873594834200b13293e53687e93a8bdc4ae99846f59442f1a0400000000000e23374b5d6574747474747474747474747474758ba0b6cbb6a18b7674747474747474747474747474655d4c38230e0000152b40556a8095aac1c7c8bbb4aea99f99a1b2c6ccb7a18c77624c37220d000000000000000000000010253a4f657b8a8989898989898989898c94a6bacdb8a4928c8989898989898989898a7b65503b2610000000091d30404f616c8196a0b2c0baa99e89796359535353535353535353535353535353534e4a3d2d1a07000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b261100152b40556a8095aabfc4af9a856f5a3a2a170400000000000000000000000000000000000000000000000000000000000000000000000417293a5a6f849aafc4c0aa95806b55402b160000000004172a3a50657b90a4b6c8b4a28d78634d3726140100000f243a4f647a8fa7b8c9b49f8a76614b36210c0000000000000000000000000000000000000000000000000002090b0d0e0f0f0e0c0a0400000000000000000000000000000000000000000000000000000000000000000000000000000818304050667b90a2b4bcab98826d5b495a6d8298abbcb4a3907b665443301c0800000000000000000000000000000010263b50657b90a5c3cbb8a68c77624d37220d13293e53687e93a8bdc4ae99846f59442f1a04000000000010253a50657b8a8989898989898989898989898b93a5b9cdb9a6948b8989898989898989898989898a7b65503b26100000152b40556a8095a3aab2b6c3c8c7bab4aeb2bfcfccb7a18c77624c37220d000000000000000000000010253a50657a8f9e9e9e9e9e9e9e9e9ea8a6b3c3e2cebbaa9f9e9e9e9e9e9e9e9e9e907b66503b261100000000122232434b60728298a2b4c2b8a79c8777615645363e3e3e3e3e3e3e3e3e3e3e3e3e39362d1f0f00000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b26110012283d52677d92a7c9c7b29d88725847331f0a00000000000000000000000000000000000000000000000000000000000000000000000a1f33475872879db2c7bda7927d68523d2813000000000a1f3347586d8398adc2c6b09a85705b493519090000000b20354b6074889eb3c8baa9917c675238281502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011426364d5e71859bb0c0b59f8c79634e3d4e63798c9fb4c1b19b8672604a3626140100000000000000000000000000000c21374c61768ca5b7cac4a6917b66513c261113293e53687e93a8bdc4ae99846f59442f1a04000000000010263b50657b909e9e9e9e9e9e9e9e9e9e9e9ea8a5b1c2d4c2b2a6a89e9e9e9e9e9e9e9e9e9e9e9e907b66503b2611000010253b50657b858d959ca5acb3b8c5c9c3c6cfd5ccb7a18c77624c37220d000000000000000000000010253a50657a8fa5b4b4b4b4b4b4b4b4b9c6c3d1ebd9c8bbb4b4b4b4b4b4b4b4b4a5907b66503b26110000000004141c3043546074849aa4b6c4b6a59b85746054433029292929292929292929292923211a0f0100000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611000f243a4f64798fabbccab7a58c77614c37210c00000000000000000000000000000000000000000000000000000000000000000000000c21374c61768ca5b7cac2a48f7a644f3a250f000000000c21374c61778a9fb4c9b9a8927d68523c2c1900000000081c3043546d8298adc8c7ad98836e5645321d090000000000000000000000000000000000000000000000000000000000000000050b0d1215171819181715120d0b0500000000000000000000000000000000000000000000000000081c304354667c91a3b5bfae98836e5b4a36495b6e8398abbcb5a3917c675443301c0900000000000000000000000000000a1f33475872879db2c7bfaa95806a55402b1513293e53687e93a8bdc4ae99846f59442f1a04000000000010263b50657b90a5b4b4b4b4b4b4b4b4b4b4b4b9c6c2cfdfd0c2c6b9b4b4b4b4b4b4b4b4b4b4b4a5907b66503b261100000e23384b5d65707880878f969ea6adb4b9c6c0c0c0b7a18c77624c37220d000000000000000000000010253a50657a8fa5bac0c0c0c0c0c0c0c1c4cdcacacacdc4c0c0c0c0c0c0c0c0bba5907b66503b261100000000000114263645566176869ca6b8c3b4a3998372604b433223141414141414141414140e0c07000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611000c21364c61768b9fb5cac3a5907b66503b2611000000000000000000000000000000000000000000000000000000000000000000000010253b50657b90a5c3cab6a48c76614c37210c000000081c2e3f54697e94a9bac9b49e8976614b36210e000000000114263652677c92aabbc9b49e8975604b36200b0000000000000000000000000000000000000000000000000000000000050b0d182022272a2d2e2e2e2d2a272220180d0b05000000000000000000000000000000000000000000011527374b6073869cb1c1b3a18e79644e3d2d3d4e63798c9fb5c1b19c8673604b372715020000000000000000000000000004172a3a596e8399aec3c4ae99846f593b2a1813293e53687e93a8bdc4ae99846f59442f1a04000000000010263b50657b90a5bac0c0c0c0c0c0c0c0c0c0c0c4cdcacacacdc4c1c0c0c0c0c0c0c0c0c0c0bba5907b66503b26110000081c2f3f4b505b636a727a818890989ea8abababababa18c77624c37220d000000000000000000000010253a50657a8fa5ababababababababacb0bdb5b5b5bcb0abababababababababa5907b66503b26110000000000000818283847586278889ea8b9c1b3a196816c614f413021100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611000a1e33465772879cb1c7c0ab95806b563c2b190600000000000000000000000000000000000000000000000000000000000000000005192b3c556b8095aac0c7b19c87725847331f0a0000000e23374b5d72869cb1c7c2ac97826d5746321e0900000000000c21374c61768b9fb4cab9a8907b6651362614010000000000000000000000000000000000000000000000000000030d181f222b34373c3f42434443423f3c37342b2220180d0300000000000000000000000000000000000000081d314455677d92a4b5bfae99836f5c4a3621364a5b6e8399aebfb6a4927d675544311d0a0000000000000000000000000000152a3f556a7f94aabfc8b39d88735948341f13293e53687e93a8bdc4ae99846f59442f1a04000000000010263b50657b90a5ababababababababababababb0bcb5b5b5bdb0ababababababababababababa5907b66503b261100000011212f383d494e555c646c747b8289929595959595958c77624c37220d000000000000000000000010253a50657b8f959595959595959595969f9f9f9f9f9f9e96959595959595959595907b66503b2611000000000000000a1a2a3a495a647a8a9eaabbbfb09f947f695f4d3f2e1f0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b26110003172939576d8297acc9c6b19b86715a483520090000000000000000000000000000000000000000000000000000000000000000000b2035485a71869bb0c6c9ad97826d583a291704000004172a3a50657a8fa4b6cab6a48f7a644f3928160300000000000a1f33475870859bb0c5c6ac97826d5443301c08000000000000000000000000000000000000000000000000000b161e2a34373b484d5155575859585755514d483b37342b1e160b0000000000000000000000000000000000021527384b6074879cb2c2b3a18f7a644f3e2d1a2d3d4f647a8ea1b3c2b29d8774604b382816020000000000000000000000000011263b51667b90a6c4c6b7a68c77624c372213293e53687e93a8bdc4ae99846f59442f1a04000000000010263b50657b90959595959595959595959595969e9f9f9f9f9f9f96959595959595959595959595907b66503b261100000003111c232c35383e4b4f5560666d767d8080808080808075614b36210c00000000000000000000000d23384d627880808080808080808080818a8a8a8a8a8a8a818080808080808080808079634e38230e00000000000000000c1c2b3c4a5c667c8c9fb4bcbdb59f8d7d675d4b3d2c1d0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611000013283d52687d92abbccab59f8c78624d3727150200000000000000000000000000000000000000000000000000000000000000011527374d62788c9fb5cabcab927d68533d28130000000a1f3347586d8298adc2c8b19c86715c4b371b0b00000000000004172a3a556a7f94aac4c8b39e8874604b35200b0000000000000000000000000000000000000000000000010f1b28323b474c545962676a6c6d6e6d6c6a676259554c483b32281b1002000000000000000000000000000000091d314556687d92a5b6c0af9a846f5c4a36200f22364a5c6f8499afc0b6a5937e685645321e0b000000000000000000000000000d22374c62778ca6b0b0b0a6907b66513b2613293e53687e93a8bdc4ae99846f59442f1a0400000000000e23384d637880808080808080808080808080818a8a8a8a8a8a8a818080808080808080808080808079634e38230e0000000000080e1a21232e3737444b505761676b6b6b6b6b6b6b615746321e0a00000000000000000000000c2035495a626b6b6b6b6b6b6b6b6b6b6c757575757575756b6b6b6b6b6b6b6b6b6b6b635b4935210c0000000000000000000e1e2d3e4c5e687e939eb0bebcab9f8b7b655b493b2a1b0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b261100000c22374c61778b9fb4cabcab957f6a5544311d0a00000000000000000000000000000000000000000000000000000000000000081d3144556a7f94abbccab59f8b77624c37220d0000000c21374c61768a9fb4babbaa947f69543e2e1b00000000000000000f24394f64798ea6b7bab8a68f7a654f3a25100000000000000000000000000000000000000000000003111f2d39464b59626a71777c7f82838383827f7c77726a62594b46392d20110300000000000000000000000000031628394b6074879db2c3b4a28f7a654f3e2e1b071b2d3e4f647a8fa2b4c3b29d8775604b392816030000000000000000000000000b1f34475973889b9b9b9b9b957f6a55402a15293e53687e93a8bdc4ae99846f59442f1a0400000000000c2035495a636b6b6b6b6b6b6b6b6b6b6b6b6b6b757575757575756c6b6b6b6b6b6b6b6b6b6b6b6b6b635b4935210c00000000000000060c101b2227313539464b52565656565656564b4639291603000000000000000000000006192c3c494d56565656565656565656576060606060606056565656565656565656564e493d2c1a060000000000000000000010202f404e606b8095a0b2c0baa99e89796359473928180800000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b261100000b1f34475970859ab0c6c9b29d8774604b392816030000000000000000000000000000000000000000000000000000000000031628384b6074879db2c9c6b09b85705948341f0b00000115273754697e93a9a4a4a49f8b77624c37221000000000000000000b20354a6074889da4a4a4a496816b563727150100000000000000000000000000000000000000000111212e3d4a57616b777f868c9194979899989794918c877f776b61574a3e2e211101000000000000000000000000091e324557697e93a5b7c1af9a84705d4b372010001022374b5c6f849aafc0b7a6937e695746321e0b00000000000000000000000005182a3b576c81868686868686806b56402b16293e53687e93a8bdc0ae99846f59442f1a04000000000006192c3c494d56565656565656565656565656566060606060606056565656565656565656565656564e493d2c1a06000000000000000000000709151d202832363d404040404040403632291b0b000000000000000000000000000e1e2c353840404040404040404040414a4a4a4a4a4a4a414040404040404040404038352c1f0e000000000000000000000002122231424a60728298a2b4c2b8a79d877761574536261401000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611000004182a3b53697e93a8b9cbb7a5927d685745321e1100000000000000000000000000000000000000000000000000000000000e1e324556687d92a5b7cabaa8937e69543b2a18050000081d31445571868f8f8f8f8f8f836e5947341f0b0000000000000000071c3043546d828f8f8f8f8f8f87725544311d0800000000000000000000000000000000000000000f1f2e3f4b5c6475808a949ca4a6aaacadaeadacaaa6a49c948a8075645c4b3f2e200f0000000000000000000000031729394b6075889db3c3b4a3907b65503f2e1b0200081b2e3e50657b8fa2b4c4b39e8875614b3a2917040000000000000000000000000d293e51636c7171717171716b62513d2913293e53687e93a8ababab99846f59442f1a040000000000000e1e2c353840404040404040404040404040414a4a4a4a4a4a4a414040404040404040404040404038352c1f0e0000000000000000000000000001080b161e21272b2b2b2b2b2b2b211e160b0000000000000000000000000000000e1920232b2b2b2b2b2b2b2b2b2b2c353535353535352c2b2b2b2b2b2b2b2b2b2b23211a0e0000000000000000000000000004141c3043546074849aa4b5c4b6a59b8575605443301c14050000000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b26110000000c21364c61768a9eb4c7c3b29d8775604b3f2f1f0f0100000000000000000000000000000000000000000000000000010f1e2e3f4b6075879db2c3c8b49f8a76614c36210d0000000b20354b60737b7a7a7a7a7a7a77624d3b2a18050000000000000000001325364d62777a7a7a7a7a7a7b73604b35200b000000000000000000000000000000000000000b1b2d3d4b5d657a86959fa8b1b6c2bfc1c2c2c2c1bfc2b6b1a99f96867a655d4b3e2d1c0c000000000000000000000a1e334657697f94a6b7c1b09b85705d4b3821100000001023374b5d70859ab0c1b8a6947f6a5846331f0c0000000000000000000000000e22344551575b5b5b5b5b5b565144332113293e53687e939595959595846f59442f1a04000000000000000e1920232b2b2b2b2b2b2b2b2b2b2b2b2b2c353535353535352c2b2b2b2b2b2b2b2b2b2b2b2b2b23211a0e000000000000000000000000000000000003090c12161616161616160c0a030000000000000000000000000000000000060c0d16161616161616161616172020202020202016161616161616161616160e0c060000000000000000000000000000000013253645566176869ca6b7c3b5a3998372604b433223120300000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b26110000000a1e3346576c8197a9bacab7a595806b5d4b3d2c1f1207000000000000000000000000000000000000000000000007121f2c3c4b5d6b8095a5b7cabbaa97826d5846331f0a000000081d3144556065656565656565625948341d0d0000000000000000000008203448596265656565656565605544311d08000000000000000000000000000000000000031729394a5b657b8a9ca4b4bac6c8bbb4b1aeadaeb1b4bbc8c7bab4a49c8a7b655c4a3a291704000000000000000004172a3a4c6176899eb3c4b5a3907b66503f2f1c03000000081c2e3f50657b90a3b5c4b39e8976614c3a2a18040000000000000000000000051626343e41464646464646403d3326160f243a4f647a8080808080807d68523d2813000000000000000000060c0e16161616161616161616161616162020202020202017161616161616161616161616160e0c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000818273846586278889da8b9c1b3a196816c614f4130211001000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611000000031729394d62788b9fb4c4c3b49f8d7b655b493d30211a0f0b080100000000000000000000000000000001080b0f1a21303d495b657b8c9fb4c3c5b49f8b78624d3a29170400000001152737444b4f4f4f4f4f4f4f4d483b2b18000000000000000000000005182b3b484d4f4f4f4f4f4f4f4b44372715010000000000000000000000000000000000000a1e33465763798a9ea8b6c2c5b8b3aa9f9b9897989b9faab3b8c4c2b6a89e8a7a645846331f1000000000000000000a1f3347586a8095a7b8c2b09b85715e4c38211100000000001123384c5e70859bb0c1b8a795806b5847331f0d000000000000000000000000081622292c3131313131312b292116080d22374b5c646b6b6b6b6b6b685f4e3a2510000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d171c1f2020202020200e0c070000000000000000020b111320202020202020201f1d170e02000000000000000000000000000a1a293a485963798a9eaabbbfb09f947f695f4d3f2e1f0f000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6bba6907b66513b2611000000000b2035485a6c8196a6b8cbbcab9e8879635b4d40362d23201d151b0c0a0400000000000000040a0c1b151d20232d36404c5b6379889daabbcbb8a696816c5a49351c0c000000000009192731353a3a3a3a3a3a3a37342b1d0d0000000000000000000000000d1d2b34373a3a3a3a3a3a3a3531271909000000000000000000000000000000000000071a2d3e4c6176879da8b9c6c0b4a79e948b86838283868b939ea6b4c0c6b9a89d8776614c3e2d1b0700000000000005182a3b4c6176899eb3c5b5a4917c6651402f1c030000000000091c2f4051667c91a3b5c5b49e8a77614c3b2b1805000000000000000000000000050e15171c1c1c1c1c1c16140e0400071b2e3e4b4f565656565656524e41311e0b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d13152020202020202012100a0100000000000000000000000000010a10122020202020202015130d0300000001111f2a313435353535353524211a0f01000000000006131e2628353535353535353534322b201202000000000000000000000000000b1b2b3b4a5b657b8c9fb4bbbdb59f8d7d675d4b3d2c1d0c0000000000000000000000000000000000000000000000000000000000000303030303030303071c31465c71869bb1c6bba6907b66513b26110000000006192b3c4c6176889db3bdc9b8a69d8779665e4e4a3d3935312731221f180c00000000000c171f2131273135393d4a4e5e6679879da6b8c8bdb39e8877614c3c2c190000000000000009151d20252525252525252220180d00000000000000000000000000000d18202225252525252525201d1509000000000000000000000000000000000000000d21364a5c6c8197a5b7c6c0b4a29a887e77716e6d6e71767e889aa2b4c0c6b7a597826d5c4a36220e0000000000000b1f3448596b8096a8b9c2b19c8673604a352012000000000000001124384c5e71869bb1c2b9a896806b594834200e0000000000000000000000000000000206060606060601000000000010202e373a4040404040403d3a31231301000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071520272a3535353535353528251e1305000000000000000000000005131e2527353535353535352a2820150700000d1f2f3d46494a4a4a4a4a4a39362d1f0f00000000021324313a3d4a4a4a4a4a4a4a4a49463d30200e00000000000000000000000000000d1d2d3d4c5d677d929dafbdbcab9f8b7b655b493b2a1b0a0000000000000000000000000000000000000000000000000000040a0c1818181818181818181c31465c71869bb1c6bba6907b66513b261100000000000e1f334758667c919fb1c0c4b7a69d8a7c6e635b544e4b44374637342a1c0c0000000c1c2a33374637444b4e535b636e7c899da5b7c4c0b19f917c665847331e0e000000000000000001080b101010101010100d0b0500000000000000000000000000000000050b0d101010101010100b08010000000000000000000000000000000000000005192b3c4e64798d9fb5c3c5b4a29a847769615859585958616977849aa2b4c4c3b19f8e7a644f3c2b19060000000005192b3c4c62778a9fb4c6b6a4917c675443301c0700000000000000091d2f4051677c91a4b5c6b49f8a77624d3c2b190600000000000000000000000000000000000000000000000000000002101b22242b2b2b2b2b2b28251e1305000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000031525323c3f4a4a4a4a4a4a4a3d3a3023130000000000000000000000132330393d4a4a4a4a4a4a4a3f3c3325150300172a3d4d5a5e6060606060604e4a3d2d1a070000000b1e31424e5360606060606060605f5a4e3d2b1700000000040a0c0f0f0f0f0f0f0f0f0f1f2f3f4d5f6a7f959fb1bfbaa99e8979635947392819090000000000000000000000000000000000000000000000000b171f212e2e2e2e2e2e2e2e2e2e31465c71869bb1c6bba6907b66513b2611000000000004172a3a4c5e6c8197a2b3c0c4b7a89e91837970696360555c5b4c473a2a18040004172a3a474c5b5c556063696f7983919ea7b7c3c0b4a297816c5e4d3a2a18000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b2035485a6e8399abbcccb8a79a847461594c473a423a474c586174849aa6b8cbbdae99836e5a4835200b000000000b2034485a6c8196a8bac3b19c8673604b3625130000000000000000001220354a6073869cb1c2baa997816c5a4835200a0000000000000000000000000000000000000000000000000000000000070d0f16161616161613100b01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d2032434f5460606060606060524d41301b0b0000000000000000000a1a30414d526060606060606055504333200d001c31465a6b74757575757575705b4a36210c00000011263a4e60687575757575757575746c5a46321d0000000c171f212424242424242424242424314150616c8197a1b3c1b8a79d877761574537261401000000000000000000000000000000000000000000000b1b2933364343434343434343434343465c71869bb1c6bba6907b66513b26110000000000000c1c30404b6073839aa2b3bfc6b9b3a1998e857e7875727170615947341f0a000a1f3347586170717275787e848e99a1b3b9c5bfb3a29a8473604b40301c0c000000000000000000000000000000000000000000000000000000000000040a0c11151718191816140f0b0801000001080b121110100f0e0e0d0d0c0b0b07000000000000000d22384d62788c9fb4c9c3b39e89776156473a332a2d2a333a47566176889eb3c3cab59f8c78624d38230d000000011527374d62788b9fabababa5927d675443301808000000000000000000071c304354677d92a4ababab9f8b78624d3827150200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013273c4f616a75757575757575675f4d3928160300000000000000031628384d5f67757575757575756a61503c2813001f34495e74898a8a8a8a8a8a79634e39240e0000061a2c3d53687e8a8a8a8a8a8a8a8a8a745f49341f00000c1c2a333739393939393939393939393939434b60738399a3b5c3b6a59b8575605544311d160500000000000000000000000000000000000000000417293a464c5858585858585858585858585c71869bb1c6bba6907b66513b261100000000000000121d31445561758499a1b4bbc8bfb3aea29a938e8a87868577614c37220c000c21374c61768586878a8e939aa2aeb3bfc8bbb4a19984766155443122120000000000000000000000000000000000000000000000000000000000070c181f22262b2c2e2e2d2c2924201d150909151d202726262524242322222121201c13080000000005182b3b556a7f95abbccbb7a5937e685947382a1f1718171f2a384758687d92a5b7cabcab95806a553c2b19050000081d3144556d829595959595958773604b36261400000000000000000000001325364b607386959595959595826d5645311d0900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002090b101517181917130d0b050000060b0d111110100f0e0e0d0c0c0b09020000000000152a3f546a7f8a8a8a8a8a8a8a7d675746321e0e00000000000000091e324556677d8a8a8a8a8a8a8a7f6a553f2a15001f34495e74899e9f9f9f9f8e79634e39240e00000c2135495b70859b9f9f9f9f9f9f9e8a745f49341f0004172a3a474c4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e556175859ba5b7c3b5a3998373604b4434220e00000000000000000000000000000000000000000a1f334658616d6d6d6d6d6d6d6d6d6d6d6d6d71869bb1c6bba6907b66513b261100000000000000011527374657617483949faab4c0cac0b4afa9aa9f9d9c8c77624d37220d000d22374c62778c9c9d9faaa8afb4c0cac0b4aa9f9583756158463727150400000000000000000000000000000000000000000000000000000008131c202a34373c4042434343413e3a35312720192731353c3c3b3a3a39383837363635302518080000000b2034485971869cb1c9c7b29d8774604b3a2a1a0c0400040c1a2a3a4b6074879db2c7c9b19c86715a4834200b00000b20354b6074808080808080807b6555443118080000000000000000000000081d314455657b8080808080808074604b36200b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060a161e21262a2c2e2e2c282220190d0e19202327262525242423222221201d150a000000000b20364b6074869cab9f9f9f9d8875614b3c2b1905000000000005192b3b4b6075879d9f9f9f9f9c8674604b36200b001f34495e74899eb3b5b5a38e79634e39240e00011426364e63788da2b4b5b5b5b5b49e89745f49341f000a1f3347586164646464646464646464646464646464646477879db2c7c1b3a197816c62513e291400000000000000000000000000000000000000000c21364c6176828383838383838383838383838298a3b5c9bba6907b66513b2611000000000000000009192939465660727f8c9aa2aeb4bcc9c5c8bbb4b2a28c77624d37220d000d22374c62778ca1b2b4bbc8c4c9bcb4afa29a8c7f726057463a2919090000000000000000000000000000000000000000000000000000000d182530353a474c51555758595856534f4b4437352c37444b5151504f4f4e4e4d4c4c4b4a433625130000000d22374d62778ca4b5c9c3aa95806a5544311c0c00000000000c1d3144556a7f95aac3c9b5a48d77624d38220d0000081d314455606b6b6b6b6b6b6b655d4c372614000000000000000000000000011426374b5d656b6b6b6b6b6b6b605645311d090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e19202832363b40414343413d38342b201e2b35383c3b3b3a3939383837363631271a10030000081d314455657b8d9fb5c5b7a695806a5a48352010000000000008203448596a7f95a5b7c5b1a08f7b655645311d09001f34495e74899eb3c9b8a38e79634e39240e00081c3043546b8095abc0d1cacac9b49e89745f49341f000c21374c6176797979797979797979797979797979797979797d91a7bcd0bfb19f96816c56412c1701000000000000000000000000000000000000000d22374c62778c98989898989898989898989898a0b2c2d2bba6907b66513b26110000000000000000000b1b29384554606a7a8490999fabaeb3b7c4bbb7a28c77624d37220d000d22374c62778ca1b7bbc4b8b3aeab9f9990857a6a60544539291b0b0000000000000000000000000000000000000000000000000000000e1d2b36434a515961666a6c6d6e6d6b696460554d493c4455606766656564636362626160605443301c07000012283d52677d92a7c2cbb7a58e79634e372715000000000000011527374e63798ea5b7cac2a7927d67523d2812000001152737444b55565656565656504c3f2f19090000000000000000000000000009192f3f4b50565656565656554b45382715020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000151e2c3538454b505557585857534d483c352c3c494d5151504f4f4e4d4d4c4b4b45382e21100000021527374b5d6d8297a7b8c4b49f8a78624d3f2e180800000008182e3e4d62788a9fb4c3b8a797826d5d4b38271502001f34495e74899eb3c9b8a38e79634e39240e000b20354b6074889db2c8dddfdec9b49e89745f49341f0013283d53687d8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e919bacc0d4cebdb19c87715c47321c07000000000000000000000000000000000000000d22374c62778ca1adadadadadadadadadadadadb2becfd0bba6907b66513b2611000000000000000000000b1a2836434b5c64707b848b93989da6a4a5a6a28c77624d37220d000d22374c62778ca1a6a5a4a69d99938b847c70645c4b4336281b0b0000000000000000000000000000000000000000000000000000000e1e2b3b485460666f777b8081838382817e7a746c625a4a4b60737c7b7b7a7979787777767572604a35200b0001172c41566c8196abc1c7b29d88725b4a36190900000000000000092135495b72879db2c7c1ac96816c57412c170000000919273135404040404040403b382f211100000000000000000000000000000011212f373b404040404040403631271a0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131c333c494d5660656a6c6d6e6c68625a4d493c495a626666656564636362616160564b3f2e1b08000009192e3f4c6176889eb3c0baa998826e5d4b3625130000001325364b5c6d8298a8bac0b39e8977614c3f2e1a0a00001f34495e74899eb3c9b8a38e79634e39240e0417293a50667b90a6b7cbdff3dec9b49e89745f49341f0013283d53687d92a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a7acb9c9dcdac4af9a856f5a45301a05000000000000000000000000000000000000000d22374c62778ca1b7c2c2c2c2c2c2c2c2c2c2c2c6c7c7c7bba6907b66513b261100000000000000000000000a1826303e4a4e5e666f777e83888b8e9091928c77624d37220d000d22374c62778c9291908e8b88837e786f665e4f4a3e3026180a0000000000000000000000000000000000000000000000000000000a1b2b3c485962727c848c91959798989896938f8881786a605461778c91908f8f8e8d8d8c8b8b816c57412c1700031628395b70859ab0c5c3ad98836e583d2d1a0000000000000000061a2c3d586d8398adc2c5b09b85705b3929170300000009151d202b2b2b2b2b2b2b26231c110300000000000000000000000000000003111c23252b2b2b2b2b2b2b201d150a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000818253043505a626d757b7f818383817d786e635a4d4d62787c7b7a7a79797877777675655d4b37220e000000101f334758687d92a2b4c7b2a08f7a655443301c0b00071c304354647a8d9fb5c6b4a2927d6858473321110000001f34495e74899eb3c9b8a38e79634e39240e0a1f3347586e8398adc4d4e7f3dec9b49e89745f49341f0013283d53687d92a8b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9bcc0c9cfcfcfc4af9a856f5a45301a05000000000000000000000000000000000000000d22374c62778ca1b1b1b1b1b1b1b1b1b1b1b1b1b6b1b1b1b1a6907b66513b261100000000000000000000000008141c2d36404c505962686e7376797b7c7d7d75604b36210b000b21364b60757d7d7c7b7976736e68625a514c40362d1c140800000000000000000000000000000000000000000000000000000003162839485a627784919aa2a6aaacadaeadaba8a79e968b7f726062788da2a5a4a4a3a3a2a1a196816c57412c1700091e32465773889eb3c8bfa9947f6a543f2a15000000000000000000142a3f54697f94a9bec8b39e88735746331e0a0000000001080b16161616161616100e0800000000000000000000000000000000000000080e10161616161616160b09020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000132536434a616a78828a909596989896928b8378675f54697e9190908f8e8e8d8d8c8b8b7b654f3a251000000004172a3a4e5f70849aa9babeb09b8572604a392916031628394a6072859babbcbbaa9a8472604a3a2a18030000001f34495e74899eb3c9b8a38e79634e39240e0c21374c61768a9fb4c9dbdee5dec9b49e89745f49341f0013283d53687d92a8babababababababababababababababababababababababaaf9a856f5a45301a05000000000000000000000000000000000000000d22374c62778c9c9c9c9c9c9c9c9c9c9c9c9c9ca49c9c9c9c9c907b66513b26110000000000000000000000000001101b222f383b484d535957616466676768605745321e0900091e324556606867676664615859534d483c382f221b100100000000000000000000000000000000000000000000000000000000091e3245576278889aa1afb4c0bfc0bbb8b7b8c5b8b3a99f94826d63798ea3b8bab9b8b8b7b7ac96816c57412c17000c21364b61768ba6b8cbbba6917b66513c261100000000000000000011263b51667b90a6bbcbb8a68b76614b36210c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c304354606d7f8b989fa9aaacadadacab9f998a7d675e6a8095a6a5a4a4a3a2a2a1a08f7a654f3a2510000000000c1c31414e63798b9fb4c3b5a3927d685746321e0e1e324557677d92a3b4c3b49f8b79635443301c0c000000001f34495e74899eb3c9b8a38e79634e39240e1a2d3d53687e93a9bac9c6c9d2dec9b49e89745f49341f0013283d53687d92a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a49a856f5a45301a05000000000000000000000000000000000000000c22374c617686878787878787878787878787878a8787878787867b65503a251000000000000000000000000000000007111c232b34373e39464c4f505152524b45392816030003162838454b525251504f4c463a3e38352b241d12070000000000000000000000000000000000000000000000000000000000021528384b6075869ca6b3bfc4b7b3aba5a3a2a3a5a9aeb4b4a0947f69798fa4b9d0c7c4bebbc6ac96816c57412c17000e23384e63788da3c4d5b9a38e79644e39240f0000000000000000000e24394e63798ea3c9d5c5a38e78634e39230e00000000080e1020202020202020202020202020202020202020202020201f1c170d01000000000000000000000000000000000000000000000000000000000000030d131520202020202020202015130d04000000000000000000000000000000000000071a2d3d4a607281949faab4bac7c1c2c3c9bcb4a89f8c7c666c8197acbabab9b8b8b7b6a48f7a654f3a25100000000000132135495b6b8095a5b6c1b39d8875614b3c2b192b3c4b6075889db2c1b7a595806b5b4a36251300000000001f34495e74899eb3c9b8a38e79634e39240e21364a5b70859bb0c2b5b1b5c2d2c9b49e89745f49341f0013283d53687d8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f846f5a45301a05000000000000000000000000000000000000000a1f33475861727272727272727272727272727275727272727272655d4b37230e0000000000000000000000000000000000090d19202229293336393b3c3d3d3632281b0a0000000a1a2832363d3d3c3b39363329292220190e0900000000000000000000000000000000000000000000000000000000000000091d3245566a7f94a4b6c4beb2a69d95908e8d8e9093999faab49e8a777a90a5babfb3afa8a6a3a896816c57412c170010253a4f657a8fa4bad7c6a18c77614c37220c0000000000000000000c21374c61768cabbccfbaa48f7a654f3a2510000003111c2326353535353535353535353535353535353535353535353534312a1f110100000000000000000000000000000000000000000000000000000000071520282a3535353535353535352b2821150700000000000000000000000000000000000d21364a5c697f949fb4bbc8cdc9c5b8b3b1b2b3b9aa9e89776e8398adc3cfcec5c2bdc5a48f7a654f3a25100000000000061a2c3d4b6074879cb2beb7a695806b5a48352035485a6a8095a6b7beb29d8775604b3d2d180800000000001f34495e74899eb3c9b8a38e79634e39241527374e63798ea3b5b5a49ca4b5c9c9b49e89745f49341f000d22374c62777a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a79634e39240e000000000000000000000000000000000000000004182a3a474c5c5c5c5c5c5c5c5c5c5c5c5c5c5c605c5c5c5c5c5c504b3f2e1c0800000000000000000000000000000000000000050b0d13171e212426272828211e160a00000000000a161e212828272624211f17130d0b050000000000000000000000000000000000000000000000000000000000000000000b20364b6075899eb3c2c1b2a09888807b7878797b7e848b979fa8937e7c91a6bbb3a19a93918e8b897f6a55402a150011263c51667b91a6bbcdbaa88a75604b35200b0000000000000000000b20354b60758a9fb5cabba6917c66513c2711000011212f383b4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a49463d2f1f0d000000000000000000000000000000000000000000000000000000031525333c404a4a4a4a4a4a4a4a4a403c3325150400000000000000000000000000000005182b3b4e64798b9fb4bdcec6bab4aba79e9c9c9ea7aaa796816f849aafc4cebeb2ada7a4a78f7a654f3a25100000000000000f1e324556667b90a0b2c4b49f8a78624d3f2e3f4d62788a9fb4c4b2a0907c665645321f0f0000000000001f34495e74899eb3c9b8a38e79634e39241d3144556b8096abb6a49c869cb1c6c9b49e89745f49341f000b1f3447596265656565656565656565656565656565656565656565656565656565635b4a36210c0000000000000000000000000000000000000000000c1c2a333747474747474747474747474747474a4747474747473a372e2111000000000000000000000000000000000000000000000000030a0c0f111212130b09030000000000000003090b131212110f0c0a040000000000000000000000000000000000000000000000000000000000000000000000000010263b50657b90a7b9c9b5a39882756b6663626365696f77818d9e99837d92a7bcaf9a837e7b7976746a61503c28130012273d52677c92a7bcc9b49f89745544311d08000000000000000000081c30435474899eb4c9bca7927d67523d281200081c2f3f4c5060606060606060606060606060606060606060606060605e5a4d3d2a170300000000000000000000000000000000000000000000000000000d203343505560606060606060606055504333210d0000000000000000000000000000000b203448596e8398aabbcec4b7a89f958d898787898d949e9f8a76869bb0c6c5b2a098928f8c897a644e39240f000000000000021628384c5e6e8298a7b9baa998836e5d4b364b5d6e8298a9bab9a898836e5e4c382816010000000000001f34495e74899eb3c9b8a38e79634e392420354b6074889db3b19c86798da3b8c9b49e89745f49341f0005182a3b474c4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4e4a3d2d1a07000000000000000000000000000000000000000000000c181f2232323232323232323232323232323532323232323225231c1103000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b8095aac5c6b19b85736157504e4d4e505459626c7b899e99849aafbea8937e696664615855504333200d0013283d52687d92a7bdc8b39e89735e49271501000000000000000000011426495e73889eb3c8bda8927d68533d2813000e23384c5d657575757575757575757575757575757575757575757575746b5a46311c08000000000000000000000000000000000000000000000000000013283c50616a7575757575757575756a62503c28100000000000000000000000000000000d22374d62778b9fb4c8cbb7a69d8a807873727274787f899b917c889db3c8c2ad98827d7a7673645c4a36220d000000000000000a1a2f404c6277899eb3c1b2a08f7b65544354647a8fa0b2c1b49e8a77624d402f1a0a000000000000001f34495e74899eb3c9b8a38e79634e39242a3a51667b91a6b7aa947f798da3b8c9b49e89745f49341f00000d1d2a34373a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a39362d1f0f000000000000000000000000000000000000000000000000040a0c1d1d1d1d1d1d1d1d1d1d1d1d1d1d201d1d1d1d1d1d100e080000000000000000000000000000000000000913191b1e1e1e1e1e181610060000000000000000000000080e101212121212100e09000000080e101212121212100e09000000000000000000080e101212121212100e090000000000182d42586d8297adc2bda7927d685546393938393b3b484c5d657a8b9f9aa2b4bea8937e69534e4c463a3c332515030013283e53687d93a8bdc8b39e88735e49331e00000000000000000000001e33485e73889db3c8bda8937e68533e29130010263b50657b8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a89745e49341f0900000000000000000000000000000000000000000000000000071b2d3e556a7f8a8a8a8a8a8a8a8a8a806a553e2e1b08000000000000000000000000000013283d53687d92aabbcebfb39d88796b635b5c5d5b636a77859b919da6b7cbbaa58f7a686461584e4a3e2d1b070000000000000000111f344859697e93a3b5beb09b8573604b6072859bb0beb5a3937e69594834221200000000000000001f34495e74899eb3c9b8a38e79634e39243347586e8399aeb49f8b77788da3b8c9b49e89745f49341f0000000d181f222525252525252525252525252525252525252525252525252525252524211a0f0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1b262e3133333333332e2b23180a000000000000000003111c2325272727272726231c1103111c2325272727272726231c1103000000000003111c2325272727272726231c1103000000192f44596e8499aec3b8a38e79634e3729232324262b343f4b5c6a7f95a8b4c0bea8937e69533e36332928201507000013283e53687d93a8bdc8b39e88735e49331e00000000000000000000091e33485e73889db3c8bda8937e68533e29130010263b50657b909f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9e89745e49341f09000000000000000000000000000000000000000000000000000d22364a5c72879c9f9f9f9f9f9f9f9c87725c4b3722090000000000000000000000000003182d42586d8297adc8c7b3a18f7b655b4e493d3d494e596175879db2b7c4d4baa58f7a65504c473a362d201000000000000000000005182a3b4b6073859baabbb5a3927d6857687d92a3b5bcab9b8573604b3b2b180400000000000000001f34495e74899eb3c9b8a38e79634e3924374c61778a9fb4ae99846f788da3b8c9b49e89745f49341f00000000050b0d101010101010101010101010101010101010101010101010101010100e0c070000000000000000000000000000000000000000000000000000090f11151515151515151515151515151515151515151515151515151515151515151515110f0900000000091b2b3842464848484848433f362818060000000000000011212f383b3c3c3c3c3c3b382f2111212f383b3c3c3c3c3c3b382f2111000000000011212f383b3c3c3c3c3c3b382f2111000000192f44596e8499aec3b8a38e78634e39231912101018202f3e4b6175899eb4c9bea8937e69533e291f170c0d0300000013283d52687d92a7bdc8b39e89735e49271502000000000000000000091e34495e73899eb3c8bda8927d68533d28130010263b50657b90a5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b39e89745e49341f09000000000000000000000000000000000000000000000000011426374f647a8fa4b6b5b5b5b5b5b6a58f7a644f37271501000000000000000000000000071c31475c71869cb1c6c4af9a846f5d4b3d352c2c353a4757667c91a6b7cbcfbaa58f7a65503a332a221b1002000000000000000000000d1c304354647a8c9fb4c1b39d88766175889db3c1b49f8c7a645544311d0d0000000000000000001f34495e74899eb3c9b8a38e79634e392d3e54697e93a9b8a7917c67788da3b8c9b49e89745f49341f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003111c23262a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a26231c1204000013263849565b5e5e5e5e5e585346362310000000000000081c2f3f4b505252525252504c402f1c2f3f4b505252525252504c402f1c09000000081c2f3f4b505252525252504c402f1c090000172d42576c8297acc1bba6917c665142342b2725242323243246576e8398aec3bea8937e69533e29140400000000000012273d52677c92a7bcc9b49f89745544311d08000000000000000000081d31445574899eb4c9bca7927d67523d28120010263b50657b90a5babcbcbcbcc1c4cdcacacacac1bdbcbcbcbcbcb39e89745e49341f09000000000000000000000000000000000000000000000000081d3144556c8196abc2cfcabacacfc3ac96816c5544311d08000000000000000000000000011426375d73889db2c8bea9937e69543f2e211a1a212a394a6073889db2c8cfbaa58f7a65503a25170c07000000000000000000000000011426364a5c6c8196a6b7b8a695806b8095a6b7b7a696816c5c4a372614000000000000000000001f34495e74899eb3c9b8a38e79634e39364a5c71869bb1b39e887563788da3b8c9b49e89745f49341f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011222f383b3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3b382f22120000192e4256677073737373736d64533f2b0b0000000000000e23384b5d656767676767655e4c3823384b5d656767676767655e4c38230e0000000e23384b5d656767676767655e4c38230e000014293e54697e93a9c1c3ae99836e604d483c3d3a393839393939596e8499aec3bea8937e69533e29140000000000000011263c51667b91a6bbcdbaa98b75604b36200b0000000000000000000b20354b60758aa8b9cdbba6917b66513c26110010263b50657b90a5a7a7a7a7a7abb0bdcdddcabaada8a7a7a7a7a7a79e89745e49341f090000000000000000000000000000000000000000000000000b20354b6074889db3c9bcb4a5b4bcc9b39e8874604b35200b000000000000000000000000081d31445574899fb4c9bba6907b66513b261106060c1c3043546c8196acc1cfbaa58f7a65503a251000000000000000000000000000000008182d3e4b6175879db2bfb49f8b7a8b9fb4bfb29d8876614c3e2d1909000000000000000000001f34495e74899eb3c9b8a38e79634e39374e64798ea3b5ac96816c63788da3b8c9b49e89745f49341f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091c2f404c50555555555555555555555555555555555555555555555555555555555555555555504c402f1c09001b31465b70858888888888826d583a291704000000000010253b50657b7c7c7c7c7c7b65503b263b50657b7c7c7c7c7c7b65503b261000000010253b50657b7c7c7c7c7c7b65503b261000000e23394e63798ea3b5c6b3a1937e6c625a55524f4e4e4e4e4f4f5e73889eb3c8bea8937e69533e2914000000000000000f253a4f647a8fa4b9d7c7a18c77614c37220c0000000000000000000c21374c61768ca1c6d6baa48f7a654f3a25100010263b50657b90929292929292969fb0c4d5c1ad9c939292929292929289745e49341f0900000000000000000000000000000000000000000000000316283950667b90a6b8bcab9f909fabbcb8a6907b66513929160300000000000000000000000b20354b60758aa9bacdbaa48f7a654f3a251000000013253652687d92a7bdd2bea9937e69543e291400000000000000000000000000000000101e334657667c91a1b3baa99f909fa9bab3a1917c67574633201000000000000000000000001f34495e74899eb3c9b8a38e79634e3944556c8196abb5a38e796463788da3b8c9b49e89745f49341f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f23384c5e666a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a665e4c38230f001b30455b70859a9d9d9d9d88725846331f0a00000000061c31465b7185919191919186715c4731465b7185919191919186715c47311c0700061c31465b7185919191919186715c47311c07000c21364a5b70859bb0bdbfad9c938178706a67656463636464646574899eb3c9bea8937e69533e2914000000000000000e23384e63788da3c5d5b9a38e79644e39240f0000000000000000000e24394e63798ea3b8d5c5a38e78634e39230e000d22374c62777d7d7d7d7d7d7d8196abc1d3bda8937e7d7d7d7d7d7d7d7d67523c2712000000000000000000000000000000000000000000000000091e3245576d8298adc4b49f8c7b8c9fb4c5ad98836d5746321e0a00000000000000000000000b20354b60758aa0b5d7baa48f7a654f3a25100000000f243a4f64798fa4b9cebfaa95806a55402b1500000000000000000000000000000000031729394d5e6f8399a8babab4a5b4babaa999846f5f4d3929170200000000000000000000001f34495e74899eb3c9b8a38e79634e394b6074889eb3b19b86715c63788da3b8c9b49e89745f49341f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263b50667b7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7c66503b261100182e43586d8398adb3b3a58b76614c36210c00000000071c31475c71869ca7a7a79c87725d4732475c71869ca7a7a79c87725d47321d0800071c31475c71869ca7a7a79c87725d47321d0800071a2d3d50667b909fb1bfbaad9f978b85807c7a79787879797a7b7d92a7b9ccbea8937e69533e2914000000000000000c21364b61768ba6b8cbbba6907b66513b261100000000000000000011263b50667b90a5bbccb8a78b76614b36210c000b1f3448596267676767676767798ea4b9cbb6a08b7667676767676767675f4d3925100000000000000000000000000000000000000000000000000b21364b6075899eb4c5b09a8570859aafc9b49f8a76614b36210d00000000000000000000000b20354b60758aa0b5cabaa48f7a654f3a25100000000d22374d62778ca2b7ccbea8937e69533e291400000000000000000000000000000000000b1b30404d62788a9fb4c2c9bac9c2b49f8a78624d41301b0b0000000000000000000000001f34495e74899eb3c9b8a38e79634e3b51667c91a7b8aa937e695463788da3b8c9b49e89745f49341f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000172c41576c81949494949494949494949494949494949494949494949494949494949494949494816c57422d1700162b40566b8095abc0c3a48f7a654f3a251000000000081d32475d72879cb2bcb29d88725d4833475d72879cb2bcb29d88725d48331d0800081d32475d72879cb2bcb29d88725d48331d0800000f23384c5e6c8197a1b4bbbdb1aa9f9a95928f8e8d8e8e8e8f90929bacc5d6bea8937e69533e291400000000000000091e32465773889eb3c8bea9947e69543f291400000000000000000014293f54697e94a9bec8b39e88735746331e0a0005182a3b484c52525252525264798ea4b9cbb6a08b7661525252525252524d41301d0a000000000000000000000000000000000000000000000004182a3a52677d92a8b9c1a9937e697e93abbcbaa8927d67523b2a1805000000000000000000000b20354b60758aa0b5cabaa48f7a654f3a25100000000c21364c61768ba1b6cbbaa58f7a65503a2510000000000000000000000000000000000000122035485a6a7f94a4b5c9cfc9b6a4947f6a5a49352312000000000000000000000000001f34495e74899eb3c9b8a38e79634e47596f8499aeb49f8b77614e63788da3b8c9b49e89745f49341f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000172c41576c8196aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa97826c57422d170013293e53687e93a8bdbda8937e68533e291300000000081e33485d73889db2c8b39e88735e4933485d73889db2c8b39e88735e49331e0000081e33485d73889db2c8b39e88735e49331e000000091c2f404b607383959faab3bfbbb4afaaa7a4a3a3a3a3a4a4a5a7acb9cad3bea8937e69533e291400000000000000031628395b70859bb0c5c2ad97826d583b2b18050000000000000005182a3b576d8297acc2c5b09b85705b3929170300000d1d2a34373d3d3d3d3d4f64798ea4b9cbb6a08b76614b3d3d3d3d3d3c393023120100000000000000000000000000000000000000000000000a1f3447596f8499afc6b5a38d7862778c9fb5c6af9a846f5948341f0b000000000000000000000b20354b60758aa0b5cabaa48f7a654f3a25100000000b20354b60758aa0b5cabaa58f7a65503a251000000000000000000000000000000000000005192b3c4b6073869cb1c6dbc6b19c8674604b3c2c1905000000000000000000000000001f34495e74899eb3c9b8a38e79634e4c62778b9fb4ae99836e584e63788da3b8c9b49e89745f49341f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000172c41576c8196acbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfac97826c57422d170011263b51667b90a6bbc1ac96816c57412c1700000000091e33495e73889eb3c8b39e89745e4925495e73889eb3c8b39e89745e4925130000091e33495e73889eb3c8b39e89745e49251300000000111d3144556073808b99a1a9b1b4bcc9bcbab9b8b8b9b9b9babac0c4cdd3bea8937e69533e29140000000000000000172c42576c8197acc1c7b19c8772594834200b000000000000000b1f34485971869cb1c6c1ac97816c57422c17000000000d181f2228282828394f64798ea4b9cbb6a08b76614b362828282827251d12050000000000000000000000000000000000000000000000000c22374c61778b9fb4c5b09b86705a70859bb0c5b49f8b77624c37220f000000000000000000000b20354b60758aa0b5cabaa48f7a654f3a2510000000081d314455758a9fb5cabaa58f7a65503a2510000000000000000000000000000000000000000e1d314455647a8fa4b9cfbaa48f7a655544311e0e00000000000000000000000000001f34495e74899eb3c9b8a38e79634e54697f94aab8a6917b66514e63788da3b8c9b49e89745f49341f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000172c41576c8196acb2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2ac97826c57422d17000e24394e63798ea3c6c5af9a85705a3b2b18050000000a1f34495f74899eb4c9b49f8a74544330495f74899eb4c9b49f8a745443301c07000a1f34495f74899eb4c9b49f8a745443301c07000000021527374455606b78838d949b9faba8aaabacadadacacaaa8a5abb0bccdbea8937e69533e2914000000000000000013283d53687d92a8c3cab6a48c77624d372210000000000000000d22374c62778b9fb5cac3a8937d68533e28130000000000050b0d12121224394f64798ea4b9cbb6a08b76614b362112121212100a0100000000000000000000000000000000000000000000000006192c3c53697e93aabbc2a9947f6a54697f94a9c1bbaa937e69543d2c1a060000000000000000000b20354b60758aa0b5cabaa48f7a654f3a25100000000114264a60758a9fb5cabaa58f7a65503a251000000000000000000000000000000000000000081c30435464798ea4b9ceb9a48f7a645443301c0d00000000000000000000000000001f34495e74899eb3c9b8a38e79634e5c71869cb1b39d8874604b4e63788da3b8c9b49e89745f49341f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000172c41576c81969d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d97826c57422d17000c21374c61768ca8b9c8b39e8973594834200b000000081d314455758a9fb4cabaa98a75604a354455758a9fb4cabaa98a75604a35200b00081d314455758a9fb4cabaa98a75604a35200b0000000009192737444b5b636e787f868b8f9295969798989796959290969eb0c4bea8937e69533e291400000000000000000e23384e63788da5b7cac2a8937e68533e2e18080000000000071b2d3e53687d92abbccab7a58d78634e38230e000000000000000000000f24394f64798ea4b9cbb6a08b76614b36210c0000000000000000000000000000000000000000000000000000000000000c2035495a70859bb0c8b5a48d78634d62788da3b5c8b09b86715b4935210c0000000000000000000b20354b60758aa0b5cabaa48f7a654f3a25100000000020354a60758a9fb5cabaa58f7a65503a251000000000000000000000000000000000000004182a3a4b6073859bb0c6dbc6b09b8573604b3b2a1805000000000000000000000000001f34495e74899eb3c9b8a38e79634f647a8fa4b5ab96806b55444e63788da3b8c9b49e89745f49341f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152b40556a80878888888888888888888888888888888888888888888888888888888888888887806b55402b16000a1f33475874899eb4c9b8a78c77624d37220d0000000b20354b60758aaabbceb5a08b76604b364b60758aaabbceb5a08b76604b36210b000b20354b60758aaabbceb5a08b76604b36210b0000000000091926313c494d5a626a7176797d808182838382817f7d7b8096abc0bea8937e69533e291400000000000000000c2135495b72879db2c7c5b09b85705c4b36251303000000021222364a5c70859ab0c9c7b29d87725b4935210c000000000000000000000f24394f64798ea4b9cbb6a08b76614b36210c0000000000000000000000000000000000000000000000000000000000000e23384d63788da3b4c6b19c86715b495a71869bb1c6b5a38d78634e3823100000000000000000000b20354b60758aa0b5cabaa48f7a654f3a25100000000b20354a60758a9fb5cabaa58f7a65503a2510000000000000000000000000000000000000091f344759687e93a3b5c9d2c9b5a3937e695947341f11000000000000000000000000001f34495e74899eb3c9b8a38e7963566c8197acb5a38e79634e374e63788da3b8c9b49e89745f49341f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013283c50626a7272727272727272727272727272727272727272727272727272727272727272726b62503d2814000417293a5c71879cb1c6c5a5907b66503b26110000000c21364b61768ba0b6d9b6a18c76614c374b61768ba0b6d9b6a18c76614c37210c000c21364b61768ba0b6d9b6a18c76614c37210c00000000000009141d2c353c494d54576064686a6b6d6e6d6d6c6a686a7f94a9bfbda8927d68533d28130000000000000000061a2c3d576c8196acc1c8b4a38f7a645443301e160d0c0d161e31424f647a8fa2b4c8c2ac96816c573d2c1a06000000000000000000000f24394f64798ea4b9cbb6a08b76614b36210c0000000000000000000000000000000000000000000000000000000000071b2e3e556a7f95aac1c2aa957f6a553c556a7f94aac2c1aa95806a553e2e1b0800000000000000000b20354b60758aa0b5cabaa48f7a654f3a25100000000b20354a60758a9fb5cabaa58f7a65503a2510000000000000000000000000000000000009192e3f4c6177899eb3c1cabdcac1b39e8977624c3f2e19090000000000000000000000001f34495e74899eb3c9b8a38e79636075899eb3b09b85705b4a384e63788da3b8c9b49e89745f49341f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d21334350555d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d55504433210d00001a2f445a6f8499afc4bea9947e69543f29140000000c22374c61778ca1b6ccb7a18c77624c374c61778ca1b6ccb7a18c77624c37220d000c22374c61778ca1b6ccb7a18c77624c37220d00000000000000010e19212c353839454b4f535556575858575755566b8096abc0c9a6917c67513c27120000000000000000000f24394f64798ea3b5c9c1af9a8472604a4032282322232832404e606f849aafc0c9b5a38f7a644f3a240f00000000000000000000000f24394f64798ea4b9cbb6a18b76614c36210c00000000000000000000000000000000000000000000000000000000000d22364a5c72879cb2c7b6a48e79634e394e63798ea4b6c7b29d87725c4b37220900000000000000000b20354b60758aa0b5cabaa48f7a654f3a25100000000b20354a60758a9fb5cabaa58f7a65503a251000000000000000000000000000000000011527374b5d6d8297a7b8bcb5a8b4bcb9a798826d5d4b3727150200000000000000000000001f34495e74899eb3c9b8a38e7963677c91a7b8a9937e68533d384e63788da3b8c9b49e89745f49341f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041525333c40484848484848484848484848484848484848484848484848484848484848484848403d332616040002172d42576c8297acc1c2ad97826d583626140100000d22374d62778ca2b7ccb7a28d78624d384d62778ca2b7ccb7a28d78624d38230d000d22374d62778ca2b7ccb7a28d78624d38230d000000000000000000060e1920232832363a3d4041424343424145566e8398aec3bcab8f79644f3a240f0000000000000000000d22364a5c71869bb1c1c8b4a2937e695f4b453838373838454b5e697e93a2b4c8c1b19b86715c4a36220d00000000000000000000000f24394f64798ea4b9cdb7a28d78624d38230d00000000000000000000000000000000000000000000000000000000011426374f647a8fa4b6c7b19c87725b4a36495b71869cb1c6b6a58f7a644f37271502000000000000000b20354b60758aa0b5cabaa48f7a654f3a25100000000b20354a60758a9fb5cabaa58f7a65503a251000000000000000000000000000000000081d314455657a8d9fb5bcab9f929fabbcb2a08f7b655544311d0d00000000000000000000001f34495e74899eb3c9b8a38e79636f8499afb49f8a76614c36384e63788da3b8c9b49e89745f49341f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071521282b3333333333333333333333333333333333333333333333333333333333333333332b28211608000000152a3f556a7f94aabfc6b09b86715443301c0800000e23384d63788da2b8cdb8a38e78634e394d63788da2b8cdb8a38e78634e39230e000e23384d63788da2b8cdb8a38e78634e39230e0000000000000000070d0f1d1e1f161e2124282b2c2d2e2d36414b6075899eb3c9b49f8b76614c36210c000000000000000000071b2d3e51677c91a3b5c8c0b49f8c7d6b6056504d4c4d5056606a7c8c9fb4c0c8b5a3917c67523e2d1b0700000000000000000000000f24394f64798ea4b9cdb8a38e78634e39230e00000000000000000104040404040400000000000000000000000000081d3144556c8196acc3c3ab95806b563d2d3d556b8095aac3c3ac97816c5544311d08000000000000000b20354b60758aa0b5cabaa48f7a654f3a25100000000b20354a60758a9fb5cabaa58f7a65503a251000000000000000000000000000000005182b3b4b6073869cabbcb59f8d7d8d9fb4beb19c8674604b3b2b1905000000000000000000001f34495e74899eb3c9b8a38e7963778b9fb4ad98836e584633384e63788da3b8c9b49e89745f49341f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d13151d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d16140d040000000013283d52687d92a7bdc9b49f8975604b35200b00000e24394e63798ea3b8ceb9a38e79644e394e63798ea3b8ceb9a38e79644e39240f000e24394e63798ea3b8ceb9a38e79644e39240f00000000000002101b2224333334273135363737393a3d3d4a4e5f6a7f95a8b9c8b19b86715746331e0a000000000000000000001020354a6072859baabbcebbaa9f8c80756b65626162656b75808c9faabbcebbaa9b8573604b3520100000000000000000000000000f24394f64798ea4b9ceb9a48f79644f3a240f0000000000050e1417191919191919100e08000000000000000000000b20354b6074889eb3c8b7a58e79644f3924394e64798ea5b6c8b39e8875604b36200b000000000000000b20354b60758aa0b5cabaa48f7a654f3a25100000000b20354a60758a9fb5cabaa58f7a65503a25100000000000000000000000000000000a20344859697e94a4b5baa898826d8297a8b9b5a4947f695948342011000000000000000000001f34495e74899eb3c9b8a38e796a7f94abb7a6907b66503a29384e63788da3b8c9b49e89745f49341f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080e10131313131313131313131313131313131313131313131313131313131313131313100e08000000000010253b50657a90a5c9cdbaa98d78634e38230e00000f24394f64798ea4b9ceb9a48f7a644f3a4f64798ea4b9ceb9a48f7a644f3a250f000f24394f64798ea4b9ceb9a48f7a644f3a250f00000000000010202d36394848494a444b4b4c4d4e5053565b636e7d8c9fb4c6bbaa957f6a553929170300000000000000000000071c304354647a8c9fb4bdc8bbaa9f9588807b7877787b8088959faabbc8bdb49f8c7a645443301c080000000000000000000000000f24394f64798ea4b9cebba6917b66513c261100000000081622292c2f2f2f2f2f2f25231c1103000000000000000316283950667b90a6b8c7b29d87725c4a3622364a5c72879cb2c7b8a7907b6651392917030000000000000b20354b60758aa0b5cabaa48f7a654f3a25100000000b20354a60758a9fb5cabaa58f7a65503a251000000000000000000000000000000a1a2f3f4d62778a9eb4c2b49f8a7862778a9eb4c2b49e8a78624d402f1a0a0000000000000000001f34495e74899eb3c9b8a38e7972879cb1b29d8874604b3523384e63788da3b8c9b49e89745f49341f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101b222529292929292929292929292929292929292929292929292929292929292929292925231c11030000000e23384d63788dabbccfc7a6917c66513c2711000010253a4f657a8fa4bacfbaa58f7a65503a4f657a8fa4bacfbaa58f7a65503a25100010253a4f657a8fa4bacfbaa58f7a65503a25100000000000071b2d3e4a4f5d5e5e5f55606161626365686c727983929faabbc3b49f8b78624d37220d0000000000000000000000001325364a5c697f949fb0bcc8bbb4a69d96908d8c8d90959da6b4bbc8bdb09f947f695c4a362614010000000000000000000000000f24394f64798ea4b9cebea9947e69543f2914000000051626343e414444444444443a372e211100000000000000091e3246576d8298adc4c4ab96816b563e2d1b2d3e566b8096abc3c5ad98836e5746331e0a0000000000000b20354b60758aa0b5cabaa48f7a654f3a25100000000b20354a60758a9fb5cabaa58f7a65503a251000000000000000000000000000021527384c5d6e8398a8b9b7a695806a596a7f95a6b7b9a898836e5e4c3828150200000000000000001f34495e74899eb3c9b8a38e797a8fa4b6aa95806b54433023384e63788da3b8c9b49e89745f49341f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010212e373a3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3a372e21110000000b20364b60758a9fb5cabfaa957f6a55402a15000010263b50657b90a5bad0bba5907b66503b50657b90a5bad0bba5907b66503b26110010263b50657b90a5bad0bba5907b66503b261100000000000d22364a5c64727374747575767677797a7d81878e98a0b4bbc6b7a596816c594834200b00000000000000000000000008182d3e4f616c81969eb3b8c5c4b7b3aba5a2a1a2a5abb2b7c4c5b8b39e96816c614f3e2d1808000000000000000000000000000f24394f64798ea4b9cec1ac97816c573928160300000e2234445156595959595959504b3f2e1c080000000000000c21364b6176899eb4c9b7a68f7a644f3a2510243a4f647a8fa5b7c9b49f8a76614b36210d0000000000000b20354b60758aa0b5cabaa48f7a654f3a25100000000b20354a60758a9fb5cabaa58f7a65503a251000000000000000000000000000091d314556657b90a0b2c2b39d8875614b6075889db2c1b2a0907b665645321d0e00000000000000001f34495e74899eb3c9b8a38e798297acb4a28d78634d362623384e63788da3b8c9b49e89745f49341f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081b2e3f4b4f5353535353535353535353535353535353535353535353535353535353535353534f4b3f2e1c080000091d32455673889db3c8c3ae98836e59382816020011263b51667b90a6bbd0bba6917c66513c51667b90a6bbd0bba6917c66513c27110011263b51667b90a6bbd0bba6917c66513c271100000000000f24394f647a878889898a8a8b8c8c8e8f92969ca4aeb2bec4b8a89d8776614c3b2b1905000000000000000000000000000f20324352636c80919ea7b3b8c5c7c0bab7b6b7bac0c7c5b8b3a79e918172604a4332201000000000000000000000000000000f24394f64798ea4b9cec5b09b86705745321e09000014293e51626c6e6e6e6e6e6e655d4b37230e000000000004182a3b52677d92a8b9c8b29d8873604a35200b20354a6073879db2c7baa9927d67523b2a180500000000000b20354b60758aa0b5cabaa48f7a654f3a25100000000b20354a60758a9fb5cabaa58f7a65503a251000000000000000000000000006192b3c4b6074869cb1beb5a4927d68574657687d92a3b5beb29c8774604b3c2c1906000000000000001f34495e74899eb3c9baa5907b899eb3b09a85705b49351823384e63788da3b8c9b49e89745f49341f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e22374b5d65686868686868686868686868686868686868686868686868686868686868686868655d4b37230e0000021528385b70869bb0c5c7b19c87725645321e090012273c51677c91a6bcd1bca7917c67523c51677c91a6bcd1bca7917c67523c27120012273c51677c91a6bcd1bca7917c67523c271200000000000e23384d63788d9d9e9f9faba0a1a2a3a5a8abb1b6c2cabfb3a69d8a7a645846331d0d0000000000000000000000000000011424344552626b7c89959ea7acb1b4bbc8b9c8bbb4b1aca79e96897d6c6054433025140200000000000000000000000000000f24394f64798ea4b9cec9b5a38b76604b36210f0001172c41566c808484848484837b65503a251000000000000b1f3447596f8499afc6c5ac96816c5443301c071c3043546c8196abc4c7af9a846f5948341f0b00000000000b20354b60758aa0b5cabaa48f7a654f3a25100000000b20354a60758a9fb5cabaa58f7a65503a25100000000000000000000000000a2035485a6a7f94a4b6bfb19c8673604b394a6072859bb1bfb6a5957f6a5a49352012000000000000001f34495e74899eb3c9beab9a909ea8b9a8927d68533c2c1923384e63788da3b8c9b49e89745f49341f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010253a4f657a7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7b654f3a2510000000192e44596e8399aec3cab49f8a75604b36210b0012283d52677d92a7bcc0bda7927d68523d52677d92a7bcc0bda7927d68523d28130012283d52677d92a7bcc0bda7927d68523d281300000000000b21364b60768ba7b3b4b4bcb6b6b7b8babdc1c7c9bcb5afa199887a645c4a3a2917000000000000000000000000000000000617273444515f6776808991979c9faaa3a4a3aa9f9c9791898076675f4a4336251307000000000000000000000000050b0d0f24394f64798ea4b9ced1c1a6907b66513d2d1a0a0417293a5c72879999999999917c66513c271100000000000c22374c61778b9fb4cab8a7907a65503625130013253650657a8fa6b8cab49f8b77624c37220f00000000000b20354b60758aa0b5cabaa48f7a654f3a25100000000b20354a60758a9fb5cabaa58f7a65503a251000000000000000000000000a1a2f404d62788a9fb4c2b3a1907b655443304354657b8fa1b3c3b49f8a78624d40301b0a0000000000001f34495e74899eb3c9c8b8aba5b3b9b49f8a76614b36210e23384e63788da3b8c9b49e89745f49341f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000172c41576c81939393939393939393939393939393939393939393939393939393939393939393816c57422d17000001172c41566c8196abc1c3bbaa8e79644e39240f0013283d53687d92a8abababa8937d68533e53687d92a8abababa8937d68533e28130013283d53687d92a8abababa8937d68533e28130000000000091e32455673899eb3c0c0bfbfbfbebdbbc4b7b3aeab9f99908377645c4a3e2d1b0b000000000000000000000000000000000009172634414d58616b757c82878a8d8e8e8e8d8a87827c756b61584d41302518080000000000000000000000000d1920222324394f64798ea4b9d2c2b5a899846f5b4a382719111f33475873899eaeaeaea5907b65503b26100000000006192c3c54697e93aabbc8b39e8874604b35200b000b20354b6074889db3c8bbaa947e69543d2c1a06000000000b20354b60758aa0b5cabaa48f7a654f3a25100000000b20354a60758a9fb5cabaa58f7a65503a251000000000000000000000031628384c5e6e8399a9babbaa99836f5d4c3626364b5d6e8399aabbbaa999836f5e4c3928160300000000001f34495e74899eb3c9dec8bebac9c3ad98826d5746331e0e23384e63788da3b8c9b49e89745f49341f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000172c41576c8196a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a897826c57422d1700000014293f54697e94a9aeaeaea7927d67523d28120014293e53697e939595959595937e69543e53697e939595959595937e69543e29140014293e53697e939595959595937e69543e29140000000000021628385c71869cababaaaaaaa9a9a8a6a4a69d99938c847b6e62594a3e2d201000000000000000000000000000000000000000081623303a464c5660676d7275777879797775726d6760564c473a301c13080000000000000000000000000d1d2b34373838394f64798ea4b9c9b5a49c898e79635645372b2726374c61768ca7b8c3c4a48f79644f3a240f000000000c2135495b70859bb0c8c5ac97826d5544311d0800081c3043546c8197acc5c8b09b86715b4935210c000000000b20354b60758aa0b5babaa48f7a654f3a25100000000b20354a60758a9fb5babaa58f7a65503a251000000000000000000000091e324556667c91a1b3c5b49f8b79634e3f2f182e3f4e63798b9fb4c5b3a1917c665745321e0f00000000001f34495e74899eb3c9dedad2d0cab6a58f7a65503929170e23384e63788da3b8c9b49e89745f49341f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000172c41576c8196acbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdac97826c57422d1700000012273c51677c91999999999996806b56412b160010253a4f657b808080808080807b65503a4f657b808080808080807a65503a25100010253a4f657b808080808080807a65503a25100000000000001a2f445a6f84969695959594949392918f8c88837e776f655d4c483b2d201002000000000000000000000000000000000000000004121b293338454b515755606263646362605557524b453833291c120000000000000000000000000005192b3b484d4d4d4d4f64798ea4b9c6b19c86798e85746055483c3c3b4251667c91a6c5cbb8a68c76614c37210c000000000e23384d63788da3b5c9b9a7907b665037261401000114263650657b90a7b8c9b5a38d78634e382310000000000b20354b60758aa0a4a4a4a48f7a654f3a25100000000b20354a60758a9fa4a4a4a48f7a65503a2510000000000000000000061a2c3d4b6075879db2bfb9a797816c5b493521112135495b6c8196a7b9bfb29d8775604b3d2c1a06000000001f34495e74899eb3c9def3ecdac9b29d8773604a35200b0e23384e63788da3b8c9b49e89745f49341f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000172c41576c8196acb4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4ac97826c57422d170000000e23384e6379838484848484837f6a543f2a15000e22374b5d656b6b6b6b6b6b6b655d4b374b5d656b6b6b6b6b6b6b655d4b37230e000e22374b5d656b6b6b6b6b6b6b655d4b37230e00000000000012273d52677d81808080807f7f7e7d7c7976736e696259504b3f342a1d100200000000000000000000000000000000000000000000000b171f2832363c37444b4d4e4f4e4d4b44373c3632281f170c00000000000000000000000000000b20344859626262626264798ea4b9c3ae9984768c978173625a54515053606f8499afc4c8b39d88735847331f0a000000081b2e3e556a8095aac1c9b39e8975604b36200b0000000b20354b6074899eb3c8c1aa95806b553f2e1b080000000b20354b60748a8f8f8f8f8f8f7a654f3a25100000000b20354a60758a8f8f8f8f8f8f7b65503a25100000000000000000000b2135495b6b8095a5b7c3b39e8977614c3d2c1a061a2c3d4c6176899eb3c3b7a595806b5b49352113000000001f34495e74899eb3c9def3e3cfbcab957f6a5443301c070e23384e63788da3b8c9b49e89745f49341f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000172c41576c81969e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e97826c57422d170000000c2135495b636e6e6e6e6e6e6e6a614f3c271300081b2e3f4b4f56565656565656504b3f2e3f4b4f56565656565656504b3f2e1c0800081b2e3f4b4f56565656565656504b3f2e1c080000000000001025394d5f676c6b6b6b6a6a6a69686664615859534d483b372f1f180d0000000000000000000000000000000000000000000000000000040a161e2127263135383939393835312727211e160a040000000000000000000000000000000d22374d627878787878787d91a6bcc1ab968173889e9784786f696665686f7e93a1b3c7c8af99846f5a3a2a17040000000d22374b5c72879cb2c7c6ad98826d5544311d08000000081d3144556d8297adc6c7b29d87725d4b372209000000081d314455657b7a7a7a7a7a7a75614c36210c0000000010253a4f657b7a7a7a7a7a7a76614c36210c00000000000000000b1b30414e63798b9fb4c3b6a5947f695847331f0f000e1f334758697f94a5b6c3b49f8b79634e41301b0b0000001f34495e74899eb3c9def3dfcab59f8c78624d362513000e23384e63788da3b8c9b49e89745f49341f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162c41566b808a8989898989898989898989898989898989898989898989898989898989898989816c56412c17000000061a2c3d494e59595959595959544f4332200d000010212e373a404040404040403a372e212e373a404040404040403a372e211100000010212e373a404040404040403a372e2111000000000000000a1e30414d52565656555555545453514f4c473a3e37342b231c1105000000000000000000000000000000000000000000000000000000000002090b12141d202223242422201d15120b090200000000000000000000000000000000081e33485d73888d8d8d8d8d919bacbfbea9937e6d8298a29a8c847e7c7b7d84939caebfcebbaa937d68533e2813000000011527374f647a8fa5b6cab9a8917c6651372715020000000115273751667b90a8b9cab6a58f7a644f372715020000011527374b5d65656565656565615746331e0a000000000e22374b5d65656565656565615846331f0a00000000000000031629394d5f6f849aa9bac1b29d8774604b3a2a18010004172a3a4b6074879cb2c0bbaa9a846f5f4d3929170300001f34495e74899eb3c9d9dbd6c6af9a846f5a48351808000e23384e63788da3b8c9b49e89745f49341f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293d51626b7474747474747474747474747474747474747474747474747474747474747474746c62513e2914000000000f1f2c3538444444444444443f3c32251503000003101b22252b2b2b2b2b2b2b25231c111b22252b2b2b2b2b2b2b25231c110300000003101b22252b2b2b2b2b2b2b25231c11030000000000000001132330393d41414040403f3f3e3d3c3a37332a292220180d08000000000000000000000000000000000000000000000000000000000000000000000001080b0d0e0f0e0d0b08010000000000000000000000000000000000000000081e33485d73889da2a2a2a2a6acb9c9bba6917b667c91a4aa9f99939190929aa1aebbcbc4b49f8b77614c37220c000000081d3144556c8196acc3c9b49e8975604b36210b00000000000b20364b6075899eb3c9c3ac97816c5544311d0800000009192e3f4b4f4f4f4f4f4f4f4c463929170300000000081b2e3f4b4f4f4f4f4f4f4f4c463a291704000000000000000a1e324657677c91a2b3c7b4a3917c675645321c0c0000000c1d314556677c91a2b4c8b4a2927d675746331e0f00001f34495e74899eb3c0c3c7c5b9a8927d67523c2b1900000e23384e63788da3b8c0b49e89745f49341f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e21344451565f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f56514434220e00000000010f1a21232f2f2f2f2f2f2f2a272015070000000000080e1016161616161616100e0800080e1016161616161616100e0800000000000000080e1016161616161616100e080000000000000000000005131e25272c2b2b2b2b2a2a29282724211f17140d0b050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081e33485d73889db2b7b7b7bcbfc9ceb8a38e796372869ca9b4aea9a6a5a8afb3bfcec3b7a696816c5847331f0a0000000b20354b6074889eb3c8c7ad98836e5645321e090000000000091d3245566d8398adc6c8b39e8875604b36200b0000000010212e373a3a3a3a3a3a3a3633291b0b00000000000010212e373a3a3a3a3a3a3a3633291b0b00000000000000071a2d3d4b6175889db2c0beb09b85705f4d38281500000000021527384d5f70859aabbcc0b39d8876614c3d2d1a07001f34495e74899eababaeb3b1ad9e8975604b36210e00000e23384e63788da3ababab9e89745f49341f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051626343d41494949494949494949494949494949494949494949494949494949494949494949413e34261605000000000000060c0e1919191919191915130d0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a1012171616161515151413110f0c0a04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081e33485d73889db2babababbbfbfbfb6a08b7661647a8b9fa9b5c1bbbabdc4c5c8bbb4a59d8776614c3a2a180400000316293951667b90a6b8babaa9917c67523828160200000000000215283851677c91a8babab8a7917b66513929170300000003101b2225252525252525211e170b0000000000000003101b2225252525252525211f170b00000000000000000c21364a5b6b8196a6abababa08f7a644f41301a0a00000000000a1a30404f647a8d9fabababa696816c5c4a36210d001f34495e748995959599a1a09795826d5745321e0900000e23384e63788d959595959589745f49341f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081621292c3434343434343434343434343434343434343434343434343434343434343434342c2922160800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081e33485d73889da4a4a4a4a5a9a9a9a99f8a75575c677d8b9ba3aaafb1b3b2b0adaa9f978778635746331c0c0000000a1e3246576d8398a4a4a4a49f8a76614b36210c000000000000000b21364b60758a9fa4a4a4a498836e5746331e0a0000000000080e101010101010100c0a0300000000000000000000080e101010101010100c0a040000000000000000000e24394e63798a959595959595826e5c4b372312000000000000001222364a5c6d829595959595958a79644e39240f00152a40556a7f808080838a8a828079634e3928160300000c22374c6177808080808080806a55402b15000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e14161f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f17140e050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081e33485d73888f8f8f8f8f9094949494948a75604d5f677a858f959a9c9d9c9b98938b8177635a49392917000000000c21364b61768a8f8f8f8f8f8f836e5746321e0a00000000000000091e3245576e838f8f8f8f8f8f8a76614b36210c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012273c51677d8080808080808078624d3e2e1b0500000000000000071b2d3e4d6278808080808080807d67523c27120013283c50616a6b6b6b6e75756d6b635b4a361b0a0000000a1f344759616b6b6b6b6b6b6a62503c281300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f243a4f647a7a7a7a7a7a7b7f7f7f7f7f7a644f414d5c64707a808587888786837d786c6159493c2c1b0b000000000c21364b61757a7a7a7a7a7a7a78624d3929160300000000000000031628394d62787a7a7a7a7a7a7a75614c36210c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001024394d5f676b6b6b6b6b6b6b625a483520100000000000000000001020344859626b6b6b6b6b6b6b675f4d392510000d203343505556565659606058564e4a3d2d1a0000000004182a3a474c56565656565655504333210d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d22364a5c646565656565666a6a6a6a6a645c4a363e4a4f5d656b6f717372706e68625a4c473b2c1e0e00000000000a1e3346576165656565656565625a48341b0b0000000000000000000a203448596265656565656565615746331e0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1d30414d51565656565656564d483c2b190200000000000000000005192b3b484d56565656565656524d41301d0a00041525333c40404040444a4a424039362d1f0f00000000000c1c2a3437404040404040403c332515040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071b2d3e4a4f4f4f4f4f4f5054545454544f4a3e2e2e363f4b4f555a5c5e5d5b58534d483c342a1d0e00000000000003172939464b4f4f4f4f4f4f4f4d483c2b190000000000000000000005192b3b484d4f4f4f4f4f4f4f4c463929170300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000122330393c4040404040404038352b1e0e00000000000000000000000d1d2b3437404040404040403c39302312010000071520282a2b2b2b2f35352d2b23211a0f010000000000000c181f222b2b2b2b2b2b2b282115070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010202d363a3a3a3a3a3a3b3f3f3f3f3f3a362e201b222e373a404547484746433e38342b1f180c00000000000000000b1b2933363a3a3a3a3a3a3a38342b1d0d00000000000000000000000d1d2b34373a3a3a3a3a3a3a3633291b0b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004121d24272b2b2b2b2b2b2b2220190e000000000000000000000000000d1920222b2b2b2b2b2b2b27251d120500000000040d131516161619202018160e0c07000000000000000000040a0c16161616161615130d04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002101b22242525252525262a2a2a2a2a24221b1007111c23252b30323332312e282220190d04000000000000000000000b171e21252525252525252220190d000000000000000000000000000d19202225252525252525211e170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1012161616161616160d0b05000000000000000000000000000000050b0d1616161616161612100a0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070d0f10101010101115151515150f0d07000000080e10161a1c1e1d1b19130d0b0500000000000000000000000000030a0c101010101010100d0b05000000000000000000000000000000050b0d101010101010100c0a0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode SDF.asset.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode SDF.asset.meta new file mode 100644 index 0000000..a57a806 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode SDF.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f653ac5b85a721e4c9383008e6a565a7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01.meta new file mode 100644 index 0000000..d3d4d9c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1975e1a343c267144b24ec21817ccdf8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf.meta new file mode 100644 index 0000000..989700a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e050a316be9416f498af9cbd2cc659b7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static.meta new file mode 100644 index 0000000..f33a613 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 94d5f46762b78b84da07e0a43c6e05a0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Bold.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Bold.otf new file mode 100644 index 0000000..1c23cae Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Bold.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Bold.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Bold.otf.meta new file mode 100644 index 0000000..359d553 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Bold.otf.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: e099aa05d6b3c0c4b9865686a7835bbd +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-BoldItalic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-BoldItalic.otf new file mode 100644 index 0000000..1e19b19 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-BoldItalic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-BoldItalic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-BoldItalic.otf.meta new file mode 100644 index 0000000..51ad4b8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-BoldItalic.otf.meta @@ -0,0 +1,34 @@ +fileFormatVersion: 2 +guid: 8663150164109c348be3bb39b7aebf1d +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 72e5aa1b7b152674291d9fccb8294ce3, type: 3} + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: b273c3775fe5a054bae87bc5a5582946, type: 3} + - {fileID: 12800000, guid: b1487468da584594cb7a15872aed71fe, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: c554b88478e850f479e97db4368dd46e, type: 3} + - {fileID: 12800000, guid: e51fcacd50bd10d4190500d62c483bd1, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 92a0985f69d48b5489cc62c7c896e4e7, type: 3} + - {fileID: 12800000, guid: d25656f31b315204aa1a6f7d237f0f9c, type: 3} + - {fileID: 12800000, guid: 662915ab71124d544bd2416493d3ff32, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-ExtraLight.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-ExtraLight.otf new file mode 100644 index 0000000..14a4665 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-ExtraLight.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-ExtraLight.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-ExtraLight.otf.meta new file mode 100644 index 0000000..a4c278c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-ExtraLight.otf.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: e51fcacd50bd10d4190500d62c483bd1 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 72e5aa1b7b152674291d9fccb8294ce3, type: 3} + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: b273c3775fe5a054bae87bc5a5582946, type: 3} + - {fileID: 12800000, guid: b1487468da584594cb7a15872aed71fe, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: c554b88478e850f479e97db4368dd46e, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 92a0985f69d48b5489cc62c7c896e4e7, type: 3} + - {fileID: 12800000, guid: d25656f31b315204aa1a6f7d237f0f9c, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-ExtraLightItalic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-ExtraLightItalic.otf new file mode 100644 index 0000000..0379598 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-ExtraLightItalic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-ExtraLightItalic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-ExtraLightItalic.otf.meta new file mode 100644 index 0000000..6fb7a8e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-ExtraLightItalic.otf.meta @@ -0,0 +1,24 @@ +fileFormatVersion: 2 +guid: 0121b7f3b1375ed47bf6fec94f46917e +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Italic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Italic.otf new file mode 100644 index 0000000..a190f0d Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Italic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Italic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Italic.otf.meta new file mode 100644 index 0000000..0af5af6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Italic.otf.meta @@ -0,0 +1,41 @@ +fileFormatVersion: 2 +guid: ecafe5fef77f5d146bda0b0724b6f6c8 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 72e5aa1b7b152674291d9fccb8294ce3, type: 3} + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: cad612b349b5ef74ca38d022d2d6174b, type: 3} + - {fileID: 12800000, guid: 0813b01ecbba92c44bef402d7f5d26f2, type: 3} + - {fileID: 12800000, guid: b273c3775fe5a054bae87bc5a5582946, type: 3} + - {fileID: 12800000, guid: b1487468da584594cb7a15872aed71fe, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: c554b88478e850f479e97db4368dd46e, type: 3} + - {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + - {fileID: 12800000, guid: e51fcacd50bd10d4190500d62c483bd1, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 8663150164109c348be3bb39b7aebf1d, type: 3} + - {fileID: 12800000, guid: e971295cdb2ffcb489543c1d44f356ea, type: 3} + - {fileID: 12800000, guid: 92a0985f69d48b5489cc62c7c896e4e7, type: 3} + - {fileID: 12800000, guid: d25656f31b315204aa1a6f7d237f0f9c, type: 3} + - {fileID: 12800000, guid: 662915ab71124d544bd2416493d3ff32, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 2a361a73a2e35f345bf2bed85f5cee12, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + - {fileID: 12800000, guid: 1b24c9cd038a582498295a7e7d7e2a14, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Light.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Light.otf new file mode 100644 index 0000000..5c203d7 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Light.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Light.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Light.otf.meta new file mode 100644 index 0000000..066a4ab --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Light.otf.meta @@ -0,0 +1,25 @@ +fileFormatVersion: 2 +guid: 2150041a33809f14296c060b65d57e12 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-LightItalic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-LightItalic.otf new file mode 100644 index 0000000..34d8ebb Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-LightItalic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-LightItalic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-LightItalic.otf.meta new file mode 100644 index 0000000..104138d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-LightItalic.otf.meta @@ -0,0 +1,38 @@ +fileFormatVersion: 2 +guid: 2a361a73a2e35f345bf2bed85f5cee12 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 72e5aa1b7b152674291d9fccb8294ce3, type: 3} + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: 0813b01ecbba92c44bef402d7f5d26f2, type: 3} + - {fileID: 12800000, guid: b273c3775fe5a054bae87bc5a5582946, type: 3} + - {fileID: 12800000, guid: b1487468da584594cb7a15872aed71fe, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: c554b88478e850f479e97db4368dd46e, type: 3} + - {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + - {fileID: 12800000, guid: e51fcacd50bd10d4190500d62c483bd1, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 8663150164109c348be3bb39b7aebf1d, type: 3} + - {fileID: 12800000, guid: e971295cdb2ffcb489543c1d44f356ea, type: 3} + - {fileID: 12800000, guid: 92a0985f69d48b5489cc62c7c896e4e7, type: 3} + - {fileID: 12800000, guid: d25656f31b315204aa1a6f7d237f0f9c, type: 3} + - {fileID: 12800000, guid: 662915ab71124d544bd2416493d3ff32, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Regular.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Regular.otf new file mode 100644 index 0000000..ae3b7ec Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Regular.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Regular.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Regular.otf.meta new file mode 100644 index 0000000..011d950 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-Regular.otf.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 662915ab71124d544bd2416493d3ff32 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 72e5aa1b7b152674291d9fccb8294ce3, type: 3} + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: b273c3775fe5a054bae87bc5a5582946, type: 3} + - {fileID: 12800000, guid: b1487468da584594cb7a15872aed71fe, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: c554b88478e850f479e97db4368dd46e, type: 3} + - {fileID: 12800000, guid: e51fcacd50bd10d4190500d62c483bd1, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 92a0985f69d48b5489cc62c7c896e4e7, type: 3} + - {fileID: 12800000, guid: d25656f31b315204aa1a6f7d237f0f9c, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiBold.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiBold.otf new file mode 100644 index 0000000..caac82c Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiBold.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiBold.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiBold.otf.meta new file mode 100644 index 0000000..72f416d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiBold.otf.meta @@ -0,0 +1,40 @@ +fileFormatVersion: 2 +guid: 1b24c9cd038a582498295a7e7d7e2a14 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 72e5aa1b7b152674291d9fccb8294ce3, type: 3} + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: cad612b349b5ef74ca38d022d2d6174b, type: 3} + - {fileID: 12800000, guid: 0813b01ecbba92c44bef402d7f5d26f2, type: 3} + - {fileID: 12800000, guid: b273c3775fe5a054bae87bc5a5582946, type: 3} + - {fileID: 12800000, guid: b1487468da584594cb7a15872aed71fe, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: c554b88478e850f479e97db4368dd46e, type: 3} + - {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + - {fileID: 12800000, guid: e51fcacd50bd10d4190500d62c483bd1, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 8663150164109c348be3bb39b7aebf1d, type: 3} + - {fileID: 12800000, guid: e971295cdb2ffcb489543c1d44f356ea, type: 3} + - {fileID: 12800000, guid: 92a0985f69d48b5489cc62c7c896e4e7, type: 3} + - {fileID: 12800000, guid: d25656f31b315204aa1a6f7d237f0f9c, type: 3} + - {fileID: 12800000, guid: 662915ab71124d544bd2416493d3ff32, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 2a361a73a2e35f345bf2bed85f5cee12, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiBoldItalic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiBoldItalic.otf new file mode 100644 index 0000000..c563428 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiBoldItalic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiBoldItalic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiBoldItalic.otf.meta new file mode 100644 index 0000000..b0d1105 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiBoldItalic.otf.meta @@ -0,0 +1,45 @@ +fileFormatVersion: 2 +guid: 7e12edc0a1a3e384691f91c378cce503 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 72e5aa1b7b152674291d9fccb8294ce3, type: 3} + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: cad612b349b5ef74ca38d022d2d6174b, type: 3} + - {fileID: 12800000, guid: 0813b01ecbba92c44bef402d7f5d26f2, type: 3} + - {fileID: 12800000, guid: dd494862431cf7f4ba7efa7643637a46, type: 3} + - {fileID: 12800000, guid: b273c3775fe5a054bae87bc5a5582946, type: 3} + - {fileID: 12800000, guid: b1487468da584594cb7a15872aed71fe, type: 3} + - {fileID: 12800000, guid: ecafe5fef77f5d146bda0b0724b6f6c8, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: c554b88478e850f479e97db4368dd46e, type: 3} + - {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + - {fileID: 12800000, guid: e51fcacd50bd10d4190500d62c483bd1, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 8663150164109c348be3bb39b7aebf1d, type: 3} + - {fileID: 12800000, guid: e971295cdb2ffcb489543c1d44f356ea, type: 3} + - {fileID: 12800000, guid: 0ef6060f2a288c84e9928ac9d3b8cfe8, type: 3} + - {fileID: 12800000, guid: 92a0985f69d48b5489cc62c7c896e4e7, type: 3} + - {fileID: 12800000, guid: d25656f31b315204aa1a6f7d237f0f9c, type: 3} + - {fileID: 12800000, guid: 662915ab71124d544bd2416493d3ff32, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 2a361a73a2e35f345bf2bed85f5cee12, type: 3} + - {fileID: 12800000, guid: dd8d2ffc7dfeb6c47a80924234a173e6, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + - {fileID: 12800000, guid: 1b24c9cd038a582498295a7e7d7e2a14, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiLight.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiLight.otf new file mode 100644 index 0000000..e31420b Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiLight.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiLight.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiLight.otf.meta new file mode 100644 index 0000000..3a26ad8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiLight.otf.meta @@ -0,0 +1,42 @@ +fileFormatVersion: 2 +guid: dd494862431cf7f4ba7efa7643637a46 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 72e5aa1b7b152674291d9fccb8294ce3, type: 3} + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: cad612b349b5ef74ca38d022d2d6174b, type: 3} + - {fileID: 12800000, guid: 0813b01ecbba92c44bef402d7f5d26f2, type: 3} + - {fileID: 12800000, guid: b273c3775fe5a054bae87bc5a5582946, type: 3} + - {fileID: 12800000, guid: b1487468da584594cb7a15872aed71fe, type: 3} + - {fileID: 12800000, guid: ecafe5fef77f5d146bda0b0724b6f6c8, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: c554b88478e850f479e97db4368dd46e, type: 3} + - {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + - {fileID: 12800000, guid: e51fcacd50bd10d4190500d62c483bd1, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 8663150164109c348be3bb39b7aebf1d, type: 3} + - {fileID: 12800000, guid: e971295cdb2ffcb489543c1d44f356ea, type: 3} + - {fileID: 12800000, guid: 92a0985f69d48b5489cc62c7c896e4e7, type: 3} + - {fileID: 12800000, guid: d25656f31b315204aa1a6f7d237f0f9c, type: 3} + - {fileID: 12800000, guid: 662915ab71124d544bd2416493d3ff32, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 2a361a73a2e35f345bf2bed85f5cee12, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + - {fileID: 12800000, guid: 1b24c9cd038a582498295a7e7d7e2a14, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiLightItalic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiLightItalic.otf new file mode 100644 index 0000000..6d826bf Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiLightItalic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiLightItalic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiLightItalic.otf.meta new file mode 100644 index 0000000..72afdef --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCode-SemiLightItalic.otf.meta @@ -0,0 +1,30 @@ +fileFormatVersion: 2 +guid: d25656f31b315204aa1a6f7d237f0f9c +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 72e5aa1b7b152674291d9fccb8294ce3, type: 3} + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: b273c3775fe5a054bae87bc5a5582946, type: 3} + - {fileID: 12800000, guid: b1487468da584594cb7a15872aed71fe, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 92a0985f69d48b5489cc62c7c896e4e7, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Bold.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Bold.otf new file mode 100644 index 0000000..eef1f0a Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Bold.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Bold.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Bold.otf.meta new file mode 100644 index 0000000..29b8d24 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Bold.otf.meta @@ -0,0 +1,21 @@ +fileFormatVersion: 2 +guid: 203b63fc9ede9a04597ace04500697b4 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: [] + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-BoldItalic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-BoldItalic.otf new file mode 100644 index 0000000..f11b9f9 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-BoldItalic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-BoldItalic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-BoldItalic.otf.meta new file mode 100644 index 0000000..065fc87 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-BoldItalic.otf.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 0279e4915f2133e43b22fa7044da5b2e +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-ExtraLight.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-ExtraLight.otf new file mode 100644 index 0000000..a714bfd Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-ExtraLight.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-ExtraLight.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-ExtraLight.otf.meta new file mode 100644 index 0000000..5528bc7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-ExtraLight.otf.meta @@ -0,0 +1,44 @@ +fileFormatVersion: 2 +guid: 7c7b4e4e8a045584086d743854cffcb9 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 5a294a4d671367c438a538f06b2590b2, type: 3} + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: 07ac1b9e37c0fdc4c8cb2f488299d087, type: 3} + - {fileID: 12800000, guid: d328b83d9d41ea843a22d6fb443304c9, type: 3} + - {fileID: 12800000, guid: 05b83e7cb5ed33b4e9bb321ec2516ba1, type: 3} + - {fileID: 12800000, guid: 2a74b8f31b781c749a78d29af98e7528, type: 3} + - {fileID: 12800000, guid: 6be27a05dd74d8a46a06897a04a86fef, type: 3} + - {fileID: 12800000, guid: 8a1a944b23780e4479ea065f82f6ab07, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 1541d7f69c7a6df409a865ad7bc440a4, type: 3} + - {fileID: 12800000, guid: 2b15e701014bbbe43bdac86cd3f011ef, type: 3} + - {fileID: 12800000, guid: 73a0f8316330c0c418ae9b8325e85950, type: 3} + - {fileID: 12800000, guid: f3e88d691b3bd52459406083e61d65e8, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: 6a9c05a0d5a5c0742902842c52557e75, type: 3} + - {fileID: 12800000, guid: d7e803e9afeb74b43a2107397027be3c, type: 3} + - {fileID: 12800000, guid: 23969a968d2ac384f88017b855d52d65, type: 3} + - {fileID: 12800000, guid: 05a61caabb179da4b9cc50bec09ffbcc, type: 3} + - {fileID: 12800000, guid: 95a8c9c5570ab414a8fd029ba2b14165, type: 3} + - {fileID: 12800000, guid: f8fe9657cc6af3b468e817ed63d946b9, type: 3} + - {fileID: 12800000, guid: b328d34aaa081424885b43ca0c477a8c, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-ExtraLightItalic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-ExtraLightItalic.otf new file mode 100644 index 0000000..df57406 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-ExtraLightItalic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-ExtraLightItalic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-ExtraLightItalic.otf.meta new file mode 100644 index 0000000..00daba8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-ExtraLightItalic.otf.meta @@ -0,0 +1,39 @@ +fileFormatVersion: 2 +guid: 5a294a4d671367c438a538f06b2590b2 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: 07ac1b9e37c0fdc4c8cb2f488299d087, type: 3} + - {fileID: 12800000, guid: d328b83d9d41ea843a22d6fb443304c9, type: 3} + - {fileID: 12800000, guid: 05b83e7cb5ed33b4e9bb321ec2516ba1, type: 3} + - {fileID: 12800000, guid: 2a74b8f31b781c749a78d29af98e7528, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 1541d7f69c7a6df409a865ad7bc440a4, type: 3} + - {fileID: 12800000, guid: 73a0f8316330c0c418ae9b8325e85950, type: 3} + - {fileID: 12800000, guid: f3e88d691b3bd52459406083e61d65e8, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: d7e803e9afeb74b43a2107397027be3c, type: 3} + - {fileID: 12800000, guid: 23969a968d2ac384f88017b855d52d65, type: 3} + - {fileID: 12800000, guid: 05a61caabb179da4b9cc50bec09ffbcc, type: 3} + - {fileID: 12800000, guid: 95a8c9c5570ab414a8fd029ba2b14165, type: 3} + - {fileID: 12800000, guid: f8fe9657cc6af3b468e817ed63d946b9, type: 3} + - {fileID: 12800000, guid: b328d34aaa081424885b43ca0c477a8c, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Italic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Italic.otf new file mode 100644 index 0000000..b17fc9c Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Italic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Italic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Italic.otf.meta new file mode 100644 index 0000000..d24430c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Italic.otf.meta @@ -0,0 +1,36 @@ +fileFormatVersion: 2 +guid: d7e803e9afeb74b43a2107397027be3c +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: 07ac1b9e37c0fdc4c8cb2f488299d087, type: 3} + - {fileID: 12800000, guid: d328b83d9d41ea843a22d6fb443304c9, type: 3} + - {fileID: 12800000, guid: 05b83e7cb5ed33b4e9bb321ec2516ba1, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 1541d7f69c7a6df409a865ad7bc440a4, type: 3} + - {fileID: 12800000, guid: 73a0f8316330c0c418ae9b8325e85950, type: 3} + - {fileID: 12800000, guid: f3e88d691b3bd52459406083e61d65e8, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: 23969a968d2ac384f88017b855d52d65, type: 3} + - {fileID: 12800000, guid: 05a61caabb179da4b9cc50bec09ffbcc, type: 3} + - {fileID: 12800000, guid: 95a8c9c5570ab414a8fd029ba2b14165, type: 3} + - {fileID: 12800000, guid: b328d34aaa081424885b43ca0c477a8c, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Light.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Light.otf new file mode 100644 index 0000000..9fbdd13 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Light.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Light.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Light.otf.meta new file mode 100644 index 0000000..2a0ee05 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Light.otf.meta @@ -0,0 +1,43 @@ +fileFormatVersion: 2 +guid: 6be27a05dd74d8a46a06897a04a86fef +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 5a294a4d671367c438a538f06b2590b2, type: 3} + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: 07ac1b9e37c0fdc4c8cb2f488299d087, type: 3} + - {fileID: 12800000, guid: d328b83d9d41ea843a22d6fb443304c9, type: 3} + - {fileID: 12800000, guid: 05b83e7cb5ed33b4e9bb321ec2516ba1, type: 3} + - {fileID: 12800000, guid: 2a74b8f31b781c749a78d29af98e7528, type: 3} + - {fileID: 12800000, guid: 8a1a944b23780e4479ea065f82f6ab07, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 1541d7f69c7a6df409a865ad7bc440a4, type: 3} + - {fileID: 12800000, guid: 2b15e701014bbbe43bdac86cd3f011ef, type: 3} + - {fileID: 12800000, guid: 73a0f8316330c0c418ae9b8325e85950, type: 3} + - {fileID: 12800000, guid: f3e88d691b3bd52459406083e61d65e8, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: 6a9c05a0d5a5c0742902842c52557e75, type: 3} + - {fileID: 12800000, guid: d7e803e9afeb74b43a2107397027be3c, type: 3} + - {fileID: 12800000, guid: 23969a968d2ac384f88017b855d52d65, type: 3} + - {fileID: 12800000, guid: 05a61caabb179da4b9cc50bec09ffbcc, type: 3} + - {fileID: 12800000, guid: 95a8c9c5570ab414a8fd029ba2b14165, type: 3} + - {fileID: 12800000, guid: f8fe9657cc6af3b468e817ed63d946b9, type: 3} + - {fileID: 12800000, guid: b328d34aaa081424885b43ca0c477a8c, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-LightItalic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-LightItalic.otf new file mode 100644 index 0000000..9df8dd4 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-LightItalic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-LightItalic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-LightItalic.otf.meta new file mode 100644 index 0000000..ea8b3d3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-LightItalic.otf.meta @@ -0,0 +1,26 @@ +fileFormatVersion: 2 +guid: 23969a968d2ac384f88017b855d52d65 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Regular.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Regular.otf new file mode 100644 index 0000000..2e88e5c Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Regular.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Regular.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Regular.otf.meta new file mode 100644 index 0000000..8ce912f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-Regular.otf.meta @@ -0,0 +1,31 @@ +fileFormatVersion: 2 +guid: 05a61caabb179da4b9cc50bec09ffbcc +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: d328b83d9d41ea843a22d6fb443304c9, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 73a0f8316330c0c418ae9b8325e85950, type: 3} + - {fileID: 12800000, guid: f3e88d691b3bd52459406083e61d65e8, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: 23969a968d2ac384f88017b855d52d65, type: 3} + - {fileID: 12800000, guid: b328d34aaa081424885b43ca0c477a8c, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiBold.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiBold.otf new file mode 100644 index 0000000..9b21ed5 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiBold.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiBold.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiBold.otf.meta new file mode 100644 index 0000000..6ae1ac8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiBold.otf.meta @@ -0,0 +1,24 @@ +fileFormatVersion: 2 +guid: 629fbd559c237554192ef77d0db80049 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiBoldItalic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiBoldItalic.otf new file mode 100644 index 0000000..c98a9b0 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiBoldItalic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiBoldItalic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiBoldItalic.otf.meta new file mode 100644 index 0000000..c39948e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiBoldItalic.otf.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 1541d7f69c7a6df409a865ad7bc440a4 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: d328b83d9d41ea843a22d6fb443304c9, type: 3} + - {fileID: 12800000, guid: 05b83e7cb5ed33b4e9bb321ec2516ba1, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 73a0f8316330c0c418ae9b8325e85950, type: 3} + - {fileID: 12800000, guid: f3e88d691b3bd52459406083e61d65e8, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: 23969a968d2ac384f88017b855d52d65, type: 3} + - {fileID: 12800000, guid: 05a61caabb179da4b9cc50bec09ffbcc, type: 3} + - {fileID: 12800000, guid: b328d34aaa081424885b43ca0c477a8c, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiLight.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiLight.otf new file mode 100644 index 0000000..8755b39 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiLight.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiLight.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiLight.otf.meta new file mode 100644 index 0000000..a2452f7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiLight.otf.meta @@ -0,0 +1,35 @@ +fileFormatVersion: 2 +guid: 07ac1b9e37c0fdc4c8cb2f488299d087 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: d328b83d9d41ea843a22d6fb443304c9, type: 3} + - {fileID: 12800000, guid: 05b83e7cb5ed33b4e9bb321ec2516ba1, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 1541d7f69c7a6df409a865ad7bc440a4, type: 3} + - {fileID: 12800000, guid: 73a0f8316330c0c418ae9b8325e85950, type: 3} + - {fileID: 12800000, guid: f3e88d691b3bd52459406083e61d65e8, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: 23969a968d2ac384f88017b855d52d65, type: 3} + - {fileID: 12800000, guid: 05a61caabb179da4b9cc50bec09ffbcc, type: 3} + - {fileID: 12800000, guid: 95a8c9c5570ab414a8fd029ba2b14165, type: 3} + - {fileID: 12800000, guid: b328d34aaa081424885b43ca0c477a8c, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiLightItalic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiLightItalic.otf new file mode 100644 index 0000000..b3b908f Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiLightItalic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiLightItalic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiLightItalic.otf.meta new file mode 100644 index 0000000..b90eaa7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaCodePL-SemiLightItalic.otf.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: 73a0f8316330c0c418ae9b8325e85950 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: 23969a968d2ac384f88017b855d52d65, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Bold.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Bold.otf new file mode 100644 index 0000000..dd04fab Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Bold.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Bold.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Bold.otf.meta new file mode 100644 index 0000000..a73a14f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Bold.otf.meta @@ -0,0 +1,21 @@ +fileFormatVersion: 2 +guid: 10c86a68a439aa6429f557d38e388ef5 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: [] + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-BoldItalic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-BoldItalic.otf new file mode 100644 index 0000000..cd61b7d Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-BoldItalic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-BoldItalic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-BoldItalic.otf.meta new file mode 100644 index 0000000..1ebdec8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-BoldItalic.otf.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 60ab01224bc39194f922c46a7a70a9a4 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-ExtraLight.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-ExtraLight.otf new file mode 100644 index 0000000..8a544a1 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-ExtraLight.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-ExtraLight.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-ExtraLight.otf.meta new file mode 100644 index 0000000..19fde72 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-ExtraLight.otf.meta @@ -0,0 +1,29 @@ +fileFormatVersion: 2 +guid: 9398bd1eae741a64ca69902dd71aa009 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 7215d5890c5c6bf43b0c96114779870f, type: 3} + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 82f98b018f18cea47a1b7ed59b34b459, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + - {fileID: 12800000, guid: 82925369bcb803e4c9893c8a93462f99, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-ExtraLightItalic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-ExtraLightItalic.otf new file mode 100644 index 0000000..398214e Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-ExtraLightItalic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-ExtraLightItalic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-ExtraLightItalic.otf.meta new file mode 100644 index 0000000..427e1ec --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-ExtraLightItalic.otf.meta @@ -0,0 +1,45 @@ +fileFormatVersion: 2 +guid: aeffe14ac9dbe34479f836adf6bdf791 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 7215d5890c5c6bf43b0c96114779870f, type: 3} + - {fileID: 12800000, guid: 9e28a5ce361eb2a46a46d8272d12f12c, type: 3} + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 47ff4ca1522d99248947cc6e51a62533, type: 3} + - {fileID: 12800000, guid: 553537cb0228a3a4b8f583b45983bc19, type: 3} + - {fileID: 12800000, guid: 9398bd1eae741a64ca69902dd71aa009, type: 3} + - {fileID: 12800000, guid: 82f98b018f18cea47a1b7ed59b34b459, type: 3} + - {fileID: 12800000, guid: 0d19470ebbb215c4dad39f6a3f24df26, type: 3} + - {fileID: 12800000, guid: 0e3b4d549388b4545a03bbc48fc6f93b, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 98cb6cce4999ba24c9ece0f040a46999, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: 6b442b14725966e4eb9c0f1800e6bcbd, type: 3} + - {fileID: 12800000, guid: 8661181a0ff3595468b3a1811bd5f2d4, type: 3} + - {fileID: 12800000, guid: b48580b843fd54e43a077dead5f53c71, type: 3} + - {fileID: 12800000, guid: 976833f9681f28349bef5cd77590e4ea, type: 3} + - {fileID: 12800000, guid: 34bd48ec385f5e64ebcda7dab36799fd, type: 3} + - {fileID: 12800000, guid: 578652f4830267c42b044b346566a598, type: 3} + - {fileID: 12800000, guid: f93a52d02d735b642888188cc77164da, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + - {fileID: 12800000, guid: 9699f2754c2af1b48a85157351cf1322, type: 3} + - {fileID: 12800000, guid: 7daf213e64c4d704095dcd6c6c863182, type: 3} + - {fileID: 12800000, guid: 82925369bcb803e4c9893c8a93462f99, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Italic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Italic.otf new file mode 100644 index 0000000..ebc83c1 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Italic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Italic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Italic.otf.meta new file mode 100644 index 0000000..e4a3d46 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Italic.otf.meta @@ -0,0 +1,42 @@ +fileFormatVersion: 2 +guid: 7daf213e64c4d704095dcd6c6c863182 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 7215d5890c5c6bf43b0c96114779870f, type: 3} + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 47ff4ca1522d99248947cc6e51a62533, type: 3} + - {fileID: 12800000, guid: 553537cb0228a3a4b8f583b45983bc19, type: 3} + - {fileID: 12800000, guid: 9398bd1eae741a64ca69902dd71aa009, type: 3} + - {fileID: 12800000, guid: 82f98b018f18cea47a1b7ed59b34b459, type: 3} + - {fileID: 12800000, guid: 0d19470ebbb215c4dad39f6a3f24df26, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 98cb6cce4999ba24c9ece0f040a46999, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: 6b442b14725966e4eb9c0f1800e6bcbd, type: 3} + - {fileID: 12800000, guid: 8661181a0ff3595468b3a1811bd5f2d4, type: 3} + - {fileID: 12800000, guid: b48580b843fd54e43a077dead5f53c71, type: 3} + - {fileID: 12800000, guid: 976833f9681f28349bef5cd77590e4ea, type: 3} + - {fileID: 12800000, guid: 34bd48ec385f5e64ebcda7dab36799fd, type: 3} + - {fileID: 12800000, guid: 578652f4830267c42b044b346566a598, type: 3} + - {fileID: 12800000, guid: f93a52d02d735b642888188cc77164da, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + - {fileID: 12800000, guid: 9699f2754c2af1b48a85157351cf1322, type: 3} + - {fileID: 12800000, guid: 82925369bcb803e4c9893c8a93462f99, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Light.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Light.otf new file mode 100644 index 0000000..4c4b9db Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Light.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Light.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Light.otf.meta new file mode 100644 index 0000000..af61e14 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Light.otf.meta @@ -0,0 +1,30 @@ +fileFormatVersion: 2 +guid: 34bd48ec385f5e64ebcda7dab36799fd +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 7215d5890c5c6bf43b0c96114779870f, type: 3} + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 9398bd1eae741a64ca69902dd71aa009, type: 3} + - {fileID: 12800000, guid: 82f98b018f18cea47a1b7ed59b34b459, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + - {fileID: 12800000, guid: 82925369bcb803e4c9893c8a93462f99, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-LightItalic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-LightItalic.otf new file mode 100644 index 0000000..9722452 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-LightItalic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-LightItalic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-LightItalic.otf.meta new file mode 100644 index 0000000..f41b6c4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-LightItalic.otf.meta @@ -0,0 +1,43 @@ +fileFormatVersion: 2 +guid: 0e3b4d549388b4545a03bbc48fc6f93b +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 7215d5890c5c6bf43b0c96114779870f, type: 3} + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 47ff4ca1522d99248947cc6e51a62533, type: 3} + - {fileID: 12800000, guid: 553537cb0228a3a4b8f583b45983bc19, type: 3} + - {fileID: 12800000, guid: 9398bd1eae741a64ca69902dd71aa009, type: 3} + - {fileID: 12800000, guid: 82f98b018f18cea47a1b7ed59b34b459, type: 3} + - {fileID: 12800000, guid: 0d19470ebbb215c4dad39f6a3f24df26, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 98cb6cce4999ba24c9ece0f040a46999, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: 6b442b14725966e4eb9c0f1800e6bcbd, type: 3} + - {fileID: 12800000, guid: 8661181a0ff3595468b3a1811bd5f2d4, type: 3} + - {fileID: 12800000, guid: b48580b843fd54e43a077dead5f53c71, type: 3} + - {fileID: 12800000, guid: 976833f9681f28349bef5cd77590e4ea, type: 3} + - {fileID: 12800000, guid: 34bd48ec385f5e64ebcda7dab36799fd, type: 3} + - {fileID: 12800000, guid: 578652f4830267c42b044b346566a598, type: 3} + - {fileID: 12800000, guid: f93a52d02d735b642888188cc77164da, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + - {fileID: 12800000, guid: 9699f2754c2af1b48a85157351cf1322, type: 3} + - {fileID: 12800000, guid: 7daf213e64c4d704095dcd6c6c863182, type: 3} + - {fileID: 12800000, guid: 82925369bcb803e4c9893c8a93462f99, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Regular.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Regular.otf new file mode 100644 index 0000000..30caa58 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Regular.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Regular.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Regular.otf.meta new file mode 100644 index 0000000..d369952 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-Regular.otf.meta @@ -0,0 +1,24 @@ +fileFormatVersion: 2 +guid: 413b4bf824414f6489d68654376a4132 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiBold.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiBold.otf new file mode 100644 index 0000000..822684f Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiBold.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiBold.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiBold.otf.meta new file mode 100644 index 0000000..4528f88 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiBold.otf.meta @@ -0,0 +1,35 @@ +fileFormatVersion: 2 +guid: 47ff4ca1522d99248947cc6e51a62533 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 7215d5890c5c6bf43b0c96114779870f, type: 3} + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 553537cb0228a3a4b8f583b45983bc19, type: 3} + - {fileID: 12800000, guid: 9398bd1eae741a64ca69902dd71aa009, type: 3} + - {fileID: 12800000, guid: 82f98b018f18cea47a1b7ed59b34b459, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: 8661181a0ff3595468b3a1811bd5f2d4, type: 3} + - {fileID: 12800000, guid: b48580b843fd54e43a077dead5f53c71, type: 3} + - {fileID: 12800000, guid: 34bd48ec385f5e64ebcda7dab36799fd, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + - {fileID: 12800000, guid: 9699f2754c2af1b48a85157351cf1322, type: 3} + - {fileID: 12800000, guid: 82925369bcb803e4c9893c8a93462f99, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiBoldItalic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiBoldItalic.otf new file mode 100644 index 0000000..01646f4 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiBoldItalic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiBoldItalic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiBoldItalic.otf.meta new file mode 100644 index 0000000..d33a876 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiBoldItalic.otf.meta @@ -0,0 +1,26 @@ +fileFormatVersion: 2 +guid: 7215d5890c5c6bf43b0c96114779870f +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiLight.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiLight.otf new file mode 100644 index 0000000..6f22e25 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiLight.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiLight.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiLight.otf.meta new file mode 100644 index 0000000..e89052d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiLight.otf.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 8661181a0ff3595468b3a1811bd5f2d4 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 7215d5890c5c6bf43b0c96114779870f, type: 3} + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 553537cb0228a3a4b8f583b45983bc19, type: 3} + - {fileID: 12800000, guid: 9398bd1eae741a64ca69902dd71aa009, type: 3} + - {fileID: 12800000, guid: 82f98b018f18cea47a1b7ed59b34b459, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: b48580b843fd54e43a077dead5f53c71, type: 3} + - {fileID: 12800000, guid: 34bd48ec385f5e64ebcda7dab36799fd, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + - {fileID: 12800000, guid: 82925369bcb803e4c9893c8a93462f99, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiLightItalic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiLightItalic.otf new file mode 100644 index 0000000..5de1908 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiLightItalic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiLightItalic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiLightItalic.otf.meta new file mode 100644 index 0000000..3d8b899 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMono-SemiLightItalic.otf.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: 976833f9681f28349bef5cd77590e4ea +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 7215d5890c5c6bf43b0c96114779870f, type: 3} + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 47ff4ca1522d99248947cc6e51a62533, type: 3} + - {fileID: 12800000, guid: 553537cb0228a3a4b8f583b45983bc19, type: 3} + - {fileID: 12800000, guid: 9398bd1eae741a64ca69902dd71aa009, type: 3} + - {fileID: 12800000, guid: 82f98b018f18cea47a1b7ed59b34b459, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: 8661181a0ff3595468b3a1811bd5f2d4, type: 3} + - {fileID: 12800000, guid: b48580b843fd54e43a077dead5f53c71, type: 3} + - {fileID: 12800000, guid: 34bd48ec385f5e64ebcda7dab36799fd, type: 3} + - {fileID: 12800000, guid: 578652f4830267c42b044b346566a598, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + - {fileID: 12800000, guid: 9699f2754c2af1b48a85157351cf1322, type: 3} + - {fileID: 12800000, guid: 82925369bcb803e4c9893c8a93462f99, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Bold.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Bold.otf new file mode 100644 index 0000000..c948719 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Bold.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Bold.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Bold.otf.meta new file mode 100644 index 0000000..3ce75b3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Bold.otf.meta @@ -0,0 +1,36 @@ +fileFormatVersion: 2 +guid: 3a025c4c6ccf1114182701d0519e228e +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: 16958435965fc6f4fbd4b844cd61b5f7, type: 3} + - {fileID: 12800000, guid: e58e465a8dcbdf049935a37d498eab99, type: 3} + - {fileID: 12800000, guid: 2646836949d564e419237c261f866c76, type: 3} + - {fileID: 12800000, guid: a32539a7529de5e4885a0a7d24dca07b, type: 3} + - {fileID: 12800000, guid: 89512ac2cd546ef4c8125d16deafdae9, type: 3} + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: f9e9395d39bf6f2459f01d33ffab3108, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: e501a19f18e1326428382e44032391b9, type: 3} + - {fileID: 12800000, guid: 2a78d28b0bf469f43944563ddb345973, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + - {fileID: 12800000, guid: e422a85fac38a3d48a6ac1a231d18283, type: 3} + - {fileID: 12800000, guid: 89ba4e40f6db2c743a6bb97e6716f184, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-BoldItalic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-BoldItalic.otf new file mode 100644 index 0000000..0a68538 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-BoldItalic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-BoldItalic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-BoldItalic.otf.meta new file mode 100644 index 0000000..662045b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-BoldItalic.otf.meta @@ -0,0 +1,31 @@ +fileFormatVersion: 2 +guid: 2646836949d564e419237c261f866c76 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: 16958435965fc6f4fbd4b844cd61b5f7, type: 3} + - {fileID: 12800000, guid: e58e465a8dcbdf049935a37d498eab99, type: 3} + - {fileID: 12800000, guid: a32539a7529de5e4885a0a7d24dca07b, type: 3} + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: e501a19f18e1326428382e44032391b9, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + - {fileID: 12800000, guid: e422a85fac38a3d48a6ac1a231d18283, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-ExtraLight.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-ExtraLight.otf new file mode 100644 index 0000000..ee0b181 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-ExtraLight.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-ExtraLight.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-ExtraLight.otf.meta new file mode 100644 index 0000000..a95fe0f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-ExtraLight.otf.meta @@ -0,0 +1,46 @@ +fileFormatVersion: 2 +guid: 6ff211e0581856d47906604cdefea214 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: 16958435965fc6f4fbd4b844cd61b5f7, type: 3} + - {fileID: 12800000, guid: 0c80b066771014344b945e69794dbd4d, type: 3} + - {fileID: 12800000, guid: ed4f4686d9fbf484f984f2d3ff068123, type: 3} + - {fileID: 12800000, guid: bd25d7f14e09f6643917bc460ebb762d, type: 3} + - {fileID: 12800000, guid: e58e465a8dcbdf049935a37d498eab99, type: 3} + - {fileID: 12800000, guid: 2646836949d564e419237c261f866c76, type: 3} + - {fileID: 12800000, guid: a32539a7529de5e4885a0a7d24dca07b, type: 3} + - {fileID: 12800000, guid: 89512ac2cd546ef4c8125d16deafdae9, type: 3} + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: 1f3bffa5f7b7c06489f9a61c91aca489, type: 3} + - {fileID: 12800000, guid: eea2dc3a90bd3b94e971b86012fda8a0, type: 3} + - {fileID: 12800000, guid: f9e9395d39bf6f2459f01d33ffab3108, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: e501a19f18e1326428382e44032391b9, type: 3} + - {fileID: 12800000, guid: 2a78d28b0bf469f43944563ddb345973, type: 3} + - {fileID: 12800000, guid: 3a025c4c6ccf1114182701d0519e228e, type: 3} + - {fileID: 12800000, guid: 3cb743b4a83cd5844b9b97d5e4415cf8, type: 3} + - {fileID: 12800000, guid: 9da594005cd02514b91d5167da9e65f0, type: 3} + - {fileID: 12800000, guid: 9e95ab9419b44444f952f79763d3ecee, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + - {fileID: 12800000, guid: e422a85fac38a3d48a6ac1a231d18283, type: 3} + - {fileID: 12800000, guid: 89ba4e40f6db2c743a6bb97e6716f184, type: 3} + - {fileID: 12800000, guid: 6d9e27a784ceade4f809b197fd4bd2f3, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-ExtraLightItalic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-ExtraLightItalic.otf new file mode 100644 index 0000000..2900a59 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-ExtraLightItalic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-ExtraLightItalic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-ExtraLightItalic.otf.meta new file mode 100644 index 0000000..79ab921 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-ExtraLightItalic.otf.meta @@ -0,0 +1,26 @@ +fileFormatVersion: 2 +guid: a32539a7529de5e4885a0a7d24dca07b +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Italic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Italic.otf new file mode 100644 index 0000000..b022f38 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Italic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Italic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Italic.otf.meta new file mode 100644 index 0000000..f5d0e2a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Italic.otf.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: e422a85fac38a3d48a6ac1a231d18283 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: a32539a7529de5e4885a0a7d24dca07b, type: 3} + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Light.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Light.otf new file mode 100644 index 0000000..ef6948b Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Light.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Light.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Light.otf.meta new file mode 100644 index 0000000..b5844d6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Light.otf.meta @@ -0,0 +1,21 @@ +fileFormatVersion: 2 +guid: a02da5c5712289048b8f127080e6d20b +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: [] + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-LightItalic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-LightItalic.otf new file mode 100644 index 0000000..940c4e7 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-LightItalic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-LightItalic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-LightItalic.otf.meta new file mode 100644 index 0000000..604e931 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-LightItalic.otf.meta @@ -0,0 +1,28 @@ +fileFormatVersion: 2 +guid: e501a19f18e1326428382e44032391b9 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: a32539a7529de5e4885a0a7d24dca07b, type: 3} + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + - {fileID: 12800000, guid: e422a85fac38a3d48a6ac1a231d18283, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Regular.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Regular.otf new file mode 100644 index 0000000..ab18c40 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Regular.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Regular.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Regular.otf.meta new file mode 100644 index 0000000..d191795 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-Regular.otf.meta @@ -0,0 +1,43 @@ +fileFormatVersion: 2 +guid: 9e95ab9419b44444f952f79763d3ecee +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: 16958435965fc6f4fbd4b844cd61b5f7, type: 3} + - {fileID: 12800000, guid: 0c80b066771014344b945e69794dbd4d, type: 3} + - {fileID: 12800000, guid: ed4f4686d9fbf484f984f2d3ff068123, type: 3} + - {fileID: 12800000, guid: bd25d7f14e09f6643917bc460ebb762d, type: 3} + - {fileID: 12800000, guid: e58e465a8dcbdf049935a37d498eab99, type: 3} + - {fileID: 12800000, guid: 2646836949d564e419237c261f866c76, type: 3} + - {fileID: 12800000, guid: a32539a7529de5e4885a0a7d24dca07b, type: 3} + - {fileID: 12800000, guid: 89512ac2cd546ef4c8125d16deafdae9, type: 3} + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: f9e9395d39bf6f2459f01d33ffab3108, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: e501a19f18e1326428382e44032391b9, type: 3} + - {fileID: 12800000, guid: 2a78d28b0bf469f43944563ddb345973, type: 3} + - {fileID: 12800000, guid: 3a025c4c6ccf1114182701d0519e228e, type: 3} + - {fileID: 12800000, guid: 3cb743b4a83cd5844b9b97d5e4415cf8, type: 3} + - {fileID: 12800000, guid: 9da594005cd02514b91d5167da9e65f0, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + - {fileID: 12800000, guid: e422a85fac38a3d48a6ac1a231d18283, type: 3} + - {fileID: 12800000, guid: 89ba4e40f6db2c743a6bb97e6716f184, type: 3} + - {fileID: 12800000, guid: 6d9e27a784ceade4f809b197fd4bd2f3, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiBold.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiBold.otf new file mode 100644 index 0000000..8d0b5a8 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiBold.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiBold.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiBold.otf.meta new file mode 100644 index 0000000..3189282 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiBold.otf.meta @@ -0,0 +1,25 @@ +fileFormatVersion: 2 +guid: a263475191e3ad542963be7410748694 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiBoldItalic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiBoldItalic.otf new file mode 100644 index 0000000..1ed2af5 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiBoldItalic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiBoldItalic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiBoldItalic.otf.meta new file mode 100644 index 0000000..7695421 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiBoldItalic.otf.meta @@ -0,0 +1,40 @@ +fileFormatVersion: 2 +guid: 9da594005cd02514b91d5167da9e65f0 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: 16958435965fc6f4fbd4b844cd61b5f7, type: 3} + - {fileID: 12800000, guid: 0c80b066771014344b945e69794dbd4d, type: 3} + - {fileID: 12800000, guid: e58e465a8dcbdf049935a37d498eab99, type: 3} + - {fileID: 12800000, guid: 2646836949d564e419237c261f866c76, type: 3} + - {fileID: 12800000, guid: a32539a7529de5e4885a0a7d24dca07b, type: 3} + - {fileID: 12800000, guid: 89512ac2cd546ef4c8125d16deafdae9, type: 3} + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: f9e9395d39bf6f2459f01d33ffab3108, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: e501a19f18e1326428382e44032391b9, type: 3} + - {fileID: 12800000, guid: 2a78d28b0bf469f43944563ddb345973, type: 3} + - {fileID: 12800000, guid: 3a025c4c6ccf1114182701d0519e228e, type: 3} + - {fileID: 12800000, guid: 3cb743b4a83cd5844b9b97d5e4415cf8, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + - {fileID: 12800000, guid: e422a85fac38a3d48a6ac1a231d18283, type: 3} + - {fileID: 12800000, guid: 89ba4e40f6db2c743a6bb97e6716f184, type: 3} + - {fileID: 12800000, guid: 6d9e27a784ceade4f809b197fd4bd2f3, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiLight.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiLight.otf new file mode 100644 index 0000000..2e70a39 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiLight.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiLight.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiLight.otf.meta new file mode 100644 index 0000000..1368cd2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiLight.otf.meta @@ -0,0 +1,41 @@ +fileFormatVersion: 2 +guid: bd25d7f14e09f6643917bc460ebb762d +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: 16958435965fc6f4fbd4b844cd61b5f7, type: 3} + - {fileID: 12800000, guid: 0c80b066771014344b945e69794dbd4d, type: 3} + - {fileID: 12800000, guid: e58e465a8dcbdf049935a37d498eab99, type: 3} + - {fileID: 12800000, guid: 2646836949d564e419237c261f866c76, type: 3} + - {fileID: 12800000, guid: a32539a7529de5e4885a0a7d24dca07b, type: 3} + - {fileID: 12800000, guid: 89512ac2cd546ef4c8125d16deafdae9, type: 3} + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: f9e9395d39bf6f2459f01d33ffab3108, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: e501a19f18e1326428382e44032391b9, type: 3} + - {fileID: 12800000, guid: 2a78d28b0bf469f43944563ddb345973, type: 3} + - {fileID: 12800000, guid: 3a025c4c6ccf1114182701d0519e228e, type: 3} + - {fileID: 12800000, guid: 3cb743b4a83cd5844b9b97d5e4415cf8, type: 3} + - {fileID: 12800000, guid: 9da594005cd02514b91d5167da9e65f0, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + - {fileID: 12800000, guid: e422a85fac38a3d48a6ac1a231d18283, type: 3} + - {fileID: 12800000, guid: 89ba4e40f6db2c743a6bb97e6716f184, type: 3} + - {fileID: 12800000, guid: 6d9e27a784ceade4f809b197fd4bd2f3, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiLightItalic.otf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiLightItalic.otf new file mode 100644 index 0000000..627c03d Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiLightItalic.otf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiLightItalic.otf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiLightItalic.otf.meta new file mode 100644 index 0000000..980297b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/otf/static/CascadiaMonoPL-SemiLightItalic.otf.meta @@ -0,0 +1,42 @@ +fileFormatVersion: 2 +guid: ed4f4686d9fbf484f984f2d3ff068123 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: 16958435965fc6f4fbd4b844cd61b5f7, type: 3} + - {fileID: 12800000, guid: 0c80b066771014344b945e69794dbd4d, type: 3} + - {fileID: 12800000, guid: bd25d7f14e09f6643917bc460ebb762d, type: 3} + - {fileID: 12800000, guid: e58e465a8dcbdf049935a37d498eab99, type: 3} + - {fileID: 12800000, guid: 2646836949d564e419237c261f866c76, type: 3} + - {fileID: 12800000, guid: a32539a7529de5e4885a0a7d24dca07b, type: 3} + - {fileID: 12800000, guid: 89512ac2cd546ef4c8125d16deafdae9, type: 3} + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: f9e9395d39bf6f2459f01d33ffab3108, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: e501a19f18e1326428382e44032391b9, type: 3} + - {fileID: 12800000, guid: 2a78d28b0bf469f43944563ddb345973, type: 3} + - {fileID: 12800000, guid: 3a025c4c6ccf1114182701d0519e228e, type: 3} + - {fileID: 12800000, guid: 3cb743b4a83cd5844b9b97d5e4415cf8, type: 3} + - {fileID: 12800000, guid: 9da594005cd02514b91d5167da9e65f0, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + - {fileID: 12800000, guid: e422a85fac38a3d48a6ac1a231d18283, type: 3} + - {fileID: 12800000, guid: 89ba4e40f6db2c743a6bb97e6716f184, type: 3} + - {fileID: 12800000, guid: 6d9e27a784ceade4f809b197fd4bd2f3, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf.meta new file mode 100644 index 0000000..fdb4ad9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 308260d3af7616f499ce6be9bc7838dc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCode.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCode.ttf new file mode 100644 index 0000000..b47bf63 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCode.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCode.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCode.ttf.meta new file mode 100644 index 0000000..15251a1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCode.ttf.meta @@ -0,0 +1,35 @@ +fileFormatVersion: 2 +guid: 979318e2cdafc0e43bfd56bb63011857 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 72e5aa1b7b152674291d9fccb8294ce3, type: 3} + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: b273c3775fe5a054bae87bc5a5582946, type: 3} + - {fileID: 12800000, guid: b1487468da584594cb7a15872aed71fe, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: c554b88478e850f479e97db4368dd46e, type: 3} + - {fileID: 12800000, guid: e51fcacd50bd10d4190500d62c483bd1, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 8663150164109c348be3bb39b7aebf1d, type: 3} + - {fileID: 12800000, guid: 92a0985f69d48b5489cc62c7c896e4e7, type: 3} + - {fileID: 12800000, guid: d25656f31b315204aa1a6f7d237f0f9c, type: 3} + - {fileID: 12800000, guid: 662915ab71124d544bd2416493d3ff32, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCodeItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCodeItalic.ttf new file mode 100644 index 0000000..0d48bfe Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCodeItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCodeItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCodeItalic.ttf.meta new file mode 100644 index 0000000..07e671c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCodeItalic.ttf.meta @@ -0,0 +1,44 @@ +fileFormatVersion: 2 +guid: 0ef6060f2a288c84e9928ac9d3b8cfe8 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 72e5aa1b7b152674291d9fccb8294ce3, type: 3} + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: cad612b349b5ef74ca38d022d2d6174b, type: 3} + - {fileID: 12800000, guid: 0813b01ecbba92c44bef402d7f5d26f2, type: 3} + - {fileID: 12800000, guid: dd494862431cf7f4ba7efa7643637a46, type: 3} + - {fileID: 12800000, guid: b273c3775fe5a054bae87bc5a5582946, type: 3} + - {fileID: 12800000, guid: b1487468da584594cb7a15872aed71fe, type: 3} + - {fileID: 12800000, guid: ecafe5fef77f5d146bda0b0724b6f6c8, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: c554b88478e850f479e97db4368dd46e, type: 3} + - {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + - {fileID: 12800000, guid: e51fcacd50bd10d4190500d62c483bd1, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 8663150164109c348be3bb39b7aebf1d, type: 3} + - {fileID: 12800000, guid: e971295cdb2ffcb489543c1d44f356ea, type: 3} + - {fileID: 12800000, guid: 92a0985f69d48b5489cc62c7c896e4e7, type: 3} + - {fileID: 12800000, guid: d25656f31b315204aa1a6f7d237f0f9c, type: 3} + - {fileID: 12800000, guid: 662915ab71124d544bd2416493d3ff32, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 2a361a73a2e35f345bf2bed85f5cee12, type: 3} + - {fileID: 12800000, guid: dd8d2ffc7dfeb6c47a80924234a173e6, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + - {fileID: 12800000, guid: 1b24c9cd038a582498295a7e7d7e2a14, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCodePL.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCodePL.ttf new file mode 100644 index 0000000..8a7c949 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCodePL.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCodePL.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCodePL.ttf.meta new file mode 100644 index 0000000..f0f774f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCodePL.ttf.meta @@ -0,0 +1,29 @@ +fileFormatVersion: 2 +guid: d328b83d9d41ea843a22d6fb443304c9 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 73a0f8316330c0c418ae9b8325e85950, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: 23969a968d2ac384f88017b855d52d65, type: 3} + - {fileID: 12800000, guid: b328d34aaa081424885b43ca0c477a8c, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCodePLItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCodePLItalic.ttf new file mode 100644 index 0000000..c85c8b7 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCodePLItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCodePLItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCodePLItalic.ttf.meta new file mode 100644 index 0000000..8d31233 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaCodePLItalic.ttf.meta @@ -0,0 +1,41 @@ +fileFormatVersion: 2 +guid: 8a1a944b23780e4479ea065f82f6ab07 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 5a294a4d671367c438a538f06b2590b2, type: 3} + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: 07ac1b9e37c0fdc4c8cb2f488299d087, type: 3} + - {fileID: 12800000, guid: d328b83d9d41ea843a22d6fb443304c9, type: 3} + - {fileID: 12800000, guid: 05b83e7cb5ed33b4e9bb321ec2516ba1, type: 3} + - {fileID: 12800000, guid: 2a74b8f31b781c749a78d29af98e7528, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 1541d7f69c7a6df409a865ad7bc440a4, type: 3} + - {fileID: 12800000, guid: 73a0f8316330c0c418ae9b8325e85950, type: 3} + - {fileID: 12800000, guid: f3e88d691b3bd52459406083e61d65e8, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: 6a9c05a0d5a5c0742902842c52557e75, type: 3} + - {fileID: 12800000, guid: d7e803e9afeb74b43a2107397027be3c, type: 3} + - {fileID: 12800000, guid: 23969a968d2ac384f88017b855d52d65, type: 3} + - {fileID: 12800000, guid: 05a61caabb179da4b9cc50bec09ffbcc, type: 3} + - {fileID: 12800000, guid: 95a8c9c5570ab414a8fd029ba2b14165, type: 3} + - {fileID: 12800000, guid: f8fe9657cc6af3b468e817ed63d946b9, type: 3} + - {fileID: 12800000, guid: b328d34aaa081424885b43ca0c477a8c, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMono.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMono.ttf new file mode 100644 index 0000000..d15637e Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMono.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMono.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMono.ttf.meta new file mode 100644 index 0000000..556d9e6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMono.ttf.meta @@ -0,0 +1,34 @@ +fileFormatVersion: 2 +guid: 9699f2754c2af1b48a85157351cf1322 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 7215d5890c5c6bf43b0c96114779870f, type: 3} + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 553537cb0228a3a4b8f583b45983bc19, type: 3} + - {fileID: 12800000, guid: 9398bd1eae741a64ca69902dd71aa009, type: 3} + - {fileID: 12800000, guid: 82f98b018f18cea47a1b7ed59b34b459, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: 8661181a0ff3595468b3a1811bd5f2d4, type: 3} + - {fileID: 12800000, guid: b48580b843fd54e43a077dead5f53c71, type: 3} + - {fileID: 12800000, guid: 34bd48ec385f5e64ebcda7dab36799fd, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + - {fileID: 12800000, guid: 82925369bcb803e4c9893c8a93462f99, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMonoItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMonoItalic.ttf new file mode 100644 index 0000000..2fba921 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMonoItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMonoItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMonoItalic.ttf.meta new file mode 100644 index 0000000..e62ed8c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMonoItalic.ttf.meta @@ -0,0 +1,41 @@ +fileFormatVersion: 2 +guid: 0d19470ebbb215c4dad39f6a3f24df26 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 7215d5890c5c6bf43b0c96114779870f, type: 3} + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 47ff4ca1522d99248947cc6e51a62533, type: 3} + - {fileID: 12800000, guid: 553537cb0228a3a4b8f583b45983bc19, type: 3} + - {fileID: 12800000, guid: 9398bd1eae741a64ca69902dd71aa009, type: 3} + - {fileID: 12800000, guid: 82f98b018f18cea47a1b7ed59b34b459, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 98cb6cce4999ba24c9ece0f040a46999, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: 6b442b14725966e4eb9c0f1800e6bcbd, type: 3} + - {fileID: 12800000, guid: 8661181a0ff3595468b3a1811bd5f2d4, type: 3} + - {fileID: 12800000, guid: b48580b843fd54e43a077dead5f53c71, type: 3} + - {fileID: 12800000, guid: 976833f9681f28349bef5cd77590e4ea, type: 3} + - {fileID: 12800000, guid: 34bd48ec385f5e64ebcda7dab36799fd, type: 3} + - {fileID: 12800000, guid: 578652f4830267c42b044b346566a598, type: 3} + - {fileID: 12800000, guid: f93a52d02d735b642888188cc77164da, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + - {fileID: 12800000, guid: 9699f2754c2af1b48a85157351cf1322, type: 3} + - {fileID: 12800000, guid: 82925369bcb803e4c9893c8a93462f99, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMonoPL.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMonoPL.ttf new file mode 100644 index 0000000..d3b1b40 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMonoPL.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMonoPL.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMonoPL.ttf.meta new file mode 100644 index 0000000..08c596e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMonoPL.ttf.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: 0c80b066771014344b945e69794dbd4d +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: 16958435965fc6f4fbd4b844cd61b5f7, type: 3} + - {fileID: 12800000, guid: e58e465a8dcbdf049935a37d498eab99, type: 3} + - {fileID: 12800000, guid: 2646836949d564e419237c261f866c76, type: 3} + - {fileID: 12800000, guid: a32539a7529de5e4885a0a7d24dca07b, type: 3} + - {fileID: 12800000, guid: 89512ac2cd546ef4c8125d16deafdae9, type: 3} + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: f9e9395d39bf6f2459f01d33ffab3108, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: e501a19f18e1326428382e44032391b9, type: 3} + - {fileID: 12800000, guid: 2a78d28b0bf469f43944563ddb345973, type: 3} + - {fileID: 12800000, guid: 3a025c4c6ccf1114182701d0519e228e, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + - {fileID: 12800000, guid: e422a85fac38a3d48a6ac1a231d18283, type: 3} + - {fileID: 12800000, guid: 89ba4e40f6db2c743a6bb97e6716f184, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMonoPLItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMonoPLItalic.ttf new file mode 100644 index 0000000..a0bbfbd Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMonoPLItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMonoPLItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMonoPLItalic.ttf.meta new file mode 100644 index 0000000..8edc66c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/CascadiaMonoPLItalic.ttf.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: 89512ac2cd546ef4c8125d16deafdae9 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: 16958435965fc6f4fbd4b844cd61b5f7, type: 3} + - {fileID: 12800000, guid: e58e465a8dcbdf049935a37d498eab99, type: 3} + - {fileID: 12800000, guid: 2646836949d564e419237c261f866c76, type: 3} + - {fileID: 12800000, guid: a32539a7529de5e4885a0a7d24dca07b, type: 3} + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: e501a19f18e1326428382e44032391b9, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + - {fileID: 12800000, guid: e422a85fac38a3d48a6ac1a231d18283, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static.meta new file mode 100644 index 0000000..5159052 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a5bbe08e6af708b499d4babde6aee7f3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Bold.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Bold.ttf new file mode 100644 index 0000000..9218232 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Bold.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Bold.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Bold.ttf.meta new file mode 100644 index 0000000..637c416 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Bold.ttf.meta @@ -0,0 +1,36 @@ +fileFormatVersion: 2 +guid: 0813b01ecbba92c44bef402d7f5d26f2 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 72e5aa1b7b152674291d9fccb8294ce3, type: 3} + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: b273c3775fe5a054bae87bc5a5582946, type: 3} + - {fileID: 12800000, guid: b1487468da584594cb7a15872aed71fe, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: c554b88478e850f479e97db4368dd46e, type: 3} + - {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + - {fileID: 12800000, guid: e51fcacd50bd10d4190500d62c483bd1, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 8663150164109c348be3bb39b7aebf1d, type: 3} + - {fileID: 12800000, guid: 92a0985f69d48b5489cc62c7c896e4e7, type: 3} + - {fileID: 12800000, guid: d25656f31b315204aa1a6f7d237f0f9c, type: 3} + - {fileID: 12800000, guid: 662915ab71124d544bd2416493d3ff32, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-BoldItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-BoldItalic.ttf new file mode 100644 index 0000000..0cb3268 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-BoldItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-BoldItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-BoldItalic.ttf.meta new file mode 100644 index 0000000..3a1b4f1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-BoldItalic.ttf.meta @@ -0,0 +1,26 @@ +fileFormatVersion: 2 +guid: b1487468da584594cb7a15872aed71fe +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-ExtraLight.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-ExtraLight.ttf new file mode 100644 index 0000000..d474a45 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-ExtraLight.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-ExtraLight.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-ExtraLight.ttf.meta new file mode 100644 index 0000000..80586a8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-ExtraLight.ttf.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 204a86901b7801b438475cb7b702bb5d +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-ExtraLightItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-ExtraLightItalic.ttf new file mode 100644 index 0000000..39cb8a1 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-ExtraLightItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-ExtraLightItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-ExtraLightItalic.ttf.meta new file mode 100644 index 0000000..c8d2992 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-ExtraLightItalic.ttf.meta @@ -0,0 +1,28 @@ +fileFormatVersion: 2 +guid: 92a0985f69d48b5489cc62c7c896e4e7 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 72e5aa1b7b152674291d9fccb8294ce3, type: 3} + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: b1487468da584594cb7a15872aed71fe, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Italic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Italic.ttf new file mode 100644 index 0000000..474dbd2 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Italic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Italic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Italic.ttf.meta new file mode 100644 index 0000000..ace5619 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Italic.ttf.meta @@ -0,0 +1,43 @@ +fileFormatVersion: 2 +guid: dd8d2ffc7dfeb6c47a80924234a173e6 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 72e5aa1b7b152674291d9fccb8294ce3, type: 3} + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: cad612b349b5ef74ca38d022d2d6174b, type: 3} + - {fileID: 12800000, guid: 0813b01ecbba92c44bef402d7f5d26f2, type: 3} + - {fileID: 12800000, guid: dd494862431cf7f4ba7efa7643637a46, type: 3} + - {fileID: 12800000, guid: b273c3775fe5a054bae87bc5a5582946, type: 3} + - {fileID: 12800000, guid: b1487468da584594cb7a15872aed71fe, type: 3} + - {fileID: 12800000, guid: ecafe5fef77f5d146bda0b0724b6f6c8, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: c554b88478e850f479e97db4368dd46e, type: 3} + - {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + - {fileID: 12800000, guid: e51fcacd50bd10d4190500d62c483bd1, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 8663150164109c348be3bb39b7aebf1d, type: 3} + - {fileID: 12800000, guid: e971295cdb2ffcb489543c1d44f356ea, type: 3} + - {fileID: 12800000, guid: 92a0985f69d48b5489cc62c7c896e4e7, type: 3} + - {fileID: 12800000, guid: d25656f31b315204aa1a6f7d237f0f9c, type: 3} + - {fileID: 12800000, guid: 662915ab71124d544bd2416493d3ff32, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 2a361a73a2e35f345bf2bed85f5cee12, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + - {fileID: 12800000, guid: 1b24c9cd038a582498295a7e7d7e2a14, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Light.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Light.ttf new file mode 100644 index 0000000..782cc48 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Light.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Light.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Light.ttf.meta new file mode 100644 index 0000000..a0daed3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Light.ttf.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: 72e5aa1b7b152674291d9fccb8294ce3 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: b1487468da584594cb7a15872aed71fe, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-LightItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-LightItalic.ttf new file mode 100644 index 0000000..10a66d8 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-LightItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-LightItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-LightItalic.ttf.meta new file mode 100644 index 0000000..cf5a79e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-LightItalic.ttf.meta @@ -0,0 +1,46 @@ +fileFormatVersion: 2 +guid: 8e4490b76dd91344ab522ad695957e6d +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 72e5aa1b7b152674291d9fccb8294ce3, type: 3} + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: cad612b349b5ef74ca38d022d2d6174b, type: 3} + - {fileID: 12800000, guid: 7e12edc0a1a3e384691f91c378cce503, type: 3} + - {fileID: 12800000, guid: 0813b01ecbba92c44bef402d7f5d26f2, type: 3} + - {fileID: 12800000, guid: dd494862431cf7f4ba7efa7643637a46, type: 3} + - {fileID: 12800000, guid: b273c3775fe5a054bae87bc5a5582946, type: 3} + - {fileID: 12800000, guid: b1487468da584594cb7a15872aed71fe, type: 3} + - {fileID: 12800000, guid: ecafe5fef77f5d146bda0b0724b6f6c8, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: c554b88478e850f479e97db4368dd46e, type: 3} + - {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + - {fileID: 12800000, guid: e51fcacd50bd10d4190500d62c483bd1, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 8663150164109c348be3bb39b7aebf1d, type: 3} + - {fileID: 12800000, guid: e971295cdb2ffcb489543c1d44f356ea, type: 3} + - {fileID: 12800000, guid: 0ef6060f2a288c84e9928ac9d3b8cfe8, type: 3} + - {fileID: 12800000, guid: 92a0985f69d48b5489cc62c7c896e4e7, type: 3} + - {fileID: 12800000, guid: d25656f31b315204aa1a6f7d237f0f9c, type: 3} + - {fileID: 12800000, guid: 662915ab71124d544bd2416493d3ff32, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 2a361a73a2e35f345bf2bed85f5cee12, type: 3} + - {fileID: 12800000, guid: dd8d2ffc7dfeb6c47a80924234a173e6, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + - {fileID: 12800000, guid: 1b24c9cd038a582498295a7e7d7e2a14, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Regular.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Regular.ttf new file mode 100644 index 0000000..685374a Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Regular.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Regular.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Regular.ttf.meta new file mode 100644 index 0000000..7ccd6fc --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-Regular.ttf.meta @@ -0,0 +1,31 @@ +fileFormatVersion: 2 +guid: c554b88478e850f479e97db4368dd46e +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 72e5aa1b7b152674291d9fccb8294ce3, type: 3} + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: b273c3775fe5a054bae87bc5a5582946, type: 3} + - {fileID: 12800000, guid: b1487468da584594cb7a15872aed71fe, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 92a0985f69d48b5489cc62c7c896e4e7, type: 3} + - {fileID: 12800000, guid: d25656f31b315204aa1a6f7d237f0f9c, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiBold.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiBold.ttf new file mode 100644 index 0000000..05733ab Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiBold.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiBold.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiBold.ttf.meta new file mode 100644 index 0000000..96323ee --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiBold.ttf.meta @@ -0,0 +1,21 @@ +fileFormatVersion: 2 +guid: 10d43bf45edfedf4f9711d6664cc5724 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: [] + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiBoldItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiBoldItalic.ttf new file mode 100644 index 0000000..7180693 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiBoldItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiBoldItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiBoldItalic.ttf.meta new file mode 100644 index 0000000..4c20fe4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiBoldItalic.ttf.meta @@ -0,0 +1,29 @@ +fileFormatVersion: 2 +guid: b273c3775fe5a054bae87bc5a5582946 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 72e5aa1b7b152674291d9fccb8294ce3, type: 3} + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: b1487468da584594cb7a15872aed71fe, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 92a0985f69d48b5489cc62c7c896e4e7, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiLight.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiLight.ttf new file mode 100644 index 0000000..20931f8 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiLight.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiLight.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiLight.ttf.meta new file mode 100644 index 0000000..ecf5734 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiLight.ttf.meta @@ -0,0 +1,39 @@ +fileFormatVersion: 2 +guid: cad612b349b5ef74ca38d022d2d6174b +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 72e5aa1b7b152674291d9fccb8294ce3, type: 3} + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: 0813b01ecbba92c44bef402d7f5d26f2, type: 3} + - {fileID: 12800000, guid: b273c3775fe5a054bae87bc5a5582946, type: 3} + - {fileID: 12800000, guid: b1487468da584594cb7a15872aed71fe, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: c554b88478e850f479e97db4368dd46e, type: 3} + - {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + - {fileID: 12800000, guid: e51fcacd50bd10d4190500d62c483bd1, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 8663150164109c348be3bb39b7aebf1d, type: 3} + - {fileID: 12800000, guid: e971295cdb2ffcb489543c1d44f356ea, type: 3} + - {fileID: 12800000, guid: 92a0985f69d48b5489cc62c7c896e4e7, type: 3} + - {fileID: 12800000, guid: d25656f31b315204aa1a6f7d237f0f9c, type: 3} + - {fileID: 12800000, guid: 662915ab71124d544bd2416493d3ff32, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 2a361a73a2e35f345bf2bed85f5cee12, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiLightItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiLightItalic.ttf new file mode 100644 index 0000000..7596a3f Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiLightItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiLightItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiLightItalic.ttf.meta new file mode 100644 index 0000000..fc086ac --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCode-SemiLightItalic.ttf.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: e971295cdb2ffcb489543c1d44f356ea +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code + fallbackFontReferences: + - {fileID: 12800000, guid: 72e5aa1b7b152674291d9fccb8294ce3, type: 3} + - {fileID: 12800000, guid: 2150041a33809f14296c060b65d57e12, type: 3} + - {fileID: 12800000, guid: 0813b01ecbba92c44bef402d7f5d26f2, type: 3} + - {fileID: 12800000, guid: b273c3775fe5a054bae87bc5a5582946, type: 3} + - {fileID: 12800000, guid: b1487468da584594cb7a15872aed71fe, type: 3} + - {fileID: 12800000, guid: e099aa05d6b3c0c4b9865686a7835bbd, type: 3} + - {fileID: 12800000, guid: c554b88478e850f479e97db4368dd46e, type: 3} + - {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + - {fileID: 12800000, guid: e51fcacd50bd10d4190500d62c483bd1, type: 3} + - {fileID: 12800000, guid: 0121b7f3b1375ed47bf6fec94f46917e, type: 3} + - {fileID: 12800000, guid: 8663150164109c348be3bb39b7aebf1d, type: 3} + - {fileID: 12800000, guid: 92a0985f69d48b5489cc62c7c896e4e7, type: 3} + - {fileID: 12800000, guid: d25656f31b315204aa1a6f7d237f0f9c, type: 3} + - {fileID: 12800000, guid: 662915ab71124d544bd2416493d3ff32, type: 3} + - {fileID: 12800000, guid: 10d43bf45edfedf4f9711d6664cc5724, type: 3} + - {fileID: 12800000, guid: 204a86901b7801b438475cb7b702bb5d, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Bold.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Bold.ttf new file mode 100644 index 0000000..65941a2 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Bold.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Bold.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Bold.ttf.meta new file mode 100644 index 0000000..4749f69 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Bold.ttf.meta @@ -0,0 +1,42 @@ +fileFormatVersion: 2 +guid: 2b15e701014bbbe43bdac86cd3f011ef +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 5a294a4d671367c438a538f06b2590b2, type: 3} + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: 07ac1b9e37c0fdc4c8cb2f488299d087, type: 3} + - {fileID: 12800000, guid: d328b83d9d41ea843a22d6fb443304c9, type: 3} + - {fileID: 12800000, guid: 05b83e7cb5ed33b4e9bb321ec2516ba1, type: 3} + - {fileID: 12800000, guid: 2a74b8f31b781c749a78d29af98e7528, type: 3} + - {fileID: 12800000, guid: 8a1a944b23780e4479ea065f82f6ab07, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 1541d7f69c7a6df409a865ad7bc440a4, type: 3} + - {fileID: 12800000, guid: 73a0f8316330c0c418ae9b8325e85950, type: 3} + - {fileID: 12800000, guid: f3e88d691b3bd52459406083e61d65e8, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: 6a9c05a0d5a5c0742902842c52557e75, type: 3} + - {fileID: 12800000, guid: d7e803e9afeb74b43a2107397027be3c, type: 3} + - {fileID: 12800000, guid: 23969a968d2ac384f88017b855d52d65, type: 3} + - {fileID: 12800000, guid: 05a61caabb179da4b9cc50bec09ffbcc, type: 3} + - {fileID: 12800000, guid: 95a8c9c5570ab414a8fd029ba2b14165, type: 3} + - {fileID: 12800000, guid: f8fe9657cc6af3b468e817ed63d946b9, type: 3} + - {fileID: 12800000, guid: b328d34aaa081424885b43ca0c477a8c, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-BoldItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-BoldItalic.ttf new file mode 100644 index 0000000..f7b3a00 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-BoldItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-BoldItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-BoldItalic.ttf.meta new file mode 100644 index 0000000..18d85c8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-BoldItalic.ttf.meta @@ -0,0 +1,38 @@ +fileFormatVersion: 2 +guid: 2a74b8f31b781c749a78d29af98e7528 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: 07ac1b9e37c0fdc4c8cb2f488299d087, type: 3} + - {fileID: 12800000, guid: d328b83d9d41ea843a22d6fb443304c9, type: 3} + - {fileID: 12800000, guid: 05b83e7cb5ed33b4e9bb321ec2516ba1, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 1541d7f69c7a6df409a865ad7bc440a4, type: 3} + - {fileID: 12800000, guid: 73a0f8316330c0c418ae9b8325e85950, type: 3} + - {fileID: 12800000, guid: f3e88d691b3bd52459406083e61d65e8, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: d7e803e9afeb74b43a2107397027be3c, type: 3} + - {fileID: 12800000, guid: 23969a968d2ac384f88017b855d52d65, type: 3} + - {fileID: 12800000, guid: 05a61caabb179da4b9cc50bec09ffbcc, type: 3} + - {fileID: 12800000, guid: 95a8c9c5570ab414a8fd029ba2b14165, type: 3} + - {fileID: 12800000, guid: f8fe9657cc6af3b468e817ed63d946b9, type: 3} + - {fileID: 12800000, guid: b328d34aaa081424885b43ca0c477a8c, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-ExtraLight.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-ExtraLight.ttf new file mode 100644 index 0000000..1b17eba Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-ExtraLight.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-ExtraLight.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-ExtraLight.ttf.meta new file mode 100644 index 0000000..4badb6c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-ExtraLight.ttf.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: f8fe9657cc6af3b468e817ed63d946b9 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: 07ac1b9e37c0fdc4c8cb2f488299d087, type: 3} + - {fileID: 12800000, guid: d328b83d9d41ea843a22d6fb443304c9, type: 3} + - {fileID: 12800000, guid: 05b83e7cb5ed33b4e9bb321ec2516ba1, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 1541d7f69c7a6df409a865ad7bc440a4, type: 3} + - {fileID: 12800000, guid: 73a0f8316330c0c418ae9b8325e85950, type: 3} + - {fileID: 12800000, guid: f3e88d691b3bd52459406083e61d65e8, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: d7e803e9afeb74b43a2107397027be3c, type: 3} + - {fileID: 12800000, guid: 23969a968d2ac384f88017b855d52d65, type: 3} + - {fileID: 12800000, guid: 05a61caabb179da4b9cc50bec09ffbcc, type: 3} + - {fileID: 12800000, guid: 95a8c9c5570ab414a8fd029ba2b14165, type: 3} + - {fileID: 12800000, guid: b328d34aaa081424885b43ca0c477a8c, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-ExtraLightItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-ExtraLightItalic.ttf new file mode 100644 index 0000000..e793fc6 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-ExtraLightItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-ExtraLightItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-ExtraLightItalic.ttf.meta new file mode 100644 index 0000000..243d27a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-ExtraLightItalic.ttf.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 52706a0613984894683a283cecf417d7 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Italic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Italic.ttf new file mode 100644 index 0000000..7e081b3 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Italic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Italic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Italic.ttf.meta new file mode 100644 index 0000000..1751bed --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Italic.ttf.meta @@ -0,0 +1,34 @@ +fileFormatVersion: 2 +guid: 95a8c9c5570ab414a8fd029ba2b14165 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: d328b83d9d41ea843a22d6fb443304c9, type: 3} + - {fileID: 12800000, guid: 05b83e7cb5ed33b4e9bb321ec2516ba1, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 1541d7f69c7a6df409a865ad7bc440a4, type: 3} + - {fileID: 12800000, guid: 73a0f8316330c0c418ae9b8325e85950, type: 3} + - {fileID: 12800000, guid: f3e88d691b3bd52459406083e61d65e8, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: 23969a968d2ac384f88017b855d52d65, type: 3} + - {fileID: 12800000, guid: 05a61caabb179da4b9cc50bec09ffbcc, type: 3} + - {fileID: 12800000, guid: b328d34aaa081424885b43ca0c477a8c, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Light.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Light.ttf new file mode 100644 index 0000000..5f1f977 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Light.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Light.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Light.ttf.meta new file mode 100644 index 0000000..004fbd6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Light.ttf.meta @@ -0,0 +1,46 @@ +fileFormatVersion: 2 +guid: dd9778bc87a0ac047abac85d3a31eb5f +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 5a294a4d671367c438a538f06b2590b2, type: 3} + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: 07ac1b9e37c0fdc4c8cb2f488299d087, type: 3} + - {fileID: 12800000, guid: d328b83d9d41ea843a22d6fb443304c9, type: 3} + - {fileID: 12800000, guid: 05b83e7cb5ed33b4e9bb321ec2516ba1, type: 3} + - {fileID: 12800000, guid: 2a74b8f31b781c749a78d29af98e7528, type: 3} + - {fileID: 12800000, guid: 6be27a05dd74d8a46a06897a04a86fef, type: 3} + - {fileID: 12800000, guid: ad84452b26e21764eabbbb6e8ca553b0, type: 3} + - {fileID: 12800000, guid: 8a1a944b23780e4479ea065f82f6ab07, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 1541d7f69c7a6df409a865ad7bc440a4, type: 3} + - {fileID: 12800000, guid: 2b15e701014bbbe43bdac86cd3f011ef, type: 3} + - {fileID: 12800000, guid: 73a0f8316330c0c418ae9b8325e85950, type: 3} + - {fileID: 12800000, guid: f3e88d691b3bd52459406083e61d65e8, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: 6a9c05a0d5a5c0742902842c52557e75, type: 3} + - {fileID: 12800000, guid: d7e803e9afeb74b43a2107397027be3c, type: 3} + - {fileID: 12800000, guid: 23969a968d2ac384f88017b855d52d65, type: 3} + - {fileID: 12800000, guid: 05a61caabb179da4b9cc50bec09ffbcc, type: 3} + - {fileID: 12800000, guid: 7c7b4e4e8a045584086d743854cffcb9, type: 3} + - {fileID: 12800000, guid: 95a8c9c5570ab414a8fd029ba2b14165, type: 3} + - {fileID: 12800000, guid: f8fe9657cc6af3b468e817ed63d946b9, type: 3} + - {fileID: 12800000, guid: b328d34aaa081424885b43ca0c477a8c, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-LightItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-LightItalic.ttf new file mode 100644 index 0000000..aa3ae57 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-LightItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-LightItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-LightItalic.ttf.meta new file mode 100644 index 0000000..a498c08 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-LightItalic.ttf.meta @@ -0,0 +1,28 @@ +fileFormatVersion: 2 +guid: b328d34aaa081424885b43ca0c477a8c +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 73a0f8316330c0c418ae9b8325e85950, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: 23969a968d2ac384f88017b855d52d65, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Regular.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Regular.ttf new file mode 100644 index 0000000..6ed7634 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Regular.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Regular.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Regular.ttf.meta new file mode 100644 index 0000000..52836fb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-Regular.ttf.meta @@ -0,0 +1,25 @@ +fileFormatVersion: 2 +guid: 138bbd549dc21384c9699145ed70f47b +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiBold.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiBold.ttf new file mode 100644 index 0000000..0301806 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiBold.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiBold.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiBold.ttf.meta new file mode 100644 index 0000000..0d68977 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiBold.ttf.meta @@ -0,0 +1,40 @@ +fileFormatVersion: 2 +guid: 6a9c05a0d5a5c0742902842c52557e75 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 5a294a4d671367c438a538f06b2590b2, type: 3} + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: 07ac1b9e37c0fdc4c8cb2f488299d087, type: 3} + - {fileID: 12800000, guid: d328b83d9d41ea843a22d6fb443304c9, type: 3} + - {fileID: 12800000, guid: 05b83e7cb5ed33b4e9bb321ec2516ba1, type: 3} + - {fileID: 12800000, guid: 2a74b8f31b781c749a78d29af98e7528, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 1541d7f69c7a6df409a865ad7bc440a4, type: 3} + - {fileID: 12800000, guid: 73a0f8316330c0c418ae9b8325e85950, type: 3} + - {fileID: 12800000, guid: f3e88d691b3bd52459406083e61d65e8, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: d7e803e9afeb74b43a2107397027be3c, type: 3} + - {fileID: 12800000, guid: 23969a968d2ac384f88017b855d52d65, type: 3} + - {fileID: 12800000, guid: 05a61caabb179da4b9cc50bec09ffbcc, type: 3} + - {fileID: 12800000, guid: 95a8c9c5570ab414a8fd029ba2b14165, type: 3} + - {fileID: 12800000, guid: f8fe9657cc6af3b468e817ed63d946b9, type: 3} + - {fileID: 12800000, guid: b328d34aaa081424885b43ca0c477a8c, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiBoldItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiBoldItalic.ttf new file mode 100644 index 0000000..e10a909 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiBoldItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiBoldItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiBoldItalic.ttf.meta new file mode 100644 index 0000000..d2386b7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiBoldItalic.ttf.meta @@ -0,0 +1,45 @@ +fileFormatVersion: 2 +guid: ad84452b26e21764eabbbb6e8ca553b0 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 5a294a4d671367c438a538f06b2590b2, type: 3} + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: 07ac1b9e37c0fdc4c8cb2f488299d087, type: 3} + - {fileID: 12800000, guid: d328b83d9d41ea843a22d6fb443304c9, type: 3} + - {fileID: 12800000, guid: 05b83e7cb5ed33b4e9bb321ec2516ba1, type: 3} + - {fileID: 12800000, guid: 2a74b8f31b781c749a78d29af98e7528, type: 3} + - {fileID: 12800000, guid: 6be27a05dd74d8a46a06897a04a86fef, type: 3} + - {fileID: 12800000, guid: 8a1a944b23780e4479ea065f82f6ab07, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 1541d7f69c7a6df409a865ad7bc440a4, type: 3} + - {fileID: 12800000, guid: 2b15e701014bbbe43bdac86cd3f011ef, type: 3} + - {fileID: 12800000, guid: 73a0f8316330c0c418ae9b8325e85950, type: 3} + - {fileID: 12800000, guid: f3e88d691b3bd52459406083e61d65e8, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: 6a9c05a0d5a5c0742902842c52557e75, type: 3} + - {fileID: 12800000, guid: d7e803e9afeb74b43a2107397027be3c, type: 3} + - {fileID: 12800000, guid: 23969a968d2ac384f88017b855d52d65, type: 3} + - {fileID: 12800000, guid: 05a61caabb179da4b9cc50bec09ffbcc, type: 3} + - {fileID: 12800000, guid: 7c7b4e4e8a045584086d743854cffcb9, type: 3} + - {fileID: 12800000, guid: 95a8c9c5570ab414a8fd029ba2b14165, type: 3} + - {fileID: 12800000, guid: f8fe9657cc6af3b468e817ed63d946b9, type: 3} + - {fileID: 12800000, guid: b328d34aaa081424885b43ca0c477a8c, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiLight.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiLight.ttf new file mode 100644 index 0000000..347f639 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiLight.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiLight.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiLight.ttf.meta new file mode 100644 index 0000000..5301dc9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiLight.ttf.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: 05b83e7cb5ed33b4e9bb321ec2516ba1 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: d328b83d9d41ea843a22d6fb443304c9, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 73a0f8316330c0c418ae9b8325e85950, type: 3} + - {fileID: 12800000, guid: f3e88d691b3bd52459406083e61d65e8, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: 23969a968d2ac384f88017b855d52d65, type: 3} + - {fileID: 12800000, guid: 05a61caabb179da4b9cc50bec09ffbcc, type: 3} + - {fileID: 12800000, guid: b328d34aaa081424885b43ca0c477a8c, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiLightItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiLightItalic.ttf new file mode 100644 index 0000000..4e777a2 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiLightItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiLightItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiLightItalic.ttf.meta new file mode 100644 index 0000000..41fbed2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaCodePL-SemiLightItalic.ttf.meta @@ -0,0 +1,30 @@ +fileFormatVersion: 2 +guid: f3e88d691b3bd52459406083e61d65e8 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Code PL + fallbackFontReferences: + - {fileID: 12800000, guid: 52706a0613984894683a283cecf417d7, type: 3} + - {fileID: 12800000, guid: d328b83d9d41ea843a22d6fb443304c9, type: 3} + - {fileID: 12800000, guid: 629fbd559c237554192ef77d0db80049, type: 3} + - {fileID: 12800000, guid: 73a0f8316330c0c418ae9b8325e85950, type: 3} + - {fileID: 12800000, guid: 0279e4915f2133e43b22fa7044da5b2e, type: 3} + - {fileID: 12800000, guid: 23969a968d2ac384f88017b855d52d65, type: 3} + - {fileID: 12800000, guid: b328d34aaa081424885b43ca0c477a8c, type: 3} + - {fileID: 12800000, guid: 138bbd549dc21384c9699145ed70f47b, type: 3} + - {fileID: 12800000, guid: 203b63fc9ede9a04597ace04500697b4, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Bold.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Bold.ttf new file mode 100644 index 0000000..ee9ae9a Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Bold.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Bold.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Bold.ttf.meta new file mode 100644 index 0000000..e03f683 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Bold.ttf.meta @@ -0,0 +1,39 @@ +fileFormatVersion: 2 +guid: f93a52d02d735b642888188cc77164da +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 7215d5890c5c6bf43b0c96114779870f, type: 3} + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 47ff4ca1522d99248947cc6e51a62533, type: 3} + - {fileID: 12800000, guid: 553537cb0228a3a4b8f583b45983bc19, type: 3} + - {fileID: 12800000, guid: 9398bd1eae741a64ca69902dd71aa009, type: 3} + - {fileID: 12800000, guid: 82f98b018f18cea47a1b7ed59b34b459, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 98cb6cce4999ba24c9ece0f040a46999, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: 8661181a0ff3595468b3a1811bd5f2d4, type: 3} + - {fileID: 12800000, guid: b48580b843fd54e43a077dead5f53c71, type: 3} + - {fileID: 12800000, guid: 976833f9681f28349bef5cd77590e4ea, type: 3} + - {fileID: 12800000, guid: 34bd48ec385f5e64ebcda7dab36799fd, type: 3} + - {fileID: 12800000, guid: 578652f4830267c42b044b346566a598, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + - {fileID: 12800000, guid: 9699f2754c2af1b48a85157351cf1322, type: 3} + - {fileID: 12800000, guid: 82925369bcb803e4c9893c8a93462f99, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-BoldItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-BoldItalic.ttf new file mode 100644 index 0000000..1291b79 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-BoldItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-BoldItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-BoldItalic.ttf.meta new file mode 100644 index 0000000..237b009 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-BoldItalic.ttf.meta @@ -0,0 +1,25 @@ +fileFormatVersion: 2 +guid: 813563a4513417c4090b2827f3e9c52f +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-ExtraLight.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-ExtraLight.ttf new file mode 100644 index 0000000..929ddf7 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-ExtraLight.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-ExtraLight.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-ExtraLight.ttf.meta new file mode 100644 index 0000000..2cdfcaa --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-ExtraLight.ttf.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 60c5ece5ac951d947917e489462848e3 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-ExtraLightItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-ExtraLightItalic.ttf new file mode 100644 index 0000000..d117cb0 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-ExtraLightItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-ExtraLightItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-ExtraLightItalic.ttf.meta new file mode 100644 index 0000000..82a1c80 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-ExtraLightItalic.ttf.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: 553537cb0228a3a4b8f583b45983bc19 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 7215d5890c5c6bf43b0c96114779870f, type: 3} + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 9398bd1eae741a64ca69902dd71aa009, type: 3} + - {fileID: 12800000, guid: 82f98b018f18cea47a1b7ed59b34b459, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: b48580b843fd54e43a077dead5f53c71, type: 3} + - {fileID: 12800000, guid: 34bd48ec385f5e64ebcda7dab36799fd, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + - {fileID: 12800000, guid: 82925369bcb803e4c9893c8a93462f99, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Italic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Italic.ttf new file mode 100644 index 0000000..b28baa6 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Italic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Italic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Italic.ttf.meta new file mode 100644 index 0000000..d999455 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Italic.ttf.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: 82925369bcb803e4c9893c8a93462f99 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 7215d5890c5c6bf43b0c96114779870f, type: 3} + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Light.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Light.ttf new file mode 100644 index 0000000..0b9c046 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Light.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Light.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Light.ttf.meta new file mode 100644 index 0000000..3a56150 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Light.ttf.meta @@ -0,0 +1,38 @@ +fileFormatVersion: 2 +guid: 98cb6cce4999ba24c9ece0f040a46999 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 7215d5890c5c6bf43b0c96114779870f, type: 3} + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 47ff4ca1522d99248947cc6e51a62533, type: 3} + - {fileID: 12800000, guid: 553537cb0228a3a4b8f583b45983bc19, type: 3} + - {fileID: 12800000, guid: 9398bd1eae741a64ca69902dd71aa009, type: 3} + - {fileID: 12800000, guid: 82f98b018f18cea47a1b7ed59b34b459, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: 8661181a0ff3595468b3a1811bd5f2d4, type: 3} + - {fileID: 12800000, guid: b48580b843fd54e43a077dead5f53c71, type: 3} + - {fileID: 12800000, guid: 976833f9681f28349bef5cd77590e4ea, type: 3} + - {fileID: 12800000, guid: 34bd48ec385f5e64ebcda7dab36799fd, type: 3} + - {fileID: 12800000, guid: 578652f4830267c42b044b346566a598, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + - {fileID: 12800000, guid: 9699f2754c2af1b48a85157351cf1322, type: 3} + - {fileID: 12800000, guid: 82925369bcb803e4c9893c8a93462f99, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-LightItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-LightItalic.ttf new file mode 100644 index 0000000..eb08218 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-LightItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-LightItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-LightItalic.ttf.meta new file mode 100644 index 0000000..21d523b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-LightItalic.ttf.meta @@ -0,0 +1,46 @@ +fileFormatVersion: 2 +guid: ce1ad8a62a947bd43ba8fc00cd9e44b0 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 7215d5890c5c6bf43b0c96114779870f, type: 3} + - {fileID: 12800000, guid: 9e28a5ce361eb2a46a46d8272d12f12c, type: 3} + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 47ff4ca1522d99248947cc6e51a62533, type: 3} + - {fileID: 12800000, guid: 553537cb0228a3a4b8f583b45983bc19, type: 3} + - {fileID: 12800000, guid: 9398bd1eae741a64ca69902dd71aa009, type: 3} + - {fileID: 12800000, guid: 82f98b018f18cea47a1b7ed59b34b459, type: 3} + - {fileID: 12800000, guid: aeffe14ac9dbe34479f836adf6bdf791, type: 3} + - {fileID: 12800000, guid: 0d19470ebbb215c4dad39f6a3f24df26, type: 3} + - {fileID: 12800000, guid: 0e3b4d549388b4545a03bbc48fc6f93b, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 98cb6cce4999ba24c9ece0f040a46999, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: 6b442b14725966e4eb9c0f1800e6bcbd, type: 3} + - {fileID: 12800000, guid: 8661181a0ff3595468b3a1811bd5f2d4, type: 3} + - {fileID: 12800000, guid: b48580b843fd54e43a077dead5f53c71, type: 3} + - {fileID: 12800000, guid: 976833f9681f28349bef5cd77590e4ea, type: 3} + - {fileID: 12800000, guid: 34bd48ec385f5e64ebcda7dab36799fd, type: 3} + - {fileID: 12800000, guid: 578652f4830267c42b044b346566a598, type: 3} + - {fileID: 12800000, guid: f93a52d02d735b642888188cc77164da, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + - {fileID: 12800000, guid: 9699f2754c2af1b48a85157351cf1322, type: 3} + - {fileID: 12800000, guid: 7daf213e64c4d704095dcd6c6c863182, type: 3} + - {fileID: 12800000, guid: 82925369bcb803e4c9893c8a93462f99, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Regular.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Regular.ttf new file mode 100644 index 0000000..d6cdcaa Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Regular.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Regular.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Regular.ttf.meta new file mode 100644 index 0000000..5c641a7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-Regular.ttf.meta @@ -0,0 +1,40 @@ +fileFormatVersion: 2 +guid: 6b442b14725966e4eb9c0f1800e6bcbd +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 7215d5890c5c6bf43b0c96114779870f, type: 3} + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 47ff4ca1522d99248947cc6e51a62533, type: 3} + - {fileID: 12800000, guid: 553537cb0228a3a4b8f583b45983bc19, type: 3} + - {fileID: 12800000, guid: 9398bd1eae741a64ca69902dd71aa009, type: 3} + - {fileID: 12800000, guid: 82f98b018f18cea47a1b7ed59b34b459, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 98cb6cce4999ba24c9ece0f040a46999, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: 8661181a0ff3595468b3a1811bd5f2d4, type: 3} + - {fileID: 12800000, guid: b48580b843fd54e43a077dead5f53c71, type: 3} + - {fileID: 12800000, guid: 976833f9681f28349bef5cd77590e4ea, type: 3} + - {fileID: 12800000, guid: 34bd48ec385f5e64ebcda7dab36799fd, type: 3} + - {fileID: 12800000, guid: 578652f4830267c42b044b346566a598, type: 3} + - {fileID: 12800000, guid: f93a52d02d735b642888188cc77164da, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + - {fileID: 12800000, guid: 9699f2754c2af1b48a85157351cf1322, type: 3} + - {fileID: 12800000, guid: 82925369bcb803e4c9893c8a93462f99, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiBold.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiBold.ttf new file mode 100644 index 0000000..b2cb62b Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiBold.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiBold.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiBold.ttf.meta new file mode 100644 index 0000000..b72ffd8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiBold.ttf.meta @@ -0,0 +1,28 @@ +fileFormatVersion: 2 +guid: 82f98b018f18cea47a1b7ed59b34b459 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 7215d5890c5c6bf43b0c96114779870f, type: 3} + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + - {fileID: 12800000, guid: 82925369bcb803e4c9893c8a93462f99, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiBoldItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiBoldItalic.ttf new file mode 100644 index 0000000..218dd74 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiBoldItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiBoldItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiBoldItalic.ttf.meta new file mode 100644 index 0000000..3b164f4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiBoldItalic.ttf.meta @@ -0,0 +1,31 @@ +fileFormatVersion: 2 +guid: b48580b843fd54e43a077dead5f53c71 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 7215d5890c5c6bf43b0c96114779870f, type: 3} + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 9398bd1eae741a64ca69902dd71aa009, type: 3} + - {fileID: 12800000, guid: 82f98b018f18cea47a1b7ed59b34b459, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: 34bd48ec385f5e64ebcda7dab36799fd, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + - {fileID: 12800000, guid: 82925369bcb803e4c9893c8a93462f99, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiLight.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiLight.ttf new file mode 100644 index 0000000..7c75a99 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiLight.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiLight.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiLight.ttf.meta new file mode 100644 index 0000000..798b228 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiLight.ttf.meta @@ -0,0 +1,36 @@ +fileFormatVersion: 2 +guid: 578652f4830267c42b044b346566a598 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 7215d5890c5c6bf43b0c96114779870f, type: 3} + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 47ff4ca1522d99248947cc6e51a62533, type: 3} + - {fileID: 12800000, guid: 553537cb0228a3a4b8f583b45983bc19, type: 3} + - {fileID: 12800000, guid: 9398bd1eae741a64ca69902dd71aa009, type: 3} + - {fileID: 12800000, guid: 82f98b018f18cea47a1b7ed59b34b459, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: 8661181a0ff3595468b3a1811bd5f2d4, type: 3} + - {fileID: 12800000, guid: b48580b843fd54e43a077dead5f53c71, type: 3} + - {fileID: 12800000, guid: 34bd48ec385f5e64ebcda7dab36799fd, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + - {fileID: 12800000, guid: 9699f2754c2af1b48a85157351cf1322, type: 3} + - {fileID: 12800000, guid: 82925369bcb803e4c9893c8a93462f99, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiLightItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiLightItalic.ttf new file mode 100644 index 0000000..15d37bf Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiLightItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiLightItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiLightItalic.ttf.meta new file mode 100644 index 0000000..91b2f6f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMono-SemiLightItalic.ttf.meta @@ -0,0 +1,44 @@ +fileFormatVersion: 2 +guid: 9e28a5ce361eb2a46a46d8272d12f12c +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono + fallbackFontReferences: + - {fileID: 12800000, guid: 7215d5890c5c6bf43b0c96114779870f, type: 3} + - {fileID: 12800000, guid: 10c86a68a439aa6429f557d38e388ef5, type: 3} + - {fileID: 12800000, guid: 60ab01224bc39194f922c46a7a70a9a4, type: 3} + - {fileID: 12800000, guid: 47ff4ca1522d99248947cc6e51a62533, type: 3} + - {fileID: 12800000, guid: 553537cb0228a3a4b8f583b45983bc19, type: 3} + - {fileID: 12800000, guid: 9398bd1eae741a64ca69902dd71aa009, type: 3} + - {fileID: 12800000, guid: 82f98b018f18cea47a1b7ed59b34b459, type: 3} + - {fileID: 12800000, guid: 0d19470ebbb215c4dad39f6a3f24df26, type: 3} + - {fileID: 12800000, guid: 0e3b4d549388b4545a03bbc48fc6f93b, type: 3} + - {fileID: 12800000, guid: 60c5ece5ac951d947917e489462848e3, type: 3} + - {fileID: 12800000, guid: 98cb6cce4999ba24c9ece0f040a46999, type: 3} + - {fileID: 12800000, guid: 413b4bf824414f6489d68654376a4132, type: 3} + - {fileID: 12800000, guid: 6b442b14725966e4eb9c0f1800e6bcbd, type: 3} + - {fileID: 12800000, guid: 8661181a0ff3595468b3a1811bd5f2d4, type: 3} + - {fileID: 12800000, guid: b48580b843fd54e43a077dead5f53c71, type: 3} + - {fileID: 12800000, guid: 976833f9681f28349bef5cd77590e4ea, type: 3} + - {fileID: 12800000, guid: 34bd48ec385f5e64ebcda7dab36799fd, type: 3} + - {fileID: 12800000, guid: 578652f4830267c42b044b346566a598, type: 3} + - {fileID: 12800000, guid: f93a52d02d735b642888188cc77164da, type: 3} + - {fileID: 12800000, guid: 813563a4513417c4090b2827f3e9c52f, type: 3} + - {fileID: 12800000, guid: 9699f2754c2af1b48a85157351cf1322, type: 3} + - {fileID: 12800000, guid: 7daf213e64c4d704095dcd6c6c863182, type: 3} + - {fileID: 12800000, guid: 82925369bcb803e4c9893c8a93462f99, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Bold.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Bold.ttf new file mode 100644 index 0000000..62f47fe Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Bold.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Bold.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Bold.ttf.meta new file mode 100644 index 0000000..9b97fc9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Bold.ttf.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 89ba4e40f6db2c743a6bb97e6716f184 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: 16958435965fc6f4fbd4b844cd61b5f7, type: 3} + - {fileID: 12800000, guid: e58e465a8dcbdf049935a37d498eab99, type: 3} + - {fileID: 12800000, guid: 2646836949d564e419237c261f866c76, type: 3} + - {fileID: 12800000, guid: a32539a7529de5e4885a0a7d24dca07b, type: 3} + - {fileID: 12800000, guid: 89512ac2cd546ef4c8125d16deafdae9, type: 3} + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: e501a19f18e1326428382e44032391b9, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + - {fileID: 12800000, guid: e422a85fac38a3d48a6ac1a231d18283, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-BoldItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-BoldItalic.ttf new file mode 100644 index 0000000..e09dce9 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-BoldItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-BoldItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-BoldItalic.ttf.meta new file mode 100644 index 0000000..6f60cf8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-BoldItalic.ttf.meta @@ -0,0 +1,34 @@ +fileFormatVersion: 2 +guid: f9e9395d39bf6f2459f01d33ffab3108 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: 16958435965fc6f4fbd4b844cd61b5f7, type: 3} + - {fileID: 12800000, guid: e58e465a8dcbdf049935a37d498eab99, type: 3} + - {fileID: 12800000, guid: 2646836949d564e419237c261f866c76, type: 3} + - {fileID: 12800000, guid: a32539a7529de5e4885a0a7d24dca07b, type: 3} + - {fileID: 12800000, guid: 89512ac2cd546ef4c8125d16deafdae9, type: 3} + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: e501a19f18e1326428382e44032391b9, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + - {fileID: 12800000, guid: e422a85fac38a3d48a6ac1a231d18283, type: 3} + - {fileID: 12800000, guid: 89ba4e40f6db2c743a6bb97e6716f184, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-ExtraLight.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-ExtraLight.ttf new file mode 100644 index 0000000..1598b3d Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-ExtraLight.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-ExtraLight.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-ExtraLight.ttf.meta new file mode 100644 index 0000000..1174f1b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-ExtraLight.ttf.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 012eb903275a75441b97b6772de905c7 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-ExtraLightItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-ExtraLightItalic.ttf new file mode 100644 index 0000000..cfbbd5b Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-ExtraLightItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-ExtraLightItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-ExtraLightItalic.ttf.meta new file mode 100644 index 0000000..882aafd --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-ExtraLightItalic.ttf.meta @@ -0,0 +1,39 @@ +fileFormatVersion: 2 +guid: 6d9e27a784ceade4f809b197fd4bd2f3 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: 16958435965fc6f4fbd4b844cd61b5f7, type: 3} + - {fileID: 12800000, guid: 0c80b066771014344b945e69794dbd4d, type: 3} + - {fileID: 12800000, guid: e58e465a8dcbdf049935a37d498eab99, type: 3} + - {fileID: 12800000, guid: 2646836949d564e419237c261f866c76, type: 3} + - {fileID: 12800000, guid: a32539a7529de5e4885a0a7d24dca07b, type: 3} + - {fileID: 12800000, guid: 89512ac2cd546ef4c8125d16deafdae9, type: 3} + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: f9e9395d39bf6f2459f01d33ffab3108, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: e501a19f18e1326428382e44032391b9, type: 3} + - {fileID: 12800000, guid: 2a78d28b0bf469f43944563ddb345973, type: 3} + - {fileID: 12800000, guid: 3a025c4c6ccf1114182701d0519e228e, type: 3} + - {fileID: 12800000, guid: 3cb743b4a83cd5844b9b97d5e4415cf8, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + - {fileID: 12800000, guid: e422a85fac38a3d48a6ac1a231d18283, type: 3} + - {fileID: 12800000, guid: 89ba4e40f6db2c743a6bb97e6716f184, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Italic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Italic.ttf new file mode 100644 index 0000000..ec83624 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Italic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Italic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Italic.ttf.meta new file mode 100644 index 0000000..9d71dbe --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Italic.ttf.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: d03b432838c756c40911f28e4f96ca06 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Light.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Light.ttf new file mode 100644 index 0000000..ac43563 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Light.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Light.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Light.ttf.meta new file mode 100644 index 0000000..7b1b756 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Light.ttf.meta @@ -0,0 +1,44 @@ +fileFormatVersion: 2 +guid: eea2dc3a90bd3b94e971b86012fda8a0 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: 16958435965fc6f4fbd4b844cd61b5f7, type: 3} + - {fileID: 12800000, guid: 0c80b066771014344b945e69794dbd4d, type: 3} + - {fileID: 12800000, guid: ed4f4686d9fbf484f984f2d3ff068123, type: 3} + - {fileID: 12800000, guid: bd25d7f14e09f6643917bc460ebb762d, type: 3} + - {fileID: 12800000, guid: e58e465a8dcbdf049935a37d498eab99, type: 3} + - {fileID: 12800000, guid: 2646836949d564e419237c261f866c76, type: 3} + - {fileID: 12800000, guid: a32539a7529de5e4885a0a7d24dca07b, type: 3} + - {fileID: 12800000, guid: 89512ac2cd546ef4c8125d16deafdae9, type: 3} + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: f9e9395d39bf6f2459f01d33ffab3108, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: e501a19f18e1326428382e44032391b9, type: 3} + - {fileID: 12800000, guid: 2a78d28b0bf469f43944563ddb345973, type: 3} + - {fileID: 12800000, guid: 3a025c4c6ccf1114182701d0519e228e, type: 3} + - {fileID: 12800000, guid: 3cb743b4a83cd5844b9b97d5e4415cf8, type: 3} + - {fileID: 12800000, guid: 9da594005cd02514b91d5167da9e65f0, type: 3} + - {fileID: 12800000, guid: 9e95ab9419b44444f952f79763d3ecee, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + - {fileID: 12800000, guid: e422a85fac38a3d48a6ac1a231d18283, type: 3} + - {fileID: 12800000, guid: 89ba4e40f6db2c743a6bb97e6716f184, type: 3} + - {fileID: 12800000, guid: 6d9e27a784ceade4f809b197fd4bd2f3, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-LightItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-LightItalic.ttf new file mode 100644 index 0000000..93a3030 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-LightItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-LightItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-LightItalic.ttf.meta new file mode 100644 index 0000000..c4a16b2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-LightItalic.ttf.meta @@ -0,0 +1,24 @@ +fileFormatVersion: 2 +guid: 1280dee6c362e3f4da55f45cf913ea4b +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Regular.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Regular.ttf new file mode 100644 index 0000000..437d452 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Regular.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Regular.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Regular.ttf.meta new file mode 100644 index 0000000..2a5762f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-Regular.ttf.meta @@ -0,0 +1,29 @@ +fileFormatVersion: 2 +guid: e58e465a8dcbdf049935a37d498eab99 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: a32539a7529de5e4885a0a7d24dca07b, type: 3} + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: e501a19f18e1326428382e44032391b9, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + - {fileID: 12800000, guid: e422a85fac38a3d48a6ac1a231d18283, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiBold.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiBold.ttf new file mode 100644 index 0000000..cae13ea Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiBold.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiBold.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiBold.ttf.meta new file mode 100644 index 0000000..78c44da --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiBold.ttf.meta @@ -0,0 +1,35 @@ +fileFormatVersion: 2 +guid: 2a78d28b0bf469f43944563ddb345973 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: 16958435965fc6f4fbd4b844cd61b5f7, type: 3} + - {fileID: 12800000, guid: e58e465a8dcbdf049935a37d498eab99, type: 3} + - {fileID: 12800000, guid: 2646836949d564e419237c261f866c76, type: 3} + - {fileID: 12800000, guid: a32539a7529de5e4885a0a7d24dca07b, type: 3} + - {fileID: 12800000, guid: 89512ac2cd546ef4c8125d16deafdae9, type: 3} + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: f9e9395d39bf6f2459f01d33ffab3108, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: e501a19f18e1326428382e44032391b9, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + - {fileID: 12800000, guid: e422a85fac38a3d48a6ac1a231d18283, type: 3} + - {fileID: 12800000, guid: 89ba4e40f6db2c743a6bb97e6716f184, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiBoldItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiBoldItalic.ttf new file mode 100644 index 0000000..ab25adc Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiBoldItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiBoldItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiBoldItalic.ttf.meta new file mode 100644 index 0000000..6611d14 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiBoldItalic.ttf.meta @@ -0,0 +1,30 @@ +fileFormatVersion: 2 +guid: 16958435965fc6f4fbd4b844cd61b5f7 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: e58e465a8dcbdf049935a37d498eab99, type: 3} + - {fileID: 12800000, guid: a32539a7529de5e4885a0a7d24dca07b, type: 3} + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: e501a19f18e1326428382e44032391b9, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + - {fileID: 12800000, guid: e422a85fac38a3d48a6ac1a231d18283, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiLight.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiLight.ttf new file mode 100644 index 0000000..d3f0b3c Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiLight.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiLight.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiLight.ttf.meta new file mode 100644 index 0000000..689676c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiLight.ttf.meta @@ -0,0 +1,45 @@ +fileFormatVersion: 2 +guid: 1f3bffa5f7b7c06489f9a61c91aca489 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: 16958435965fc6f4fbd4b844cd61b5f7, type: 3} + - {fileID: 12800000, guid: 0c80b066771014344b945e69794dbd4d, type: 3} + - {fileID: 12800000, guid: ed4f4686d9fbf484f984f2d3ff068123, type: 3} + - {fileID: 12800000, guid: bd25d7f14e09f6643917bc460ebb762d, type: 3} + - {fileID: 12800000, guid: e58e465a8dcbdf049935a37d498eab99, type: 3} + - {fileID: 12800000, guid: 2646836949d564e419237c261f866c76, type: 3} + - {fileID: 12800000, guid: a32539a7529de5e4885a0a7d24dca07b, type: 3} + - {fileID: 12800000, guid: 89512ac2cd546ef4c8125d16deafdae9, type: 3} + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: eea2dc3a90bd3b94e971b86012fda8a0, type: 3} + - {fileID: 12800000, guid: f9e9395d39bf6f2459f01d33ffab3108, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: e501a19f18e1326428382e44032391b9, type: 3} + - {fileID: 12800000, guid: 2a78d28b0bf469f43944563ddb345973, type: 3} + - {fileID: 12800000, guid: 3a025c4c6ccf1114182701d0519e228e, type: 3} + - {fileID: 12800000, guid: 3cb743b4a83cd5844b9b97d5e4415cf8, type: 3} + - {fileID: 12800000, guid: 9da594005cd02514b91d5167da9e65f0, type: 3} + - {fileID: 12800000, guid: 9e95ab9419b44444f952f79763d3ecee, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + - {fileID: 12800000, guid: e422a85fac38a3d48a6ac1a231d18283, type: 3} + - {fileID: 12800000, guid: 89ba4e40f6db2c743a6bb97e6716f184, type: 3} + - {fileID: 12800000, guid: 6d9e27a784ceade4f809b197fd4bd2f3, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiLightItalic.ttf b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiLightItalic.ttf new file mode 100644 index 0000000..f159800 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiLightItalic.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiLightItalic.ttf.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiLightItalic.ttf.meta new file mode 100644 index 0000000..5b0f772 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/ttf/static/CascadiaMonoPL-SemiLightItalic.ttf.meta @@ -0,0 +1,38 @@ +fileFormatVersion: 2 +guid: 3cb743b4a83cd5844b9b97d5e4415cf8 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cascadia Mono PL + fallbackFontReferences: + - {fileID: 12800000, guid: 16958435965fc6f4fbd4b844cd61b5f7, type: 3} + - {fileID: 12800000, guid: 0c80b066771014344b945e69794dbd4d, type: 3} + - {fileID: 12800000, guid: e58e465a8dcbdf049935a37d498eab99, type: 3} + - {fileID: 12800000, guid: 2646836949d564e419237c261f866c76, type: 3} + - {fileID: 12800000, guid: a32539a7529de5e4885a0a7d24dca07b, type: 3} + - {fileID: 12800000, guid: 89512ac2cd546ef4c8125d16deafdae9, type: 3} + - {fileID: 12800000, guid: a02da5c5712289048b8f127080e6d20b, type: 3} + - {fileID: 12800000, guid: 012eb903275a75441b97b6772de905c7, type: 3} + - {fileID: 12800000, guid: f9e9395d39bf6f2459f01d33ffab3108, type: 3} + - {fileID: 12800000, guid: a263475191e3ad542963be7410748694, type: 3} + - {fileID: 12800000, guid: 1280dee6c362e3f4da55f45cf913ea4b, type: 3} + - {fileID: 12800000, guid: e501a19f18e1326428382e44032391b9, type: 3} + - {fileID: 12800000, guid: 2a78d28b0bf469f43944563ddb345973, type: 3} + - {fileID: 12800000, guid: 3a025c4c6ccf1114182701d0519e228e, type: 3} + - {fileID: 12800000, guid: d03b432838c756c40911f28e4f96ca06, type: 3} + - {fileID: 12800000, guid: e422a85fac38a3d48a6ac1a231d18283, type: 3} + - {fileID: 12800000, guid: 89ba4e40f6db2c743a6bb97e6716f184, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2.meta new file mode 100644 index 0000000..792190b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 352b5bcb2e184e64480556d23a3b02c3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCode.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCode.woff2 new file mode 100644 index 0000000..8865499 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCode.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCode.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCode.woff2.meta new file mode 100644 index 0000000..7918b3b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCode.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d79ca948967a7864aaed8fa81473fee0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCodeItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCodeItalic.woff2 new file mode 100644 index 0000000..5c1d8d2 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCodeItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCodeItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCodeItalic.woff2.meta new file mode 100644 index 0000000..5dc5cc0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCodeItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: eb1c73daec77cad4385a386f3538ca21 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCodePL.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCodePL.woff2 new file mode 100644 index 0000000..a3fa12b Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCodePL.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCodePL.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCodePL.woff2.meta new file mode 100644 index 0000000..c87691d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCodePL.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5e934c4775f13114580132f8883b5d1a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCodePLItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCodePLItalic.woff2 new file mode 100644 index 0000000..4669cf6 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCodePLItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCodePLItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCodePLItalic.woff2.meta new file mode 100644 index 0000000..84a3b94 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaCodePLItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cb19ac94ad9b5fe4cad0ad217898a6c9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMono.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMono.woff2 new file mode 100644 index 0000000..9ffc780 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMono.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMono.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMono.woff2.meta new file mode 100644 index 0000000..9393fff --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMono.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c4d522afd374a20488823d25a15e4def +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMonoItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMonoItalic.woff2 new file mode 100644 index 0000000..176d149 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMonoItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMonoItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMonoItalic.woff2.meta new file mode 100644 index 0000000..72abbd3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMonoItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e9057fa260427b84084423e079e40a15 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMonoPL.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMonoPL.woff2 new file mode 100644 index 0000000..fc6ddd3 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMonoPL.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMonoPL.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMonoPL.woff2.meta new file mode 100644 index 0000000..26ca3fa --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMonoPL.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 73f98d25c21f3fb4da873e8bcc7630e4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMonoPLItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMonoPLItalic.woff2 new file mode 100644 index 0000000..e24de96 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMonoPLItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMonoPLItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMonoPLItalic.woff2.meta new file mode 100644 index 0000000..b9dc2d5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/CascadiaMonoPLItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7af3f1a0526318f4882e75d471aa0c41 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static.meta new file mode 100644 index 0000000..c143a0d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 61cc38d3a79994247ae4f5b0097f0da9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Bold.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Bold.woff2 new file mode 100644 index 0000000..9e65d6d Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Bold.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Bold.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Bold.woff2.meta new file mode 100644 index 0000000..9f9219b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Bold.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0bd94cacd7bf66f47b5c538a8237f084 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-BoldItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-BoldItalic.woff2 new file mode 100644 index 0000000..ecfadf4 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-BoldItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-BoldItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-BoldItalic.woff2.meta new file mode 100644 index 0000000..3f28abd --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-BoldItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8e18cc937351ae647a74ecd56edbc2fe +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-ExtraLight.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-ExtraLight.woff2 new file mode 100644 index 0000000..adffedf Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-ExtraLight.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-ExtraLight.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-ExtraLight.woff2.meta new file mode 100644 index 0000000..cee1f27 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-ExtraLight.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 466beb3616243b8439ab6f109dfbf2ea +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-ExtraLightItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-ExtraLightItalic.woff2 new file mode 100644 index 0000000..1b3b5f3 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-ExtraLightItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-ExtraLightItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-ExtraLightItalic.woff2.meta new file mode 100644 index 0000000..bd60ab7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-ExtraLightItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b55d8d64cfac07c4c83bcb74eb8a22e0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Italic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Italic.woff2 new file mode 100644 index 0000000..1962359 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Italic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Italic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Italic.woff2.meta new file mode 100644 index 0000000..03d82a1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Italic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 39ecaeb24580b5e4fb6894fd253163b6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Light.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Light.woff2 new file mode 100644 index 0000000..6b63437 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Light.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Light.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Light.woff2.meta new file mode 100644 index 0000000..0fc2b10 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Light.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 01960735ba9b6e243bab84885bf048bd +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-LightItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-LightItalic.woff2 new file mode 100644 index 0000000..bc7648c Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-LightItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-LightItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-LightItalic.woff2.meta new file mode 100644 index 0000000..a4553b4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-LightItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 06d6e64b94e724b47a6e817b48876e37 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Regular.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Regular.woff2 new file mode 100644 index 0000000..433b124 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Regular.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Regular.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Regular.woff2.meta new file mode 100644 index 0000000..d8119f3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-Regular.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6f20faf7bd2ae3948afce05a9909c059 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiBold.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiBold.woff2 new file mode 100644 index 0000000..d1ae896 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiBold.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiBold.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiBold.woff2.meta new file mode 100644 index 0000000..d3eef9c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiBold.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ffdbae7bde63b3c4890f2f973a9187cc +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiBoldItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiBoldItalic.woff2 new file mode 100644 index 0000000..71a0936 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiBoldItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiBoldItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiBoldItalic.woff2.meta new file mode 100644 index 0000000..a71e889 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiBoldItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7c81b51ad782e1749a86d90651a27684 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiLight.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiLight.woff2 new file mode 100644 index 0000000..fb0f9de Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiLight.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiLight.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiLight.woff2.meta new file mode 100644 index 0000000..9ed990b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiLight.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 600fb8658ebb49d4e8c8ea355a5e4910 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiLightItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiLightItalic.woff2 new file mode 100644 index 0000000..af02455 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiLightItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiLightItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiLightItalic.woff2.meta new file mode 100644 index 0000000..4d9226c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCode-SemiLightItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7c84f4ac5e3770c40ab02daaf80b5d6d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Bold.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Bold.woff2 new file mode 100644 index 0000000..8f1aa70 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Bold.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Bold.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Bold.woff2.meta new file mode 100644 index 0000000..cc0128d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Bold.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 40795123bfc78ec45829a1a4515b3187 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-BoldItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-BoldItalic.woff2 new file mode 100644 index 0000000..cc3be0a Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-BoldItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-BoldItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-BoldItalic.woff2.meta new file mode 100644 index 0000000..a17ac9e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-BoldItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 023cae74155838b40a5c315a788a0148 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-ExtraLight.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-ExtraLight.woff2 new file mode 100644 index 0000000..5faa6f9 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-ExtraLight.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-ExtraLight.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-ExtraLight.woff2.meta new file mode 100644 index 0000000..2af2a11 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-ExtraLight.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 92b4dea91a4ed7641b11fd6412d1dbba +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-ExtraLightItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-ExtraLightItalic.woff2 new file mode 100644 index 0000000..7b99be8 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-ExtraLightItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-ExtraLightItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-ExtraLightItalic.woff2.meta new file mode 100644 index 0000000..9833e7f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-ExtraLightItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 45a9d71f7217da444bd2e41cf052c78e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Italic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Italic.woff2 new file mode 100644 index 0000000..72f1779 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Italic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Italic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Italic.woff2.meta new file mode 100644 index 0000000..19e3dae --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Italic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ab8fefd93dbe9ea40a45ff89a97046a7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Light.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Light.woff2 new file mode 100644 index 0000000..848e8e4 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Light.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Light.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Light.woff2.meta new file mode 100644 index 0000000..294f6b3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Light.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e68f8098cdbc0a941abbc5d9258a051c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-LightItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-LightItalic.woff2 new file mode 100644 index 0000000..f487c05 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-LightItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-LightItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-LightItalic.woff2.meta new file mode 100644 index 0000000..ebd2f23 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-LightItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5432639433ae19f4fb13f91ccec2f72b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Regular.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Regular.woff2 new file mode 100644 index 0000000..5ea63e6 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Regular.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Regular.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Regular.woff2.meta new file mode 100644 index 0000000..8ae0917 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-Regular.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 74cd40dfb269085468641b1750210923 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiBold.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiBold.woff2 new file mode 100644 index 0000000..dd3b26e Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiBold.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiBold.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiBold.woff2.meta new file mode 100644 index 0000000..a21f225 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiBold.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cc8ffee690fc13047a60888c4280fde8 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiBoldItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiBoldItalic.woff2 new file mode 100644 index 0000000..6de6657 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiBoldItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiBoldItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiBoldItalic.woff2.meta new file mode 100644 index 0000000..ce2b41c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiBoldItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8a279010fd828174bb2185d9b1fbb0fd +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiLight.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiLight.woff2 new file mode 100644 index 0000000..9d76556 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiLight.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiLight.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiLight.woff2.meta new file mode 100644 index 0000000..eef89dd --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiLight.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5ab5c576b882d1747bec7bb7664a83e8 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiLightItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiLightItalic.woff2 new file mode 100644 index 0000000..215ece8 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiLightItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiLightItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiLightItalic.woff2.meta new file mode 100644 index 0000000..ef69470 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaCodePL-SemiLightItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 24bc1b4444faeb34db4d377f5967cc28 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Bold.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Bold.woff2 new file mode 100644 index 0000000..8ad451e Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Bold.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Bold.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Bold.woff2.meta new file mode 100644 index 0000000..e83ea80 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Bold.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5eeaa625b8dbe9d43be19ce3378a42de +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-BoldItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-BoldItalic.woff2 new file mode 100644 index 0000000..f3f82c6 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-BoldItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-BoldItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-BoldItalic.woff2.meta new file mode 100644 index 0000000..edb4964 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-BoldItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6290e4beb040d5e499caa033a152e8c5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-ExtraLight.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-ExtraLight.woff2 new file mode 100644 index 0000000..0e8c265 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-ExtraLight.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-ExtraLight.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-ExtraLight.woff2.meta new file mode 100644 index 0000000..ffd1641 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-ExtraLight.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c7ec235d56242ca42b4d61b6f43af0b5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-ExtraLightItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-ExtraLightItalic.woff2 new file mode 100644 index 0000000..70faa0d Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-ExtraLightItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-ExtraLightItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-ExtraLightItalic.woff2.meta new file mode 100644 index 0000000..59ab567 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-ExtraLightItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a9a4a48150112624da8d57db05833c31 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Italic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Italic.woff2 new file mode 100644 index 0000000..98ee54f Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Italic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Italic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Italic.woff2.meta new file mode 100644 index 0000000..2c7caae --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Italic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5c725ded5feaf0f429aeae10e4265726 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Light.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Light.woff2 new file mode 100644 index 0000000..695cfe1 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Light.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Light.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Light.woff2.meta new file mode 100644 index 0000000..c9e9c33 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Light.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8ce862c42c3817e4697098db87999d71 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-LightItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-LightItalic.woff2 new file mode 100644 index 0000000..4a755c9 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-LightItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-LightItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-LightItalic.woff2.meta new file mode 100644 index 0000000..00df3ac --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-LightItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 00b66b1c6759ca04c95ccf2fa45d103c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Regular.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Regular.woff2 new file mode 100644 index 0000000..1cf7c9a Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Regular.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Regular.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Regular.woff2.meta new file mode 100644 index 0000000..bb35e6c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-Regular.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 41a9c7edaa3f0f94294ef6adca4d45fd +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiBold.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiBold.woff2 new file mode 100644 index 0000000..cdc2ff6 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiBold.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiBold.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiBold.woff2.meta new file mode 100644 index 0000000..7f1325f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiBold.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8622e0d22a7de634083e833bbacd3e9c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiBoldItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiBoldItalic.woff2 new file mode 100644 index 0000000..0f1cb3c Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiBoldItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiBoldItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiBoldItalic.woff2.meta new file mode 100644 index 0000000..5a20df1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiBoldItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 741f69a1dc9a43a489fbef4c28ef0ea5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiLight.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiLight.woff2 new file mode 100644 index 0000000..e228566 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiLight.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiLight.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiLight.woff2.meta new file mode 100644 index 0000000..28c590f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiLight.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 831a549e6b158404d8ad44c23b1c8c31 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiLightItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiLightItalic.woff2 new file mode 100644 index 0000000..a482441 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiLightItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiLightItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiLightItalic.woff2.meta new file mode 100644 index 0000000..f19d04a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMono-SemiLightItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 11c493194af848c48804eadcf0b2c68e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Bold.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Bold.woff2 new file mode 100644 index 0000000..fafcf32 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Bold.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Bold.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Bold.woff2.meta new file mode 100644 index 0000000..3dfdc84 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Bold.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8b03bc95d8291d94ab657b590183d5d8 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-BoldItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-BoldItalic.woff2 new file mode 100644 index 0000000..0f414f7 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-BoldItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-BoldItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-BoldItalic.woff2.meta new file mode 100644 index 0000000..f7c3d61 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-BoldItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 373e92a5d85948a418a3cc94691e07ff +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-ExtraLight.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-ExtraLight.woff2 new file mode 100644 index 0000000..845d776 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-ExtraLight.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-ExtraLight.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-ExtraLight.woff2.meta new file mode 100644 index 0000000..1718113 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-ExtraLight.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2e7a5f7cfe973ef4aa24b5539ad65265 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-ExtraLightItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-ExtraLightItalic.woff2 new file mode 100644 index 0000000..71d9269 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-ExtraLightItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-ExtraLightItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-ExtraLightItalic.woff2.meta new file mode 100644 index 0000000..7cc2a7d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-ExtraLightItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a37c70198a85efc4680525868ae9fa85 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Italic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Italic.woff2 new file mode 100644 index 0000000..af0d6fd Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Italic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Italic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Italic.woff2.meta new file mode 100644 index 0000000..4809a69 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Italic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2f45d81bab8924947b7ad48149ebd4a3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Light.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Light.woff2 new file mode 100644 index 0000000..a5bece3 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Light.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Light.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Light.woff2.meta new file mode 100644 index 0000000..955a978 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Light.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 33b291338b0953a4ba03d2d53d2f9fa4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-LightItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-LightItalic.woff2 new file mode 100644 index 0000000..222a2d6 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-LightItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-LightItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-LightItalic.woff2.meta new file mode 100644 index 0000000..fca2220 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-LightItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 854fbb54c15c2d14cad9fdfa8dad0f68 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Regular.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Regular.woff2 new file mode 100644 index 0000000..0376889 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Regular.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Regular.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Regular.woff2.meta new file mode 100644 index 0000000..5ae00fb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-Regular.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 01086f03208357f4491c8fba503b806a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiBold.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiBold.woff2 new file mode 100644 index 0000000..1bb8c52 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiBold.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiBold.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiBold.woff2.meta new file mode 100644 index 0000000..c5b3832 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiBold.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3fd2ee36353c36745bf10fe3dae4afb7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiBoldItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiBoldItalic.woff2 new file mode 100644 index 0000000..ab172aa Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiBoldItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiBoldItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiBoldItalic.woff2.meta new file mode 100644 index 0000000..b9bb79f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiBoldItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 04696b1e88ed4b54d80f13d18a56fd0d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiLight.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiLight.woff2 new file mode 100644 index 0000000..04d2387 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiLight.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiLight.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiLight.woff2.meta new file mode 100644 index 0000000..5dd591e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiLight.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bfb3ce118b165ad46b8460f229de4f35 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiLightItalic.woff2 b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiLightItalic.woff2 new file mode 100644 index 0000000..0901874 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiLightItalic.woff2 differ diff --git a/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiLightItalic.woff2.meta b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiLightItalic.woff2.meta new file mode 100644 index 0000000..fcadb38 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Font/CascadiaCode-2111.01/woff2/static/CascadiaMonoPL-SemiLightItalic.woff2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b67829ace7471ab4f92169ae521ee608 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials.meta new file mode 100644 index 0000000..ebf8e07 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6a2861bb1fc2bf549863c6fc8bd13f3b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo.meta new file mode 100644 index 0000000..847927b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eafbe44f5a9eb364491e4baa0077c944 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo.meta new file mode 100644 index 0000000..37b209d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3d252abe04c3e3543bf218f891408699 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo.unity b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo.unity new file mode 100644 index 0000000..a1fd386 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo.unity @@ -0,0 +1,2051 @@ +%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: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.004 + 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: 2100000, guid: d2f24bfdb0a758e41813bbc7ae4f978f, type: 2} + m_HaloStrength: 1 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 512 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 4 + m_BakeResolution: 60 + m_AtlasSize: 2048 + m_AO: 1 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 8 + m_LightmapParameters: {fileID: 111300000, guid: c833c6a9a24b72f40ae6e54d900acae3, type: 2} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_FinalGather: 1 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 138207091} +--- !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 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &4026691 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4026696} + - component: {fileID: 4026695} + - component: {fileID: 4026694} + - component: {fileID: 4026692} + m_Layer: 0 + m_Name: Facility + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 127 + m_IsActive: 1 +--- !u!64 &4026692 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4026691} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 811653078} +--- !u!33 &4026694 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4026691} + m_Mesh: {fileID: 811653078} +--- !u!23 &4026695 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4026691} + m_Enabled: 1 + m_CastShadows: 2 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c181c23a6120fbe4aadd5bb53a58dd78, type: 2} + - {fileID: 2100000, guid: 652107f36a28e44479c0b827dee5852a, type: 2} + - {fileID: 2100000, guid: aeee7071bea0a4c478b4fea5933c5f79, type: 2} + - {fileID: 2100000, guid: 36bce9ab6cae8ce43962938466458044, type: 2} + - {fileID: 2100000, guid: 663834164c6a04740aaa1b778249ce7e, type: 2} + - {fileID: 2100000, guid: b0b4de3bd6e976e4f8b3adc6e72377ed, type: 2} + - {fileID: 2100000, guid: 17c44fb3e5be9644586a0728a5f5a386, type: 2} + - {fileID: 2100000, guid: b234e1586ac9f524f8162eb03da23c35, type: 2} + - {fileID: 2100000, guid: c852af001dae0064e9acaa832f1dadb7, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 2 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 111300000, guid: c833c6a9a24b72f40ae6e54d900acae3, type: 2} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!4 &4026696 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4026691} + 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: 842084053} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &29538276 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 29538277} + - component: {fileID: 29538278} + m_Layer: 0 + m_Name: Reflection Probe 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &29538277 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 29538276} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 5, y: 1.5, z: -3} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1291775223} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &29538278 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 29538276} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 1 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 256 + m_UpdateFrequency: 0 + m_BoxSize: {x: 10, y: 10, z: 10} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.1 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 1 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!850595691 &138207091 +LightingSettings: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Settings.lighting + serializedVersion: 3 + m_GIWorkflowMode: 1 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_RealtimeEnvironmentLighting: 1 + m_BounceScale: 1 + m_AlbedoBoost: 1 + m_IndirectOutputScale: 1 + m_UsingShadowmask: 1 + m_BakeBackend: 2 + m_LightmapMaxSize: 2048 + m_BakeResolution: 60 + m_Padding: 8 + m_TextureCompression: 0 + m_AO: 1 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAO: 0 + m_MixedBakeMode: 2 + m_LightmapsBakeMode: 1 + m_FilterMode: 1 + m_LightmapParameters: {fileID: 111300000, guid: c833c6a9a24b72f40ae6e54d900acae3, type: 2} + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_RealtimeResolution: 4 + m_ForceWhiteAlbedo: 0 + m_ForceUpdates: 0 + m_FinalGather: 1 + m_FinalGatherRayCount: 1024 + m_FinalGatherFiltering: 1 + m_PVRCulling: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_LightProbeSampleCountMultiplier: 4 + m_PVRBounces: 2 + m_PVRMinBounces: 2 + m_PVREnvironmentMIS: 0 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 +--- !u!1 &262890554 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 262890555} + - component: {fileID: 262890556} + m_Layer: 0 + m_Name: Reflection Probe 9 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &262890555 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 262890554} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -3.5, y: 1.5, z: -10.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1291775223} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &262890556 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 262890554} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 1 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 256 + m_UpdateFrequency: 0 + m_BoxSize: {x: 10, y: 10, z: 10} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.1 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 1 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &350966234 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 350966235} + - component: {fileID: 350966236} + m_Layer: 0 + m_Name: Reflection Probe 5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &350966235 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 350966234} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 2.75, y: 1.5, z: 2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1291775223} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &350966236 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 350966234} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 1 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 256 + m_UpdateFrequency: 0 + m_BoxSize: {x: 10, y: 10, z: 10} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.1 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 1 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &557578322 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 557578323} + m_Layer: 0 + m_Name: Environment + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &557578323 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 557578322} + 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: 1508763321} + - {fileID: 842084053} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &785032371 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 785032372} + - component: {fileID: 785032373} + m_Layer: 0 + m_Name: Reflection Probe 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &785032372 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785032371} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 8, y: 1.5, z: -3} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1291775223} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &785032373 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785032371} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 1 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 256 + m_UpdateFrequency: 0 + m_BoxSize: {x: 10, y: 10, z: 10} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.1 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 1 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!43 &811653078 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: pb_Mesh-89030 + serializedVersion: 10 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 9522 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 3862 + localAABB: + m_Center: {x: 2.75, y: 2.25, z: -5.875} + m_Extent: {x: 8, y: 2.25, z: 9.125} + - serializedVersion: 2 + firstByte: 19044 + indexCount: 336 + topology: 0 + baseVertex: 0 + firstVertex: 3862 + vertexCount: 80 + localAABB: + m_Center: {x: 4.625, y: 0, z: -3.125} + m_Extent: {x: 5.625, y: 0, z: 6.375} + - serializedVersion: 2 + firstByte: 19716 + indexCount: 264 + topology: 0 + baseVertex: 0 + firstVertex: 3942 + vertexCount: 79 + localAABB: + m_Center: {x: 1.25, y: 1.5, z: -5.25} + m_Extent: {x: 6.25, y: 1.5, z: 8.25} + - serializedVersion: 2 + firstByte: 20244 + indexCount: 18 + topology: 0 + baseVertex: 0 + firstVertex: 4021 + vertexCount: 8 + localAABB: + m_Center: {x: 2.75, y: 0, z: 2} + m_Extent: {x: 2.75, y: 0, z: 1} + - serializedVersion: 2 + firstByte: 20280 + indexCount: 174 + topology: 0 + baseVertex: 0 + firstVertex: 4029 + vertexCount: 66 + localAABB: + m_Center: {x: 2.75, y: 1.75, z: 2} + m_Extent: {x: 2.75, y: 1.75, z: 1} + - serializedVersion: 2 + firstByte: 20628 + indexCount: 420 + topology: 0 + baseVertex: 0 + firstVertex: 4095 + vertexCount: 91 + localAABB: + m_Center: {x: 4.75, y: 0, z: -10.75} + m_Extent: {x: 5.75, y: 0, z: 4.25} + - serializedVersion: 2 + firstByte: 21468 + indexCount: 204 + topology: 0 + baseVertex: 0 + firstVertex: 4186 + vertexCount: 104 + localAABB: + m_Center: {x: -3.5, y: 3.625, z: -5.25} + m_Extent: {x: 1.5, y: 0.125, z: 8.25} + - serializedVersion: 2 + firstByte: 21876 + indexCount: 30 + topology: 0 + baseVertex: 0 + firstVertex: 4290 + vertexCount: 18 + localAABB: + m_Center: {x: -3.5, y: 3.75, z: -5.25} + m_Extent: {x: 0.25, y: 0, z: 8.25} + - serializedVersion: 2 + firstByte: 21936 + indexCount: 138 + topology: 0 + baseVertex: 0 + firstVertex: 4308 + vertexCount: 68 + localAABB: + m_Center: {x: 5.375, y: 2, z: -12.5} + m_Extent: {x: 5.375, y: 2, z: 0.5} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 1 + m_KeepVertices: 0 + m_KeepIndices: 0 + m_IndexFormat: 0 + m_IndexBuffer: 000001000200000003000100040005000600040006000700080009000a0008000a000b000c000d000e000c000f000d00100011001200100013001100140015001600170014001600180019001a001b0018001a001c001d001e001c001f001d00200021002200200023002100240025002600270024002600280029002a002b0028002a002c001f001c002c002d001f002e00230020002e002f0023002500300031002600250031002900320033002a0029003300340035003600340037003500380039003a0038003b0039003c003d003e003f003c003e00400041004200430040004200440045004600440047004500480049004a0048004b0049004c004d004e004f004c004e00500051005200530050005200540055005600540057005500580059005a0058005b0059005c005d005e005c005f005d001e005f005c001e001d005f006000610062006000630061002200630060002200210063006400650066006700640066006500680069006600650069006a006b006c006d006a006c006b006e006f006c006b006f007000020071007000000002000a0071000b00720073007400750076007700750056007600780079007a0078007b00790077007c007d00770076007c007a007e007f007a0079007e008000470044008000810047003600810080003600350081008200830084008200850083003a00850082003a003900850086008700880089008600880087003c003f00880087003f008a008b008c008d008a008c008b00400043008c008b0043008e00560075008e00540056008f007b0078008f0090007b0091005a009000910058005a00920090008f0092009100900093009400950093009600940003009700010003009800970099009a009b0099009c009a009d00370034009d009e0037009f009e009d009f00a0009e00a1003b003800a100a2003b00a300a200a100a300a400a2003d00a500a6003e003d00a600a500a700a800a600a500a8004100a900aa0042004100aa00a900ab00ac00aa00a900ac00ad00ae00af00ad00b000ae005700b10055005700b200b100b300b000ad00b300b400b0005b00ad0059005b00b300ad009c00b5009a009c00b600b500b700b800b900b700ba00b8009a00bb00bc009a00b500bb00b900bd00be00b900b800bd00bf00c000c100c200bf00c100c000c300c400c100c000c400c500c600c700c800c500c700c600c900ca00c700c600ca00cb00cc00cd00cb00ce00cc00cf00ce00cb00cf00d000ce00d100d200d300d100d400d200d500d400d100d500d600d400d700d800d900d700da00d800db00dc00dd00db00de00dc00df00e000e100df00e200e0000e00e200df000e000d00e200e300e400e500e300e600e400e700e600e300e700e800e6003000e900ea0031003000ea00e900eb00ec00ea00e900ec003200ed00ee0033003200ee00ed00ef00f000ee00ed00f0007d00f100f2007d007c00f100f30073007200f300f40073007f00f500f6007f007e00f500f70096009300f700f8009600f900fa00fb00f900bc00fa00fc0098000300fc00fd009800f800fe009600f800ff00fe00bc000001fa00bc00bb000001ff000101fe00ff000201010103010201ff0003010401020105010601070105010701080109010a010b0109010b010c010d010e010f010d010f01100111011201130111011301140115011601170115011701180119011a011b0119011b011c011d011e011f011d011f0120011e01210122011e0122011f01230124012501230125012601270128012901270129012a012b012c0182002b01820084002d012e012f012d012f01300131013201330131013301340135013601e7003501e700e300370138013901370139013a013b013c013d013b013d013e013f01400141013f0141014201430144014501430145014601470148014901470149014a014b014c014d014b014d014e014f01500151014f0151015201530154015501530155015601570158015901570159015a015b015c015d015b015d015e0150015f01600150016001510161016201630161016301640165016601670168016501670169016a016601650169016601680167016b016c0168016b016d016e016f0170016d016f01710172016e016d0171016e0173017401720171017301720170016f0175017601700175017701780179017a01770179017a0179017b017c017a017b017d017e017f0180017d017f0181018201830184018101830184018301850186018401850186018501870188018601870189018a018b018c0189018b018c018b018d018e018c018d018f019001910192018f0191019201910193019401920193019501960197019801950197019801970199019a01980199019a0199019b019c019a019b019c019b019d019e019c019d019e019d019f01a0019e019f01a101a201a301a401a101a301a401a301a501a601a701a801a901aa01ab01ac01a901ab01ad01ae01af01b001b101b201b301b401b501b301b501b601b701b801b901ba01bb01bc01bb01bd01bc01ba01be01bb01bf01c001c101bf01c201c001bf01c301c201c401c501c601c701c801c901ca01cb01cc01cd01ce01cf01cd01cf01d001d101d201d301d101d301d401d501d601d701d501d701d801d901da01db01d901db01cf01dc01dd01d401dc01d401de01df01e001e101df01e101e201e301dc01de01e301de01e401e001e501e601e001e601e101e701e301e401e701e401e801e501e901ea01e501ea01e601eb01e701e801eb01e801ec01e901ed01ee01e901ee01ea01ef01eb01f001ef01f001f101f201f301f401f201f401ee01f301f501f601f301f601f701f801f901fa01f801fa01fb01f901fc01f101f901f101fa01f501fd01fe01f501fe01f601ff01f8010002ff010002010202020302040202020402fe01050206020702050207020802060209020a0206020a020b020c020d020e020c020e020f02090210021102090211020a02120213020f0212020f02140210021502160210021602110217021202140217021402180219021a021b0219021b0216021c02170218021c0218021d021a021e021f021a021f02200221021c0222022102220223021e02240225021e0225021f02260227022302260223022802240229022a0224022a0225022b02260228022b0228022c022d022e022f022d022f022a0230022b022c0230022c0231022e02320206002e0206003302340230023502340235023602320237020700320207000600380239023602380236023a0237023b023c0237023c0207003d0238023a023d023a023e023b023f0240023b0240023c0241023d023e0241023e0242024302440245024302450246024402410242024402420245023f02470248023f0248024002490243024602490246024a0247024b024c0247024c0248024d0249024a024d024a024e024b024f0250024b0250024c0251024d024e0251024e0252024f02530254024f0254025002530255025602530256025402570258025902570259025a02580251025202580252025b025c025d025e025c025e025602d6015f025a02d6015a02d7015d02cd01d0015d02d001600261026202630261026302640265026602670265026702680269026a026b0269026b026c0266026d026e0266026e02670262026f02700262027002630271026502680271026802720273027402750273027502760277027102720277027202780279027a027b0279027b027c027d027e027f027d027f02800281028202830281028302840285028602870285028702880289028a024c0289024c0250028b028c0260028b026002d0018d028e02e2018d02e201e1018f029002e6018f02e601ea01910292029302940291029302950296029702980295029702990297029a029b0299029a029c029d029e029d029f029e029c02a0029d02a102a202a302a402a502a102a402a102a302a602a702a802a702a902a802aa02ab02ac02aa02ad02ab02ae02af02b002ae02b102af02b202b302b402b502b202b402b602b702b302b602b302b202b802b902ba02b802b702b902bb02bc02bd02bc02ac02bd02be02bb02bf02be02bf02c002c102c202c302c102c402c202c502c602c702c502c802c602c902ca02cb02c902cb02cc02cd02ce02ca02cd02ca02c902cf02d002ce02cf02ce02cd02d102d202d002d102d002cf02d302d402d502d302d602d402d702d502d802d702d302d502d902da02db02d902d702da02dc02dd02de02dc02df02dd02e002e102e202e002d202e102e302e202e402e302e502e202e602e702e802e702e902e802ea02eb02ec02ea02ec02ed02ee02ef02f002ef02f102f002f202f302ee02f202ee02f002f402be02f502be02c002f502f602f702f802f602f402f702f902fa02fb02f902b802fa02fc02fd02f902fb02fc02f902fe02ff020003ff02fc0200030103020303030103fe0202030403f802050304030603f802070308030903070309030a030b030c030d030b030e030c030f03100311030f031203100313031403150313031603140317031803190317031a0318031b031c031d031b031e031c031f031d0320031f031b031d0321032203230321032403220325032303260325032103230327032803290327032a0328032b032c032d032b032e032c032f03300331032f033203300333033403350333033603340337033803390337033a0338033b0339033c033b03370339033d033e033f033d0340033e0341033f03420341033d033f0343034403450343034103440346034503470346034803450349034a034b0349033b034a034c034b034d034c034e034b034f034c0350034c034d035003510352034f0351034f0350035303460354034603470354035503560353035503530354035703580359035703250358035a0359035b035a035c0359035d035e035f035d031f035e0360035f036103600362035f0363036003640360036103640365036603630365036303640367035a0368035a035b03680369036a0367036903670368036b036c036d036b036d036e036b036e036f036b036f0370036b03700371037003720371037203730371037303740371037403750371037603770378037603780379037a037b037c037a037d037b037e037f0380037e03800381038203830384038203850383038603870388038603880389038a038b0387038a03870386038c038d038e038c038e038f03900391038d0390038d038c039203930394039203940395039603970398039603990397039a039b039c039a039c039d039e039f03a0039e03a1039f03a203a303a403a203a403a503a603a703a303a603a303a203a803a903aa03a803aa03ab03ac03ad03a903ac03a903a803ae03af03b003ae03ad03af03b103b203b303b103b403b203b503b603b703b503a703b603b803b903ba03b803bb03b903bc03bd03be03bd03ba03be03bf03c003bc03bf03bc03be03c103c203c303c203b303c303c403c503c103c403c103c303c603c703c803c6039103c703c903ca03cb03c903cc03ca03cd03ce03cf03cd038b03ce03d003d103d203d003d303d103d403d503d603d503d203d603d703d803d403d703d403d603d903da03db03da03cb03db03dc03dd03d903dc03d903db03de03df03e003e003e103de03e003e203e103e003e303e203e403e303e003e503e303e403e603e503e403e703e603e403e703e403e803e903ea03eb03eb03ea03ec03ec03ea03ed03ed03ea03ee03ea03e003ee03e003ef03ee03e003f003ef03e003f103f003e003df03f103f203ea03f303ea03f403f303ea03f503f403ea03f603f503ea03f703f603f303f803f203f803f903f203f903fa03f203fa03fb03f203f203fc03fd03fc03fe03fd03fe03ff03fd03ff030004fd0300040104fd03f2030204fc03f20303040204f20304040304f203fb03040405040604070407040804050407040904080407040a0409040b040a0407040c040a040b040d040c040b040e040d040b040e040b040f04100411049a02110412049a02120413049a02130414049a02140415049a0210041604110410041704160410041804170410040104180419041a041b041b041c0419041b041d041c041b041e041d041f041e041b0420041e041f04210420041f04220421041f0422041f049c03230424042504230425042604270428042904270429042a042b042c042d042b042d042e042c042f0430042c0430042d04310427042a0431042a0432043304310432043304320434042f04350436042f0436043004370433043404370434043804350439043a0435043a04360439043b043c0439043c043a043d04370438043d0438043e043f043d043e043f043e0440043b04410442043b0442043c0441044304440441044404420445043f044004450440044604430447044804430448044404490445044604490446044a044b044c044d044b044d044e044f04500451044f0451045204530454045504530455045604570458045904570459045a0458045b045c0458045c0459045d04530456045d0456045e045f045d045e045f045e0460045b04610462045b0462045c0463045f046004630460046404610465046604610466046204650467046804650468046604690463046404690464046a046b0469046a046b046a046c0467046d046e0467046e0468046d046f0470046d0470046e0471046b046c0471046c0472046f04730474046f0474047004750471047204750472047604770478047904770479047a047b047c047d047b047d047e047f04800481047f048104820483048404850483048504860484048704880484048804850489047f048204890482048a048b0489048a048b048a048c0487048d048e0487048e0488048f048b048c048f048c0490048d04910492048d0492048e0491049304940491049404920495048f049004950490049604970495049604970496049804930499049a0493049a04940499049b049c0499049c049a049d04970498049d0498049e049b049f04a0049b04a0049c04a1049d049e04a1049e04a204a304a404a504a304a504a604a704a804a904a704a904aa04ab04ac04ad04ab04ad04ae04af04b004b104af04b104b204b004b304b404b004b404b104b504ab04ae04b504ae04b604b704b504b604b704b604b804b304b904ba04b304ba04b404bb04b704b804bb04b804bc04b904bd04be04b904be04ba04bd04bf04c004bd04c004be04c104bb04bc04c104bc04c204c304c104c204c304c204c404bf04c504c604bf04c604c004c504c704c804c504c804c604c904c304c404c904c404ca04c704cb04cc04c704cc04c804cd04c904ca04cd04ca04ce04cf04d004d104cf04d104d204d304d404d504d304d504d604d704d804d904d704d904da04db04dc04dd04db04dd04de04d804df04e004d804e004d904e104db04de04e104de04e204df04e304e404df04e404e004e504e104e204e504e204e604e304e704e804e304e804e404e904e504e604e904e604ea04e704eb04ec04e704ec04e804ed04e904ea04ed04ea04ee04ef04ed04ee04ef04ee04f004eb04f104f204eb04f204ec04f104f304f404f104f404f204f504ef04f004f504f004f604f304f704f804f304f804f404f904f504f604f904f604fa04fb04fc04fd04fb04fd04fe04ff0400050105ff0401050205030504050505030505050605070508050905070509050a0504050b050c0504050c0505050d0507050a050d050a050e050b050f0510050b0510050c0511050d050e0511050e0512050f05130514050f0514051005150511051205150512051605130517051805130518051405190515051605190516051a051b0519051a051b051a051c0517051d051e0517051e0518051d051f0520051d0520051e0521051b051c0521051c0522051f05230524051f0524052005250521052205250522052605270528052905270529052a052b052c052d052b052d052e052f05300531052f0531053205330534053505330535053605300537053805300538053105390533053605390536053a0537053b053c0537053c0538053d0539053a053d053a053e053b053f0540053b0540053c0541053d053e0541053e0542053f05430544053f0544054005450541054205450542054605470545054605470546054805430549054a0543054a05440549054b054c0549054c054a054d05470548054d0548054e054b054f0550054b0550054c0551054d054e0551054e055205530554055505530555055605570558055905570559055a055b055c055d055b055d055e055f05600561055f05610562055c05630564055c0564055d0565055f056205650562056605630567056805630568056405690565056605690566056a0567056b056c0567056c0568056d0569056a056d056a056e056b056f0570056b0570056c0571056d056e0571056e0572057305710572057305720574056f05750576056f0576057005750577057805750578057605790573057405790574057a0577057b057c0577057c0578057d0579057a057d057a057e057f05800581057f0581058205830584058505830585058605870588058905870589058a058b058c058d058b058d058e0588058f05900588059005890591058b058e0591058e0592058f05930594058f0594059005950591059205950592059605930597059805930598059405990595059605990596059a0597059b059c0597059c0598059d0599059a059d059a059e059f059d059e059f059e05a0059b05a105a2059b05a2059c05a105a305a405a105a405a205a5059f05a005a505a005a605a305a705a805a305a805a405a905a505a605a905a605aa05ab05ac05ad05ab05ad05ae05af05b005b105af05b105b205b305b405b505b305b505b605b705b805b905b705b905ba05b805bb05bc05b805bc05b905bd05af05b205bd05b205be05bf05bd05be05bf05be05c005c105c205c305c105c305c405c205c505c605c205c605c305c705bf05c005c705c005c805c905ca05cb05c905cb05cc05cd05ce05cf05cd05cf05d005ce05d105d205ce05d205cf05d305c905cc05d305cc05d405d105d505d605d105d605d205d705d305d405d705d405d805d505d905da05d505da05d605db05d705d805db05d805dc05dd05de05df05dd05df05e005e105e205e305e105e305e405e505e605e705e505e705e805e905ea05eb05e905eb05ec05e605ed05ee05e605ee05e705ef05e905ec05ef05ec05f005ed05f105f205ed05f205ee05f305ef05f005f305f005f405f105f505f605f105f605f205f705f305f405f705f405f805f505f905fa05f505fa05f605fb05f705f805fb05f805fc05fd05fb05fc05fd05fc05fe05f905ff050006f9050006fa05ff0501060206ff05020600060306fd05fe050306fe05040601060506060601060606020607060306040607060406080609060a060b0609060b060c060d060e060f060d060f061006110612061306110613061406150616061706150617061806120619061a0612061a0613061b06150618061b0618061c0619061d061e0619061e061a061f061b061c061f061c0620061d06210622061d0622061e0623061f062006230620062406210625062606210626062206270623062406270624062806290627062806290628062a0625062b062c0625062c0626062b062d062e062b062e062c062f0629062a062f062a0630062d06310632062d0632062e0633062f06300633063006340635063606370635063706380639063a063b0639063b063c063a063d063e063d063f063e064006410642064006430641064406450646064406400645064706460648064706490646064a0648064b064a06470648064c063c064d064c064e063c064f064d0650064f064c064d0651065206530651065406520654065506520654065606550657065806590657065a0658065b065c065d065b0657065c065e065d065f065e0660065d0661065f06620661065e065f066306530664066306510653066506640666066506630664066706680669066706650668066a0669066b066a066c0669066d066e066f066d0661066e0670066f067106700672066f0673067106740673067006710675067406760675067306740677066b06780677066a066b06790678067a067906770678067b0650067c067b064f0650067d067c067e067d067f067c0680068106820680064a0681068306820684068306850682068606840687068606830684068806870689068806860687068a067e068b068a067d067e068c068b068d068c068a068b068e068d068f068e068c068d0690068f06910690068e068f069206890693069206880689069406930695069406920693069606950697069606940695069806970699069806960697069a0691069b069a06900691069c069b069d069c069a069b069e067a069f069e0679067a06a0069f06a106a0069e069f06a2067606a306a20675067606a406a306a506a406a206a306a606a506a706a606a406a506a806a706a906a806a606a706aa06a106ab06aa06a006a106ac06ab06ad06ac06aa06ab06ae06ad06af06ae06ac06ad06b006af06b106b006ae06af06b206b306b406b306b506b406b306a906b506b306a806a906b606b706b206b606b206b406b806b606b906b806b706b606ba06b106bb06ba06b006b106bc06bb06bd06bc06ba06bb06be069d06bf06be069c069d06c006bf06c106c006be06bf06c206c306c406c306c506c406c3069906c506c30698069906c606c706c206c606c206c406c806c606c906c806c706c606ca06c106cb06ca06c006c106cc06cb06cd06cc06ca06cb06ce06cf06d006d006d106ce06d006d206d106d006d306d206d406d306d006d506d306d406d606d506d406d706d606d406d806d706d406d906da06db06da06d906dc06dc06d906dd06dd06d906de06d906d006de06d006df06de06d006e006df06d006e106e006d006cf06e106e206e306e406e206e406e506e206e506e606e206e606e706e206e706d406e706e806d406e806e906d406e906ea06d406ea06d806d406eb06ec06ed06ed06ec06ee06ee06ec06ef06ef06ec06f006ec06d906f006d906f106f006d906f206f106d906f306f206d906db06f306f406f506f606f406f606f706f406f706f806f406f806f906f406f906e206f906fa06e206fa06fb06e206fb06fc06e206fc06e306e206f406ec06fd06ec06fe06fd06ec06ff06fe06ec060007ff06ec06eb060007fd060107f40601070207f40602070307f4060307f506f406040705070607040706070707080709070a0708070a070b070c070d070e070c070e070f070d07100711070d0711070e0712070407070712070707130710071407150710071507110716071207130716071307170718071607170718071707190714071a071b0714071b0715071a071c071d071a071d071b071e07180719071e0719071f0720071e071f0720071f0721071c07220723071c0723071d072207240725072207250723072607200721072607210727072407280729072407290725072a07260727072a0727072b0728072c072d0728072d0729072e072a072b072e072b072f072c07300731072c0731072d0732072e072f0732072f0733073007340735073007350731073607320733073607330737073407380739073407390735073a07360737073a0737073b0738073c073d0738073d0739073e073a073b073e073b073f073c07400741073c0741073d0742073e073f0742073f0743074007440745074007450741074607420743074607430747074407480749074407490745074a07460747074a0747074b074c074d074e074c074e074f07500751075207500752075307540755075607540756075707580759075a0758075a075b0755075c075d0755075d0756075e0758075b075e075b075f075c07600761075c0761075d0762075e075f0762075f0763076007640765076007650761076607620763076607630767076407680769076407690765076a07660767076a0767076b076c076a076b076c076b076d0768076e076f0768076f0769076e07700771076e0771076f0772076c076d0772076d0773077007740775077007750771077607720773077607730777077407780779077407790775077a07760777077a0777077b0778077c077d0778077d0779077e077a077b077e077b077f077c07800781077c0781077d0782077e077f0782077f0783078007840785078007850781078607820783078607830787078407880789078407890785078a07860787078a0787078b0788078c078d0788078d0789078e078a078b078e078b078f078c07900791078c0791078d0792078e078f0792078f079307940792079307940793079507900796079707900797079107980799079a0798079a079b079c079d079e079c079e079f07a007a107a207a007a207a307a407a507a607a407a607a707a107a807a907a107a907a207aa07a407a707aa07a707ab07a807ac07ad07a807ad07a907ae07aa07ab07ae07ab07af07b007ae07af07b007af07b107ac07b207b307ac07b307ad07b207b407b507b207b507b307b607b007b107b607b107b707b807b607b707b807b707b907b407ba07bb07b407bb07b507ba07bc07bd07ba07bd07bb07be07b807b907be07b907bf07bc07c007c107bc07c107bd07c207be07bf07c207bf07c307c007c407c507c007c507c107c607c207c307c607c307c707c407c807c907c407c907c507ca07c607c707ca07c707cb07c807cc07cd07c807cd07c907ce07ca07cb07ce07cb07cf07cc07d007d107cc07d107cd07d207ce07cf07d207cf07d307d007d407d507d007d507d107d607d207d307d607d307d707d407d807d907d407d907d507da07d607d707da07d707db07d807dc07dd07d807dd07d907de07da07db07de07db07df07dc07e007e107dc07e107dd07e207de07df07e207df07e307e407e507e607e407e607e707e807e907ea07e807ea07eb07ec07ed07ee07ec07ee07ef07f007f107f207f007f207f307ed07f407f507ed07f507ee07f607f007f307f607f307f707f407f807f907f407f907f507fa07f607f707fa07f707fb07f807fc07fd07f807fd07f907fe07fa07fb07fe07fb07ff07fc0700080108fc070108fd070208fe07ff070208ff0703080408020803080408030805080008060807080008070801080608080809080608090807080a08040805080a0805080b0808080c080d0808080d0809080e080a080b080e080b080f080c08100811080c0811080d0812080e080f0812080f0813081008140815081008150811081608120813081608130817081408180819081408190815081a08160817081a0817081b0818081c081d0818081d0819081e081a081b081e081b081f081c08200821081c0821081d0822081e081f0822081f0823082008240825082008250821082608220823082608230827082408280829082408290825082a08260827082a0827082b082c082a082b082c082b082d0828082e082f0828082f0829083008310832083008320833088a0289023408890235083408360837083808370839083808390837083a0837083b083a08360838083c0838083d083c083e083f0840083f084108400842083e0843083e08400843084408450846084508470846084808440849084408460849084a0848084b08480849084b083f084c0841084c084d0841084e084f0850084f08510850085208530854085308550854085608570858085708590858085a085b085c085a085d085b085e085f08600861085e0860086208630864086508620864086608670868086608690867086a086b086c086a086d086b086e086f08700871086e0870087208730874087208750873087608770878087908760878087a087b087c087a087d087b087e087f08800881087e088008820883088408820885088308860885088208860887088508880889088a088b0888088a0889088c088d088a0889088d088e088f0890088e0891088f0892089308940892089508930896089708980899089608980897089a089b08980897089b089c089d089e089c089f089d08a0089f089c08a008a1089f08a208a308a408a508a208a408a308a608a708a408a308a708a808a908aa08ab08a808aa08a908ac08ad08aa08a908ad08ae08af08b008ae08b108af08b208b108ae08b208b308b108b408b508b608b408b708b508b808b908ba08b808bb08b908bc08bd08be08bf08bc08be08c008c108c208c008c308c108c408c508c608c708c408c608c808c908ca08c808cb08c908cc08cd08ce08cf08cc08ce08d008d108d208d308d008d208d408d508d608d408d708d508d808d908da08db08d808da08dc08dd08de08dc08df08dd08e008c408c708e108e008c708c208e208e308c208c108e208e408e508e608e408e708e508e8086e087108e908e8087108ea08eb08ec08ea08ed08eb086f08ee08ef0870086f08ef08f008ed08ea08f008f108ed08ee08f208f308ef08ee08f308f408f508f608f408f708f508f808f908fa08fb08f808fa08fc08fd08fe08fc08ff08fd080009010902090309000902090409ff08fc0804090509ff08010906090709020901090709080909090a090b0908090a090c090d090e090c090f090d09100911091209100913091109140915091609170914091609180919091a091b0918091a091c091d091e091c091f091d0920095c08210920095a085c08220921092309220920092109610860082409250961082409250924092609270925092609650864082809290965082809290928092a092b0929092a092c0968082d092c09660868082e092d092f092e092c092d0930096c08310930096a086c08320931093309320930093109340935093609370934093609380939093a093b0938093a093c0974083d093c09720874083e093d093f093e093c093d0979087808400941097908400941094009420943094109420944097c08450944097a087c08460945094709460944094509810880084809490981084809490948094a094b0949094a094c0984084d094c09820884084e094d094f094e094c094d09500982084c0950098608820851094c094e09510950094c098b088a08520953098b0852095309520954095509530954098a088d08560952098a08560952095609570954095209570958099008590958098e0890085a0959095b095a09580959095c0994085d095c09920894085e095d095f095e095c095d0999089808600961099908600961096009620963096109620998089b08640960099808640960096409650962096009650966099e08670966099c089e086809670969096809660967096a099c0866096a09a0089c086b09660968096b096a096609a508a4086c096d09a5086c096d096c096e096f096d096e09a408a70870096c09a40870096c09700971096e096c097109ab08aa0872097309ab087209730972097409750973097409aa08ad0876097209aa0876097209760977097409720977097809b00879097809ae08b0087a0979097b097a09780979097c09ae0878097c09b208ae087d0978097a097d097c0978097e09b6087f097e09b408b60880097f09810980097e097f098209ba0883098209b808ba08840983098509840982098309bf08be0886098709bf0886098709860988098909870988098a09c2088b098a09c008c2088c098b098d098c098a098b09c708c6088e098f09c7088e098f098e09900991098f0990099209ca0893099209c808ca08940993099509940992099309cf08ce0896099709cf089609970996099809990997099809d308d2089a099b09d3089a099b099a099c099d099b099c099e09d6089f099e09d408d608a0099f09a109a0099e099f09db08da08a209a309db08a209a309a209a409a509a309a409a609de08a709a609dc08de08a809a709a909a809a609a709e108c7088f09aa09e1088f09aa098f099109ab09aa0991098b09e308ac098b09c208e3088d09ac09ad098d098b09ac09ae09af09b009ae09b109af09b209b309b409b209b509b309b60934093709b709b6093709b80938093b09b909b8093b09ba09bb09bc09ba09bd09bb09be09bf09c009be09c109bf093509c209c30936093509c3093909c409c5093a093909c509c609ea08c109c609f008ea08c709c109be09c709c609c109ef08f308c809c409ef08c809c409c809c909c509c409c909ca09f608cb09ca09f408f608cc09cb09cd09cc09ca09cb09fb08fa08ce09cf09fb08ce09cf09ce0953085208cf095308d009fe08d109d009fc08fe08d209d109d309d209d009d10903090209d409d5090309d409d509d409d609d709d509d609d809fc08d009d8090409fc08d909d009d209d909d809d00902090709da09d4090209da09d409da09db09d609d409db090b090a09dc09dd090b09dc09dd09dc09de09df09dd09de09e0090e09e109e0090c090e09e209e109e309e209e009e109e4091209e509e40910091209e609e509e709e609e409e50917091609e809e9091709e809e909e809ea09eb09e909ea091b091a09ec09ed091b09ec09ed09ec09ee09ef09ed09ee09f0091e09f109f0091c091e09f209f109f309f209f009f109f409f509f609f509f709f609f809f909fa09f909fb09fa09fc09fd09fe09fd09ff09fe09000a010a020a010a030a020a040af409050af409f609050a010a060a030a060a070a030a080a040a090a040a050a090a060a0a0a070a0a0a0b0a070a0c0a0d0a0e0a0d0a0f0a0e0a100a110a120a110a130a120a140a150a160a170a140a160a180a190a1a0a180a1b0a190a1c0a1b0a180a1c0a1d0a1b0a1e0a1f0a200a210a1e0a200a1f0a76087908200a1f0a7908220a230a240a220a250a230a7408250a220a74087308250a200a79084109260a200a4109270a260a280a290a270a280a260a41094309280a260a43093d09220a2a0a3d097408220a2b0a2c0a2d0a2b0a2a0a2c0a3f092a0a2b0a3f093d092a0a2e0a2f0a300a2f0a310a300a320a330a340a330a350a340a360a370a380a370a390a380a3a0a3b0a3c0a3b0a3d0a3c0a3e0a3f0a400a3f0a410a400a420a430a440a430a450a440a460a470a480a470a490a480a4a0a4b0a4c0a4b0a4d0a4c0a4e0a4f0a500a4f0a510a500a520a530a540a530a550a540a4f0a520a510a520a540a510a560a570a580a570a590a580a5a0a560a5b0a560a580a5b0a5c0a5a0a5d0a5a0a5b0a5d0a5e0a5f0a600a5f0a610a600a620a630a640a630a650a640a5f0a660a610a660a670a610a680a620a690a620a640a690a660a6a0a670a6a0a6b0a670a6c0a680a6d0a680a690a6d0a6e0a6f0a700a6f0a710a700a720a730a740a720a750a730a760a770a780a790a760a780a7a0a7b0a7c0a7a0a7d0a7b0a7e0a7f0a800a810a7e0a800a820a830a840a820a850a830a860a840a870a860a820a840a740a880a890a740a730a880a620a680a8a0a680a8b0a8a0a8c0a8d0a8e0a8c0a8f0a8d0a8e0a900a910a8e0a8d0a900a920a930a940a920a950a930a960a950a920a960a970a950a980a990a9a0a9b0a980a9a0a990a9c0a9d0a9a0a990a9d0a9e0a940a9f0a9e0a920a940aa00a920a9e0aa00a960a920aa10a9f0aa20aa10a9e0a9f0aa30a9e0aa10aa30aa00a9e0aa40aa50aa60aa70aa40aa60aa80aa90aaa0aab0aa80aaa0aac0aad0aae0aac0aaf0aad0ab00aaf0aac0ab00ab10aaf0ab20ab30ab40ab20ab50ab30ab40ab60ab70ab40ab30ab60ab80ab90aba0abb0ab80aba0ab90abc0abd0aba0ab90abd0ada090709be0a0709bf0abe0ac00ac10ac20ac30ac00ac20ac40ac50ac60ac70ac40ac60ac80ac90aca0ac80acb0ac90acc0acd0ace0acf0acc0ace0ad00ad10ad20ad00ad30ad10aef09ee09d40ad50aef09d40ad50ad40ad60ad70ad50ad60ad80af309d90ad80af209f309da0ad90adb0ada0ad80ad90adc0ae709dd0adc0ae609e709de0add0adf0ade0adc0add0ae00ae309e10ae00ae209e309e20ae10ae30ae20ae00ae10aeb09ea09e40ae50aeb09e40ae50ae40ae60ae70ae50ae60adf09de09e80ae90adf09e80ae90ae80aea0aeb0ae90aea0aec0aed0aee0aec0aef0aed0af00aee0af10af00aec0aee0af20af30af40af50af20af40a5c0a5d0af30af20a5c0af30af60af70af80af90af60af80a6c0a6d0af70af60a6c0af70afa0afb0afc0afa0afd0afb0afe0afc0aff0afe0afa0afc0a000b010b020b000b030b010b040b020b050b040b000b020b810a800a060b070b810a060b070b060b080b090b070b080b0a0ba10a0b0b0a0ba30aa10a0c0b0b0b0d0b0c0b0a0b0b0b0b0ba20a0e0b0b0ba10aa20a0d0b0e0b0f0b0d0b0b0b0e0bab0aaa0a100b110bab0a100b110b100b120b130b110b120b100b140b150b120b100b150b160b170b180b160b190b170b1a0b180b1b0b1a0b160b180b1c0b1d0b1e0b1f0b1c0b1e0b200b210b220b200b230b210b240b230b200b240b250b230bc10a260b270bc20ac10a270b260b280b290b270b260b290b2a0b220b2b0b2a0b200b220b2c0b200b2a0b2c0b240b200b2d0b2b0b190b2d0b2a0b2b0b2e0b2a0b2d0b2e0b2c0b2a0bc50a2f0b300bc60ac50a300b2f0b310b320b300b2f0b320b330b340b350b360b330b350b370b750a720a370b380b750aca0a380b370bca0ac90a380b390b3a0b3b0b3c0b390b3b0b3a0bcc0acf0a3b0b3a0bcf0a3d0b3e0b3f0b3d0b400b3e0bd20a400b3d0bd20ad10a400b410b190b160b410b2d0b190b420b2d0b410b420b2e0b2d0b430b160b1a0b430b410b160b440b410b430b440b420b410b360b350b450b460b360b450b1d0b460b470b1e0b1d0b470b460b450b480b470b460b480b490b4a0b4b0b490b4c0b4a0b4d0b4c0b490b4d0b4e0b4c0b9c0a4f0b500b9d0a9c0a500b4f0bc00ac30a500b4f0bc30a510b4b0b520b510b490b4b0b530b490b510b530b4d0b490b540b520b550b540b510b520b170b510b540b170b530b510ba50a560b570ba60aa50a570b560bc40ac70a570b560bc70a580b590b5a0b5b0b580b5a0b5c0bcb0ac80a5c0b5d0bcb0aae0a5d0b5c0bae0aad0a5d0bcd0a5e0b5f0bce0acd0a5f0b5e0bb80abb0a5f0b5e0bbb0a600bd30ad00a600b610bd30ab70a610b600bb70ab60a610b620b550b630b620b540b550b180b540b620b180b170b540b640b630b650b640b620b630b1b0b620b640b1b0b180b620b5b0b5a0b1c0b660b5b0b1c0b140b660b670b150b140b670b660b1c0b1f0b670b660b1f0b540a550a680b550a690b680b6a0b6b0b6c0b6b0b6d0b6c0b510a540a6e0b540a680b6e0b5d0a5b0a6f0b5b0a700b6f0b5b0a580a700b580a710b700b720b730b740b730b750b740b760b770b780b790b760b780b7a0b760b790b7b0b7a0b790b7c0b7d0b7e0b7f0b7c0b7e0b770b7c0b7f0b780b770b7f0b800b810b820b830b800b820b840b800b830b850b840b830b860b840b850b870b860b850b880b860b870b890b880b870b8a0b8b0b8c0b8d0b8a0b8c0b8e0b8a0b8d0b8f0b8e0b8d0b900b910b920b930b900b920b8b0b900b930b8c0b8b0b930b940b950b960b970b940b960b980b940b970b990b980b970b9a0b980b990b9b0b9a0b990b9c0b9a0b9b0b9d0b9c0b9b0b9e0b9f0ba00ba10b9e0ba00b7d0b9e0ba10b7e0b7d0ba10ba20ba30ba40ba50ba20ba40b9f0ba20ba50ba00b9f0ba50ba60ba70ba80ba90ba60ba80baa0ba60ba90bab0baa0ba90bac0baa0bab0bad0bac0bab0b810bac0bad0b820b810bad0bae0baf0bb00bb10bae0bb00b910bae0bb10b920b910bb10bb20bb30bb40bb50bb20bb40baf0bb20bb50bb00baf0bb50bb60bb70bb80bb90bb60bb80bba0bb60bb90bbb0bba0bb90bbc0bba0bbb0bbd0bbc0bbb0b950bbc0bbd0b960b950bbd0b3a0bbe0bbf0b3a0bbf0bc00bc10bc20bcc0ac00bc10bcc0ac00bcc0a3a0bc30bc40bc50bc40bc60bc50bc40bc70bc60bc50bc80bc30bc80bc90bc30bca0bcb0bcc0bca0bcc0bcd0bcd0bce0bca0bcd0bcf0bce0bcf0bd00bce0bc40bd10bd20bd10bd30bd20bd10bd40bd30bd20bd50bc40bd50bc70bc40bcc0ac20bd60bcc0ad60bd70bd80bd90bcd0ad70bd80bcd0ad70bcd0acc0ada0bdb0bdc0bda0bdc0bdd0bde0bda0bdd0bdd0bdf0bde0bdf0be00bde0be10be20be30be10be30be40be40bca0be10be40be50bca0be50bcb0bca0bde0be00be60bde0be60be70be80bde0be70be70be90be80be90bea0be80beb0bec0bed0bee0beb0bed0bef0beb0bee0bf00bef0bee0bf10bf20bf30bf40bf10bf30bec0bf10bf40bed0bec0bf40bf50bf60bf70bf80bf50bf70bf90bf50bf80bfa0bf90bf80bfb0bf90bfa0bfc0bfb0bfa0bfd0bfb0bfc0bfe0bfd0bfc0bff0b000c010c020cff0b010c030cff0b020c040c030c020c050c060c070c080c050c070c000c050c080c010c000c080c090c0a0c0b0c0c0c090c0b0c0d0c090c0c0c0e0c0d0c0c0c0f0c0d0c0e0c100c0f0c0e0c110c0f0c100c120c110c100c130c140c150c160c130c150cf20b130c160cf30bf20b160c170c180c190c1a0c170c190c140c170c1a0c150c140c1a0c1b0c1c0c1d0c1e0c1b0c1d0c1f0c1b0c1e0c200c1f0c1e0c210c1f0c200c220c210c200cf60b210c220cf70bf60b220c230c240c250c260c230c250c060c230c260c070c060c260c270c280c290c2a0c270c290c240c270c2a0c250c240c2a0c2b0c2c0c2d0c2e0c2b0c2d0c2f0c2b0c2e0c300c2f0c2e0c310c2f0c300c320c310c300c0a0c310c320c0b0c0a0c320cb80a330c340cb80a340c350c360c370cb90a350c360cb90a350cb90ab80a380c390c3a0c380c3a0c3b0c3c0c380c3b0c3b0c3d0c3c0c3d0c3e0c3c0c3f0c400c410c3f0c410c420c420c430c3f0c420c440c430c440c450c430c460c470c480c470c490c480c470c4a0c490c480c4b0c460c4b0c4c0c460c5e0b4d0c4e0c5e0b4e0c4f0c500c330cb80a4f0c500cb80a4f0cb80a5e0b3c0c3e0c510c3c0c510c520c530c3c0c520c520c540c530c540c550c530c430c450c560c430c560c570c570c580c430c570c590c580c590c5a0c580c5b0c460c5c0c460c5d0c5c0c460c4c0c5d0c5c0c5e0c5b0c5e0c5f0c5b0c600c610c620c610c630c620ce70be60b640ce60b650c640ce50be40b660ce40b670c660c680c690c6a0c690c6b0c6a0c6c0c600c6d0c600c620c6d0c690c6e0c6b0c6e0c6f0c6b0c700c6c0c710c6c0c6d0c710c6e0c720c6f0c720c730c6f0c740c700c750c700c710c750c720c760c730c760c770c730c780c740c790c740c750c790c760c7a0c770c7a0c7b0c770c7c0c780c7d0c780c790c7d0c7a0c7e0c7b0c7e0c7f0c7b0c800c7c0c810c7c0c7d0c810c7e0c820c7f0c820c830c7f0c840c800c850c800c810c850c820c860c830c860c870c830cbf0bbe0b880cbe0b890c880cea0be90b8a0ce90b8b0c8a0ce30be20b8c0ce20b8d0c8c0c8e0c8f0c900c8f0c910c900cc00bbf0b920cbf0b880c920c8f0c930c910c930c940c910cc10bc00b950cc00b920c950c930c960c940c960c970c940cc20bc10b980cc10b950c980c960c990c970c990c9a0c970cd60bc20b9b0cc20b980c9b0c990c9c0c9a0c9c0c9d0c9a0cd70bd60b9e0cd60b9b0c9e0c9c0c9f0c9d0c9f0ca00c9d0cd80bd70ba10cd70b9e0ca10c9f0ca20ca00ca20ca30ca00cd90bd80ba40cd80ba10ca40ca20ca50ca30ca50ca60ca30ca70ca80ca90ca80caa0ca90ce00bdf0bab0cdf0bac0cab0ccc0bcb0bad0ccb0bae0cad0caf0cb00cb10cb00cb20cb10cb30ca70cb40ca70ca90cb40cb00cb50cb20cb50cb60cb20cb70cb30cb80cb30cb40cb80cb50cb90cb60cb90cba0cb60cbb0cb70cbc0cb70cb80cbc0cb90cbd0cba0cbd0cbe0cba0cbf0cbb0cc00cbb0cbc0cc00cbd0cc10cbe0cc10cc20cbe0cc30cbf0cc40cbf0cc00cc40cc10cc50cc20cc50cc60cc20cc70cc30cc80cc30cc40cc80cc50cc90cc60cc90cca0cc60ccb0cc70ccc0cc70cc80ccc0cc90ccd0cca0ccd0cce0cca0ccf0cd00cd10cd00cd20cd10cdd0bdc0bd30cdc0bd40cd30ccf0bcd0bd50ccd0bd60cd50cd70cd80cd90cd80cda0cd90cdb0ccf0cdc0ccf0cd10cdc0cd80cdd0cda0cdd0cde0cda0cdf0cdb0ce00cdb0cdc0ce00cdd0ce10cde0ce10ce20cde0ce30cdf0ce40cdf0ce00ce40ce10ce50ce20ce50ce60ce20ce70ce30ce80ce30ce40ce80ce50ce90ce60ce90cea0ce60ceb0ce70cec0ce70ce80cec0ce90ced0cea0ced0cee0cea0cef0ceb0cf00ceb0cec0cf00ced0cf10cee0cf10cf20cee0cf30cef0cf40cef0cf00cf40cf10cf50cf20cf50cf60cf20c4e0c4d0cf70c4d0cf80cf70c550c540cf90c540cfa0cf90c410c400cfb0c400cfc0cfb0cfd0cfe0cff0cfe0c000dff0c4f0c4e0c010d4e0cf70c010dfe0c020d000d020d030d000d500c4f0c040d4f0c010d040d020d050d030d050d060d030d330c500c070d500c040d070d050d080d060d080d090d060d340c330c0a0d330c070d0a0d080d0b0d090d0b0d0c0d090d350c340c0d0d340c0a0d0d0d0b0d0e0d0c0d0e0d0f0d0c0d360c350c100d350c0d0d100d0e0d110d0f0d110d120d0f0d370c360c130d360c100d130d110d140d120d140d150d120d160d170d180d170d190d180d1a0d1b0d1c0d1b0d1d0d1c0d440c420c1e0d420c1f0d1e0d1b0d200d1d0d200d210d1d0d170d220d190d220d230d190d240d1a0d250d1a0d1c0d250d220d260d230d260d270d230d280d240d290d240d250d290d260d2a0d270d2a0d2b0d270d2c0d280d2d0d280d290d2d0d2a0d2e0d2b0d2e0d2f0d2b0d300d2c0d310d2c0d2d0d310d2e0d320d2f0d320d330d2f0d340d300d350d300d310d350d320d360d330d360d370d330d380d340d390d340d350d390d360d3a0d370d3a0d3b0d370d520c510c3c0d510c3d0d3c0d3e0d3f0d400d3f0d410d400d420d430d440d430d450d440d560c450c460d450c470d460d430d480d450d480d490d450d3f0d4a0d410d4a0d4b0d410d4c0d420d4d0d420d440d4d0d4a0d4e0d4b0d4e0d4f0d4b0d500d4c0d510d4c0d4d0d510d4e0d520d4f0d520d530d4f0d540d500d550d500d510d550d520d560d530d560d570d530d580d540d590d540d550d590d560d5a0d570d5a0d5b0d570d5c0d580d5d0d580d590d5d0d5a0d5e0d5b0d5e0d5f0d5b0d600d5c0d610d5c0d5d0d610d5e0d620d5f0d620d630d5f0d3e0c3d0c640d3d0c650d640d660d670d680d670d690d680d6a0d6b0d6c0d6b0d6d0d6c0d590c570c6e0d570c6f0d6e0d6b0d700d6d0d700d710d6d0d670d720d690d720d730d690d740d6a0d750d6a0d6c0d750d720d760d730d760d770d730d780d740d790d740d750d790d760d7a0d770d7a0d7b0d770d7c0d780d7d0d780d790d7d0d7a0d7e0d7b0d7e0d7f0d7b0d800d7c0d810d7c0d7d0d810d7e0d820d7f0d820d830d7f0d840d800d850d800d810d850d820d860d830d860d870d830d880d840d890d840d850d890d860d8a0d870d8a0d8b0d870d3b0c3a0c8c0d3a0c8d0d8c0d8e0d8f0d900d8e0d910d8f0dc909920d930d940dc909930d950d960d970d950d980d960d970d990d9a0d970d960d990d9b0d9c0d9d0d9b0d9e0d9c0d9f0da00da10d9f0da20da00df208a30da40df308f208a40da50da60da70da50da80da60da90da70daa0da90da50da70dab0dac0dad0dae0dab0dad0dc809af0d920dc909c809920db00db10db20db30db00db20db40db50db60db40db70db50d9d0db80db90d9d0d9c0db80d8f0aba0d8d0a8f0abb0dba0dbc0dbd0dbe0dbc0dbf0dbd0dde09c00dc10de80ade09c10de80ac10dc20dea0ae80ac20dc30dc40dc50dc30dc60dc40dc70dc50dc80dc70dc30dc50dc90d9e0d9b0dc90dca0d9e0dbe0dca0dc90dbe0dbd0dca0dcb0dbf0dbc0dcb0dcc0dbf0d900acc0dcb0d900acd0dcc0dce0dcf0dd00dce0dd10dcf0dd20dd30dd40dd50dd20dd40dd60d910d8e0dd60dd70d910dd80dd70dd60dd80dcd09d70d920dd90dda0d930d920dda0dd90d52085408da0dd90d5408db0ddc0ddd0ddb0dde0ddc0d980ddd0d960d980ddb0ddd0ddd0ddf0de00ddd0ddc0ddf0d960de00d990d960ddd0de00de10de20de30de10de40de20de50da20d9f0de50de60da20de70de60de50de70de80de60da30de90dea0da40da30dea0de90df808fb08ea0de90dfb08eb0da80da50deb0dec0da80ded0dec0deb0ded0dee0dec0def0da50da90def0deb0da50df00deb0def0df00ded0deb0dac0df10df20dad0dac0df20df10df30df40df20df10df40daf0df50dd90d920daf0dd90df50dcf095208d90df50d5208f60df70df80df90df60df80df90df80db10db00df90db10dfa0dfb0dfc0dfa0dfd0dfb0db70dfc0db50db70dfa0dfc0de30dfe0dff0de30de20dfe0d9c0dff0db80d9c0de30dff0d000e010e020e000e030e010ebb0d020eba0dbb0d000e020e020e040e050e020e010e040e060e070e080e060e090e070ec00d0a0e0b0ec10dc00d0b0e0a0e0c0e0d0e0b0e0a0e0d0ec10d0b0e0e0ec20dc10d0e0e0b0e0d0e0f0e0e0e0b0e0f0e100ec60dc30d100e110ec60d120e110e100e120e130e110e140ec30dc70d140e100ec30d150e100e140e150e120e100e080e160e170e080e070e160e180e090e060e180e190e090e1a0e1b0e1c0e1a0e1d0e1b0ed10d1c0ecf0dd10d1a0e1c0e1e0e1f0e200e210e1e0e200e210e200ed30dd20d210ed30d220e230e240e230e250e240e260e270e280e270e290e280e2a0e2b0e2c0e2b0e2d0e2c0e2e0e2f0e300e2f0e310e300e320e330e340e330e350e340e360e370e380e370e390e380e3a0e3b0e3c0e3b0e3d0e3c0e2f0e3e0e310e3e0e3f0e310e400e320e410e320e340e410e3e0e420e3f0e420e430e3f0e440e400e450e400e410e450e460e470e480e470e490e480e4a0e440e4b0e440e450e4b0e4c0e4d0e4e0e4d0e4f0e4e0e500e4a0e510e4a0e4b0e510e520e530e540e530e550e540e560e570e580e570e590e580e5a0e5b0e5c0e5b0e5d0e5c0e5e0e500e5f0e500e510e5f0e600e610e620e610e630e620e640e650e660e650e670e660e680e260e690e260e280e690e6a0e6b0e6c0e6c0e6b0e6d0e6e0e6f0e700e700e6f0e710e720e730e740e720e750e730e760e770e780e760e790e770e7a0e7b0e7c0e7d0e7a0e7c0e7e0e7f0e800e810e7e0e800e820e830e840e820e850e830e810e800e860e870e810e860e870e860e7b0e7a0e870e7b0e880e890e8a0e880e8b0e890e6b0e8c0e6d0e6b0e8d0e8c0e8e0e8f0e900e8e0e910e8f0e920e930e940e950e920e940e960e6b0e6a0e960e970e6b0e980e970e960e980e990e970e6f0e9a0e9b0e710e6f0e9b0e9a0e9c0e9d0e9b0e9a0e9d0e9e0e9f0ea00e9e0ea10e9f0e740ea10e9e0e740e730ea10ea20e790e760ea20ea30e790ea40ea30ea20ea40ea50ea30e7b0ea60ea70e7c0e7b0ea70ea60ea80ea90ea70ea60ea90e7f0eaa0eab0e800e7f0eab0eaa0eac0ead0eab0eaa0ead0eae0e850e820eae0eaf0e850eb00eaf0eae0eb00eb10eaf0e800eab0eb20e860e800eb20eab0ead0eb30eb20eab0eb30e860eb20ea60e7b0e860ea60eb20eb30ea80ea60eb20ea80eb40e8b0e880eb40eb50e8b0eb60eb50eb40eb60eb70eb50e970e8d0e6b0e970eb80e8d0e990eb80e970e990eb90eb80eba0ebb0ebc0eba0ebd0ebb0e900ebd0eba0e900e8f0ebd0ebe0ebf0ec00ec10ebe0ec00ebf0e920e950ec00ebf0e950ec20e740ac30ec20e720a740ac40e760a790ac50ec40e790a7c0ac60ec70e7c0a7b0ac60ec80ec90eca0ecb0ec80eca0ecc0e7e0a810acd0ecc0e810ace0ecf0ed00ece0ed10ecf0ed20ed00ed30ed20ece0ed00ec30e890ad40ec30e740a890ad50eae0ad60ed50eac0aae0ad70eac0ad50ed70eb00aac0ad80eb40ad90ed80eb20ab40aba0abd0ada0edb0eba0ada0edc0eca0add0edc0ec80aca0a020bde0edf0e020b010bde0e050bdf0ee00e050b020bdf0ecd0e810a070be10ecd0e070be10e070b090be20ee10e090be30e720ac20ee30e370b720add0e370be30edd0eca0a370be40ec80adc0ee40e5c0bc80ad60e5c0be40ed60eae0a5c0be50ee60ee70ee50ee80ee60e750b730be90eea0e750be90ee40deb0ee20de40dec0eeb0eed0eee0eef0ef00eed0eef0ef10ee80de70df10ef20ee80df30ef40ef50ef60ef30ef50ef70ef80ef90e0c0ef70ef90efa0eee0ded0dfa0efb0eee0dfc0eed0df00dfc0efa0eed0de20dfd0efe0de20deb0efd0e010efe0e040e010eff0efe0e030eff0e010e030e000fff0e010f020f030f010f040f020f050f060f070f080f050f070f090e090f070e090e0a0f090f0b0f130e120e0b0f0c0f130e0d0f120e150e0d0f0b0f120e0c0ef90e0e0f0d0e0c0e0e0f0d0e0e0f0f0f0f0e0d0e0f0f160eec0ee40d160e100fec0e070e100f160e070e090f100f190e0a0f090e190e110f0a0f040e110f190e040efe0e110f1d0e120f1b0e1d0e130f120f140f150f1f0e1e0e140f1f0e160f170f180f190f160f180f1a0f1b0f1c0f1d0f1a0f1c0f1e0f1a0f1d0f1f0f1e0f1d0f200f210f220f200f220f230f240f250f260f240f260f270f1b0f280f290f1c0f1b0f290f280f230f220f290f280f220f190f180f2a0f2b0f190f2a0f2b0f2a0f270f260f2b0f270f1d0f1c0f2c0f2d0f1d0f2c0f2d0f2c0f2e0f2f0f2d0f2e0f1f0f1d0f2d0f300f1f0f2d0f300f2d0f2f0f310f300f2f0f1c0f290f320f2c0f1c0f320f2c0f320f330f2e0f2c0f330f290f220f340f320f290f340f320f340f350f330f320f350f360f370f380f390f360f380f390f380f170f160f390f170f3a0f3b0f3c0f3d0f3a0f3c0f3d0f3c0f1b0f1a0f3d0f1b0f3e0f3a0f3d0f3f0f3e0f3d0f3f0f3d0f1a0f1e0f3f0f1a0f3b0f400f410f3c0f3b0f410f3c0f410f280f1b0f3c0f280f400f420f430f410f400f430f410f430f230f280f410f230f440f450f3b0f3a0f440f3b0f460f470f450f440f460f450f480f440f3a0f3e0f480f3a0f490f460f440f480f490f440f170f4a0f4b0f180f170f4b0f4a0f1e0f1f0f4b0f4a0f1f0f4c0f310f4d0f4e0f4c0f4d0f270f4c0f4e0f240f270f4e0f180f4b0f4f0f2a0f180f4f0f4b0f1f0f300f4f0f4b0f300f2a0f4f0f4c0f270f2a0f4c0f4f0f300f310f4c0f4f0f310f370f500f510f380f370f510f500f3e0f3f0f510f500f3f0f380f510f4a0f170f380f4a0f510f3f0f1e0f4a0f510f1e0f520f530f500f370f520f500f530f480f3e0f500f530f3e0f540f550f530f520f540f530f550f490f480f530f550f480f560f570f460f560f460f490f580f560f490f580f490f550f590f5a0f2f0f590f2f0f2e0f5b0f5c0f240f5b0f240f4e0f5d0f5e0f2b0f5d0f2b0f260f5f0f600f160f5f0f160f190f5a0f590f610f590f620f610f570f560f630f560f640f630f560f580f640f580f650f640f660f670f680f660f680f690f6a0f660f690f6a0f690f6b0f6c0f6d0f6e0f6c0f6f0f6d0f700f710f720f730f700f720f740f6e0f750f740f6c0f6e0f760f750f770f760f740f750f730f720f780f790f730f780f790f780f7a0f7b0f790f7a0f7c0f7d0f7e0f7f0f7c0f7e0f800f810f820f810f830f820f720f710f840f710f850f840f860f800f870f800f820f870f780f720f880f720f840f880f810f890f830f890f8a0f830f7a0f780f8b0f780f880f8b0f670f660f8c0f660f8d0f8c0f660f6a0f8d0f6a0f8e0f8d0f8f0f900f910f920f8f0f910f930f940f950f960f930f950f960f950f900f8f0f960f900f970f980f990f9a0f970f990f9a0f990f9b0f9c0f9a0f9b0f9d0f9e0f980f970f9d0f980f9f0fa00f9e0f9d0f9f0f9e0fa10fa20fa30fa40fa10fa30fa50fa60fa00f9f0fa50fa00fa40fa30fa70fa80fa40fa70fa80fa70fa60fa50fa80fa60f7d0fa90faa0f7e0f7d0faa0fa90f970f9a0faa0fa90f9a0f7e0faa0fab0fac0f7e0fab0faa0f9a0f9c0fab0faa0f9c0fad0fae0fa90f7d0fad0fa90fae0f9d0f970fa90fae0f970f910faf0fae0fad0f910fae0faf0f9f0f9d0fae0faf0f9d0fb00fb10fb20f940fb00fb20fb10fa10fa40fb20fb10fa40f900fb30faf0f910f900faf0fb30fa50f9f0faf0fb30f9f0f940fb20fb40f950f940fb40fb20fa40fa80fb40fb20fa80f950fb40fb30f900f950fb30fb40fa80fa50fb30fb40fa50fb50fb60fb70fb60fb80fb70fb50fb70fb90fb70fba0fb90fb80fb60fbb0fb60fbc0fbb0fbd0fbe0fbf0fbe0fc00fbf0fc10fbd0fc20fbd0fbf0fc20fc30fc40fc50fc40fc60fc50fc70fc80fc90fc80fca0fc90fcb0fc30fcc0fc30fc50fcc0fcd0fcb0fce0fcb0fcc0fce0fbe0fcf0fc00fcf0fd00fc00fd10fd20fd30fd20fd40fd30fd50fd60fd70fd50fd80fd60fd90fda0fdb0fdc0fd90fdb0fdd0fde0fdf0fdd0fe00fde0fe10fe20fe30fe40fe10fe30fe50fd80fd50fe50fe60fd80fe70fe80fe90fea0fe70fe90fd70feb0fec0fd70fd60feb0fed0fd70fee0fed0fd50fd70fef0fee0ff00fef0fed0fee0fdc0fdb0ff10ff20fdc0ff10ff20ff10fd20fd10ff20fd20ff30fdf0ff40ff30fdd0fdf0ff50ff40ff60ff50ff30ff40fe40fe30ff70ff80fe40ff70ff80ff70fc40fc30ff80fc40ff90fd50fed0ff90fe50fd50ffa0fed0fef0ffa0ff90fed0fea0fe90ffb0ffc0fea0ffb0ffc0ffb0fcb0fcd0ffc0fcb0fee0fec0ffd0fee0fd70fec0ff00ffd0ffe0ff00fee0ffd0fff0f001001100010021001100310041005100410061005100410031007100810041007100910041008100a10091008100b100c100d100e100b100d100c100f1010100d100c1010101110121013101410111013101210151016101310121016101710181019101a101710191003101b101c10071003101c101b1017101a101c101b101a1018101d101e10191018101e101d10111014101e101d1014101f10201021100f101f102110221023100010ff0f2210001024102210ff0f25102410ff0f26101f100f100c1026100f10271026100c100b1027100c10281029102a102b1028102a1023102c102d10001023102d102c1028102b102d102c102b1029102e102f102a1029102f102e1027100b102f102e100b103010311032103310301032103310321020101f10331020103410351036103710341036103710361023102210371023103810341037103910381037103910371022102410391022103a10301033103b103a1033103b1033101f1026103b101f103c103a103b103d103c103b103d103b10261027103d1026103e103f10401041103e104010411040102910281041102910351042104310361035104310361043102c10231036102c1042103e1041104310421041104310411028102c10431028103f104410451040103f104510401045102e10291040102e1044103c103d10451044103d1045103d1027102e10451027100810071046104710081046100a100810471048100a1047101410131049104a1014104910131016104b10491013104b101a1019104c104d101a104c1007101c104e10461007104e101c101a104d104e101c104d1019101e104f104c1019104f101e1014104a104f101e104a104710461050105110471050105110501035103410511035104810471051105210481051105210511034103810521034104a104910531054104a105310541053103a103c1054103a1049104b1055105310491055105310551030103a10531030104d104c10561057104d105610571056103f103e1057103f1046104e1058105010461058105010581042103510501042104e104d10571058104e105710581057103e10421058103e104c104f10591056104c1059105610591044103f10561044104f104a10541059104f105410591054103c10441059103c105a105b105c105a105d105b105e105c105f105e105a105c105d1060105b105d10611060106210631064106210651063106610671068106610691067106a1064106b106a106210641069106b10671069106a106b106c106d106e106c106f106d105c106f106c105c105b106f1070106e10711070106c106e106f1072106d106f1073107210741075107610741077107510781079107a1078107b1079107c1076107d107c10741076106b1074107c106b10641074107b107d1079107b107c107d107e107f1080107f10811080108210831084108310851084108610871088108710891088108a108b108c108b108d108c108e108f1090108f10911090109210931094109310951094109610971098109710991098109a109b109c109b109d109c109e109f10a0109f10a110a010a210a310a410a310a510a410a610a710a810a710a910a8109f10aa10a110aa10ab10a110ac10ad10ae10ad10af10ae10b010a210b110a210a410b110b210b310b410b310b510b410b610b710b810b710b910b810ba10bb10bc10bb10bd10bc10be10bf10c010bf10c110c010c210c310c410c210c510c310c610c710c810c610c910c710ca10cb10cc10ca10cd10cb10ce10cf10d010ce10d110cf10d110d210cf10d110d310d210d410d510d610d410d710d510d810d910da10db10d810da10dc10dd10de10dc10df10dd10e010e110e210e310e010e210e410e510e610e710e410e610e810e910ea10e810eb10e910ec10ea10ed10ec10e810ea10d610ee10ef10d610d510ee10f010f110f210f010f310f110f410f310f010f410f510f310f610f710f810f610f910f710fa10fb10fc10fd10fa10fc10fe10ff100011fe100111ff10021103110411021105110311061104110711061102110411e710e61008110911e7100811091108110a110b1109110a110c11d710d4100c110d11d71000110d110c110011ff100d110e110111fe100e110f110111f2100f110e11f210f1100f11101111111211101113111111141115111611171114111611 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 4376 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 24 + format: 0 + dimension: 4 + - stream: 0 + offset: 40 + format: 2 + dimension: 4 + - stream: 0 + offset: 44 + format: 0 + dimension: 2 + - stream: 0 + offset: 52 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 262560 + _typelessdata: 0000004100009040000000c000000000000080bf000000000000803f00000000000000000000803fffffffff00000041000000c06fd70a3ecb30543f1904184100009040000080c000000000000080bf000000000000803f00000000000000000000803fffffffff19041841000080c020af333eadc95f3f1904184100009040000000c000000000000080bf000000000000803f00000000000000000000803fffffffff19041841000000c08b46013ee0bc5f3f0000004100009040000080c000000000000080bf000000000000803f00000000000000000000803fffffffff00000041000080c03d2d353ea366563f000080bf00004040000000c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000803f000000c07a08fe3d2e03c73e000080bf00004040000080c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000803f000080c085032f3e2e03c73e0000000000004040000080c000000000000080bf00000000000080bf0000000000000000000080bfffffffff00000000000080c085032f3eff02d33e0000000000004040000000c000000000000080bf00000000000080bf0000000000000000000080bfffffffff00000000000000c07b08fe3dff02d33e19041841000090406210204000000000000080bf000000000000803f00000000000000000000803fffffffff1904184162102040abb15f3cd9755f3f00000041000090406210204000000000000080bf000000000000803f00000000000000000000803fffffffff00000041621020404977653c20d8553f00000041000090400000000000000000000080bf000000000000803f00000000000000000000803fffffffff000000410000000014dd9c3d98fe553f19041841000090400000000000000000000080bf000000000000803f00000000000000000000803fffffffff190418410000000061249c3d509c5f3f7b141e4100006040ec5138400000000000000000000080bf0000803f0000000000000000000080bfffffffff7b141e4100006040cfc43f3f83c5123f0000004100004040ec5138400000000000000000000080bf0000803f0000000000000000000080bfffffffff0000004100004040520c4b3f8ec50f3f0000004100006040ec5138400000000000000000000080bf0000803f0000000000000000000080bfffffffff0000004100006040510c4b3f83c5123f7b141e4100004040ec5138400000000000000000000080bf0000803f0000000000000000000080bfffffffff7b141e4100004040cfc43f3f8ec50f3f0000204100008040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff0000204100008040f485dc3e464a6f3f0000004100006040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff00000041000060409785f43e524a6c3f0000004100008040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff00000041000080409685f43e464a6f3f0000204100006040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff0000204100006040f585dc3e524a6c3ff628fc4000004040f628bcc000000000000000000000803f000080bf0000000000000000000080bffffffffff628fcc000004040f3c4363fa698733f7b141e4100004040f628bcc000000000000000000000803f000080bf0000000000000000000080bfffffffff7b141ec100004040c5c4423fa698733f7b141e4100006040f628bcc000000000000000000000803f000080bf0000000000000000000080bfffffffff7b141ec100006040c5c4423f9a98763ff628fc4000006040f628bcc000000000000000000000803f000080bf0000000000000000000080bffffffffff628fcc000006040f3c4363f9a98763f00000041000060400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000c100006040ed88613fefca433f00002041000060400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000020c100006040bf886d3fefca433f00002041000080400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000020c100008040bf886d3fe4ca463f00000041000080400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000c100008040ed88613fe4ca463f00008040000060408fc2f5bd0000000000000000000080bf0000803f0000000000000000000080bfffffffff00008040000060409ff95d3f98479c3d00000040000040408fc2f5bd0000000000000000000080bf0000803f0000000000000000000080bfffffffff000000400000404071f9693ff247843d00000040000060408fc2f5bd0000000000000000000080bf0000803f0000000000000000000080bfffffffff000000400000604070f9693f96479c3d00008040000040408fc2f5bd0000000000000000000080bf0000803f0000000000000000000080bfffffffff0000804000004040a0f95d3ff347843d0000804000008040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000080c00000804050415d3fa83b823d0000004000006040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000000c0000060402241693f0378543d0000004000008040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000000c0000080402141693fa53b823d0000804000006040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000080c00000604051415d3f0878543d14ae074000004040f628fcc000000000000000000000803f000080bf0000000000000000000080bfffffffff14ae07c000004040d541393febbeb33e0000804000004040f628fcc000000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000040405889443febbeb33e0000804000006040f628fcc000000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000060405889443fd4beb93e14ae074000006040f628fcc000000000000000000000803f000080bf0000000000000000000080bfffffffff14ae07c000006040d541393fd4beb93e0000004000006040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c0000060407e41513fc0c1603c0000804000006040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c00000604050415d3fc5c1603c0000804000008040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c00000804050415d3f6e5fd03c0000004000008040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c0000080407e41513f6c5fd03c0ad7c340000060408ec2f5bd6b82713100000000000080bf0000803f000000006b827131000080bfffffffff0ad7c340000060407e41513f97479c3d0ad7c340000040408ec2f5bd6b82713100000000000080bf0000803f000000006b827131000080bfffffffff0ad7c340000040407f41513ff347843d0000c04000008040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff0000c0c0000080407e41513fa73b823d0000c04000006040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff0000c0c0000060407f41513f0678543d0000c04000004040f628fcc000000000000000000000803f000080bf0000000000000000000080bfffffffff0000c0c0000040402b89503febbeb33e0000c04000006040f628fcc000000000000000000000803f000080bf0000000000000000000080bfffffffff0000c0c0000060402b89503fd4beb93e0000c04000006040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000c0c0000060402341693fc5c1603c0000c04000008040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000c0c0000080402341693f6e5fd03c7b141e4100006040000080c0000080bf00000000000000000000000000000000000080bf000080bfffffffff0000804000006040de91f23e51b0b13e7b141e4100004040000000c0000080bf00000000000000000000000000000000000080bf000080bfffffffff0000004000004040c048053f67b0ab3e7b141e4100006040000000c0000080bf00000000000000000000000000000000000080bf000080bfffffffff0000004000006040c048053f50b0b13e7b141e4100004040000080c0000080bf00000000000000000000000000000000000080bf000080bfffffffff0000804000004040df91f23e68b0ab3e0000204100008040000080c0000080bf000000000000000000000000000000000000803f0000803fffffffff000080c0000080407d02f43e4f2aab3e0000204100006040000000c0000080bf000000000000000000000000000000000000803f0000803fffffffff000000c0000060400f01063f5e2aa53e0000204100008040000000c0000080bf000000000000000000000000000000000000803f0000803fffffffff000000c0000080401001063f472aab3e0000204100006040000080c0000080bf000000000000000000000000000000000000803f0000803fffffffff000080c0000060407c02f43e662aa53e8fc2f53d00004040000000c00000803f000000000000000000000000000000000000803f000080bfffffffff000000c000004040dc92b03e79c75c3f8fc2f53d00004040000080c00000803f000000000000000000000000000000000000803f000080bfffffffff000080c0000040408092c83e79c75c3f8fc2f53d00006040000080c00000803f000000000000000000000000000000000000803f000080bfffffffff000080c0000060408092c83e6dc75f3f8fc2f53d00006040000000c00000803f000000000000000000000000000000000000803f000080bfffffffff000000c000006040dc92b03e6dc75f3f0000000000006040000000c00000803f000000000000000000000000000000000000803f000080bfffffffff000000c00000604050415d3f9a90d83c0000000000006040000080c00000803f000000000000000000000000000000000000803f000080bfffffffff000080c0000060402341693f9a90d83c0000000000008040000080c00000803f000000000000000000000000000000000000803f000080bfffffffff000080c0000080402341693f93471c3d0000000000008040000000c00000803f000000000000000000000000000000000000803f000080bfffffffff000000c00000804050415d3f93471c3d7b141e410000604000000000000080bf00000000000000000000000000000000000080bf000080bfffffffff00000000000060409248113f52b0b13e7b141e4100004040ec513840000080bf00000000000000000000000000000000000080bf000080bfffffffffec5138c000004040fd8f223f67b0ab3e7b141e4100006040ec513840000080bf00000000000000000000000000000000000080bf000080bfffffffffec5138c000006040fc8f223f51b0b13e7b141e410000404000000000000080bf00000000000000000000000000000000000080bf000080bfffffffff00000000000040409248113f69b0ab3e000020410000804000000000000080bf00000000000000000000000000000000000080bf000080bfffffffff0000000000008040e100123f422aab3e000020410000604000004040000080bf00000000000000000000000000000000000080bf000080bfffffffff000040c0000060409c00243f4e2aa53e000020410000804000004040000080bf00000000000000000000000000000000000080bf000080bfffffffff000040c0000080409c00243f372aab3e000020410000604000000000000080bf00000000000000000000000000000000000080bf000080bfffffffff0000000000006040e100123f592aa53e0000c04000006040000040400000803f000000000000000000000000000000000000803f000080bfffffffff0000404000006040ae83243f41507c3f0000c04000006040000000000000803f000000000000000000000000000000000000803f000080bfffffffff00000000000060406983363f41507c3f0000c04000008040000000000000803f000000000000000000000000000000000000803f000080bfffffffff00000000000080406983363f36507f3f0000c04000008040000040400000803f000000000000000000000000000000000000803f000080bfffffffff0000404000008040ae83243f36507f3f0ad7c34000004040ec5138400000803f000000000000000000000000000000000000803f000080bfffffffffec5138400000404075420f3fce0e763f0ad7c340000040408ec2f5bd0000803f000000000000000000000000000000000000803f000080bfffffffff8ec2f5bd000040403042213fce0e763f0ad7c340000060408ec2f5bd0000803f000000000000000000000000000000000000803f000080bfffffffff8ec2f5bd000060403042213fc30e793f0ad7c34000006040ec5138400000803f000000000000000000000000000000000000803f000080bfffffffffec5138400000604075420f3fc30e793f77be7f3f00009040000000c000000000000080bf000000000000803f00000000000000000000803fffffffff77be7f3f000000c07faf013ed5ea2d3f0000004000009040000080c000000000000080bf000000000000803f00000000000000000000803fffffffff00000040000080c0f31a313edbcd313f0000004000009040000000c000000000000080bf000000000000803f00000000000000000000803fffffffff00000040000000c0245e043e356e333f77be7f3f00009040000080c000000000000080bf000000000000803f00000000000000000000803fffffffff77be7f3f000080c0b57d2d3ee43b2c3f0000000000008040000000c000000000000080bf000000000000803f00000000000000000000803fffffffff00000000000000c01309233fef6a4e3e0000003f00008040000080c000000000000080bf000000000000803f00000000000000000000803fffffffff0000003f000080c02766293f74d7783e0000003f00008040000000c000000000000080bf000000000000803f00000000000000000000803fffffffff0000003f000000c00cea203f09e7563e0000000000008040000080c000000000000080bf000000000000803f00000000000000000000803fffffffff00000000000080c02e852b3f5a5b703e0000003f000060408fc2f5bdca6ba8b200000000000080bf0000803f00000000ca6ba8b2000080bfffffffff0000003f000060404ef9723f96479c3d8ec2f53d000040408ec2f5bdca6ba8b200000000000080bf0000803f00000000ca6ba8b2000080bfffffffff8ec2f53d00004040f340753ff447843d8ec2f53d000060408ec2f5bdca6ba8b200000000000080bf0000803f00000000ca6ba8b2000080bfffffffff8ec2f53d00006040f340753f99479c3d0000003f000040408fc2f5bdca6ba8b200000000000080bf0000803f00000000ca6ba8b2000080bfffffffff0000003f000040404ef9723ff247843d0000003f00008040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000000bf00008040fe40723fa53b823d0000000000006040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff0000000000006040f440753f0878543d0000000000008040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff0000000000008040f340753fa83b823d0000003f00006040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000000bf00006040ff40723f0278543d8ec2f53d00004040f628bcc000000000000000000000803f000080bf0000000000000000000080bfffffffff8ec2f5bd000040403706493f6d0c473f0000003f00004040f628bcc000000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf00004040dc4d4b3f6d0c473f0000003f00006040f628bcc000000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf00006040dc4d4b3f610c4a3f8ec2f53d00006040f628bcc000000000000000000000803f000080bf0000000000000000000080bfffffffff8ec2f5bd000060403706493f610c4a3f14ae074000004040f628bcc000000000000000000000803f000080bf0000000000000000000080bfffffffff14ae07c0000040400906553f6d0c473f14ae074000006040f628bcc000000000000000000000803f000080bf0000000000000000000080bfffffffff14ae07c0000060400906553f610c4a3f00000000000060400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff00000000000060403706493fefca433f0000003f000060400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf000060402b064c3fefca433f0000003f000080400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf000080402b064c3fe4ca463f00000000000080400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff00000000000080403706493fe4ca463f00000040000060400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000c0000060400906553fefca433f00000040000080400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000c0000080400906553fe4ca463f0000004100009040000000bf00000000000080bf000000000000803f00000000000000000000803fffffffff00000041000000bf009fb63df902563f1904184100009040000000bf00000000000080bf000000000000803f00000000000000000000803fffffffff19041841000000bf8fc4b53d04a45f3f00000041000090400000000000000000000080bf000000000000803f00000000000000000000803fffffffff000000410000000012be083f233f223f0000004100009040000000bf00000000000080bf000000000000803f00000000000000000000803fffffffff00000041000000bf3a9f063fed1f203f1904184100009040000000bf00000000000080bf000000000000803f00000000000000000000803fffffffff19041841000000bfeffd0c3f4ec2193f000000400000904077be7fbf00000000000080bf000000000000803f00000000000000000000803fffffffff0000004077be7fbf5ccfdc3d84d9333f0000804000009040000000c000000000000080bf000000000000803f00000000000000000000803fffffffff00008040000000c0f8aa063e0c5e3e3f000080400000904077be7fbf00000000000080bf000000000000803f00000000000000000000803fffffffff0000804077be7fbf3191e13daaa33e3f00000040000080400000000000000000000080bf000000000000803f00000000000000000000803fffffffff0000004000000000dd10123fed6a4e3e0000804000008040000000bf00000000000080bf000000000000803f00000000000000000000803fffffffff00008040000000bfc9b30b3f76d7783e00008040000080400000000000000000000080bf000000000000803f00000000000000000000803fffffffff0000804000000000c394093f595b703e0000004000008040000000bf00000000000080bf000000000000803f00000000000000000000803fffffffff00000040000000bfe42f143f0ae7563e0000c04000009040000000c000000000000080bf000000000000803f00000000000000000000803fffffffff0000c040000000c08cc2083e9d47493f0000c0400000904077be7fbf00000000000080bf000000000000803f00000000000000000000803fffffffff0000c04077be7fbff6d2e53d868a493f0000c04000008040000000bf00000000000080bf000000000000803f00000000000000000000803fffffffff0000c040000000bfae37033ff1638d3e0000c040000080400000000000000000000080bf000000000000803f00000000000000000000803fffffffff0000c04000000000a818013fe225893e7b141e4100006040000000bf000080bf00000000000000000000000000000000000080bf000080bfffffffff0000003f000060409d480e3f50b0b13e7b141e4100004040000000bf000080bf00000000000000000000000000000000000080bf000080bfffffffff0000003f000040409d480e3f67b0ab3e0000204100008040000000bf000080bf000000000000000000000000000000000000803f0000803fffffffff000000bf00008040ed000f3f422aab3e000020410000604000000000000080bf000000000000000000000000000000000000803f0000803fffffffff0000000000006040e100123f592aa53e000020410000804000000000000080bf000000000000000000000000000000000000803f0000803fffffffff0000000000008040e100123f422aab3e0000204100006040000000bf000080bf000000000000000000000000000000000000803f0000803fffffffff000000bf00006040ec000f3f592aa53e8ec2f53d000040408ec2f5bd0000803f00000000ca6ba832ca6ba8b2000000000000803f000080bfffffffff8ec2f5bd00004040d6039a3e79c75c3f8fc2f53d00004040000000bf0000803f00000000ca6ba832ca6ba8b2000000000000803f000080bfffffffff000000bf0000404021939e3e79c75c3f8fc2f53d00006040000000bf0000803f00000000ca6ba832ca6ba8b2000000000000803f000080bfffffffff000000bf0000604021939e3e6dc75f3f8ec2f53d000060408ec2f5bd0000803f00000000ca6ba832ca6ba8b2000000000000803f000080bfffffffff8ec2f5bd00006040d6039a3e6dc75f3f0000000000006040000000000000803f000000000000000000000000000000000000803f000080bfffffffff00000000000060407e41513f9990d83c0000000000006040000000bf0000803f000000000000000000000000000000000000803f000080bfffffffff000000bf000060407341543f9890d83c0000000000008040000000bf0000803f000000000000000000000000000000000000803f000080bfffffffff000000bf000080407341543f92471c3d0000000000008040000000000000803f000000000000000000000000000000000000803f000080bfffffffff00000000000080407e41513f92471c3d77be7f3f0000904077be7fbf00000000000080bf000000000000803f00000000000000000000803fffffffff77be7f3f77be7fbfe29fdb3d2fbe2e3f0000003f000080400000000000000000000080bf000000000000803f00000000000000000000803fffffffff0000003f00000000f26d183f9cf6343e0000003f00008040000000bf00000000000080bf000000000000803f00000000000000000000803fffffffff0000003f000000bff88c1a3fb9723d3e0000000000008040000000bf00000000000080bf000000000000803f00000000000000000000803fffffffff00000000000000bfffab1c3f9ef6343e00000000000080400000000000000000000080bf000000000000803f00000000000000000000803fffffffff0000000000000000f88c1a3f837a2c3e00000041000080400000b0c000000000000080bf000000000000803f00000000000000000000803fffffffff000000410000b0c0bc02e23ec244443f00002041000080400000c0c000000000000080bf000000000000803f00000000000000000000803fffffffff000020410000c0c05e02fa3ecb44413f00002041000080400000b0c000000000000080bf000000000000803f00000000000000000000803fffffffff000020410000b0c05e02fa3ec044443f00000041000080400000c0c000000000000080bf000000000000803f00000000000000000000803fffffffff000000410000c0c0bc02e23ecd44413f19041841000090403108a0c000000000000080bf000000000000803f00000000000000000000803fffffffff190418413108a0c07fbe4a3e71aa5f3f00000041000090403108a0c000000000000080bf000000000000803f00000000000000000000803fffffffff000000413108a0c096004f3e42cf563f9eef1f40000090400000b0c000000000000080bf000000000000803f00000000000000000000803fffffffff9eef1f400000b0c0508b573e32bd333f00008040000090400000c0c000000000000080bf000000000000803f00000000000000000000803fffffffff000080400000c0c0d9d1643e7ae43c3f00008040000090400000b0c000000000000080bf000000000000803f00000000000000000000803fffffffff000080400000b0c07a0f593ee0fd3c3f9eef1f40000090400000c0c000000000000080bf000000000000803f00000000000000000000803fffffffff9eef1f400000c0c045dc633ef0d6333f7b141e41000060400000b0c0000080bf00000000000000000000000000000000000080bf000080bfffffffff0000b040000060402392e03e51b0b13e7b141e41000040400000b0c0000080bf00000000000000000000000000000000000080bf000080bfffffffff0000b040000040402492e03e68b0ab3e7b141e4100006040f628bcc0000080bf00000000000000000000000000000000000080bf000080bffffffffff628bc4000006040d902dc3e51b0b13e7b141e4100004040f628bcc0000080bf00000000000000000000000000000000000080bf000080bffffffffff628bc4000004040d902dc3e68b0ab3e00002041000080400000b0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000b0c000008040c302e23e542aab3e00002041000060400000b0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000b0c000006040c202e23e6b2aa53e00002041000080400000c0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000c0c000008040da02dc3e542aab3e00002041000060400000c0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000c0c000006040d902dc3e6c2aa53e8fc2f53d000040400000b0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000b0c0000040403b92da3e79c75c3f8fc2f53d000060400000b0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000b0c0000060403c92da3e6dc75f3f8ec2f53d00004040f628bcc00000803f00000000c76ba8b2c76ba832000000000000803f000080bffffffffff628bcc0000040408621df3e79c75c3f8ec2f53d00006040f628bcc00000803f00000000c76ba8b2c76ba832000000000000803f000080bffffffffff628bcc0000060408621df3e6dc75f3f00000000000060400000b0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000b0c0000060400041723f9a90d83c00000000000080400000b0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000b0c0000080400041723f93471c3d00000000000060400000c0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000c0c000006040f540753f9990d83c00000000000080400000c0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000c0c000008040f540753f92471c3d0000003f000080400000b0c000000000000080bf000000000000803f00000000000000000000803fffffffff0000003f0000b0c03bc32f3fe225893e00000040000080400000c0c000000000000080bf000000000000803f00000000000000000000803fffffffff000000400000c0c02e852b3f181e9a3e00000040000080400000b0c000000000000080bf000000000000803f00000000000000000000803fffffffff000000400000b0c02766293f0ae0953e0000003f000080400000c0c000000000000080bf000000000000803f00000000000000000000803fffffffff0000003f0000c0c042e2313ff0638d3e00000040000090403108a0c000000000000080bf000000000000803f00000000000000000000803fffffffff000000403108a0c06b20493e0103313f77be7f3f000090403108a0c000000000000080bf000000000000803f00000000000000000000803fffffffff77be7f3f3108a0c0c519433e20782b3f00000000000080400000b0c000000000000080bf000000000000803f00000000000000000000803fffffffff000000000000b0c042e2313fd4e7843e00000000000080400000c0c000000000000080bf000000000000803f00000000000000000000803fffffffff000000000000c0c04901343fe125893e00008040000090403108e0c000000000000080bf000000000000803f00000000000000000000803fffffffff000080403108e0c0780b7d3ee49c3c3f9eef1f40000090403108e0c000000000000080bf000000000000803f00000000000000000000803fffffffff9eef1f403108e0c0fff17a3e9933343f00000040000080400000f0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c00000f0c0d6039a3eef44383f0000804000008040000000c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0000000c17a03b23efa44353f00008040000080400000f0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c00000f0c07903b23eef44383f0000004000008040000000c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c0000000c1d7039a3efb44353f0000c040000090403108e0c000000000000080bf000000000000803f00000000000000000000803fffffffff0000c0403108e0c0b622803e62ae483f0000c040000090400000c0c000000000000080bf000000000000803f00000000000000000000803fffffffff0000c0400000c0c04d98673e5b2d493f0000c04000008040000000c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c0c0000000c11c03ca3efa44353f0000c040000080400000f0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c0c00000f0c01b03ca3eee44383f14ae074000004040f628bcc00000803f000000000000000000000000000000000000803f000080bffffffffff628bcc0000040409247553fefca433f14ae0740000040400000f0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000f0c000004040bfff5e3fefca433f14ae0740000060400000f0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000f0c000006040bfff5e3fe4ca463f14ae074000006040f628bcc00000803f000000000000000000000000000000000000803f000080bffffffffff628bcc0000060409247553fe4ca463f14ae074000004040f628fcc00000803f000000000000000000000000000000000000803f000080bffffffffff628fcc0000040406447613fefca433f14ae074000006040f628fcc00000803f000000000000000000000000000000000000803f000080bffffffffff628fcc0000060406447613fe4ca463f00000040000060400000c0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000c0c000006040ed88613f6d0c473f00000040000060400000f0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000f0c000006040cb886a3f6d0c473f00000040000080400000f0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000f0c000008040cb886a3f610c4a3f00000040000080400000c0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000c0c000008040ed88613f610c4a3f0000004000006040000000c10000803f000000000000000000000000000000000000803f000080bfffffffff000000c100006040bf886d3f6d0c473f0000004000008040000000c10000803f000000000000000000000000000000000000803f000080bfffffffff000000c100008040bf886d3f610c4a3f00000041000080400000f0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000f0c0000080408647583f620c4a3f00000041000060400000c0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000c0c0000060406447613f6d0c473f00000041000080400000c0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000c0c0000080406347613f620c4a3f00000041000060400000f0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000f0c0000060408747583f6d0c473f0000004100008040000000c1000080bf000000000000000000000000000000000000803f0000803fffffffff000000c1000080409247553f620c4a3f0000004100006040000000c1000080bf000000000000000000000000000000000000803f0000803fffffffff000000c1000060409247553f6d0c473ff628fc40000060400000f0c0000080bf00000000000000000000000000000000000080bf000080bfffffffff0000f04000006040ee11703fe4ca463ff628fc4000004040f628bcc0000080bf00000000000000000000000000000000000080bf000080bffffffffff628bc40000040401bca793fefca433ff628fc4000006040f628bcc0000080bf00000000000000000000000000000000000080bf000080bffffffffff628bc40000060401aca793fe4ca463ff628fc40000040400000f0c0000080bf00000000000000000000000000000000000080bf000080bfffffffff0000f04000004040ef11703ff0ca433ff628fc4000006040f628fcc0000080bf00000000000000000000000000000000000080bf000080bffffffffff628fc400000604049ca6d3fe4ca463ff628fc4000004040f628fcc0000080bf00000000000000000000000000000000000080bf000080bffffffffff628fc400000404049ca6d3fefca433fcff7ff40000090406210204000000000000080bf000000000000803f00000000000000000000803fffffffffcff7ff4062102040000000000000000000000041000090400000000000000000000080bf000000000000803f00000000000000000000803fffffffff0000004100000000000000000000000000000041000090406210204000000000000080bf000000000000803f00000000000000000000803fffffffff00000041621020400000000000000000cff7ff40000090400000000000000000000080bf000000000000803f00000000000000000000803fffffffffcff7ff400000000000000000000000000000c040000080400000404000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c0c00000404000bde83e25635f3e0000f040000080400000000000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0000000002877f53e0ae0953e0000f040000080400000404000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c000004040d902dc3e74d7783e0000c040000080400000000000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c0c000000000a818013fe225893e0000f04000006040ec5138400000000000000000000080bf0000803f0000000000000000000080bfffffffff0000f04000006040460c4e3f83c5123f0ad7c34000004040ec5138400000000000000000000080bf0000803f0000000000000000000080bfffffffff0ad7c34000004040d453563f8ec50f3f0ad7c34000006040ec5138400000000000000000000080bf0000803f0000000000000000000080bfffffffff0ad7c34000006040d453563f83c5123f0000f04000004040ec5138400000000000000000000080bf0000803f0000000000000000000080bfffffffff0000f04000004040470c4e3f8fc50f3f0000f04000008040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000f0c0000080407f85fa3e464a6f3f0000c04000006040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000c0c0000060409c42063f524a6c3f0000c04000008040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000c0c0000080409c42063f464a6f3f0000f04000006040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000f0c0000060408085fa3e524a6c3f0000004100008040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000000c1000080409685f43e464a6f3f0000004100006040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000000c1000060409785f43e524a6c3f0000f04000004040f628fcc000000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c0000040400889593febbeb33e0000f04000006040f628fcc000000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c0000060400889593fd4beb93ef628fc4000004040f628fcc000000000000000000000803f000080bf0000000000000000000080bffffffffff628fcc000004040aed05b3febbeb33ef628fc4000006040f628fcc000000000000000000000803f000080bf0000000000000000000080bffffffffff628fcc000006040aed05b3fd4beb93e0000f04000006040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c0000060400041723fc9c1603c0000f04000008040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c0000080400041723f715fd03c0000004100006040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c100006040f540753fc7c1603c0000004100008040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c100008040f540753f715fd03c0000f04000009040000000c000000000000080bf000000000000803f00000000000000000000803fffffffff0000f040000000c03c520a3e7876513f0000f0400000904077be7fbf00000000000080bf000000000000803f00000000000000000000803fffffffff0000f04077be7fbf15f4e83d22b9513fcff7ff40000090400000000000000000000080bf000000000000803f00000000000000000000803fffffffffcff7ff4000000000fcbc083f3940223fcff7ff4000009040000000bf00000000000080bf000000000000803f00000000000000000000803fffffffffcff7ff40000000bf249e063f0321203f0000f04000008040000000bf00000000000080bf000000000000803f00000000000000000000803fffffffff0000f040000000bf35b5f93e181e9a3e0000f040000080400000000000000000000080bf000000000000803f00000000000000000000803fffffffff0000f040000000002877f53e0ae0953e0000f040000080400000b0c000000000000080bf000000000000803f00000000000000000000803fffffffff0000f0400000b0c0d202dc3ec144443f0000f040000080400000c0c000000000000080bf000000000000803f00000000000000000000803fffffffff0000f0400000c0c0d302dc3ecd44413f0000c040000090400000b0c000000000000080bf000000000000803f00000000000000000000803fffffffff0000c0400000b0c04cf95a3e5e86493f3108e040000090400000c0c000000000000080bf000000000000803f00000000000000000000803fffffffff3108e0400000c0c096726a3ef07b4f3f3108e040000090400000b0c000000000000080bf000000000000803f00000000000000000000803fffffffff3108e0400000b0c0ffac5d3e5712503f0000f04000009040000080c000000000000080bf000000000000803f00000000000000000000803fffffffff0000f040000080c05500363eca35533f0000f040000090403108a0c000000000000080bf000000000000803f00000000000000000000803fffffffff0000f0403108a0c0936c503e768c533f00000041000080400000f0c000000000000080bf000000000000803f00000000000000000000803fffffffff000000410000f0c0be02e23eee44383f0000f040000080400000f0c000000000000080bf000000000000803f00000000000000000000803fffffffff0000f0400000f0c0d502dc3eee44383f3108e040000090403108e0c000000000000080bf000000000000803f00000000000000000000803fffffffff3108e0403108e0c09c91803e7f724e3f0000004100008040000000c100000000000080bf000000000000803f00000000000000000000803fffffffff00000041000000c1bf02e23efa44353f0000f04000008040000000c100000000000080bf000000000000803f00000000000000000000803fffffffff0000f040000000c1d602dc3efa44353f0000c040000080400000f0c000000000000080bf000000000000803f00000000000000000000803fffffffff0000c0400000f0c01b03ca3eee44383f0000c04000008040000000c100000000000080bf000000000000803f00000000000000000000803fffffffff0000c040000000c11c03ca3efa44353f0000003f31088040000080c00000803f00000000000000000000000000000000000080bf0000803fffffffff000080403108804000000000000000000000003f31088040000000c00000803f00000000000000000000000000000000000080bf0000803fffffffff000000403108804000000000000000000000003f00008040000000c00000803f00000000000000000000000000000000000080bf0000803fffffffff000000400000804000000000000000000000003f00008040000080c00000803f00000000000000000000000000000000000080bf0000803fffffffff000080400000804000000000000000000000003f31088040000000c0ffff7f3f00000000000000000000000000000000000080bf0000803fffffffff000000403108804000000000000000000000003f31088040000000bfffff7f3f00000000000000000000000000000000000080bf0000803fffffffff0000003f3108804000000000000000000000003f00008040000000bfffff7f3f00000000000000000000000000000000000080bf0000803fffffffff0000003f0000804000000000000000000000003f00008040000000c0ffff7f3f00000000000000000000000000000000000080bf0000803fffffffff0000004000008040000000000000000000000040310880400000b0c00000000000000000ffff7f3f0000803f00000000000000000000803fffffffff000000403108804000000000000000000000003f310880400000b0c00000000000000000ffff7f3f0000803f00000000000000000000803fffffffff0000003f3108804000000000000000000000003f000080400000b0c00000000000000000ffff7f3f0000803f00000000000000000000803fffffffff0000003f00008040000000000000000000000040000080400000b0c00000000000000000ffff7f3f0000803f00000000000000000000803fffffffff000000400000804000000000000000000000003f310880400000b0c0ffff7f3f00000000000000000000000000000000000080bf0000803fffffffff0000b0403108804000000000000000000000003f31088040000080c0ffff7f3f00000000000000000000000000000000000080bf0000803fffffffff000080403108804000000000000000000000003f00008040000080c0ffff7f3f00000000000000000000000000000000000080bf0000803fffffffff000080400000804000000000000000000000003f000080400000b0c0ffff7f3f00000000000000000000000000000000000080bf0000803fffffffff0000b0400000804000000000000000000000003f31088040000000bf0000000000000000ffff7fbf000080bf00000000000000000000803fffffffff000000bf3108804000000000000000000000004031088040000000bf0000000000000000ffff7fbf000080bf00000000000000000000803fffffffff000000c03108804000000000000000000000004000008040000000bf0000000000000000ffff7fbf000080bf00000000000000000000803fffffffff000000c00000804000000000000000000000003f00008040000000bf0000000000000000ffff7fbf000080bf00000000000000000000803fffffffff000000bf0000804000000000000000000000204131088040000000bfffff7fbf000000000000000000000000000000000000803f0000803fffffffff000000bf3108804000000000000000000000204131088040000000c0ffff7fbf000000000000000000000000000000000000803f0000803fffffffff000000c03108804000000000000000000000204100008040000000c0ffff7fbf000000000000000000000000000000000000803f0000803fffffffff000000c00000804000000000000000000000204100008040000000bfffff7fbf000000000000000000000000000000000000803f0000803fffffffff000000bf0000804000000000000000000000004031088040000000bf0000000000000000000080bf000080bf00000000000000000000803fffffffff000000c03108804000000000000000000000804031088040000000bf0000000000000000000080bf000080bf00000000000000000000803fffffffff000080c03108804000000000000000000000804000008040000000bf0000000000000000000080bf000080bf00000000000000000000803fffffffff000080c00000804000000000000000000000004000008040000000bf0000000000000000000080bf000080bf00000000000000000000803fffffffff000000c00000804000000000000000000000c04031088040000000bf0000000000000000000080bf000080bf00000000000000000000803fffffffff0000c0c03108804000000000000000000000c04000008040000000bf0000000000000000000080bf000080bf00000000000000000000803fffffffff0000c0c00000804000000000000000000000c04031088040000000bf0000000000000000ffff7fbf000080bf00000000000000000000803fffffffff0000c0c03108804000000000000000000000f04031088040000000bf0000000000000000ffff7fbf000080bf00000000000000000000803fffffffff0000f0c03108804000000000000000000000f04000008040000000bf0000000000000000ffff7fbf000080bf00000000000000000000803fffffffff0000f0c00000804000000000000000000000c04000008040000000bf0000000000000000ffff7fbf000080bf00000000000000000000803fffffffff0000c0c00000804000000000000000000000f04031088040000000bf0000803f00000000000000000000000000000000000080bf0000803fffffffff0000003f31088040b37e383f1a4c7b3e0000f04031088040000000000000803f00000000000000000000000000000000000080bf0000803fffffffff0000000031088040b37e383f484c6f3e0000f04000008040000000000000803f00000000000000000000000000000000000080bf0000803fffffffff00000000000080403c80383f484c6f3e0000f04000008040000000bf0000803f00000000000000000000000000000000000080bf0000803fffffffff0000003f000080403c80383f1a4c7b3e000020413108804000000000000080bf000000000000000000000000000000000000803f0000803fffffffff0000000031088040e100123f532dab3e0000204131088040000000bf000080bf000000000000000000000000000000000000803f0000803fffffffff000000bf31088040ed000f3f552dab3e0000f0403108804000000000ffff7f3f00000000000000000000000000000000000080bf0000803fffffffff000000003108804000000000000000000000f0403108804000004040ffff7f3f00000000000000000000000000000000000080bf0000803fffffffff000040c03108804000000000000000000000f0400000804000004040ffff7f3f00000000000000000000000000000000000080bf0000803fffffffff000040c00000804000000000000000000000f0400000804000000000ffff7f3f00000000000000000000000000000000000080bf0000803fffffffff000000000000804000000000000000000000004131088040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000000c13108804000000000000000000000204131088040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000020c13108804000000000000000000000204100008040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000020c10000804000000000000000000000004100008040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000000c10000804000000000000000000000f04031088040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000f0c0310880407f85fa3ed04b6f3f0000004131088040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000000c1310880409685f43ecf4b6f3f00002041310880400000b0c000000000000000000000803f0000803f00000000000000000000803fffffffff0000204131088040000000000000000000000041310880400000b0c000000000000000000000803f0000803f00000000000000000000803fffffffff0000004131088040000000000000000000000041000080400000b0c000000000000000000000803f0000803f00000000000000000000803fffffffff0000004100008040000000000000000000002041000080400000b0c000000000000000000000803f0000803f00000000000000000000803fffffffff00002041000080400000000000000000000020413108804000004040ffff7fbf000000000000000000000000000000000000803f0000803fffffffff00004040310880400000000000000000000020413108804000000000ffff7fbf000000000000000000000000000000000000803f0000803fffffffff00000000310880400000000000000000000020410000804000000000ffff7fbf000000000000000000000000000000000000803f0000803fffffffff00000000000080400000000000000000000020410000804000004040ffff7fbf000000000000000000000000000000000000803f0000803fffffffff0000404000008040000000000000000000000041310880400000b0c000000000000000000000803f0000803f00000000000000000000803fffffffff00000041310880407282783f1879083d0000f040310880400000b0c000000000000000000000803f0000803f00000000000000000000803fffffffff0000f040310880407e82753f1879083d0000f040000080400000b0c000000000000000000000803f0000803f00000000000000000000803fffffffff0000f040000080407e82753f8560083d00000041000080400000b0c000000000000000000000803f0000803f00000000000000000000803fffffffff00000041000080407282783f8560083d0000204131088040000000c0000080bf000000000000000000000000000000000000803f0000803fffffffff000000c03108804000000000000000000000204131088040000080c0000080bf000000000000000000000000000000000000803f0000803fffffffff000080c03108804000000000000000000000204100008040000080c0000080bf000000000000000000000000000000000000803f0000803fffffffff000080c00000804000000000000000000000204100008040000000c0000080bf000000000000000000000000000000000000803f0000803fffffffff000000c00000804000000000000000000000204131088040000080c0ffff7fbf000000000000000000000000000000000000803f0000803fffffffff000080c031088040000000000000000000002041310880400000b0c0ffff7fbf000000000000000000000000000000000000803f0000803fffffffff0000b0c031088040000000000000000000002041000080400000b0c0ffff7fbf000000000000000000000000000000000000803f0000803fffffffff0000b0c00000804000000000000000000000204100008040000080c0ffff7fbf000000000000000000000000000000000000803f0000803fffffffff000080c00000804000000000000000000000f040310880400000f0c00000000000000000ffff7f3f0000803f00000000000000000000803fffffffff0000f0403108804000000000000000000000c040310880400000f0c00000000000000000ffff7f3f0000803f00000000000000000000803fffffffff0000c0403108804000000000000000000000c040000080400000f0c00000000000000000ffff7f3f0000803f00000000000000000000803fffffffff0000c0400000804000000000000000000000f040000080400000f0c00000000000000000ffff7f3f0000803f00000000000000000000803fffffffff0000f0400000804000000000000000000000c040310880400000f0c000000000000000000000803f0000803f00000000000000000000803fffffffff0000c04031088040000000000000000000008040310880400000f0c000000000000000000000803f0000803f00000000000000000000803fffffffff0000804031088040000000000000000000008040000080400000f0c000000000000000000000803f0000803f00000000000000000000803fffffffff000080400000804000000000000000000000c040000080400000f0c000000000000000000000803f0000803f00000000000000000000803fffffffff0000c0400000804000000000000000000000f040310880400000b0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000b0c031088040c82f623e7b7f543f0000f040310880400000c0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000c0c0310880403a676e3edace533f0000f040000080400000c0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000c0c000008040a3686e3e6ad0533f0000f040000080400000b0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000b0c0000080403131623e0b81543f0000f040310880400000c0c0ffff7fbf000000000000000000000000000000000000803f0000803fffffffff0000c0c03108804000000000000000000000f040310880400000f0c0ffff7fbf000000000000000000000000000000000000803f0000803fffffffff0000f0c03108804000000000000000000000f040000080400000f0c0ffff7fbf000000000000000000000000000000000000803f0000803fffffffff0000f0c00000804000000000000000000000f040000080400000c0c0ffff7fbf000000000000000000000000000000000000803f0000803fffffffff0000c0c000008040000000000000000000000040310880400000c0c00000803f00000000000000000000000000000000000080bf0000803fffffffff0000c040310880405022653e72b32f3f00000040310880400000b0c00000803f00000000000000000000000000000000000080bf0000803fffffffff0000b04031088040e378593e536f2f3f00000040000080400000b0c00000803f00000000000000000000000000000000000080bf0000803fffffffff0000b040000080406f79593ed56d2f3f00000040000080400000c0c00000803f00000000000000000000000000000000000080bf0000803fffffffff0000c04000008040dc22653ef4b12f3f00000040310880400000f0c000000000000000000000803f0000803f00000000000000000000803fffffffff0000004031088040000000000000000000000040000080400000f0c000000000000000000000803f0000803f00000000000000000000803fffffffff0000004000008040000000000000000000000040310880400000f0c0ffff7f3f00000000000000000000000000000000000080bf0000803fffffffff0000f04031088040000000000000000000000040310880400000c0c0ffff7f3f00000000000000000000000000000000000080bf0000803fffffffff0000c04031088040000000000000000000000040000080400000c0c0ffff7f3f00000000000000000000000000000000000080bf0000803fffffffff0000c04000008040000000000000000000000040000080400000f0c0ffff7f3f00000000000000000000000000000000000080bf0000803fffffffff0000f04000008040000000000000000077be7f3f00009040000000c0f404353ff20435bf0000000000000000000000000000803f000080bfffffffff000000c03bdb78407faf013ed5ea2d3f0000003f31088040000000c0f404353ff20435bf0000000000000000000000000000803f000080bfffffffff000000c029b14b407ba7fd3d8f0f2a3f0000003f31088040000080c0f404353ff20435bf0000000000000000000000000000803f000080bfffffffff000080c029b14b4026492b3e0454283f77be7f3f00009040000080c0f404353ff20435bf0000000000000000000000000000803f000080bfffffffff000080c03bdb7840b57d2d3ee43b2c3f77be7f3f0000904077be7fbff304353ff20435bf0000000000000000000000000000803f000080bfffffffff77be7fbf3bdb7840e29fdb3d2fbe2e3f0000003f31088040000000bff304353ff20435bf0000000000000000000000000000803f000080bfffffffff000000bf29b14b40584ebe3d88112c3f0000003f310880400000b0c0f404353ff20435bf0000000000000000000000000000803f000080bfffffffff0000b0c029b14b4093b04c3e1c42273f77be7f3f000090403108a0c0f404353ff20435bf0000000000000000000000000000803f000080bfffffffff3108a0c03bdb7840c519433e20782b3f000080400000904077be7fbf00000000f20435bff40435bf0000803f0000000000000000000080bfffffffff000080403bdb78403191e13daaa33e3f0000804031088040000000bf00000000f20435bff40435bf0000803f0000000000000000000080bfffffffff0000804029b14b405ee2c23d94d23e3f0000004031088040000000bf00000000f20435bff40435bf0000803f0000000000000000000080bfffffffff0000004029b14b406be4be3daef9333f000000400000904077be7fbf00000000f20435bff40435bf0000803f0000000000000000000080bfffffffff000000403bdb78405ccfdc3d84d9333f0000c0400000904077be7fbf00000000f20435bff40435bf0000803f0000000000000000000080bfffffffff0000c0403bdb7840f6d2e53d868a493f0000c04031088040000000bf00000000f20435bff40435bf0000803f0000000000000000000080bfffffffff0000c04029b14b40680ac73d97b9493f0000f0400000904077be7fbf00000000f20435bff40435bf0000803f0000000000000000000080bfffffffff0000f0403bdb784015f4e83d22b9513f0000f04031088040000000bf00000000f20435bff40435bf0000803f0000000000000000000080bfffffffff0000f04029b14b40fe28ca3d19e8513f0000003f31088040000000bf00000000f20435bff40435bf0000803f0000000000000000000080bfffffffff0000003f29b14b40584ebe3d88112c3f77be7f3f0000904077be7fbf00000000f20435bff40435bf0000803f0000000000000000000080bfffffffff77be7f3f3bdb7840e29fdb3d2fbe2e3f9eef1f40000090400000b0c0f404353ff40435bf00000000f30435bff30435bf00000000000080bfffffffff8b5e9ec00000b0c0508b573e32bd333f00000040310880400000b0c0f404353ff40435bf00000000f30435bff30435bf00000000000080bfffffffff82c987c00000b0c0e378593e536f2f3f00000040310880400000c0c0f404353ff40435bf00000000f30435bff30435bf00000000000080bfffffffff82c987c00000c0c05022653e72b32f3f9eef1f40000090400000c0c0f404353ff40435bf00000000f30435bff30435bf00000000000080bfffffffff8b5e9ec00000c0c045dc633ef0d6333f00000040310880400000f0c0f304353ff30435bf00000000f30435bff30435bf00000000000080bfffffffff82c987c00000f0c0a041843e6a72303f9eef1f40000090403108e0c0f304353ff30435bf00000000f30435bff30435bf00000000000080bfffffffff8b5e9ec03108e0c0fff17a3e9933343f77be7f3f000090403108a0c000000000f30435bff304353f000080bf0000000000000000000080bfffffffff77be7fbfa161b5bec519433e20782b3f0000003f310880400000b0c000000000f30435bff304353f000080bf0000000000000000000080bfffffffff000000bf8cac87bf93b04c3e1c42273f00000040310880400000b0c000000000f30435bff304353f000080bf0000000000000000000080bfffffffff000000c08cac87bfe378593e536f2f3f00000040000090403108a0c000000000f30435bff304353f000080bf0000000000000000000080bfffffffff000000c0a161b5be6b20493e0103313f9eef1f40000090403108e0c000000000f20435bff204353f000080bf0000000000000000000080bfffffffff9eef1fc05c5de2bffff17a3e9933343f00000040310880400000f0c000000000f40435bff404353f000080bf0000000000000000000080bfffffffff000000c0c0581ec0a041843e6a72303f00008040310880400000f0c000000000f20435bff204353f000080bf0000000000000000000080bfffffffff000080c0c0581ec03c2b873e41473c3f00008040000090403108e0c000000000f30435bff304353f000080bf0000000000000000000080bfffffffff000080c05c5de2bf780b7d3ee49c3c3f0000c040310880400000f0c000000000f40435bff404353f000080bf0000000000000000000080bfffffffff0000c0c0c0581ec00291883ecc7f483f0000c040000090403108e0c000000000f40435bff404353f000080bf0000000000000000000080bfffffffff0000c0c05c5de2bfb622803e62ae483f0000f040310880400000f0c000000000f30435bff304353f000080bf0000000000000000000080bfffffffff0000f0c0c0581ec0b7e5883ed568513f3108e040000090403108e0c000000000f30435bff304353f000080bf0000000000000000000080bfffffffff3108e0c05c5de2bf9c91803e7f724e3f3108e040000090403108e0c0f30435bff30435bf00000000f30435bff304353f00000000000080bfffffffff5c5de2bf3108e0c09c91803e7f724e3f0000f040310880400000f0c0f30435bff30435bf00000000f30435bff304353f00000000000080bfffffffffc0581ec00000f0c0b7e5883ed568513f0000f040310880400000c0c0f30435bff30435bf00000000f30435bff304353f00000000000080bfffffffffc0581ec00000c0c03a676e3edace533f3108e040000090400000c0c0f30435bff30435bf00000000f30435bff304353f00000000000080bfffffffff5c5de2bf0000c0c096726a3ef07b4f3f0000f040310880400000b0c0f40435bff40435bf00000000f30435bff304353f00000000000080bfffffffffc0581ec00000b0c0c82f623e7b7f543f3108e040000090400000b0c0f40435bff40435bf00000000f30435bff304353f00000000000080bfffffffff5c5de2bf0000b0c0ffac5d3e5712503f0000f040000090403108a0c000000000f40435bff404353f000080bf0000000000000000000080bfffffffff0000f0c0a161b5be936c503e768c533f0000f040310880400000b0c000000000f40435bff404353f000080bf0000000000000000000080bfffffffff0000f0c08cac87bfc82f623e7b7f543f00000041310880400000b0c000000000f40435bff404353f000080bf0000000000000000000080bfffffffff000000c18cac87bf6804603e7975573f00000041000090403108a0c000000000f40435bff404353f000080bf0000000000000000000080bfffffffff000000c1a161b5be96004f3e42cf563f00002041310880400000b0c000000000f30435bff304353f000080bf0000000000000000000080bfffffffff000020c18cac87bfa379593e0657633f19041841000090403108a0c000000000f30435bff304353f000080bf0000000000000000000080bfffffffff190418c1a161b5be7fbe4a3e71aa5f3f19041841000090403108a0c0f80435bfed0435bf000000000000000000000000000080bf000080bfffffffff3108a040b45162c07fbe4a3e71aa5f3f00002041310880400000b0c0f80435bfed0435bf000000000000000000000000000080bf000080bfffffffff0000b040e2bd87c0a379593e0657633f0000204131088040000080c0f80435bfed0435bf000000000000000000000000000080bf000080bfffffffff00008040e2bd87c0a049343e6f3f643f1904184100009040000080c0f90435bfed0435bf000000000000000000000000000080bf000080bfffffffff00008040b45162c020af333eadc95f3f0000204131088040000000c0f90435bfed0435bf000000000000000000000000000080bf000080bfffffffff00000040e2bd87c03228013e6f3f643f1904184100009040000000c0f90435bfed0435bf000000000000000000000000000080bf000080bfffffffff00000040b35162c08b46013ee0bc5f3f0000204131088040000000bff80435bfed0435bf000000000000000000000000000080bf000080bfffffffff0000003fe2bd87c0ac6db53d5429643f1904184100009040000000bff80435bfed0435bf000000000000000000000000000080bf000080bfffffffff0000003fb45162c08fc4b53d04a45f3f000020413108804000000000f90435bfed0435bf000000000000000000000000000080bf000080bfffffffff00000000e2bd87c091cd9b3dae21643f190418410000904000000000f90435bfed0435bf000000000000000000000000000080bf000080bfffffffff00000000b35162c061249c3d509c5f3f000020413108804000004040f90435bfee0435bf000000000000000000000000000080bf000080bfffffffff000040c0e2bd87c06f12833a8cf3633f190418410000904062102040f80435bfed0435bf000000000000000000000000000080bf000080bfffffffff621020c0b45162c0abb15f3cd9755f3f19041841000090406210204000000000f30435bff30435bf0000803f0000000000000000000080bfffffffff19041841c9edb43fc782e23eb087733f00002041310880400000404000000000f40435bff40435bf0000803f0000000000000000000080bfffffffff000020414a33353ff085dc3ece4b6f3f00000041310880400000404000000000f30435bff30435bf0000803f0000000000000000000080bfffffffff000000414a33353f9685f43ecf4b6f3f00000041000090406210204000000000f30435bff30435bf0000803f0000000000000000000080bfffffffff00000041c9edb43f9485f43eb187733f0000f040310880400000404000000000f30435bff30435bf0000803f0000000000000000000080bfffffffff0000f0404a33353f7f85fa3ed04b6f3fcff7ff40000090406210204000000000f40435bff40435bf0000803f0000000000000000000080bfffffffffcff7ff40c9edb43f000000000000000000000041000090406210204000000000f30435bff30435bf0000803f0000000000000000000080bfffffffff00000041c9edb43f00000000000000000000f040310880400000404000000000f30435bff30435bf0000803f0000000000000000000080bfffffffff0000f0404a33353f0000000000000000cff7ff400000904062102040f404353ff40435bf00000000f30435bff30435bf00000000000080bffffffffff9680dc1621020405ec3393f15485a3f0000f0403108804000004040f304353ff30435bf00000000f30435bff30435bf00000000000080bfffffffff751e02c100004040f3c4363f330c563f0000f0403108804000000000f404353ff40435bf00000000f30435bff30435bf00000000000080bfffffffff751e02c100000000adc4483f330c563fcff7ff400000904000000000f304353ff30435bf00000000f30435bff30435bf00000000000080bffffffffff9680dc100000000adc4483f15485a3fcff7ff400000904000000000f404353ff40435bf00000000f30435bff30435bf00000000000080bffffffffff9680dc100000000d242343f484c6f3e0000f0403108804000000000f404353ff40435bf00000000f30435bff30435bf00000000000080bfffffffff751e02c100000000b37e383f484c6f3e0000f04031088040000000bff404353ff40435bf00000000f30435bff30435bf00000000000080bfffffffff751e02c1000000bfb37e383f1a4c7b3ecff7ff4000009040000000bff404353ff40435bf00000000f30435bff30435bf00000000000080bffffffffff9680dc1000000bfb37e383f0829843ecff7ff400000904000000000f404353ff40435bf00000000f30435bff30435bf00000000000080bffffffffff9680dc100000000b37e383f3f527c3e0000f04031088040000000bff404353ff40435bf00000000f30435bff30435bf00000000000080bfffffffff751e02c1000000bfd242343f0929843e0000004100009040000000bf00000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c1000000bf3a9f063fed1f203fcff7ff4000009040000000bf00000000000080bf00000000000080bf0000000000000000000080bfffffffffcff7ffc0000000bf249e063f0321203f0000f0400000904077be7fbf00000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c077be7fbf4362023fa720203f0000004100009040000000c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c1000000c0b142003f4ec2193f0000f0400000904077be7fbf00000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c077be7fbf15f4e83d22b9513f0000f04000009040000000c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0000000c03c520a3e7876513f0000004100009040000000c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c1000000c06fd70a3ecb30543f0000004000009040000080c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c0000080c0f31a313edbcd313f9eef1f40000090400000b0c000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff9eef1fc00000b0c0508b573e32bd333f0000804000009040000080c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0000080c02e9c353ec1a53d3f00008040000090400000b0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c00000b0c07a0f593ee0fd3c3f00000040000090403108a0c000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff000000c03108a0c06b20493e0103313f0000c04000009040000080c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c0c0000080c0edad353ecae0493f0000f040000090403108a0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c03108a0c0936c503e768c533f0000f04000009040000080c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0000080c05500363eca35533f3108e040000090400000b0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff3108e0c00000b0c0ffac5d3e5712503f0000c040000090400000b0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c0c00000b0c04cf95a3e5e86493fcff7ff4000009040000000bf3acd133f3acd13bf3bcd13bff404353f00000000f304353f000080bfffffffffdaaea940229be440e5d3da3dfc25553f0000f04031088040000000bf3acd133f3acd13bf3bcd13bff404353f00000000f304353f000080bfffffffff56649e409c0cd140fe28ca3d19e8513f0000f0400000904077be7fbf3acd133f3acd13bf3bcd13bff404353f00000000f304353f000080bfffffffffd1199340229be44015f4e83d22b9513f00000040000090403108a0c03acd133f3acd13bf3acd133ff30435bf00000000f304353f000080bfffffffff1f6a9ec0c1bd1c406b20493e0103313f00000040310880400000b0c03acd133f3acd13bf3acd133ff30435bf00000000f304353f000080bfffffffffa4b4a9c06a41eb3fe378593e536f2f3f9eef1f40000090400000b0c03acd133f3acd13bf3acd133ff30435bf00000000f304353f000080bfffffffff28ffb4c0c1bd1c40508b573e32bd333f3108e040000090400000b0c03acd13bf3acd13bf3acd133ff30435bf00000000f30435bf000080bfffffffffe1da87bf8ff2b6bfffac5d3e5712503f0000f040310880400000b0c03acd13bf3acd13bf3acd133ff30435bf00000000f30435bf000080bffffffffff304b5bf539602c0c82f623e7b7f543f0000f040000090403108a0c03acd13bf3acd13bf3acd133ff30435bf00000000f30435bf000080bfffffffff052fe2bf8ff2b6bf936c503e768c533f0000004100004040ec51384000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c1ec513840af741e3cc680193f7b141e4100004040ec51384000000000000080bf00000000000080bf0000000000000000000080bfffffffff7b141ec1ec513840b8741e3c49c8243f00002041000040400000404000000000000080bf00000000000080bf0000000000000000000080bfffffffff000020c10000404094c1e03b9880253f00000041000040400000404000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c100004040c3c1e03bc680193f7b141e41000060400000000000000000ffff7f3f000000000000803f0000000000000000000080bfffffffff7b141e41000000006002fa3e75c8183f7b141e4100006040ec51384000000000ffff7f3f000000000000803f0000000000000000000080bfffffffff7b141e41ec5138409c480e3f75c8183f00002041000060400000404000000000ffff7f3f000000000000803f0000000000000000000080bfffffffff0000204100004040ec000f3fc480193f000020410000604000000000000000000000803f000000000000803f0000000000000000000080bfffffffff00002041000000006002fa3ec480193f7b141e4100006040ec513840000000000000803f000000000000803f0000000000000000000080bfffffffff7b141e41ec5138409c480e3f75c8183f0000004100006040ec513840000000000000803f000000000000803f0000000000000000000080bfffffffff00000041ec5138409a480e3ff3800d3f000000410000604000004040000000000000803f000000000000803f0000000000000000000080bfffffffff0000004100004040ea000f3ff3800d3f000020410000604000004040000000000000803f000000000000803f0000000000000000000080bfffffffff0000204100004040ec000f3fc480193f7b141e4100004040ec51384000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff7b141ec1ec513840b8741e3c49c8243f7b141e41000040400000000000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff7b141ec100000000ec099e3d49c8243f00002041000040400000000000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff000020c100000000ec099e3d9880253f7b141e4100006040000000bf000000000000803f000000000000803f0000000000000000000080bfffffffff7b141e41000000bf7702f43e75c8183f7b141e410000604000000000000000000000803f000000000000803f0000000000000000000080bfffffffff7b141e41000000006002fa3e75c8183f0000204100006040000000bf000000000000803f000000000000803f0000000000000000000080bfffffffff00002041000000bf7702f43ec480193f7b141e41000040400000000000000000000080bf00000000000080bf0000000000000000000080bfffffffff7b141ec100000000ec099e3d49c8243f7b141e4100004040000000bf00000000000080bf00000000000080bf0000000000000000000080bfffffffff7b141ec1000000bf9109b63d49c8243f0000204100004040000000bf00000000000080bf00000000000080bf0000000000000000000080bfffffffff000020c1000000bf9109b63d9880253f00002041000040400000000000000000000080bf00000000000080bf0000000000000000000080bfffffffff000020c100000000ec099e3d9880253f7b141e4100006040000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff7b141e41000000c0be02e23e75c8183f0000204100006040000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff00002041000000c0be02e23ec480193f7b141e4100004040000000c000000000000080bf00000000000080bf0000000000000000000080bfffffffff7b141ec1000000c07b08fe3d49c8243f0000204100004040000000c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000020c1000000c07b08fe3d9880253f7b141e4100006040000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff7b141e41000080c01b03ca3e75c8183f0000204100006040000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff00002041000080c01b03ca3ec480193f7b141e4100004040000080c000000000000080bf00000000000080bf0000000000000000000080bfffffffff7b141ec1000080c084032f3e49c8243f0000204100004040000080c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000020c1000080c084032f3e9880253f7b141e41000060400000b0c0000000000000803f000000000000803f0000000000000000000080bfffffffff7b141e410000b0c06103b83e76c8183f00002041000060400000b0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000020410000b0c06103b83ec580193f7b141e41000040400000b0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff7b141ec10000b0c0f902533e49c8243f00002041000040400000b0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000020c10000b0c0f902533e9880253f7b141e4100006040f628bcc000000000ffff7f3f000000000000803f0000000000000000000080bfffffffff7b141e41f628bcc01674b33e76c8183f00002041000060400000b0c000000000ffff7f3f000000000000803f0000000000000000000080bfffffffff000020410000b0c06103b83ec580193f00002041000060400000c0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000020410000c0c07803b23ec580193f7b141e41000040400000b0c000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff7b141ec10000b0c0f902533e49c8243f7b141e4100004040f628bcc000000000000080bf00000000000080bf0000000000000000000080bfffffffff7b141ec1f628bcc08f215c3e49c8243f00002041000040400000c0c000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff000020c10000c0c0cc025f3e9880253ff628fc4000004040f628bcc000000000000080bf00000000000080bf0000000000000000000080bffffffffff628fcc0f628bcc08e215c3e77c8183f00000041000040400000c0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c10000c0c0ca025f3ec780193f00002041000040400000c0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000020c10000c0c0cc025f3e9880253ff628fc40000060400000f0c0000000000000803f000000000000803f0000000000000000000080bffffffffff628fc400000f0c0c003a03ea5c80c3ff628fc4000006040f628bcc0000000000000803f000000000000803f0000000000000000000080bffffffffff628fc40f628bcc01774b33ea3c80c3f00000041000060400000c0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000000410000c0c07803b23ef2800d3f00000041000060400000f0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000000410000f0c0c103a03ef4800d3f7b141e4100006040f628bcc0000000000000803f000000000000803f0000000000000000000080bfffffffff7b141e41f628bcc01674b33e76c8183ff628fc40000040400000f0c000000000000080bf00000000000080bf0000000000000000000080bffffffffff628fcc00000f0c02081813e78c8183f00000041000040400000f0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c10000f0c02081813ec780193ff628fc4000006040f628fcc000000000ffff7f3f000000000000803f0000000000000000000080bffffffffff628fc40f628fcc076749b3ea5c80c3f00000041000060400000f0c000000000ffff7f3f000000000000803f0000000000000000000080bfffffffff000000410000f0c0c103a03ef4800d3f0000004100006040000000c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000000c1d8039a3ef4800d3ff628fc40000040400000f0c000000000ffff7fbf00000000000080bf0000000000000000000080bffffffffff628fcc00000f0c02081813e78c8183ff628fc4000004040f628fcc000000000000080bf00000000000080bf0000000000000000000080bffffffffff628fcc0f628fcc06b10863e78c8183f0000004100004040000000c100000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff000000c1000000c10981873ec780193ff628fc4000004040f628fcc000000000ffff7fbf00000000000080bf0000000000000000000080bffffffffff628fcc0f628fcc06b10863e78c8183f0000f04000004040f628fcc000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0f628fcc06b10863ed280163f0000f04000004040000000c100000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff0000f0c0000000c10981873ed280163f0000004100004040000000c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c1000000c10981873ec780193f0000c04000004040f628fcc000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c0c0f628fcc06a10863ef5800d3f0000c04000004040000000c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c0c0000000c10881873ef5800d3f0000f04000004040000000c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0000000c10981873ed280163f0000f04000006040f628fcc000000000ffff7f3f000000000000803f0000000000000000000080bfffffffff0000f040f628fcc076749b3eff800a3ff628fc4000006040f628fcc0000000000000803f000000000000803f0000000000000000000080bffffffffff628fc40f628fcc076749b3ea5c80c3f0000004100006040000000c100000000ffff7f3f000000000000803f0000000000000000000080bfffffffff00000041000000c1d8039a3ef4800d3f0000f04000006040000000c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000000c1d7039a3eff800a3f0000804000004040f628fcc000000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0f628fcc06a10863e2381013f0000804000004040000000c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0000000c10881873e2381013f0000c04000006040f628fcc0000000000000803f000000000000803f0000000000000000000080bfffffffff0000c040f628fcc075749b3e2281013f0000f04000006040f628fcc0000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040f628fcc076749b3eff800a3f0000c04000006040000000c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000c040000000c1d7039a3e2281013f14ae074000004040f628fcc000000000000080bf00000000000080bf0000000000000000000080bfffffffff14ae07c0f628fcc06a10863e4173ec3e0000004000004040000000c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c0000000c10881873ea302eb3e0000804000006040f628fcc0000000000000803f000000000000803f0000000000000000000080bfffffffff00008040f628fcc075749b3ea102eb3e0000804000006040000000c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000000c1d7039a3ea102eb3e14ae074000004040f628fcc000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff14ae07c0f628fcc06a10863e4173ec3e14ae0740000040400000f0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff14ae07c00000f0c02081813e4173ec3e00000040000040400000f0c000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff000000c00000f0c02081813ea302eb3e14ae074000006040f628fcc0000000000000803f000000000000803f0000000000000000000080bfffffffff14ae0740f628fcc075749b3e9e73d43e0000004000006040000000c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000040000000c1d6039a3eff02d33e14ae074000004040f628bcc000000000000080bf00000000000080bf0000000000000000000080bfffffffff14ae07c0f628bcc08e215c3e4273ec3e00000040000040400000c0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c00000c0c0cb025f3ea402eb3e00000040000040400000f0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c00000f0c02081813ea302eb3e14ae0740000060400000f0c000000000ffff7f3f000000000000803f0000000000000000000080bfffffffff14ae07400000f0c0c003a03e9f73d43e0000004000006040000000c100000000ffff7f3f000000000000803f0000000000000000000080bfffffffff00000040000000c1d6039a3eff02d33e00000040000060400000f0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000000400000f0c0c003a03e0003d33e0000003f00004040f628bcc000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000bff628bcc08f215c3ee802d93e0000003f000040400000c0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000bf0000c0c0cb025f3ee802d93e14ae074000006040f628bcc0000000000000803f000000000000803f0000000000000000000080bfffffffff14ae0740f628bcc01a74b33e9e73d43e14ae0740000060400000f0c0000000000000803f000000000000803f0000000000000000000080bfffffffff14ae07400000f0c0c003a03e9f73d43e00000040000060400000c0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000000400000c0c07c03b23e0003d33e8ec2f53d00004040f628bcc000000000000080bf00000000000080bf0000000000000000000080bfffffffff8ec2f5bdf628bcc08f215c3e9e73d43e00000000000040400000c0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000000000c0c0cb025f3e0003d33e0000003f00006040f628bcc0000000000000803f000000000000803f0000000000000000000080bfffffffff0000003ff628bcc01674b33e4603c13e0000003f000060400000c0c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f0000c0c07803b23e4703c13e8ec2f53d00004040f628bcc000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff8ec2f5bdf628bcc08f215c3e9e73d43e8fc2f53d000040400000b0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff8fc2f5bd0000b0c0f902533e9e73d43e00000000000040400000b0c000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff000000000000b0c0f902533e0003d33e8ec2f53d00006040f628bcc0000000000000803f000000000000803f0000000000000000000080bfffffffff8ec2f53df628bcc01574b33efc73bc3e00000000000060400000c0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000000000000c0c07703b23e5e03bb3e8fc2f53d00004040000080c000000000000080bf00000000000080bf0000000000000000000080bfffffffff8fc2f5bd000080c085032f3e9e73d43e00000000000040400000b0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000000000b0c0f902533e0003d33e8fc2f53d000060400000b0c000000000ffff7f3f000000000000803f0000000000000000000080bfffffffff8fc2f53d0000b0c06103b83efc73bc3e00000000000060400000c0c000000000ffff7f3f000000000000803f0000000000000000000080bfffffffff000000000000c0c07703b23e5e03bb3e00000000000060400000b0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000000000000b0c06103b83e5d03bb3e8fc2f53d00004040000000c000000000000080bf00000000000080bf0000000000000000000080bfffffffff8fc2f5bd000000c07b08fe3d9e73d43e8fc2f53d00006040000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff8fc2f53d000080c01c03ca3efb73bc3e8fc2f53d000060400000b0c0000000000000803f000000000000803f0000000000000000000080bfffffffff8fc2f53d0000b0c06103b83efc73bc3e0000000000006040000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000080c01c03ca3e5d03bb3e8fc2f53d00004040000000bf00000000000080bf00000000000080bf0000000000000000000080bfffffffff8fc2f5bd000000bf9109b63d9e73d43e0000000000004040000000bf00000000000080bf00000000000080bf0000000000000000000080bfffffffff00000000000000bf9109b63d0003d33e8fc2f53d00006040000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff8fc2f53d000000c0be02e23efb73bc3e0000000000006040000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000000c0be02e23e5d03bb3e8ec2f53d000040408ec2f5bd00000000000080bf00000000000080bf0000000000000000000080bfffffffff8ec2f5bd8ec2f5bd68cca33d9e73d43e00000000000040400000000000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000000000000000ed099e3d0003d33e8fc2f53d00006040000000bf000000000000803f000000000000803f0000000000000000000080bfffffffff8fc2f53d000000bf7802f43efb73bc3e0000000000006040000000bf000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000000bf7802f43e5d03bb3e0000003f000060408fc2f5bd000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f8fc2f5bdc291f83e4603c13e8ec2f53d000060408ec2f5bd000000000000803f000000000000803f0000000000000000000080bfffffffff8ec2f53d8ec2f5bdc291f83efb73bc3e000000000000604000000000000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000000006002fa3e5d03bb3e0000003f0000604000000000000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000000006002fa3e4603c13e0000003f000040408fc2f5bd00000000000080bf00000000000080bf0000000000000000000080bfffffffff000000bf8fc2f5bd68cca33de902d93e0000003f000040400000000000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000bf00000000ed099e3de902d93e00000040000060408fc2f5bd000000000000803f000000000000803f0000000000000000000080bfffffffff000000408fc2f5bdc391f83efe02d33e000000400000604000000000000000000000803f000000000000803f0000000000000000000080bfffffffff00000040000000006102fa3efe02d33e00000040000040408fc2f5bd00000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c08fc2f5bd67cca33da302eb3e00000040000040400000000000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c000000000ec099e3da302eb3e00008040000060408fc2f5bd000000000000803f000000000000803f0000000000000000000080bfffffffff000080408fc2f5bdc691f83e9e02eb3e000080400000604000000000000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000000006502fa3e9e02eb3e00008040000040408fc2f5bd00000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c08fc2f5bd68cca33d2381013f00008040000040400000000000000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c000000000ed099e3d2381013f0ad7c340000060408ec2f5bd000000000000803f000000000000803f0000000000000000000080bfffffffff0ad7c3408ec2f5bdc391f83e7639023f0000c0400000604000000000000000000000803f000000000000803f0000000000000000000080bfffffffff0000c040000000006202fa3e2681013f0ad7c340000040408ec2f5bd00000000000080bf00000000000080bf0000000000000000000080bfffffffff0ad7c3c08ec2f5bd69cca33d44390e3f0000c040000040400000000000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c0c000000000ee099e3df5800d3f0ad7c34000004040ec51384000000000000080bf00000000000080bf0000000000000000000080bfffffffff0ad7c3c0ec513840a4741e3c44390e3f0000c040000040400000404000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c0c000004040afc1e03bf5800d3f0000f04000006040ec51384000000000ffff7f3f000000000000803f0000000000000000000080bfffffffff0000f040ec5138409a480e3ffe800a3f0ad7c34000006040ec513840000000000000803f000000000000803f0000000000000000000080bfffffffff0ad7c340ec51384099480e3f6c39023f0000c040000060400000404000000000ffff7f3f000000000000803f0000000000000000000080bfffffffff0000c04000004040e9000f3f1d81013f0000f0400000604000004040000000000000803f000000000000803f0000000000000000000080bfffffffff0000f04000004040e9000f3ffe800a3f0000c0400000604000004040000000000000803f000000000000803f0000000000000000000080bfffffffff0000c04000004040e9000f3f1d81013f0ad7c34000004040ec51384000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff0ad7c3c0ec513840a4741e3c44390e3f0000f04000004040ec51384000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0ec513840ac741e3cd280163f0000f040000040400000404000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff0000f0c000004040c3c1e03bd280163f0000f04000006040ec513840000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040ec5138409a480e3ffe800a3f0000f040000040400000404000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c000004040c3c1e03bd280163f0000004100008040000080c00000000000000000000080bf000080bf00000000000000000000803fffffffff000000c19a99814048ca6d3f6d0c473f0000f04000008040000080c00000000000000000000080bf000080bf00000000000000000000803fffffffff0000f0c09a9981403cca703f6d0c473f0000f04000009040000080c00000000000000000000080bf000080bf00000000000000000000803fffffffff0000f0c0000090403cca703f610c4a3f0000004100009040000080c00000000000000000000080bf000080bf00000000000000000000803fffffffff000000c10000904048ca6d3f620c4a3f0000c04000008040000000c000000000000000000000803f0000803f00000000000000000000803fffffffff0000c0409a9981402341693f2760203d0000f04000008040000000c000000000000000000000803f0000803f00000000000000000000803fffffffff0000f0409a9981400041723f2760203d0000f04000009040000000c000000000000000000000803f0000803f00000000000000000000803fffffffff0000f040000090400041723f6f5f503d0000c04000009040000000c000000000000000000000803f0000803f00000000000000000000803fffffffff0000c040000090402341693f6e5f503d0000004100008040000000c00000803f00000000000000000000000000000000000080bf0000803fffffffff000000409a9981407185fa3e73093f3f0000004100008040000080c00000803f00000000000000000000000000000000000080bf0000803fffffffff000080409a9981408a42093f73093f3f0000004100009040000080c00000803f00000000000000000000000000000000000080bf0000803fffffffff00008040000090408a42093f6709423f0000004100009040000000c00000803f00000000000000000000000000000000000080bf0000803fffffffff00000040000090407185fa3e6709423f0000004100008040000000c000000000000000000000803f0000803f00000000000000000000803fffffffff000000419a998140f540753f2760203d0000004100009040000000c000000000000000000000803f0000803f00000000000000000000803fffffffff0000004100009040f540753f6e5f503d0000c04000008040000080c00000000000000000000080bf000080bf00000000000000000000803fffffffff0000c0c09a9981401aca793f6d0c473f0000c04000009040000080c00000000000000000000080bf000080bf00000000000000000000803fffffffff0000c0c0000090401aca793f620c4a3f0000804000008040000000c000000000000000000000803f0000803f00000000000000000000803fffffffff000080409a99814050415d3f2860203d0000804000009040000000c000000000000000000000803f0000803f00000000000000000000803fffffffff000080400000904050415d3f6e5f503d0000c040000080400000c0c00000000000000000000080bf000080bf00000000000000000000803fffffffff0000c0c069918140f3c4363f24da763f00008040000080400000c0c00000000000000000000080bf000080bf00000000000000000000803fffffffff000080c069918140c5c4423f24da763f00008040000090400000c0c00000000000000000000080bf000080bf00000000000000000000803fffffffff000080c000009040c5c4423f18da793f0000c040000090400000c0c00000000000000000000080bf000080bf00000000000000000000803fffffffff0000c0c000009040f3c4363f18da793f0000004000008040000000c000000000000000000000803f0000803f00000000000000000000803fffffffff000000409a9981407e41513f2960203d0000004000009040000000c000000000000000000000803f0000803f00000000000000000000803fffffffff00000040000090407e41513f6e5f503d0000804000008040000080c00000000000000000000080bf000080bf00000000000000000000803fffffffff000080c09a998140f3c4363fa11b7a3f0000004000008040000080c00000000000000000000080bf000080bf00000000000000000000803fffffffff000000c09a998140c5c4423fa11b7a3f0000004000009040000080c00000000000000000000080bf000080bf00000000000000000000803fffffffff000000c000009040c5c4423f961b7d3f0000804000009040000080c00000000000000000000080bf000080bf00000000000000000000803fffffffff000080c000009040f3c4363f961b7d3f00008040000080400000c0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000c0c0699181403706493feb4d4a3f00008040000080400000b0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000b0c0699181402b064c3feb4d4a3f00008040000090400000b0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000b0c0000090402b064c3fe04d4d3f00008040000090400000c0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000c0c0000090403706493fdf4d4d3f0000c040000080400000b0c00000803f00000000000000000000000000000000000080bf0000803fffffffff0000b040699181408e42093f0bc5303f0000c040000080400000c0c00000803f00000000000000000000000000000000000080bf0000803fffffffff0000c0406991814082420c3f0bc5303f0000c040000090400000c0c00000803f00000000000000000000000000000000000080bf0000803fffffffff0000c0400000904083420c3fffc4333f0000c040000090400000b0c00000803f00000000000000000000000000000000000080bf0000803fffffffff0000b040000090408e42093fffc4333f0000004000008040000080c0000080bf000000000000000000000000000000000000803f0000803fffffffff000080c09a9981402ec76e3fd886203f0000004000008040000000c0000080bf000000000000000000000000000000000000803f0000803fffffffff000000c09a99814000c77a3fd886203f0000004000009040000000c0000080bf000000000000000000000000000000000000803f0000803fffffffff000000c00000904000c77a3fcc86233f0000004000009040000080c0000080bf000000000000000000000000000000000000803f0000803fffffffff000080c0000090402ec76e3fcc86233f00008040000040400000003f00000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c00000003f4b0a863d2381013f00000040000040400000003f00000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c00000003f4b0a863da402eb3e00000041000040400000504000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c1000050406f12833ac780193f0000f040000040400000504000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0000050408712833ad280163f0000244100004040000000bf00000000000080bf00000000000080bf0000000000000000000080bfffffffff000024c1000000bf9109b63d9200273f00002441000040400000000000000000000080bf00000000000080bf0000000000000000000080bfffffffff000024c100000000ec099e3d9200273f0000244100004040000080c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000024c1000080c084032f3e9200273f0000244100004040000000c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000024c1000000c07b08fe3d9200273f0000f04000008040cdcc7cc000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff0000f0c0cdcc7cc0d902dc3ee8d2503f0000f04000008040000080c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0000080c0da02dc3e1c86503f0000004100008040000080c000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff000000c1000080c0c202e23e1c86503f6666fe4000008040cdcc7cc000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff6666fec0cdcc7cc02b69e13ee8d2503f6666fe4000008040cdcc7cc000000000000080bf00000000000080bf0000000000000000000080bfffffffff6666fec0cdcc7cc02b69e13ee8d2503f0000004100008040000080c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c1000080c0c202e23e1c86503f0000004100008040000000c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c1000000c0c202e23eef855c3f6666fe4000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff6666fec0333303c02a69e13e23395c3f6666fe4000008040333303c000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff6666fec0333303c02a69e13e23395c3f0000f04000008040000000c000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff0000f0c0000000c0d902dc3eee855c3f0000f04000008040333303c000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff0000f0c0333303c0d902dc3e22395c3f00008040000090400000b0c0000080bf0000000000000000000000005b6a943c3ef57f3f0000803fffffffff0000b0c0000090402b064c3fe04d4d3f0000804000008040310880c0000080bf000000000000000000000000c3e7453c38fb7f3f0000803fffffffff310880c0000080407f04553feb4d4a3f0000804000009040000080c0000080bf000000000000000000000000000000000000803f0000803fffffffff000080c0000090400806553fdf4d4d3f0000804000008040000080c0000080bf000000000000000000000000000000000000803f0000803fffffffff000080c0000080400806553feb4d4a3f00008040000080400000b0c0000080bf000000000000000000000000aa57143d01d57f3f0000803fffffffff0000b0c0699181402b064c3feb4d4a3f0000c04000008040310880c00000803f000000000000000000000000c3e745bc38fb7fbf0000803fffffffff31088040000080403a44003f0bc5303f0000c040000080400000b0c00000803f000000000000000000000000aa5714bd01d57fbf0000803fffffffff0000b040699181408e42093f0bc5303f0000c040000090400000b0c00000803f0000000000000000000000005b6a94bc3ef57fbf0000803fffffffff0000b040000090408e42093fffc4333f0000c04000009040000080c00000803f00000000000000000000000000000000000080bf0000803fffffffff0000804000009040b142003fffc4333f0000c04000008040000080c00000803f00000000000000000000000000000000000080bf0000803fffffffff0000804000008040b042003f0cc5303fcccc6040000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffffcccc60409a996dc0fa29ac3eaf3f523fcdcc604000008040cdcc7cc000000000ffff7fbf000000000000803f00000000000000000000803fffffffffcdcc6040cdcc7cc0fa29ac3ee8d2503f66667040000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff666670409a996dc0bc16af3eaf3f523f6666704000008040cdcc7cc000000000000080bf000000000000803f00000000000000000000803fffffffff66667040cdcc7cc0bd16af3ee8d2503fcccc60400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffffcccc604066665ec0fa29ac3e77ac533f66667040000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff666670409a996dc0bc16af3eaf3f523f666670400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff6666704066665ec0bc16af3e77ac533fcccc6040000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffffcccc60409a996dc0fa29ac3eaf3f523f9a994140000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff9a9941409a996dc07650a63eaf3f523f3433514000008040cdcc7cc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff34335140cdcc7cc0373da93ee8d2503f34335140000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff343351409a996dc0373da93eaf3f523f9a99414000008040cdcc7cc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff9a994140cdcc7cc07650a63ee8d2503f333351400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff3333514066665ec0373da93e76ac533f9a9941400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff9a99414066665ec07650a63e76ac533f9a994140000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff9a9941409a996dc07650a63eaf3f523f34335140000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff343351409a996dc0373da93eaf3f523f333351400000804033334fc000000000000080bf000000000000803f00000000000000000000803fffffffff3333514033334fc0373da93e3e19553f9a9941400000804033334fc000000000000080bf000000000000803f00000000000000000000803fffffffff9a99414033334fc07650a63e3e19553f9a99414000008040000040c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff9a994140000040c07650a63e0586563f333351400000804033334fc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff3333514033334fc0373da93e3e19553f3433514000008040000040c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff34335140000040c0383da93e0586563fcccc60400000804033334fc000000000ffff7fbf000000000000803f00000000000000000000803fffffffffcccc604033334fc0fa29ac3e3f19553fcccc60400000804066665ec000000000ffff7fbf000000000000803f00000000000000000000803fffffffffcccc604066665ec0fa29ac3e77ac533f666670400000804034334fc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff6666704034334fc0bc16af3e3f19553fcdcc604000008040000040c000000000000080bf000000000000803f00000000000000000000803fffffffffcdcc6040000040c0fa29ac3e0686563f666670400000804034334fc000000000000080bf000000000000803f00000000000000000000803fffffffff6666704034334fc0bc16af3e3f19553f6666704000008040000040c000000000000080bf000000000000803f00000000000000000000803fffffffff66667040000040c0bb16af3e0686563f66662240000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff666622409a996dc0f076a03eaf3f523f0000324000008040cdcc7cc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff00003240cdcc7cc0b163a33ee8d2503f00003240000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff000032409a996dc0b263a33eaf3f523f6666224000008040cdcc7cc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff66662240cdcc7cc0ef76a03ee8d2503f666622400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff6666224066665ec0f076a03e77ac533f00003240000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff000032409a996dc0b263a33eaf3f523f000032400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff0000324066665ec0b263a33e76ac533f66662240000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff666622409a996dc0f076a03eaf3f523fcccc1240000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffffcccc12409a996dc02f8a9d3eaf3f523f33330340000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff333303409a996dc06e9d9a3eb03f523f3333034000008040cdcc7cc000000000000080bf000000000000803f00000000000000000000803fffffffff33330340cdcc7cc06d9d9a3ee8d2503fcccc124000008040cdcc7cc000000000000080bf000000000000803f00000000000000000000803fffffffffcccc1240cdcc7cc02f8a9d3ee8d2503fcccc12400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffffcccc124066665ec0308a9d3e77ac533f333303400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff3333034066665ec06e9d9a3e77ac533fcccc12400000804033334fc000000000000080bf000000000000803f00000000000000000000803fffffffffcccc124033334fc0308a9d3e3e19553f333303400000804033334fc000000000000080bf000000000000803f00000000000000000000803fffffffff3333034033334fc06e9d9a3e3f19553fcccc124000008040000040c000000000000080bf000000000000803f00000000000000000000803fffffffffcccc1240000040c0308a9d3e0686563f3333034000008040000040c000000000000080bf000000000000803f00000000000000000000803fffffffff33330340000040c06e9d9a3e0686563f666622400000804033334fc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff6666224033334fc0f176a03e3e19553f000032400000804066665ec000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000324066665ec0b263a33e76ac533f000032400000804033334fc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000324033334fc0b363a33e3e19553f666622400000804066665ec000000000ffff7fbf000000000000803f00000000000000000000803fffffffff6666224066665ec0f076a03e77ac533f6666224000008040000040c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff66662240000040c0f176a03e0586563f0000324000008040000040c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff00003240000040c0b363a33e0586563f6666224000008040cdcc30c000000000000080bf000000000000803f00000000000000000000803fffffffff66662240cdcc30c0f276a03ecdf2573f0000324000008040000040c000000000000080bf000000000000803f00000000000000000000803fffffffff00003240000040c0b363a33e0586563f0000324000008040cccc30c000000000000080bf000000000000803f00000000000000000000803fffffffff00003240cccc30c0b463a33eccf2573f66662240000080409a9921c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff666622409a9921c0f276a03e945f593f0000324000008040cccc30c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff00003240cccc30c0b463a33eccf2573f00003240000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffff000032409a9921c0b463a33e945f593f6666224000008040cdcc30c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff66662240cdcc30c0f276a03ecdf2573f3333034000008040cdcc30c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff33330340cdcc30c06e9d9a3ecdf2573fcccc124000008040000040c000000000ffff7fbf000000000000803f00000000000000000000803fffffffffcccc1240000040c0308a9d3e0686563fcccc124000008040cccc30c000000000000080bf000000000000803f00000000000000000000803fffffffffcccc1240cccc30c0308a9d3ecdf2573f33330340000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffff333303409a9921c06f9d9a3e955f593fcccc1240000080409a9921c000000000ffff7fbf000000000000803f00000000000000000000803fffffffffcccc12409a9921c0308a9d3e945f593f3333034000008040cdcc30c000000000000080bf000000000000803f00000000000000000000803fffffffff33330340cdcc30c06e9d9a3ecdf2573f3333034000008040666612c000000000000080bf000000000000803f00000000000000000000803fffffffff33330340666612c06f9d9a3e5ccc5a3f33330340000080409a9921c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff333303409a9921c06f9d9a3e955f593fcccc124000008040676612c000000000ffff7fbf000000000000803f00000000000000000000803fffffffffcccc1240676612c0308a9d3e5bcc5a3fcccc1240000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffffcccc12409a9921c0308a9d3e945f593fcccc124000008040333303c000000000ffff7fbf000000000000803f00000000000000000000803fffffffffcccc1240333303c0318a9d3e23395c3f3333034000008040333303c000000000000080bf000000000000803f00000000000000000000803fffffffff33330340333303c06f9d9a3e23395c3f3333034000008040666612c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff33330340666612c06f9d9a3e5ccc5a3fcccc124000008040676612c000000000000080bf000000000000803f00000000000000000000803fffffffffcccc1240676612c0308a9d3e5bcc5a3f6666224000008040666612c000000000000080bf000000000000803f00000000000000000000803fffffffff66662240666612c0f376a03e5bcc5a3f66662240000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffff666622409a9921c0f276a03e945f593f0000324000008040676612c000000000000080bf000000000000803f00000000000000000000803fffffffff00003240676612c0b463a33e5bcc5a3f00003240000080409a9921c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff000032409a9921c0b463a33e945f593f0000324000008040333303c000000000000080bf000000000000803f00000000000000000000803fffffffff00003240333303c0b563a33e22395c3f6666224000008040333303c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff66662240333303c0f376a03e23395c3fcccc604000008040cdcc30c000000000ffff7fbf000000000000803f00000000000000000000803fffffffffcccc6040cdcc30c0f929ac3ecdf2573f6666704000008040cccc30c000000000000080bf000000000000803f00000000000000000000803fffffffff66667040cccc30c0bb16af3ecdf2573fcccc6040000080409a9921c000000000ffff7fbf000000000000803f00000000000000000000803fffffffffcccc60409a9921c0f929ac3e945f593f6666704000008040cccc30c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff66667040cccc30c0bb16af3ecdf2573f66667040000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffff666670409a9921c0bb16af3e955f593f9a99414000008040cdcc30c000000000000080bf000000000000803f00000000000000000000803fffffffff9a994140cdcc30c07650a63eccf2573f3433514000008040000040c000000000000080bf000000000000803f00000000000000000000803fffffffff34335140000040c0383da93e0586563f3433514000008040cccc30c000000000000080bf000000000000803f00000000000000000000803fffffffff34335140cccc30c0383da93eccf2573f33335140000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffff333351409a9921c0383da93e935f593f9a994140000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffff9a9941409a9921c07650a63e935f593f9a99414000008040666612c000000000000080bf000000000000803f00000000000000000000803fffffffff9a994140666612c07650a63e5bcc5a3f9a994140000080409a9921c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff9a9941409a9921c07650a63e935f593f3333514000008040676612c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff33335140676612c0383da93e5bcc5a3f9a99414000008040333303c000000000000080bf000000000000803f00000000000000000000803fffffffff9a994140333303c07650a63e23395c3f3333514000008040676612c000000000000080bf000000000000803f00000000000000000000803fffffffff33335140676612c0383da93e5bcc5a3f3433514000008040333303c000000000000080bf000000000000803f00000000000000000000803fffffffff34335140333303c0383da93e23395c3fcccc604000008040666612c000000000000080bf000000000000803f00000000000000000000803fffffffffcccc6040666612c0f929ac3e5ccc5a3f6666704000008040666612c000000000000080bf000000000000803f00000000000000000000803fffffffff66667040666612c0ba16af3e5ccc5a3fcccc6040000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffffcccc60409a9921c0f929ac3e945f593fcdcc604000008040333303c000000000ffff7fbf000000000000803f00000000000000000000803fffffffffcdcc6040333303c0f929ac3e23395c3fcccc604000008040666612c000000000ffff7fbf000000000000803f00000000000000000000803fffffffffcccc6040666612c0f929ac3e5ccc5a3f6666704000008040666612c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff66667040666612c0ba16af3e5ccc5a3f6666704000008040333303c000000000000080bf000000000000803f00000000000000000000803fffffffff66667040333303c0ba16af3e23395c3f0000b040000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000b0409a996dc03603c43eaf3f523f0000b84000008040cdcc7cc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000b840cdcc7cc02b03c73ee8d2503f0000b840000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000b8409a996dc02b03c73eaf3f523f0000b04000008040cdcc7cc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000b040cdcc7cc03603c43ee8d2503f0000b0400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff0000b04066665ec03603c43e77ac533f0000b840000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff0000b8409a996dc02b03c73eaf3f523f0000b8400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff0000b84066665ec02b03c73e77ac533f0000b040000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff0000b0409a996dc03603c43eaf3f523f0000a040000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000a0409a996dc04d03be3eaf3f523f0000a84000008040cdcc7cc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000a840cdcc7cc04103c13ee8d2503f0000a840000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000a8409a996dc04103c13eaf3f523f0000a04000008040cdcc7cc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000a040cdcc7cc04d03be3ee8d2503f0000a0400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff0000a04066665ec04d03be3e76ac533f0000a840000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff0000a8409a996dc04103c13eaf3f523f0000a8400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff0000a84066665ec04103c13e76ac533f0000a040000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff0000a0409a996dc04d03be3eaf3f523f0000a0400000804033334fc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000a04033334fc04d03be3e3d19553f0000a8400000804066665ec000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000a84066665ec04103c13e76ac533f0000a8400000804033334fc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000a84033334fc04203c13e3d19553f0000a0400000804066665ec000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000a04066665ec04d03be3e76ac533f0000a04000008040000040c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000a040000040c04d03be3e0586563f0000a84000008040000040c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000a840000040c04203c13e0586563f0000b0400000804033334fc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000b04033334fc03603c43e3e19553f0000b8400000804066665ec000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000b84066665ec02b03c73e77ac533f0000b8400000804033334fc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000b84033334fc02b03c73e3e19553f0000b0400000804066665ec000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000b04066665ec03603c43e77ac533f0000b04000008040000040c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000b040000040c03603c43e0686563f0000b84000008040000040c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000b840000040c02b03c73e0686563f00009040000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff000090409a996dc06203b83eb03f523f0000984000008040cdcc7cc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff00009840cdcc7cc05603bb3ee8d2503f00009840000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff000098409a996dc05703bb3eaf3f523f0000904000008040cdcc7cc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff00009040cdcc7cc06203b83ee8d2503f000090400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff0000904066665ec06203b83e77ac533f00009840000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff000098409a996dc05703bb3eaf3f523f000098400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff0000984066665ec05703bb3e77ac533f00009040000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff000090409a996dc06203b83eb03f523f00008040000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff000080409a996dc07b03b23eb03f523f0000884000008040cdcc7cc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff00008840cdcc7cc06f03b53ee9d2503f00008840000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff000088409a996dc06f03b53eb03f523f0000804000008040cdcc7cc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff00008040cdcc7cc07b03b23ee9d2503f000080400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff0000804066665ec07b03b23e77ac533f00008840000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff000088409a996dc06f03b53eb03f523f000088400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff0000884066665ec06f03b53e77ac533f00008040000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff000080409a996dc07b03b23eb03f523f000080400000804033334fc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000804033334fc07a03b23e3e19553f000088400000804066665ec000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000884066665ec06f03b53e77ac533f000088400000804033334fc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000884033334fc06f03b53e3e19553f000080400000804066665ec000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000804066665ec07b03b23e77ac533f0000804000008040000040c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff00008040000040c07a03b23e0586563f0000884000008040000040c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff00008840000040c06f03b53e0586563f000090400000804033334fc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000904033334fc06303b83e3e19553f000098400000804066665ec000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000984066665ec05703bb3e77ac533f000098400000804033334fc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000984033334fc05703bb3e3e19553f000090400000804066665ec000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000904066665ec06203b83e77ac533f0000904000008040000040c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff00009040000040c06303b83e0586563f0000984000008040000040c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff00009840000040c05803bb3e0586563f0000904000008040cdcc30c000000000000080bf000000000000803f00000000000000000000803fffffffff00009040cdcc30c06303b83ecdf2573f0000984000008040000040c000000000000080bf000000000000803f00000000000000000000803fffffffff00009840000040c05803bb3e0586563f0000984000008040cccc30c000000000000080bf000000000000803f00000000000000000000803fffffffff00009840cccc30c05803bb3eccf2573f00009040000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffff000090409a9921c06403b83e945f593f00009840000080409a9921c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff000098409a9921c05803bb3e945f593f0000904000008040cdcc30c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff00009040cdcc30c06303b83ecdf2573f0000804000008040cdcc30c000000000000080bf000000000000803f00000000000000000000803fffffffff00008040cdcc30c07a03b23eccf2573f0000884000008040000040c000000000000080bf000000000000803f00000000000000000000803fffffffff00008840000040c06f03b53e0586563f0000884000008040cccc30c000000000000080bf000000000000803f00000000000000000000803fffffffff00008840cccc30c06f03b53eccf2573f00008040000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffff000080409a9921c07a03b23e945f593f00008840000080409a9921c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff000088409a9921c06f03b53e945f593f0000804000008040cdcc30c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff00008040cdcc30c07a03b23eccf2573f0000804000008040666612c000000000000080bf000000000000803f00000000000000000000803fffffffff00008040666612c07a03b23e5bcc5a3f0000884000008040676612c000000000000080bf000000000000803f00000000000000000000803fffffffff00008840676612c06f03b53e5bcc5a3f0000884000008040333303c000000000000080bf000000000000803f00000000000000000000803fffffffff00008840333303c06f03b53e23395c3f0000804000008040333303c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff00008040333303c07a03b23e23395c3f0000904000008040666612c000000000000080bf000000000000803f00000000000000000000803fffffffff00009040666612c06403b83e5bcc5a3f0000984000008040676612c000000000000080bf000000000000803f00000000000000000000803fffffffff00009840676612c05903bb3e5bcc5a3f0000984000008040333303c000000000000080bf000000000000803f00000000000000000000803fffffffff00009840333303c05903bb3e22395c3f0000904000008040333303c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff00009040333303c06403b83e23395c3f0000b04000008040cdcc30c000000000000080bf000000000000803f00000000000000000000803fffffffff0000b040cdcc30c03603c43ecdf2573f0000b84000008040000040c000000000000080bf000000000000803f00000000000000000000803fffffffff0000b840000040c02b03c73e0686563f0000b84000008040cccc30c000000000000080bf000000000000803f00000000000000000000803fffffffff0000b840cccc30c02b03c73ecdf2573f0000b040000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffff0000b0409a9921c03703c43e945f593f0000b840000080409a9921c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000b8409a9921c02b03c73e945f593f0000b04000008040cdcc30c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000b040cdcc30c03603c43ecdf2573f0000a04000008040cdcc30c000000000000080bf000000000000803f00000000000000000000803fffffffff0000a040cdcc30c04d03be3eccf2573f0000a84000008040000040c000000000000080bf000000000000803f00000000000000000000803fffffffff0000a840000040c04203c13e0586563f0000a84000008040cccc30c000000000000080bf000000000000803f00000000000000000000803fffffffff0000a840cccc30c04203c13eccf2573f0000a040000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffff0000a0409a9921c04d03be3e935f593f0000a840000080409a9921c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000a8409a9921c04203c13e935f593f0000a04000008040cdcc30c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000a040cdcc30c04d03be3eccf2573f0000a04000008040666612c000000000000080bf000000000000803f00000000000000000000803fffffffff0000a040666612c04d03be3e5bcc5a3f0000a84000008040676612c000000000000080bf000000000000803f00000000000000000000803fffffffff0000a840676612c04203c13e5bcc5a3f0000a84000008040333303c000000000000080bf000000000000803f00000000000000000000803fffffffff0000a840333303c04303c13e22395c3f0000a04000008040333303c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000a040333303c04d03be3e22395c3f0000b04000008040666612c000000000000080bf000000000000803f00000000000000000000803fffffffff0000b040666612c03703c43e5bcc5a3f0000b84000008040676612c000000000000080bf000000000000803f00000000000000000000803fffffffff0000b840676612c02b03c73e5bcc5a3f0000b84000008040333303c000000000000080bf000000000000803f00000000000000000000803fffffffff0000b840333303c02b03c73e22395c3f0000b04000008040333303c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000b040333303c03703c43e22395c3f6666fe4000008040333303c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff6666fe40333303c02a69e13e23395c3f0000f04000008040333303c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000f040333303c0d902dc3e22395c3f0000f04000008040666612c000000000000080bf000000000000803f00000000000000000000803fffffffff0000f040666612c0d902dc3e5bcc5a3f0000f040000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffff0000f0409a9921c0d902dc3e945f593f0000f04000008040cdcc30c000000000000080bf000000000000803f00000000000000000000803fffffffff0000f040cdcc30c0d902dc3ecdf2573f0000f04000008040000040c000000000000080bf000000000000803f00000000000000000000803fffffffff0000f040000040c0d902dc3e0586563f6666fe4000008040cdcc7cc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff6666fe40cdcc7cc02b69e13ee8d2503f0000f0400000804033334fc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000f04033334fc0d902dc3e3e19553f0000f0400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff0000f04066665ec0d902dc3e77ac533f0000f040000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff0000f0409a996dc0d902dc3eaf3f523f0000f04000008040cdcc7cc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000f040cdcc7cc0d902dc3ee8d2503f0000ea40000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff0000ea409a996dc0e2c2d93eaf3f523f0000e440000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff0000e4409a996dc0eb82d73eaf3f523f0000e44000008040cdcc7cc000000000000080bf000000000000803f00000000000000000000803fffffffff0000e440cdcc7cc0eb82d73ee8d2503f0000ea4000008040cdcc7cc000000000000080bf000000000000803f00000000000000000000803fffffffff0000ea40cdcc7cc0e2c2d93ee8d2503f0000e4400000804066665ec000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000e44066665ec0eb82d73e77ac533f0000ea40000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000ea409a996dc0e2c2d93eaf3f523f0000ea400000804066665ec000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000ea4066665ec0e2c2d93e77ac533f0000e440000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000e4409a996dc0eb82d73eaf3f523f0000de40000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff0000de409a996dc0f342d53eaf3f523f0000d840000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff0000d8409a996dc0fc02d33eaf3f523f0000d84000008040cdcc7cc000000000000080bf000000000000803f00000000000000000000803fffffffff0000d840cdcc7cc0fc02d33ee8d2503f0000de4000008040cdcc7cc000000000000080bf000000000000803f00000000000000000000803fffffffff0000de40cdcc7cc0f342d53ee8d2503f0000d8400000804066665ec000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000d84066665ec0fc02d33e77ac533f0000de40000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000de409a996dc0f342d53eaf3f523f0000de400000804066665ec000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000de4066665ec0f342d53e76ac533f0000d840000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000d8409a996dc0fc02d33eaf3f523f0000de400000804033334fc000000000000080bf000000000000803f00000000000000000000803fffffffff0000de4033334fc0f342d53e3e19553f0000d8400000804033334fc000000000000080bf000000000000803f00000000000000000000803fffffffff0000d84033334fc0fc02d33e3e19553f0000d8400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff0000d84066665ec0fc02d33e77ac533f0000de400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff0000de4066665ec0f342d53e76ac533f0000de4000008040000040c000000000000080bf000000000000803f00000000000000000000803fffffffff0000de40000040c0f342d53e0586563f0000d84000008040000040c000000000000080bf000000000000803f00000000000000000000803fffffffff0000d840000040c0fc02d33e0586563f0000ea400000804033334fc000000000000080bf000000000000803f00000000000000000000803fffffffff0000ea4033334fc0e2c2d93e3e19553f0000e4400000804033334fc000000000000080bf000000000000803f00000000000000000000803fffffffff0000e44033334fc0eb82d73e3e19553f0000e4400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff0000e44066665ec0eb82d73e77ac533f0000ea400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff0000ea4066665ec0e2c2d93e77ac533f0000ea4000008040000040c000000000000080bf000000000000803f00000000000000000000803fffffffff0000ea40000040c0e2c2d93e0586563f0000e44000008040000040c000000000000080bf000000000000803f00000000000000000000803fffffffff0000e440000040c0eb82d73e0586563f0000d240000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff0000d2409a996dc004c3d03eaf3f523f0000cc40000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff0000cc409a996dc00d83ce3eaf3f523f0000cc4000008040cdcc7cc000000000000080bf000000000000803f00000000000000000000803fffffffff0000cc40cdcc7cc00d83ce3ee8d2503f0000d24000008040cdcc7cc000000000000080bf000000000000803f00000000000000000000803fffffffff0000d240cdcc7cc004c3d03ee8d2503f0000cc400000804066665ec000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000cc4066665ec00d83ce3e77ac533f0000d240000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000d2409a996dc004c3d03eaf3f523f0000d2400000804066665ec000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000d24066665ec004c3d03e77ac533f0000cc40000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000cc409a996dc00d83ce3eaf3f523f0000c640000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff0000c6409a996dc01643cc3eaf3f523f0000c040000080409a996dc000000000000080bf000000000000803f00000000000000000000803fffffffff0000c0409a996dc01f03ca3eaf3f523f0000c04000008040cdcc7cc000000000000080bf000000000000803f00000000000000000000803fffffffff0000c040cdcc7cc02003ca3ee8d2503f0000c64000008040cdcc7cc000000000000080bf000000000000803f00000000000000000000803fffffffff0000c640cdcc7cc01643cc3ee8d2503f0000c0400000804066665ec000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000c04066665ec01f03ca3e77ac533f0000c640000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000c6409a996dc01643cc3eaf3f523f0000c6400000804066665ec000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000c64066665ec01643cc3e77ac533f0000c040000080409a996dc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000c0409a996dc01f03ca3eaf3f523f0000c6400000804033334fc000000000000080bf000000000000803f00000000000000000000803fffffffff0000c64033334fc01643cc3e3e19553f0000c0400000804033334fc000000000000080bf000000000000803f00000000000000000000803fffffffff0000c04033334fc01f03ca3e3e19553f0000c0400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff0000c04066665ec01f03ca3e77ac533f0000c6400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff0000c64066665ec01643cc3e77ac533f0000c64000008040000040c000000000000080bf000000000000803f00000000000000000000803fffffffff0000c640000040c01643cc3e0586563f0000c04000008040000040c000000000000080bf000000000000803f00000000000000000000803fffffffff0000c040000040c01e03ca3e0586563f0000d2400000804033334fc000000000000080bf000000000000803f00000000000000000000803fffffffff0000d24033334fc004c3d03e3e19553f0000cc400000804033334fc000000000000080bf000000000000803f00000000000000000000803fffffffff0000cc4033334fc00d83ce3e3e19553f0000cc400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff0000cc4066665ec00d83ce3e77ac533f0000d2400000804066665ec000000000000080bf000000000000803f00000000000000000000803fffffffff0000d24066665ec004c3d03e77ac533f0000d24000008040000040c000000000000080bf000000000000803f00000000000000000000803fffffffff0000d240000040c004c3d03e0586563f0000cc4000008040000040c000000000000080bf000000000000803f00000000000000000000803fffffffff0000cc40000040c00d83ce3e0586563f0000cc4000008040cdcc30c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000cc40cdcc30c00d83ce3eccf2573f0000d24000008040000040c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000d240000040c004c3d03e0586563f0000d24000008040cccc30c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000d240cccc30c004c3d03eccf2573f0000cc40000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffff0000cc409a9921c00d83ce3e945f593f0000d24000008040cccc30c000000000000080bf000000000000803f00000000000000000000803fffffffff0000d240cccc30c004c3d03eccf2573f0000d240000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffff0000d2409a9921c004c3d03e945f593f0000cc4000008040cdcc30c000000000000080bf000000000000803f00000000000000000000803fffffffff0000cc40cdcc30c00d83ce3eccf2573f0000c04000008040cdcc30c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000c040cdcc30c01e03ca3eccf2573f0000c64000008040000040c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000c640000040c01643cc3e0586563f0000c64000008040cccc30c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000c640cccc30c01643cc3ecdf2573f0000c040000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffff0000c0409a9921c01e03ca3e945f593f0000c64000008040cccc30c000000000000080bf000000000000803f00000000000000000000803fffffffff0000c640cccc30c01643cc3ecdf2573f0000c640000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffff0000c6409a9921c01543cc3e945f593f0000c04000008040cdcc30c000000000000080bf000000000000803f00000000000000000000803fffffffff0000c040cdcc30c01e03ca3eccf2573f0000c04000008040666612c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000c040666612c01e03ca3e5bcc5a3f0000c040000080409a9921c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000c0409a9921c01e03ca3e945f593f0000c64000008040676612c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000c640676612c01543cc3e5bcc5a3f0000c64000008040333303c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000c640333303c01543cc3e22395c3f0000c04000008040333303c000000000000080bf000000000000803f00000000000000000000803fffffffff0000c040333303c01e03ca3e22395c3f0000cc4000008040666612c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000cc40666612c00d83ce3e5bcc5a3f0000cc40000080409a9921c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000cc409a9921c00d83ce3e945f593f0000d24000008040676612c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000d240676612c004c3d03e5bcc5a3f0000d24000008040333303c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000d240333303c004c3d03e22395c3f0000cc4000008040333303c000000000000080bf000000000000803f00000000000000000000803fffffffff0000cc40333303c00d83ce3e22395c3f0000e44000008040cdcc30c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000e440cdcc30c0eb82d73ecdf2573f0000ea4000008040000040c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000ea40000040c0e2c2d93e0586563f0000ea4000008040cccc30c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000ea40cccc30c0e2c2d93ecdf2573f0000e440000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffff0000e4409a9921c0eb82d73e945f593f0000ea4000008040cccc30c000000000000080bf000000000000803f00000000000000000000803fffffffff0000ea40cccc30c0e2c2d93ecdf2573f0000ea40000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffff0000ea409a9921c0e2c2d93e945f593f0000e44000008040cdcc30c000000000000080bf000000000000803f00000000000000000000803fffffffff0000e440cdcc30c0eb82d73ecdf2573f0000d84000008040cdcc30c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000d840cdcc30c0fc02d33eccf2573f0000de4000008040000040c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000de40000040c0f342d53e0586563f0000de4000008040cccc30c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000de40cccc30c0f342d53eccf2573f0000d840000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffff0000d8409a9921c0fc02d33e935f593f0000de4000008040cccc30c000000000000080bf000000000000803f00000000000000000000803fffffffff0000de40cccc30c0f342d53eccf2573f0000de40000080409a9921c000000000000080bf000000000000803f00000000000000000000803fffffffff0000de409a9921c0f342d53e935f593f0000d84000008040cdcc30c000000000000080bf000000000000803f00000000000000000000803fffffffff0000d840cdcc30c0fc02d33eccf2573f0000d84000008040666612c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000d840666612c0fc02d33e5bcc5a3f0000d840000080409a9921c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000d8409a9921c0fc02d33e935f593f0000de4000008040676612c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000de40676612c0f342d53e5bcc5a3f0000de4000008040333303c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000de40333303c0f342d53e22395c3f0000d84000008040333303c000000000000080bf000000000000803f00000000000000000000803fffffffff0000d840333303c0fc02d33e22395c3f0000e44000008040666612c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000e440666612c0eb82d73e5bcc5a3f0000e440000080409a9921c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000e4409a9921c0eb82d73e945f593f0000ea4000008040676612c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000ea40676612c0e2c2d93e5bcc5a3f0000ea4000008040333303c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000ea40333303c0e2c2d93e22395c3f0000e44000008040333303c000000000000080bf000000000000803f00000000000000000000803fffffffff0000e440333303c0eb82d73e22395c3fcccc124000008040cdcc7cc000000000000080bf00000000000080bf0000000000000000000080bfffffffffcccc12c0cdcc7cc02f8a9d3ee8d2503f3333034000008040cdcc7cc000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff333303c0cdcc7cc06d9d9a3ee8d2503f0000004000008040000080c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c0000080c0d6039a3e1c86503f6666224000008040cdcc7cc000000000000080bf00000000000080bf0000000000000000000080bfffffffff666622c0cdcc7cc0ef76a03ee8d2503f0000324000008040cdcc7cc000000000000080bf00000000000080bf0000000000000000000080bfffffffff000032c0cdcc7cc0b163a33ee8d2503f9a99414000008040cdcc7cc000000000000080bf00000000000080bf0000000000000000000080bfffffffff9a9941c0cdcc7cc07650a63ee8d2503f0000804000008040000080c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0000080c08003b23e1c86503f3433514000008040cdcc7cc000000000000080bf00000000000080bf0000000000000000000080bfffffffff343351c0cdcc7cc0373da93ee8d2503fcdcc604000008040cdcc7cc000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffffcdcc60c0cdcc7cc0fa29ac3ee8d2503f6666704000008040cdcc7cc000000000000080bf00000000000080bf0000000000000000000080bfffffffff666670c0cdcc7cc0bd16af3ee8d2503f0000804000008040cdcc7cc000000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0cdcc7cc07b03b23ee9d2503f3333034000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff333303c0333303c06f9d9a3e23395c3f0000004000008040000000c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c0000000c0d8039a3eee855c3f3333034000008040666612c000000000000080bf00000000000080bf0000000000000000000080bfffffffff333303c0666612c06f9d9a3e5ccc5a3f33330340000080409a9921c000000000000080bf00000000000080bf0000000000000000000080bfffffffff333303c09a9921c06f9d9a3e955f593f3333034000008040cdcc30c000000000000080bf00000000000080bf0000000000000000000080bfffffffff333303c0cdcc30c06e9d9a3ecdf2573f3333034000008040000040c000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff333303c0000040c06e9d9a3e0686563f333303400000804033334fc000000000000080bf00000000000080bf0000000000000000000080bfffffffff333303c033334fc06e9d9a3e3f19553f333303400000804066665ec000000000000080bf00000000000080bf0000000000000000000080bfffffffff333303c066665ec06e9d9a3e77ac533f33330340000080409a996dc000000000000080bf00000000000080bf0000000000000000000080bfffffffff333303c09a996dc06e9d9a3eb03f523f0000804000008040000000c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0000000c07a03b23eee855c3f9a99414000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff9a9941c0333303c07650a63e23395c3f0000324000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000032c0333303c0b563a33e22395c3f6666224000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff666622c0333303c0f376a03e23395c3fcccc124000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffffcccc12c0333303c0318a9d3e23395c3f3333034000008040333303c000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff333303c0333303c06f9d9a3e23395c3f3433514000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff343351c0333303c0383da93e23395c3fcdcc604000008040333303c000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffffcdcc60c0333303c0f929ac3e23395c3f6666704000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff666670c0333303c0ba16af3e23395c3f0000804000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0333303c07a03b23e23395c3f0000a04000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000a0c0333303c04d03be3e22395c3f0000c04000008040000000c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c0c0000000c01e03ca3eee855c3f0000a84000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000a8c0333303c04303c13e22395c3f0000b04000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000b0c0333303c03703c43e22395c3f0000b84000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000b8c0333303c02b03c73e22395c3f0000c04000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c0c0333303c01e03ca3e22395c3f0000984000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000098c0333303c05903bb3e22395c3f0000904000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000090c0333303c06403b83e23395c3f0000884000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000088c0333303c06f03b53e23395c3f0000c64000008040cdcc7cc000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c6c0cdcc7cc01643cc3ee8d2503f0000c04000008040cdcc7cc000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c0c0cdcc7cc02003ca3ee8d2503f0000c04000008040000080c000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff0000c0c0000080c01f03ca3e1d86503f0000cc4000008040cdcc7cc000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000ccc0cdcc7cc00d83ce3ee8d2503f0000d24000008040cdcc7cc000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000d2c0cdcc7cc004c3d03ee8d2503f0000d84000008040cdcc7cc000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff0000d8c0cdcc7cc0fc02d33ee8d2503f0000f04000008040000080c000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff0000f0c0000080c0da02dc3e1c86503f0000de4000008040cdcc7cc000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000dec0cdcc7cc0f342d53ee8d2503f0000e44000008040cdcc7cc000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000e4c0cdcc7cc0eb82d73ee8d2503f0000ea4000008040cdcc7cc000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000eac0cdcc7cc0e2c2d93ee8d2503f0000f04000008040cdcc7cc000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0cdcc7cc0d902dc3ee8d2503f0000c04000008040000000c000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff0000c0c0000000c01e03ca3eee855c3f0000d84000008040333303c000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff0000d8c0333303c0fc02d33e22395c3f0000de4000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000dec0333303c0f342d53e22395c3f0000e44000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000e4c0333303c0eb82d73e22395c3f0000ea4000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000eac0333303c0e2c2d93e22395c3f0000f04000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0333303c0d902dc3e22395c3f0000d24000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000d2c0333303c004c3d03e22395c3f0000cc4000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000ccc0333303c00d83ce3e22395c3f0000c64000008040333303c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c6c0333303c01543cc3e22395c3f0000884000008040cdcc7cc000000000000080bf000000000000803f00000000000000000000803fffffffff00008840cdcc7cc06f03b53ee9d2503f0000804000008040cdcc7cc000000000000080bf000000000000803f00000000000000000000803fffffffff00008040cdcc7cc07b03b23ee9d2503f0000804000008040310880c000000000000080bf000000000000803f00000000000000000000803fffffffff00008040310880c07b03b23e9484503f0000904000008040cdcc7cc000000000000080bf000000000000803f00000000000000000000803fffffffff00009040cdcc7cc06203b83ee8d2503f0000984000008040cdcc7cc000000000000080bf000000000000803f00000000000000000000803fffffffff00009840cdcc7cc05603bb3ee8d2503f0000a04000008040cdcc7cc000000000000080bf000000000000803f00000000000000000000803fffffffff0000a040cdcc7cc04d03be3ee8d2503f0000c04000008040310880c000000000000080bf000000000000803f00000000000000000000803fffffffff0000c040310880c02103ca3e9384503f0000a84000008040cdcc7cc000000000000080bf000000000000803f00000000000000000000803fffffffff0000a840cdcc7cc04103c13ee8d2503f0000b04000008040cdcc7cc000000000000080bf000000000000803f00000000000000000000803fffffffff0000b040cdcc7cc03603c43ee8d2503f0000b84000008040cdcc7cc000000000000080bf000000000000803f00000000000000000000803fffffffff0000b840cdcc7cc02b03c73ee8d2503ffebdf34000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bffffffffffebdf3c00000884057a5383f1b74ae3efebded4000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bffffffffffebdedc000008840522b383fd07db03e0000ea4000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff0000eac0000080406983363fd17db03e0000f04000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c0000080406efd363f1b74ae3efebdf340000088409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d40b776e240fe724a3fa8f3543ffebdf34000008840cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c40b776e2403706493fa8f3543f0000f04000008040cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c40bba1d9403706493fbf4b533f0000f040000080409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d40bba1d940fe724a3fbf4b533ffebded4000008840cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc0e7ebdf4053fd773fd4f54b3ffebded40000088409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc0e7ebdf408c90763fd4f54b3f0000ea40000080409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc0eb16d7408c90763feb4d4a3f0000ea4000008040cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc0eb16d74053fd773feb4d4a3ffebded400000884066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec0e7ebdf40c523753fd4f54b3f0000ea400000804066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec0eb16d740c523753feb4d4a3ffebdf3400000884066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e40b776e240c5df4b3fa8f3543f0000f0400000804066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e40bba1d940c5df4b3fbf4b533ffebdf3400000884033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f40b776e2408d4c4d3fa8f3543f0000f0400000804033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f40bba1d9408d4c4d3fbf4b533ffebded400000884033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc0e7ebdf40fdb6733fd4f54b3f0000ea400000804033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc0eb16d740fdb6733feb4d4a3ffebdf34000008840000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff00004040b776e24054b94e3fa8f3543f0000f04000008040000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff00004040bba1d94054b94e3fbf4b533ffebded4000008840000040c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff000040c0e7ebdf40364a723fd4f54b3f0000ea4000008040000040c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff000040c0eb16d740364a723feb4d4a3ffebded4000008840cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c0e7ebdf406fdd703fd4f54b3f0000ea4000008040cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c0eb16d7406fdd703feb4d4a3ffebdf34000008840cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc3040b776e2401b26503fa8f3543f0000f04000008040cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc3040bba1d9401b26503fbf4b533ffebdf340000088409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a992140b776e240e292513fa8f3543f0000f040000080409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a992140bba1d940e292513fbf4b533ffebded40000088409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c0e7ebdf40a8706f3fd4f54b3f0000ea40000080409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c0eb16d740a8706f3feb4d4a3ffebded4000008840676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c0e7ebdf40e0036e3fd4f54b3f0000ea4000008040676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c0eb16d740e0036e3feb4d4a3ffebdf34000008840666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66661240b776e240aaff523fa8f3543f0000f04000008040666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66661240bba1d940aaff523fbf4b533ffebded4000008840333303c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff333303c0e7ebdf4019976c3fd4f54b3f0000ea4000008040333303c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff333303c0eb16d74019976c3feb4d4a3ffebdf34000008840333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33330340b776e240716c543fa8f3543f0000f04000008040333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33330340bba1d940716c543fbf4b533ffebded4000008840333303c00000000000000000000080bf0000803f0000000000000000000080bffffffffffebded40000088406efd363f2924b83efebdf34000008840333303c00000000000000000000080bf0000803f0000000000000000000080bffffffffffebdf340000088406983363f741ab63e0000f04000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff0000f04000008040522b383f741ab63e0000ea4000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff0000ea400000804057a5383f2a24b83efebde74000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bffffffffffebde7c00000884057a5383fe300b13efebde14000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bffffffffffebde1c000008840522b383f990ab33e0000de4000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff0000dec0000080406983363f990ab33e0000e44000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff0000e4c0000080406efd363fe300b13efebde740000088409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d401761dd40fe724a3f1bdd563ffebde74000008840cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c401761dd403706493f1bdd563f0000e44000008040cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c401b8cd4403706493f3235553f0000e440000080409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d401b8cd440fe724a3f3235553ffebde14000008840cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc047d6da40716c543f52374f3ffebde140000088409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc047d6da40aaff523f52374f3f0000de40000080409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc04b01d240aaff523f698f4d3f0000de4000008040cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc04b01d240716c543f698f4d3ffebde1400000884066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec047d6da40e292513f52374f3f0000de400000804066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec04b01d240e292513f698f4d3ffebde7400000884066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e401761dd40c5df4b3f1bdd563f0000e4400000804066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e401b8cd440c5df4b3f3235553ffebde7400000884033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f401761dd408d4c4d3f1bdd563f0000e4400000804033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f401b8cd4408d4c4d3f3235553ffebde1400000884033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc047d6da401b26503f52374f3f0000de400000804033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc04b01d2401b26503f698f4d3ffebde74000008840000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff000040401761dd4054b94e3f1bdd563f0000e44000008040000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff000040401b8cd44054b94e3f3235553ffebde14000008840000040c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff000040c047d6da4054b94e3f52374f3f0000de4000008040000040c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff000040c04b01d24054b94e3f698f4d3ffebde14000008840cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c047d6da408c4c4d3f52374f3f0000de4000008040cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c04b01d2408c4c4d3f698f4d3ffebde74000008840cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc30401761dd401b26503f1bdd563f0000e44000008040cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc30401b8cd4401b26503f3235553ffebde740000088409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a9921401761dd40e292513f1bdd563f0000e440000080409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a9921401b8cd440e292513f3235553ffebde140000088409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c047d6da40c5df4b3f52374f3f0000de40000080409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c04b01d240c5df4b3f698f4d3ffebde14000008840676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c047d6da40fe724a3f52374f3f0000de4000008040676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c04b01d240fe724a3f698f4d3ffebde74000008840666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff666612401761dd40aaff523f1bdd563f0000e44000008040666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff666612401b8cd440aaff523f3235553ffebde14000008840333303c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff333303c047d6da403706493f52374f3f0000de4000008040333303c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff333303c04b01d2403706493f698f4d3ffebde74000008840333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff333303401761dd40716c543f1bdd563f0000e44000008040333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff333303401b8cd440716c543f3235553ffebde14000008840333303c00000000000000000000080bf0000803f0000000000000000000080bffffffffffebde1400000884075fc783f2e8e1e3efebde74000008840333303c00000000000000000000080bf0000803f0000000000000000000080bffffffffffebde740000088407082783fc27a1a3e0000e44000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff0000e44000008040582a7a3fc27a1a3e0000de4000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff0000de40000080405ea47a3f2e8e1e3efebddb4000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bffffffffffebddbc00000884056e8223f9864b83efebdd54000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bffffffffffebdd5c000008840506e223f4e6eba3e0000d24000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff0000d2c00000804068c6203f4e6eba3e0000d84000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff0000d8c0000080406d40213f9864b83efebddb40000088409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d40784bd840fe724a3f8dc6583ffebddb4000008840cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c40784bd8403706493f8dc6583f0000d84000008040cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c407b76cf403706493fa41e573f0000d840000080409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d407b76cf40fe724a3fa41e573ffebdd54000008840cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc0a8c0d540716c543fe3825e3ffebdd540000088409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc0a8c0d540aaff523fe3825e3f0000d240000080409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc0acebcc40aaff523ffada5c3f0000d24000008040cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc0acebcc40716c543ffada5c3ffebdd5400000884066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec0a8c0d540e292513fe3825e3f0000d2400000804066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec0acebcc40e292513ffada5c3ffebddb400000884066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e40784bd840c5df4b3f8dc6583f0000d8400000804066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e407b76cf40c5df4b3fa41e573ffebddb400000884033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f40784bd8408d4c4d3f8dc6583f0000d8400000804033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f407b76cf408d4c4d3fa41e573ffebdd5400000884033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc0a8c0d5401b26503fe3825e3f0000d2400000804033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc0acebcc401b26503ffada5c3ffebddb4000008840000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff00004040784bd84054b94e3f8dc6583f0000d84000008040000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff000040407b76cf4054b94e3fa41e573ffebdd54000008840000040c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff000040c0a8c0d54054b94e3fe3825e3f0000d24000008040000040c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff000040c0acebcc4054b94e3ffada5c3ffebdd54000008840cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c0a8c0d5408c4c4d3fe3825e3f0000d24000008040cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c0acebcc408c4c4d3ffada5c3ffebddb4000008840cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc3040784bd8401b26503f8dc6583f0000d84000008040cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc30407b76cf401b26503fa41e573ffebddb40000088409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a992140784bd840e292513f8dc6583f0000d840000080409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a9921407b76cf40e292513fa41e573ffebdd540000088409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c0a8c0d540c5df4b3fe3825e3f0000d240000080409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c0acebcc40c5df4b3ffada5c3ffebdd54000008840676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c0a8c0d540fe724a3fe3825e3f0000d24000008040676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c0acebcc40fe724a3ffada5c3ffebddb4000008840666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66661240784bd840aaff523f8dc6583f0000d84000008040666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff666612407b76cf40aaff523fa41e573ffebdd54000008840333303c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff333303c0a8c0d5403706493fe3825e3f0000d24000008040333303c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff333303c0acebcc403706493ffada5c3ffebddb4000008840333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33330340784bd840716c543f8dc6583f0000d84000008040333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff333303407b76cf40716c543fa41e573ffebdd54000008840333303c00000000000000000000080bf0000803f0000000000000000000080bffffffffffebdd540000088406efd363f6197b53efebddb4000008840333303c00000000000000000000080bf0000803f0000000000000000000080bffffffffffebddb40000088406983363fab8db33e0000d84000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff0000d84000008040522b383fab8db33e0000d24000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff0000d2400000804057a5383f6197b53efebdcf4000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bffffffffffebdcfc000008840eae57a3f8560083dfebdc94000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bffffffffffebdc9c000008840e56b7a3f33ae183d0000c64000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff0000c6c000008040fcc3783f33ae183d0000cc4000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff0000ccc000008040013e793f8560083dfebdcf40000088409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d40d835d340496a6d3f52374f3ffebdcf4000008840cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c40d835d34081fd6b3f52374f3f0000cc4000008040cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c40dc60ca4081fd6b3f698f4d3f0000cc40000080409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d40dc60ca40496a6d3f698f4d3ffebdc94000008840cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc008abd0403514603f52374f3ffebdc940000088409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc008abd0406da75e3f52374f3f0000c640000080409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc00cd6c7406da75e3f698f4d3f0000c64000008040cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc00cd6c7403514603f698f4d3ffebdc9400000884066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec008abd040a63a5d3f52374f3f0000c6400000804066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec00cd6c740a63a5d3f698f4d3ffebdcf400000884066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e40d835d34010d76e3f52374f3f0000cc400000804066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e40dc60ca4010d76e3f698f4d3ffebdcf400000884033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f40d835d340d743703f52374f3f0000cc400000804033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f40dc60ca40d743703f698f4d3ffebdc9400000884033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc008abd040dfcd5b3f52374f3f0000c6400000804033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc00cd6c740dfcd5b3f698f4d3ffebdcf4000008840000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff00004040d835d3409fb0713f52374f3f0000cc4000008040000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff00004040dc60ca409fb0713f698f4d3ffebdc94000008840000040c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff000040c008abd04017615a3f52374f3f0000c64000008040000040c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff000040c00cd6c74017615a3f698f4d3ffebdc94000008840cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c008abd04050f4583f52374f3f0000c64000008040cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c00cd6c74050f4583f698f4d3ffebdcf4000008840cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc3040d835d340661d733f52374f3f0000cc4000008040cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc3040dc60ca40661d733f698f4d3ffebdcf40000088409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a992140d835d3402d8a743f52374f3f0000cc40000080409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a992140dc60ca402d8a743f698f4d3ffebdc940000088409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c008abd0408987573f52374f3f0000c640000080409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c00cd6c7408987573f698f4d3ffebdc94000008840676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c008abd040c21a563f52374f3f0000c64000008040676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c00cd6c740c21a563f698f4d3ffebdcf4000008840666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66661240d835d340f5f6753f52374f3f0000cc4000008040666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66661240dc60ca40f5f6753f698f4d3ffebdc94000008840333303c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff333303c008abd040faad543f52374f3f0000c64000008040333303c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff333303c00cd6c740faad543f698f4d3ffebdcf4000008840333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33330340d835d340bc63773f52374f3f0000cc4000008040333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33330340dc60ca40bc63773f698f4d3ffebdc94000008840333303c00000000000000000000080bf0000803f0000000000000000000080bffffffffffebdc9400000884042bc1e3f4d6eba3efebdcf4000008840333303c00000000000000000000080bf0000803f0000000000000000000080bffffffffffebdcf40000088403d421e3f9864b83e0000cc4000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff0000cc400000804026ea1f3f9864b83e0000c64000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff0000c640000080402b64203f4d6eba3efebdc34000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bffffffffffebdc3c000008840858e7f3f9226833dfebdbb4000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bffffffffffebdbbc000008840d3eb7e3f06058e3d0000b84000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff0000b8c000008040ea437d3f06058e3d0000c04000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff0000c0c0000080409ce67d3f9226833dfebdbb4000008840cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc078bcca40716c543f556c603ffebdbb40000088409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc078bcca40aaff523f556c603f0000b840000080409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc07ce7c140aaff523f6cc45e3f0000b84000008040cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc07ce7c140716c543f6cc45e3ffebdc340000088409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d403820ce40fe724a3fffaf5a3ffebdc34000008840cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c403820ce403706493fffaf5a3f0000c04000008040cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c403c4bc5403706493f1608593f0000c040000080409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d403c4bc540fe724a3f1608593ffebdbb400000884066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec078bcca40e292513f556c603f0000b8400000804066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec07ce7c140e292513f6cc45e3ffebdc3400000884066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e403820ce40c5df4b3fffaf5a3f0000c0400000804066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e403c4bc540c5df4b3f1608593ffebdbb400000884033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc078bcca401b26503f556c603f0000b8400000804033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc07ce7c1401b26503f6cc45e3ffebdc3400000884033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f403820ce408d4c4d3fffaf5a3f0000c0400000804033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f403c4bc5408d4c4d3f1608593ffebdbb4000008840000040c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff000040c078bcca4054b94e3f556c603f0000b84000008040000040c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff000040c07ce7c14054b94e3f6cc45e3ffebdc34000008840000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff000040403820ce4054b94e3fffaf5a3f0000c04000008040000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff000040403c4bc54054b94e3f1608593ffebdbb4000008840cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c078bcca408c4c4d3f556c603f0000b84000008040cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c07ce7c1408c4c4d3f6cc45e3ffebdc34000008840cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc30403820ce401b26503fffaf5a3f0000c04000008040cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc30403c4bc5401b26503f1608593ffebdc340000088409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a9921403820ce40e292513fffaf5a3f0000c040000080409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a9921403c4bc540e292513f1608593ffebdbb40000088409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c078bcca40c5df4b3f556c603f0000b840000080409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c07ce7c140c5df4b3f6cc45e3ffebdbb4000008840676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c078bcca40fe724a3f556c603f0000b84000008040676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c07ce7c140fe724a3f6cc45e3ffebdc34000008840666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff666612403820ce40aaff523fffaf5a3f0000c04000008040666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff666612403c4bc540aaff523f1608593ffebdbb4000008840333303c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff333303c078bcca403706493f556c603f0000b84000008040333303c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff333303c07ce7c1403706493f6cc45e3ffebdc34000008840333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff333303403820ce40716c543fffaf5a3f0000c04000008040333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff333303403c4bc540716c543f1608593ffebdbb4000008840333303c00000000000000000000080bf0000803f0000000000000000000080bffffffffffebdbb40000088409ce67d3f8bf24f3dfebdc34000008840333303c00000000000000000000080bf0000803f0000000000000000000080bffffffffffebdc34000008840ea437d3fa3353a3d0000c04000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff0000c04000008040d3eb7e3fa3353a3d0000b84000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff0000b84000008040858e7f3f8bf24f3dfebdb34000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bffffffffffebdb3c000008840858e7f3f5011903dfebdab4000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bffffffffffebdabc000008840d3eb7e3fc4ef9a3d0000a84000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff0000a8c000008040ea437d3fc4ef9a3d0000b04000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff0000b0c0000080409ce67d3f5011903dfebdab4000008840cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc0f9f4c340716c543fc755623ffebdab40000088409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc0f9f4c340aaff523fc755623f0000a840000080409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc0fd1fbb40aaff523fdead603f0000a84000008040cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc0fd1fbb40716c543fdead603ffebdb340000088409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d40b958c740fe724a3f71995c3ffebdb34000008840cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c40b958c7403706493f71995c3f0000b04000008040cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c40bc83be403706493f88f15a3f0000b040000080409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d40bc83be40fe724a3f88f15a3ffebdab400000884066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec0f9f4c340e292513fc755623f0000a8400000804066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec0fd1fbb40e292513fdead603ffebdb3400000884066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e40b958c740c5df4b3f71995c3f0000b0400000804066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e40bc83be40c5df4b3f88f15a3ffebdab400000884033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc0f9f4c3401b26503fc755623f0000a8400000804033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc0fd1fbb401b26503fdead603ffebdb3400000884033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f40b958c7408d4c4d3f71995c3f0000b0400000804033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f40bc83be408d4c4d3f88f15a3ffebdab4000008840000040c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff000040c0f9f4c34054b94e3fc755623f0000a84000008040000040c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff000040c0fd1fbb4054b94e3fdead603ffebdb34000008840000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff00004040b958c74054b94e3f71995c3f0000b04000008040000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff00004040bc83be4054b94e3f88f15a3ffebdab4000008840cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c0f9f4c3408c4c4d3fc755623f0000a84000008040cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c0fd1fbb408c4c4d3fdead603ffebdb34000008840cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc3040b958c7401b26503f71995c3f0000b04000008040cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc3040bc83be401b26503f88f15a3ffebdb340000088409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a992140b958c740e292513f71995c3f0000b040000080409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a992140bc83be40e292513f88f15a3ffebdab40000088409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c0f9f4c340c5df4b3fc755623f0000a840000080409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c0fd1fbb40c5df4b3fdead603ffebdab4000008840676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c0f9f4c340fe724a3fc755623f0000a84000008040676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c0fd1fbb40fe724a3fdead603ffebdb34000008840666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66661240b958c740aaff523f71995c3f0000b04000008040666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66661240bc83be40aaff523f88f15a3ffebdab4000008840333303c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff333303c0f9f4c3403706493fc755623f0000a84000008040333303c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff333303c0fd1fbb403706493fdead603ffebdb34000008840333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33330340b958c740716c543f71995c3f0000b04000008040333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33330340bc83be40716c543f88f15a3ffebdab4000008840333303c00000000000000000000080bf0000803f0000000000000000000080bffffffffffebdab40000088409ce67d3f481a813dfebdb34000008840333303c00000000000000000000080bf0000803f0000000000000000000080bffffffffffebdb34000008840ea437d3fa8776c3d0000b04000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff0000b04000008040d3eb7e3fa8776c3d0000a84000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff0000a84000008040858e7f3f481a813dfebda34000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bffffffffffebda3c000008840858e7f3f2760203dfebd9b4000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bffffffffffebd9bc000008840d3eb7e3f0f1d363d0000984000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff000098c000008040ea437d3f0f1d363d0000a04000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff0000a0c0000080409ce67d3f2760203dfebd9b4000008840cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc0792dbd403514603f360a533ffebd9b40000088409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc0792dbd406da75e3f360a533f00009840000080409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc07d58b4406da75e3f4d62513f0000984000008040cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc07d58b4403514603f4d62513ffebda340000088409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d403991c04085c2613f360a533ffebda34000008840cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c403991c040be55603f360a533f0000a04000008040cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c403dbcb740be55603f4d62513f0000a040000080409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d403dbcb74085c2613f4d62513ffebd9b400000884066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec0792dbd40a63a5d3f360a533f000098400000804066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec07d58b440a63a5d3f4d62513ffebda3400000884066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e403991c0404d2f633f360a533f0000a0400000804066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e403dbcb7404d2f633f4d62513ffebd9b400000884033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc0792dbd40dfcd5b3f360a533f000098400000804033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc07d58b440dfcd5b3f4d62513ffebda3400000884033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f403991c040149c643f360a533f0000a0400000804033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f403dbcb740149c643f4d62513ffebd9b4000008840000040c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff000040c0792dbd4017615a3f360a533f0000984000008040000040c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff000040c07d58b44017615a3f4d62513ffebda34000008840000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff000040403991c040db08663f360a533f0000a04000008040000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff000040403dbcb740db08663f4d62513ffebd9b4000008840cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c0792dbd4050f4583f360a533f0000984000008040cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c07d58b44050f4583f4d62513ffebda34000008840cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc30403991c040a275673f360a533f0000a04000008040cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc30403dbcb740a275673f4d62513ffebda340000088409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a9921403991c0406ae2683f360a533f0000a040000080409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a9921403dbcb7406ae2683f4d62513ffebd9b40000088409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c0792dbd408987573f360a533f00009840000080409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c07d58b4408987573f4d62513ffebd9b4000008840676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c0792dbd40c21a563f360a533f0000984000008040676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c07d58b440c21a563f4d62513ffebda34000008840666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff666612403991c040314f6a3f360a533f0000a04000008040666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff666612403dbcb740314f6a3f4d62513ffebd9b4000008840333303c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff333303c0792dbd40faad543f360a533f0000984000008040333303c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff333303c07d58b440faad543f4d62513ffebda34000008840333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff333303403991c040f8bb6b3f360a533f0000a04000008040333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff333303403dbcb740f8bb6b3f4d62513ffebd9b4000008840333303c00000000000000000000080bf0000803f0000000000000000000080bffffffffffebd9b4000008840c466733f5732a93dfebda34000008840333303c00000000000000000000080bf0000803f0000000000000000000080bffffffffffebda3400000884013c4723fe2539e3d0000a04000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff0000a04000008040fc6b743fe2539e3d0000984000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff0000984000008040ad0e753f5732a93dfebd934000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bffffffffffebd93c000008840858e7f3fc71d063dfebd8b4000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bffffffffffebd8bc000008840d3eb7e3fb0da1b3d0000884000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff000088c000008040ea437d3fb0da1b3d0000904000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff000090c0000080409ce67d3fc71d063dfebd8b4000008840cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc0f965b640f8bb6b3fc420513ffebd8b40000088409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc0f965b640314f6a3fc420513f00008840000080409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc0fd90ad40314f6a3fdb784f3f0000884000008040cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc0fd90ad40f8bb6b3fdb784f3ffebd9340000088409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d40b9c9b940496a6d3fc420513ffebd934000008840cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c40b9c9b94081fd6b3fc420513f0000904000008040cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c40bdf4b04081fd6b3fdb784f3f00009040000080409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d40bdf4b040496a6d3fdb784f3ffebd8b400000884066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec0f965b6406ae2683fc420513f000088400000804066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec0fd90ad406ae2683fdb784f3ffebd93400000884066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e40b9c9b94010d76e3fc420513f000090400000804066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e40bdf4b04010d76e3fdb784f3ffebd8b400000884033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc0f965b640a275673fc420513f000088400000804033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc0fd90ad40a275673fdb784f3ffebd93400000884033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f40b9c9b940d743703fc420513f000090400000804033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f40bdf4b040d743703fdb784f3ffebd8b4000008840000040c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff000040c0f965b640db08663fc420513f0000884000008040000040c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff000040c0fd90ad40db08663fdb784f3ffebd934000008840000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff00004040b9c9b9409fb0713fc420513f0000904000008040000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff00004040bdf4b0409fb0713fdb784f3ffebd8b4000008840cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c0f965b640149c643fc420513f0000884000008040cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c0fd90ad40149c643fdb784f3ffebd934000008840cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc3040b9c9b940661d733fc420513f0000904000008040cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc3040bdf4b040661d733fdb784f3ffebd9340000088409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a992140b9c9b9402d8a743fc420513f00009040000080409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a992140bdf4b0402d8a743fdb784f3ffebd8b40000088409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c0f965b6404c2f633fc420513f00008840000080409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c0fd90ad404c2f633fdb784f3ffebd8b4000008840676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c0f965b64085c2613fc420513f0000884000008040676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c0fd90ad4085c2613fdb784f3ffebd934000008840666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66661240b9c9b940f5f6753fc420513f0000904000008040666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66661240bdf4b040f5f6753fdb784f3ffebd8b4000008840333303c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff333303c0f965b640be55603fc420513f0000884000008040333303c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff333303c0fd90ad40be55603fdb784f3ffebd934000008840333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33330340b9c9b940bc63773fc420513f0000904000008040333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33330340bdf4b040bc63773fdb784f3ffebd8b4000008840333303c00000000000000000000080bf0000803f0000000000000000000080bffffffffffebd8b40000088409ce67d3f3405023dfebd934000008840333303c00000000000000000000080bf0000803f0000000000000000000080bffffffffffebd934000008840ea437d3f9890d83c0000904000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff0000904000008040d3eb7e3f9890d83c0000884000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff0000884000008040858e7f3f3405023dfebd834000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bffffffffffebd83c0000088408810383f39249e3e62e2774000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff62e277c000008840e771373f72caa03e6666704000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff666670c000008040fec9353f72caa03e0000804000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000080409f68363f39249e3e62e2774000008840cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc02bb4af403514603fc420513f62e27740000088409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc02bb4af406da75e3fc420513f66667040000080409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc02fdfa6406da75e3fdb784f3f6666704000008040cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc02fdfa6403514603fdb784f3ffebd8340000088409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d403a02b340fe724a3f360a533ffebd834000008840cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c403a02b3403706493f360a533f0000804000008040cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c403e2daa403706493f4d62513f00008040000080409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d403e2daa40fe724a3f4d62513f62e277400000884066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec02bb4af40a63a5d3fc420513f666670400000804066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec02fdfa640a63a5d3fdb784f3ffebd83400000884066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e403a02b340c5df4b3f360a533f000080400000804066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e403e2daa40c5df4b3f4d62513f62e277400000884034334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff34334fc02bb4af40dfcd5b3fc420513f666670400000804034334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff34334fc02fdfa640dfcd5b3fdb784f3ffebd83400000884033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f403a02b3408d4c4d3f360a533f000080400000804033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f403e2daa408d4c4d3f4d62513f62e2774000008840000040c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff000040c02bb4af4017615a3fc420513f6666704000008040000040c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff000040c02fdfa64017615a3fdb784f3ffebd834000008840000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff000040403a02b34054b94e3f360a533f0000804000008040000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff000040403e2daa4054b94e3f4d62513f62e2774000008840cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c02bb4af4050f4583fc420513f6666704000008040cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c02fdfa64050f4583fdb784f3ffebd834000008840cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc30403a02b3401b26503f360a533f0000804000008040cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc30403e2daa401b26503f4d62513ffebd8340000088409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a9921403a02b340e292513f360a533f00008040000080409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a9921403e2daa40e292513f4d62513f62e27740000088409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c02bb4af408987573fc420513f66667040000080409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c02fdfa6408987573fdb784f3f62e2774000008840666612c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff666612c02bb4af40c11a563fc420513f6666704000008040666612c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff666612c02fdfa640c11a563fdb784f3ffebd834000008840666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff666612403a02b340aaff523f360a533f0000804000008040666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff666612403e2daa40aaff523f4d62513f62e2774000008840333303c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff333303c02bb4af40faad543fc420513f6666704000008040333303c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff333303c02fdfa640faad543fdb784f3ffebd834000008840333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff333303403a02b340716c543f360a533f0000804000008040333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff333303403e2daa40716c543f4d62513f62e2774000008840333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff62e27740000088408ce0333f72caa03efebd834000008840333303c00000000000000000000080bf0000803f0000000000000000000080bffffffffffebd834000008840ec41333f39249e3e0000804000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff0000804000008040d5e9343f39249e3e6666704000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff66667040000080407588353f72caa03ec8486840000088409a996dc081e267bff4efd83edc1674b5a4bc8635f4efd828000080bf000080bfffffffffa9996d401a66ac401d5c623fd4f54b3fc948684000008840cdcc7cc081e267bff3efd83edc1674b5a4bc8635f3efd828000080bf000080bfffffffffdccc7c401a66ac4055ef603fd4f54b3fcdcc604000008040cdcc7cc081e267bff4efd83edc1674b5a4bc8635f4efd828000080bf000080bfffffffffdccc7c401e91a34055ef603feb4d4a3fcccc6040000080409a996dc081e267bff4efd83edc1674b5a4bc8635f4efd828000080bf000080bfffffffffa9996d401e91a3401d5c623feb4d4a3fc948684000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffffc94868c0000088407a521d3f6bb6b53e30af584000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff30af58c000008840d9b31c3fa45cb83e3433514000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff343351c000008040f00b1b3fa45cb83ecdcc604000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffffcdcc60c00000804091aa1b3f6bb6b53e30af584000008840cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc00f18a940ccad603fd4f54b3f30af5840000088409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc00f18a94005415f3fd4f54b3f34335140000080409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc01343a04005415f3feb4d4a3f3433514000008040cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc01343a040ccad603feb4d4a3f2faf58400000884066665ec080e2673ff3efd8becb1674359bbc86b5f4efd8a80000803f000080bfffffffff74665ec00c18a9403dd45d3fd4f54b3f333351400000804066665ec080e2673ff3efd8becb1674359bbc86b5f4efd8a80000803f000080bfffffffff74665ec01043a0403dd45d3feb4d4a3fc84868400000884066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e401d66ac40e4c8633fd4f54b3fcccc60400000804066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e402191a340e4c8633feb4d4a3fc84868400000884033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f401d66ac40ab35653fd4f54b3fcccc60400000804033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f402191a340ab35653feb4d4a3f2faf58400000884066665ec081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff66665ec00f18a9403dd45d3fd4f54b3f2faf58400000884033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc00f18a94076675c3fd4f54b3f333351400000804033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc01343a04076675c3feb4d4a3f333351400000804066665ec081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff66665ec01343a0403dd45d3feb4d4a3f30af584000008840000040c081e2673ff3efd8bedc1674b5a4bc8635f3efd8280000803f000080bffffffffff2ff3fc01218a940affa5a3fd4f54b3f3433514000008040000040c081e2673ff4efd8bedc1674b5a4bc8635f4efd8280000803f000080bffffffffff2ff3fc01643a040affa5a3feb4d4a3fc948684000008840000040c081e267bff4efd83edc167435a4bc86b5f4efd8a8000080bf000080bffffffffff1ff3f402066ac4073a2663fd4f54b3fcdcc604000008040000040c081e267bff4efd83edc167435a4bc86b5f4efd8a8000080bf000080bffffffffff1ff3f402491a34073a2663feb4d4a3fc848684000008840cdcc30c081e267bff4efd83edc1674b5a3bc8635f4efd8a8000080bf000080bfffffffffdccc30401b66ac403a0f683fd4f54b3fc948684000008840000040c081e267bff3efd83edc1674b5a3bc8635f3efd8a8000080bf000080bfffffffff0f0040401b66ac4073a2663fd4f54b3fcdcc604000008040000040c081e267bff4efd83edc1674b5a3bc8635f4efd8a8000080bf000080bfffffffff0f0040401e91a34073a2663feb4d4a3fcccc604000008040cdcc30c081e267bff4efd83edc1674b5a3bc8635f4efd8a8000080bf000080bfffffffffdccc30401e91a3403a0f683feb4d4a3f30af584000008840000040c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff000040c00f18a940affa5a3fd4f54b3f30af584000008840cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c00f18a940e88d593fd4f54b3f3433514000008040cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c01343a040e88d593feb4d4a3f3433514000008040000040c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff000040c01343a040affa5a3feb4d4a3f2faf5840000088409a9921c081e2673ff4efd8beec167435acbc86b5f4efd8280000803f000080bfffffffffa89921c00d18a9402021583fd4f54b3f33335140000080409a9921c081e2673ff4efd8beec167435acbc86b5f4efd8280000803f000080bfffffffffa89921c01143a0402021583feb4d4a3fc8486840000088409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a9921401d66ac40017c693fd4f54b3fcccc6040000080409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a9921402191a340017c693feb4d4a3f2faf584000008840676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c00f18a94059b4563fd4f54b3f3333514000008040676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c01343a04059b4563feb4d4a3fc848684000008840666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff666612401d66ac40c9e86a3fd4f54b3fcccc604000008040666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff666612402191a340c9e86a3feb4d4a3f30af584000008840333303c080e2673ff2efd8becb1674b59bbc8635f4efd8280000803f000080bfffffffff253303c01118a9409247553fd4f54b3f3433514000008040333303c080e2673ff2efd8becb1674b59bbc8635f4efd8280000803f000080bfffffffff253303c01543a0409247553feb4d4a3fc948684000008840333303c081e267bff4efd83edc167435a4bc86b5f4efd8a8000080bf000080bfffffffff243303401f66ac4090556c3fd4f54b3fcdcc604000008040333303c081e267bff4efd83edc167435a4bc86b5f4efd8a8000080bf000080bfffffffff243303402391a34090556c3feb4d4a3f30af584000008840333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff30af5840000088407e22193fa45cb83ec948684000008840333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffffc948684000008840de83183f6bb6b53ecdcc604000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffffcdcc604000008040c72b1a3f6bb6b53e3433514000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff343351400000804067ca1a3fa45cb83e9615494000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff961549c0000088408710383f47a7a13efc7b394000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bffffffffffc7b39c000008840e771373f804da43e0000324000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff000032c000008040fec9353f804da43e9a99414000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff9a9941c0000080409e68363f47a7a13efc7b394000008840cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc0f37ba240716c543f393f643ffc7b3940000088409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc0f37ba240aaff523f393f643f00003240000080409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc0f6a69940aaff523f5197623f0000324000008040cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc0f6a69940716c543f5197623f96154940000088409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d4001caa540496a6d3f360a533f9615494000008840cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c4001caa54081fd6b3f360a533f9a99414000008040cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c4005f59c4081fd6b3f4d62513f9a994140000080409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d4005f59c40496a6d3f4d62513ffc7b39400000884066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec0f37ba240e292513f393f643f000032400000804066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec0f6a69940e292513f5197623f961549400000884066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e4001caa54010d76e3f360a533f9a9941400000804066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e4005f59c4010d76e3f4d62513ffc7b39400000884033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc0f37ba2401b26503f393f643f000032400000804033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc0f6a699401b26503f5197623f961549400000884033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f4001caa540d743703f360a533f9a9941400000804033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f4005f59c40d743703f4d62513ffc7b394000008840000040c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff000040c0f37ba24054b94e3f393f643f0000324000008040000040c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff000040c0f6a6994054b94e3f5197623f9615494000008840000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff0000404001caa5409fb0713f360a533f9a99414000008040000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff0000404005f59c409fb0713f4d62513ffc7b394000008840cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c0f37ba2408c4c4d3f393f643f0000324000008040cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c0f6a699408c4c4d3f5197623f9615494000008840cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc304001caa540661d733f360a533f9a99414000008040cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc304005f59c40661d733f4d62513f96154940000088409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a99214001caa5402d8a743f360a533f9a994140000080409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a99214005f59c402d8a743f4d62513ffc7b3940000088409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c0f37ba240c5df4b3f393f643f00003240000080409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c0f6a69940c5df4b3f5197623ffc7b394000008840676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c0f37ba240fe724a3f393f643f0000324000008040676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c0f6a69940fe724a3f5197623f9615494000008840666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff6666124001caa540f5f6753f360a533f9a99414000008040666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff6666124005f59c40f5f6753f4d62513ffc7b394000008840333303c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff333303c0f37ba2403706493f393f643f0000324000008040333303c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff333303c0f6a699403706493f5197623f9615494000008840333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff3333034001caa540bc63773f360a533f9a99414000008040333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff3333034005f59c40bc63773f4d62513ffc7b394000008840333303c00000000000000000000080bf0000803f0000000000000000000080bffffffffffc7b3940000088408ce0333f804da43e9615494000008840333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff9615494000008840ec41333f47a7a13e9a99414000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff9a99414000008040d5e9343f47a7a13e0000324000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff00003240000080407588353f804da43e62e2294000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff62e229c000008840f3c9383f2ba19a3ec8481a4000008840cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffffc8481ac000008840532b383f64479d3ecccc124000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffffcccc12c0000080406a83363f64479d3e6666224000008040cdcc7cc000000000000000000000803f000080bf0000000000000000000080bfffffffff666622c0000080400a22373f2ba19a3ec8481a4000008840cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc0d6df9b40f8bb6b3f52374f3fc8481a40000088409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc0d6df9b40314f6a3f52374f3fcccc1240000080409a996dc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a996dc0da0a9340314f6a3f698f4d3fcccc124000008040cdcc7cc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffffcdcc7cc0da0a9340f8bb6b3f698f4d3f62e22940000088409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d40e42d9f40fe724a3fc420513f62e2294000008840cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c40e42d9f403706493fc420513f6666224000008040cdcc7cc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc7c40e85896403706493fdb784f3f66662240000080409a996dc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a996d40e8589640fe724a3fdb784f3fc8481a400000884066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec0d6df9b406ae2683f52374f3fcccc12400000804066665ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff66665ec0da0a93406ae2683f698f4d3f62e229400000884066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e40e42d9f40c5df4b3fc420513f666622400000804066665ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66665e40e8589640c5df4b3fdb784f3fc8481a400000884033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc0d6df9b40a275673f52374f3fcccc12400000804033334fc081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff33334fc0da0a9340a275673f698f4d3f62e229400000884033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f40e42d9f408d4c4d3fc420513f666622400000804033334fc081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33334f40e85896408d4c4d3fdb784f3fc8481a4000008840000040c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff000040c0d6df9b40db08663f52374f3fcccc124000008040000040c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff000040c0da0a9340db08663f698f4d3f62e2294000008840000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff00004040e42d9f4054b94e3fc420513f6666224000008040000040c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff00004040e858964054b94e3fdb784f3fc8481a4000008840cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c0d6df9b40149c643f52374f3fcccc124000008040cccc30c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffcccc30c0da0a9340149c643f698f4d3f62e2294000008840cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc3040e42d9f401b26503fc420513f6666224000008040cdcc30c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffcdcc3040e85896401b26503fdb784f3f62e22940000088409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a992140e42d9f40e292513fc420513f66662240000080409a9921c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff9a992140e8589640e292513fdb784f3fc8481a40000088409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c0d6df9b404c2f633f52374f3fcccc1240000080409a9921c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff9a9921c0da0a93404c2f633f698f4d3fc8481a4000008840676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c0d6df9b4085c2613f52374f3fcccc124000008040676612c081e2673ff4efd8be0000000000000000000000000000803f000080bfffffffff676612c0da0a934085c2613f698f4d3f62e2294000008840666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66661240e42d9f40aaff523fc420513f6666224000008040666612c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff66661240e8589640aaff523fdb784f3fc8481a4000008840333303c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff333303c0d6df9b40be55603f52374f3fcccc124000008040333303c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff333303c0da0a9340be55603f698f4d3f62e2294000008840333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33330340e42d9f40716c543fc420513f6666224000008040333303c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffff33330340e8589640716c543fdb784f3fc8481a4000008840333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffffc8481a40000088408be27d3ff394a73d62e2294000008840333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff62e2294000008840ea437d3f0efc9c3d6666224000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffff6666224000008040d3eb7e3f0efc9c3dcccc124000008040333303c00000000000000000000080bf0000803f0000000000000000000080bfffffffffcccc124000008040748a7f3ff394a73df2d2b64000008040f2d2bac000000000ffff7fbf000000000000803f00000000000000000000803ffffffffff2d2b640f2d2bac04792c63eba7e453ff1d2b64000008040c4a0bcc000000000000080bf000000000000803f00000000000000000000803ffffffffff1d2b640c4a0bcc04792c63e2428453f976ebe4000008040c4a0bcc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff976ebe40c4a0bcc09a6cc93e2428453f976ebe4000008040f2d2bac000000000000080bf000000000000803f00000000000000000000803fffffffff976ebe40f2d2bac09a6cc93eba7e453ff2d2b64000008040976ebec000000000000080bf000000000000803f00000000000000000000803ffffffffff2d2b640976ebec04792c63e8dd1443f976ebe4000008040c4a0bcc000000000000080bf000000000000803f00000000000000000000803fffffffff976ebe40c4a0bcc09a6cc93e2428453f976ebe4000008040976ebec000000000000080bf000000000000803f00000000000000000000803fffffffff976ebe40976ebec09a6cc93e8dd1443fa69ba74000008040c4a0bcc000000000000080bf000000000000803f00000000000000000000803fffffffffa69ba740c4a0bcc0a0ddc03e2428453f4c37af4000008040976ebec000000000000080bf000000000000803f00000000000000000000803fffffffff4c37af40976ebec0f3b7c33e8dd1443f4c37af4000008040c4a0bcc000000000000080bf000000000000803f00000000000000000000803fffffffff4c37af40c4a0bcc0f3b7c33e2428453fa69ba74000008040976ebec000000000000080bf000000000000803f00000000000000000000803fffffffffa69ba740976ebec0a0ddc03e8dd1443fa69ba74000008040f2d2bac000000000ffff7fbf000000000000803f00000000000000000000803fffffffffa69ba740f2d2bac0a0ddc03eba7e453f4c37af4000008040c4a0bcc000000000ffff7fbf000000000000803f00000000000000000000803fffffffff4c37af40c4a0bcc0f3b7c33e2428453f4c37af4000008040f1d2bac000000000000080bf000000000000803f00000000000000000000803fffffffff4c37af40f1d2bac0f3b7c33eba7e453fa69ba740000080401f05b9c000000000000080bf000000000000803f00000000000000000000803fffffffffa69ba7401f05b9c0a0ddc03e50d5453f4c37af40000080401e05b9c000000000000080bf000000000000803f00000000000000000000803fffffffff4c37af401e05b9c0f3b7c33e50d5453fa69ba74000008040f2d2bac000000000000080bf000000000000803f00000000000000000000803fffffffffa69ba740f2d2bac0a0ddc03eba7e453fa69ba740000080404c37b7c000000000000080bf000000000000803f00000000000000000000803fffffffffa69ba7404c37b7c0a0ddc03ee62b463f4c37af40000080404c37b7c000000000000080bf000000000000803f00000000000000000000803fffffffff4c37af404c37b7c0f3b7c33ee62b463ff2d2b640000080401f05b9c000000000000080bf000000000000803f00000000000000000000803ffffffffff2d2b6401f05b9c04792c63e50d5453f976ebe40000080401f05b9c000000000000080bf000000000000803f00000000000000000000803fffffffff976ebe401f05b9c09a6cc93e50d5453ff2d2b64000008040f2d2bac000000000000080bf000000000000803f00000000000000000000803ffffffffff2d2b640f2d2bac04792c63eba7e453ff2d2b640000080404c37b7c000000000000080bf000000000000803f00000000000000000000803ffffffffff2d2b6404c37b7c04792c63ee62b463f976ebe40000080404c37b7c000000000000080bf000000000000803f00000000000000000000803fffffffff976ebe404c37b7c09a6cc93ee62b463f5a64984000008040f2d2bac000000000000080bf000000000000803f00000000000000000000803fffffffff5a649840f2d2bac0f928bb3eba7e453f0000a04000008040c4a0bcc000000000000080bf000000000000803f00000000000000000000803fffffffff0000a040c4a0bcc04e03be3e2428453f0000a04000008040f2d2bac000000000000080bf000000000000803f00000000000000000000803fffffffff0000a040f2d2bac04d03be3eba7e453f5a64984000008040c4a0bcc000000000000080bf000000000000803f00000000000000000000803fffffffff5a649840c4a0bcc0f928bb3e2428453f0000a04000008040976ebec000000000000080bf000000000000803f00000000000000000000803fffffffff0000a040976ebec04e03be3e8dd1443f5a64984000008040976ebec000000000000080bf000000000000803f00000000000000000000803fffffffff5a649840976ebec0f928bb3e8dd1443f0e2d894000008040c4a0bcc000000000000080bf000000000000803f00000000000000000000803fffffffff0e2d8940c4a0bcc05574b53e2328453fb4c8904000008040976ebec000000000000080bf000000000000803f00000000000000000000803fffffffffb4c89040976ebec0a74eb83e8dd1443fb4c8904000008040c4a0bcc000000000000080bf000000000000803f00000000000000000000803fffffffffb4c89040c4a0bcc0a74eb83e2328453f0e2d894000008040976ebec000000000000080bf000000000000803f00000000000000000000803fffffffff0e2d8940976ebec05574b53e8dd1443f0e2d894000008040f2d2bac000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0e2d8940f2d2bac05474b53eb97e453fb4c8904000008040c4a0bcc000000000ffff7fbf000000000000803f00000000000000000000803fffffffffb4c89040c4a0bcc0a74eb83e2328453fb4c8904000008040f1d2bac000000000000080bf000000000000803f00000000000000000000803fffffffffb4c89040f1d2bac0a74eb83eba7e453f0e2d8940000080401f05b9c000000000000080bf000000000000803f00000000000000000000803fffffffff0e2d89401f05b9c05474b53e50d5453fb4c89040000080401e05b9c000000000000080bf000000000000803f00000000000000000000803fffffffffb4c890401e05b9c0a74eb83e50d5453f0e2d894000008040f2d2bac000000000000080bf000000000000803f00000000000000000000803fffffffff0e2d8940f2d2bac05474b53eb97e453f0e2d8940000080404c37b7c000000000000080bf000000000000803f00000000000000000000803fffffffff0e2d89404c37b7c05474b53ee62b463fb4c89040000080404c37b7c000000000000080bf000000000000803f00000000000000000000803fffffffffb4c890404c37b7c0a74eb83ee62b463f5a649840000080401f05b9c000000000000080bf000000000000803f00000000000000000000803fffffffff5a6498401f05b9c0f928bb3e50d5453f0000a040000080401f05b9c000000000000080bf000000000000803f00000000000000000000803fffffffff0000a0401f05b9c04d03be3e50d5453f5a649840000080404c37b7c000000000000080bf000000000000803f00000000000000000000803fffffffff5a6498404c37b7c0f928bb3ee72b463f0000a040000080404c37b7c000000000000080bf000000000000803f00000000000000000000803fffffffff0000a0404c37b7c04d03be3ee72b463f5a649840000080407a69b5c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff5a6498407a69b5c0f928bb3e7d82463f0000a040000080404c37b7c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000a0404c37b7c04d03be3ee72b463f0000a040000080407969b5c000000000000080bf000000000000803f00000000000000000000803fffffffff0000a0407969b5c04d03be3e7d82463f5a64984000008040a69bb3c000000000000080bf000000000000803f00000000000000000000803fffffffff5a649840a69bb3c0f928bb3e13d9463f0000a04000008040a69bb3c000000000000080bf000000000000803f00000000000000000000803fffffffff0000a040a69bb3c04c03be3e13d9463f5a649840000080407a69b5c000000000000080bf000000000000803f00000000000000000000803fffffffff5a6498407a69b5c0f928bb3e7d82463f0e2d8940000080407a69b5c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0e2d89407a69b5c05474b53e7c82463fb4c89040000080404c37b7c000000000ffff7fbf000000000000803f00000000000000000000803fffffffffb4c890404c37b7c0a74eb83ee62b463fb4c89040000080407969b5c000000000000080bf000000000000803f00000000000000000000803fffffffffb4c890407969b5c0a64eb83e7c82463f0e2d894000008040a69bb3c000000000000080bf000000000000803f00000000000000000000803fffffffff0e2d8940a69bb3c05374b53e12d9463fb4c8904000008040a69bb3c000000000000080bf000000000000803f00000000000000000000803fffffffffb4c89040a69bb3c0a64eb83e12d9463f0e2d8940000080407a69b5c000000000000080bf000000000000803f00000000000000000000803fffffffff0e2d89407a69b5c05474b53e7c82463f0e2d894000008040d3cdb1c000000000000080bf000000000000803f00000000000000000000803fffffffff0e2d8940d3cdb1c05374b53ea82f473fb4c8904000008040d3cdb1c000000000000080bf000000000000803f00000000000000000000803fffffffffb4c89040d3cdb1c0a64eb83ea82f473f0e2d8940000080400000b0c000000000000080bf000000000000803f00000000000000000000803fffffffff0e2d89400000b0c05374b53e3f86473fb4c89040000080400000b0c000000000000080bf000000000000803f00000000000000000000803fffffffffb4c890400000b0c0a64eb83e3f86473f5a64984000008040d3cdb1c000000000000080bf000000000000803f00000000000000000000803fffffffff5a649840d3cdb1c0f928bb3eaa2f473f0000a04000008040d3cdb1c000000000000080bf000000000000803f00000000000000000000803fffffffff0000a040d3cdb1c04c03be3eaa2f473f5a649840000080400000b0c000000000000080bf000000000000803f00000000000000000000803fffffffff5a6498400000b0c0f928bb3e4086473f0000a040000080400000b0c000000000000080bf000000000000803f00000000000000000000803fffffffff0000a0400000b0c04c03be3e4086473ff2d2b640000080407a69b5c000000000000080bf000000000000803f00000000000000000000803ffffffffff2d2b6407a69b5c04792c63e7c82463f976ebe40000080407969b5c000000000000080bf000000000000803f00000000000000000000803fffffffff976ebe407969b5c0996cc93e7c82463ff2d2b64000008040a69bb3c000000000000080bf000000000000803f00000000000000000000803ffffffffff2d2b640a69bb3c04792c63e13d9463f976ebe4000008040a69bb3c000000000000080bf000000000000803f00000000000000000000803fffffffff976ebe40a69bb3c0996cc93e13d9463ff2d2b640000080407a69b5c000000000ffff7fbf000000000000803f00000000000000000000803ffffffffff2d2b6407a69b5c04792c63e7c82463fa69ba740000080407a69b5c000000000ffff7fbf000000000000803f00000000000000000000803fffffffffa69ba7407a69b5c0a0ddc03e7c82463f4c37af40000080404c37b7c000000000ffff7fbf000000000000803f00000000000000000000803fffffffff4c37af404c37b7c0f3b7c33ee62b463f4c37af40000080407969b5c000000000000080bf000000000000803f00000000000000000000803fffffffff4c37af407969b5c0f3b7c33e7c82463fa69ba74000008040a69bb3c000000000000080bf000000000000803f00000000000000000000803fffffffffa69ba740a69bb3c0a0ddc03e13d9463f4c37af4000008040a69bb3c000000000000080bf000000000000803f00000000000000000000803fffffffff4c37af40a69bb3c0f3b7c33e13d9463fa69ba740000080407a69b5c000000000000080bf000000000000803f00000000000000000000803fffffffffa69ba7407a69b5c0a0ddc03e7c82463fa69ba74000008040d3cdb1c000000000000080bf000000000000803f00000000000000000000803fffffffffa69ba740d3cdb1c0a0ddc03ea92f473f4c37af4000008040d3cdb1c000000000000080bf000000000000803f00000000000000000000803fffffffff4c37af40d3cdb1c0f3b7c33ea92f473fa69ba740000080400000b0c000000000000080bf000000000000803f00000000000000000000803fffffffffa69ba7400000b0c09fddc03e3f86473f4c37af40000080400000b0c000000000000080bf000000000000803f00000000000000000000803fffffffff4c37af400000b0c0f3b7c33e3f86473ff2d2b64000008040d3cdb1c000000000000080bf000000000000803f00000000000000000000803ffffffffff2d2b640d3cdb1c04792c63ea92f473f976ebe4000008040d3cdb1c000000000000080bf000000000000803f00000000000000000000803fffffffff976ebe40d3cdb1c0996cc93ea92f473ff2d2b640000080400000b0c000000000000080bf000000000000803f00000000000000000000803ffffffffff2d2b6400000b0c04792c63e3f86473f976ebe40000080400000b0c000000000000080bf000000000000803f00000000000000000000803fffffffff976ebe400000b0c0996cc93e3f86473ff2d2b640000080406065aac000000000000080bf000000000000803f00000000000000000000803ffffffffff2d2b6406065aac04792c63e3993483f976ebe40000080406065aac000000000000080bf000000000000803f00000000000000000000803fffffffff976ebe406065aac0996cc93e3993483ff2d2b64000008040c1caa4c000000000000080bf000000000000803f00000000000000000000803ffffffffff2d2b640c1caa4c04792c63e33a0493f976ebe4000008040c1caa4c000000000000080bf000000000000803f00000000000000000000803fffffffff976ebe40c1caa4c09a6cc93e32a0493fa69ba740000080406065aac000000000000080bf000000000000803f00000000000000000000803fffffffffa69ba7406065aac0a0ddc03e3993483f4c37af40000080406065aac000000000000080bf000000000000803f00000000000000000000803fffffffff4c37af406065aac0f3b7c33e3993483fa69ba74000008040c1caa4c000000000000080bf000000000000803f00000000000000000000803fffffffffa69ba740c1caa4c0a0ddc03e33a0493f4c37af4000008040c1caa4c000000000000080bf000000000000803f00000000000000000000803fffffffff4c37af40c1caa4c0f3b7c33e33a0493fa69ba7400000804022309fc000000000000080bf000000000000803f00000000000000000000803fffffffffa69ba74022309fc0a0ddc03e2dad4a3f4c37af400000804022309fc000000000000080bf000000000000803f00000000000000000000803fffffffff4c37af4022309fc0f4b7c33e2cad4a3fa69ba74000008040829599c000000000000080bf000000000000803f00000000000000000000803fffffffffa69ba740829599c0a1ddc03e27ba4b3f4c37af4000008040829599c000000000000080bf000000000000803f00000000000000000000803fffffffff4c37af40829599c0f4b7c33e26ba4b3ff2d2b6400000804022309fc000000000000080bf000000000000803f00000000000000000000803ffffffffff2d2b64022309fc04792c63e2cad4a3f976ebe400000804022309fc000000000000080bf000000000000803f00000000000000000000803fffffffff976ebe4022309fc09a6cc93e2cad4a3ff2d2b64000008040829599c000000000000080bf000000000000803f00000000000000000000803ffffffffff2d2b640829599c04792c63e26ba4b3f976ebe4000008040829599c000000000000080bf000000000000803f00000000000000000000803fffffffff976ebe40829599c09a6cc93e26ba4b3f5a649840000080406065aac000000000000080bf000000000000803f00000000000000000000803fffffffff5a6498406065aac0f928bb3e3a93483f0000a040000080406065aac000000000000080bf000000000000803f00000000000000000000803fffffffff0000a0406065aac04c03be3e3a93483f5a64984000008040c1caa4c000000000000080bf000000000000803f00000000000000000000803fffffffff5a649840c1caa4c0f928bb3e34a0493f0000a04000008040c1caa4c000000000000080bf000000000000803f00000000000000000000803fffffffff0000a040c1caa4c04c03be3e33a0493f0e2d8940000080406065aac000000000000080bf000000000000803f00000000000000000000803fffffffff0e2d89406065aac05374b53e3993483fb4c89040000080406065aac000000000000080bf000000000000803f00000000000000000000803fffffffffb4c890406065aac0a64eb83e3993483f0e2d894000008040c1caa4c000000000000080bf000000000000803f00000000000000000000803fffffffff0e2d8940c1caa4c05374b53e33a0493fb4c8904000008040c1caa4c000000000000080bf000000000000803f00000000000000000000803fffffffffb4c89040c1caa4c0a64eb83e32a0493f0e2d89400000804022309fc000000000000080bf000000000000803f00000000000000000000803fffffffff0e2d894022309fc05374b53e2cad4a3fb4c890400000804022309fc000000000000080bf000000000000803f00000000000000000000803fffffffffb4c8904022309fc0a64eb83e2cad4a3f0e2d894000008040829599c000000000000080bf000000000000803f00000000000000000000803fffffffff0e2d8940829599c05374b53e26ba4b3fb4c8904000008040829599c000000000000080bf000000000000803f00000000000000000000803fffffffffb4c89040829599c0a74eb83e26ba4b3f5a6498400000804022309fc000000000000080bf000000000000803f00000000000000000000803fffffffff5a64984022309fc0fa28bb3e2dad4a3f0000a0400000804022309fc000000000000080bf000000000000803f00000000000000000000803fffffffff0000a04022309fc04d03be3e2dad4a3f5a64984000008040829599c000000000000080bf000000000000803f00000000000000000000803fffffffff5a649840829599c0fa28bb3e27ba4b3f0000a04000008040829599c000000000000080bf000000000000803f00000000000000000000803fffffffff0000a040829599c04d03be3e27ba4b3f5a64984000008040e2fa93c000000000000080bf000000000000803f00000000000000000000803fffffffff5a649840e2fa93c0fa28bb3e21c74c3f0000a04000008040e2fa93c000000000000080bf000000000000803f00000000000000000000803fffffffff0000a040e2fa93c04d03be3e21c74c3f5a6498400000804042608ec000000000000080bf000000000000803f00000000000000000000803fffffffff5a64984042608ec0fa28bb3e1bd44d3f0000a0400000804042608ec000000000000080bf000000000000803f00000000000000000000803fffffffff0000a04042608ec04d03be3e1bd44d3f0e2d89400000804042608ec000000000000080bf000000000000803f00000000000000000000803fffffffff0e2d894042608ec05374b53e1bd44d3f0e2d894000008040e2fa93c000000000000080bf000000000000803f00000000000000000000803fffffffff0e2d8940e2fa93c05374b53e21c74c3fb4c890400000804043608ec000000000000080bf000000000000803f00000000000000000000803fffffffffb4c8904043608ec0a74eb83e1ad44d3fb4c8904000008040e2fa93c000000000000080bf000000000000803f00000000000000000000803fffffffffb4c89040e2fa93c0a74eb83e20c74c3fb4c8904000008040a3c588c000000000000080bf000000000000803f00000000000000000000803fffffffffb4c89040a3c588c0a74eb83e14e14e3f0e2d894000008040a3c588c000000000000080bf000000000000803f00000000000000000000803fffffffff0e2d8940a3c588c05374b53e14e14e3f0e2d894000008040032b83c000000000000080bf000000000000803f00000000000000000000803fffffffff0e2d8940032b83c05374b53e0fee4f3fb4c8904000008040032b83c000000000000080bf000000000000803f00000000000000000000803fffffffffb4c89040032b83c0a74eb83e0eee4f3f5a64984000008040a3c588c000000000000080bf000000000000803f00000000000000000000803fffffffff5a649840a3c588c0fb28bb3e14e14e3f0000a04000008040a2c588c000000000000080bf000000000000803f00000000000000000000803fffffffff0000a040a2c588c04e03be3e14e14e3f5a64984000008040032b83c000000000000080bf000000000000803f00000000000000000000803fffffffff5a649840032b83c0fb28bb3e0eee4f3f0000a04000008040032b83c000000000000080bf000000000000803f00000000000000000000803fffffffff0000a040032b83c04e03be3e0eee4f3ff2d2b64000008040e2fa93c000000000000080bf000000000000803f00000000000000000000803ffffffffff2d2b640e2fa93c04892c63e20c74c3f976ebe4000008040e2fa93c000000000000080bf000000000000803f00000000000000000000803fffffffff976ebe40e2fa93c09a6cc93e20c74c3ff2d2b6400000804042608ec000000000000080bf000000000000803f00000000000000000000803ffffffffff2d2b64042608ec04892c63e1ad44d3f976ebe400000804042608ec000000000000080bf000000000000803f00000000000000000000803fffffffff976ebe4042608ec09b6cc93e1ad44d3fa69ba7400000804042608ec000000000000080bf000000000000803f00000000000000000000803fffffffffa69ba74042608ec0a1ddc03e1ad44d3fa69ba74000008040e2fa93c000000000000080bf000000000000803f00000000000000000000803fffffffffa69ba740e2fa93c0a1ddc03e21c74c3f4c37af400000804043608ec000000000000080bf000000000000803f00000000000000000000803fffffffff4c37af4043608ec0f4b7c33e1ad44d3f4c37af4000008040e2fa93c000000000000080bf000000000000803f00000000000000000000803fffffffff4c37af40e2fa93c0f4b7c33e20c74c3f4c37af4000008040a3c588c000000000000080bf000000000000803f00000000000000000000803fffffffff4c37af40a3c588c0f5b7c33e14e14e3fa69ba74000008040a3c588c000000000000080bf000000000000803f00000000000000000000803fffffffffa69ba740a3c588c0a1ddc03e14e14e3fa69ba74000008040032b83c000000000000080bf000000000000803f00000000000000000000803fffffffffa69ba740032b83c0a2ddc03e0eee4f3f4c37af4000008040032b83c000000000000080bf000000000000803f00000000000000000000803fffffffff4c37af40032b83c0f5b7c33e0eee4f3ff2d2b64000008040a3c588c000000000000080bf000000000000803f00000000000000000000803ffffffffff2d2b640a3c588c04892c63e14e14e3f976ebe4000008040a2c588c000000000000080bf000000000000803f00000000000000000000803fffffffff976ebe40a2c588c09b6cc93e14e14e3ff2d2b64000008040032b83c000000000000080bf000000000000803f00000000000000000000803ffffffffff2d2b640032b83c04892c63e0eee4f3f976ebe4000008040032b83c000000000000080bf000000000000803f00000000000000000000803fffffffff976ebe40032b83c09b6cc93e0eee4f3f0e2d894000008040976ebec000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff0e2d89c0976ebec05574b53e8dd1443f6991814000008040976ebec000000000000080bf00000000000080bf0000000000000000000080bfffffffff699181c0976ebec0049ab23e8dd1443f00008040000080400000c0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c00000c0c07f03b23e4b86443fb4c8904000008040976ebec000000000000080bf00000000000080bf0000000000000000000080bfffffffffb4c890c0976ebec0a74eb83e8dd1443f5a64984000008040976ebec000000000000080bf00000000000080bf0000000000000000000080bfffffffff5a6498c0976ebec0f928bb3e8dd1443f0000a04000008040976ebec000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff0000a0c0976ebec04e03be3e8dd1443f0000c040000080400000c0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c0c00000c0c01f03ca3e4b86443fa69ba74000008040976ebec000000000000080bf00000000000080bf0000000000000000000080bfffffffffa69ba7c0976ebec0a0ddc03e8dd1443f4c37af4000008040976ebec000000000000080bf00000000000080bf0000000000000000000080bfffffffff4c37afc0976ebec0f3b7c33e8dd1443ff2d2b64000008040976ebec000000000000080bf00000000000080bf0000000000000000000080bffffffffff2d2b6c0976ebec04792c63e8dd1443f976ebe4000008040976ebec000000000000080bf00000000000080bf0000000000000000000080bfffffffff976ebec0976ebec09a6cc93e8dd1443f00008040000080400000b0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c00000b0c07c03b23e3e86473f6991814000008040d3cdb1c000000000000080bf00000000000080bf0000000000000000000080bfffffffff699181c0d3cdb1c0019ab23ea82f473f69918140000080400000b0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff699181c00000b0c0019ab23e3e86473f6991814000008040a69bb3c000000000000080bf00000000000080bf0000000000000000000080bfffffffff699181c0a69bb3c0029ab23e12d9463f69918140000080407969b5c000000000000080bf00000000000080bf0000000000000000000080bfffffffff699181c07969b5c0029ab23e7c82463f69918140000080404c37b7c000000000000080bf00000000000080bf0000000000000000000080bfffffffff699181c04c37b7c0029ab23ee62b463f69918140000080401f05b9c000000000000080bf00000000000080bf0000000000000000000080bfffffffff699181c01f05b9c0039ab23e50d5453f6991814000008040f2d2bac000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff699181c0f2d2bac0039ab23eb97e453f6991814000008040c4a0bcc000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff699181c0c4a0bcc0049ab23e2428453f0000c040000080400000b0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c0c00000b0c01e03ca3e3f86473f976ebe40000080400000b0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff976ebec00000b0c0996cc93e3f86473f976ebe4000008040d3cdb1c000000000000080bf00000000000080bf0000000000000000000080bfffffffff976ebec0d3cdb1c0996cc93ea92f473f976ebe4000008040a69bb3c000000000000080bf00000000000080bf0000000000000000000080bfffffffff976ebec0a69bb3c0996cc93e13d9463f976ebe40000080407969b5c000000000000080bf00000000000080bf0000000000000000000080bfffffffff976ebec07969b5c0996cc93e7c82463f976ebe40000080404c37b7c000000000000080bf00000000000080bf0000000000000000000080bfffffffff976ebec04c37b7c09a6cc93ee62b463f976ebe40000080401f05b9c000000000000080bf00000000000080bf0000000000000000000080bfffffffff976ebec01f05b9c09a6cc93e50d5453f976ebe4000008040f2d2bac000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff976ebec0f2d2bac09a6cc93eba7e453f976ebe4000008040c4a0bcc000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff976ebec0c4a0bcc09a6cc93e2428453f6991814000008040032b83c000000000000080bf00000000000080bf0000000000000000000080bfffffffff699181c0032b83c0009ab23e0fee4f3f0000804000008040310880c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0310880c07b03b23e9484503f6991814000008040a2c588c000000000000080bf00000000000080bf0000000000000000000080bfffffffff699181c0a2c588c0009ab23e15e14e3f699181400000804042608ec000000000000080bf00000000000080bf0000000000000000000080bfffffffff699181c042608ec0009ab23e1bd44d3f6991814000008040e2fa93c000000000000080bf00000000000080bf0000000000000000000080bfffffffff699181c0e2fa93c0019ab23e21c74c3f6991814000008040829599c000000000000080bf00000000000080bf0000000000000000000080bfffffffff699181c0829599c0019ab23e26ba4b3f699181400000804022309fc000000000000080bf00000000000080bf0000000000000000000080bfffffffff699181c022309fc0019ab23e2cad4a3f6991814000008040c1caa4c000000000000080bf00000000000080bf0000000000000000000080bfffffffff699181c0c1caa4c0019ab23e32a0493f69918140000080406065aac000000000000080bf00000000000080bf0000000000000000000080bfffffffff699181c06065aac0019ab23e3893483f0000c04000008040310880c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c0c0310880c02103ca3e9384503f976ebe4000008040032b83c000000000000080bf00000000000080bf0000000000000000000080bfffffffff976ebec0032b83c09b6cc93e0eee4f3f976ebe4000008040a2c588c000000000000080bf00000000000080bf0000000000000000000080bfffffffff976ebec0a2c588c09b6cc93e14e14e3f976ebe400000804042608ec000000000000080bf00000000000080bf0000000000000000000080bfffffffff976ebec042608ec09b6cc93e1ad44d3f976ebe4000008040e2fa93c000000000000080bf00000000000080bf0000000000000000000080bfffffffff976ebec0e2fa93c09a6cc93e20c74c3f976ebe4000008040829599c000000000000080bf00000000000080bf0000000000000000000080bfffffffff976ebec0829599c09a6cc93e26ba4b3f976ebe400000804022309fc000000000000080bf00000000000080bf0000000000000000000080bfffffffff976ebec022309fc09a6cc93e2cad4a3f976ebe4000008040c1caa4c000000000000080bf00000000000080bf0000000000000000000080bfffffffff976ebec0c1caa4c09a6cc93e32a0493f976ebe40000080406065aac000000000000080bf00000000000080bf0000000000000000000080bfffffffff976ebec06065aac0996cc93e3993483f0000a04000008040032b83c000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff0000a0c0032b83c04e03be3e0eee4f3f5a64984000008040032b83c000000000000080bf00000000000080bf0000000000000000000080bfffffffff5a6498c0032b83c0fb28bb3e0eee4f3fb4c8904000008040032b83c000000000000080bf00000000000080bf0000000000000000000080bfffffffffb4c890c0032b83c0a74eb83e0eee4f3f0e2d894000008040032b83c000000000ffff7fbf00000000000080bf0000000000000000000080bfffffffff0e2d89c0032b83c05374b53e0fee4f3fa69ba74000008040032b83c000000000000080bf00000000000080bf0000000000000000000080bfffffffffa69ba7c0032b83c0a2ddc03e0eee4f3f4c37af4000008040032b83c000000000000080bf00000000000080bf0000000000000000000080bfffffffff4c37afc0032b83c0f5b7c33e0eee4f3ff2d2b64000008040032b83c000000000000080bf00000000000080bf0000000000000000000080bffffffffff2d2b6c0032b83c04892c63e0eee4f3fef90ba4000008840c4a0bcc080e267bff3efd83e078a00b725e80d3700000000000080bf000080bfffffffff2ba1bc40bd3cca40cd5c493fce8a733ff090ba4000008840976ebec080e267bff3efd83e078a00b725e80d3700000000000080bf000080bffffffffffe6ebe40bd3cca403706493fce8a733ff2d2b64000008040976ebec080e267bff3efd83e078a00b725e80d3700000000000080bf000080bffffffffffc6ebe40c067c1403706493fe5e2713ff1d2b64000008040c4a0bcc080e267bff3efd83e078a00b725e80d3700000000000080bf000080bfffffffff29a1bc40c067c140cd5c493fe5e2713ff090ba4000008840976ebec000000000000000000000803f000080bf0000000000000000000080bffffffffff090bac0000088408c867f3f1f0b543d4af5b24000008840976ebec000000000000000000000803f000080bf0000000000000000000080bfffffffff4af5b2c000008840d3eb7e3f5ab7683d4c37af4000008040976ebec000000000000000000000803f000080bf0000000000000000000080bfffffffff4c37afc000008040ea437d3f59b7683df2d2b64000008040976ebec000000000000000000000803f000080bf0000000000000000000080bffffffffff2d2b6c000008040a3de7d3f1f0b543d4af5b24000008840976ebec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff976ebec0af03c740b822543f04e56b3f4af5b24000008840c4a0bcc080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffc4a0bcc0af03c74022cc533f04e56b3f4c37af4000008040c4a0bcc080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffc4a0bcc0b22ebe4022cc533f1b3d6a3f4c37af4000008040976ebec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff976ebec0b22ebe40b822543f1b3d6a3f4af5b24000008840f1d2bac080e2673ff3efd8be0000000000000000000000000000803f000080bffffffffff1d2bac0af03c7408b75533f04e56b3f4c37af4000008040f1d2bac080e2673ff3efd8be0000000000000000000000000000803f000080bffffffffff1d2bac0b22ebe408b75533f1b3d6a3ff090ba4000008840f2d2bac080e267bff3efd83e4e8a003774e80db7f4efd82a000080bf000080bfffffffff8bd2ba40153dca4063b3493fce8a733ff2d2b64000008040f2d2bac080e267bff3efd83e4e8a003774e80db7f4efd82a000080bf000080bfffffffff8dd2ba401968c14063b3493fe5e2713f4af5b240000088401e05b9c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff1e05b9c0af03c740f51e533f04e56b3f4c37af40000080401e05b9c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff1e05b9c0b22ebe40f51e533f1b3d6a3ff090ba40000088401f05b9c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff1f05b940e93cca40f9094a3fce8a733ff2d2b640000080401f05b9c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff1f05b940ed67c140f9094a3fe5e2713ff090ba40000088404c37b7c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff4c37b740e93cca4090604a3fce8a733ff2d2b640000080404c37b7c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff4c37b740ed67c14090604a3fe5e2713f4af5b240000088404c37b7c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff4c37b7c0af03c7405fc8523f04e56b3f4c37af40000080404c37b7c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff4c37b7c0b22ebe405fc8523f1b3d6a3f4af5b240000088407969b5c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff7969b5c0af03c740c971523f03e56b3f4c37af40000080407969b5c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff7969b5c0b22ebe40c971523f1b3d6a3ff090ba40000088407a69b5c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff7a69b540e93cca4026b74a3fce8a733ff2d2b640000080407a69b5c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff7a69b540ed67c14026b74a3fe5e2713ff090ba4000008840a69bb3c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffa69bb340e93cca40bc0d4b3fce8a733ff2d2b64000008040a69bb3c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffa69bb340ed67c140bc0d4b3fe5e2713f4af5b24000008840a69bb3c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffa69bb3c0af03c740321b523f03e56b3f4c37af4000008040a69bb3c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffa69bb3c0b22ebe40321b523f1b3d6a3f4af5b24000008840d3cdb1c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffd3cdb1c0af03c7409cc4513f03e56b3f4c37af4000008040d3cdb1c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffd3cdb1c0b22ebe409cc4513f1a3d6a3ff090ba4000008840d3cdb1c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffd3cdb140e93cca4052644b3fce8a733ff2d2b64000008040d3cdb1c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffd3cdb140ed67c14052644b3fe5e2713f4af5b240000088400000b0c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff0000b0c0af03c740066e513f03e56b3f4c37af40000080400000b0c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff0000b0c0b22ebe40066e513f1a3d6a3ff090ba40000088400000b0c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff0000b040e93cca40e9ba4b3fce8a733ff2d2b640000080400000b0c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff0000b040ed67c140e9ba4b3fe5e2713f4af5b240000088406065aac080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff6065aac0ae03c7400c61503f03e56b3f4c37af40000080406065aac080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff6065aac0b22ebe400c61503f1a3d6a3ff090ba40000088406065aac080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff6065aa40e93cca40e3c74c3fce8a733ff2d2b640000080406065aac080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff6065aa40ed67c140e3c74c3fe5e2713f4af5b24000008840c1caa4c081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffc1caa4c0ae03c74012544f3f03e56b3f4c37af4000008040c1caa4c081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffc1caa4c0b22ebe4012544f3f1b3d6a3ff090ba4000008840c1caa4c081e267bff3efd83e000000000000000000000000000080bf000080bfffffffffc1caa440e93cca40dcd44d3fce8a733ff2d2b64000008040c1caa4c081e267bff3efd83e000000000000000000000000000080bf000080bfffffffffc1caa440ed67c140dcd44d3fe5e2713f4af5b2400000884022309fc081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff22309fc0ae03c74018474e3f03e56b3f4c37af400000804022309fc081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff22309fc0b22ebe4018474e3f1b3d6a3ff090ba400000884022309fc081e267bff3efd83e000000000000000000000000000080bf000080bfffffffff22309f40e93cca40d6e14e3fce8a733ff2d2b6400000804022309fc081e267bff3efd83e000000000000000000000000000080bf000080bfffffffff22309f40ed67c140d6e14e3fe5e2713f4af5b24000008840829599c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff829599c0ae03c7401e3a4d3f04e56b3f4c37af4000008040829599c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff829599c0b22ebe401e3a4d3f1b3d6a3ff090ba4000008840829599c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff82959940e93cca40d0ee4f3fce8a733ff2d2b64000008040829599c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff82959940ed67c140d0ee4f3fe5e2713f4af5b24000008840e2fa93c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffe2fa93c0ae03c740242d4c3f04e56b3f4c37af4000008040e2fa93c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffe2fa93c0b22ebe40242d4c3f1b3d6a3ff090ba4000008840e2fa93c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffe2fa9340e93cca40cafb503fce8a733ff2d2b64000008040e2fa93c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffe2fa9340ed67c140cafb503fe5e2713f4af5b2400000884043608ec081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff43608ec0ae03c7402b204b3f04e56b3f4c37af400000804043608ec081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff43608ec0b22ebe402b204b3f1b3d6a3ff090ba400000884042608ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff42608e40e93cca40c408523fce8a733ff2d2b6400000804042608ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff42608e40ed67c140c408523fe5e2713f4af5b24000008840a3c588c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffa3c588c0ae03c74031134a3f04e56b3f4c37af4000008040a3c588c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffa3c588c0b22ebe4031134a3f1b3d6a3ff090ba4000008840a3c588c081e267bff3efd83e000000000000000000000000000080bf000080bfffffffffa3c58840e93cca40be15533fce8a733ff2d2b64000008040a3c588c081e267bff3efd83e000000000000000000000000000080bf000080bfffffffffa3c58840ed67c140be15533fe5e2713f4af5b24000008840032b83c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff032b83c0ae03c7403706493f04e56b3f4c37af4000008040032b83c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff032b83c0b22ebe403706493f1b3d6a3ff090ba4000008840032b83c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff032b8340e93cca40b822543fce8a733ff2d2b64000008040032b83c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff032b8340ed67c140b822543fe5e2713f4af5b24000008840032b83c00000000000000000000080bf0000803f0000000000000000000080bfffffffff4af5b24000008840f5dc1e3febc8b43ef090ba4000008840032b83c00000000000000000000080bf0000803f0000000000000000000080bffffffffff090ba40000088403d421e3f6433b23ef2d2b64000008040032b83c00000000000000000000080bf0000803f0000000000000000000080bffffffffff2d2b6400000804026ea1f3f6433b23e4c37af4000008040032b83c00000000000000000000080bf0000803f0000000000000000000080bfffffffff4c37af4000008040de84203febc8b43ea459ab4000008840976ebec000000000000000000000803f000080bf0000000000000000000080bfffffffffa459abc0000088400909233ffe4bb53efebda34000008840976ebec000000000000000000000803f000080bf0000000000000000000080bffffffffffebda3c000008840516e223f85e1b73e0000a04000008040976ebec000000000000000000000803f000080bf0000000000000000000080bfffffffff0000a0c00000804068c6203f85e1b73ea69ba74000008040976ebec000000000000000000000803f000080bf0000000000000000000080bfffffffffa69ba7c0000080402061213ffe4bb53efebda34000008840976ebec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff976ebec03991c040b822543f91fb693ffebda34000008840c4a0bcc080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffc4a0bcc03991c04022cc533f91fb693f0000a04000008040c4a0bcc080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffc4a0bcc03dbcb74022cc533fa853683f0000a04000008040976ebec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff976ebec03dbcb740b822543fa853683fa459ab4000008840c4a0bcc080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffc4a0bc4074cac340cd5c493f5ba1713fa459ab4000008840976ebec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff976ebe4074cac3403706493f5ba1713fa69ba74000008040976ebec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff976ebe4078f5ba403706493f72f96f3fa69ba74000008040c4a0bcc080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffc4a0bc4078f5ba40cd5c493f72f96f3ffebda34000008840f2d2bac080e2673ff3efd8be0000000000000000000000000000803f000080bffffffffff2d2bac03991c0408c75533f91fb693f0000a04000008040f2d2bac080e2673ff3efd8be0000000000000000000000000000803f000080bffffffffff2d2bac03dbcb7408b75533fa853683fa459ab4000008840f2d2bac080e267bff3efd83e000000000000000000000000000080bf000080bffffffffff2d2ba4074cac34063b3493f5ba1713fa69ba74000008040f2d2bac080e267bff3efd83e000000000000000000000000000080bf000080bffffffffff2d2ba4078f5ba4063b3493f72f96f3ffebda340000088401f05b9c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff1f05b9c03991c040f51e533f91fb693f0000a040000080401f05b9c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff1f05b9c03dbcb740f51e533fa853683fa459ab40000088401f05b9c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff1f05b94074cac340f9094a3f5ba1713fa69ba740000080401f05b9c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff1f05b94078f5ba40f9094a3f72f96f3ffebda340000088404c37b7c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff4c37b7c03991c0405fc8523f91fb693f0000a040000080404c37b7c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff4c37b7c03dbcb7405fc8523fa853683fa459ab40000088404c37b7c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff4c37b74074cac34090604a3f5ba1713fa69ba740000080404c37b7c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff4c37b74078f5ba4090604a3f72f96f3ffebda340000088407969b5c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff7969b5c03991c040c971523f91fb693f0000a040000080407969b5c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff7969b5c03dbcb740c971523fa853683fa459ab40000088407a69b5c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff7a69b54074cac34026b74a3f5ba1713fa69ba740000080407a69b5c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff7a69b54078f5ba4026b74a3f72f96f3fa459ab4000008840a69bb3c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffa69bb34074cac340bc0d4b3f5ba1713fa69ba74000008040a69bb3c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffa69bb34078f5ba40bc0d4b3f72f96f3ffebda34000008840a69bb3c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffa69bb3c03991c040321b523f91fb693f0000a04000008040a69bb3c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffa69bb3c03dbcb740321b523fa853683ffebda34000008840d3cdb1c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffd3cdb1c03991c0409cc4513f91fb693f0000a04000008040d3cdb1c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffd3cdb1c03dbcb7409cc4513fa853683fa459ab4000008840d3cdb1c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffd3cdb14074cac34053644b3f5ba1713fa69ba74000008040d3cdb1c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffd3cdb14078f5ba4052644b3f73f96f3ffebda340000088400000b0c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff0000b0c03991c040066e513f91fb693f0000a040000080400000b0c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff0000b0c03dbcb740066e513fa853683fa459ab40000088400000b0c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff0000b04074cac340e9ba4b3f5ba1713fa69ba740000080400000b0c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff0000b04078f5ba40e9ba4b3f73f96f3ffebda340000088406065aac080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff6065aac03991c0400c61503f91fb693f0000a040000080406065aac080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff6065aac03cbcb7400c61503fa853683fa459ab40000088406065aac080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff6065aa4073cac340e3c74c3f5ba1713fa69ba740000080406065aac080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff6065aa4077f5ba40e3c74c3f73f96f3ffebda34000008840c1caa4c081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffc1caa4c03991c04012544f3f91fb693f0000a04000008040c1caa4c081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffc1caa4c03cbcb74012544f3fa853683fa459ab4000008840c1caa4c081e267bff3efd83e000000000000000000000000000080bf000080bfffffffffc1caa44073cac340dcd44d3f5ba1713fa69ba74000008040c1caa4c081e267bff3efd83e000000000000000000000000000080bf000080bfffffffffc1caa44077f5ba40dcd44d3f72f96f3ffebda3400000884022309fc081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff22309fc03991c04018474e3f91fb693f0000a0400000804022309fc081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff22309fc03cbcb74018474e3fa853683fa459ab400000884022309fc081e267bff3efd83e000000000000000000000000000080bf000080bfffffffff22309f4073cac340d6e14e3f5ba1713fa69ba7400000804022309fc081e267bff3efd83e000000000000000000000000000080bf000080bfffffffff22309f4077f5ba40d6e14e3f72f96f3ffebda34000008840829599c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff829599c03991c0401e3a4d3f91fb693f0000a04000008040829599c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff829599c03cbcb7401e3a4d3fa853683fa459ab4000008840829599c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff8295994073cac340d0ee4f3f5ba1713fa69ba74000008040829599c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff8295994077f5ba40d0ee4f3f72f96f3ffebda34000008840e2fa93c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffe2fa93c03991c040242d4c3f91fb693f0000a04000008040e2fa93c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffe2fa93c03cbcb740242d4c3fa853683fa459ab4000008840e2fa93c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffe2fa934073cac340cafb503f5ba1713fa69ba74000008040e2fa93c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffe2fa934077f5ba40cafb503f72f96f3ffebda3400000884042608ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff42608ec03991c0402b204b3f91fb693f0000a0400000804042608ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff42608ec03cbcb7402a204b3fa853683fa459ab400000884042608ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff42608e4073cac340c408523f5ba1713fa69ba7400000804042608ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff42608e4077f5ba40c408523f72f96f3ffebda34000008840a2c588c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffa2c588c03991c04031134a3f91fb693f0000a04000008040a2c588c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffa2c588c03cbcb74030134a3fa853683fa459ab4000008840a3c588c081e267bff3efd83e000000000000000000000000000080bf000080bfffffffffa3c5884073cac340be15533f5ba1713fa69ba74000008040a3c588c081e267bff3efd83e000000000000000000000000000080bf000080bfffffffffa3c5884077f5ba40be15533f72f96f3fa459ab4000008840032b83c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff032b834073cac340b822543f5ba1713fa69ba74000008040032b83c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff032b834077f5ba40b822543f72f96f3ffebda34000008840032b83c081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff032b83c03991c0403706493f91fb693f0000a04000008040032b83c081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff032b83c03cbcb7403706493fa853683ffebda34000008840032b83c00000000000000000000080bf0000803f0000000000000000000080bffffffffffebda34000008840221e373fd5bfa73ea459ab4000008840032b83c00000000000000000000080bf0000803f0000000000000000000080bfffffffffa459ab40000088406983363f4e2aa53ea69ba74000008040032b83c00000000000000000000080bf0000803f0000000000000000000080bfffffffffa69ba74000008040522b383f4e2aa53e0000a04000008040032b83c00000000000000000000080bf0000803f0000000000000000000080bfffffffff0000a040000080400bc6383fd5bfa73e58229c4000008840976ebec000000000000000000000803f000080bf0000000000000000000080bfffffffff58229cc000008840de84203ffe4bb53eb286944000008840976ebec000000000000000000000803f000080bf0000000000000000000080bfffffffffb28694c00000884026ea1f3f85e1b73eb4c8904000008040976ebec000000000000000000000803f000080bf0000000000000000000080bfffffffffb4c890c0000080403d421e3f85e1b73e5a64984000008040976ebec000000000000000000000803f000080bf0000000000000000000080bfffffffff5a6498c000008040f5dc1e3ffe4bb53eb286944000008840976ebec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff976ebec0c31eba40b822543fac28663fb286944000008840c4a0bcc080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffc4a0bcc0c31eba4022cc533fac28663fb4c8904000008040c4a0bcc080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffc4a0bcc0c749b14022cc533fc380643fb4c8904000008040976ebec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff976ebec0c749b140b822543fc380643f58229c4000008840c4a0bcc080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffc4a0bc40fe57bd40cd5c493fe8b76f3f58229c4000008840976ebec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff976ebe40fe57bd403706493fe8b76f3f5a64984000008040976ebec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff976ebe400283b4403706493f00106e3f5a64984000008040c4a0bcc080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffc4a0bc400283b440cd5c493f00106e3fb286944000008840f1d2bac080e2673ff3efd8be0000000000000000000000000000803f000080bffffffffff1d2bac0c31eba408b75533fac28663fb4c8904000008040f1d2bac080e2673ff3efd8be0000000000000000000000000000803f000080bffffffffff1d2bac0c749b1408b75533fc380643f58229c4000008840f2d2bac080e267bff3efd83e000000000000000000000000000080bf000080bffffffffff2d2ba40fe57bd4063b3493fe9b76f3f5a64984000008040f2d2bac080e267bff3efd83e000000000000000000000000000080bf000080bffffffffff2d2ba400283b44063b3493f00106e3fb2869440000088401e05b9c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff1e05b9c0c31eba40f51e533fac28663fb4c89040000080401e05b9c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff1e05b9c0c749b140f51e533fc380643f58229c40000088401f05b9c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff1f05b940fe57bd40f9094a3fe9b76f3f5a649840000080401f05b9c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff1f05b9400283b440f9094a3f00106e3f58229c40000088404c37b7c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff4c37b740fe57bd4090604a3fe9b76f3f5a649840000080404c37b7c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff4c37b7400283b44090604a3f00106e3fb2869440000088404c37b7c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff4c37b7c0c31eba405fc8523fac28663fb4c89040000080404c37b7c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff4c37b7c0c749b1405fc8523fc380643fb2869440000088407969b5c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff7969b5c0c31eba40c971523fac28663fb4c89040000080407969b5c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff7969b5c0c749b140c971523fc380643f58229c40000088407a69b5c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff7a69b540fe57bd4026b74a3fe9b76f3f5a649840000080407a69b5c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff7a69b5400283b44026b74a3f00106e3f58229c4000008840a69bb3c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffa69bb340fe57bd40bc0d4b3fe9b76f3f5a64984000008040a69bb3c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffa69bb3400283b440bc0d4b3f00106e3fb286944000008840a69bb3c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffa69bb3c0c31eba40321b523fac28663fb4c8904000008040a69bb3c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffa69bb3c0c749b140321b523fc380643fb286944000008840d3cdb1c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffd3cdb1c0c31eba409cc4513fac28663fb4c8904000008040d3cdb1c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffd3cdb1c0c749b1409cc4513fc380643f58229c4000008840d3cdb1c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffd3cdb140fe57bd4053644b3fe9b76f3f5a64984000008040d3cdb1c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffd3cdb1400283b44052644b3f00106e3fb2869440000088400000b0c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff0000b0c0c31eba40066e513fac28663fb4c89040000080400000b0c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff0000b0c0c749b140066e513fc380643f58229c40000088400000b0c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff0000b040fe57bd40e9ba4b3fe9b76f3f5a649840000080400000b0c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff0000b0400283b440e9ba4b3f00106e3fb2869440000088406065aac080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff6065aac0c31eba400c61503fac28663fb4c89040000080406065aac080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff6065aac0c749b1400c61503fc380643f58229c40000088406065aac080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff6065aa40fe57bd40e3c74c3fe9b76f3f5a649840000080406065aac080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff6065aa400283b440e3c74c3f00106e3fb286944000008840c1caa4c081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffc1caa4c0c31eba4012544f3fac28663fb4c8904000008040c1caa4c081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffc1caa4c0c749b14012544f3fc380643f58229c4000008840c1caa4c081e267bff3efd83e000000000000000000000000000080bf000080bfffffffffc1caa440fe57bd40dcd44d3fe9b76f3f5a64984000008040c1caa4c081e267bff3efd83e000000000000000000000000000080bf000080bfffffffffc1caa4400283b440dcd44d3f00106e3fb28694400000884022309fc081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff22309fc0c31eba4018474e3fac28663fb4c890400000804022309fc081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff22309fc0c749b14018474e3fc380643f58229c400000884022309fc081e267bff3efd83e000000000000000000000000000080bf000080bfffffffff22309f40fe57bd40d6e14e3fe9b76f3f5a6498400000804022309fc081e267bff3efd83e000000000000000000000000000080bf000080bfffffffff22309f400283b440d6e14e3f00106e3fb286944000008840829599c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff829599c0c31eba401e3a4d3fac28663fb4c8904000008040829599c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff829599c0c749b1401e3a4d3fc380643f58229c4000008840829599c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff82959940fe57bd40d0ee4f3fe9b76f3f5a64984000008040829599c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff829599400283b440d0ee4f3f00106e3fb286944000008840e2fa93c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffe2fa93c0c31eba40242d4c3fac28663fb4c8904000008040e2fa93c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffe2fa93c0c749b140242d4c3fc380643f58229c4000008840e2fa93c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffe2fa9340fe57bd40cafb503fe9b76f3f5a64984000008040e2fa93c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffe2fa93400283b440cafb503f00106e3fb28694400000884043608ec081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff43608ec0c31eba402b204b3fac28663fb4c890400000804043608ec081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff43608ec0c749b1402b204b3fc380643f58229c400000884042608ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff42608e40fe57bd40c408523fe9b76f3f5a6498400000804042608ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff42608e400283b440c408523f00106e3fb286944000008840a3c588c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffa3c588c0c31eba4031134a3fac28663fb4c8904000008040a3c588c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffa3c588c0c749b14031134a3fc380643f58229c4000008840a3c588c081e267bff3efd83e000000000000000000000000000080bf000080bfffffffffa3c58840fe57bd40be15533fe8b76f3f5a64984000008040a3c588c081e267bff3efd83e000000000000000000000000000080bf000080bfffffffffa3c588400283b440be15533f00106e3fb286944000008840032b83c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff032b83c0c31eba403706493fac28663fb4c8904000008040032b83c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff032b83c0c749b1403706493fc380643f58229c4000008840032b83c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff032b8340fe57bd40b822543fe8b76f3f5a64984000008040032b83c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff032b83400283b440b822543f00106e3fb286944000008840032b83c00000000000000000000080bf0000803f0000000000000000000080bfffffffffb2869440000088402061213febc8b43e58229c4000008840032b83c00000000000000000000080bf0000803f0000000000000000000080bfffffffff58229c400000884068c6203f6433b23e5a64984000008040032b83c00000000000000000000080bf0000803f0000000000000000000080bfffffffff5a64984000008040516e223f6433b23eb4c8904000008040032b83c00000000000000000000080bf0000803f0000000000000000000080bfffffffffb4c89040000080400909233febc8b43e0ceb8c4000008840976ebec00000000000000000ffff7f3f000080bf0000000000000000000080bfffffffff0ceb8cc0000088400bc6383fe842a83e674f854000008840976ebec00000000000000000ffff7f3f000080bf0000000000000000000080bfffffffff674f85c000008840522b383f6fd8aa3e6991814000008040976ebec00000000000000000ffff7f3f000080bf0000000000000000000080bfffffffff699181c0000080406983363f6fd8aa3e0e2d894000008040976ebec00000000000000000ffff7f3f000080bf0000000000000000000080bfffffffff0e2d89c000008040221e373fe842a83e674f854000008840976ebec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff976ebec04eacb340b822543f1f12683f674f854000008840c4a0bcc080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffc4a0bcc04eacb34022cc533f1f12683f6991814000008040c4a0bcc080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffc4a0bcc052d7aa4022cc533f366a663f6991814000008040976ebec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff976ebec052d7aa40b822543f366a663f0ceb8c4000008840c4a0bcc080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffc4a0bc4088e5b640cd5c493f76ce6d3f0ceb8c4000008840976ebec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff976ebe4088e5b6403706493f76ce6d3f0e2d894000008040976ebec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff976ebe408c10ae403706493f8d266c3f0e2d894000008040c4a0bcc080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffc4a0bc408c10ae40cd5c493f8d266c3f674f854000008840f2d2bac080e2673ff3efd8be0000000000000000000000000000803f000080bffffffffff2d2bac04eacb3408c75533f1f12683f6991814000008040f2d2bac080e2673ff3efd8be0000000000000000000000000000803f000080bffffffffff2d2bac052d7aa408b75533f366a663f0ceb8c4000008840f2d2bac080e267bff3efd83e000000000000000000000000000080bf000080bffffffffff2d2ba4088e5b64063b3493f76ce6d3f0e2d894000008040f2d2bac080e267bff3efd83e000000000000000000000000000080bf000080bffffffffff2d2ba408c10ae4063b3493f8d266c3f674f8540000088401f05b9c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff1f05b9c04eacb340f51e533f1e12683f69918140000080401f05b9c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff1f05b9c052d7aa40f51e533f366a663f0ceb8c40000088401f05b9c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff1f05b94088e5b640f9094a3f76ce6d3f0e2d8940000080401f05b9c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff1f05b9408c10ae40f9094a3f8d266c3f674f8540000088404c37b7c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff4c37b7c04eacb3405fc8523f1e12683f69918140000080404c37b7c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff4c37b7c052d7aa405fc8523f366a663f0ceb8c40000088404c37b7c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff4c37b74088e5b64090604a3f76ce6d3f0e2d8940000080404c37b7c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff4c37b7408c10ae4090604a3f8d266c3f674f8540000088407969b5c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff7969b5c04eacb340c971523f1e12683f69918140000080407969b5c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff7969b5c052d7aa40c971523f356a663f0ceb8c40000088407a69b5c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff7a69b54088e5b64026b74a3f76ce6d3f0e2d8940000080407a69b5c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff7a69b5408c10ae4026b74a3f8d266c3f0ceb8c4000008840a69bb3c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffa69bb34088e5b640bc0d4b3f76ce6d3f0e2d894000008040a69bb3c081e267bff4efd83e000000000000000000000000000080bf000080bfffffffffa69bb3408c10ae40bc0d4b3f8d266c3f674f854000008840a69bb3c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffa69bb3c04eacb340321b523f1e12683f6991814000008040a69bb3c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffa69bb3c052d7aa40321b523f356a663f674f854000008840d3cdb1c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffd3cdb1c04eacb3409cc4513f1e12683f6991814000008040d3cdb1c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffd3cdb1c052d7aa409cc4513f356a663f0ceb8c4000008840d3cdb1c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffd3cdb14088e5b64053644b3f76ce6d3f0e2d894000008040d3cdb1c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffd3cdb1408c10ae4052644b3f8d266c3f674f8540000088400000b0c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff0000b0c04eacb340066e513f1e12683f69918140000080400000b0c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff0000b0c052d7aa40066e513f356a663f0ceb8c40000088400000b0c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff0000b04088e5b640e9ba4b3f76ce6d3f0e2d8940000080400000b0c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff0000b0408c10ae40e9ba4b3f8d266c3f674f8540000088406065aac080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff6065aac04eacb3400c61503f1e12683f69918140000080406065aac080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff6065aac052d7aa400c61503f356a663f0ceb8c40000088406065aac080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff6065aa4088e5b640e3c74c3f76ce6d3f0e2d8940000080406065aac080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff6065aa408c10ae40e3c74c3f8d266c3f674f854000008840c1caa4c081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffc1caa4c04eacb34012544f3f1e12683f6991814000008040c1caa4c081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffc1caa4c052d7aa4012544f3f356a663f0ceb8c4000008840c1caa4c081e267bff3efd83e000000000000000000000000000080bf000080bfffffffffc1caa44088e5b640dcd44d3f76ce6d3f0e2d894000008040c1caa4c081e267bff3efd83e000000000000000000000000000080bf000080bfffffffffc1caa4408c10ae40dcd44d3f8d266c3f674f85400000884022309fc081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff22309fc04eacb34018474e3f1e12683f699181400000804022309fc081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff22309fc052d7aa4018474e3f356a663f0ceb8c400000884022309fc081e267bff3efd83e000000000000000000000000000080bf000080bfffffffff22309f4088e5b640d6e14e3f76ce6d3f0e2d89400000804022309fc081e267bff3efd83e000000000000000000000000000080bf000080bfffffffff22309f408c10ae40d6e14e3f8d266c3f674f854000008840829599c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff829599c04eacb3401e3a4d3f1e12683f6991814000008040829599c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff829599c052d7aa401e3a4d3f366a663f0ceb8c4000008840829599c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff8295994088e5b640d0ee4f3f76ce6d3f0e2d894000008040829599c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff829599408c10ae40d0ee4f3f8d266c3f674f854000008840e2fa93c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffe2fa93c04eacb340242d4c3f1e12683f6991814000008040e2fa93c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffe2fa93c052d7aa40242d4c3f366a663f0ceb8c4000008840e2fa93c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffe2fa934088e5b640cafb503f76ce6d3f0e2d894000008040e2fa93c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffffe2fa93408c10ae40cafb503f8d266c3f674f85400000884042608ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff42608ec04eacb3402b204b3f1f12683f699181400000804042608ec080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff42608ec052d7aa402a204b3f366a663f0ceb8c400000884042608ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff42608e4088e5b640c408523f76ce6d3f0e2d89400000804042608ec080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff42608e408c10ae40c408523f8d266c3f674f854000008840a2c588c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffa2c588c04eacb34031134a3f1f12683f6991814000008040a2c588c080e2673ff3efd8be0000000000000000000000000000803f000080bfffffffffa2c588c052d7aa4030134a3f366a663f0ceb8c4000008840a3c588c081e267bff3efd83e000000000000000000000000000080bf000080bfffffffffa3c5884088e5b640be15533f76ce6d3f0e2d894000008040a3c588c081e267bff3efd83e000000000000000000000000000080bf000080bfffffffffa3c588408c10ae40be15533f8d266c3f0ceb8c4000008840032b83c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff032b834088e5b640b822543f76ce6d3f0e2d894000008040032b83c080e267bff3efd83e000000000000000000000000000080bf000080bfffffffff032b83408c10ae40b822543f8d266c3f674f854000008840032b83c081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff032b83c04eacb3403706493f1f12683f6991814000008040032b83c081e2673ff3efd8be0000000000000000000000000000803f000080bfffffffff032b83c052d7aa403706493f366a663f674f854000008840032b83c00000000000000000ffff7fbf0000803f0000000000000000000080bfffffffff674f854000008840221e373f08f1ad3e0ceb8c4000008840032b83c00000000000000000ffff7fbf0000803f0000000000000000000080bfffffffff0ceb8c40000088406983363f815bab3e0e2d894000008040032b83c00000000000000000ffff7fbf0000803f0000000000000000000080bfffffffff0e2d894000008040522b383f815bab3e6991814000008040032b83c00000000000000000ffff7fbf0000803f0000000000000000000080bfffffffff69918140000080400bc6383f08f1ad3e00000040000040400000803f00000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c00000803f4a155c3da202eb3e00008040000040400000803f00000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c00000803f4c155c3d2381013f00000040000060400000803f00000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c00000803f52833c3f5d03bb3e00008040000060400000803f00000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c00000803f2583483f5d03bb3e00000040000060400000404000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c00000404052833c3fff02d33e00008040000060400000404000000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0000040402583483f0003d33e0000b040000060400000404000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000b0c0000040400283513f0003d33e0000b040000060400000803f00000000000080bf00000000000080bf0000000000000000000080bfffffffff0000b0c00000803f0283513f5d03bb3e00000000000060400000803f00000000000080bf00000000000080bf0000000000000000000080bfffffffff000000000000803f8083303f5d03bb3e00000000000060400000404000000000000080bf00000000000080bf0000000000000000000080bfffffffff00000000000040408083303fff02d33e0000a0c000004040000000c02ef9643f2ef9e4be0000000000000000000000000000803f000080bfffffffff000000c02ef9e43efb000c3f120a923d0000a0c000004040000080c02ef9643f2ef9e4be0000000000000000000000000000803f000080bfffffffff000080c02ef9e43ece00183f130a923d000098c000006040000000c02ef9643f2ef9e4be0000000000000000000000000000803f000080bfffffffff000000c02acc803ffa000c3fe1deac3d000098c000006040000080c02ef9643f2ef9e4be0000000000000000000000000000803f000080bfffffffff000080c02acc803fce00183fe3deac3d0000a0c000004040000040402ff9643f2ff9e4be0000000000000000000000000000803f000080bfffffffff000040402ef9e43ed902dc3e1e0a923d000098c000006040000040402ff9643f2ff9e4be0000000000000000000000000000803f000080bfffffffff000040402acc803fda02dc3eecdeac3d000000c000004040000000c0000080bf00000000000000000000000000000000000080bf000080bfffffffff0000004000004040bf001b3f89741f3e000000c00000404000004040000080bf00000000000000000000000000000000000080bf000080bfffffffff000040c0000040404b00393f86741f3e000000c000006040000000c0000080bf00000000000000000000000000000000000080bf000080bfffffffff0000004000006040be001b3f5b742b3e000000c00000604000004040000080bf00000000000000000000000000000000000080bf000080bfffffffff000040c0000060404a00393f58742b3e000000c000004040000080c0000080bf00000000000000000000000000000000000080bf000080bfffffffff0000804000004040ee000f3f82741f3e000000c000006040000080c0000080bf00000000000000000000000000000000000080bf000080bfffffffff0000804000006040ed000f3f55742b3e000000c000004040000008c1000080bf00000000000000000000000000000000000080bf000080bfffffffff0000084100004040ab02e83e8c741f3e000000c000006040000008c1000080bf00000000000000000000000000000000000080bf000080bfffffffff0000084100006040a902e83e5e742b3e0000a0c000004040000008c12ff9643f2ff9e4be0000000000000000000000000000803f000080bfffffffff000008c12ff9e43e6900333f1c0a923d000098c000006040000008c12ff9643f2ff9e4be0000000000000000000000000000803f000080bfffffffff000008c12acc803f6700333febdeac3d000000c000004040000058c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00005841000040408cc4513fd202df3e000000c000004040000038c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00003841000040405ec45d3fd102df3e000000c000006040000058c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00005841000060408bc4513fbb02e53e000000c000006040000038c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00003841000060405dc45d3fba02e53e0000a0c000004040000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c1000040402400453f200a923d0000a0c000004040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c100004040f5ff503f1e0a923d0000a0c000006040000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c1000060402400453fc309aa3d0000a0c000006040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c100006040f5ff503fc109aa3d0000084100008040000018c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000008c1000018c112416c3f643c8f3e0000204100008040000018c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000020c1000018c1ef40753f623c8f3e00000841000080400000d0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000008c10000d0c014416c3fd93bb33e00002041000080400000d0c000000000000080bf00000000000080bf0000000000000000000080bfffffffff000020c10000d0c0f040753fd73bb33e0000204100000040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000020c100000040c5c4423f9286323f0000004100000000000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000000c100000000f3c4363fc186263f0000004100000040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000000c100000040c5c4423fc186263f0000204100000000000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000020c100000000f4c4363f9386323f00000041000000000000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000c1000000006a83363fc186263f00002041000000000000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000020c1000000006a83363f9286323f00002041000000400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000020c10000004097832a3f9386323f00000041000000400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000c10000004097832a3fc186263f0000004000000000000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c00000000035476d3f9489373f0000804000000000000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c00000000035476d3f6689433f0000804000000040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000000406347613f6689433f0000004000000040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c0000000406347613f9489373f0000c04000000040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff0000c0c0000000409288793f9386323f0000804000000000000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000080c000000000c0886d3fc286263f0000804000000040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000080c0000000409188793fc186263f0000c04000000000000000000000000000000000000080bf000080bf00000000000000000000803fffffffff0000c0c000000000c1886d3f9486323f0000244100000040000080c0000080bf000000000000000000000000000000000000803f0000803fffffffff000080c0000000406547613fc286263f0000244100000000000000c0000080bf000000000000000000000000000000000000803f0000803fffffffff000000c00000000037476d3f9386323f0000244100000040000000c0000080bf000000000000000000000000000000000000803f0000803fffffffff000000c0000000406647613f9486323f0000244100000000000080c0000080bf000000000000000000000000000000000000803f0000803fffffffff000080c00000000036476d3fc186263f0000a0c000000000000000c00000803f000000000000000000000000000000000000803f000080bfffffffff000000c000000000ff000c3fee15833a0000a0c000000000000080c00000803f000000000000000000000000000000000000803f000080bfffffffff000080c000000000d000183f8014833a0000a0c000000040000080c00000803f000000000000000000000000000000000000803f000080bfffffffff000080c000000040d100183fb715443d0000a0c000000040000000c00000803f000000000000000000000000000000000000803f000080bfffffffff000000c000000040ff000c3fc215443d0000000000000040000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff00000000000000400a06553f9386323f000080bf00000000000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff0000803f000000003806493faa862c3f000080bf00000040000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff0000803f000000400a06553faa862c3f0000000000000000000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff00000000000000003806493f9386323f000080bf00000000000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff0000803f000000003042213f008c633f0000000000000000000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff00000000000000003042213fe98b693f0000000000000040000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff00000000000000405e42153fea8b693f000080bf00000040000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff0000803f000000405f42153f018c633f000020410000004000000000000080bf000000000000000000000000000000000000803f0000803fffffffff000000000000004077420f3feec73e3f000020410000000000004040000080bf000000000000000000000000000000000000803f0000803fffffffff00004040000000003142213f1cc8323f000020410000004000004040000080bf000000000000000000000000000000000000803f0000803fffffffff00004040000000403142213feec73e3f000020410000000000000000000080bf000000000000000000000000000000000000803f0000803fffffffff000000000000000077420f3f1cc8323f0000c04000000000000040400000803f000000000000000000000000000000000000803f000080bfffffffff0000404000000000f3c4363fefca433f0000c04000000000000000000000803f000000000000000000000000000000000000803f000080bfffffffff0000000000000000adc4483fefca433f0000c04000000040000000000000803f000000000000000000000000000000000000803f000080bfffffffff0000000000000040adc4483fc1ca4f3f0000c04000000040000040400000803f000000000000000000000000000000000000803f000080bfffffffff0000404000000040f3c4363fc1ca4f3f0000003f00000040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000000bf000000408083303fda0e733f0000000000000000000000000000000000000000000080bf000080bf00000000000000000000803fffffffff0000000000000000ae83243fe60e703f0000000000000040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff00000000000000408083303fe50e703f0000003f00000000000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000000bf00000000ae83243fda0e733f0000004000000040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000000c0000000408083303fb70e7c3f0000004000000000000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000000c000000000af83243fb70e7c3f00000000000000000000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff0000000000000000adc4483f9489373f0000003f000000000000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf00000000adc4483f89893a3f0000003f000000400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf00000040dcc43c3f89893a3f00000000000000400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff0000000000000040dcc43c3f9489373f00000040000000000000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000c000000000adc4483f6689433f00000040000000400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000c000000040dbc43c3f6689433f0000244100000040000000bf000080bf000000000000000000000000000000000000803f0000803fffffffff000000bf00000040a205703f1486d33e000024410000000000000000000080bf000000000000000000000000000000000000803f0000803fffffffff000000000000000074057c3ffd85d93e000024410000004000000000000080bf000000000000000000000000000000000000803f0000803fffffffff0000000000000040a205703ffd85d93e0000244100000000000000bf000080bf000000000000000000000000000000000000803f0000803fffffffff000000bf0000000074057c3f1486d33e0000204100000040000000c0000080bf000000000000000000000000000000000000803f0000803fffffffff000000c000000040e4055e3f16040b3f0000204100000000000000bf000080bf000000000000000000000000000000000000803f0000803fffffffff000000bf00000000b6056a3ff303143f0000204100000040000000bf000080bf000000000000000000000000000000000000803f0000803fffffffff000000bf00000040e5055e3ff303143f0000204100000000000000c0000080bf000000000000000000000000000000000000803f0000803fffffffff000000c000000000b6056a3f16040b3f0000000000000000000000000000803f000000000000000000000000000000000000803f000080bfffffffff00000000000000003706493f6689433f0000000000000000000000bf0000803f000000000000000000000000000000000000803f000080bfffffffff000000bf000000003706493f7189403f0000000000000040000000bf0000803f000000000000000000000000000000000000803f000080bfffffffff000000bf000000400906553f7189403f0000000000000040000000000000803f000000000000000000000000000000000000803f000080bfffffffff00000000000000400906553f6689433f0000000000000000000000c00000803f000000000000000000000000000000000000803f000080bfffffffff000000c0000000003706493f9489373f0000000000000040000000c00000803f000000000000000000000000000000000000803f000080bfffffffff000000c0000000400906553f9489373f00002041000000400000b0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000b0c0000000405e42153fb14a543f0000204100000000000080c0000080bf000000000000000000000000000000000000803f0000803fffffffff000080c0000000003042213f8e4a5d3f0000204100000040000080c0000080bf000000000000000000000000000000000000803f0000803fffffffff000080c0000000405e42153f8e4a5d3f00002041000000000000b0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000b0c0000000003042213fb04a543f00002041000000400000c0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000c0c0000000405e42153fbc4a513f00002041000000000000c0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000c0c0000000003042213fbc4a513f0000000000000000000080c00000803f000000000000000000000000000000000000803f000080bfffffffff000080c000000000af83243ff58b663f00000000000000000000b0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000b0c000000000ae83243f188c5d3f00000000000000400000b0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000b0c0000000408083303f178c5d3f0000000000000040000080c00000803f000000000000000000000000000000000000803f000080bfffffffff000080c0000000408083303ff58b663f00000000000000000000c0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000c0c000000000af83243f238c5a3f00000000000000400000c0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000c0c0000000408083303f238c5a3f00000040000000000000c0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000c0c000000000ae83243f994a5a3f00000040000000000000f0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000f0c000000000ae83243fbc4a513f00000040000000400000f0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000f0c0000000408083303fbc4a513f00000040000000400000c0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000c0c0000000408083303f994a5a3f0000004000000000000000c10000803f000000000000000000000000000000000000803f000080bfffffffff000000c100000000af83243fc74a4e3f0000004000000040000000c10000803f000000000000000000000000000000000000803f000080bfffffffff000000c1000000408083303fc74a4e3f00000041000000400000f0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000f0c0000000405e42153f5509483f00000041000000000000c0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000c0c0000000003142213f3209513f00000041000000400000c0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000c0c0000000405f42153f3309513f00000041000000000000f0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000f0c0000000003042213f5509483f0000004100000040000000c1000080bf000000000000000000000000000000000000803f0000803fffffffff000000c1000000405e42153f6109453f0000004100000000000000c1000080bf000000000000000000000000000000000000803f0000803fffffffff000000c1000000003042213f6009453f0000f04000000040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000f0c000000040f741303f092ab73e0000c04000000000000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000c0c0000000002542243f4f2aa53e0000c04000000040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000c0c000000040f641303f4e2aa53e0000f04000000000000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000f0c0000000002542243f0a2ab73e0000004100000040000050400000000000000000000080bf000080bf00000000000000000000803fffffffff000000c1000000408b05763ff908e03e0000f04000000000000050400000000000000000000080bf000080bf00000000000000000000803fffffffff0000f0c000000000b9056a3f1009da3e0000f04000000040000050400000000000000000000080bf000080bf00000000000000000000803fffffffff0000f0c0000000408b05763f1009da3e0000004100000000000050400000000000000000000080bf000080bf00000000000000000000803fffffffff000000c100000000b9056a3ff908e03e0000f04000000000000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c00000000036476d3f1cc8323f0000004100000000000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c10000000035476d3f11c8353f0000004100000040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c1000000406447613f11c8353f0000f04000000040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c0000000406447613f1dc8323f000080400000004000000000000080bf000000000000000000000000000000000000803f0000803fffffffff0000000000000040b8c4453fde061f3f00008040000000000000003f000080bf000000000000000000000000000000000000803f0000803fffffffff0000003f000000008ac4513fd206223f00008040000000400000003f000080bf000000000000000000000000000000000000803f0000803fffffffff0000003f00000040b8c4453fd206223f000080400000000000000000000080bf000000000000000000000000000000000000803f0000803fffffffff00000000000000008ac4513fde061f3f00000040000000000000003f0000803f000000000000000000000000000000000000803f000080bfffffffff0000003f0000000075420f3f41507c3f0000004000000000000000000000803f000000000000000000000000000000000000803f000080bfffffffff000000000000000075420f3f4d50793f0000004000000040000000000000803f000000000000000000000000000000000000803f000080bfffffffff000000000000004047421b3f4c50793f00000040000000400000003f0000803f000000000000000000000000000000000000803f000080bfffffffff0000003f0000004047421b3f40507c3f000000410000004000004040000080bf000000000000000000000000000000000000803f0000803fffffffff00004040000000408b832d3f5c48223f000000410000000000005040000080bf000000000000000000000000000000000000803f0000803fffffffff00005040000000005d83393f56c8233f000000410000004000005040000080bf000000000000000000000000000000000000803f0000803fffffffff00005040000000408b832d3f56c8233f000000410000000000004040000080bf000000000000000000000000000000000000803f0000803fffffffff00004040000000005d83393f5c48223f0000f04000000000000050400000803f000000000000000000000000000000000000803f000080bfffffffff0000504000000000bf886d3f9a09363f0000f04000000000000040400000803f000000000000000000000000000000000000803f000080bfffffffff0000404000000000bf886d3fa089343f0000f04000000040000040400000803f000000000000000000000000000000000000803f000080bfffffffff00004040000000409188793fa089343f0000f04000000040000050400000803f000000000000000000000000000000000000803f000080bfffffffff00005040000000409088793f9a09363f0000204100000000000000bf00000000000000000000803f000080bf0000000000000000000080bfffffffff000020c1000000005d83393fe009243f0000244100000000000000bf00000000000000000000803f000080bf0000000000000000000080bfffffffff000024c1000000005c83393fda89253f0000244100000040000000bf00000000000000000000803f000080bf0000000000000000000080bfffffffff000024c1000000408b832d3fda89253f0000204100000040000000bf00000000000000000000803f000080bf0000000000000000000080bfffffffff000020c1000000408b832d3fe009243f0000244100000040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000024c1000000407483333fd306223f0000204100000000000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000020c100000000a283273fd886203f0000204100000040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000020c1000000407483333fd886203f0000244100000000000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000024c100000000a283273fd306223f0000204100000000000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff000020c10000000079887f3f1cc8323f0000244100000000000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff000024c10000000079887f3f1648343f0000244100000040000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff000024c100000040a788733f1748343f0000204100000040000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff000020c100000040a888733f1cc8323f0000244100000040000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff000024c1000000408b05763f008ce33e0000204100000000000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff000020c100000000b9056a3f0c8ce03e0000204100000040000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff000020c1000000408b05763f0b8ce03e0000244100000000000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff000024c100000000b9056a3f008ce33e00000040000000000000803f0000803f000000000000000000000000000000000000803f000080bfffffffff0000803f0000000075420f3f36507f3f00000040000000400000803f0000803f000000000000000000000000000000000000803f000080bfffffffff0000803f0000004046421b3f35507f3f00008040000000000000803f000080bf000000000000000000000000000000000000803f0000803fffffffff0000803f000000008ac4513fc706253f00008040000000400000803f000080bf000000000000000000000000000000000000803f0000803fffffffff0000803f00000040b8c4453fc706253f000000c000000040000000c0000080bf000000000000000000000000000000000000803f0000803fffffffff000000c000000040f085dc3ec8086c3f000000c00000000000004040000080bf000000000000000000000000000000000000803f0000803fffffffff000040400000000085420c3ff608603f000000c00000004000004040000080bf000000000000000000000000000000000000803f0000803fffffffff000040400000004083420c3fc8086c3f000000c000000000000000c0000080bf000000000000000000000000000000000000803f0000803fffffffff000000c000000000f485dc3ef608603f0000a0c000000000000040400000803f000000000000000000000000000000000000803f000080bfffffffff0000404000000000e502dc3e5518833a0000a0c000000040000040400000803f000000000000000000000000000000000000803f000080bfffffffff0000404000000040e702dc3ed515443d000000c000000040000008c1000080bf000000000000000000000000000000000000803f0000803fffffffff000008c100000040ad02e83ee574073e000000c000000000000080c0000080bf000000000000000000000000000000000000803f0000803fffffffff000080c000000000ee000f3f36ebae3d000000c000000040000080c0000080bf000000000000000000000000000000000000803f0000803fffffffff000080c000000040ed000f3fe274073e000000c000000000000008c1000080bf000000000000000000000000000000000000803f0000803fffffffff000008c100000000af02e83e3cebae3d0000a0c000000000000008c10000803f000000000000000000000000000000000000803f000080bfffffffff000008c1000000006800333f6f12833a0000a0c000000040000008c10000803f000000000000000000000000000000000000803f000080bfffffffff000008c1000000406900333fa615443d000000c000000040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c100000040dc02dc3ee374073e000000c000000000000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c100000000de02dc3e38ebae3d0000a0c000000000000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c1000000005100393fed12833a0000a0c000000040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c1000000405200393faa15443d000000c000000040000058c1000080bf000000000000000000000000000000000000803f0000803fffffffff000058c1000000408cc4513fff02d33e000000c000000000000038c1000080bf000000000000000000000000000000000000803f0000803fffffffff000038c1000000005ec45d3f5d03bb3e000000c000000040000038c1000080bf000000000000000000000000000000000000803f0000803fffffffff000038c1000000405fc45d3ffe02d33e000000c000000000000058c1000080bf000000000000000000000000000000000000803f0000803fffffffff000058c1000000008cc4513f5e03bb3e0000a0c000000000000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c1000000002300453f6b15833a0000a0c000000000000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c100000000f4ff503f5014833a0000a0c000000040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c100000040f5ff503fb415443d0000a0c000000040000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c1000000402400453fbd15443d000080bf00000040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff0000803f0000004047421b3f5ccd6f3f000000c000000000000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000000400000000075420f3f73cd693f000000c000000040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000000400000004047421b3f73cd693f000080bf00000000000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff0000803f0000000075420f3f5ccd6f3f000000c000000000000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff00000040000000006983363f1cc8323f000080bf00000000000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000803f000000006983363f05c8383f000080bf00000040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000803f0000004098832a3f05c8383f000000c000000040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000400000004098832a3f1cc8323f0000000000000040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000000000000004048421b3f45cd753f0000000000000000000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000000000000000075420f3f45cd753f0000000000000000000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff00000000000000006983363feec73e3f0000000000000040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000000000004097832a3feec73e3f0000000000000000000008c10000803f000000000000000000000000000000000000803f000080bfffffffff000008c1000000007f83303fce85e53e0000000000000000000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c1000000006883363fcf85e53e0000000000000040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c1000000406983363f7285fd3e0000000000000040000008c10000803f000000000000000000000000000000000000803f000080bfffffffff000008c1000000408083303f7185fd3e0000404000000040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c1000000409485f43e3ac9733f0000404000000000000008c1000080bf000000000000000000000000000000000000803f0000803fffffffff000008c1000000009c42063f23c9793f0000404000000040000008c1000080bf000000000000000000000000000000000000803f0000803fffffffff000008c1000000409585f43e23c9793f0000404000000000000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c1000000009c42063f3ac9733f00002041000000400000d0c00000000000000000000080bf000080bf00000000000000000000803fffffffff000020c1000000407985fa3e378f593f00000841000000000000d0c00000000000000000000080bf000080bf00000000000000000000803fffffffff000008c100000000d585e23e5b8f503f00000841000000400000d0c00000000000000000000080bf000080bf00000000000000000000803fffffffff000008c1000000407885fa3e5a8f503f00002041000000000000d0c00000000000000000000080bf000080bf00000000000000000000803fffffffff000020c100000000d685e23e388f593f0000084100000000000070c100000000000000000000803f000080bf0000000000000000000080bfffffffff000008c10000000046833f3f16040b3f0000204100000000000070c100000000000000000000803f000080bf0000000000000000000080bfffffffff000020c10000000046833f3ff303143f0000204100000040000070c100000000000000000000803f000080bf0000000000000000000080bfffffffff000020c1000000407483333ff303143f0000084100000040000070c100000000000000000000803f000080bf0000000000000000000080bfffffffff000008c1000000407483333f16040b3f00000841000000000000d0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000d0c00000000075420f3f3845263f0000084100000000000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c10000000075420f3f7d45143f0000084100000040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c10000004047421b3f7d45143f00000841000000400000d0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000d0c00000004047421b3f3845263f0000204100000040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c10000004088087e3efa80643f00002041000000000000d0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000d0c000000000ea03973eb480763f00002041000000400000d0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000d0c0000000408d087e3eb480763f0000204100000000000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c100000000e703973ef980643f0000204100001040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000020c100001040c044443f9386323f0000004100001040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000000c100001040bf44443fc186263f0000204100004040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000020c100004040aec4483f9386323f0000004100004040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000000c100004040aec4483fc286263f00002041000010400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000020c1000010409d03293f9386323f00000041000010400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000c1000010409d03293fc186263f00002041000040400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000020c100004040af83243f9386323f00000041000040400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000c100004040ae83243fc186263f0000804000001040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c00000104069c75f3f6689433f0000004000001040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c00000104069c75f3f9489373f0000804000004040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000040407b475b3f6689433f0000004000004040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c0000040407b475b3f9489373f0000c04000001040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff0000c0c0000010408c087b3f9386323f0000804000001040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000080c0000010408c087b3fc186263f0000c04000004040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff0000c0c0000040407b887f3f9486323f0000804000004040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000080c0000040407b887f3fc286263f0000244100001040000080c0000080bf000000000000000000000000000000000000803f0000803fffffffff000080c0000010406bc75f3fc186263f0000244100001040000000c0000080bf000000000000000000000000000000000000803f0000803fffffffff000000c0000010406cc75f3f9386323f0000244100004040000080c0000080bf000000000000000000000000000000000000803f0000803fffffffff000080c0000040407c475b3fc186263f0000244100004040000000c0000080bf000000000000000000000000000000000000803f0000803fffffffff000000c0000040407d475b3f9386323f0000a8c000000040000000c00000803f000000000000000000000000000000000000803f000080bfffffffff000000c000000040f8000c3f47a7a13e0000a8c000000040000080c00000803f000000000000000000000000000000000000803f000080bfffffffff000080c000000040ca00183f47a7a13e0000a8c000001040000080c00000803f000000000000000000000000000000000000803f000080bfffffffff000080c000001040ca00183f3ba7a43e0000a8c000001040000000c00000803f000000000000000000000000000000000000803f000080bfffffffff000000c000001040f8000c3f3ca7a43e0000a0c000001040000000c00000803f000000000000000000000000000000000000803f000080bfffffffff000000c000001040fb000c3f33155c3d0000a0c000001040000080c00000803f000000000000000000000000000000000000803f000080bfffffffff000080c000001040ce00183f39155c3d0000a0c000004040000080c00000803f000000000000000000000000000000000000803f000080bfffffffff000080c000004040ce00183f130a923d0000a0c000004040000000c00000803f000000000000000000000000000000000000803f000080bfffffffff000000c000004040fb000c3f120a923d0000000000001040000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff00000000000010400486563f9386323f000080bf00001040000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff0000803f000010400486563faa862c3f0000000000004040000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff0000000000004040f3055b3f9386323f000080bf00004040000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff0000803f00004040f3055b3faa862c3f0000000000001040000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000000000104064c2133fea8b693f000080bf00001040000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff0000803f0000104064c2133f018c633f0000000000004040000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000000000404075420f3fe98b693f000080bf00004040000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff0000803f0000404075420f3f008c633f000020410000104000000000000080bf000000000000000000000000000000000000803f0000803fffffffff000000000000104076420f3fe847403f000020410000104000004040000080bf000000000000000000000000000000000000803f0000803fffffffff00004040000010403042213fe847403f000020410000404000000000000080bf000000000000000000000000000000000000803f0000803fffffffff000000000000404075420f3fd7c7443f000020410000404000004040000080bf000000000000000000000000000000000000803f0000803fffffffff00004040000040402f42213fd7c7443f0000c04000001040000000000000803f000000000000000000000000000000000000803f000080bfffffffff0000000000001040adc4483fbc4a513f0000c04000001040000040400000803f000000000000000000000000000000000000803f000080bfffffffff0000404000001040f3c4363fbc4a513f0000c04000004040000000000000803f000000000000000000000000000000000000803f000080bfffffffff0000000000004040adc4483faaca553f0000c04000004040000040400000803f000000000000000000000000000000000000803f000080bfffffffff0000404000004040f3c4363faaca553f0000003f00001040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000000bf000010407a03323fda0e733f0000000000001040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff00000000000010407a03323fe60e703f0000003f00004040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000000bf000040406983363fda0e733f0000000000004040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff00000000000040406983363fe60e703f0000004000001040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000000c0000010407a03323fb80e7c3f0000004000004040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000000c0000040406983363fb80e7c3f0000003f000010400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf00001040e1443b3f89893a3f00000000000010400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff0000000000001040e1443b3f9489373f0000003f000040400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf00004040f3c4363f89893a3f00000000000040400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff0000000000004040f3c4363f9489373f00000040000010400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000c000001040e1443b3f6689433f00000040000040400000c0c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000c000004040f3c4363f6689433f0000244100001040000000bf000080bf000000000000000000000000000000000000803f0000803fffffffff000000bf00001040a8856e3f1486d33e000024410000104000000000000080bf000000000000000000000000000000000000803f0000803fffffffff0000000000001040a8856e3ffd85d93e0000244100004040000000bf000080bf000000000000000000000000000000000000803f0000803fffffffff000000bf00004040b9056a3f1486d33e000024410000404000000000000080bf000000000000000000000000000000000000803f0000803fffffffff0000000000004040b9056a3ffd85d93e0000204100001040000000c0000080bf000000000000000000000000000000000000803f0000803fffffffff000000c000001040ea855c3f16040b3f0000204100001040000000bf000080bf000000000000000000000000000000000000803f0000803fffffffff000000bf00001040eb855c3ff303143f0000204100004040000000c0000080bf000000000000000000000000000000000000803f0000803fffffffff000000c000004040fb05583f16040b3f0000204100004040000000bf000080bf000000000000000000000000000000000000803f0000803fffffffff000000bf00004040fc05583ff303143f0000000000001040000000bf0000803f000000000000000000000000000000000000803f000080bfffffffff000000bf000010400386563f7189403f0000000000001040000000000000803f000000000000000000000000000000000000803f000080bfffffffff00000000000010400386563f6689433f0000000000004040000000bf0000803f000000000000000000000000000000000000803f000080bfffffffff000000bf00004040f1055b3f7189403f0000000000004040000000000000803f000000000000000000000000000000000000803f000080bfffffffff0000000000004040f1055b3f6689433f0000000000001040000000c00000803f000000000000000000000000000000000000803f000080bfffffffff000000c0000010400386563f9489373f0000000000004040000000c00000803f000000000000000000000000000000000000803f000080bfffffffff000000c000004040f1055b3f9489373f00002041000010400000b0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000b0c00000104064c2133fb14a543f0000204100001040000080c0000080bf000000000000000000000000000000000000803f0000803fffffffff000080c00000104064c2133f8e4a5d3f00002041000040400000b0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000b0c00000404075420f3fb14a543f0000204100004040000080c0000080bf000000000000000000000000000000000000803f0000803fffffffff000080c00000404076420f3f8d4a5d3f00002041000010400000c0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000c0c00000104064c2133fbc4a513f00002041000040400000c0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000c0c00000404075420f3fbd4a513f00000000000010400000b0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000b0c0000010407a03323f178c5d3f0000000000001040000080c00000803f000000000000000000000000000000000000803f000080bfffffffff000080c0000010407a03323ff58b663f00000000000040400000b0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000b0c0000040406983363f188c5d3f0000000000004040000080c00000803f000000000000000000000000000000000000803f000080bfffffffff000080c0000040406983363ff58b663f00000000000010400000c0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000c0c0000010407a03323f238c5a3f00000000000040400000c0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000c0c0000040406983363f238c5a3f00000040000010400000f0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000f0c0000010407a03323fbc4a513f00000040000010400000c0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000c0c0000010407a03323f994a5a3f00000040000040400000f0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000f0c0000040406983363fbc4a513f00000040000040400000c0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000c0c0000040406883363f9a4a5a3f0000004000001040000000c10000803f000000000000000000000000000000000000803f000080bfffffffff000000c1000010407b03323fc74a4e3f0000004000004040000000c10000803f000000000000000000000000000000000000803f000080bfffffffff000000c1000040406983363fc74a4e3f00000041000010400000f0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000f0c00000104064c2133f5609483f00000041000010400000c0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000c0c00000104064c2133f3209513f00000041000040400000f0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000f0c00000404075420f3f5609483f00000041000040400000c0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000c0c00000404076420f3f3209513f0000004100001040000000c1000080bf000000000000000000000000000000000000803f0000803fffffffff000000c10000104064c2133f6109453f0000004100004040000000c1000080bf000000000000000000000000000000000000803f0000803fffffffff000000c10000404075420f3f6109453f0000f04000001040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000f0c000001040f1c1313f092ab73e0000c04000001040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000c0c000001040f1c1313f4f2aa53e0000f04000004040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000f0c000004040e041363f0a2ab73e0000c04000004040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000c0c000004040e041363f4f2aa53e0000004100001040000050400000000000000000000080bf000080bf00000000000000000000803fffffffff000000c1000010408585773ff908e03e0000f04000001040000050400000000000000000000080bf000080bf00000000000000000000803fffffffff0000f0c0000010408585773f1009da3e0000004100004040000050400000000000000000000080bf000080bf00000000000000000000803fffffffff000000c10000404074057c3ff908e03e0000f04000004040000050400000000000000000000080bf000080bf00000000000000000000803fffffffff0000f0c00000404074057c3f1009da3e0000004100001040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c1000010406ac75f3f11c8353f0000f04000001040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c0000010406ac75f3f1dc8323f0000004100004040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c1000040407b475b3f11c8353f0000f04000004040000000c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c0000040407b475b3f1cc8323f000080400000104000000000000080bf000000000000000000000000000000000000803f0000803fffffffff0000000000001040bd44443fde061f3f00008040000010400000003f000080bf000000000000000000000000000000000000803f0000803fffffffff0000003f00001040bd44443fd206223f000080400000404000000000000080bf000000000000000000000000000000000000803f0000803fffffffff0000000000004040cfc43f3fde061f3f00008040000040400000003f000080bf000000000000000000000000000000000000803f0000803fffffffff0000003f00004040cfc43f3fd206223f0000004000001040000000000000803f000000000000000000000000000000000000803f000080bfffffffff000000000000104041c21c3f4c50793f00000040000010400000003f0000803f000000000000000000000000000000000000803f000080bfffffffff0000003f0000104041c21c3f41507c3f0000004000004040000000000000803f000000000000000000000000000000000000803f000080bfffffffff00000000000040403042213f4d50793f00000040000040400000003f0000803f000000000000000000000000000000000000803f000080bfffffffff0000003f000040403042213f41507c3f000000410000104000004040000080bf000000000000000000000000000000000000803f0000803fffffffff000040400000104091032c3f5c48223f000000410000104000005040000080bf000000000000000000000000000000000000803f0000803fffffffff000050400000104091032c3f56c8233f000000410000404000004040000080bf000000000000000000000000000000000000803f0000803fffffffff0000404000004040a283273f5c48223f000000410000404000005040000080bf000000000000000000000000000000000000803f0000803fffffffff0000504000004040a283273f56c8233f0000f04000001040000040400000803f000000000000000000000000000000000000803f000080bfffffffff00004040000010408b087b3fa089343f0000f04000001040000050400000803f000000000000000000000000000000000000803f000080bfffffffff00005040000010408b087b3f9b09363f0000f04000004040000040400000803f000000000000000000000000000000000000803f000080bfffffffff000040400000404079887f3fa089343f0000f04000004040000050400000803f000000000000000000000000000000000000803f000080bfffffffff000050400000404079887f3f9a09363f0000244100001040000000bf00000000000000000000803f000080bf0000000000000000000080bfffffffff000024c10000104090032c3fda89253f0000204100001040000000bf00000000000000000000803f000080bf0000000000000000000080bfffffffff000020c10000104091032c3fdf09243f0000244100004040000000bf00000000000000000000803f000080bf0000000000000000000080bfffffffff000024c100004040a283273fda89253f0000204100004040000000bf00000000000000000000803f000080bf0000000000000000000080bfffffffff000020c100004040a283273fe009243f0000244100001040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000024c1000010406e03353fd306223f0000204100001040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000020c1000010406e03353fd886203f0000244100004040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000024c1000040405d83393fd306223f0000204100004040000000000000000000000000000080bf000080bf00000000000000000000803fffffffff000020c1000040405d83393fd886203f0000244100001040000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff000024c100001040ad08723f1648343f0000204100001040000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff000020c100001040ae08723f1cc8323f0000244100004040000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff000024c100004040bf886d3f1748343f0000204100004040000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff000020c100004040bf886d3f1cc8323f0000244100001040000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff000024c1000010408585773f008ce33e0000204100001040000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff000020c1000010408585773f0b8ce03e0000244100004040000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff000024c10000404074057c3f008ce33e0000204100004040000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff000020c10000404074057c3f0b8ce03e00000040000010400000803f0000803f000000000000000000000000000000000000803f000080bfffffffff0000803f0000104040c21c3f35507f3f00000040000040400000803f0000803f000000000000000000000000000000000000803f000080bfffffffff0000803f000040402f42213f36507f3f00008040000010400000803f000080bf000000000000000000000000000000000000803f0000803fffffffff0000803f00001040bd44443fc706253f00008040000040400000803f000080bf000000000000000000000000000000000000803f0000803fffffffff0000803f00004040cfc43f3fc706253f0000e0bf00001040000000c0000080bf00000000000000000000000000000000000080bf000080bfffffffff0000004000001040e313833aaa837e3f0000e0bf0000004000004040000080bf00000000000000000000000000000000000080bf000080bfffffffff000040c000000040ae08f23db0037d3f0000e0bf0000104000004040000080bf00000000000000000000000000000000000080bf000080bfffffffff000040c000001040b408f23daa837e3f0000e0bf00000040000000c0000080bf00000000000000000000000000000000000080bf000080bfffffffff00000040000000406f12833ab0037d3f000000c000004040000000c0000080bf000000000000000000000000000000000000803f0000803fffffffff000000c000004040bf001b3f89741f3e000000c00000104000004040000080bf000000000000000000000000000000000000803f0000803fffffffff00004040000010404c00393fcb740d3e000000c00000404000004040000080bf000000000000000000000000000000000000803f0000803fffffffff00004040000040404b00393f86741f3e000000c000001040000000c0000080bf000000000000000000000000000000000000803f0000803fffffffff000000c000001040c1001b3fce740d3e0000a8c000000040000040400000803f000000000000000000000000000000000000803f000080bfffffffff0000404000000040d902dc3e47a7a13e0000a8c000001040000040400000803f000000000000000000000000000000000000803f000080bfffffffff0000404000001040d902dc3e3ca7a43e0000a0c000001040000040400000803f000000000000000000000000000000000000803f000080bfffffffff0000404000001040d902dc3e4e155c3d0000a0c000004040000040400000803f000000000000000000000000000000000000803f000080bfffffffff0000404000004040d902dc3e1e0a923d0000e0bf00001040000008c1000080bf00000000000000000000000000000000000080bf000080bfffffffff0000084100001040d585e23ecaca4c3f0000e0bf00000040000080c0000080bf00000000000000000000000000000000000080bf000080bfffffffff000080400000004083420c3fd04a4b3f0000e0bf00001040000080c0000080bf00000000000000000000000000000000000080bf000080bfffffffff000080400000104082420c3fcaca4c3f0000e0bf00000040000008c1000080bf00000000000000000000000000000000000080bf000080bfffffffff0000084100000040d685e23ed04a4b3f000000c000004040000008c1000080bf000000000000000000000000000000000000803f0000803fffffffff000008c100004040ab02e83e8c741f3e000000c000001040000080c0000080bf000000000000000000000000000000000000803f0000803fffffffff000080c000001040ef000f3fc6740d3e000000c000004040000080c0000080bf000000000000000000000000000000000000803f0000803fffffffff000080c000004040ee000f3f82741f3e000000c000001040000008c1000080bf000000000000000000000000000000000000803f0000803fffffffff000008c100001040ad02e83ed0740d3e0000a8c000000040000008c10000803f000000000000000000000000000000000000803f000080bfffffffff000008c1000000406300333f47a7a13e0000a8c000001040000008c10000803f000000000000000000000000000000000000803f000080bfffffffff000008c1000010406300333f3ba7a43e0000a0c000001040000008c10000803f000000000000000000000000000000000000803f000080bfffffffff000008c1000010406900333f4a155c3d0000a0c000004040000008c10000803f000000000000000000000000000000000000803f000080bfffffffff000008c1000040406900333f1c0a923d000000c000001040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c100001040db02dc3ecc740d3e000000c000004040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c100004040d902dc3e87741f3e0000a0c000001040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c1000010405200393f4d155c3d0000a0c000004040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c1000040405200393f1e0a923d000000c000001040000058c1000080bf000000000000000000000000000000000000803f0000803fffffffff000058c1000010408cc4513ff402d63e000000c000001040000038c1000080bf000000000000000000000000000000000000803f0000803fffffffff000038c1000010405ec45d3ff302d63e000000c000004040000058c1000080bf000000000000000000000000000000000000803f0000803fffffffff000058c1000040408cc4513fd202df3e000000c000004040000038c1000080bf000000000000000000000000000000000000803f0000803fffffffff000038c1000040405ec45d3fd102df3e0000a0c000001040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c100001040f5ff503f57155c3d0000a0c000001040000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c1000010402300453f5d155c3d000080bf00001040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff0000803f0000104042c21c3f5ccd6f3f000000c000001040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000000400000104041c21c3f73cd693f000080bf00004040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff0000803f000040403042213f5ccd6f3f000000c000004040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff00000040000040403042213f73cd693f000080bf00001040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000803f000010409e03293f05c8383f000000c000001040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff00000040000010409e03293f1cc8323f000080bf00004040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000803f00004040af83243f05c8383f000000c000004040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000004000004040af83243f1cc8323f0000000000001040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000000000000104042c21c3f45cd753f0000000000004040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff00000000000040403042213f45cd753f0000000000001040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff00000000000010409d03293feec73e3f0000000000004040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000000000004040ae83243feec73e3f0000000000001040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c1000010406883363fb342003f0000000000001040000008c10000803f000000000000000000000000000000000000803f000080bfffffffff000008c1000010407f83303fb242003f0000000000004040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c1000040406883363fa1c2043f0000000000004040000008c10000803f000000000000000000000000000000000000803f000080bfffffffff000008c1000040407f83303fa1c2043f0000404000001040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c100001040a085f13e3ac9733f0000404000001040000008c1000080bf000000000000000000000000000000000000803f0000803fffffffff000008c100001040a085f13e23c9793f0000404000004040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c100004040c385e83e3ac9733f0000404000004040000008c1000080bf000000000000000000000000000000000000803f0000803fffffffff000008c100004040c385e83e23c9793f00002041000010400000d0c00000000000000000000080bf000080bf00000000000000000000803fffffffff000020c1000010406e85fd3e378f593f00000841000010400000d0c00000000000000000000080bf000080bf00000000000000000000803fffffffff000008c1000010406c85fd3e5a8f503f00002041000040400000d0c00000000000000000000080bf000080bf00000000000000000000803fffffffff000020c100004040a542033f388f593f00000841000040400000d0c00000000000000000000080bf000080bf00000000000000000000803fffffffff000008c100004040a542033f5a8f503f0000204100001040000070c100000000000000000000803f000080bf0000000000000000000080bfffffffff000020c1000010407903323ff303143f0000084100001040000070c100000000000000000000803f000080bf0000000000000000000080bfffffffff000008c1000010407a03323f16040b3f0000204100004040000070c100000000000000000000803f000080bf0000000000000000000080bfffffffff000020c1000040408b832d3ff303143f0000084100004040000070c100000000000000000000803f000080bf0000000000000000000080bfffffffff000008c1000040408b832d3f16040b3f0000084100001040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c10000104042c21c3f7d45143f00000841000010400000d0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000d0c00000104041c21c3f3845263f0000084100004040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c1000040403042213f7d45143f00000841000040400000d0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000d0c0000040403042213f3845263f0000204100001040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c100001040a008783efa80643f00002041000010400000d0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000d0c000001040a408783eb580763f0000204100004040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c100004040e408663ef980643f00002041000040400000d0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000d0c000004040e808663eb480763f0000a0c000000040000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000a0c0000080c00401093f3524a13e0000a0c000000040000008c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000a0c0000008c1d902dc3e3224a13e0000a8c000000040000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000a8c0000080c00501093f40249e3e0000a8c000000040000008c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000a8c0000008c1db02dc3e3d249e3e0000a0c000000040000008c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000a04000000040f4467f3f3c94253e0000a0c000001040000008c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000a04000001040fac67d3f3c94253e0000a8c000000040000008c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000a84000000040f4467f3f53941f3e0000a8c000001040000008c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000a84000001040fac67d3f53941f3e0000a0c000001040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff0000a0c000001040edc37b3f4a9a2c3e0000a0c000000040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff0000a0c000000040f3437a3f4a9a2c3e0000a8c000001040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff0000a8c000001040edc37b3f619a263e0000a8c000000040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff0000a8c000000040f3437a3f619a263e0000a0c000001040000008c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000a040000008c16200333f22a19d3e0000a0c000001040000080c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000a040000080c0ca00183f1fa19d3e0000a8c000001040000008c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000a840000008c16300333f2da19a3e0000a8c000001040000080c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000a840000080c0cb00183f2ba19a3e0000a0c000000040000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000a0c0000000c0d600153f2d24a13e0000a8c000000040000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000a8c0000000c0d600153f39249e3e0000a0c000001040000000c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000a040000000c0f9000c3f26a19d3e0000a8c000001040000000c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000a840000000c0f9000c3f32a19a3e0000a0c00000004000004040000000000000803f000000000000803f0000000000000000000080bfffffffff0000a0c0000040406300333f3224a13e0000a8c00000004000004040000000000000803f000000000000803f0000000000000000000080bfffffffff0000a8c0000040406200333f3d249e3e0000a0c0000010400000404000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000a04000004040da02dc3e22a19d3e0000a8c0000010400000404000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000a84000004040d902dc3e2da19a3e0000a0c000000040000040400000803f000000000000000000000000000000000000803f000080bfffffffff00004040000000404a04393f495d913e0000a0c000001040000040400000803f000000000000000000000000000000000000803f000080bfffffffff00004040000010404a04393f3e5d943e0000a0c000000040000050400000803f000000000000000000000000000000000000803f000080bfffffffff00005040000000405084373f495d913e0000a0c000001040000050400000803f000000000000000000000000000000000000803f000080bfffffffff00005040000010405084373f3e5d943e000000c00000104000004040000080bf00000000000000000000000000000000000080bf000080bfffffffff000040c0000010405084373f45e0973e000000c00000004000004040000080bf00000000000000000000000000000000000080bf000080bfffffffff000040c0000000405084373f50e0943e000000c00000104000005040000080bf00000000000000000000000000000000000080bf000080bfffffffff000050c0000010404a04393f45e0973e000000c00000004000005040000080bf00000000000000000000000000000000000080bf000080bfffffffff000050c0000000404a04393f50e0943e000080bf00000000000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff000080bf000080c01381843e6d09c23d0000e0bf00000000000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000e0bf000080c01481843ef5099e3d0000e0bf00000000000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000e0bf000000c0b9809c3ef4099e3d000080bf00000000000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff000080bf000000c0b8809c3e6b09c23d0000e0bf00004040000000c000000000000080bf000000000000803f00000000000000000000803fffffffff0000e0bf000000c07908fe3d5103be3e000080bf00004040000080c000000000000080bf000000000000803f00000000000000000000803fffffffff000080bf000080c085032f3e2e03c73e000080bf00004040000000c000000000000080bf000000000000803f00000000000000000000803fffffffff000080bf000000c07a08fe3d2e03c73e0000e0bf00004040000080c000000000000080bf000000000000803f00000000000000000000803fffffffff0000e0bf000080c084032f3e5103be3e000000c000004040000000c000000000000080bf000000000000803f00000000000000000000803fffffffff000000c0000000c07908fe3d5d03bb3e000000c000004040000080c000000000000080bf000000000000803f00000000000000000000803fffffffff000000c0000080c084032f3e5d03bb3e000000c000000000000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff00000040000000003042213f178c5d3f0000e0bf00000000000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff0000e03f000000003042213f120c5f3f0000e0bf00000040000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff0000e03f000000405f42153f120c5f3f000000c000000040000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff00000040000000405f42153f188c5d3f0000e0bf00000040000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff0000e03f000000400a06553fbb06283f000000c000000000000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff00000040000000003806493fc186263f000000c000000040000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff00000040000000400a06553fc186263f0000e0bf00000000000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff0000e03f000000003806493fbb06283f0000e0bf00001040000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff0000e03f0000104065c2133f120c5f3f000000c000001040000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000400000104065c2133f188c5d3f0000e0bf00004040000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff0000e03f0000404076420f3f120c5f3f000000c000004040000080c000000000000000000000803f000080bf0000000000000000000080bfffffffff000000400000404076420f3f178c5d3f0000e0bf00001040000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff0000e03f000010400486563fbb06283f0000e0bf00004040000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff0000e03f00004040f3055b3fbb06283f000000c000001040000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff00000040000010400486563fc186263f000000c000004040000000c00000000000000000000080bf000080bf00000000000000000000803fffffffff0000004000004040f3055b3fc186263f000000c000000040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff000000c00000004076057c3f53941f3e000000c000001040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff000000c00000104071857d3f53941f3e0000e0bf00000040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff0000e0bf0000004076057c3f3c94253e0000e0bf00001040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff0000e0bf0000104071857d3f3c94253e000000c0000010400000404000000000000080bf00000000000080bf0000000000000000000080bfffffffff000000400000404099a4df3e79c75c3f000000c000001040000000c000000000000080bf00000000000080bf0000000000000000000080bfffffffff00000040000000c0d9d10d3f79c75c3f0000e0bf000010400000404000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000e03f000040409aa4df3e73475e3f0000e0bf00001040000000c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000e03f000000c0d9d10d3f73475e3f000000c000000040000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff000000c0000000c0d6039a3e304a753f000000c00000004000004040000000000000803f000000000000803f0000000000000000000080bfffffffff000000c000004040f002d63e304a753f0000e0bf00000040000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000e0bf000000c0d8039a3e2aca763f0000e0bf0000004000004040000000000000803f000000000000803f0000000000000000000080bfffffffff0000e0bf00004040f102d63e2aca763f000000c000001040000080c000000000000080bf00000000000080bf0000000000000000000080bfffffffff00000040000080c0d685e23ec8c7473f000000c000001040000008c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00000040000008c183420c3fc8c7473f0000e0bf00001040000080c000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000e03f000080c0d585e23ec347493f0000e0bf00001040000008c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000e03f000008c182420c3fc347493f000000c000001040000008c100000000000000000000803f000080bf0000000000000000000080bfffffffff00000040000010407082783f619a263e000000c000000040000008c100000000000000000000803f000080bf0000000000000000000080bfffffffff00000040000000406a027a3f619a263e0000e0bf00001040000008c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000e03f000010407082783f4a9a2c3e0000e0bf00000040000008c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000e03f000000406a027a3f4a9a2c3e000000c000000040000008c1000000000000803f000000000000803f0000000000000000000080bfffffffff000000c0000008c1d685e23e4c89493f000000c000000040000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff000000c0000080c083420c3f4c89493f0000e0bf00000040000008c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000e0bf000008c1d585e23e46094b3f0000e0bf00000040000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000e0bf000080c082420c3f46094b3f0000a0c000000040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000a04000000040edc37b3f3c94253e0000a0c000001040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000a04000001040f3437a3f3c94253e0000a8c000000040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000a84000000040edc37b3f53941f3e0000a8c000001040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000a84000001040f3437a3f53941f3e0000a0c000001040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff0000a0c0000010406a027a3f3c94253e0000a0c000000040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff0000a0c0000000407082783f3c94253e0000a8c000001040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff0000a8c0000010406a027a3f53941f3e0000a8c000000040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff0000a8c0000000407082783f53941f3e0000204100000000000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff0000204100000000cfc43f3f16040b3f0000204100000040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff0000204100000040a1c44b3f16040b3f0000284100000000000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff0000284100000000cfc43f3f0b040e3f0000284100000040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff0000284100000040a0c44b3f0a040e3f0000204100001040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff00002041000010409b444d3f16040b3f0000204100004040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff00002041000040408ac4513f16040b3f0000284100001040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff00002841000010409b444d3f0a040e3f0000284100004040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff000028410000404089c4513f0b040e3f0000204100000040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000020c1000000409585f43ead0a7a3f0000204100000000000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000020c1000000009c42063fac0a7a3f0000284100000040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000028c1000000409485f43ea10a7d3f0000284100000000000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000028c1000000009b42063fa10a7d3f0000204100001040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000020c100001040a085f13eac0a7a3f0000284100001040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000028c1000010409f85f13ea10a7d3f0000204100004040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000020c100004040c285e83eac0a7a3f0000284100004040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000028c100004040c285e83ea10a7d3f0000204100000000000058c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00005841000000001942273ff303143f0000204100000040000058c1000080bf00000000000000000000000000000000000080bf000080bfffffffff000058410000004047421b3ff303143f0000204100000000000070c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00007041000000001942273f16040b3f0000204100000040000070c1000080bf00000000000000000000000000000000000080bf000080bfffffffff000070410000004047421b3f16040b3f0000084100000040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c100000040a1c44b3f5a451d3f0000084100000000000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c100000000cfc43f3f5a451d3f0000084100000040000070c10000803f000000000000000000000000000000000000803f000080bfffffffff000070c100000040a1c44b3f7d45143f0000084100000000000070c10000803f000000000000000000000000000000000000803f000080bfffffffff000070c100000000cfc43f3f7d45143f0000204100001040000058c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00005841000010404dc2193ff303143f0000204100001040000070c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00007041000010404dc2193f16040b3f0000084100001040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c1000010409b444d3f5a451d3f0000084100001040000070c10000803f000000000000000000000000000000000000803f000080bfffffffff000070c1000010409b444d3f7d45143f0000204100004040000058c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00005841000040405e42153ff303143f0000204100004040000070c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00007041000040405e42153f16040b3f0000084100004040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c10000404089c4513f5a451d3f0000084100004040000070c10000803f000000000000000000000000000000000000803f000080bfffffffff000070c10000404089c4513f7d45143f0000204100008040000058c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000020c1000058c1f240753f357a3e3e0000084100008040000058c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000008c1000058c115416c3f317a3e3e0000204100008040000070c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000020c1000070c1f340753fc67a1a3e0000084100008040000070c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000008c1000070c116416c3fc27a1a3e0000084100008040000054c100000000000080bf000000000000803f00000000000000000000803fffffffff00000841000054c115416c3f1a7a443e0000204100008040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff00002041000058c1f240753f357a3e3e0000204100008040000054c100000000000080bf000000000000803f00000000000000000000803fffffffff00002041000054c1f240753f1e7a443e0000084100008040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff00000841000058c115416c3f317a3e3e0000000000000000000054c10000803f000000000000000000000000000000000000803f000080bfffffffff000054c10000000088c20a3fb083243f0000000000000000000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c10000000082420c3fb083243f0000000000000040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c10000004085420c3f8283303f0000000000000040000054c10000803f000000000000000000000000000000000000803f000080bfffffffff000054c1000000408bc20a3f8183303f0000284100000040000058c1000080bf000000000000000000000000000000000000803f0000803fffffffff000058c100000040a283273f4f45203f0000284100000000000054c1000080bf000000000000000000000000000000000000803f0000803fffffffff000054c1000000009d03293f7d45143f0000284100000040000054c1000080bf000000000000000000000000000000000000803f0000803fffffffff000054c1000000409c03293f4f45203f0000284100000000000058c1000080bf000000000000000000000000000000000000803f0000803fffffffff000058c100000000a283273f7d45143f0000000000001040000054c10000803f000000000000000000000000000000000000803f000080bfffffffff000054c10000104011034d3fb342003f0000000000001040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c1000010400c834e3fb342003f0000000000004040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c1000040400c834e3fa1c2043f0000000000004040000054c10000803f000000000000000000000000000000000000803f000080bfffffffff000054c10000404012034d3fa1c2043f00002c4100001040000058c1000080bf00000000000000000000000000000000000080bf000080bfffffffff000058410000104040094e3e3942783f00002c4100000040000054c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00005441000000402909543e3fc2763f00002c4100001040000054c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00005441000010402909543e3942783f00002c4100000040000058c1000080bf00000000000000000000000000000000000080bf000080bfffffffff000058410000004040094e3e3fc2763f00002c4100004040000058c1000080bf00000000000000000000000000000000000080bf000080bfffffffff000058410000404042094e3e27c27c3f00002c4100004040000054c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00005441000040402a09543e27c27c3f0000284100008040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff00002841000058c1e640783f357a3e3e0000284100008040000054c100000000000080bf000000000000803f00000000000000000000803fffffffff00002841000054c1e640783f1f7a443e0000084100000040000054c10000803f000000000000000000000000000000000000803f000080bfffffffff000054c100000040a1c44b3f54c51e3f0000084100001040000054c10000803f000000000000000000000000000000000000803f000080bfffffffff000054c1000010409b444d3f54c51e3f0000000000008040000008c100000000000080bf000000000000803f00000000000000000000803fffffffff00000000000008c1d741393f353c9b3e0000003f00008040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff0000003f000018c1cc413c3f653c8f3e0000003f00008040000008c100000000000080bf000000000000803f00000000000000000000803fffffffff0000003f000008c1cb413c3f363c9b3e0000000000008040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff00000000000018c1d841393f643c8f3e0000404000008040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff00004040000018c193414b3f653c8f3e0000404000008040000008c100000000000080bf000000000000803f00000000000000000000803fffffffff00004040000008c190414b3f363c9b3e0000003f00000040000008c10000000000000000000080bf000080bf00000000000000000000803fffffffff000000bf000000409405733fb785eb3e0000000000000000000008c10000000000000000000080bf000080bf00000000000000000000803fffffffff0000000000000000c305673fcf85e53e0000000000000040000008c10000000000000000000080bf000080bf00000000000000000000803fffffffff00000000000000409405733fcf85e53e0000003f00000000000008c10000000000000000000080bf000080bf00000000000000000000803fffffffff000000bf00000000c305673fb785eb3e0000404000000040000008c10000000000000000000080bf000080bf00000000000000000000803fffffffff000040c0000000409405733fa1c2043f0000404000000000000008c10000000000000000000080bf000080bf00000000000000000000803fffffffff000040c000000000c305673fa1c2043f0000000000000000000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff00000000000000006f12833af880643f0000003f00000000000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf00000000715f503cf980643f0000003f00000040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf000000409b5f503cca80703f0000000000000040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000000000000040bf13833aca80703f0000404000000000000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000040c0000000001d0a923df880643f0000404000000040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000040c000000040220a923dc980703f0000003f00001040000008c10000000000000000000080bf000080bf00000000000000000000803fffffffff000000bf000010408e85743fb785eb3e0000000000001040000008c10000000000000000000080bf000080bf00000000000000000000803fffffffff00000000000010408e85743fce85e53e0000404000001040000008c10000000000000000000080bf000080bf00000000000000000000803fffffffff000040c0000010408e85743fa2c2043f0000003f00004040000008c10000000000000000000080bf000080bf00000000000000000000803fffffffff000000bf000040407d05793fb885eb3e0000000000004040000008c10000000000000000000080bf000080bf00000000000000000000803fffffffff00000000000040407d05793fce85e53e0000404000004040000008c10000000000000000000080bf000080bf00000000000000000000803fffffffff000040c0000040407d05793fa2c2043f0000003f00000040000054c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf00000040d902dc3e6433b23e0000404000000040000054c100000000000000000000803f000080bf0000000000000000000080bfffffffff000040c0000000406502fa3e6433b23e0000404000001040000054c100000000000000000000803f000080bf0000000000000000000080bfffffffff000040c0000010406502fa3e5933b53e0000003f00001040000054c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf00001040d902dc3e5933b53e0000000000001040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000000000001040d6039a3e4ec2193f0000003f00001040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf00001040bf03a03e4ec2193f0000003f00004040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf00004040bf03a03e3d421e3f0000000000004040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000000000004040d6039a3e3d421e3f0000003f00008040000054c100000000000080bf000000000000803f00000000000000000000803fffffffff0000003f000054c1ca413c3f227a443e0000404000008040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff00004040000058c193414b3f2f7a3e3e0000404000008040000054c100000000000080bf000000000000803f00000000000000000000803fffffffff00004040000054c192414b3f197a443e0000003f00008040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff0000003f000058c1ca413c3f387a3e3e0000000000008040000054c100000000000080bf000000000000803f00000000000000000000803fffffffff00000000000054c1d541393f237a443e0000000000008040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff00000000000058c1d541393f397a3e3e0000000000000040000054c100000000000080bf000000000000803f00000000000000000000803fffffffff00000000000054c1fb13833a5042723f0000003f00000040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff0000003f000058c1ae5f503c56c2703f0000003f00000040000054c100000000000080bf000000000000803f00000000000000000000803fffffffff0000003f000054c1935f503c5042723f0000000000000040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff00000000000058c19514833a55c2703f0000404000000040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff00004040000058c1250a923d54c2703f0000404000000040000054c100000000000080bf000000000000803f00000000000000000000803fffffffff00004040000054c1220a923d4e42723f0000404000001040000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004040000058c1d902dc3e9f03293f0000003f00001040000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000058c16502fa3e9f03293f0000003f00001040000054c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000054c16502fa3e99832a3f0000404000001040000054c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004040000054c1d902dc3e99832a3f0000000000001040000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000058c12701003f9f03293f0000000000001040000054c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000054c12701003f99832a3f0000003f00001040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf000010409d03293fe3c7413f0000003f00000040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf0000004097832a3fe3c7413f0000804000000000000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000000006609c23df980643f0000f04000000000000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c0000000007403353ef880643f0000f04000000040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c0000000407603353ec980703f0000804000000040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000000406b09c23dca80703f0000804000000040000054c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000000401b01033f6433b23e0000f04000000040000054c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c000000040cb00183f6433b23e0000f04000001040000054c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c000001040cb00183f5933b53e0000804000001040000054c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000010401b01033f5933b53e0000804000008040000054c100000000000080bf000000000000803f00000000000000000000803fffffffff00008040000054c17b41513f197a443e0000f04000008040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff0000f040000058c12d41663f2c7a3e3e0000f04000008040000054c100000000000080bf000000000000803f00000000000000000000803fffffffff0000f040000054c12c41663f167a443e0000804000008040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff00008040000058c17b41513f2f7a3e3e0000f04000001040000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000058c1a803a63e9f03293f0000804000001040000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000058c10703d03e9e03293f0000804000001040000054c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000054c10703d03e99832a3f0000f04000001040000054c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000054c1a803a63e99832a3f0000804000000040000054c100000000000080bf000000000000803f00000000000000000000803fffffffff00008040000054c16b09c23d4e42723f0000f04000000040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff0000f040000058c17603353e57c2703f0000f04000000040000054c100000000000080bf000000000000803f00000000000000000000803fffffffff0000f040000054c17603353e5142723f0000804000000040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff00008040000058c16a09c23d54c2703f0000084100006040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c1000060402442243f7d45143f00000841000060400000d0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000d0c0000060402442243f3845263f0000084100008040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c1000080401942273f7d45143f00000841000080400000d0c00000803f000000000000000000000000000000000000803f000080bfffffffff0000d0c0000080401842273f3845263f0000204100006040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c10000604012095a3ef980643f00002041000060400000d0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000d0c00000604016095a3eb380763f0000204100008040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c10000804040094e3ef880643f00002041000080400000d0c0000080bf000000000000000000000000000000000000803f0000803fffffffff0000d0c00000804044094e3eb280763f00002041000060400000d0c00000000000000000000080bf000080bf00000000000000000000803fffffffff000020c1000060409a42063f388f593f00000841000060400000d0c00000000000000000000080bf000080bf00000000000000000000803fffffffff000008c1000060409942063f5b8f503f00002041000080400000d0c00000000000000000000080bf000080bf00000000000000000000803fffffffff000020c1000080408f42093f388f593f00000841000080400000d0c00000000000000000000080bf000080bf00000000000000000000803fffffffff000008c1000080408e42093f5b8f503f0000404000006040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c100006040d985e23e3ac9733f0000404000006040000008c1000080bf000000000000000000000000000000000000803f0000803fffffffff000008c100006040da85e23e23c9793f0000404000008040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c100008040f085dc3e3ac9733f0000404000008040000008c1000080bf000000000000000000000000000000000000803f0000803fffffffff000008c100008040f185dc3e23c9793f0000204100006040000070c100000000000000000000803f000080bf0000000000000000000080bfffffffff000020c10000604096832a3ff303143f0000084100006040000070c100000000000000000000803f000080bf0000000000000000000080bfffffffff000008c10000604097832a3f16040b3f0000204100008040000070c100000000000000000000803f000080bf0000000000000000000080bfffffffff000020c100008040a283273ff303143f0000084100008040000070c100000000000000000000803f000080bf0000000000000000000080bfffffffff000008c100008040a283273f16040b3f0000000000006040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c1000060406883363f96c2073f0000000000006040000008c10000803f000000000000000000000000000000000000803f000080bfffffffff000008c1000060407f83303f96c2073f0000000000008040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c1000080406883363f8ac20a3f0000000000008040000008c10000803f000000000000000000000000000000000000803f000080bfffffffff000008c1000080407f83303f8ac20a3f0000284100006040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000028c1000060407ec4543f0b040e3f0000204100004040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000020c1000040408ac4513f16040b3f0000204100006040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000020c1000060407ec4543f16040b3f0000284100004040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000028c10000404089c4513f0b040e3f0000284100008040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000028c10000804072c4573f0b040e3f0000204100008040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000020c10000804072c4573f16040b3f0000204100006040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000020c100006040d985e23eac0a7a3f0000284100006040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000028c100006040d985e23ea10a7d3f0000284100008040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000028c100008040f185dc3ea10a7d3f0000204100008040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000020c100008040f085dc3eac0a7a3f0000084100006040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c1000060407ec4543f5a451d3f0000084100006040000070c10000803f000000000000000000000000000000000000803f000080bfffffffff000070c1000060407ec4543f7d45143f0000084100008040000070c10000803f000000000000000000000000000000000000803f000080bfffffffff000070c10000804072c4573f7d45143f0000084100008040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c10000804072c4573f5a451d3f0000204100006040000070c1000080bf000000000000000000000000000000000000803f0000803fffffffff000070c1000060406a42123f16040b3f0000204100004040000058c1000080bf000000000000000000000000000000000000803f0000803fffffffff000058c1000040405e42153ff303143f0000204100006040000058c1000080bf000000000000000000000000000000000000803f0000803fffffffff000058c1000060406a42123ff303143f0000204100004040000070c1000080bf000000000000000000000000000000000000803f0000803fffffffff000070c1000040405e42153f16040b3f0000204100008040000070c1000080bf000000000000000000000000000000000000803f0000803fffffffff000070c10000804075420f3f16040b3f0000204100008040000058c1000080bf000000000000000000000000000000000000803f0000803fffffffff000058c10000804075420f3ff303143f0000284100006040000058c1000080bf000000000000000000000000000000000000803f0000803fffffffff000058c1000060408083303ffc85d93e0000284100004040000054c1000080bf000000000000000000000000000000000000803f0000803fffffffff000054c1000040407a03323f1386d33e0000284100006040000054c1000080bf000000000000000000000000000000000000803f0000803fffffffff000054c1000060407a03323ffc85d93e0000284100004040000058c1000080bf000000000000000000000000000000000000803f0000803fffffffff000058c1000040408083303f1386d33e0000284100008040000058c1000080bf000000000000000000000000000000000000803f0000803fffffffff000058c1000080408083303fe585df3e0000284100008040000054c1000080bf000000000000000000000000000000000000803f0000803fffffffff000054c1000080407b03323fe585df3e0000000000006040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c1000060400c834e3f96c2073f0000000000006040000054c10000803f000000000000000000000000000000000000803f000080bfffffffff000054c10000604012034d3f96c2073f0000000000008040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c1000080400c834e3f8ac20a3f0000000000008040000054c10000803f000000000000000000000000000000000000803f000080bfffffffff000054c10000804012034d3f8ac20a3f0000404000006040000008c10000000000000000000080bf000080bf00000000000000000000803fffffffff000040c00000604072057c3fa3c2043f0000003f00006040000008c10000000000000000000080bf000080bf00000000000000000000803fffffffff000000bf0000604072057c3fb885eb3e0000404000008040000008c10000000000000000000080bf000080bf00000000000000000000803fffffffff000040c00000804066057f3fa4c2043f0000003f00008040000008c10000000000000000000080bf000080bf00000000000000000000803fffffffff000000bf0000804066057f3fb985eb3e0000000000006040000008c10000000000000000000080bf000080bf00000000000000000000803fffffffff000000000000604072057c3fce85e53e0000000000008040000008c10000000000000000000080bf000080bf00000000000000000000803fffffffff000000000000804067057f3fcf85e53e0000003f00006040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf00006040bf03a03e3242213f0000000000006040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000000000006040d6039a3e3242213f0000003f00008040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf00008040bf03a03e2642243f0000000000008040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000000000008040d6039a3e2642243f0000404000006040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000040c0000060404e03be3e3242213f0000404000008040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000040c0000080404e03be3e2642243f0000f04000006040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff0000f0c0000060405e42153f98c2073f0000804000004040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000080c0000040400b422a3fa3c2043f0000804000006040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000080c0000060400b422a3f97c2073f0000f04000004040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff0000f0c0000040405f42153fa4c2043f0000f04000008040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff0000f0c0000080405e42153f8cc20a3f0000804000008040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000080c0000080400a422a3f8cc20a3f0000804000006040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000060401e03ca3e3242213f0000f04000006040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c0000060407e02f43e3242213f0000f04000008040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c0000080407e02f43e2642243f0000804000008040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000080401e03ca3e2642243f0000004100000040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000000c1000000406b42123f7485fd3e0000f04000000000000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff0000f0c0000000006142153fcf85e53e0000f04000000040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff0000f0c0000000406042153f7585fd3e0000004100000000000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000000c1000000006d42123fcf85e53e0000084100000040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000008c10000004077420f3f7485fd3e0000084100000000000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000008c10000000078420f3fce85e53e0000004100000000000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c1000000004603413ef880643f0000004100000040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c1000000404803413eca80703f0000084100000000000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000008c10000000018034d3ef980643f0000084100000040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000008c1000000401b034d3eca80703f0000004100001040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000000c1000010406b42123fb442003f0000f04000001040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff0000f0c0000010406042153fb542003f0000084100001040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000008c10000104076420f3fb442003f0000004100004040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000000c1000040406a42123fa3c2043f0000084100004040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000008c10000404076420f3fa3c2043f0000004100000040000054c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c100000040bf001b3f6433b23e0000004100001040000054c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c100001040bf001b3f5933b53e0000084100000040000054c100000000000000000000803f000080bf0000000000000000000080bfffffffff000008c100000040b3001e3f6433b23e0000084100001040000054c100000000000000000000803f000080bf0000000000000000000080bfffffffff000008c100001040b4001e3f5833b53e0000004100001040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c1000010406702fa3e4ec2193f0000084100001040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000008c1000010402801003f4ec2193f0000084100004040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000008c1000040402801003f3d421e3f0000004100004040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c1000040406702fa3e3d421e3f0000004100008040000054c100000000000080bf000000000000803f00000000000000000000803fffffffff00000041000054c12041693f197a443e0000004100008040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff00000041000058c12141693f307a3e3e0000084100001040000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000841000058c1d6039a3e9f03293f0000004100001040000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000058c1bf03a03e9e03293f0000004100001040000054c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000054c1bf03a03e99832a3f0000084100001040000054c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000841000054c1d6039a3e99832a3f0000004100000040000054c100000000000080bf000000000000803f00000000000000000000803fffffffff00000041000054c14803413e5042723f0000084100000040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff00000841000058c119034d3e55c2703f0000084100000040000054c100000000000080bf000000000000803f00000000000000000000803fffffffff00000841000054c11a034d3e4f42723f0000004100000040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff00000041000058c14703413e56c2703f0000004100006040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000000c1000060406a42123f98c2073f0000084100006040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000008c10000604075420f3f97c2073f0000004100008040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000000c1000080406a42123f8cc20a3f0000084100008040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000008c10000804075420f3f8cc20a3f0000084100006040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000008c1000060402801003f3242213f0000004100006040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c1000060406702fa3e3242213f0000004100008040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c1000080406702fa3e2642243f0000084100008040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000008c1000080402801003f2642243f0000604000000040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000060c00000004000422d3f7585fd3e0000404000000000000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000040c000000000f641303fd085e53e0000404000000040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000040c000000040f541303f7585fd3e0000604000000000000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000060c00000000001422d3fcf85e53e0000804000000040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000080c0000000400c422a3f7485fd3e0000804000000000000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000080c0000000000d422a3fcf85e53e0000604000000000000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000060c000000000c109aa3df880643f0000604000000040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000060c000000040c709aa3dca80703f0000604000001040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000060c00000104000422d3fb542003f0000404000001040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000040c000001040f541303fb542003f0000804000001040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000080c0000010400b422a3fb442003f0000604000004040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000060c00000404000422d3fa3c2043f0000404000004040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000040c000004040f441303fa3c2043f0000604000000040000054c100000000000000000000803f000080bf0000000000000000000080bfffffffff000060c0000000402701003f6433b23e0000604000001040000054c100000000000000000000803f000080bf0000000000000000000080bfffffffff000060c0000010402701003f5933b53e0000604000001040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000060c0000010403603c43e4fc2193f0000804000001040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000010401e03ca3e4fc2193f0000804000004040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000040401e03ca3e3d421e3f0000604000004040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000060c0000040403603c43e3d421e3f0000604000008040000054c100000000000080bf000000000000803f00000000000000000000803fffffffff00006040000054c187414e3f197a443e0000604000008040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff00006040000058c187414e3f307a3e3e0000604000001040000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff00006040000058c1f002d63e9f03293f0000604000001040000054c1000000000000803f000000000000803f0000000000000000000080bfffffffff00006040000054c1f002d63e99832a3f0000604000000040000054c100000000000080bf000000000000803f00000000000000000000803fffffffff00006040000054c1c609aa3d4e42723f0000604000000040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff00006040000058c1c709aa3d54c2703f0000604000006040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000060c00000604000422d3f98c2073f0000404000006040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000040c000006040f441303f98c2073f0000604000008040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000060c000008040ff412d3f8cc20a3f0000404000008040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff000040c000008040f441303f8cc20a3f0000604000006040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000060c0000060403603c43e3242213f0000604000008040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff000060c0000080403603c43e2642243f00002c4100001040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff00002c41000010409b444d3f05840f3f00002c4100004040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff00002c410000404089c4513f05840f3f0000284100004040000054c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000028c1000054c1f303943eb1037d3f0000284100004040000058c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000028c1000058c1e803973eb1037d3f00002c4100004040000054c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00002cc1000054c1f303943eac837e3f00002c4100004040000058c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00002cc1000058c1e803973eac837e3f00002c4100000040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff00002c4100000040a0c44b3f05840f3f00002c4100004040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff00002cc100004040c285e83e9b8a7e3f00002c4100001040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff00002cc1000010409f85f13e9b8a7e3f00002c4100000040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff00002cc1000000409485f43e9b8a7e3f0000284100000040000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002841000058c1d7039a3eaf8e7d3f0000284100000040000054c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002841000054c1cc039d3eaf8e7d3f00002c4100000040000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002c41000058c1d6039a3ea90e7f3f00002c4100000040000054c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002c41000054c1cb039d3ea90e7f3f00009c4000001c40000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff00009cc000001c40ef08633e35c57e3f0000b84000001c40000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000b8c000001c409f08783e35c57e3f0000b84000002840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000b8c0000028409f08783e31e57f3f00009c4000002840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff00009cc000002840ef08633e31e57f3f0000804000001c40000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c000001c4040094e3e35c57e3f0000804000002840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c00000284040094e3e31e57f3f0000d44000001c40000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000d4c000001c402784863e35c57e3f0000f04000001c40000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c000001c40ff03913e35c57e3f0000f04000002840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c000002840ff03913e31e57f3f0000d44000002840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000d4c0000028402784863e31e57f3f0000d44000003440000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000d4c000003440670a803d34c57e3f0000f04000003440000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c000003440c709aa3d34c57e3f0000f04000004040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c000004040c709aa3d2fe57f3f0000d44000004040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000d4c000004040680a803d2fe57f3f0000b84000003440000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000b8c00000344011162c3d34c57e3f0000b84000004040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000b8c00000404011162c3d2fe57f3f00009c4000003440000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff00009cc000003440a42eb03c34c57e3f00009c4000004040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff00009cc000004040a42eb03c2fe57f3f0000804000003440000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000034406f12833a34c57e3f0000804000004040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000040407212833a2fe57f3f00009c4000004840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff00009cc000004840ac05ed3ec1d0593f0000b84000004840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000b8c0000048408485f73ec1d0593f0000b84000005040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000b8c0000050408485f73ebe905a3f00009c4000005040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff00009cc000005040ac05ed3ebe905a3f0000804000004840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c000004840d585e23ec1d0593f0000804000005040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c000005040d585e23ebe905a3f0000d44000004840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000d4c000004840ae02013fc1d0593f0000f04000004840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c0000048409a42063fc1d0593f0000f04000005040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c0000050409a42063fbe905a3f0000d44000005040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000d4c000005040ae02013fbe905a3f0000d44000005840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000d4c000005840ae02013f48d25a3f0000f04000005840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c0000058409a42063f48d25a3f0000f04000006040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c0000060409a42063f45925b3f0000d44000006040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000d4c000006040ae02013f45925b3f0000b84000005840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000b8c0000058408485f73e48d25a3f0000b84000006040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000b8c0000060408485f73e45925b3f00009c4000005840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff00009cc000005840ac05ed3e48d25a3f00009c4000006040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff00009cc000006040ac05ed3e45925b3f0000804000005840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c000005840d585e23e48d25a3f0000804000006040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c000006040d585e23e45925b3f0000f44000001c40000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f4c000001c40f983923e35c57e3f0000f84000001c40000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f8c000001c40f403943e35c57e3f0000f84000002840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f8c000002840f403943e31e57f3f0000f44000002840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f4c000002840f983923e31e57f3f0000fc4000001c40000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000fcc000001c40ee83953e35c57e3f0000004100001c40000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c100001c40e803973e35c57e3f0000004100002840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c100002840e803973e31e57f3f0000fc4000002840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000fcc000002840ee83953e31e57f3f0000fc4000003440000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000fcc0000034408209bc3d34c57e3f0000004100003440000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c1000034406b09c23d34c57e3f0000004100004040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c1000040406b09c23d2fe57f3f0000fc4000004040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000fcc0000040408209bc3d2fe57f3f0000f84000003440000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f8c0000034409909b63d34c57e3f0000f84000004040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f8c0000040409909b63d2fe57f3f0000f44000003440000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f4c000003440b009b03d34c57e3f0000f44000004040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f4c000004040b009b03d2fe57f3f0000f44000004840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f4c0000048409702073fc1d0593f0000f84000004840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f8c00000484094c2073fc1d0593f0000f84000005040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f8c00000504094c2073fbe905a3f0000f44000005040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f4c0000050409702073fbe905a3f0000fc4000004840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000fcc0000048409182083fc1d0593f0000004100004840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c1000048408e42093fc1d0593f0000004100005040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c1000050408e42093fbe905a3f0000fc4000005040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000fcc0000050409182083fbe905a3f0000fc4000005840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000fcc0000058409182083f48d25a3f0000004100005840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c1000058408e42093f48d25a3f0000004100006040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c1000060408e42093f45925b3f0000fc4000006040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000fcc0000060409182083f45925b3f0000f84000005840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f8c00000584094c2073f48d25a3f0000f84000006040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f8c00000604094c2073f45925b3f0000f44000005840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f4c0000058409702073f48d25a3f0000f44000006040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f4c0000060409702073f45925b3f0000004100001040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000060c1bf03a03eaa03263f0000fc4000001040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000fc40000060c1ba83a13eaa03263f0000f84000001040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f840000060c1b403a33eaa03263f0000f44000001040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f440000060c1ae83a43eaa03263f0000f04000001040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000060c1a903a63eaa03263f0000004100006040000058c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c1000058c11e03ca3e264d7d3f0000f04000006040000058c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0000058c13503c43e264d7d3f0000f84000006040000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f8c0000060c12a03c73e314d7a3f0000f44000006040000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f4c0000060c12f83c53e314d7a3f0000f04000006040000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0000060c13503c43e314d7a3f0000fc4000006040000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000fcc0000060c12483c83e314d7a3f0000004100006040000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c1000060c11e03ca3e314d7a3f0000804000004040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c100004040a768923e0ac22b3f0000804000004040000060c10000803f000000000000000000000000000000000000803f000080bfffffffff000060c100004040a768923e16c2283f0000804000004840000060c10000803f000000000000000000000000000000000000803f000080bfffffffff000060c100004840a2e8933e16c2283f0000804000005040000060c10000803f000000000000000000000000000000000000803f000080bfffffffff000060c1000050409c68953e16c2283f0000804000006040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c1000060409068983e0ac22b3f0000804000005840000060c10000803f000000000000000000000000000000000000803f000080bfffffffff000060c10000584096e8963e16c2283f0000804000006040000060c10000803f000000000000000000000000000000000000803f000080bfffffffff000060c1000060409068983e16c2283f0000804000006040000058c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0000058c1d6039a3e264d7d3f0000b84000006040000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000b8c0000060c18603af3e314d7a3f00009c4000006040000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00009cc0000060c1ae83a43e314d7a3f0000804000006040000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0000060c1d7039a3e314d7a3f0000d44000006040000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000d4c0000060c15d83b93e314d7a3f0000d44000001040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000d440000060c18083b03eaa03263f0000b84000001040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000b840000060c15703bb3eaa03263f00009c4000001040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00009c40000060c12f83c53eaa03263f0000804000001040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000060c10703d03eaa03263f0000004100006040000058c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00005841000060407e82753f145f683d0000004100006040000060c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006041000060407e82753fce5f383d0000004100005840000060c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006041000058407b42763fce5f383d0000004100005040000060c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006041000050407802773fce5f383d0000004100004040000058c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00005841000040407282783f145f683d0000004100004840000060c1000080bf00000000000000000000000000000000000080bf000080bfffffffff000060410000484075c2773fce5f383d0000004100004040000060c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006041000040407282783fd05f383d0000804000001040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c100001040ca68893e0ac22b3f0000804000001040000060c10000803f000000000000000000000000000000000000803f000080bfffffffff000060c100001040ca68893e16c2283f0000804000001c40000060c10000803f000000000000000000000000000000000000803f000080bfffffffff000060c100001c40c1a88b3e16c2283f0000804000002840000060c10000803f000000000000000000000000000000000000803f000080bfffffffff000060c100002840b9e88d3e16c2283f0000804000003440000060c10000803f000000000000000000000000000000000000803f000080bfffffffff000060c100003440b028903e16c2283f0000004100003440000060c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006041000034406ea2793fcf5f383d0000004100002840000060c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006041000028406ac27a3fcf5f383d0000004100001040000058c1000080bf00000000000000000000000000000000000080bf000080bfffffffff000058410000104061027d3f145f683d0000004100001c40000060c1000080bf00000000000000000000000000000000000080bf000080bfffffffff0000604100001c4065e27b3fcf5f383d0000004100001040000060c1000080bf00000000000000000000000000000000000080bf000080bfffffffff000060410000104061027d3fd15f383d0000903f00001c40000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000090bf00001c40450a093eb0037d3f0000e03f00001c40000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000e0bf00001c400c0a183eb0037d3f0000e03f00002840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000e0bf000028400c0a183eac237e3f0000903f00002840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000090bf00002840450a093eac237e3f0000003f00001c40000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf00001c40fe14f43db0037d3f0000003f00002840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf00002840fe14f43dac237e3f0000184000001c40000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000018c000001c40d309273eb0037d3f0000404000001c40000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000040c000001c409909363eb0037d3f0000404000002840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000040c0000028409909363eac237e3f0000184000002840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000018c000002840d309273eac237e3f0000184000003440000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000018c000003440fa812f3f1cadb73e0000404000003440000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000040c000003440eb41333f1cadb73e0000404000004040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000040c000004040eb41333f14edb93e0000184000004040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000018c000004040fa812f3f14edb93e0000e03f00003440000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000e0bf0000344008c22b3f1cadb73e0000e03f00004040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000e0bf0000404008c22b3f14edb93e0000903f00003440000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000090bf000034401602283f1cadb73e0000903f00004040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000090bf000040401602283f14edb93e0000003f00003440000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf000034402542243f1cadb73e0000003f00004040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf000040402542243f14edb93e0000903f00004840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000090bf00004840d405e43e25cc7e3f0000e03f00004840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000e0bf00004840b785eb3e25cc7e3f0000e03f00005040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000e0bf00005040b785eb3e228c7f3f0000903f00005040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000090bf00005040d405e43e228c7f3f0000003f00004840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf00004840f085dc3e25cc7e3f0000003f00005040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf00005040f085dc3e228c7f3f0000184000004840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000018c0000048409a05f33e25cc7e3f0000404000004840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000040c0000048407d85fa3e25cc7e3f0000404000005040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000040c0000050407e85fa3e228c7f3f0000184000005040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000018c0000050409a05f33e228c7f3f0000184000005840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000018c0000058404224f63efc885e3f0000404000005840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000040c00000584026a4fd3efc885e3f0000404000006040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000040c00000604026a4fd3ef9485f3f0000184000006040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000018c0000060404224f63ef9485f3f0000e03f00005840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000e0bf000058405fa4ee3efc885e3f0000e03f00006040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000e0bf000060405fa4ee3ef9485f3f0000903f00005840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000090bf000058407c24e73efc885e3f0000903f00006040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000090bf000060407c24e73ef9485f3f0000003f00005840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf0000584099a4df3efc885e3f0000003f00006040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf0000604099a4df3ef9485f3f0000484000001c40000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000048c000001c408e09393eb0037d3f0000504000001c40000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000050c000001c4082093c3eb0037d3f0000504000002840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000050c00000284082093c3eac237e3f0000484000002840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000048c0000028408e09393eac237e3f0000584000001c40000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000058c000001c4077093f3eb0037d3f0000604000001c40000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000060c000001c406b09423eb0037d3f0000604000002840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000060c0000028406b09423eac237e3f0000584000002840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000058c00000284077093f3eac237e3f0000584000003440000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000058c000003440e381353f1cadb73e0000604000003440000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000060c000003440e041363f1cadb73e0000604000004040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000060c000004040e041363f14edb93e0000584000004040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000058c000004040e381353f14edb93e0000504000003440000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000050c000003440e6c1343f1cadb73e0000504000004040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000050c000004040e6c1343f14edb93e0000484000003440000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000048c000003440e901343f1cadb73e0000484000004040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000048c000004040e901343f14edb93e0000484000004840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000048c0000048407805fc3e25cc7e3f0000504000004840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000050c0000048407285fd3e25cc7e3f0000504000005040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000050c0000050407285fd3e228c7f3f0000484000005040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000048c0000050407805fc3e228c7f3f0000584000004840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000058c0000048406c05ff3e25cc7e3f0000604000004840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000060c000004840b342003f25cc7e3f0000604000005040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000060c000005040b342003f228c7f3f0000584000005040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000058c0000050406c05ff3e228c7f3f0000584000005840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000058c0000058400a12013ffc885e3f0000604000005840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000060c00000584007d2013ffc885e3f0000604000006040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000060c00000604007d2013ff9485f3f0000584000006040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000058c0000060400a12013ff9485f3f0000504000005840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000050c0000058400d52003ffc885e3f0000504000006040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000050c0000060400d52003ff9485f3f0000484000005840000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000048c0000058402024ff3efc885e3f0000484000006040000060c100000000000000000000803f000080bf0000000000000000000080bfffffffff000048c0000060402024ff3ef9485f3f0000404000001040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004040000060c1d902dc3eaa03263f0000184000001040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00001840000060c1bc82e33eaa03263f0000e03f00001040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000e03f000060c19f02eb3eaa03263f0000903f00001040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000903f000060c18282f23eaa03263f0000003f00001040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000060c16502fa3eaa03263f0000604000006040000058c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00005841000060407e82753f4a3b9a3d0000604000006040000060c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006041000060407e82753fa73b823d0000604000005840000060c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006041000058407b42763fa73b823d0000604000005040000060c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006041000050407802773fa73b823d0000604000004040000058c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00005841000040407282783f4b3b9a3d0000604000004840000060c1000080bf00000000000000000000000000000000000080bf000080bfffffffff000060410000484075c2773fa73b823d0000604000004040000060c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006041000040407282783fa83b823d0000003f00001040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c100001040ca68893e8283303f0000003f00001040000060c10000803f000000000000000000000000000000000000803f000080bfffffffff000060c100001040ca68893e8e832d3f0000003f00001c40000060c10000803f000000000000000000000000000000000000803f000080bfffffffff000060c100001c40c1a88b3e8e832d3f0000003f00002840000060c10000803f000000000000000000000000000000000000803f000080bfffffffff000060c100002840b9e88d3e8e832d3f0000003f00004040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c100004040a768923e8283303f0000003f00003440000060c10000803f000000000000000000000000000000000000803f000080bfffffffff000060c100003440b028903e8e832d3f0000003f00004040000060c10000803f000000000000000000000000000000000000803f000080bfffffffff000060c100004040a768923e8e832d3f0000404000006040000058c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000040c0000058c1fd05583f10c8353f0000003f00006040000058c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000bf000058c13706493f10c8353f0000e03f00006040000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000e0bf000060c11a86503f1cc8323f0000903f00006040000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000090bf000060c128c64c3f1cc8323f0000003f00006040000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000bf000060c13706493f1cc8323f0000184000006040000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000018c0000060c10c46543f1cc8323f0000404000006040000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000040c0000060c1fd05583f1cc8323f0000604000001040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00006040000060c1f002d63eaa03263f0000584000001040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00005840000060c1ea82d73eaa03263f0000504000001040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00005040000060c1e402d93eaa03263f0000484000001040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004840000060c1de82da3eaa03263f0000604000003440000060c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006041000034406ea2793fa83b823d0000604000002840000060c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006041000028406ac27a3fa83b823d0000604000001040000058c1000080bf00000000000000000000000000000000000080bf000080bfffffffff000058410000104061027d3f4a3b9a3d0000604000001c40000060c1000080bf00000000000000000000000000000000000080bf000080bfffffffff0000604100001c4065e27b3fa83b823d0000604000001040000060c1000080bf00000000000000000000000000000000000080bf000080bfffffffff000060410000104061027d3fa93b823d0000003f00004840000060c10000803f000000000000000000000000000000000000803f000080bfffffffff000060c100004840a2e8933e8e832d3f0000003f00005040000060c10000803f000000000000000000000000000000000000803f000080bfffffffff000060c1000050409c68953e8e832d3f0000003f00006040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c1000060409068983e8283303f0000003f00005840000060c10000803f000000000000000000000000000000000000803f000080bfffffffff000060c10000584096e8963e8e832d3f0000003f00006040000060c10000803f000000000000000000000000000000000000803f000080bfffffffff000060c1000060409068983e8e832d3f0000604000006040000058c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000060c0000058c1f2055b3f10c8353f0000504000006040000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000050c0000060c1f785593f1cc8323f0000484000006040000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000048c0000060c1fac5583f1cc8323f0000584000006040000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000058c0000060c1f4455a3f1cc8323f0000604000006040000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000060c0000060c1f2055b3f1cc8323f0000fc4000002840000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000fc40000060c1c0c5673fab45083f0000004100002840000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000060c1c305673fab45083f0000fc4000002840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000fc40000064c1c0c5673fb1c5063f0000004100002840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000064c1c305673fb1c5063f0000004100002840000064c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006441000028406ac27a3f2a60203d0000004100003440000064c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006441000034406ea2793f2a60203d0000804000003440000064c10000803f000000000000000000000000000000000000803f000080bfffffffff000064c100003440b028903e1c42273f0000804000002840000064c10000803f000000000000000000000000000000000000803f000080bfffffffff000064c100002840b9e88d3e1c42273f0000004100003440000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c1000060c139c4663f2684063f0000fc4000003440000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000fcc0000060c13b04663f2684063f0000004100003440000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c1000064c139c4663f2b04053f0000fc4000003440000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000fcc0000064c13b04663f2b04053f0000f84000002840000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f840000060c1bd85683fab45083f0000f84000002840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f840000064c1bd85683fb1c5063f0000f84000003440000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f8c0000060c13e44653f2684063f0000f84000003440000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f8c0000064c13e44653f2b04053f0000f44000002840000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f440000060c1ba45693fab45083f0000f44000002840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f440000064c1ba45693fb1c5063f0000f44000003440000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f4c0000060c14184643f2684063f0000f44000003440000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f4c0000064c14184643f2b04053f0000f04000002840000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000060c1b7056a3fab45083f0000f04000002840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000064c1b7056a3fb1c5063f0000f04000003440000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0000060c144c4633f2684063f0000f04000003440000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0000064c144c4633f2b04053f0000d44000002840000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000d440000060c1a3456f3fab45083f0000d44000002840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000d440000064c1a3456f3fb1c5063f0000d44000003440000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000d4c0000060c158845e3f2684063f0000d44000003440000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000d4c0000064c159845e3f2b04053f0000b84000002840000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000b840000060c18e85743fab45083f0000b84000002840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000b840000064c18e85743fb1c5063f0000b84000003440000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000b8c0000060c16d44593f2684063f0000b84000003440000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000b8c0000064c16d44593f2b04053f00009c4000002840000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00009c40000060c17ac5793fab45083f00009c4000002840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00009c40000064c17ac5793fb1c5063f00009c4000003440000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00009cc0000060c18104543f2684063f00009c4000003440000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00009cc0000064c18104543f2b04053f0000804000002840000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000060c166057f3fab45083f0000804000002840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000064c166057f3fb1c5063f0000804000003440000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0000060c195c44e3f2684063f0000804000003440000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0000064c196c44e3f2b04053f0000fc4000001040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000fc40000064c1ba83a13eb083243f0000004100001040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000064c1c003a03eb083243f0000004100001040000064c1000080bf00000000000000000000000000000000000080bf000080bfffffffff000064410000104061027d3f2d60203d0000004100001c40000064c1000080bf00000000000000000000000000000000000080bf000080bfffffffff0000644100001c4065e27b3f2b60203d0000804000001c40000064c10000803f000000000000000000000000000000000000803f000080bfffffffff000064c100001c40c1a88b3e1c42273f0000804000001040000064c10000803f000000000000000000000000000000000000803f000080bfffffffff000064c100001040ca68893e1c42273f0000004100001c40000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c1000060c139c4663f2d070a3f0000fc4000001c40000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000fcc0000060c13b04663f2d070a3f0000004100001c40000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c1000064c139c4663f3387083f0000fc4000001c40000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000fcc0000064c13b04663f3387083f0000f84000001040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f840000064c1b403a33eb083243f0000f84000001c40000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f8c0000060c13e44653f2d070a3f0000f84000001c40000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f8c0000064c13e44653f3387083f0000f44000001040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f440000064c1af83a43eb083243f0000f44000001c40000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f4c0000060c14184643f2d070a3f0000f44000001c40000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f4c0000064c14184643f3387083f0000f04000001040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000064c1a903a63eb083243f0000f04000001c40000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0000060c144c4633f2d070a3f0000f04000001c40000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0000064c144c4633f3387083f0000d44000001040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000d440000064c18083b03eb083243f0000d44000001c40000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000d4c0000060c158845e3f2d070a3f0000d44000001c40000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000d4c0000064c159845e3f3387083f0000b84000001040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000b840000064c15803bb3eb083243f0000b84000001c40000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000b8c0000060c16d44593f2d070a3f0000b84000001c40000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000b8c0000064c16d44593f3387083f00009c4000001040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00009c40000064c12f83c53eb083243f00009c4000001c40000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00009cc0000060c18104543f2d070a3f00009c4000001c40000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00009cc0000064c18104543f3387083f0000804000001040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000064c10703d03eb083243f0000804000001c40000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0000060c195c44e3f2d070a3f0000804000001c40000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0000064c196c44e3f3387083f0000fc4000004040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000fc40000060c1c0c5673f2f070a3f0000004100004040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000060c1c305673f2f070a3f0000fc4000004040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000fc40000064c1c0c5673f3587083f0000004100004040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000064c1c305673f3587083f0000004100004040000064c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006441000040407382783f2960203d0000004100004840000064c1000080bf00000000000000000000000000000000000080bf000080bfffffffff000064410000484075c2773f2760203d0000804000004840000064c10000803f000000000000000000000000000000000000803f000080bfffffffff000064c100004840a1e8933e1c42273f0000804000004040000064c10000803f000000000000000000000000000000000000803f000080bfffffffff000064c100004040a768923e1c42273f0000004100004840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c1000060c139c4663fa945083f0000fc4000004840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000fcc0000060c13b04663fa945083f0000004100004840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c1000064c139c4663fafc5063f0000fc4000004840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000fcc0000064c13b04663fafc5063f0000f84000004040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f840000060c1bd85683f2f070a3f0000f84000004040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f840000064c1bd85683f3587083f0000f84000004840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f8c0000060c13e44653fa945083f0000f84000004840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f8c0000064c13e44653fafc5063f0000f44000004040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f440000060c1ba45693f2f070a3f0000f44000004040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f440000064c1ba45693f3587083f0000f44000004840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f4c0000060c14184643fa945083f0000f44000004840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f4c0000064c14184643fafc5063f0000f04000004040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000060c1b7056a3f2f070a3f0000f04000004040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000064c1b7056a3f3587083f0000f04000004840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0000060c144c4633fa945083f0000f04000004840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0000064c144c4633fafc5063f0000d44000004040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000d440000060c1a3456f3f2f070a3f0000d44000004040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000d440000064c1a3456f3f3587083f0000d44000004840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000d4c0000060c158845e3fa945083f0000d44000004840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000d4c0000064c159845e3fafc5063f0000b84000004040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000b840000060c18e85743f2f070a3f0000b84000004040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000b840000064c18e85743f3587083f0000b84000004840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000b8c0000060c16d44593fa945083f0000b84000004840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000b8c0000064c16d44593fafc5063f00009c4000004040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00009c40000060c17ac5793f2f070a3f00009c4000004040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00009c40000064c17ac5793f3587083f00009c4000004840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00009cc0000060c18104543fa945083f00009c4000004840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00009cc0000064c18104543fafc5063f0000804000004040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000060c166057f3f2f070a3f0000804000004040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000064c166057f3f3587083f0000804000004840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0000060c195c44e3fa945083f0000804000004840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0000064c196c44e3fafc5063f0000fc4000005040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000fc40000060c1c0c5673f2784063f0000004100005040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000060c1c305673f2884063f0000fc4000005040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000fc40000064c1c0c5673f2d04053f0000004100005040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000064c1c305673f2d04053f0000004100005040000064c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006441000050407802773f2860203d0000004100005840000064c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006441000058407b42763f2860203d0000804000005840000064c10000803f000000000000000000000000000000000000803f000080bfffffffff000064c10000584096e8963e1c42273f0000804000005040000064c10000803f000000000000000000000000000000000000803f000080bfffffffff000064c1000050409c68953e1c42273f0000004100005840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c1000060c12383483fec08e33e0000fc4000005840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000fcc0000060c126c3473fed08e33e0000004100005840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000c1000064c12383483ff808e03e0000fc4000005840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000fcc0000064c126c3473ff808e03e0000f84000005040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f840000060c1bd85683f2884063f0000f84000005040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f840000064c1bd85683f2d04053f0000f84000005840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f8c0000060c12903473fed08e33e0000f84000005840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f8c0000064c12903473ff808e03e0000f44000005040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f440000060c1ba45693f2884063f0000f44000005040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f440000064c1ba45693f2d04053f0000f44000005840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f4c0000060c12c43463fed08e33e0000f44000005840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f4c0000064c12c43463ff808e03e0000f04000005040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000060c1b7056a3f2884063f0000f04000005040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000064c1b7056a3f2d04053f0000f04000005840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0000060c12f83453fec08e33e0000f04000005840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0000064c12f83453ff808e03e0000d44000005040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000d440000060c1a3456f3f2884063f0000d44000005040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000d440000064c1a3456f3f2d04053f0000d44000005840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000d4c0000060c14343403fed08e33e0000d44000005840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000d4c0000064c14343403ff808e03e0000b84000005040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000b840000060c18e85743f2884063f0000b84000005040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000b840000064c18e85743f2d04053f0000b84000005840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000b8c0000060c157033b3fed08e33e0000b84000005840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000b8c0000064c158033b3ff808e03e00009c4000005040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00009c40000060c17ac5793f2884063f00009c4000005040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00009c40000064c17ac5793f2d04053f00009c4000005840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00009cc0000060c16cc3353fec08e33e00009c4000005840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00009cc0000064c16cc3353ff808e03e0000804000005040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000060c166057f3f2884063f0000804000005040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000064c166057f3f2d04053f0000804000005840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0000060c18083303fec08e33e0000804000005840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0000064c18083303ff808e03e0000584000001040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00005840000064c1ea82d73eb083243f0000604000001040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00006040000064c1f002d63eb083243f0000604000001040000064c1000080bf00000000000000000000000000000000000080bf000080bfffffffff000064410000104061027d3fae776c3d0000604000001c40000064c1000080bf00000000000000000000000000000000000080bf000080bfffffffff0000644100001c4065e27b3fac776c3d0000003f00001c40000064c10000803f000000000000000000000000000000000000803f000080bfffffffff000064c100001c40c1a88b3e94032c3f0000003f00001040000064c10000803f000000000000000000000000000000000000803f000080bfffffffff000064c100001040ca68893e94032c3f0000604000001c40000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000060c0000060c1adc4483f07ce683f0000584000001c40000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000058c0000060c1b004483f07ce683f0000604000001c40000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000060c0000064c1adc4483f0d4e673f0000584000001c40000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000058c0000064c1b004483f0d4e673f0000504000001040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00005040000064c1e402d93eb083243f0000504000001c40000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000050c0000060c1b344473f07ce683f0000504000001c40000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000050c0000064c1b344473f0d4e673f0000484000001040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004840000064c1df82da3eb083243f0000484000001c40000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000048c0000060c1b684463f07ce683f0000484000001c40000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000048c0000064c1b684463f0d4e673f0000404000001040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004040000064c1d902dc3eb083243f0000404000001c40000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000040c0000060c1b9c4453f07ce683f0000404000001c40000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000040c0000064c1b9c4453f0c4e673f0000184000001040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00001840000064c1bc82e33eb083243f0000184000001c40000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000018c0000060c1c704423f07ce683f0000184000001c40000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000018c0000064c1c704423f0d4e673f0000e03f00001040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000e03f000064c19f02eb3eb083243f0000e03f00001c40000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000e0bf000060c1d6443e3f07ce683f0000e03f00001c40000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000e0bf000064c1d6443e3f0d4e673f0000903f00001040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000903f000064c18282f23eb083243f0000903f00001c40000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000090bf000060c1e4843a3f07ce683f0000903f00001c40000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000090bf000064c1e4843a3f0d4e673f0000003f00001040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000064c16502fa3eb083243f0000003f00001c40000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000bf000060c1f3c4363f07ce683f0000003f00001c40000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000bf000064c1f3c4363f0d4e673f0000003f00002840000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000060c1adc4483f9995713f0000903f00002840000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000903f000060c1bb04453f9995713f0000003f00002840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000064c1adc4483f9f15703f0000903f00002840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000903f000064c1bc04453f9f15703f0000e03f00003440000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000e0bf000060c1d6443e3f0e516c3f0000903f00003440000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000090bf000060c1e4843a3f0e516c3f0000e03f00003440000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000e0bf000064c1d6443e3f14d16a3f0000903f00003440000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000090bf000064c1e4843a3f14d16a3f0000003f00003440000064c10000803f000000000000000000000000000000000000803f000080bfffffffff000064c100003440b028903e94032c3f0000003f00002840000064c10000803f000000000000000000000000000000000000803f000080bfffffffff000064c100002840b9e88d3e94032c3f0000003f00003440000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000bf000060c1f3c4363f0e516c3f0000003f00003440000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000bf000064c1f3c4363f14d16a3f0000e03f00002840000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000e03f000060c1ca44413f9995713f0000e03f00002840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000e03f000064c1ca44413f9f15703f0000184000003440000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000018c0000060c1c704423f0e516c3f0000184000003440000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000018c0000064c1c704423f14d16a3f0000184000002840000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00001840000060c1d8843d3f9995713f0000184000002840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00001840000064c1d9843d3f9f15703f0000404000003440000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000040c0000060c1b9c4453f0e516c3f0000404000003440000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000040c0000064c1b9c4453f14d16a3f0000404000002840000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004040000060c1e7c4393f9995713f0000404000002840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004040000064c1e7c4393f9f15703f0000484000003440000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000048c0000060c1b684463f0e516c3f0000484000003440000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000048c0000064c1b684463f14d16a3f0000484000002840000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004840000060c1ea04393f9995713f0000484000002840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004840000064c1ea04393f9f15703f0000504000003440000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000050c0000060c1b344473f0e516c3f0000504000003440000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000050c0000064c1b344473f14d16a3f0000504000002840000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00005040000060c1ed44383f9995713f0000504000002840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00005040000064c1ed44383f9f15703f0000584000003440000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000058c0000060c1b004483f0e516c3f0000584000003440000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000058c0000064c1b004483f14d16a3f0000584000002840000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00005840000060c1f084373f9995713f0000584000002840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00005840000064c1f084373f9f15703f0000604000003440000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000060c0000060c1adc4483f0e516c3f0000604000003440000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000060c0000064c1adc4483f14d16a3f0000604000002840000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00006040000060c1f3c4363f9995713f0000604000002840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00006040000064c1f3c4363f9f15703f0000604000002840000064c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006441000028406ac27a3fab776c3d0000604000003440000064c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006441000034406ea2793fab776c3d0000003f00004040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000060c1adc4483f1d57733f0000903f00004040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000903f000060c1bb04453f1d57733f0000003f00004040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000064c1adc4483f22d7713f0000903f00004040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000903f000064c1bc04453f22d7713f0000e03f00004840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000e0bf000060c1d6443e3f92126e3f0000903f00004840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000090bf000060c1e4843a3f92126e3f0000e03f00004840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000e0bf000064c1d6443e3f97926c3f0000903f00004840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000090bf000064c1e4843a3f97926c3f0000003f00004840000064c10000803f000000000000000000000000000000000000803f000080bfffffffff000064c100004840a1e8933e94032c3f0000003f00004040000064c10000803f000000000000000000000000000000000000803f000080bfffffffff000064c100004040a768923e94032c3f0000003f00004840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000bf000060c1f3c4363f92126e3f0000003f00004840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000bf000064c1f3c4363f97926c3f0000e03f00004040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000e03f000060c1ca44413f1d57733f0000e03f00004040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000e03f000064c1ca44413f22d7713f0000184000004840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000018c0000060c1c704423f92126e3f0000184000004840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000018c0000064c1c704423f97926c3f0000184000004040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00001840000060c1d8843d3f1d57733f0000184000004040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00001840000064c1d9843d3f22d7713f0000404000004840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000040c0000060c1b9c4453f92126e3f0000404000004840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000040c0000064c1b9c4453f97926c3f0000404000004040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004040000060c1e7c4393f1d57733f0000404000004040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004040000064c1e7c4393f22d7713f0000484000004840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000048c0000060c1b684463f92126e3f0000484000004840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000048c0000064c1b684463f97926c3f0000484000004040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004840000060c1ea04393f1d57733f0000484000004040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004840000064c1ea04393f22d7713f0000504000004840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000050c0000060c1b344473f92126e3f0000504000004840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000050c0000064c1b344473f97926c3f0000504000004040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00005040000060c1ed44383f1d57733f0000504000004040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00005040000064c1ed44383f22d7713f0000584000004840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000058c0000060c1b004483f92126e3f0000584000004840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000058c0000064c1b004483f97926c3f0000584000004040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00005840000060c1f084373f1d57733f0000584000004040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00005840000064c1f084373f22d7713f0000604000004840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000060c0000060c1adc4483f92126e3f0000604000004840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000060c0000064c1adc4483f97926c3f0000604000004040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00006040000060c1f3c4363f1d57733f0000604000004040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00006040000064c1f3c4363f22d7713f0000604000004040000064c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006441000040407382783faa776c3d0000604000004840000064c1000080bf00000000000000000000000000000000000080bf000080bfffffffff000064410000484075c2773fa8776c3d0000003f00005040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000060c1adc4483f15d46f3f0000903f00005040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000903f000060c1bb04453f15d46f3f0000003f00005040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000064c1adc4483f1b546e3f0000903f00005040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000903f000064c1bc04453f1b546e3f0000e03f00005840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000e0bf000060c1d6443e3f8a8f6a3f0000903f00005840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000090bf000060c1e4843a3f8a8f6a3f0000e03f00005840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000e0bf000064c1d6443e3f900f693f0000903f00005840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000090bf000064c1e4843a3f900f693f0000003f00005840000064c10000803f000000000000000000000000000000000000803f000080bfffffffff000064c10000584096e8963e94032c3f0000003f00005040000064c10000803f000000000000000000000000000000000000803f000080bfffffffff000064c1000050409c68953e94032c3f0000003f00005840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000bf000060c1f3c4363f8a8f6a3f0000003f00005840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000000bf000064c1f3c4363f900f693f0000e03f00005040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000e03f000060c1ca44413f15d46f3f0000e03f00005040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000e03f000064c1ca44413f1b546e3f0000184000005840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000018c0000060c1c704423f8a8f6a3f0000184000005840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000018c0000064c1c704423f900f693f0000184000005040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00001840000060c1d8843d3f15d46f3f0000184000005040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00001840000064c1d9843d3f1b546e3f0000404000005840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000040c0000060c1b9c4453f8a8f6a3f0000404000005840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000040c0000064c1b9c4453f900f693f0000404000005040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004040000060c1e7c4393f15d46f3f0000404000005040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004040000064c1e7c4393f1b546e3f0000484000005840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000048c0000060c1b684463f8a8f6a3f0000484000005840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000048c0000064c1b684463f900f693f0000484000005040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004840000060c1ea04393f15d46f3f0000484000005040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004840000064c1ea04393f1b546e3f0000504000005840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000050c0000060c1b344473f8b8f6a3f0000504000005840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000050c0000064c1b344473f900f693f0000504000005040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00005040000060c1ed44383f15d46f3f0000504000005040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00005040000064c1ed44383f1b546e3f0000584000005840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000058c0000060c1b004483f8a8f6a3f0000584000005840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000058c0000064c1b004483f900f693f0000584000005040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00005840000060c1f084373f15d46f3f0000584000005040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00005840000064c1f084373f1b546e3f0000604000005840000060c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000060c0000060c1adc4483f8a8f6a3f0000604000005840000064c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000060c0000064c1adc4483f900f693f0000604000005040000060c1000000000000803f000000000000803f0000000000000000000080bfffffffff00006040000060c1f3c4363f15d46f3f0000604000005040000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00006040000064c1f3c4363f1b546e3f0000604000005040000064c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006441000050407802773fa9776c3d0000604000005840000064c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00006441000058407b42763fa9776c3d000000c000006040000020c1000080bf000000000000000000000000000000000000803f0000803fffffffff000020c1000060403bc4663fbb02e53e000000c000004040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c10000404030c4693fd202df3e000000c000006040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c10000604030c4693fbb02e53e000000c000004040000020c1000080bf000000000000000000000000000000000000803f0000803fffffffff000020c1000040403bc4663fd202df3e0000a0c000004040000020c10000803f000000000000000000000000000000000000803f000080bfffffffff000020c10000404046003c3f1f0a923d0000a0c000006040000020c10000803f000000000000000000000000000000000000803f000080bfffffffff000020c10000604046003c3fc309aa3d0000a0c000006040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c1000060405200393fc409aa3d000000c000004040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff000000c0000018c12ec76e3f7d45143f000080bf00004040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff000080bf000020c123c7713f66451a3f000080bf00004040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff000080bf000018c12ec76e3f66451a3f000000c000004040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff000000c0000020c123c7713f7d45143f0000000000004040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff00000000000020c123c7713f4f45203f0000000000004040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff00000000000018c12fc76e3f4f45203f0000084100008040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff00000841000018c112416c3f643c8f3e0000204100008040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff00002041000020c1ef40753f7a3c893e0000204100008040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff00002041000018c1ef40753f623c8f3e0000084100008040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff00000841000020c113416c3f7b3c893e0000284100000040000020c1000080bf000000000000000000000000000000000000803f0000803fffffffff000020c10000004051833c3f4f45203f0000284100000000000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c10000000046833f3f7d45143f0000284100000040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c10000004045833f3f4f45203f0000284100000000000020c1000080bf000000000000000000000000000000000000803f0000803fffffffff000020c10000000051833c3f7d45143f0000a0c000000000000020c10000803f000000000000000000000000000000000000803f000080bfffffffff000020c10000000046003c3fd813833a0000a0c000000040000020c10000803f000000000000000000000000000000000000803f000080bfffffffff000020c10000004046003c3fb115443d00002c4100001040000020c1000080bf000000000000000000000000000000000000803f0000803fffffffff000020c100001040ff03913e3942783f00002c4100000040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c100000040e903973e3fc2763f00002c4100001040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c100001040e803973e3942783f00002c4100000040000020c1000080bf000000000000000000000000000000000000803f0000803fffffffff000020c100000040ff03913e3ec2763f00002c4100004040000020c1000080bf000000000000000000000000000000000000803f0000803fffffffff000020c100004040fd03913e28c27c3f00002c4100004040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c100004040e603973e28c27c3f0000a8c000000040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c10000004083420c3f6bb6b53e0000a8c000000040000020c10000803f000000000000000000000000000000000000803f000080bfffffffff000020c10000004077420f3f6bb6b53e0000a8c000001040000020c10000803f000000000000000000000000000000000000803f000080bfffffffff000020c10000104077420f3f60b6b83e0000a8c000001040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c10000104083420c3f60b6b83e0000a0c000001040000020c10000803f000000000000000000000000000000000000803f000080bfffffffff000020c10000104047003c3f50155c3d0000a0c000000040000020c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000a0c0000020c1d0c43f3f19dd7e3f0000a8c000000040000020c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000a8c0000020c1d0c43f3f1f5d7d3f0000a8c000000040000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000a8c0000018c1c4c4423f1f5d7d3f0000a0c000000040000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000a0c0000018c1c4c4423f19dd7e3f0000a8c000001040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff0000a8c0000018c1b142003fc281223f0000a0c000001040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff0000a0c0000020c1a642033fbc01243f0000a0c000001040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff0000a0c0000018c1b142003fbc01243f0000a8c000001040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff0000a8c0000020c1a642033fc281223f0000284100008040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff00002841000020c1e440783f7a3c893e0000284100008040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff00002841000018c1e440783f633c8f3e0000003f00008040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff0000003f000020c1cc413c3f7c3c893e0000000000008040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff00000000000020c1d841393f7d3c893e0000804000008040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff00008040000018c17c41513f683c8f3e0000f04000008040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff0000f040000020c12a41663f7a3c893e0000f04000008040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff0000f040000018c12941663f623c8f3e0000804000008040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff00008040000020c17c41513f7f3c893e0000000000004040000020c10000803f000000000000000000000000000000000000803f000080bfffffffff000020c1000040405d83393fa1c2043f0000000000006040000020c10000803f000000000000000000000000000000000000803f000080bfffffffff000020c1000060405d83393f96c2073f0000000000008040000020c10000803f000000000000000000000000000000000000803f000080bfffffffff000020c1000080405d83393f8ac20a3f0000284100006040000020c1000080bf000000000000000000000000000000000000803f0000803fffffffff000020c1000060402f83453ffc85d93e0000284100004040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c1000040402483483f1386d33e0000284100006040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c1000060402483483ffc85d93e0000284100004040000020c1000080bf000000000000000000000000000000000000803f0000803fffffffff000020c1000040402f83453f1386d33e0000284100008040000020c1000080bf000000000000000000000000000000000000803f0000803fffffffff000020c1000080402f83453fe585df3e0000284100008040000018c1000080bf000000000000000000000000000000000000803f0000803fffffffff000018c1000080402483483fe585df3e0000004100008040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff00000041000018c11e41693f633c8f3e0000004100008040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff00000041000020c11e41693f7b3c893e0000604000008040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff00006040000018c187414e3f663c8f3e0000604000008040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff00006040000020c188414e3f7e3c893e0000404000008040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff00004040000020c194414b3f7d3c893e0000284100004040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff00002841000018c140094e3eb1037d3f00002c4100004040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff00002c41000020c112095a3eac837e3f00002c4100004040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff00002c41000018c140094e3eac837e3f0000284100004040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff00002841000020c112095a3eb1037d3f00002c4100000040000020c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002c41000020c13403c43ea90e7f3f0000284100000040000020c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002841000020c13503c43eaf8e7d3f0000284100000040000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002841000018c11e03ca3eaf8e7d3f00002c4100000040000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002c41000018c11d03ca3ea90e7f3f000000c00000604000002cc1000080bf000000000000000000000000000000000000803f0000803fffffffff00002cc1000060404c44623fbb02e53e000000c00000404000002cc1000080bf000000000000000000000000000000000000803f0000803fffffffff00002cc1000040404c44623fd102df3e000000c000006040000038c1000080bf000000000000000000000000000000000000803f0000803fffffffff000038c1000060405dc45d3fba02e53e0000a0c00000404000002cc10000803f000000000000000000000000000000000000803f000080bfffffffff00002cc1000040403580403f200a923d0000a0c00000604000002cc10000803f000000000000000000000000000000000000803f000080bfffffffff00002cc1000060403580403fc409aa3d000000c00000404000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff000000c000002cc11147763f7d45143f000080bf00004040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff000080bf000038c100c77a3f65451a3f000080bf0000404000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff000080bf00002cc11247763f66451a3f000000c000004040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff000000c0000038c100c77a3f7d45143f0000000000004040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff00000000000038c101c77a3f4e45203f000000000000404000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff0000000000002cc11247763f4e45203f000008410000804000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff0000084100002cc112416c3f9a3c803e0000204100008040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff00002041000038c1f040753f7d796e3e000020410000804000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff0000204100002cc1f040753f9c3c803e0000084100008040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff00000841000038c113416c3f79796e3e000028410000004000002cc1000080bf000000000000000000000000000000000000803f0000803fffffffff00002cc1000000406203383f4f45203f000028410000000000002cc1000080bf000000000000000000000000000000000000803f0000803fffffffff00002cc1000000006303383f7d45143f0000284100000040000038c1000080bf000000000000000000000000000000000000803f0000803fffffffff000038c1000000407483333f4f45203f0000284100000000000038c1000080bf000000000000000000000000000000000000803f0000803fffffffff000038c1000000007483333f7d45143f0000a0c00000000000002cc10000803f000000000000000000000000000000000000803f000080bfffffffff00002cc1000000003480403f9e14833a0000a0c00000004000002cc10000803f000000000000000000000000000000000000803f000080bfffffffff00002cc1000000403580403fb715443d00002c410000104000002cc1000080bf000000000000000000000000000000000000803f0000803fffffffff00002cc1000010402004883e3842783f00002c410000004000002cc1000080bf000000000000000000000000000000000000803f0000803fffffffff00002cc1000000402004883e3ec2763f00002c4100001040000038c1000080bf000000000000000000000000000000000000803f0000803fffffffff000038c10000104084087e3e3842783f00002c4100000040000038c1000080bf000000000000000000000000000000000000803f0000803fffffffff000038c10000004085087e3e3ec2763f00002c410000404000002cc1000080bf000000000000000000000000000000000000803f0000803fffffffff00002cc1000040401f04883e27c27c3f00002c4100004040000038c1000080bf000000000000000000000000000000000000803f0000803fffffffff000038c10000404084087e3e27c27c3f0000a8c00000004000002cc10000803f000000000000000000000000000000000000803f000080bfffffffff00002cc10000004066c2133f6bb6b53e0000a8c00000104000002cc10000803f000000000000000000000000000000000000803f000080bfffffffff00002cc10000104066c2133f5fb6b83e0000a8c000000040000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c1000000405542183f6bb6b53e0000a8c000001040000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c1000010405542183f5fb6b83e0000a0c00000104000002cc10000803f000000000000000000000000000000000000803f000080bfffffffff00002cc1000010403580403f57155c3d0000a0c000000040000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000a0c0000038c1f3c4363f19dd7e3f0000a8c000000040000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000a8c0000038c1f3c4363f1f5d7d3f0000a8c00000004000002cc1000000000000803f000000000000803f0000000000000000000080bfffffffff0000a8c000002cc1e2443b3f1f5d7d3f0000a0c00000004000002cc1000000000000803f000000000000803f0000000000000000000080bfffffffff0000a0c000002cc1e1443b3f19dd7e3f0000a8c00000104000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff0000a8c000002cc194c2073fc281223f0000a0c000001040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff0000a0c0000038c183420c3fbc01243f0000a0c00000104000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff0000a0c000002cc194c2073fbc01243f0000a8c000001040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff0000a8c0000038c183420c3fc281223f0000284100008040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff00002841000038c1e540783f7e796e3e000028410000804000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff0000284100002cc1e440783f9d3c803e000000000000804000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff0000000000002cc1d741393fa03c803e0000003f00008040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff0000003f000038c1cb413c3f83796e3e0000003f0000804000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff0000003f00002cc1cc413c3f9f3c803e0000000000008040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff00000000000038c1d741393f85796e3e0000404000008040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff00004040000038c192414b3f7a796e3e000040400000804000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff0000404000002cc192414b3f9a3c803e000080400000804000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff0000804000002cc17b41513f9a3c803e0000f04000008040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff0000f040000038c12a41663f77796e3e0000f0400000804000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff0000f04000002cc12a41663f983c803e0000804000008040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff00008040000038c17b41513f79796e3e000000000000404000002cc10000803f000000000000000000000000000000000000803f000080bfffffffff00002cc1000040404b033e3fa1c2043f000000000000604000002cc10000803f000000000000000000000000000000000000803f000080bfffffffff00002cc1000060404b033e3f96c2073f0000000000004040000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c1000040403a83423fa1c2043f0000000000006040000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c1000060403a83423f96c2073f000000000000804000002cc10000803f000000000000000000000000000000000000803f000080bfffffffff00002cc1000080404b033e3f8ac20a3f0000000000008040000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c1000080403a83423f8ac20a3f000028410000604000002cc1000080bf000000000000000000000000000000000000803f0000803fffffffff00002cc1000060404003413ffc85d93e000028410000404000002cc1000080bf000000000000000000000000000000000000803f0000803fffffffff00002cc1000040404103413f1386d33e0000284100006040000038c1000080bf000000000000000000000000000000000000803f0000803fffffffff000038c10000604052833c3ffb85d93e0000284100004040000038c1000080bf000000000000000000000000000000000000803f0000803fffffffff000038c10000404052833c3f1286d33e000028410000804000002cc1000080bf000000000000000000000000000000000000803f0000803fffffffff00002cc1000080404003413fe585df3e0000284100008040000038c1000080bf000000000000000000000000000000000000803f0000803fffffffff000038c10000804052833c3fe485df3e0000004100008040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff00000041000038c11e41693f77796e3e000000410000804000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff0000004100002cc11e41693f993c803e000060400000804000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff0000604000002cc187414e3f9a3c803e0000604000008040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff00006040000038c187414e3f7a796e3e000028410000404000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff0000284100002cc1cd086c3eb1037d3f00002c4100004040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff00002c41000038c188087e3eac837e3f00002c410000404000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff00002c4100002cc1cd086c3eac837e3f0000284100004040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff00002841000038c188087e3eb1037d3f00002c4100000040000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002c41000038c17a03b23ea90e7f3f0000284100000040000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002841000038c17a03b23eaf8e7d3f000028410000004000002cc1000000000000803f000000000000803f0000000000000000000080bfffffffff0000284100002cc15803bb3eaf8e7d3f00002c410000004000002cc1000000000000803f000000000000803f0000000000000000000080bfffffffff00002c4100002cc15703bb3ea90e7f3f000040400000804000002cc126ef783f64ec6ebe0000000000000000000000000000803f000080bfffffffff00002cc1bddd9240d242343fd134473e0000404000008040000038c126ef783f64ec6ebe0000000000000000000000000000803f000080bfffffffff000038c1bddd9240c1c2383fd134473ea4ad47400000904000002cc126ef783f64ec6ebe0000000000000000000000000000803f000080bfffffffff00002cc10052a340d242343fd48b533ea4ad474000009040000038c126ef783f64ec6ebe0000000000000000000000000000803f000080bfffffffff000038c10052a340c1c2383fd48b533e0000003f00008040000020c126ef783f64ec6ebe0000000000000000000000000000803f000080bfffffffff000020c145338040b3688f3e0cc5303f0000003f0000804000002cc126ef783f64ec6ebe0000000000000000000000000000803f000080bfffffffff00002cc1453380409068983e0cc5303f90b61e3f00009040000020c126ef783f64ec6ebe0000000000000000000000000000803f000080bfffffffff000020c188a79040b3688f3eccda333f90b61e3f0000904000002cc126ef783f64ec6ebe0000000000000000000000000000803f000080bfffffffff00002cc188a790409068983eccda333f0000003f0000804000002cc100000000000000000000803f000080bf0000000000000000000080bfffffffff000000bf000080407185fa3e7786383f000040400000804000002cc100000000000000000000803f000080bf0000000000000000000080bfffffffff000040c0000080407e420c3f7786383f90b61e3f0000904000002cc100000000000000000000803f000080bf0000000000000000000080bfffffffff90b61ebf00009040faf5fb3e6c863b3fa4ad47400000904000002cc100000000000000000000803f000080bf0000000000000000000080bfffffffffa4ad47c000009040c3fa0c3f6c863b3f000060400000804000002cc100000000000000000000803f000080bf0000000000000000000080bfffffffff000060c00000804037125c3febbeb33e000080400000804000002cc100000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000080402b125f3febbeb33ea4ad67400000904000002cc100000000000000000000803f000080bf0000000000000000000080bfffffffffa4ad67c0000090407bca5c3fd4beb93ed2d683400000904000002cc100000000000000000000803f000080bf0000000000000000000080bfffffffffd2d683c00000904070ca5f3fd4beb93e0000604000008040000020c10000000000000000000080bf0000803f0000000000000000000080bfffffffff00006040000080402cf9783fa012833a0000404000008040000020c10000000000000000000080bf0000803f0000000000000000000080bfffffffff000040400000804021f97b3f9c12833aa4ad674000009040000020c10000000000000000000080bf0000803f0000000000000000000080bfffffffffa4ad674000009040e840783f705f503ca4ad474000009040000020c10000000000000000000080bf0000803f0000000000000000000080bfffffffffa4ad474000009040dc407b3f6e5f503c0000604000008040000038c126ef78bf64ec6e3e000000000000000000000000000080bf000080bfffffffff000038416f999640d242343ff991543e000060400000804000002cc126ef78bf64ec6e3e000000000000000000000000000080bf000080bfffffffff00002c416f999640c1c2383ff991543ea4ad674000009040000038c126ef78bf64ec6e3e000000000000000000000000000080bf000080bfffffffff00003841b20da740d242343ffce8603ea4ad67400000904000002cc126ef78bf64ec6e3e000000000000000000000000000080bf000080bfffffffff00002c41b20da740c1c2383ffce8603e0000404000008040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff000040c000008040d242343f9f818a3e0000604000008040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff000060c00000804001f6343f1bac843ea4ad474000009040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffffa4ad47c0000090409358373fa0818a3ea4ad674000009040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffffa4ad67c000009040c10b383f1bac843e0000f0400000804000002cc100000000000000000000803f000080bf0000000000000000000080bfffffffff0000f0c000008040da11743febbeb33ed2d6f3400000904000002cc100000000000000000000803f000080bf0000000000000000000080bfffffffffd2d6f3c0000090401fca743fd4beb93e0000804000008040000020c10000000000000000000080bf0000803f0000000000000000000080bfffffffff000080400000804038f9753fa012833ad2d6834000009040000020c10000000000000000000080bf0000803f0000000000000000000080bfffffffffd2d6834000009040f340753f715f503c000000410000804000002cc100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c100008040cf11773febbeb33e67eb01410000904000002cc100000000000000000000803f000080bf0000000000000000000080bfffffffff67eb01c10000904013ca773fd4beb93e0000f04000008040000020c10000000000000000000080bf0000803f0000000000000000000080bfffffffff0000f0400000804088f9603fa812833ad2d6f34000009040000020c10000000000000000000080bf0000803f0000000000000000000080bfffffffffd2d6f340000090404441603f725f503c000000410000804000002cc135ef783f79eb6ebe0000000000000000000000000000803f000080bfffffffff00002cc17932b840d242343f837a2c3e0000004100008040000038c135ef783f79eb6ebe0000000000000000000000000000803f000080bfffffffff000038c17932b840c1c2383f837a2c3e67eb01410000904000002cc135ef783f79eb6ebe0000000000000000000000000000803f000080bfffffffff00002cc1bba6c840d242343f85d1383e67eb014100009040000038c135ef783f79eb6ebe0000000000000000000000000000803f000080bfffffffff000038c1bba6c840c1c2383f85d1383e0000004100008040000020c10000000000000000000080bf0000803f0000000000000000000080bfffffffff000000410000804094f95d3f9412833a67eb014100009040000020c10000000000000000000080bf0000803f0000000000000000000080bfffffffff67eb01410000904050415d3f715f503c000008410000804000002cc100000000000000000000803f000080bf0000000000000000000080bfffffffff000008c1000080407e82753fc0c1603c000020410000804000002cc100000000000000000000803f000080bf0000000000000000000080bfffffffff000020c1000080405b827e3fc1c1603c67eb09410000904000002cc100000000000000000000803f000080bf0000000000000000000080bfffffffff67eb09c100009040c23a763f6e5fd03c67eb21410000904000002cc100000000000000000000803f000080bf0000000000000000000080bfffffffff67eb21c1000090409f3a7f3f6f5fd03c0000084100008040000020c10000000000000000000080bf0000803f0000000000000000000080bfffffffff00000841000080409ff95a3f6f12833a67eb094100009040000020c10000000000000000000080bf0000803f0000000000000000000080bfffffffff67eb0941000090405b415a3f6c5f503c0000084100008040000038c135ef78bf79eb6e3e000000000000000000000000000080bf000080bfffffffff0000384127eebb40d242343faad7393e000008410000804000002cc135ef78bf79eb6e3e000000000000000000000000000080bf000080bfffffffff00002c4127eebb40c1c2383faad7393e67eb094100009040000038c135ef78bf79eb6e3e000000000000000000000000000080bf000080bfffffffff000038416962cc40d242343fac2e463e67eb09410000904000002cc135ef78bf79eb6e3e000000000000000000000000000080bf000080bfffffffff00002c416962cc40c1c2383fac2e463e0000004100008040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff000000c100008040d242343f37da903e0000084100008040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff000008c10000804000f6343fb2048b3e67eb014100009040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff67eb01c1000090409258373f37da903e67eb094100009040000038c100000000000000000000803f000080bf0000000000000000000080bfffffffff67eb09c100009040c00b383fb2048b3e000020410000804000002cc135ef78bf79eb6e3e000000000000000000000000000080bf000080bfffffffff00002c413121c740d242343f21ef613e0000204100008040000020c135ef78bf79eb6e3e000000000000000000000000000080bf000080bfffffffff000020413121c740c1c2383f21ef613e67eb21410000904000002cc135ef78bf79eb6e3e000000000000000000000000000080bf000080bfffffffff00002c417395d740d242343f23466e3e67eb214100009040000020c135ef78bf79eb6e3e000000000000000000000000000080bf000080bfffffffff000020417395d740c1c2383f23466e3e0000204100008040000020c10000000000000000000080bf0000803f0000000000000000000080bfffffffff0000204100008040c2f9513f9712833a67eb214100009040000020c10000000000000000000080bf0000803f0000000000000000000080bfffffffff67eb2141000090407e41513f715f503c0000404000008040000020c126ef78bf64ec6e3e000000000000000000000000000080bf000080bfffffffff00002041bddd9240aa3a7c3f7112833a0000404000008040000018c126ef78bf64ec6e3e000000000000000000000000000080bf000080bfffffffff00001841bddd9240aa3a7c3f6c5f503ca4ad474000009040000020c126ef78bf64ec6e3e000000000000000000000000000080bf000080bfffffffff000020410052a3406a507f3f6f12833aa4ad474000009040000018c126ef78bf64ec6e3e000000000000000000000000000080bf000080bfffffffff000018410052a3406a507f3f6b5f503c0000404000008040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff0000404000008040faf5fb3efa44353f0000003f00008040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff0000003f00008040c3fa0c3ffa44353fa4ad474000009040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffffa4ad4740000090407185fa3eee44383f90b61e3f00009040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff90b61e3f000090407e420c3fee44383f0000003f00008040000018c126ef783f64ec6ebe0000000000000000000000000000803f000080bfffffffff000018c145338040ca68893e0cc5303f90b61e3f00009040000018c126ef783f64ec6ebe0000000000000000000000000000803f000080bfffffffff000018c188a79040ca68893eccda333f000070c000006040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff00007040000060409608783f77093f3f000070c000004040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff00007040000040409608783f83093c3f000098c000006040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff00009840000060407f087e3f77093f3f0000a0c000004040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000a0400000404079887f3f83093c3f0000a0c000004040000008c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000a04000004040f3c4363f1dc8323f000070c000004040000008c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000704000004040d6443e3f1cc8323f000098c000006040000008c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000984000006040ed44383f11c8353f000070c000006040000008c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000704000006040d6443e3f10c8353f0000a0c000004040000008c100000000000080bf000000000000803f00000000000000000000803fffffffff0000a0c0000008c1f3c4363f8789603f000070c000004040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff000070c0000018c1d6443e3f9e895a3f000070c000004040000008c100000000000080bf000000000000803f00000000000000000000803fffffffff000070c0000008c1d6443e3f8789603f0000a0c000004040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff0000a0c0000018c1f3c4363f9e895a3f000070c000006040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff0000704000006040ca44413f05cb633f0000a0c000004040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff0000a04000004040adc4483f10cb603f0000a0c000006040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff0000a04000006040adc4483f05cb633f000070c000004040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff0000704000004040cb44413f10cb603f0000a0c000004040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000a04000004040ea855c3f7d45143f000070c000004040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000704000004040ea855c3f60c51b3f000070c000006040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000704000006040f685593f60c51b3f0000a0c000006040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000a04000006040f685593f7d45143f0000a0c000000000000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000a04000000000a5856e3f7d45143f000070c000000000000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000704000000000a5856e3f60c51b3f000070c000000040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000704000000040d385623f60c51b3f0000a0c000000040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000a04000000040d385623f7d45143f000070c000000040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000070400000004086032f3f3e094e3f0000a0c000000000000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000a040000000006983363f6c09423f0000a0c000000040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000a040000000406983363f3e094e3f000070c000000000000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000070400000000086032f3f6c09423f000070c000001040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000704000001040d905613f60c51b3f0000a0c000001040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000a04000001040d905613f7d45143f000070c000001040000050400000000000000000000080bf000080bf00000000000000000000803fffffffff00007040000010409608783ff64a423f0000a0c000000040000050400000000000000000000080bf000080bf00000000000000000000803fffffffff0000a0400000004079887f3ffbca403f0000a0c000001040000050400000000000000000000080bf000080bf00000000000000000000803fffffffff0000a0400000104079887f3ff54a423f000070c000000040000050400000000000000000000080bf000080bf00000000000000000000803fffffffff00007040000000409608783ffbca403f0000a0c000001040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000a0400000104079887f3f9489373f000070c000001040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff00007040000010409608783f9489373f0000a0c0000010400000504000000000000080bf000000000000803f00000000000000000000803fffffffff0000a0c000005040f3c4363f830c673f000070c0000010400000404000000000000080bf000000000000803f00000000000000000000803fffffffff000070c000004040d6443e3f898c653f000070c0000010400000504000000000000080bf000000000000803f00000000000000000000803fffffffff000070c000005040d6443e3f830c673f0000a0c0000010400000404000000000000080bf000000000000803f00000000000000000000803fffffffff0000a0c000004040f3c4363f898c653f000070c00000004000004040000000000000803f000000000000803f0000000000000000000080bfffffffff000070c000004040de09243e35657e3f0000a0c00000004000004040000000000000803f000000000000803f0000000000000000000080bfffffffff0000a0c0000040406b09423e35657e3f0000a0c00000004000005040000000000000803f000000000000803f0000000000000000000080bfffffffff0000a0c0000050406b09423e2fe57f3f000070c00000004000005040000000000000803f000000000000803f0000000000000000000080bfffffffff000070c000005040de09243e2fe57f3f000050c000006040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000504000006040a108753f77093f3f000050c000004040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000504000004040a108753f83093c3f000000c000006040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000004000006040bf886d3f77093f3f000000c000004040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000004000004040bf886d3f83093c3f000050c000004040000008c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000504000004040ca44413f1cc8323f000050c000006040000008c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000504000006040ca44413f11c8353f000000c000004040000008c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000004000004040aec4483f1dc8323f000000c000006040000008c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000004000006040adc4483f11c8353f000050c000004040000008c100000000000080bf000000000000803f00000000000000000000803fffffffff000050c0000008c1ca44413f8789603f000000c000004040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff000000c0000018c1adc4483f9e895a3f000000c000004040000008c100000000000080bf000000000000803f00000000000000000000803fffffffff000000c0000008c1adc4483f8789603f000050c000004040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff000050c0000018c1ca44413f9e895a3f000050c000006040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff0000504000006040d5443e3f05cb633f000050c000004040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff0000504000004040d6443e3f10cb603f000000c000006040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff0000004000006040f3c4363f05cb633f000000c000004040000018c10000000000000000000080bf000080bf00000000000000000000803fffffffff0000004000004040f3c4363f10cb603f000050c000004040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000504000004040ea855c3f55c51e3f000050c000006040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000504000006040f685593f55c51e3f000000c000004040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000004000004040ea855c3f3845263f000000c000006040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000004000006040f685593f3845263f000050c000000000000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000504000000000a5856e3f54c51e3f000050c000000040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000504000000040d385623f55c51e3f000000c000000000000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000004000000000a5856e3f3745263f000000c000000040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000004000000040d385623f3745263f000050c000000040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000050400000004092032c3f3e094e3f000050c000000000000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000050400000000092032c3f6c09423f000000c000000040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000004000000040ae83243f3e094e3f000000c000000000000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000004000000000af83243f6c09423f000050c000001040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000504000001040d905613f55c51e3f000000c000001040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000004000001040d905613f3845263f000050c000001040000050400000000000000000000080bf000080bf00000000000000000000803fffffffff0000504000001040a108753ff54a423f000050c000000040000050400000000000000000000080bf000080bf00000000000000000000803fffffffff0000504000000040a208753ffbca403f000000c000001040000050400000000000000000000080bf000080bf00000000000000000000803fffffffff0000004000001040bf886d3ff54a423f000000c000000040000050400000000000000000000080bf000080bf00000000000000000000803fffffffff0000004000000040bf886d3ffbca403f000050c000001040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000504000001040a208753f9489373f000000c000001040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000004000001040bf886d3f9489373f000050c0000010400000504000000000000080bf000000000000803f00000000000000000000803fffffffff000050c000005040ca44413f830c673f000000c0000010400000404000000000000080bf000000000000803f00000000000000000000803fffffffff000000c000004040adc4483f898c653f000000c0000010400000504000000000000080bf000000000000803f00000000000000000000803fffffffff000000c000005040adc4483f830c673f000050c0000010400000404000000000000080bf000000000000803f00000000000000000000803fffffffff000050c000004040cb44413f898c653f000000c00000004000004040000000000000803f000000000000803f0000000000000000000080bfffffffff000000c000004040fe14f43d35657e3f000050c00000004000004040000000000000803f000000000000803f0000000000000000000080bfffffffff000050c0000040400b0a183e35657e3f000050c00000004000005040000000000000803f000000000000803f0000000000000000000080bfffffffff000050c0000050400b0a183e2fe57f3f000000c00000004000005040000000000000803f000000000000803f0000000000000000000080bfffffffff000000c000005040fe14f43d2fe57f3f0000084100008040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00000841000050c114416c3f047a4a3e0000204100008040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00002041000050c1f240753f077a4a3e0000000000000000000050c10000803f000000000000000000000000000000000000803f000080bfffffffff000050c1000000008e42093fb083243f0000000000000040000050c10000803f000000000000000000000000000000000000803f000080bfffffffff000050c1000000409042093f8183303f0000284100000000000050c1000080bf000000000000000000000000000000000000803f0000803fffffffff000050c10000000097832a3f7d45143f0000284100000040000050c1000080bf000000000000000000000000000000000000803f0000803fffffffff000050c10000004097832a3f4f45203f0000003f00000040000050c10000803f000000000000000000000000000000000000803f000080bfffffffff000050c1000000401406523f57cc733f0000003f00000040000054c10000803f000000000000000000000000000000000000803f000080bfffffffff000054c1000000400e86533f57cc733f0000003f00001040000054c10000803f000000000000000000000000000000000000803f000080bfffffffff000054c1000010400e86533f514c753f0000003f00001040000050c10000803f000000000000000000000000000000000000803f000080bfffffffff000050c1000010401406523f514c753f0000000000001040000050c10000803f000000000000000000000000000000000000803f000080bfffffffff000050c10000104017834b3fb242003f0000000000004040000050c10000803f000000000000000000000000000000000000803f000080bfffffffff000050c10000404017834b3fa1c2043f00002c4100001040000054c1000080bf000000000000000000000000000000000000803f0000803fffffffff000054c1000010402909543e3942783f00002c4100000040000050c1000080bf000000000000000000000000000000000000803f0000803fffffffff000050c10000004012095a3e3fc2763f00002c4100001040000050c1000080bf000000000000000000000000000000000000803f0000803fffffffff000050c10000104011095a3e3942783f00002c4100000040000054c1000080bf000000000000000000000000000000000000803f0000803fffffffff000054c1000000402909543e3fc2763f00002c4100004040000054c1000080bf000000000000000000000000000000000000803f0000803fffffffff000054c1000040402a09543e27c27c3f00002c4100004040000050c1000080bf000000000000000000000000000000000000803f0000803fffffffff000050c10000404013095a3e27c27c3f0000284100008040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00002841000050c1e640783f087a4a3e0000003f00008040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff0000003f000050c1ca413c3f0b7a4a3e0000404000008040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00004040000050c192414b3f037a4a3e0000000000008040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00000000000050c1d641393f0d7a4a3e0000000000000040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00000000000050c17d13833a4ac2733f0000003f00000040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff0000003f000050c1835f503c4ac2733f0000000000001040000050c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000050c12701003f93032c3f0000003f00001040000050c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000050c16502fa3e93032c3f0000804000008040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00008040000050c17b41513f027a4a3e0000f04000008040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff0000f040000050c12b41663f007a4a3e0000284100004040000050c1000080bf000000000000000000000000000000000000803f0000803fffffffff000050c1000040407583333f1386d33e0000284100006040000050c1000080bf000000000000000000000000000000000000803f0000803fffffffff000050c1000060407583333ffc85d93e0000284100008040000050c1000080bf000000000000000000000000000000000000803f0000803fffffffff000050c1000080407583333fe585df3e0000000000006040000050c10000803f000000000000000000000000000000000000803f000080bfffffffff000050c10000604017834b3f96c2073f0000000000008040000050c10000803f000000000000000000000000000000000000803f000080bfffffffff000050c10000804017834b3f8ac20a3f0000004100008040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00000041000050c12041693f027a4a3e0000604000008040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00006040000050c186414e3f037a4a3e0000284100004040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00002841000050c1ff03913eb1037d3f00002c4100004040000054c100000000000080bf000000000000803f00000000000000000000803fffffffff00002c41000054c1f303943eac837e3f00002c4100004040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00002c41000050c1ff03913eac837e3f0000284100004040000054c100000000000080bf000000000000803f00000000000000000000803fffffffff00002841000054c1f303943eb1037d3f0000284100000040000050c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002841000050c1c103a03eaf8e7d3f00002c4100000040000050c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002c41000050c1c003a03eaa0e7f3f0000204100008040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00002041000040c1f140753fab79623e0000084100008040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00000841000040c113416c3fa879623e0000000000000000000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c100000000b042003fb083243f0000000000000000000040c10000803f000000000000000000000000000000000000803f000080bfffffffff000040c100000000a542033fb083243f0000000000000040000040c10000803f000000000000000000000000000000000000803f000080bfffffffff000040c100000040a742033f8283303f0000000000000040000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c100000040b342003f8283303f0000284100000040000040c1000080bf000000000000000000000000000000000000803f0000803fffffffff000040c1000000407f83303f4f45203f0000284100000000000040c1000080bf000000000000000000000000000000000000803f0000803fffffffff000040c1000000008083303f7d45143f0000003f00000040000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c1000000403706493f57cc733f0000003f00000040000040c10000803f000000000000000000000000000000000000803f000080bfffffffff000040c1000000402b064c3f57cc733f0000003f00001040000040c10000803f000000000000000000000000000000000000803f000080bfffffffff000040c1000010402b064c3f514c753f0000003f00001040000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c1000010403706493f514c753f0000000000001040000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c1000010403a83423fb242003f0000000000001040000040c10000803f000000000000000000000000000000000000803f000080bfffffffff000040c1000010402e83453fb242003f0000000000004040000040c10000803f000000000000000000000000000000000000803f000080bfffffffff000040c1000040402e83453fa1c2043f00002c4100001040000040c1000080bf000000000000000000000000000000000000803f0000803fffffffff000040c100001040b408723e3842783f00002c4100000040000040c1000080bf000000000000000000000000000000000000803f0000803fffffffff000040c100000040b308723e3ec2763f00002c4100004040000040c1000080bf000000000000000000000000000000000000803f0000803fffffffff000040c100004040b308723e27c27c3f0000284100008040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00002841000040c1e640783fad79623e0000404000008040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00004040000040c192414b3fa879623e0000003f00008040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff0000003f000040c1cb413c3fb179623e0000000000008040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00000000000040c1d641393fb379623e0000000000000040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff00000000000038c16f12833a27c27c3f0000003f00000040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff0000003f000040c1695f503c33c2793f0000003f00000040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff0000003f000038c1615f503c27c27c3f0000000000000040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00000000000040c1ac12833a33c2793f0000003f00001040000040c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000040c16602fa3e7c03323f0000000000001040000040c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000040c12701003f7c03323f0000000000001040000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000038c12701003f7003353f0000003f00001040000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000038c16502fa3e7003353f0000f04000008040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff0000f040000040c12a41663fa579623e0000804000008040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00008040000040c17b41513fa879623e0000284100006040000040c1000080bf000000000000000000000000000000000000803f0000803fffffffff000040c1000060405d83393ffb85d93e0000284100004040000040c1000080bf000000000000000000000000000000000000803f0000803fffffffff000040c1000040405e83393f1286d33e0000284100008040000040c1000080bf000000000000000000000000000000000000803f0000803fffffffff000040c1000080405d83393fe485df3e0000000000006040000040c10000803f000000000000000000000000000000000000803f000080bfffffffff000040c1000060402e83453f96c2073f0000000000008040000040c10000803f000000000000000000000000000000000000803f000080bfffffffff000040c1000080402e83453f8ac20a3f0000004100008040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00000041000040c11f41693fa779623e0000604000008040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00006040000040c187414e3fa879623e00002c4100004040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00002c41000040c12d04853eac837e3f0000284100004040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00002841000040c12d04853eb1037d3f00002c4100000040000040c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002c41000040c19103ac3ea90e7f3f0000284100000040000040c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002841000040c19203ac3eaf8e7d3f0000204100000000000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff00002041000080c01381843e5f80b43e0000004100000000000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000080c01381843ebc809c3e0000004100000000000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000000c0b8809c3ebc809c3e0000204100000000000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff00002041000000c0b6809c3e6080b43e0000804000000000000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000080c01481843eea02593e0000004000000000000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff00000040000080c01481843ea303293e0000004000000000000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff00000040000000c0b8809c3ea103293e0000804000000000000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000000c0b8809c3ee902593e0000c04000000000000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000c040000080c01481843e1981843e0000c04000000000000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000c040000000c0b8809c3e1881843e000080bf00000000000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff000080bf000080c01381843e6d09c23d000080bf00000000000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff000080bf000000c0b8809c3e6b09c23d0000000000000000000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000000c0b8809c3eb108f23d0000000000000000000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000080c01481843eb408f23d000000410000000000004040000000000000803f000000000000803f0000000000000000000080bfffffffff0000004100004040d27fd83ebc809c3e000020410000000000004040000000000000803f000000000000803f0000000000000000000080bfffffffff0000204100004040d17fd83e6180b43e000020410000000000000000000000000000803f000000000000803f0000000000000000000080bfffffffff00002041000000005b80b43e6180b43e000000410000000000000000000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000000005b80b43ebc809c3e0000003f00000000000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000080c01481843e2c04053e0000003f00000000000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000000c0b8809c3e2a04053e0000004100000000000000bf000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000000bf7380ae3ebc809c3e0000204100000000000000bf000000000000803f000000000000803f0000000000000000000080bfffffffff00002041000000bf7180ae3e6180b43e0000004000000000000000bf000000000000803f000000000000803f0000000000000000000080bfffffffff00000040000000bf7380ae3ea003293e0000804000000000000000bf000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000000bf7380ae3ee802593e000000400000000000000000000000000000803f000000000000803f0000000000000000000080bfffffffff00000040000000005c80b43ea003293e000080400000000000000000000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000000005c80b43ee802593e0000c04000000000000000bf000000000000803f000000000000803f0000000000000000000080bfffffffff0000c040000000bf7480ae3e1881843e0000c0400000000000000000000000000000803f000000000000803f0000000000000000000080bfffffffff0000c040000000005d80b43e1881843e0000003f00000000000000bf000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000000bf7480ae3e2a04053e0000003f0000000000000000000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000000005d80b43e2a04053e0000000000000000000000bf000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000000bf7480ae3eae08f23d000000000000000000000000000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000000005e80b43eaf08f23d00002041000000000000c0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000020410000c0c0e102593e6080b43e00000041000000000000c0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000000410000c0c0df02593ebd809c3e00000041000000000000b0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000000410000b0c0b102653ebd809c3e00002041000000000000b0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000020410000b0c0b202653e6080b43e00008040000000000000c0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000080400000c0c0e102593eea02593e00000040000000000000c0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000000400000c0c0e202593ea303293e00000040000000000000b0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000000400000b0c0b402653ea303293e00008040000000000000b0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000080400000b0c0b302653eea02593e0000c040000000000000c0c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000c0400000c0c0e102593e1981843e0000c040000000000000b0c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000c0400000b0c0b202653e1981843e0000003f000000000000c0c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f0000c0c0e102593e2e04053e0000003f000000000000b0c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f0000b0c0b302653e2e04053e00000000000000000000c0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000000000000c0c0e002593ebb08f23d00000000000000000000b0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000000000000b0c0b202653eb808f23d00008040000000000000f0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000080400000f0c06b03353eea02593e00000040000000000000f0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000000400000f0c06c03353ea203293e0000804000000000000000c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000000c19903293eeb02593e0000004000000000000000c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000040000000c19a03293ea203293e0000c040000000000000f0c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000c0400000f0c06b03353e1a81843e0000c04000000000000000c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000c040000000c19a03293e1981843e0000f04000000000000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000080c01481843ed380963e0000f04000000000000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000000c0b8809c3ed380963e0000f0400000000000000000000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000000005c80b43ed380963e0000c0400000000000004040000000000000803f000000000000803f0000000000000000000080bfffffffff0000c04000004040d17fd83e1781843e0000f0400000000000004040000000000000803f000000000000803f0000000000000000000080bfffffffff0000f04000004040d27fd83ed280963e0000f04000000000000000bf000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000000bf7480ae3ed380963e0000f040000000000000c0c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000f0400000c0c0e002593ed380963e0000f040000000000000b0c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000f0400000b0c0b202653ed380963e00000041000000000000f0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000000410000f0c06c03353ebc809c3e0000f040000000000000f0c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000f0400000f0c06c03353ed380963e0000004100000000000000c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000000c19a03293ebd809c3e0000f04000000000000000c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000000c19a03293ed480963e0000c04000000000000008c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000c040000008c1c9031d3e1981843e0000804000000000000008c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000008c1c7031d3eeb02593e0000f04000000000000008c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000008c1c8031d3ed480963e00000040000000000000003f000000000000803f000000000000803f0000000000000000000080bfffffffff000000400000003f4480ba3ea003293e00008040000000000000003f000000000000803f000000000000803f0000000000000000000080bfffffffff000080400000003f4480ba3ee802593e0000f0400000000000005040000000000000803f000000000000803f0000000000000000000080bfffffffff0000f04000005040c67fdb3ed380963e000000410000000000005040000000000000803f000000000000803f0000000000000000000080bfffffffff0000004100005040c67fdb3ebc809c3e000024410000000000000000000000000000803f000000000000803f0000000000000000000080bfffffffff00002441000000005b80b43e5580b73e0000244100000000000000bf000000000000803f000000000000803f0000000000000000000080bfffffffff00002441000000bf7180ae3e5580b73e0000244100000000000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff00002441000000c0b6809c3e5480b73e0000244100000000000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff00002441000080c01381843e5480b73e00008040000000000000803f000000000000803f000000000000803f0000000000000000000080bfffffffff000080400000803f2e80c03eea02593e00000040000000000000803f000000000000803f000000000000803f0000000000000000000080bfffffffff000000400000803f2e80c03ea303293e0000804000000000000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000018c12304053eee02593e0000c04000000000000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000c040000018c12504053e1981843e0000f04000000000000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000018c12304053ed380963e0000c04000004040000008c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c0c0000008c1f1808d3ef5800d3f0000f04000004040000008c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0000008c1f2808d3ed280163f0000f04000004040000000c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0000000c10981873ed280163f0000c04000004040000000c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c0c0000000c10881873ef5800d3f0000804000004040000008c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0000008c1f1808d3e2381013f0000804000004040000000c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0000000c10881873e2381013f0000f04000000040000008c1000080bf000000000000000000000000000000000000803f0000803fffffffff000008c1000000402947703fff03113f0000f04000000000000000c1000080bf000000000000000000000000000000000000803f0000803fffffffff000000c100000000fa467c3ff303143f0000f04000000040000000c1000080bf000000000000000000000000000000000000803f0000803fffffffff000000c1000000402947703ff303143f0000f04000000000000008c1000080bf000000000000000000000000000000000000803f0000803fffffffff000008c100000000fa467c3fff03113f0000804000000000000000c10000803f000000000000000000000000000000000000803f000080bfffffffff000000c100000000af83243f5ccd6f3f0000804000000000000008c10000803f000000000000000000000000000000000000803f000080bfffffffff000008c100000000ae83243f68cd6c3f0000804000000040000008c10000803f000000000000000000000000000000000000803f000080bfffffffff000008c1000000408083303f67cd6c3f0000804000000040000000c10000803f000000000000000000000000000000000000803f000080bfffffffff000000c1000000408083303f5ccd6f3f0000f04000001040000008c1000080bf000000000000000000000000000000000000803f0000803fffffffff000008c1000010402ec76e3fff03113f0000f04000001040000000c1000080bf000000000000000000000000000000000000803f0000803fffffffff000000c1000010402ec76e3ff303143f0000f04000004040000008c1000080bf000000000000000000000000000000000000803f0000803fffffffff000008c10000404040476a3fff03113f0000f04000004040000000c1000080bf000000000000000000000000000000000000803f0000803fffffffff000000c10000404040476a3ff303143f0000804000001040000008c10000803f000000000000000000000000000000000000803f000080bfffffffff000008c1000010407a03323f67cd6c3f0000804000001040000000c10000803f000000000000000000000000000000000000803f000080bfffffffff000000c1000010407a03323f5ccd6f3f0000804000004040000008c10000803f000000000000000000000000000000000000803f000080bfffffffff000008c1000040406983363f68cd6c3f0000804000004040000000c10000803f000000000000000000000000000000000000803f000080bfffffffff000000c1000040406983363f5ccd6f3f0000e0bf00000000000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000e0bf000080c01481843ef5099e3d000000c000000000000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff000000c0000080c01681843e1f0a923d000000c000000000000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff000000c0000000c0ba809c3e230a923d0000e0bf00000000000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000e0bf000000c0b9809c3ef4099e3d0000f04000000040000008c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00000841000000402947703fff03113f0000f04000001040000008c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00000841000010402ec76e3fff03113f0000f04000000040000018c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00001841000000402947703f16040b3f0000f04000001040000018c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00001841000010402ec76e3f16040b3f0000804000000040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c1000000408083303f7ecd663f0000804000000000000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c100000000af83243f7fcd663f0000f04000000000000008c1000080bf00000000000000000000000000000000000080bf000080bfffffffff0000084100000000fa467c3fff03113f0000f04000000000000018c1000080bf00000000000000000000000000000000000080bf000080bfffffffff0000184100000000fb467c3f16040b3f0000804000001040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c1000010407b03323f7ecd663f0000f04000004040000008c1000080bf00000000000000000000000000000000000080bf000080bfffffffff000008410000404040476a3fff03113f0000f04000004040000018c1000080bf00000000000000000000000000000000000080bf000080bfffffffff000018410000404040476a3f16040b3f0000804000004040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c1000040406983363f7fcd663f0000f04000004040000018c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000f0c0000018c1c480993ed280163f0000c04000004040000018c100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000c0c0000018c1c480993ef5800d3f0000804000004040000018c100000000000080bf00000000000080bf0000000000000000000080bfffffffff000080c0000018c1c380993e2381013f000080bf00000000000020c1000000000000803f000000000000803f0000000000000000000080bfffffffff000080bf000020c1b308f23d7909c23d000000c000000000000020c1000000000000803f000000000000803f0000000000000000000080bfffffffff000000c0000020c1b508f23d2e0a923d000000c000000000000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff000000c0000018c12d04053e2e0a923d000080bf00000000000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff000080bf000018c12c04053e7a09c23d000080bf00000000000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff000080bf000038c1c409aa3d7709c23d000000c000000000000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff000000c0000038c1c609aa3d2d0a923d000000c00000000000002cc1000000000000803f000000000000803f0000000000000000000080bfffffffff000000c000002cc13d09ce3d2d0a923d000080bf0000000000002cc1000000000000803f000000000000803f0000000000000000000080bfffffffff000080bf00002cc13c09ce3d7809c23d000070c000000000000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff000070c0000080c01981843e8b2df83c0000a0c000000000000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000a0c0000080c01881843eca12833a0000a0c000000000000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000a0c0000000c0bc809c3e6f12833a000070c000000000000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff000070c0000000c0bc809c3e902df83c0000a0c00000000000004040000000000000803f000000000000803f0000000000000000000080bfffffffff0000a0c000004040d77fd83e9813833a000070c00000000000004040000000000000803f000000000000803f0000000000000000000080bfffffffff000070c000004040d77fd83ea12df83c000070c000000000000008c1000000000000803f000000000000803f0000000000000000000080bfffffffff000070c0000008c1d3031d3ec52df83c0000a0c000000000000008c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000a0c0000008c1d6031d3edd15833a000070c000000000000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff000070c0000018c12e04053ebb2df83c0000a0c000000000000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000a0c0000018c13204053ec614833a000070c000000000000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff000070c0000058c16a16143db22df83c0000a0c000000000000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000a0c0000058c16f16143de713833a0000a0c000000000000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000a0c0000038c1cb09aa3d1814833a000070c000000000000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff000070c0000038c1ca09aa3db02df83c000070c000000000000020c1000000000000803f000000000000803f0000000000000000000080bfffffffff000070c0000020c1b908f23db52df83c0000a0c000000000000020c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000a0c0000020c1be08f23d7514833a0000a0c00000000000002cc1000000000000803f000000000000803f0000000000000000000080bfffffffff0000a0c000002cc14509ce3d2e14833a000070c00000000000002cc1000000000000803f000000000000803f0000000000000000000080bfffffffff000070c000002cc14209ce3db02df83c000050c000000000000080c0000000000000803f000000000000803f0000000000000000000080bfffffffff000050c0000080c01781843e0d162c3d000050c000000000000000c0000000000000803f000000000000803f0000000000000000000080bfffffffff000050c0000000c0ba809c3e14162c3d000050c00000000000004040000000000000803f000000000000803f0000000000000000000080bfffffffff000050c000004040d47fd83e1d162c3d000000c00000000000004040000000000000803f000000000000803f0000000000000000000080bfffffffff000000c000004040d07fd83e280a923d000000c000000000000008c1000000000000803f000000000000803f0000000000000000000080bfffffffff000000c0000008c1d1031d3e2c0a923d000050c000000000000008c1000000000000803f000000000000803f0000000000000000000080bfffffffff000050c0000008c1cf031d3e2c162c3d000050c000000000000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff000050c0000018c12c04053e2c162c3d000000c000000000000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff000000c0000058c16816143d2e0a923d000050c000000000000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff000050c0000058c16a16143d26162c3d000050c000000000000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff000050c0000038c1c709aa3d25162c3d000050c000000000000020c1000000000000803f000000000000803f0000000000000000000080bfffffffff000050c0000020c1b708f23d28162c3d000050c00000000000002cc1000000000000803f000000000000803f0000000000000000000080bfffffffff000050c000002cc13f09ce3d26162c3d00008040000000000000803f000000000000803f000000000000803f0000000000000000000080bfffffffff000080400000803f2e80c03eea02593e00000040000000000000803f000000000000803f000000000000803f0000000000000000000080bfffffffff000000400000803f2e80c03ea303293e000080400000000000004040000000000000803f000000000000803f0000000000000000000080bfffffffff0000804000004040ce7fd83eea02593e000000400000000000004040000000000000803f000000000000803f0000000000000000000080bfffffffff0000004000004040ce7fd83ea303293e0000b040000000000000803f000000000000803f000000000000803f0000000000000000000080bfffffffff0000b0400000803f2e80c03e5b027d3e0000b0400000000000004040000000000000803f000000000000803f0000000000000000000080bfffffffff0000b04000004040ce7fd83e5b027d3e000000000000000000004040000000000000803f000000000000803f0000000000000000000080bfffffffff0000000000004040ce7fd83ec208f23d00000000000000000000803f000000000000803f000000000000803f0000000000000000000080bfffffffff000000000000803f2e80c03ec208f23d0000804000004040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff00008040000040409403ac3eb208723f0000004000004040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff00000040000040403903c43eb208723f0000804000006040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff00008040000060409303ac3ea708753f0000004000006040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff00000040000060403903c43ea708753f0000b04000004040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff0000b04000004040d8039a3eb108723f0000b04000006040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff0000b04000006040d6039a3ea608753f00008040000040400000803f00000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000040401942273fd202df3e0000b040000040400000803f00000000000000000000803f000080bf0000000000000000000080bfffffffff0000b0c000004040f741303fd202df3e00008040000060400000803f00000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000060401942273fbb02e53e0000b040000060400000803f00000000000000000000803f000080bf0000000000000000000080bfffffffff0000b0c000006040f641303fbc02e53e0000b040000040400000803f000080bf00000000000000000000000000000000000080bf000080bfffffffff000080bf00004040ae056d3f5d03bb3e0000b0400000404000004040000080bf00000000000000000000000000000000000080bf000080bfffffffff000040c000004040af056d3f0003d33e0000b040000060400000803f000080bf00000000000000000000000000000000000080bf000080bfffffffff000080bf00006040b9056a3f5d03bb3e0000b0400000604000004040000080bf00000000000000000000000000000000000080bf000080bfffffffff000040c000006040ba056a3fff02d33e00000040000040400000803f00000000000000000000803f000080bf0000000000000000000080bfffffffff000000c00000404047421b3fd202df3e00000040000060400000803f00000000000000000000803f000080bf0000000000000000000080bfffffffff000000c00000604047421b3fbc02e53e00000000000040400000803f00000000000000000000803f000080bf0000000000000000000080bfffffffff000000000000404076420f3fd202df3e00000000000060400000803f00000000000000000000803f000080bf0000000000000000000080bfffffffff000000000000604075420f3fbc02e53e0000000000004040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff0000000000004040dc02dc3eb108723f0000000000006040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff0000000000006040dc02dc3ea608753f0000000000004040000040400000803f000000000000000000000000000000000000803f000080bfffffffff00004040000040403142213f9286323f00000000000040400000803f0000803f000000000000000000000000000000000000803f000080bfffffffff0000803f000040403042213fc186263f0000000000006040000040400000803f000000000000000000000000000000000000803f000080bfffffffff00004040000060402542243f9286323f00000000000060400000803f0000803f000000000000000000000000000000000000803f000080bfffffffff0000803f000060402542243fc186263f0000804000000040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000080c0000000409503ac3ec9086c3f0000004000000000000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000000c0000000003a03c43ef808603f0000004000000040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000000c0000000403a03c43ec9086c3f0000804000000000000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000080c0000000009803ac3ef708603f0000000000000000000040400000803f000000000000000000000000000000000000803f000080bfffffffff000040400000000075420f3f9386323f00000000000000000000803f0000803f000000000000000000000000000000000000803f000080bfffffffff0000803f0000000075420f3fc286263f00000000000000400000803f0000803f000000000000000000000000000000000000803f000080bfffffffff0000803f0000004048421b3fc186263f0000000000000040000040400000803f000000000000000000000000000000000000803f000080bfffffffff000040400000004048421b3f9286323f0000b040000000400000803f000080bf000000000000000000000000000000000000803f0000803fffffffff0000803f000000409705733f5f03bb3e0000b0400000000000004040000080bf000000000000000000000000000000000000803f0000803fffffffff000040400000000069057f3f0003d33e0000b0400000004000004040000080bf000000000000000000000000000000000000803f0000803fffffffff00004040000000409805733f0203d33e0000b040000000000000803f000080bf000000000000000000000000000000000000803f0000803fffffffff0000803f0000000068057f3f5d03bb3e00008040000000000000803f00000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000000001942273f5d03bb3e0000b040000000000000803f00000000000000000000803f000080bf0000000000000000000080bfffffffff0000b0c000000000f741303f5d03bb3e0000b040000000400000803f00000000000000000000803f000080bf0000000000000000000080bfffffffff0000b0c000000040f741303f0103d33e00008040000000400000803f00000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000000401942273f0103d33e0000b04000000040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000b0c000000040da039a3ec8086c3f0000b04000000000000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000b0c000000000dd039a3ef608603f00000000000000000000803f00000000000000000000803f000080bf0000000000000000000080bfffffffff000000000000000075420f3f5e03bb3e00000040000000000000803f00000000000000000000803f000080bf0000000000000000000080bfffffffff000000c00000000047421b3f5e03bb3e00000040000000400000803f00000000000000000000803f000080bf0000000000000000000080bfffffffff000000c00000004047421b3f0103d33e00000000000000400000803f00000000000000000000803f000080bf0000000000000000000080bfffffffff000000000000004075420f3f0103d33e0000000000000000000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000000000000000dd02dc3ef708603f0000000000000040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000000000000040de02dc3ec8086c3f0000804000001040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000080c0000010409503ac3ec3886d3f0000004000001040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000000c0000010403903c43ec3886d3f0000804000004040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000080c0000040409403ac3eb208723f0000004000004040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff000000c0000040403903c43eb208723f00000000000010400000803f0000803f000000000000000000000000000000000000803f000080bfffffffff0000803f0000104042c21c3fc186263f0000000000001040000040400000803f000000000000000000000000000000000000803f000080bfffffffff000040400000104042c21c3f9286323f0000b040000010400000803f000080bf000000000000000000000000000000000000803f0000803fffffffff0000803f000010409d85713f5e03bb3e0000b0400000104000004040000080bf000000000000000000000000000000000000803f0000803fffffffff00004040000010409d85713f0103d33e0000b040000040400000803f000080bf000000000000000000000000000000000000803f0000803fffffffff0000803f00004040ae056d3f5d03bb3e0000b0400000404000004040000080bf000000000000000000000000000000000000803f0000803fffffffff0000404000004040af056d3f0003d33e0000b040000010400000803f00000000000000000000803f000080bf0000000000000000000080bfffffffff0000b0c000001040f741303ff502d63e00008040000010400000803f00000000000000000000803f000080bf0000000000000000000080bfffffffff000080c0000010401942273ff502d63e0000b04000001040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000b0c000001040da039a3ec2886d3f0000b04000004040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000b0c000004040d8039a3eb108723f00000040000010400000803f00000000000000000000803f000080bf0000000000000000000080bfffffffff000000c00000104047421b3ff602d63e00000000000010400000803f00000000000000000000803f000080bf0000000000000000000080bfffffffff000000000000104075420f3ff602d63e0000000000001040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000000000001040dd02dc3ec2886d3f0000000000004040000040400000000000000000000080bf000080bf00000000000000000000803fffffffff0000000000004040dc02dc3eb108723f0000204100000000000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002041000018c12704053e5e80b43e0000084100000000000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000841000018c12304053ea380a23e00002041000000000000d0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000020410000d0c015034d3e5b80b43e00000841000000000000d0c0000000000000803f000000000000803f0000000000000000000080bfffffffff000008410000d0c011034d3ea180a23e0000084100000000000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000841000058c15f16143da580a23e0000204100000000000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002041000058c15d16143d6080b43e0000084100000000000070c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000841000070c1c112833aa580a23e0000204100000000000070c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002041000070c16f12833a6080b43e0000084100000000000054c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000841000054c104162c3da580a23e0000204100000000000054c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002041000054c103162c3d6080b43e0000284100000000000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002841000058c16016143d4a80ba3e0000284100000000000054c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002841000054c105162c3d4a80ba3e0000404000000000000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004040000018c12504053e4d03413e0000003f00000000000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000018c12804053e3404053e0000003f00000000000008c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000008c1cc031d3e3504053e0000404000000000000008c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004040000008c1c7031d3e4f03413e0000000000000000000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000018c12a04053ec408f23d0000000000000000000008c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000008c1ce031d3ec608f23d0000404000000000000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004040000058c17216143d4c03413e0000003f00000000000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000058c16b16143d3404053e0000003f00000000000054c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000054c10e162c3d3404053e0000404000000000000054c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004040000054c115162c3d4c03413e0000000000000000000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000058c16c16143dc308f23d0000000000000000000054c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000054c111162c3dc308f23d0000f04000000000000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000058c16b16143dd380963e0000804000000000000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000058c16b16143dee02593e0000804000000000000054c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000054c10d162c3dee02593e0000f04000000000000054c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000054c10e162c3dd380963e0000004100000000000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000058c16616143dbc809c3e0000004100000000000054c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000054c109162c3dbc809c3e0000604000000000000058c1000000000000803f000000000000803f0000000000000000000080bfffffffff00006040000058c16f16143d1c034d3e0000604000000000000054c1000000000000803f000000000000803f0000000000000000000080bfffffffff00006040000054c112162c3d1d034d3e0000000000000000000020c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000020c1b008f23dc308f23d000080bf00000000000020c1000000000000803f000000000000803f0000000000000000000080bfffffffff000080bf000020c1b308f23d7909c23d000080bf00000000000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff000080bf000018c12c04053e7a09c23d0000204100000000000020c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002041000020c1ac08f23d5e80b43e0000084100000000000020c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000841000020c1a608f23da480a23e0000284100000000000020c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002841000020c1ae08f23d4780ba3e0000284100000000000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002841000018c12804053e4780ba3e0000003f00000000000020c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000020c1ae08f23d3304053e0000404000000000000020c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004040000020c1a708f23d4d03413e0000f04000000000000020c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000020c1a408f23dd380963e0000804000000000000020c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000020c1a508f23dee02593e0000804000000000000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000018c12304053eee02593e0000f04000000000000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000018c12304053ed380963e0000004100000000000020c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000020c1a408f23dbc809c3e0000004100000000000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000018c12304053ebb809c3e0000604000000000000020c1000000000000803f000000000000803f0000000000000000000080bfffffffff00006040000020c1a608f23d1d034d3e0000604000000000000018c1000000000000803f000000000000803f0000000000000000000080bfffffffff00006040000018c12404053e1e034d3e0000000000000000000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000038c1c309aa3dc108f23d000080bf00000000000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff000080bf000038c1c409aa3d7709c23d000080bf0000000000002cc1000000000000803f000000000000803f0000000000000000000080bfffffffff000080bf00002cc13c09ce3d7809c23d000000000000000000002cc1000000000000803f000000000000803f0000000000000000000080bfffffffff0000000000002cc13a09ce3dc108f23d0000204100000000000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002041000038c1c109aa3d6080b43e0000084100000000000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000841000038c1be09aa3da580a23e000008410000000000002cc1000000000000803f000000000000803f0000000000000000000080bfffffffff0000084100002cc13309ce3da580a23e000020410000000000002cc1000000000000803f000000000000803f0000000000000000000080bfffffffff0000204100002cc13709ce3d5f80b43e0000284100000000000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002841000038c1c109aa3d4980ba3e000028410000000000002cc1000000000000803f000000000000803f0000000000000000000080bfffffffff0000284100002cc13909ce3d4980ba3e0000003f00000000000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000038c1c209aa3d3304053e0000003f0000000000002cc1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f00002cc13909ce3d3304053e0000404000000000000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004040000038c1c009aa3d4b03413e000040400000000000002cc1000000000000803f000000000000803f0000000000000000000080bfffffffff0000404000002cc13409ce3d4c03413e0000f04000000000000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000038c1be09aa3dd380963e0000804000000000000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000038c1bf09aa3dee02593e000080400000000000002cc1000000000000803f000000000000803f0000000000000000000080bfffffffff0000804000002cc13409ce3dee02593e0000f0400000000000002cc1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f04000002cc13209ce3dd380963e0000004100000000000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000038c1be09aa3dbc809c3e000000410000000000002cc1000000000000803f000000000000803f0000000000000000000080bfffffffff0000004100002cc13209ce3dbc809c3e0000604000000000000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff00006040000038c1c009aa3d1d034d3e000060400000000000002cc1000000000000803f000000000000803f0000000000000000000080bfffffffff0000604000002cc13409ce3d1d034d3e0000084100000000000050c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000841000050c1a815443da580a23e0000204100000000000050c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002041000050c1a915443d6080b43e0000284100000000000050c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002841000050c1aa15443d4a80ba3e0000003f00000000000050c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000050c1b215443d3404053e0000404000000000000050c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004040000050c1b815443d4c03413e0000000000000000000050c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000050c1b515443dc408f23d0000804000000000000050c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000050c1b015443dee02593e0000f04000000000000050c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000050c1b115443dd380963e0000004100000000000050c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000050c1ac15443dbc809c3e0000604000000000000050c1000000000000803f000000000000803f0000000000000000000080bfffffffff00006040000050c1b415443d1d034d3e0000084100000000000040c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000841000040c11c0a923da580a23e0000204100000000000040c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002041000040c11d0a923d6080b43e0000284100000000000040c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002841000040c11c0a923d4980ba3e0000003f00000000000040c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000040c11f0a923d3304053e0000404000000000000040c1000000000000803f000000000000803f0000000000000000000080bfffffffff00004040000040c11f0a923d4b03413e0000000000000000000040c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000040c11f0a923dc308f23d0000804000000000000040c1000000000000803f000000000000803f0000000000000000000080bfffffffff00008040000040c11e0a923dee02593e0000f04000000000000040c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000f040000040c11d0a923dd380963e0000004100000000000040c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000041000040c11c0a923dbc809c3e0000604000000000000040c1000000000000803f000000000000803f0000000000000000000080bfffffffff00006040000040c11e0a923d1d034d3e000098c000006040000000c000000000000080bf000000000000803f00000000000000000000803fffffffff000098c0000000c06341573f39ebae3d000070c000006040000080c000000000000080bf000000000000803f00000000000000000000803fffffffff000070c0000080c03541633f7eeade3d000070c000006040000000c000000000000080bf000000000000803f00000000000000000000803fffffffff000070c0000000c06341573f7deade3d000098c000006040000080c000000000000080bf000000000000803f00000000000000000000803fffffffff000098c0000080c03441633f3aebae3d000098c0000060400000404000000000000080bf000000000000803f00000000000000000000803fffffffff000098c000004040d641393f36ebae3d000070c0000060400000404000000000000080bf000000000000803f00000000000000000000803fffffffff000070c000004040d641393f7aeade3d000070c000006040000008c100000000000080bf000000000000803f00000000000000000000803fffffffff000070c0000008c1cd407e3f7ceade3d000098c000006040000008c100000000000080bf000000000000803f00000000000000000000803fffffffff000098c0000008c1cd407e3f37ebae3d0000a0c000006040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff0000a0c0000038c168c45a3fcf85e53e000070c000006040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff000070c0000058c139c4663f9585f43e000070c000006040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff000070c0000038c168c45a3f9585f43e0000a0c000006040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff0000a0c0000058c139c4663fcf85e53e0000a0c000006040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff0000a0c0000018c195c44e3fce85e53e000070c000006040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff000070c0000020c18ac4513f9585f43e000070c000006040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff000070c0000018c196c44e3f9485f43e0000a0c000006040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff0000a0c0000020c18ac4513fcf85e53e0000a0c00000604000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff0000a0c000002cc17944563fcf85e53e000070c00000604000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff000070c000002cc17944563f9585f43e000050c000006040000000c000000000000080bf000000000000803f00000000000000000000803fffffffff000050c0000000c06341573f20eaf63d000000c000006040000080c000000000000080bf000000000000803f00000000000000000000803fffffffff000000c0000080c03441633f9c74193e000000c000006040000000c000000000000080bf000000000000803f00000000000000000000803fffffffff000000c0000000c06341573f9c74193e000050c000006040000080c000000000000080bf000000000000803f00000000000000000000803fffffffff000050c0000080c03441633f22eaf63d000050c0000060400000404000000000000080bf000000000000803f00000000000000000000803fffffffff000050c000004040d541393f23eaf63d000000c0000060400000404000000000000080bf000000000000803f00000000000000000000803fffffffff000000c000004040d641393f9d74193e000000c000006040000008c100000000000080bf000000000000803f00000000000000000000803fffffffff000000c0000008c1cd407e3f9d74193e000050c000006040000008c100000000000080bf000000000000803f00000000000000000000803fffffffff000050c0000008c1cd407e3f24eaf63d000050c000006040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff000050c0000038c168c45a3f7e85fa3e000000c000006040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff000000c0000058c139c4663fa2c2043f000000c000006040000038c100000000000080bf000000000000803f00000000000000000000803fffffffff000000c0000038c168c45a3fa2c2043f000050c000006040000058c100000000000080bf000000000000803f00000000000000000000803fffffffff000050c0000058c139c4663f7e85fa3e000050c000006040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff000050c0000018c195c44e3f7e85fa3e000000c000006040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff000000c0000020c18ac4513fa2c2043f000000c000006040000018c100000000000080bf000000000000803f00000000000000000000803fffffffff000000c0000018c196c44e3fa2c2043f000050c000006040000020c100000000000080bf000000000000803f00000000000000000000803fffffffff000050c0000020c18ac4513f7e85fa3e000050c00000604000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff000050c000002cc17944563f7e85fa3e000000c00000604000002cc100000000000080bf000000000000803f00000000000000000000803fffffffff000000c000002cc17944563fa2c2043f000050c000006040000000c0000080bf00000000000000000000000000000000000080bf000080bfffffffff00000040000060407e41513fe2539e3d000050c00000604000004040000080bf00000000000000000000000000000000000080bf000080bfffffffff000040c0000060400b416f3fe2539e3d000050c000007040000000c0000080bf00000000000000000000000000000000000080bf000080bfffffffff00000040000070407f41513fb453aa3d000050c00000704000004040000080bf00000000000000000000000000000000000080bf000080bfffffffff000040c0000070400c416f3fb453aa3d000050c000006040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff000050c000006040a108753f77093f3f000070c000006040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff000070c0000060409608783f77093f3f000050c000007040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff000050c000007040a108753f7289403f000070c000007040000040400000000000000000000080bf0000803f0000000000000000000080bfffffffff000070c0000070409608783f7289403f000070c000006040000040400000803f000000000000000000000000000000000000803f000080bfffffffff0000404000006040d902dc3e6bb6b53e000070c000006040000000c00000803f000000000000000000000000000000000000803f000080bfffffffff000000c000006040f9000c3f6bb6b53e000070c000007040000040400000803f000000000000000000000000000000000000803f000080bfffffffff0000404000007040da02dc3e5fb6b83e000070c000007040000000c00000803f000000000000000000000000000000000000803f000080bfffffffff000000c000007040f9000c3f5fb6b83e000070c000006040000000c000000000000000000000803f000080bf0000000000000000000080bfffffffff000070400000604095826f3fe2539e3d000050c000006040000000c000000000000000000000803f000080bf0000000000000000000080bfffffffff00005040000060408a82723fe2539e3d000070c000007040000000c000000000000000000000803f000080bf0000000000000000000080bfffffffff000070400000704095826f3fb453aa3d000050c000007040000000c000000000000000000000803f000080bf0000000000000000000080bfffffffff00005040000070408982723fb453aa3d000050c000006040000008c1000080bf00000000000000000000000000000000000080bf000080bfffffffff0000084100006040d685e23e530c4d3f000050c000006040000080c0000080bf00000000000000000000000000000000000080bf000080bfffffffff000080400000604083420c3f530c4d3f000050c000007040000008c1000080bf00000000000000000000000000000000000080bf000080bfffffffff0000084100007040d585e23e4d8c4e3f000050c000007040000080c0000080bf00000000000000000000000000000000000080bf000080bfffffffff000080400000704082420c3f4d8c4e3f000050c000006040000080c00000000000000000000080bf0000803f0000000000000000000080bfffffffff000050c000006040d242343f495d913e000070c000006040000080c00000000000000000000080bf0000803f0000000000000000000080bfffffffff000070c000006040c742373f495d913e000050c000007040000080c00000000000000000000080bf0000803f0000000000000000000080bfffffffff000050c000007040d242343f3e5d943e000070c000007040000080c00000000000000000000080bf0000803f0000000000000000000080bfffffffff000070c000007040c642373f3e5d943e000070c000006040000080c00000803f000000000000000000000000000000000000803f000080bfffffffff000080c000006040d685e23ed6cd4e3f000070c000006040000008c10000803f000000000000000000000000000000000000803f000080bfffffffff000008c10000604083420c3fd6cd4e3f000070c000007040000080c00000803f000000000000000000000000000000000000803f000080bfffffffff000080c000007040d585e23ed14d503f000070c000007040000008c10000803f000000000000000000000000000000000000803f000080bfffffffff000008c10000704082420c3fd14d503f000070c000006040000008c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000704000006040d6443e3f10c8353f000050c000006040000008c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000504000006040ca44413f11c8353f000070c000007040000008c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000704000007040d5443e3f0b48373f000050c000007040000008c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000504000007040ca44413f0b48373f000050c00000604000002cc1000080bf00000000000000000000000000000000000080bf000080bfffffffff00002c41000060407e82753f95479c3d000050c000006040000020c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00002041000060406d027a3f94479c3d000050c00000704000002cc1000080bf00000000000000000000000000000000000080bf000080bfffffffff00002c41000070407e82753f6747a83d000050c000007040000020c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00002041000070406c027a3f6647a83d000070c000006040000020c10000803f000000000000000000000000000000000000803f000080bfffffffff000020c1000060407382783f9b90d83c000070c00000604000002cc10000803f000000000000000000000000000000000000803f000080bfffffffff00002cc10000604061027d3f9890d83c000070c000007040000020c10000803f000000000000000000000000000000000000803f000080bfffffffff000020c1000070407282783ff247043d000070c00000704000002cc10000803f000000000000000000000000000000000000803f000080bfffffffff00002cc10000704061027d3ff047043d000070c00000604000002cc100000000000000000000803f000080bf0000000000000000000080bfffffffff0000704000006040d242343f50e0943e000050c00000604000002cc100000000000000000000803f000080bf0000000000000000000080bfffffffff0000504000006040c742373f50e0943e000070c00000704000002cc100000000000000000000803f000080bf0000000000000000000080bfffffffff0000704000007040d242343f45e0973e000050c00000704000002cc100000000000000000000803f000080bf0000000000000000000080bfffffffff0000504000007040c642373f45e0973e000050c000006040000018c1000080bf00000000000000000000000000000000000080bf000080bfffffffff000018410000604061027d3f95479c3d000050c000007040000018c1000080bf00000000000000000000000000000000000080bf000080bfffffffff000018410000704061027d3f6747a83d000050c000006040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff000050c000006040d5443e3f05cb633f000070c000006040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff000070c000006040ca44413f05cb633f000050c000007040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff000050c000007040d5443e3fff4a653f000070c000007040000018c10000000000000000000080bf0000803f0000000000000000000080bfffffffff000070c000007040ca44413fff4a653f000070c000006040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c1000060407e82753f9890d83c000070c000007040000018c10000803f000000000000000000000000000000000000803f000080bfffffffff000018c1000070407e82753ff047043d000050c000006040000058c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00005841000060407285fa3ef04a423f000050c000006040000038c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00003841000060408a42093ff04a423f000050c000007040000058c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00005841000070407185fa3eebca433f000050c000007040000038c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00003841000070408a42093febca433f000050c000006040000038c10000000000000000000080bf0000803f0000000000000000000080bfffffffff000050c000006040ec41333f2ba19a3e000070c000006040000038c10000000000000000000080bf0000803f0000000000000000000080bfffffffff000070c000006040e141363f2ba19a3e000050c000007040000038c10000000000000000000080bf0000803f0000000000000000000080bfffffffff000050c000007040ec41333f1fa19d3e000070c000007040000038c10000000000000000000080bf0000803f0000000000000000000080bfffffffff000070c000007040e141363f1fa19d3e000070c000006040000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c1000060402fc76e3f56c8233f000070c000006040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c10000604000c77a3f56c8233f000070c000007040000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c1000070402ec76e3f5048253f000070c000007040000058c10000803f000000000000000000000000000000000000803f000080bfffffffff000058c10000704000c77a3f5048253f000070c000006040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000704000006040f685593f60c51b3f000050c000006040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000504000006040f685593f55c51e3f000070c000007040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000704000007040fb05583f60c51b3f000050c000007040000058c100000000000000000000803f000080bf0000000000000000000080bfffffffff0000504000007040fc05583f54c51e3f000070c0000070400000404000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000704000004040d6039a3eb40b773f000050c000007040000000c000000000000080bf00000000000080bf0000000000000000000080bfffffffff00005040000000c0f002d63ea80b7a3f000050c0000070400000404000000000000080bf00000000000080bf0000000000000000000080bfffffffff0000504000004040d7039a3ea80b7a3f000070c000007040000000c000000000000080bf00000000000080bf0000000000000000000080bfffffffff00007040000000c0f002d63eb40b773f000070c000007040000080c000000000000080bf00000000000080bf0000000000000000000080bfffffffff00007040000080c0d585e23e4b86443f000050c000007040000008c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00005040000008c183420c3f3f86473f000050c000007040000080c000000000000080bf00000000000080bf0000000000000000000080bfffffffff00005040000080c0d585e23e3f86473f000070c000007040000008c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00007040000008c183420c3f4b86443f000070c000007040000038c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00007040000038c17185fa3ef5c73b3f000050c000007040000058c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00005040000058c18a42093fe9c73e3f000050c000007040000038c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00005040000038c17185fa3ee9c73e3f000070c000007040000058c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00007040000058c18a42093ff5c73b3f000070c000007040000018c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00007040000018c1ca68893e561c343f000050c000007040000020c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00005040000020c1b2688f3e4a1c373f000050c000007040000018c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00005040000018c1ca68893e4a1c373f000070c000007040000020c100000000000080bf00000000000080bf0000000000000000000080bfffffffff00007040000020c1b2688f3e561c343f000050c00000704000002cc100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000504000002cc19068983e4a1c373f000070c00000704000002cc100000000000080bf00000000000080bf0000000000000000000080bfffffffff0000704000002cc19068983e561c343f0000084100008040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00000841000040c113416c3fa879623e0000204100008040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00002041000050c1f240753f077a4a3e0000204100008040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00002041000040c1f140753fab79623e0000084100008040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00000841000050c114416c3f047a4a3e0000000000000000000040c10000803f000000000000000000000000000000000000803f000080bfffffffff000040c100000000a542033fb083243f0000000000000000000050c10000803f000000000000000000000000000000000000803f000080bfffffffff000050c1000000008e42093fb083243f0000000000000040000050c10000803f000000000000000000000000000000000000803f000080bfffffffff000050c1000000409042093f8183303f0000000000000040000040c10000803f000000000000000000000000000000000000803f000080bfffffffff000040c100000040a742033f8283303f0000284100000040000050c1000080bf000000000000000000000000000000000000803f0000803fffffffff000050c10000004097832a3f4f45203f0000284100000000000040c1000080bf000000000000000000000000000000000000803f0000803fffffffff000040c1000000008083303f7d45143f0000284100000040000040c1000080bf000000000000000000000000000000000000803f0000803fffffffff000040c1000000407f83303f4f45203f0000284100000000000050c1000080bf000000000000000000000000000000000000803f0000803fffffffff000050c10000000097832a3f7d45143f0000003f00000040000040c10000803f000000000000000000000000000000000000803f000080bfffffffff000040c1000000402b064c3f57cc733f0000003f00000040000050c10000803f000000000000000000000000000000000000803f000080bfffffffff000050c1000000401406523f57cc733f0000003f00001040000050c10000803f000000000000000000000000000000000000803f000080bfffffffff000050c1000010401406523f514c753f0000003f00001040000040c10000803f000000000000000000000000000000000000803f000080bfffffffff000040c1000010402b064c3f514c753f0000000000001040000040c10000803f000000000000000000000000000000000000803f000080bfffffffff000040c1000010402e83453fb242003f0000000000001040000050c10000803f000000000000000000000000000000000000803f000080bfffffffff000050c10000104017834b3fb242003f0000000000004040000050c10000803f000000000000000000000000000000000000803f000080bfffffffff000050c10000404017834b3fa1c2043f0000000000004040000040c10000803f000000000000000000000000000000000000803f000080bfffffffff000040c1000040402e83453fa1c2043f00002c4100001040000050c1000080bf000000000000000000000000000000000000803f0000803fffffffff000050c10000104011095a3e3942783f00002c4100000040000040c1000080bf000000000000000000000000000000000000803f0000803fffffffff000040c100000040b308723e3ec2763f00002c4100001040000040c1000080bf000000000000000000000000000000000000803f0000803fffffffff000040c100001040b408723e3842783f00002c4100000040000050c1000080bf000000000000000000000000000000000000803f0000803fffffffff000050c10000004012095a3e3fc2763f00002c4100004040000050c1000080bf000000000000000000000000000000000000803f0000803fffffffff000050c10000404013095a3e27c27c3f00002c4100004040000040c1000080bf000000000000000000000000000000000000803f0000803fffffffff000040c100004040b308723e27c27c3f0000284100008040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00002841000050c1e640783f087a4a3e0000284100008040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00002841000040c1e640783fad79623e0000003f00008040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff0000003f000040c1cb413c3fb179623e0000404000008040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00004040000050c192414b3f037a4a3e0000404000008040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00004040000040c192414b3fa879623e0000003f00008040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff0000003f000050c1ca413c3f0b7a4a3e0000000000008040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00000000000040c1d641393fb379623e0000000000008040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00000000000050c1d641393f0d7a4a3e0000000000000040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00000000000040c1ac12833a33c2793f0000003f00000040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff0000003f000050c1835f503c4ac2733f0000003f00000040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff0000003f000040c1695f503c33c2793f0000000000000040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00000000000050c17d13833a4ac2733f0000003f00001040000050c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000050c16502fa3e93032c3f0000000000001040000050c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000050c12701003f93032c3f0000000000001040000040c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000000000040c12701003f7c03323f0000003f00001040000040c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000003f000040c16602fa3e7c03323f0000804000008040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00008040000040c17b41513fa879623e0000f04000008040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff0000f040000050c12b41663f007a4a3e0000f04000008040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff0000f040000040c12a41663fa579623e0000804000008040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00008040000050c17b41513f027a4a3e0000284100006040000050c1000080bf000000000000000000000000000000000000803f0000803fffffffff000050c1000060407583333ffc85d93e0000284100004040000040c1000080bf000000000000000000000000000000000000803f0000803fffffffff000040c1000040405e83393f1286d33e0000284100006040000040c1000080bf000000000000000000000000000000000000803f0000803fffffffff000040c1000060405d83393ffb85d93e0000284100004040000050c1000080bf000000000000000000000000000000000000803f0000803fffffffff000050c1000040407583333f1386d33e0000284100008040000050c1000080bf000000000000000000000000000000000000803f0000803fffffffff000050c1000080407583333fe585df3e0000284100008040000040c1000080bf000000000000000000000000000000000000803f0000803fffffffff000040c1000080405d83393fe485df3e0000000000006040000050c10000803f000000000000000000000000000000000000803f000080bfffffffff000050c10000604017834b3f96c2073f0000000000006040000040c10000803f000000000000000000000000000000000000803f000080bfffffffff000040c1000060402e83453f96c2073f0000000000008040000050c10000803f000000000000000000000000000000000000803f000080bfffffffff000050c10000804017834b3f8ac20a3f0000000000008040000040c10000803f000000000000000000000000000000000000803f000080bfffffffff000040c1000080402e83453f8ac20a3f0000004100008040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00000041000040c11f41693fa779623e0000004100008040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00000041000050c12041693f027a4a3e0000604000008040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00006040000040c187414e3fa879623e0000604000008040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00006040000050c186414e3f037a4a3e0000284100004040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00002841000040c12d04853eb1037d3f00002c4100004040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00002c41000050c1ff03913eac837e3f00002c4100004040000040c100000000000080bf000000000000803f00000000000000000000803fffffffff00002c41000040c12d04853eac837e3f0000284100004040000050c100000000000080bf000000000000803f00000000000000000000803fffffffff00002841000050c1ff03913eb1037d3f00002c4100000040000050c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002c41000050c1c003a03eaa0e7f3f0000284100000040000050c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002841000050c1c103a03eaf8e7d3f0000284100000040000040c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002841000040c19203ac3eaf8e7d3f00002c4100000040000040c1000000000000803f000000000000803f0000000000000000000080bfffffffff00002c41000040c19103ac3ea90e7f3f + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: 2.75, y: 2.25, z: -5.875} + m_Extent: {x: 8, y: 2.25, z: 9.125} + m_MeshUsageFlags: 0 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + m_MeshMetrics[0]: 1 + m_MeshMetrics[1]: 1 + m_MeshOptimizationFlags: -1 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: +--- !u!1 &842084052 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 842084053} + m_Layer: 0 + m_Name: Structure + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &842084053 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 842084052} + 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: 1227201757} + - {fileID: 4026696} + m_Father: {fileID: 557578323} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &924410671 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 924410672} + - component: {fileID: 924410673} + m_Layer: 0 + m_Name: Reflection Probe 8 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &924410672 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 924410671} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -3.5, y: 1.5, z: -7.25} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1291775223} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &924410673 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 924410671} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 1 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 256 + m_UpdateFrequency: 0 + m_BoxSize: {x: 10, y: 10, z: 10} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.1 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 1 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &963033190 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 963033191} + - component: {fileID: 963033192} + m_Layer: 0 + m_Name: Point Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &963033191 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 963033190} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.75, y: 2.5, z: 2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1770544745} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!108 &963033192 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 963033190} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 2 + m_Shape: 0 + m_Color: {r: 1, g: 1, b: 0.84705883, a: 1} + m_Intensity: 0.7 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0.7 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!1 &1059525400 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1059525401} + - component: {fileID: 1059525402} + m_Layer: 0 + m_Name: Reflection Probe 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1059525401 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1059525400} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2, y: 1.5, z: -3} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1291775223} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &1059525402 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1059525400} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 1 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 256 + m_UpdateFrequency: 0 + m_BoxSize: {x: 10, y: 10, z: 10} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.1 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 1 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &1077245778 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1077245779} + - component: {fileID: 1077245780} + m_Layer: 0 + m_Name: Reflection Probe 6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1077245779 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1077245778} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -3.5, y: 1.5, z: 2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1291775223} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &1077245780 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1077245778} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 1 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 256 + m_UpdateFrequency: 0 + m_BoxSize: {x: 10, y: 10, z: 10} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.1 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 1 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &1134885618 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1134885619} + - component: {fileID: 1134885620} + m_Layer: 0 + m_Name: Reflection Probe 13 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1134885619 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1134885618} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 5.75, y: 1.5, z: -8.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1291775223} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &1134885620 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1134885618} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 1 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 256 + m_UpdateFrequency: 0 + m_BoxSize: {x: 10, y: 10, z: 10} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.1 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 1 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &1208425695 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1208425696} + - component: {fileID: 1208425697} + m_Layer: 0 + m_Name: Reflection Probe 7 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1208425696 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1208425695} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -3.5, y: 1.5, z: -3} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1291775223} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &1208425697 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1208425695} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 1 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 256 + m_UpdateFrequency: 0 + m_BoxSize: {x: 10, y: 10, z: 10} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.1 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 1 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &1227201752 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1227201757} + - component: {fileID: 1227201756} + - component: {fileID: 1227201755} + m_Layer: 0 + m_Name: GI Blocking + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 127 + m_IsActive: 1 +--- !u!33 &1227201755 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1227201752} + m_Mesh: {fileID: 2070156965} +--- !u!23 &1227201756 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1227201752} + m_Enabled: 1 + m_CastShadows: 2 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: f9a5ce4748e5abd4288cab387226ef27, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 2 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!4 &1227201757 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1227201752} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 2.5, y: 0, z: -1} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 842084053} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1291775222 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1291775223} + m_Layer: 0 + m_Name: Reflection Probes + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1291775223 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1291775222} + 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: 1059525401} + - {fileID: 29538277} + - {fileID: 785032372} + - {fileID: 1635780791} + - {fileID: 350966235} + - {fileID: 1077245779} + - {fileID: 1208425696} + - {fileID: 924410672} + - {fileID: 262890555} + - {fileID: 1799119046} + - {fileID: 1910624284} + - {fileID: 1399680237} + - {fileID: 1134885619} + m_Father: {fileID: 1508763321} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1399680236 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1399680237} + - component: {fileID: 1399680238} + m_Layer: 0 + m_Name: Reflection Probe 12 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1399680237 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1399680236} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 9.25, y: 1.5, z: -11.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1291775223} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &1399680238 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1399680236} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 1 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 256 + m_UpdateFrequency: 0 + m_BoxSize: {x: 10, y: 10, z: 10} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.1 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 1 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &1508763320 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1508763321} + m_Layer: 0 + m_Name: Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1508763321 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1508763320} + 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: 1770544745} + - {fileID: 1291775223} + m_Father: {fileID: 557578323} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1632422755 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1632422757} + - component: {fileID: 1632422756} + m_Layer: 0 + m_Name: Sun Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1632422756 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1632422755} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1.5 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: 2 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0 + m_NormalBias: 0 + m_NearPlane: 0.1 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1.5 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &1632422757 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1632422755} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 10, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1770544745} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &1635780790 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1635780791} + - component: {fileID: 1635780792} + m_Layer: 0 + m_Name: Reflection Probe 4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1635780791 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1635780790} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 8, y: 1.5, z: 0.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1291775223} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &1635780792 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1635780790} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 1 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 256 + m_UpdateFrequency: 0 + m_BoxSize: {x: 10, y: 10, z: 10} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.1 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 1 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &1770544744 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1770544745} + m_Layer: 0 + m_Name: Lights + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1770544745 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1770544744} + 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: 1632422757} + - {fileID: 963033191} + m_Father: {fileID: 1508763321} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1799119045 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1799119046} + - component: {fileID: 1799119047} + m_Layer: 0 + m_Name: Reflection Probe 10 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1799119046 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1799119045} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.75, y: 1.5, z: -10.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1291775223} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &1799119047 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1799119045} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 1 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 256 + m_UpdateFrequency: 0 + m_BoxSize: {x: 10, y: 10, z: 10} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.1 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 1 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &1855087691 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1855087694} + - component: {fileID: 1855087693} + - component: {fileID: 1855087692} + 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 &1855087692 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1855087691} + m_Enabled: 1 +--- !u!20 &1855087693 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1855087691} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.01 + 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: 3 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1855087694 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1855087691} + m_LocalRotation: {x: 0, y: -0.35836798, z: 0, w: 0.93358046} + m_LocalPosition: {x: 8, y: 2, z: -5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: -42, z: 0} +--- !u!1 &1910624283 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1910624284} + - component: {fileID: 1910624285} + m_Layer: 0 + m_Name: Reflection Probe 11 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1910624284 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1910624283} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 5, y: 1.5, z: -11.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1291775223} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &1910624285 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1910624283} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 1 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 256 + m_UpdateFrequency: 0 + m_BoxSize: {x: 10, y: 10, z: 10} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.1 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 1 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!43 &2070156965 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: pb_Mesh-1818442 + serializedVersion: 10 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 414 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 169 + localAABB: + m_Center: {x: 0.375, y: 2.125, z: -4.875} + m_Extent: {x: 8.375, y: 2.625, z: 9.375} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 1 + m_KeepVertices: 1 + m_KeepIndices: 1 + m_IndexFormat: 0 + m_IndexBuffer: 000001000200000003000100040005000600040007000500080009000a0008000b0009000c000d000e000f00100011001200130014001500160017000b00180009000b00190018001a001b0001001c001a00010019001d00180019001e001d001f0020001b001a001f001b001e00210022001e002300210024002500200026002400200027002800290027002a0028002b002c002d002b002e002c002f00300031003200330034003500070000003500000036003700380039003a003b003c003d00030004003d001c0003002a003e0028002a003f003e0009003f002a00090018003f00400041003d00060040003d0041001a001c003d0041001c003f0042003e003f0043004200180043003f0018001d0043004400450041004000440041004600470048004600490047001d004a0043001d0021004a004b004c00450044004b0045004d0024001f0045004d001f004e004f00500051004e0050005200530054005200550053004f005600570058004f00570059005a005b0059005c005a0056005d005e00570056005e005f005c0059005f0060005c005d00610062005e005d006200630060005f0063006400600065006600670068006500670069006a006b0069006c006a0066006d006e00670066006e006d006f0070006e006d0070007100720073007100740072007500760077007500780076005100500079007a00510079007a0079007b007c007a007b007d0054007e007d00520054007f007e0080007f007d007e005800570081008200580081008200810083007b008200830084005b008500840059005b0086008500870086008400850057005e0088008100570088008100880089008300810089008a00590084008a005f0059008b00840086008b008a0084005e0062008c0088005e008c0088008c008d00890088008d008e005f008a008e0063005f008f008a008b008f008e008a00680067009000910068009000910090009200930091009200940095009600940097009500980099009a0098009b00990067006e009c00900067009c0090009c009d00920090009d006e0070009e009c006e009e009c009e009f009d009c009f00a000a100a200a000a300a100a400a500a300a400a600a500a700a300a000a700a800a300 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 169 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 24 + format: 0 + dimension: 4 + - stream: 0 + offset: 40 + format: 2 + dimension: 4 + - stream: 0 + offset: 44 + format: 0 + dimension: 2 + - stream: 0 + offset: 52 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 10140 + _typelessdata: 000080be00009840000080bf000000000000803f000000000000803f0000000000000000000080bfffffffff000080be000080bfab1cb43e58ac263f000000c100009840000000c1000000000000803f000000000000803f0000000000000000000080bfffffffff000000c1000000c1b6142c3e2232e53e000000c10000984000009040000000000000803f000000000000803f0000000000000000000080bfffffffff000000c1000090407d06fe3e2032e53e000080be000098400000a8c0000000000000803f000000000000803f0000000000000000000080bfffffffff000080be0000a8c089fe753e58ac263f0000b040000098400000a8c0000000000000803f000000000000803f0000000000000000000080bfffffffff0000b0400000a8c089fe753e4c4f4d3f00000c410000984000009040000000000000803f000000000000803f0000000000000000000080bfffffffff00000c41000090407e06fe3ed625633f00000c4100009840000000c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000c41000000c1b6142c3ed625633f0000b04000009840000080bf000000000000803f000000000000803f0000000000000000000080bfffffffff0000b040000080bfac1cb43e4c4f4d3f000000c1000000bf0000904000000000000080bf000000000000803f00000000000000000000803fffffffff000000c1000090407e12833bdf12833b000020c0000000bf000000c100000000000080bf000000000000803f00000000000000000000803fffffffff000020c0000000c16b08aa3e39ec173e000020c0000000bf0000904000000000000080bf000000000000803f00000000000000000000803fffffffff000020c0000090406f12833b32ec173e000000c1000000bf000000c100000000000080bf000000000000803f00000000000000000000803fffffffff000000c1000000c16a08aa3ee212833b000080be00009840000080bf0000000000000000000000000000c0ff0000c0ff0000c0ff0000803fffffffff000080be000080bf0000000000000000000080be00009840000080bf00000000ffff7f3f000000000000c0ff0000c0ff0000c0ff0000803fffffffff000080be000080bf0000000000000000000020c0000098400000904000000000ffff7f3f000000000000c0ff0000c0ff0000c0ff0000803fffffffff000020c0000090400000000000000000000020c0000098400000904000000000ffff7f3f000000000000c0ff0000c0ff0000c0ff0000803fffffffff000020c0000090407d06fe3ef98d173f000080be00009840000080bf00000000ffff7f3f000000000000c0ff0000c0ff0000c0ff0000803fffffffff000080be000080bfab1cb43e58ac263f000000c1000098400000904000000000ffff7f3f000000000000803f0000000000000000000080bfffffffff000000c1000090407d06fe3e2032e53e000080be000098400000a8c00000000000000000000000000000c0ff0000c0ff0000c0ff0000803fffffffff000080be0000a8c00000000000000000000020c000009840000000c100000000ffff7f3f000000000000c0ff0000c0ff0000c0ff0000803fffffffff000020c0000000c10000000000000000000080be000098400000a8c000000000ffff7f3f000000000000c0ff0000c0ff0000c0ff0000803fffffffff000080be0000a8c00000000000000000000020c000009840000000c100000000ffff7f3f000000000000c0ff0000c0ff0000c0ff0000803fffffffff000020c0000000c1b6142c3ef98d173f000000c100009840000000c100000000ffff7f3f000000000000803f0000000000000000000080bfffffffff000000c1000000c1b6142c3e2232e53e000080be000098400000a8c000000000ffff7f3f000000000000c0ff0000c0ff0000c0ff0000803fffffffff000080be0000a8c089fe753e58ac263f000020c0000000bf000004c100000000000080bf000000000000803f00000000000000000000803fffffffff000020c0000004c18064ad3e36ec173e000000c1000000bf000004c100000000000080bf000000000000803f00000000000000000000803fffffffff000000c1000004c17e64ad3e8612833b000020c000009840000004c1000000000000803f000000000000803f0000000000000000000080bfffffffff000020c0000004c18b5c253ef98d173f000000c100009840000004c1000000000000803f000000000000803f0000000000000000000080bfffffffff000000c1000004c18e5c253e2032e53e000020c000009840000000c1000000000000803f000000000000803f0000000000000000000080bfffffffff000020c0000000c1b6142c3ef98d173f000020c0000000bf000038c100000000000080bf000000000000803f00000000000000000000803fffffffff000020c0000038c19411d93e34ec173e000000c1000000bf000038c100000000000080bf000000000000803f00000000000000000000803fffffffff000000c1000038c19111d93ea412833b000020c000009840000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff000020c0000038c1c4049c3df98d173f000000c100009840000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff000000c1000038c1cb049c3d2132e53e000020c0000000bf000064c100000000000080bf000000000000803f00000000000000000000803fffffffff000020c0000064c17d06fe3e3bec173e000020c0000000bf000038c100000000ffff7fbf000000000000803f00000000000000000000803fffffffff000020c0000038c19411d93e34ec173e000000c1000000bf000060c100000000ffff7fbf000000000000803f00000000000000000000803fffffffff000000c1000060c166aafa3e6f12833b000020c000009840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff000020c0000064c18112833bf98d173f000000c100009840000060c100000000ffff7f3f000000000000803f0000000000000000000080bfffffffff000000c1000060c1e60b2d3c2032e53e000020c000009840000038c100000000ffff7f3f000000000000803f0000000000000000000080bfffffffff000020c0000038c1c4049c3df98d173f0000c040000000bf0000904000000000000080bf000000000000803f00000000000000000000803fffffffff0000c040000090401a13833beb30be3e00000c41000000bf000000c100000000000080bf000000000000803f00000000000000000000803fffffffff00000c41000000c16c08aa3ed325e33e00000c41000000bf0000904000000000000080bf000000000000803f00000000000000000000803fffffffff00000c41000090402313833bd225e33e0000c040000000bf000000c100000000000080bf000000000000803f00000000000000000000803fffffffff0000c040000000c16c08aa3eeb30be3e000020c0000000bf0000904000000000ffff7fbf000000000000803f00000000000000000000803fffffffff000020c0000090406f12833b32ec173e0000c040000000bf000000c100000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000c040000000c16c08aa3eeb30be3e0000c040000000bf0000904000000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000c040000090401a13833beb30be3e000020c0000000bf000000c100000000ffff7fbf000000000000803f00000000000000000000803fffffffff000020c0000000c16b08aa3e39ec173e00000c41000098400000904000000000ffff7f3f000000000000803f0000000000000000000080bfffffffff00000c41000090407e06fe3ed625633f0000b04000009840000080bf00000000ffff7f3f000000000000c0ff0000c0ff0000c0ff0000803fffffffff0000b040000080bfac1cb43e4c4f4d3f0000c040000098400000904000000000ffff7f3f000000000000c0ff0000c0ff0000c0ff0000803fffffffff0000c040000090407c06fe3e61ab503f0000b04000009840000080bf00000000ffff7f3f000000000000c0ff0000c0ff0000c0ff0000803fffffffff0000b040000080bf00000000000000000000b04000009840000080bf0000000000000000000000000000c0ff0000c0ff0000c0ff0000803fffffffff0000b040000080bf00000000000000000000c040000098400000904000000000ffff7f3f000000000000c0ff0000c0ff0000c0ff0000803fffffffff0000c0400000904000000000000000000000c0400000984000009040000000000000803f000000000000803f0000000000000000000080bfffffffff0000c040000090407c06fe3e61ab503f000020c00000984000009040000000000000803f000000000000803f0000000000000000000080bfffffffff000020c0000090407d06fe3ef98d173f00000c4100009840000000c100000000ffff7f3f000000000000803f0000000000000000000080bfffffffff00000c41000000c1b6142c3ed625633f0000c04000009840000000c100000000ffff7f3f000000000000c0ff0000c0ff0000c0ff0000803fffffffff0000c040000000c1b6142c3e61ab503f0000b040000098400000a8c000000000ffff7f3f000000000000c0ff0000c0ff0000c0ff0000803fffffffff0000b0400000a8c089fe753e4c4f4d3f0000b040000098400000a8c000000000ffff7f3f000000000000c0ff0000c0ff0000c0ff0000803fffffffff0000b0400000a8c000000000000000000000c04000009840000000c100000000ffff7f3f000000000000c0ff0000c0ff0000c0ff0000803fffffffff0000c040000000c100000000000000000000b040000098400000a8c00000000000000000000000000000c0ff0000c0ff0000c0ff0000803fffffffff0000b0400000a8c000000000000000000000c04000009840000000c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000c040000000c1b6142c3e61ab503f00000c41000000bf000004c100000000000080bf000000000000803f00000000000000000000803fffffffff00000c41000004c18464ad3ed525e33e0000c040000000bf000004c100000000000080bf000000000000803f00000000000000000000803fffffffff0000c040000004c18364ad3eea30be3e00000c4100009840000004c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000c41000004c18a5c253ed525633f0000044100009840000004c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000441000004c18d5c253ebfc95f3f00000c41000000bf000038c100000000000080bf000000000000803f00000000000000000000803fffffffff00000c41000038c19a11d93ed525e33e0000c040000000bf000038c100000000000080bf000000000000803f00000000000000000000803fffffffff0000c040000038c19811d93ee930be3e00000c4100009840000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000c41000038c1c3049c3dd625633f0000044100009840000038c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000441000038c1cc049c3dc0c95f3f0000c040000000bf000038c100000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000c040000038c19811d93ee930be3e00000c41000000bf000064c100000000ffff7fbf000000000000803f00000000000000000000803fffffffff00000c41000064c18306fe3ed625e33e00000c41000000bf000038c100000000ffff7fbf000000000000803f00000000000000000000803fffffffff00000c41000038c19a11d93ed525e33e0000c040000000bf000064c100000000ffff7fbf000000000000803f00000000000000000000803fffffffff0000c040000064c18206fe3ee830be3e0000c040000000bf000064c100000000000080bf000000000000803f00000000000000000000803fffffffff0000c040000064c18206fe3ee830be3e00000c4100009840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff00000c41000064c19312833bd625633f0000c04000009840000064c100000000ffff7f3f000000000000803f0000000000000000000080bfffffffff0000c040000064c16f12833b61ab503f0000c04000009840000064c1000000000000803f000000000000803f0000000000000000000080bfffffffff0000c040000064c16f12833b61ab503f00000c41000000bf000090400000803f000000000000000000000000000000000000803f000080bfffffffff00009040000000bf6609003fc012833b00000c41000000bf000000c10000803f000000000000000000000000000000000000803f000080bfffffffff000000c1000000bf7907543fc812833b00000c410000003f000000c10000803f000000000000000000000000000000000000803f000080bfffffffff000000c1000008407907543f02caf73c00000c410000003f000090400000803f000000000000000000000000000000000000803f000080bfffffffff00009040000008406609003f04caf73c000000c10000003f000000c1000080bf00000000000000000000000000000000000080bf000080bfffffffff0000004100000840675a283f632d303e000000c1000000bf00009040000080bf00000000000000000000000000000000000080bf000080bfffffffff000090c0000000bf76587c3fa44c153e000000c10000003f00009040000080bf00000000000000000000000000000000000080bf000080bfffffffff000090c00000084078587c3f4d2d303e000000c1000000bf000000c1000080bf00000000000000000000000000000000000080bf000080bfffffffff00000041000000bf6a5a283fb94c153e00000c41000000bf000004c10000803f000000000000000000000000000000000000803f000080bfffffffff000004c1000000bf84b5553fbc12833b00000c410000003f000004c10000803f000000000000000000000000000000000000803f000080bfffffffff000004c10000003f84b5553fe9c9f73c00000c410000003f000000c10000803f000000000000000000000000000000000000803f000080bfffffffff000000c10000003f7907543f02caf73c000000c10000003f000004c1000080bf000000000000000000000000000000000000803f0000803fffffffff000004c10000003f5dac263f612d303e000000c1000000bf000000c1000080bf000000000000000000000000000000000000803f0000803fffffffff000000c1000000bf6a5a283fb94c153e000000c10000003f000000c1000080bf000000000000000000000000000000000000803f0000803fffffffff000000c10000003f675a283f632d303e000000c1000000bf000004c1000080bf000000000000000000000000000000000000803f0000803fffffffff000004c1000000bf5dac263fb94c153e00000c41000000bf000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c1000000bf0d8c6b3fa412833b00000c410000003f000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c10000003f0d8c6b3fe9c9f73c000000c10000003f000038c1000080bf000000000000000000000000000000000000803f0000803fffffffff000038c10000003fd4d5103f5c2d303e000000c1000000bf000038c1000080bf000000000000000000000000000000000000803f0000803fffffffff000038c1000000bfd5d5103fb24c153e00000c41000000bf000064c10000803f000000000000000000000000000000000000803f000080bfffffffff000064c1000000bf82067e3f6f12833b00000c410000003f000064c10000803f000000000000000000000000000000000000803f000080bfffffffff000064c10000003f82067e3fe3c9f73c000000c10000003f000060c1000080bf000000000000000000000000000000000000803f0000803fffffffff000060c10000003f6a09003f562d303e000000c1000000bf000060c1000080bf000000000000000000000000000000000000803f0000803fffffffff000060c1000000bf6c09003fac4c153e000000c1000000bf0000904000000000000000000000803f000080bf0000000000000000000080bfffffffff00008040000000bf6409003f2032e53e000020c0000000bf0000904000000000000000000000803f000080bf0000000000000000000080bfffffffff000000c0000000bf4cfe243f2132e53e000020c00000003f0000904000000000000000000000803f000080bf0000000000000000000080bfffffffff000000c0000008404cfe243f75a2f23e000000c10000003f0000904000000000000000000000803f000080bf0000000000000000000080bfffffffff00008040000008406409003f75a2f23e000040c00000e03f000064c157533fbd447aebbbc6b67fbfdaeb7d3f6ed4f13dbe7641bd000080bfffffffff00000040000008403cfe4e3fd184b13e000000c1000000bf000060c157533fbd447aebbbc6b67fbfdaeb7d3f6ed4f13dbe7641bd000080bfffffffff000080c0000000bf8ea1703fdb47933e000000c10000003f000060c1638b4cbd000000003cae7fbf9710783f9710783eac7346bd000080bfffffffff000080c00000084099a1703f5ab8a03e000020c0000000bf000064c1f6fa39bddb5025bc13b97fbf67bc7f3f0000000062fd39bd000080bfffffffff00000040000000bff4a24b3fd647933e0000c040000000bf0000904000000000000000000000803f000080bf0000000000000000000080bfffffffff0000a0c0000000bfb51b5e3f2132e53e0000c0400000003f0000904000000000000000000000803f000080bf0000000000000000000080bfffffffff0000a0c000000840b51b5e3f76a2f23e00000c41000000bf0000904000000000000000000000803f000080bf0000000000000000000080bfffffffff000000c1000000bf2996703f2232e53e00000c410000003f0000904000000000000000000000803f000080bf0000000000000000000080bfffffffff000000c1000008402996703f76a2f23e0000c8400000e03f000064c10000000000000000000080bf0000803f0000000000000000000080bfffffffff0000a04000000840e4d6103fd37eb13e000020c0000000bf000064c10000000000000000000080bf0000803f0000000000000000000080bfffffffff00000040000000bff4a24b3fd647933e000040c00000e03f000064c10000000000000000000080bf0000803f0000000000000000000080bfffffffff00000040000008403cfe4e3fd184b13e0000c040000000bf000064c10000000000000000000080bf0000803f0000000000000000000080bfffffffff0000a040000000bfa985123f4442933e00000c410000003f000064c10000000000000000000080bfd409793fee2d6dbe00000000000080bfffffffff0000004100000840d30a003fbfb0a03e0000c040000000bf000064c10000000000000000000080bfd409793fee2d6dbe00000000000080bfffffffff0000a040000000bfa985123f4442933e0000c8400000e03f000064c10000000000000000000080bf2ef9643f2ef9e4be00000000000080bfffffffff0000a04000000840e4d6103fd37eb13e00000c41000000bf000064c10000000000000000000080bf0000803f0000000000000000000080bfffffffff00000041000000bf2b0b003f6340933e00000c4100008040000000c10000803f000000000000000000000000000000000000803f000080bfffffffff000000c100005c407907543f1317fa3d00000c4100008040000090400000803f000000000000000000000000000000000000803f000080bfffffffff0000904000005c406709003f1b17fa3d00000c4100009840000000c10000803f000000000000000000000000000000000000803f000080bfffffffff000000c1000098407907543f0934113e00000c4100009840000090400000803f000000000000000000000000000000000000803f000080bfffffffff00009040000098406709003f0d34113e000000c100008040000000c1000080bf00000000000000000000000000000000000080bf000080bfffffffff0000004100005c40645a283fda1f873e000000c10000804000009040000080bf00000000000000000000000000000000000080bf000080bfffffffff000090c000005c4075587c3fd11f873e000000c100009840000000c1000080bf00000000000000000000000000000000000080bf000080bfffffffff0000004100009840665a283f1934913e000000c10000984000009040000080bf00000000000000000000000000000000000080bf000080bfffffffff000090c00000984077587c3f1034913e00000c4100008040000004c10000803f000000000000000000000000000000000000803f000080bfffffffff000004c10000804084b5553f1e17fa3d00000c4100008040000000c10000803f000000000000000000000000000000000000803f000080bfffffffff000000c1000080407907543f1317fa3d00000c4100009840000004c10000803f000000000000000000000000000000000000803f000080bfffffffff000004c10000984084b5553f0c34113e000000c100008040000004c1000080bf000000000000000000000000000000000000803f0000803fffffffff000004c1000080405aac263fda1f873e000000c100008040000000c1000080bf000000000000000000000000000000000000803f0000803fffffffff000000c100008040645a283fda1f873e000000c100009840000004c1000080bf000000000000000000000000000000000000803f0000803fffffffff000004c10000984059ac263f1934913e000000c100009840000000c1000080bf000000000000000000000000000000000000803f0000803fffffffff000000c100009840665a283f1934913e00000c4100008040000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c1000080400d8c6b3f2417fa3d00000c4100009840000038c10000803f000000000000000000000000000000000000803f000080bfffffffff000038c1000098400d8c6b3f1034113e000000c100008040000038c1000080bf000000000000000000000000000000000000803f0000803fffffffff000038c100008040d1d5103fd61f873e000000c100009840000038c1000080bf000000000000000000000000000000000000803f0000803fffffffff000038c100009840d0d5103f1534913e00000c4100008040000064c10000803f000000000000000000000000000000000000803f000080bfffffffff000064c10000804082067e3f2117fa3d00000c4100009840000064c10000803f000000000000000000000000000000000000803f000080bfffffffff000064c10000984082067e3f0e34113e000000c100008040000060c1000080bf000000000000000000000000000000000000803f0000803fffffffff000060c1000080406809003fd21f873e000000c100009840000060c1000080bf000000000000000000000000000000000000803f0000803fffffffff000060c1000098406609003f1234913e000020c0000080400000904000000000000000000000803f000080bf0000000000000000000080bfffffffff000000c000005c404dfe243fcfd5103f000000c1000080400000904000000000000000000000803f000080bf0000000000000000000080bfffffffff0000804000005c406409003fcfd5103f000020c0000098400000904000000000000000000000803f000080bf0000000000000000000080bfffffffff000000c0000098404dfe243fefdf153f000000c1000098400000904000000000000000000000803f000080bf0000000000000000000080bfffffffff00008040000098406409003feedf153f000040c000008040000064c1638b4cbd000000003bae7fbf09b67d3f09b6fd3d08f84abd000080bfffffffff0000004000005c403afe4e3f3ac1cf3e000000c10000003f000060c1638b4cbd000000003bae7fbf09b67d3f09b6fd3d08f84abd000080bfffffffff000080c00000084099a1703f5ab8a03e000000c100008040000060c1628b4cbd000000003bae7fbf3bae7f3f00000000628b4cbd000080bfffffffff000080c000005c4099a1703f4bc1cf3e000040c00000e03f000064c1648b4cbd000000003cae7fbf9710783f9710783ead7346bd000080bfffffffff00000040000008403cfe4e3fd184b13e000020c000009840000064c168cd42bd45de813c98ad7fbfd2b57f3fbb40942eadd342bd000080bfffffffff000000400000984054a24b3fc7d5d93e000000c100008040000060c168cd42bd45de813c98ad7fbfd2b57f3fbb40942eadd342bd000080bfffffffff000080c000005c4099a1703f4bc1cf3e000000c100009840000060c162fd39bd0000000067bc7fbf67bc7f3f0000000063fd39bd000080bfffffffff000080c00000984099a1703fb4d5d93e000040c000008040000064c1666e4cbd9949083dff897fbf3bae7f3f00000000628b4cbd000080bfffffffff0000004000005c403afe4e3f3ac1cf3e0000c040000080400000904000000000000000000000803f000080bf0000000000000000000080bfffffffff0000a0c000005c40b51b5e3fcfd5103f0000c040000098400000904000000000000000000000803f000080bf0000000000000000000080bfffffffff0000a0c000009840b51b5e3feedf153f00000c41000080400000904000000000000000000000803f000080bf0000000000000000000080bfffffffff000000c100005c402996703fcfd5103f00000c41000098400000904000000000000000000000803f000080bf0000000000000000000080bfffffffff000000c1000098402996703feedf153f0000c04000009840000064c10000000000000000000080bf0000803f0000000000000000000080bfffffffff0000a040000098400384123f5fd0d93e000040c000008040000064c10000000000000000000080bf0000803f0000000000000000000080bfffffffff0000004000005c403afe4e3f3ac1cf3e000020c000009840000064c10000000000000000000080bf0000803f0000000000000000000080bfffffffff000000400000984054a24b3fc7d5d93e0000c84000008040000064c10000000000000000000080bf0000803f0000000000000000000080bfffffffff0000a04000005c402ed6103fd2bbcf3e00000c4100008040000064c10000000000000000ffff7fbf425b783f425b78be00000000000080bfffffffff0000004100005c40ab09003f1ebacf3e0000c8400000e03f000064c10000000000000000ffff7fbf425b783f425b78be00000000000080bfffffffff0000a04000000840e4d6103fd37eb13e00000c410000003f000064c10000000000000000000080bf2ef9643f2ef9e4be00000000000080bfffffffff0000004100000840d30a003fbfb0a03e00000c4100009840000064c10000000000000000000080bf0000803f0000000000000000000080bfffffffff00000041000098406609003f73ced93e00000c4100008040000064c10000000000000000000080bf0000803f0000000000000000000080bfffffffff0000004100005c40ab09003f1ebacf3e + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: 0.375, y: 2.125, z: -4.875} + m_Extent: {x: 8.375, y: 2.625, z: 9.375} + m_MeshUsageFlags: 0 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + m_MeshMetrics[0]: 1 + m_MeshMetrics[1]: 1 + m_MeshOptimizationFlags: -1 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo.unity.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo.unity.meta new file mode 100644 index 0000000..afc1cae --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 735c40e4d7967d7458e6a4db48651d2a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo/Demo Lightmap Parameters.giparams b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo/Demo Lightmap Parameters.giparams new file mode 100644 index 0000000..0d19fc2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo/Demo Lightmap Parameters.giparams @@ -0,0 +1,25 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1113 &111300000 +LightmapParameters: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Demo Lightmap Parameters + serializedVersion: 3 + resolution: 2 + clusterResolution: 0.6 + irradianceBudget: 128 + irradianceQuality: 16384 + backFaceTolerance: 0.9 + isTransparent: 0 + modellingTolerance: 0.2 + systemTag: -1 + edgeStitching: 1 + blurRadius: 2 + directLightQuality: 64 + antiAliasingSamples: 8 + bakedLightmapTag: -1 + pushoff: 0.0001 + AOQuality: 256 + AOAntiAliasingSamples: 16 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo/Demo Lightmap Parameters.giparams.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo/Demo Lightmap Parameters.giparams.meta new file mode 100644 index 0000000..d87336e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo/Demo Lightmap Parameters.giparams.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c833c6a9a24b72f40ae6e54d900acae3 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 111300000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo/GI Blocker.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo/GI Blocker.mat new file mode 100644 index 0000000..84b6c7b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo/GI Blocker.mat @@ -0,0 +1,76 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: GI Blocker + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0 + - _GlossyReflections: 1 + - _Metallic: 1 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0, g: 0, b: 0, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo/GI Blocker.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo/GI Blocker.mat.meta new file mode 100644 index 0000000..8381269 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo/GI Blocker.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f9a5ce4748e5abd4288cab387226ef27 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo/Neon Light.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo/Neon Light.mat new file mode 100644 index 0000000..521d17d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo/Neon Light.mat @@ -0,0 +1,76 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Neon Light + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 0.9019608, a: 1} + - _EmissionColor: {r: 1, g: 1, b: 0.84705883, a: 1} diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo/Neon Light.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo/Neon Light.mat.meta new file mode 100644 index 0000000..595b420 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Demo/Prototype Materials Demo/Neon Light.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b234e1586ac9f524f8162eb03da23c35 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials.meta new file mode 100644 index 0000000..2a378be --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 399cff2d68318a946838ccb784ef4c77 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP.meta new file mode 100644 index 0000000..affde01 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b57a409b80fff1b4bbfdcdafcc3e4e17 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Blue1.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Blue1.mat new file mode 100644 index 0000000..db727e5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Blue1.mat @@ -0,0 +1,360 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-117528126831297532 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Blue1 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 44cced520ecfd9f4292979a4fe8268c4, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 44cced520ecfd9f4292979a4fe8268c4, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 44cced520ecfd9f4292979a4fe8268c4, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _SampleGI: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &198753021317713938 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Blue1.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Blue1.mat.meta new file mode 100644 index 0000000..c259911 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Blue1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0faf08228432a664cb2d46f4d1eee2b0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Blue2.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Blue2.mat new file mode 100644 index 0000000..64ddfdb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Blue2.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-3316996563839529924 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Blue2 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 17198718c5735204999fb13dc36e290f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 17198718c5735204999fb13dc36e290f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 17198718c5735204999fb13dc36e290f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &401755358572647137 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Blue2.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Blue2.mat.meta new file mode 100644 index 0000000..7d34d32 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Blue2.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e070baac7ac0c374ba010641b095c1b4 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Blue3.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Blue3.mat new file mode 100644 index 0000000..c68be1f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Blue3.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Blue3 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: b6fc60785b6a795478135ce6f7712c5a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: b6fc60785b6a795478135ce6f7712c5a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: b6fc60785b6a795478135ce6f7712c5a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &405463733965869680 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!114 &4270820687507988644 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Blue3.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Blue3.mat.meta new file mode 100644 index 0000000..8396f3d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Blue3.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c90bcdf992e150d41b0ee0f7aabccad6 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Brown.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Brown.mat new file mode 100644 index 0000000..20f26a1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Brown.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-6184066117688322300 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Brown + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 3c227d230cca14c42822692b6aff3459, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 3c227d230cca14c42822692b6aff3459, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3c227d230cca14c42822692b6aff3459, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &6508449904305221272 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Brown.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Brown.mat.meta new file mode 100644 index 0000000..73b0bdf --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Brown.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bb9ba0197f6873943824ae7aade506c9 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Cyan.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Cyan.mat new file mode 100644 index 0000000..70b41e0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Cyan.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1463151046976849855 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Cyan + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 6c35396cb8128474a8a73c6b19f2fe1f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 6c35396cb8128474a8a73c6b19f2fe1f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 6c35396cb8128474a8a73c6b19f2fe1f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &818829162936331706 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Cyan.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Cyan.mat.meta new file mode 100644 index 0000000..ad202a8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Cyan.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 853d20181ae88ba47b1084b10a15569b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Green1.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Green1.mat new file mode 100644 index 0000000..02c7fed --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Green1.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-9140936037109052349 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Green1 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 4967dfcee94bddd4ba1430cb6fa1f304, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 4967dfcee94bddd4ba1430cb6fa1f304, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 4967dfcee94bddd4ba1430cb6fa1f304, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &2802043139912665072 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Green1.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Green1.mat.meta new file mode 100644 index 0000000..bdfef61 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Green1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f29b9efacb0fa1b45a6ebd5778585717 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Green2.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Green2.mat new file mode 100644 index 0000000..695eb08 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Green2.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4979246967307641232 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Green2 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 382df89af99b9f2459dd19206e68a63d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 382df89af99b9f2459dd19206e68a63d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 382df89af99b9f2459dd19206e68a63d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &6078984416387280717 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Green2.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Green2.mat.meta new file mode 100644 index 0000000..9960671 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Green2.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 35e2a03bbcc6739409a02bb46883d128 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Green3.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Green3.mat new file mode 100644 index 0000000..68f714e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Green3.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4979246967307641232 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Green3 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 988b6610bda0aca4286aff060b8d16b8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 382df89af99b9f2459dd19206e68a63d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 988b6610bda0aca4286aff060b8d16b8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &6078984416387280717 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Green3.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Green3.mat.meta new file mode 100644 index 0000000..37455f6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Green3.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8474bf551220f0e4993899dfdc95aed3 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey1.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey1.mat new file mode 100644 index 0000000..32959ee --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey1.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Grey1 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: dd29f35641da38647a1eeb1028211f1a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: dd29f35641da38647a1eeb1028211f1a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: dd29f35641da38647a1eeb1028211f1a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &1794977809289348456 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!114 &2849752495664318720 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey1.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey1.mat.meta new file mode 100644 index 0000000..419436e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 64859cf955a5fb047880af754183e463 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey2.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey2.mat new file mode 100644 index 0000000..7a8cb44 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey2.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4334575420740837081 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Grey2 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 37920ac3813690349a856bbe19a86e2b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 37920ac3813690349a856bbe19a86e2b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 37920ac3813690349a856bbe19a86e2b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &3566525884816360484 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey2.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey2.mat.meta new file mode 100644 index 0000000..23aaac3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey2.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 572218b186e96c648853f56156b07925 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey3.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey3.mat new file mode 100644 index 0000000..10c532c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey3.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1619262301482539146 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Grey3 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: d9c0dd5cdac07b145be73329e489869a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: d9c0dd5cdac07b145be73329e489869a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: d9c0dd5cdac07b145be73329e489869a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &6093370758918295864 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey3.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey3.mat.meta new file mode 100644 index 0000000..7f651fb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey3.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a66e312fee7fb6e469dec2f4daba4dcd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey4.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey4.mat new file mode 100644 index 0000000..0a57087 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey4.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-6960053972577698673 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Grey4 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: ed0c2c8a99e92e14ba740ac8aa428288, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: ed0c2c8a99e92e14ba740ac8aa428288, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: ed0c2c8a99e92e14ba740ac8aa428288, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &6326139262992099504 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey4.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey4.mat.meta new file mode 100644 index 0000000..dbf9296 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Grey4.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cd022c63e7c1c7f4e98c0083ed2bcf70 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Magenta.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Magenta.mat new file mode 100644 index 0000000..6482d83 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Magenta.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Magenta + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 81c078e07a3828a42885510e3d5369a9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: b6fc60785b6a795478135ce6f7712c5a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 81c078e07a3828a42885510e3d5369a9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &405463733965869680 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!114 &4270820687507988644 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Magenta.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Magenta.mat.meta new file mode 100644 index 0000000..9553580 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Magenta.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4f8daeaadc7b77c42b2004245caa7f63 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Olive.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Olive.mat new file mode 100644 index 0000000..7596085 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Olive.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4979246967307641232 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Olive + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 9895b9b639c999f488492b5182e2242c, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 382df89af99b9f2459dd19206e68a63d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 9895b9b639c999f488492b5182e2242c, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &6078984416387280717 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Olive.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Olive.mat.meta new file mode 100644 index 0000000..c63439e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Olive.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a3b40d06620734d4fa8f4423d0f09692 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Orange.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Orange.mat new file mode 100644 index 0000000..20a6532 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Orange.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7043737816000637832 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!114 &-5993627902651352250 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Orange + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: fe3e0a556829be24bb87c912d79e872d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: fe3e0a556829be24bb87c912d79e872d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: fe3e0a556829be24bb87c912d79e872d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Orange.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Orange.mat.meta new file mode 100644 index 0000000..331e768 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Orange.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7e6b6a154cd59634b8e06a92e338ba2c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Pink.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Pink.mat new file mode 100644 index 0000000..4223d26 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Pink.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7887750440273316491 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!114 &-6650882337939974940 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Pink + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 054e32e11095e1d4896131bb4eed8cc1, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: ee12d2bc9f5c8554d97d5beb9dc4b275, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 054e32e11095e1d4896131bb4eed8cc1, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Pink.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Pink.mat.meta new file mode 100644 index 0000000..2024c57 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Pink.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9cbe122d0bf53f14ba269e044bc3f03b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Purple.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Purple.mat new file mode 100644 index 0000000..45aeb40 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Purple.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-6631285973008607186 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!114 &-3574224795644339735 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Purple + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: aa0c741df9dd8634c8d84fd9ba2b0e3d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: aa0c741df9dd8634c8d84fd9ba2b0e3d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: aa0c741df9dd8634c8d84fd9ba2b0e3d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Purple.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Purple.mat.meta new file mode 100644 index 0000000..93e7b4f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Purple.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 08ad40672f8bdd84c8231727ae06ba48 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Red.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Red.mat new file mode 100644 index 0000000..45d1e8d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Red.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Red + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 3d6064e2e1cd7214e9f67f3a68f494fb, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 3d6064e2e1cd7214e9f67f3a68f494fb, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d6064e2e1cd7214e9f67f3a68f494fb, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &4785242104535983485 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!114 &7282580934660746523 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Red.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Red.mat.meta new file mode 100644 index 0000000..dca36aa --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Red.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c61a55dba6ed64c4f8e865f32677062f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_White.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_White.mat new file mode 100644 index 0000000..37e4890 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_White.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1827427509989235299 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_White + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 9397418d1d7b12543bf27fb61b93bbea, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 9397418d1d7b12543bf27fb61b93bbea, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 9397418d1d7b12543bf27fb61b93bbea, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &8042599487693452414 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_White.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_White.mat.meta new file mode 100644 index 0000000..6ed7bf0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_White.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f904fac889ccd8d42b60ac1c11dc5f91 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Yellow.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Yellow.mat new file mode 100644 index 0000000..6a8ae0b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Yellow.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7887750440273316491 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!114 &-6650882337939974940 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Yellow + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: ee12d2bc9f5c8554d97d5beb9dc4b275, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: ee12d2bc9f5c8554d97d5beb9dc4b275, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: ee12d2bc9f5c8554d97d5beb9dc4b275, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Yellow.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Yellow.mat.meta new file mode 100644 index 0000000..0a1f0d6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/HDRP/Prototype_512x512_Yellow.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dd66d467961812f4383351e477499b93 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard.meta new file mode 100644 index 0000000..cb9537e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5b101da68e9261049841c73c48f7a8d9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Blue1.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Blue1.mat new file mode 100644 index 0000000..afa7a8a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Blue1.mat @@ -0,0 +1,360 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-117528126831297532 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Blue1 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 44cced520ecfd9f4292979a4fe8268c4, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 44cced520ecfd9f4292979a4fe8268c4, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 44cced520ecfd9f4292979a4fe8268c4, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _SampleGI: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &198753021317713938 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Blue1.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Blue1.mat.meta new file mode 100644 index 0000000..32e8fee --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Blue1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 663834164c6a04740aaa1b778249ce7e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Blue2.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Blue2.mat new file mode 100644 index 0000000..c48e985 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Blue2.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-3316996563839529924 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Blue2 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 17198718c5735204999fb13dc36e290f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 17198718c5735204999fb13dc36e290f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 17198718c5735204999fb13dc36e290f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &401755358572647137 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Blue2.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Blue2.mat.meta new file mode 100644 index 0000000..0b9d33b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Blue2.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5e148de6cdf2d164aa3e3f90ce8c852c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Blue3.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Blue3.mat new file mode 100644 index 0000000..d45fcbe --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Blue3.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Blue3 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: b6fc60785b6a795478135ce6f7712c5a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: b6fc60785b6a795478135ce6f7712c5a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: b6fc60785b6a795478135ce6f7712c5a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &405463733965869680 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!114 &4270820687507988644 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Blue3.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Blue3.mat.meta new file mode 100644 index 0000000..cc98c8b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Blue3.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b0b4de3bd6e976e4f8b3adc6e72377ed +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Brown.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Brown.mat new file mode 100644 index 0000000..eeab9df --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Brown.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-6184066117688322300 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Brown + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 3c227d230cca14c42822692b6aff3459, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 3c227d230cca14c42822692b6aff3459, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3c227d230cca14c42822692b6aff3459, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &6508449904305221272 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Brown.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Brown.mat.meta new file mode 100644 index 0000000..bc5fbe0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Brown.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a54b7ad866d3a9b47bbf3b53baa0acc4 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Cyan.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Cyan.mat new file mode 100644 index 0000000..ce865d5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Cyan.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1463151046976849855 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Cyan + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 6c35396cb8128474a8a73c6b19f2fe1f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 6c35396cb8128474a8a73c6b19f2fe1f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 6c35396cb8128474a8a73c6b19f2fe1f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &818829162936331706 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Cyan.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Cyan.mat.meta new file mode 100644 index 0000000..2b92874 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Cyan.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cba66c276aed0874091de1c33eb3950d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Green1.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Green1.mat new file mode 100644 index 0000000..17f05f9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Green1.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-9140936037109052349 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Green1 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 4967dfcee94bddd4ba1430cb6fa1f304, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 4967dfcee94bddd4ba1430cb6fa1f304, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 4967dfcee94bddd4ba1430cb6fa1f304, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &2802043139912665072 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Green1.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Green1.mat.meta new file mode 100644 index 0000000..9584564 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Green1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 79f64ed6f5d6d374d91c3a0af4070258 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Green2.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Green2.mat new file mode 100644 index 0000000..2ded3e7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Green2.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4979246967307641232 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Green2 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 382df89af99b9f2459dd19206e68a63d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 382df89af99b9f2459dd19206e68a63d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 382df89af99b9f2459dd19206e68a63d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &6078984416387280717 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Green2.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Green2.mat.meta new file mode 100644 index 0000000..4a32b07 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Green2.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dbe80190c9adea34c8c8845ca4a17934 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Green3.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Green3.mat new file mode 100644 index 0000000..66dc195 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Green3.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4979246967307641232 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Green3 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 988b6610bda0aca4286aff060b8d16b8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 382df89af99b9f2459dd19206e68a63d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 988b6610bda0aca4286aff060b8d16b8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &6078984416387280717 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Green3.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Green3.mat.meta new file mode 100644 index 0000000..b0ca302 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Green3.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f6298605825d7154f8923c76872aa46e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey1.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey1.mat new file mode 100644 index 0000000..54de235 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey1.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Grey1 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: dd29f35641da38647a1eeb1028211f1a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: dd29f35641da38647a1eeb1028211f1a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: dd29f35641da38647a1eeb1028211f1a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &1794977809289348456 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!114 &2849752495664318720 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey1.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey1.mat.meta new file mode 100644 index 0000000..8a1eaf4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c181c23a6120fbe4aadd5bb53a58dd78 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey2.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey2.mat new file mode 100644 index 0000000..627867f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey2.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4334575420740837081 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Grey2 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 37920ac3813690349a856bbe19a86e2b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 37920ac3813690349a856bbe19a86e2b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 37920ac3813690349a856bbe19a86e2b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &3566525884816360484 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey2.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey2.mat.meta new file mode 100644 index 0000000..906a6b3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey2.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 07dc66ae04b7f6a43b9674bf0fefb33a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey3.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey3.mat new file mode 100644 index 0000000..1c6f395 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey3.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1619262301482539146 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Grey3 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: d9c0dd5cdac07b145be73329e489869a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: d9c0dd5cdac07b145be73329e489869a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: d9c0dd5cdac07b145be73329e489869a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &6093370758918295864 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey3.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey3.mat.meta new file mode 100644 index 0000000..c4919ac --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey3.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 17c44fb3e5be9644586a0728a5f5a386 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey4.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey4.mat new file mode 100644 index 0000000..4dcb0fd --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey4.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-6960053972577698673 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Grey4 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: ed0c2c8a99e92e14ba740ac8aa428288, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: ed0c2c8a99e92e14ba740ac8aa428288, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: ed0c2c8a99e92e14ba740ac8aa428288, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &6326139262992099504 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey4.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey4.mat.meta new file mode 100644 index 0000000..0a3ed5c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Grey4.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8d530ffe6c4968843806085897955b9d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Magenta.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Magenta.mat new file mode 100644 index 0000000..5743c0a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Magenta.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Magenta + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 81c078e07a3828a42885510e3d5369a9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: b6fc60785b6a795478135ce6f7712c5a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 81c078e07a3828a42885510e3d5369a9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &405463733965869680 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!114 &4270820687507988644 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Magenta.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Magenta.mat.meta new file mode 100644 index 0000000..0696edc --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Magenta.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4b905f60df09c8245b6e0d5af2e04c7f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Olive.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Olive.mat new file mode 100644 index 0000000..fb0dbe1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Olive.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4979246967307641232 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Olive + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 9895b9b639c999f488492b5182e2242c, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 382df89af99b9f2459dd19206e68a63d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 9895b9b639c999f488492b5182e2242c, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &6078984416387280717 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Olive.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Olive.mat.meta new file mode 100644 index 0000000..6683c2b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Olive.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f794c8451763f354c84ed1f9b0ea15a5 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Orange.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Orange.mat new file mode 100644 index 0000000..24422d7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Orange.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7043737816000637832 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!114 &-5993627902651352250 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Orange + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: fe3e0a556829be24bb87c912d79e872d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: fe3e0a556829be24bb87c912d79e872d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: fe3e0a556829be24bb87c912d79e872d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Orange.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Orange.mat.meta new file mode 100644 index 0000000..7fbccd8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Orange.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 652107f36a28e44479c0b827dee5852a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Pink.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Pink.mat new file mode 100644 index 0000000..2f6e6ed --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Pink.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7887750440273316491 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!114 &-6650882337939974940 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Pink + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 054e32e11095e1d4896131bb4eed8cc1, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: ee12d2bc9f5c8554d97d5beb9dc4b275, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 054e32e11095e1d4896131bb4eed8cc1, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Pink.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Pink.mat.meta new file mode 100644 index 0000000..c3401d8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Pink.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4944e2c33c99f9f46a4796e2e746213e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Purple.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Purple.mat new file mode 100644 index 0000000..38cd76e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Purple.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-6631285973008607186 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!114 &-3574224795644339735 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Purple + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: aa0c741df9dd8634c8d84fd9ba2b0e3d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: aa0c741df9dd8634c8d84fd9ba2b0e3d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: aa0c741df9dd8634c8d84fd9ba2b0e3d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Purple.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Purple.mat.meta new file mode 100644 index 0000000..bcf85ea --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Purple.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 36bce9ab6cae8ce43962938466458044 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Red.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Red.mat new file mode 100644 index 0000000..6bb47fe --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Red.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Red + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 3d6064e2e1cd7214e9f67f3a68f494fb, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 3d6064e2e1cd7214e9f67f3a68f494fb, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d6064e2e1cd7214e9f67f3a68f494fb, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &4785242104535983485 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!114 &7282580934660746523 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Red.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Red.mat.meta new file mode 100644 index 0000000..2fd3943 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Red.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5a26de236ce89e94b963be8fa2b7ade6 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_White.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_White.mat new file mode 100644 index 0000000..03c8042 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_White.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1827427509989235299 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_White + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 9397418d1d7b12543bf27fb61b93bbea, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 9397418d1d7b12543bf27fb61b93bbea, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 9397418d1d7b12543bf27fb61b93bbea, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &8042599487693452414 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_White.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_White.mat.meta new file mode 100644 index 0000000..4af3fca --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_White.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aeee7071bea0a4c478b4fea5933c5f79 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Yellow.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Yellow.mat new file mode 100644 index 0000000..ecb7ca1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Yellow.mat @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7887750440273316491 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!114 &-6650882337939974940 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Yellow + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _NORMALMAP _NORMALMAP_TANGENT_SPACE + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: ee12d2bc9f5c8554d97d5beb9dc4b275, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: ee12d2bc9f5c8554d97d5beb9dc4b275, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: ee12d2bc9f5c8554d97d5beb9dc4b275, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Yellow.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Yellow.mat.meta new file mode 100644 index 0000000..76c9f9b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/Standard/Prototype_512x512_Yellow.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c852af001dae0064e9acaa832f1dadb7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP.meta new file mode 100644 index 0000000..4520d4d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b91c06905b658c2469418c86f7fbe9f3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Blue1.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Blue1.mat new file mode 100644 index 0000000..6995021 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Blue1.mat @@ -0,0 +1,363 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-117528126831297532 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Blue1 + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 44cced520ecfd9f4292979a4fe8268c4, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 44cced520ecfd9f4292979a4fe8268c4, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 44cced520ecfd9f4292979a4fe8268c4, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoMapScale: 1 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _SampleGI: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &198753021317713938 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Blue1.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Blue1.mat.meta new file mode 100644 index 0000000..9a889ae --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Blue1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0f29e3c1c576f6641b9e474f6b194480 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Blue2.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Blue2.mat new file mode 100644 index 0000000..20cfd84 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Blue2.mat @@ -0,0 +1,362 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-3316996563839529924 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Blue2 + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 17198718c5735204999fb13dc36e290f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 17198718c5735204999fb13dc36e290f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 17198718c5735204999fb13dc36e290f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoMapScale: 1 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &401755358572647137 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Blue2.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Blue2.mat.meta new file mode 100644 index 0000000..96573f0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Blue2.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e18ded4b611aa8f4a9f0f261d2f29537 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Blue3.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Blue3.mat new file mode 100644 index 0000000..08a9af9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Blue3.mat @@ -0,0 +1,362 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Blue3 + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: b6fc60785b6a795478135ce6f7712c5a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: b6fc60785b6a795478135ce6f7712c5a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: b6fc60785b6a795478135ce6f7712c5a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoMapScale: 1 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &405463733965869680 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!114 &4270820687507988644 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Blue3.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Blue3.mat.meta new file mode 100644 index 0000000..4b2a467 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Blue3.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f5ffb23c71776424f8f776c97d3fd190 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Brown.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Brown.mat new file mode 100644 index 0000000..4b3e596 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Brown.mat @@ -0,0 +1,362 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-6184066117688322300 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Brown + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 3c227d230cca14c42822692b6aff3459, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 3c227d230cca14c42822692b6aff3459, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3c227d230cca14c42822692b6aff3459, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoMapScale: 1 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &6508449904305221272 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Brown.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Brown.mat.meta new file mode 100644 index 0000000..0bc4fc9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Brown.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9f74a13152dad544abedc7538eb3182c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Cyan.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Cyan.mat new file mode 100644 index 0000000..1411529 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Cyan.mat @@ -0,0 +1,362 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1463151046976849855 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Cyan + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 6c35396cb8128474a8a73c6b19f2fe1f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 6c35396cb8128474a8a73c6b19f2fe1f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 6c35396cb8128474a8a73c6b19f2fe1f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoMapScale: 1 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &818829162936331706 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Cyan.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Cyan.mat.meta new file mode 100644 index 0000000..a079251 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Cyan.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3d9914e92c1db3f4caed885c92e0b7e9 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Green1.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Green1.mat new file mode 100644 index 0000000..0ac141f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Green1.mat @@ -0,0 +1,362 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-9140936037109052349 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Green1 + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 4967dfcee94bddd4ba1430cb6fa1f304, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 4967dfcee94bddd4ba1430cb6fa1f304, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 4967dfcee94bddd4ba1430cb6fa1f304, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoMapScale: 1 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &2802043139912665072 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Green1.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Green1.mat.meta new file mode 100644 index 0000000..736f465 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Green1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 74117f645ca87544896e430b75e9a316 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Green2.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Green2.mat new file mode 100644 index 0000000..13e2a4f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Green2.mat @@ -0,0 +1,362 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4979246967307641232 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Green2 + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 382df89af99b9f2459dd19206e68a63d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 382df89af99b9f2459dd19206e68a63d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 382df89af99b9f2459dd19206e68a63d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoMapScale: 1 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &6078984416387280717 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Green2.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Green2.mat.meta new file mode 100644 index 0000000..45ba94b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Green2.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6b38742730e330c488cc8d7964788813 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Green3.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Green3.mat new file mode 100644 index 0000000..ab72049 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Green3.mat @@ -0,0 +1,362 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4979246967307641232 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Green3 + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 988b6610bda0aca4286aff060b8d16b8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 382df89af99b9f2459dd19206e68a63d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 382df89af99b9f2459dd19206e68a63d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoMapScale: 1 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &6078984416387280717 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Green3.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Green3.mat.meta new file mode 100644 index 0000000..f4a6b9b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Green3.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bce32739db90b6843ac7f0179bcaa6b7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey1.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey1.mat new file mode 100644 index 0000000..caa0106 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey1.mat @@ -0,0 +1,362 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Grey1 + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: dd29f35641da38647a1eeb1028211f1a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: dd29f35641da38647a1eeb1028211f1a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: dd29f35641da38647a1eeb1028211f1a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoMapScale: 1 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &1794977809289348456 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!114 &2849752495664318720 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey1.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey1.mat.meta new file mode 100644 index 0000000..85e9df5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dfc08c90188302847afb04f628582097 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey2.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey2.mat new file mode 100644 index 0000000..77423f2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey2.mat @@ -0,0 +1,362 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4334575420740837081 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Grey2 + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 37920ac3813690349a856bbe19a86e2b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 37920ac3813690349a856bbe19a86e2b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 37920ac3813690349a856bbe19a86e2b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoMapScale: 1 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &3566525884816360484 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey2.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey2.mat.meta new file mode 100644 index 0000000..f6b71bb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey2.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9fe0a856a63e8634ebc7077bc570ea68 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey3.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey3.mat new file mode 100644 index 0000000..be1e7a1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey3.mat @@ -0,0 +1,362 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1619262301482539146 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Grey3 + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: d9c0dd5cdac07b145be73329e489869a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: d9c0dd5cdac07b145be73329e489869a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: d9c0dd5cdac07b145be73329e489869a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoMapScale: 1 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &6093370758918295864 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey3.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey3.mat.meta new file mode 100644 index 0000000..df7dbab --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey3.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 981abf7a53e6a964fba6bc48555ec31a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey4.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey4.mat new file mode 100644 index 0000000..dcbdead --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey4.mat @@ -0,0 +1,362 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-6960053972577698673 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Grey4 + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: ed0c2c8a99e92e14ba740ac8aa428288, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: ed0c2c8a99e92e14ba740ac8aa428288, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: ed0c2c8a99e92e14ba740ac8aa428288, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoMapScale: 1 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &6326139262992099504 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey4.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey4.mat.meta new file mode 100644 index 0000000..5bc7e73 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Grey4.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4084a843b9ef6af45a63b7163f9fbefb +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Magenta.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Magenta.mat new file mode 100644 index 0000000..e5b4922 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Magenta.mat @@ -0,0 +1,362 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Magenta + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 81c078e07a3828a42885510e3d5369a9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: b6fc60785b6a795478135ce6f7712c5a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 81c078e07a3828a42885510e3d5369a9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoMapScale: 1 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &405463733965869680 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!114 &4270820687507988644 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Magenta.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Magenta.mat.meta new file mode 100644 index 0000000..cf831f1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Magenta.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9618c6b42230db7408b3b734da21470a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Olive.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Olive.mat new file mode 100644 index 0000000..7b0978f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Olive.mat @@ -0,0 +1,362 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4979246967307641232 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Olive + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 9895b9b639c999f488492b5182e2242c, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 382df89af99b9f2459dd19206e68a63d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 382df89af99b9f2459dd19206e68a63d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoMapScale: 1 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &6078984416387280717 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Olive.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Olive.mat.meta new file mode 100644 index 0000000..0e361ec --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Olive.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8521b32b7fcd7ae41acc48012ada9ec0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Orange.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Orange.mat new file mode 100644 index 0000000..e139893 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Orange.mat @@ -0,0 +1,362 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7043737816000637832 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!114 &-5993627902651352250 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Orange + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: fe3e0a556829be24bb87c912d79e872d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: fe3e0a556829be24bb87c912d79e872d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: fe3e0a556829be24bb87c912d79e872d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoMapScale: 1 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Orange.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Orange.mat.meta new file mode 100644 index 0000000..e08c9ec --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Orange.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d1a5903867c8f0a4a8a94c3fe36dad11 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Pink.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Pink.mat new file mode 100644 index 0000000..d0aadd2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Pink.mat @@ -0,0 +1,362 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7887750440273316491 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!114 &-6650882337939974940 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Pink + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 054e32e11095e1d4896131bb4eed8cc1, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: ee12d2bc9f5c8554d97d5beb9dc4b275, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: ee12d2bc9f5c8554d97d5beb9dc4b275, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoMapScale: 1 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Pink.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Pink.mat.meta new file mode 100644 index 0000000..9b7faa8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Pink.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5e88a93148f69984e968ecc92408960f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Purple.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Purple.mat new file mode 100644 index 0000000..ee521a0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Purple.mat @@ -0,0 +1,362 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-6631285973008607186 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!114 &-3574224795644339735 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Purple + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: aa0c741df9dd8634c8d84fd9ba2b0e3d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: aa0c741df9dd8634c8d84fd9ba2b0e3d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: aa0c741df9dd8634c8d84fd9ba2b0e3d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoMapScale: 1 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Purple.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Purple.mat.meta new file mode 100644 index 0000000..ef3475a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Purple.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 68d9464d0cd4fbf48a81abf378167c7f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Red.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Red.mat new file mode 100644 index 0000000..712a58f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Red.mat @@ -0,0 +1,362 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Red + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 3d6064e2e1cd7214e9f67f3a68f494fb, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 3d6064e2e1cd7214e9f67f3a68f494fb, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d6064e2e1cd7214e9f67f3a68f494fb, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoMapScale: 1 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &4785242104535983485 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!114 &7282580934660746523 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Red.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Red.mat.meta new file mode 100644 index 0000000..c56743b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Red.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a4b62a69d54e80347bd546999c6d4b9e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_White.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_White.mat new file mode 100644 index 0000000..46c6965 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_White.mat @@ -0,0 +1,362 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1827427509989235299 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_White + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: 9397418d1d7b12543bf27fb61b93bbea, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 9397418d1d7b12543bf27fb61b93bbea, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 9397418d1d7b12543bf27fb61b93bbea, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoMapScale: 1 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &8042599487693452414 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_White.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_White.mat.meta new file mode 100644 index 0000000..077c87d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_White.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2ab8149ec4775284bada96c1b85b4a09 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Yellow.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Yellow.mat new file mode 100644 index 0000000..dbba38c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Yellow.mat @@ -0,0 +1,362 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7887750440273316491 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 +--- !u!114 &-6650882337939974940 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 11 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Prototype_512x512_Yellow + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 2800000, guid: ee12d2bc9f5c8554d97d5beb9dc4b275, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: ee12d2bc9f5c8554d97d5beb9dc4b275, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: ee12d2bc9f5c8554d97d5beb9dc4b275, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: 44ae09ed76086b14e82d37feb30c7650, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _Blend: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CoatMask: 0 + - _Cull: 2 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoMapScale: 1 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0 + - _MetallicRemapMax: 0 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _RayTracing: 0 + - _ReceiveShadows: 1 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _SSRefractionProjectionModel: 0 + - _Shininess: 0 + - _Smoothness: 0 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SmoothnessSource: 1 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 0 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 14 + - _StencilWriteMaskMV: 40 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _Surface: 0 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _WorkflowMode: 1 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 0} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Yellow.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Yellow.mat.meta new file mode 100644 index 0000000..7aae997 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/URP/Prototype_512x512_Yellow.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d76d5dba59c8a824a8170635648a356c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_blue1.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_blue1.mat new file mode 100644 index 0000000..0986ac1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_blue1.mat @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: prototype_512x512_blue1 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 2, y: 2} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 20, y: 20} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 44cced520ecfd9f4292979a4fe8268c4, type: 3} + m_Scale: {x: 20, y: 20} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_blue1.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_blue1.mat.meta new file mode 100644 index 0000000..b226641 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_blue1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 671d6cf81dceb1d48891b9bd1c6b4493 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_blue2.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_blue2.mat new file mode 100644 index 0000000..0f17d9a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_blue2.mat @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: prototype_512x512_blue2 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 17198718c5735204999fb13dc36e290f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_blue2.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_blue2.mat.meta new file mode 100644 index 0000000..945e6dc --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_blue2.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6a13cd74488ee2a47a08cfbaacf1a148 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_blue3.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_blue3.mat new file mode 100644 index 0000000..a099423 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_blue3.mat @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: prototype_512x512_blue3 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 100, y: 100} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: b6fc60785b6a795478135ce6f7712c5a, type: 3} + m_Scale: {x: 100, y: 100} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_blue3.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_blue3.mat.meta new file mode 100644 index 0000000..007dbfa --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_blue3.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 252e5cac7f0c5a440b896aff10da8c72 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_brown.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_brown.mat new file mode 100644 index 0000000..a6ce6d2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_brown.mat @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: prototype_512x512_brown + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3c227d230cca14c42822692b6aff3459, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_brown.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_brown.mat.meta new file mode 100644 index 0000000..a451085 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_brown.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3928c4c05b9a70849a7be5a0278b3e3d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_grey1.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_grey1.mat new file mode 100644 index 0000000..bf758d9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_grey1.mat @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: prototype_512x512_grey1 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: dd29f35641da38647a1eeb1028211f1a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_grey1.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_grey1.mat.meta new file mode 100644 index 0000000..8492ac8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_grey1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e099c83203c6cab48b66c23156c42ce8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_white.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_white.mat new file mode 100644 index 0000000..9d5bf18 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_white.mat @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: prototype_512x512_white + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 9397418d1d7b12543bf27fb61b93bbea, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_white.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_white.mat.meta new file mode 100644 index 0000000..d92bc4b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_white.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e7fec641232aada4b9419c7ece6a7203 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_yellow.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_yellow.mat new file mode 100644 index 0000000..0e5ca40 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_yellow.mat @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: prototype_512x512_yellow + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: ee12d2bc9f5c8554d97d5beb9dc4b275, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_yellow.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_yellow.mat.meta new file mode 100644 index 0000000..af45c60 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Materials/prototype_512x512_yellow.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 000bfee73cbc81f49a85a2df2c5b87b2 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Template.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Template.meta new file mode 100644 index 0000000..0f5bdf2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Template.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5ecfd7a8edc56334292dfde855949879 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Template/Materials.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Template/Materials.meta new file mode 100644 index 0000000..42cd16a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Template/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 53ecf4cd5104bd748bf488666324086e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Template/Materials/prototype_texture_512x512.mat b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Template/Materials/prototype_texture_512x512.mat new file mode 100644 index 0000000..e30ac2a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Template/Materials/prototype_texture_512x512.mat @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: prototype_texture_512x512 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3fe239e19d10e284cb9bb5a748ecb82e, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Template/Materials/prototype_texture_512x512.mat.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Template/Materials/prototype_texture_512x512.mat.meta new file mode 100644 index 0000000..12d50fd --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Template/Materials/prototype_texture_512x512.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9a2247e479959834f852a96e453d7b5d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Template/prototype_texture_512x512.psd b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Template/prototype_texture_512x512.psd new file mode 100644 index 0000000..6da2dba Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Template/prototype_texture_512x512.psd differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Template/prototype_texture_512x512.psd.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Template/prototype_texture_512x512.psd.meta new file mode 100644 index 0000000..1eb1c70 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Template/prototype_texture_512x512.psd.meta @@ -0,0 +1,96 @@ +fileFormatVersion: 2 +guid: 3fe239e19d10e284cb9bb5a748ecb82e +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures.meta new file mode 100644 index 0000000..c097dae --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c40ab282904050149a8f559c4a28bc5d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_blue1.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_blue1.png new file mode 100644 index 0000000..e93e044 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_blue1.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_blue1.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_blue1.png.meta new file mode 100644 index 0000000..6dab901 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_blue1.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 44cced520ecfd9f4292979a4fe8268c4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_blue2.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_blue2.png new file mode 100644 index 0000000..398c702 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_blue2.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_blue2.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_blue2.png.meta new file mode 100644 index 0000000..ce57958 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_blue2.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 17198718c5735204999fb13dc36e290f +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_blue3.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_blue3.png new file mode 100644 index 0000000..8a10ef1 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_blue3.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_blue3.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_blue3.png.meta new file mode 100644 index 0000000..84fd1e6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_blue3.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: b6fc60785b6a795478135ce6f7712c5a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_brown.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_brown.png new file mode 100644 index 0000000..faa1582 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_brown.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_brown.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_brown.png.meta new file mode 100644 index 0000000..0bdf3bb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_brown.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 3c227d230cca14c42822692b6aff3459 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_cyan.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_cyan.png new file mode 100644 index 0000000..f46f202 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_cyan.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_cyan.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_cyan.png.meta new file mode 100644 index 0000000..80105a0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_cyan.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 6c35396cb8128474a8a73c6b19f2fe1f +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_green1.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_green1.png new file mode 100644 index 0000000..f83f216 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_green1.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_green1.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_green1.png.meta new file mode 100644 index 0000000..66ba3d1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_green1.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 4967dfcee94bddd4ba1430cb6fa1f304 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_green2.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_green2.png new file mode 100644 index 0000000..ec4f1fe Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_green2.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_green2.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_green2.png.meta new file mode 100644 index 0000000..40e59e2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_green2.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 382df89af99b9f2459dd19206e68a63d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_green3.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_green3.png new file mode 100644 index 0000000..39534b6 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_green3.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_green3.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_green3.png.meta new file mode 100644 index 0000000..db1c775 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_green3.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 988b6610bda0aca4286aff060b8d16b8 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey1.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey1.png new file mode 100644 index 0000000..dd06d3c Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey1.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey1.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey1.png.meta new file mode 100644 index 0000000..01b0edb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey1.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: dd29f35641da38647a1eeb1028211f1a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey2.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey2.png new file mode 100644 index 0000000..c9e380a Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey2.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey2.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey2.png.meta new file mode 100644 index 0000000..e6f6fb3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey2.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 37920ac3813690349a856bbe19a86e2b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey3.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey3.png new file mode 100644 index 0000000..cceee74 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey3.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey3.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey3.png.meta new file mode 100644 index 0000000..bb98254 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey3.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: d9c0dd5cdac07b145be73329e489869a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey4.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey4.png new file mode 100644 index 0000000..61a15ae Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey4.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey4.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey4.png.meta new file mode 100644 index 0000000..b1cdc89 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_grey4.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: ed0c2c8a99e92e14ba740ac8aa428288 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_magenta.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_magenta.png new file mode 100644 index 0000000..65ab1ce Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_magenta.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_magenta.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_magenta.png.meta new file mode 100644 index 0000000..fd7dc54 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_magenta.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 81c078e07a3828a42885510e3d5369a9 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_normal.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_normal.png new file mode 100644 index 0000000..4558d70 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_normal.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_normal.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_normal.png.meta new file mode 100644 index 0000000..6f6dc18 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_normal.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 44ae09ed76086b14e82d37feb30c7650 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_olive.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_olive.png new file mode 100644 index 0000000..bdf476c Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_olive.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_olive.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_olive.png.meta new file mode 100644 index 0000000..8c5cce9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_olive.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 9895b9b639c999f488492b5182e2242c +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_orange.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_orange.png new file mode 100644 index 0000000..6ae0986 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_orange.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_orange.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_orange.png.meta new file mode 100644 index 0000000..0c27abe --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_orange.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: fe3e0a556829be24bb87c912d79e872d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_pink.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_pink.png new file mode 100644 index 0000000..8733887 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_pink.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_pink.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_pink.png.meta new file mode 100644 index 0000000..1fc254e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_pink.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 054e32e11095e1d4896131bb4eed8cc1 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_purple.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_purple.png new file mode 100644 index 0000000..13b7182 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_purple.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_purple.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_purple.png.meta new file mode 100644 index 0000000..4439840 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_purple.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: aa0c741df9dd8634c8d84fd9ba2b0e3d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_red.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_red.png new file mode 100644 index 0000000..9e4a710 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_red.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_red.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_red.png.meta new file mode 100644 index 0000000..018df6b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_red.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 3d6064e2e1cd7214e9f67f3a68f494fb +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_white.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_white.png new file mode 100644 index 0000000..2c3ad6b Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_white.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_white.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_white.png.meta new file mode 100644 index 0000000..19bc1ee --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_white.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 9397418d1d7b12543bf27fb61b93bbea +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_yellow.png b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_yellow.png new file mode 100644 index 0000000..c52d70b Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_yellow.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_yellow.png.meta b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_yellow.png.meta new file mode 100644 index 0000000..62b9e01 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Gridbox Prototype Materials/Textures/prototype_512x512_yellow.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: ee12d2bc9f5c8554d97d5beb9dc4b275 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Img.meta b/Aimbot-PPO-MultiScene/Assets/Img.meta new file mode 100644 index 0000000..02e5de6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Img.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5d08d6949cb2f544194063092153ceb0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Img/Crosshair.meta b/Aimbot-PPO-MultiScene/Assets/Img/Crosshair.meta new file mode 100644 index 0000000..3b74256 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Img/Crosshair.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 51113d736c01d294a9369ba3fdf72322 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Img/Crosshair/Crosshair-Point-Red.png b/Aimbot-PPO-MultiScene/Assets/Img/Crosshair/Crosshair-Point-Red.png new file mode 100644 index 0000000..4a77e5c Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Img/Crosshair/Crosshair-Point-Red.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Img/Crosshair/Crosshair-Point-Red.png.meta b/Aimbot-PPO-MultiScene/Assets/Img/Crosshair/Crosshair-Point-Red.png.meta new file mode 100644 index 0000000..807ec1d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Img/Crosshair/Crosshair-Point-Red.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 50a3ac7eee070fd44ab2021a86a5284c +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Img/Crosshair/Crosshair-Point.png b/Aimbot-PPO-MultiScene/Assets/Img/Crosshair/Crosshair-Point.png new file mode 100644 index 0000000..99cbcfb Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Img/Crosshair/Crosshair-Point.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Img/Crosshair/Crosshair-Point.png.meta b/Aimbot-PPO-MultiScene/Assets/Img/Crosshair/Crosshair-Point.png.meta new file mode 100644 index 0000000..3fa805e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Img/Crosshair/Crosshair-Point.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 65609a1664b485c45b3faabd44c5d5d0 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Img/Green.png b/Aimbot-PPO-MultiScene/Assets/Img/Green.png new file mode 100644 index 0000000..ce2fe4b Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/Img/Green.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/Img/Green.png.meta b/Aimbot-PPO-MultiScene/Assets/Img/Green.png.meta new file mode 100644 index 0000000..3483ee4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Img/Green.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 6e45334af48d8be41bc466a250835d44 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/ML-Agents.meta b/Aimbot-PPO-MultiScene/Assets/ML-Agents.meta new file mode 100644 index 0000000..c8af772 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/ML-Agents.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9f14312a979b4b44aab8e97b3a5bc764 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers.meta b/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers.meta new file mode 100644 index 0000000..e30c0b5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9be91195140bdcf469b1fc064c131f3c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers/InGame_timers.json b/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers/InGame_timers.json new file mode 100644 index 0000000..3906fd0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers/InGame_timers.json @@ -0,0 +1 @@ +{"count":1,"self":16.1291616,"total":16.1316623,"children":{"InitializeActuators":{"count":2,"self":0.0010018,"total":0.0010018,"children":null},"InitializeSensors":{"count":2,"self":0.001,"total":0.001,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1662370082","unity_version":"2020.3.19f1","command_line_arguments":"C:\\Program Files\\Unity\\Hub\\Editor\\2020.3.19f1\\Editor\\Unity.exe -projectpath C:\\Users\\UCUNI\\OneDrive\\Unity\\ML-Agents\\Aimbot-PPO-MultiScene -useHub -hubIPC -cloudEnvironment production -licensingIpc LicenseClient-UCUNI -hubSessionId 209fdf30-2c1f-11ed-916f-33e85f4223cc -accessToken 3CjC0epfWRwxG_KrVpNvr61CG1zT0gOQYZxf1vrmOrM00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.0","scene_name":"InGame","end_time_seconds":"1662370098"}} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers/InGame_timers.json.meta b/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers/InGame_timers.json.meta new file mode 100644 index 0000000..d39769f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers/InGame_timers.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4f7b611877dd89845bf9e100b3887d5e +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers/SampleScene_timers.json b/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers/SampleScene_timers.json new file mode 100644 index 0000000..934d1f0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers/SampleScene_timers.json @@ -0,0 +1 @@ +{"count":1,"self":43.4436928,"total":43.9858769,"children":{"InitializeActuators":{"count":2,"self":0.0010007,"total":0.0010007,"children":null},"InitializeSensors":{"count":2,"self":0.0010000999999999999,"total":0.0010000999999999999,"children":null},"AgentSendState":{"count":1889,"self":0.0119998,"total":0.031002699999999998,"children":{"CollectObservations":{"count":1889,"self":0.012502599999999999,"total":0.012502599999999999,"children":null},"WriteActionMask":{"count":1889,"self":0.0019998999999999998,"total":0.0019998999999999998,"children":null},"RequestDecision":{"count":1889,"self":0.0045004,"total":0.0045004,"children":null}}},"DecideAction":{"count":1889,"self":0.0190076,"total":0.0190076,"children":null},"AgentAct":{"count":1889,"self":0.4891732,"total":0.4891732,"children":null}},"gauges":{"AKMAgent.CumulativeReward":{"count":1,"max":-159.249954,"min":-159.249954,"runningAverage":-159.249954,"value":-159.249954,"weightedAverage":-159.249954}},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1660760208","unity_version":"2020.3.19f1","command_line_arguments":"C:\\Program Files\\Unity\\Hub\\Editor\\2020.3.19f1\\Editor\\Unity.exe -projectpath C:\\Users\\UCUNI\\OneDrive\\Unity\\ML-Agents\\Aimbot-PPO -useHub -hubIPC -cloudEnvironment production -licensingIpc LicenseClient-UCUNI -hubSessionId e97ad0c0-1d76-11ed-b68e-ebc2b2606ff2 -accessToken i02n0ke2UCGKb4ss5eujidIcv-fUtkTiH1IeTAQyLHI00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.0","scene_name":"SampleScene","end_time_seconds":"1660760252"}} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers/SampleScene_timers.json.meta b/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers/SampleScene_timers.json.meta new file mode 100644 index 0000000..4278225 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers/SampleScene_timers.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ac0487b6335b47340be576d32cc5e5e6 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers/Start_timers.json b/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers/Start_timers.json new file mode 100644 index 0000000..8abff68 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers/Start_timers.json @@ -0,0 +1 @@ +{"count":1,"self":43.5237632,"total":43.6840131,"children":{"InitializeActuators":{"count":2,"self":0.0009992,"total":0.0009992,"children":null},"InitializeSensors":{"count":2,"self":0.0009998,"total":0.0009998,"children":null},"AgentSendState":{"count":593,"self":0.0074995,"total":0.013000699999999999,"children":{"CollectObservations":{"count":593,"self":0.0015008999999999999,"total":0.0015008999999999999,"children":null},"WriteActionMask":{"count":593,"self":0,"total":0,"children":null},"RequestDecision":{"count":593,"self":0.0040003,"total":0.0040003,"children":null}}},"DecideAction":{"count":593,"self":0.0039997999999999995,"total":0.0039997999999999995,"children":null},"AgentAct":{"count":593,"self":0.1412494,"total":0.1412494,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1662366923","unity_version":"2020.3.19f1","command_line_arguments":"C:\\Program Files\\Unity\\Hub\\Editor\\2020.3.19f1\\Editor\\Unity.exe -projectpath C:\\Users\\UCUNI\\OneDrive\\Unity\\ML-Agents\\Aimbot-PPO-MultiScene -useHub -hubIPC -cloudEnvironment production -licensingIpc LicenseClient-UCUNI -hubSessionId 209fdf30-2c1f-11ed-916f-33e85f4223cc -accessToken 3CjC0epfWRwxG_KrVpNvr61CG1zT0gOQYZxf1vrmOrM00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.0","scene_name":"Start","end_time_seconds":"1662366967"}} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers/Start_timers.json.meta b/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers/Start_timers.json.meta new file mode 100644 index 0000000..af6698a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/ML-Agents/Timers/Start_timers.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0210dc189297f1245809f9ffb20d730f +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Prefeb.meta b/Aimbot-PPO-MultiScene/Assets/Prefeb.meta new file mode 100644 index 0000000..0b3d368 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Prefeb.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7e78e6ce4e2f8cc499c1f94a280dca5d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Prefeb/Enemy-Simple.prefab b/Aimbot-PPO-MultiScene/Assets/Prefeb/Enemy-Simple.prefab new file mode 100644 index 0000000..d685e29 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Prefeb/Enemy-Simple.prefab @@ -0,0 +1,377 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &389133021 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 389133022} + - component: {fileID: 389133026} + - component: {fileID: 389133025} + - component: {fileID: 389133024} + - component: {fileID: 389133023} + m_Layer: 5 + m_Name: EnemyHPBar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &389133022 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 389133021} + 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: 1209469037} + m_Father: {fileID: 8240453774489061358} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 1.3} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &389133026 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 389133021} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &389133025 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 389133021} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!114 &389133024 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 389133021} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &389133023 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 389133021} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b293d3b541b20b7448f3ca4d09a9c38c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &535890556 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 535890557} + - component: {fileID: 535890559} + - component: {fileID: 535890558} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &535890557 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 535890556} + 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: 1209469037} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1, y: 0.22} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &535890559 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 535890556} + m_CullTransparentMesh: 1 +--- !u!114 &535890558 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 535890556} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 6e45334af48d8be41bc466a250835d44, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1209469036 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1209469037} + - component: {fileID: 1209469039} + - component: {fileID: 1209469038} + m_Layer: 5 + m_Name: BG + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1209469037 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1209469036} + 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: 535890557} + m_Father: {fileID: 389133022} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1, y: 0.22} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1209469039 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1209469036} + m_CullTransparentMesh: 1 +--- !u!114 &1209469038 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1209469036} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8240453774489061354 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8240453774489061358} + - component: {fileID: 8240453774489061359} + - component: {fileID: 8240453774489061356} + - component: {fileID: 8240453774489061357} + - component: {fileID: 8240453774489061329} + m_Layer: 0 + m_Name: Enemy-Simple + m_TagString: Enemy + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8240453774489061358 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8240453774489061354} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 5, y: 1.044, z: -2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 389133022} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8240453774489061359 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8240453774489061354} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &8240453774489061356 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8240453774489061354} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 3928c4c05b9a70849a7be5a0278b3e3d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!136 &8240453774489061357 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8240453774489061354} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &8240453774489061329 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8240453774489061354} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cded1019e262a04e8d9ccb536d1ff20, type: 3} + m_Name: + m_EditorClassIdentifier: + EnemyHP: 100 diff --git a/Aimbot-PPO-MultiScene/Assets/Prefeb/Enemy-Simple.prefab.meta b/Aimbot-PPO-MultiScene/Assets/Prefeb/Enemy-Simple.prefab.meta new file mode 100644 index 0000000..121f154 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Prefeb/Enemy-Simple.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c044b8f18a5ed2f4eaabb8d40095018f +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/ProBuilder Data.meta b/Aimbot-PPO-MultiScene/Assets/ProBuilder Data.meta new file mode 100644 index 0000000..4962618 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/ProBuilder Data.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 882a91327a512154090540672f87b00c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/ProBuilder Data/Default Material Palette.asset b/Aimbot-PPO-MultiScene/Assets/ProBuilder Data/Default Material Palette.asset new file mode 100644 index 0000000..d38ee08 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/ProBuilder Data/Default Material Palette.asset @@ -0,0 +1,25 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3f1ca63a91b17724bbd99c8fa67e0180, type: 3} + m_Name: Default Material Palette + m_EditorClassIdentifier: + array: + - {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} diff --git a/Aimbot-PPO-MultiScene/Assets/ProBuilder Data/Default Material Palette.asset.meta b/Aimbot-PPO-MultiScene/Assets/ProBuilder Data/Default Material Palette.asset.meta new file mode 100644 index 0000000..a44db73 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/ProBuilder Data/Default Material Palette.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 06afaa7effec9c44e9a225d85ab23718 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Scenes.meta b/Aimbot-PPO-MultiScene/Assets/Scenes.meta new file mode 100644 index 0000000..b47dfcd --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 268147f19f45ce842b38f8c39c9d098e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Scenes/InGame.unity b/Aimbot-PPO-MultiScene/Assets/Scenes/InGame.unity new file mode 100644 index 0000000..dfe8f48 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Scenes/InGame.unity @@ -0,0 +1,35268 @@ +%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: 9 + 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: 705507994} + m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 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: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !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 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &2141715 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2141716} + - component: {fileID: 2141718} + - component: {fileID: 2141717} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2141716 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2141715} + 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: 756103204} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 3, y: 0} + m_SizeDelta: {x: -6, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2141717 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2141715} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: nonR +--- !u!222 &2141718 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2141715} + m_CullTransparentMesh: 1 +--- !u!1 &15538178 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 15538179} + - component: {fileID: 15538181} + - component: {fileID: 15538180} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &15538179 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 15538178} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2088978190} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &15538180 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 15538178} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &15538181 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 15538178} + m_CullTransparentMesh: 1 +--- !u!1 &15909073 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 15909074} + - component: {fileID: 15909076} + - component: {fileID: 15909075} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &15909074 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 15909073} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1399926665} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &15909075 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 15909073} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &15909076 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 15909073} + m_CullTransparentMesh: 1 +--- !u!1 &16217188 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 16217189} + - component: {fileID: 16217191} + - component: {fileID: 16217190} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &16217189 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 16217188} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 894156494} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -14.531864, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &16217190 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 16217188} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &16217191 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 16217188} + m_CullTransparentMesh: 1 +--- !u!1 &17027926 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 17027927} + m_Layer: 0 + m_Name: serie_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &17027927 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 17027926} + 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: 1807687761} + - {fileID: 559163972} + m_Father: {fileID: 201489786} + m_RootOrder: 15 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &23283622 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 23283623} + - component: {fileID: 23283625} + - component: {fileID: 23283624} + m_Layer: 0 + m_Name: column0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &23283623 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23283622} + 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: 237682636} + - {fileID: 446284310} + m_Father: {fileID: 1175413812} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &23283624 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23283622} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &23283625 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23283622} + m_CullTransparentMesh: 1 +--- !u!1 &25666659 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 25666660} + - component: {fileID: 25666662} + - component: {fileID: 25666661} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &25666660 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 25666659} + 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: 1414640702} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &25666661 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 25666659} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 70 +--- !u!222 &25666662 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 25666659} + m_CullTransparentMesh: 1 +--- !u!1 &25903617 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 25903618} + - component: {fileID: 25903620} + - component: {fileID: 25903619} + m_Layer: 0 + m_Name: axis_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &25903618 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 25903617} + 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: 878929884} + - {fileID: 517135391} + m_Father: {fileID: 188889958} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -201.26, y: -140} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &25903619 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 25903617} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &25903620 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 25903617} + m_CullTransparentMesh: 1 +--- !u!1 &30003215 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 30003216} + - component: {fileID: 30003218} + - component: {fileID: 30003217} + m_Layer: 0 + m_Name: painter_4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &30003216 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 30003215} + 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: 201489786} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &30003217 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 30003215} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &30003218 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 30003215} + m_CullTransparentMesh: 1 +--- !u!1 &30407328 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 30407329} + m_Layer: 0 + m_Name: label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &30407329 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 30407328} + 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: 380015112} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &39280861 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 39280862} + - component: {fileID: 39280864} + - component: {fileID: 39280863} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &39280862 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 39280861} + 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: 1506720544} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &39280863 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 39280861} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 17 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <<< +--- !u!222 &39280864 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 39280861} + m_CullTransparentMesh: 1 +--- !u!1 &42608551 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 42608552} + - component: {fileID: 42608554} + - component: {fileID: 42608553} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &42608552 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 42608551} + 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: 1163442369} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &42608553 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 42608551} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 40 +--- !u!222 &42608554 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 42608551} + m_CullTransparentMesh: 1 +--- !u!1 &47646444 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 47646445} + - component: {fileID: 47646447} + - component: {fileID: 47646446} + m_Layer: 0 + m_Name: Cylinder.002_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &47646445 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 47646444} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 24 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &47646446 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 47646444} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &47646447 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 47646444} + m_Mesh: {fileID: 8684665421547244038, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &48524276 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 48524277} + - component: {fileID: 48524279} + - component: {fileID: 48524278} + m_Layer: 0 + m_Name: axis_8 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &48524277 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 48524276} + 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: 1753569902} + - {fileID: 1494239043} + m_Father: {fileID: 1519188529} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: 117} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &48524278 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 48524276} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &48524279 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 48524276} + m_CullTransparentMesh: 1 +--- !u!1 &52116501 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 52116502} + - component: {fileID: 52116504} + - component: {fileID: 52116503} + m_Layer: 5 + m_Name: right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &52116502 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 52116501} + 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: 215367152} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: -705, y: -427.6} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &52116503 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 52116501} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: f93a52d02d735b642888188cc77164da, type: 3} + m_FontSize: 25 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 50 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u2192" +--- !u!222 &52116504 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 52116501} + m_CullTransparentMesh: 1 +--- !u!1 &52138316 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 52138317} + - component: {fileID: 52138319} + - component: {fileID: 52138318} + m_Layer: 5 + m_Name: MouseVisualizationMeter + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &52138317 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 52138316} + 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: 460761058} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -1.5} + m_SizeDelta: {x: 100, y: 7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &52138318 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 52138316} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &52138319 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 52138316} + m_CullTransparentMesh: 1 +--- !u!1 &52282411 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 52282412} + - component: {fileID: 52282414} + - component: {fileID: 52282413} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &52282412 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 52282411} + 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: 102944256} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &52282413 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 52282411} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 20 +--- !u!222 &52282414 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 52282411} + m_CullTransparentMesh: 1 +--- !u!1 &56789638 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 56789639} + m_Layer: 0 + m_Name: title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &56789639 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 56789638} + 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: 380015112} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &69535874 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 69535875} + - component: {fileID: 69535877} + - component: {fileID: 69535876} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &69535875 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 69535874} + 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: 691081143} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &69535876 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 69535874} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 50 +--- !u!222 &69535877 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 69535874} + m_CullTransparentMesh: 1 +--- !u!1 &72077393 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 72077394} + - component: {fileID: 72077396} + - component: {fileID: 72077395} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &72077394 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 72077393} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 928900839} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &72077395 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 72077393} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &72077396 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 72077393} + m_CullTransparentMesh: 1 +--- !u!1 &95675457 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 95675458} + - component: {fileID: 95675460} + - component: {fileID: 95675459} + m_Layer: 0 + m_Name: Cube.004_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &95675458 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 95675457} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &95675459 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 95675457} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &95675460 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 95675457} + m_Mesh: {fileID: -6813842297940566337, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &99436128 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 99436129} + - component: {fileID: 99436131} + - component: {fileID: 99436130} + m_Layer: 0 + m_Name: Cube.013_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &99436129 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 99436128} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 13 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &99436130 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 99436128} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &99436131 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 99436128} + m_Mesh: {fileID: -3139941974747981782, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &101801538 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 101801539} + m_Layer: 0 + m_Name: item0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &101801539 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 101801538} + 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: 140747536} + - {fileID: 2009713366} + - {fileID: 973809284} + m_Father: {fileID: 162376322} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 25} + m_Pivot: {x: 0, y: 0.5} +--- !u!1 &102944255 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 102944256} + - component: {fileID: 102944258} + - component: {fileID: 102944257} + m_Layer: 0 + m_Name: axis_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &102944256 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 102944255} + 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: 52282412} + - {fileID: 796009156} + m_Father: {fileID: 1372129984} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: -63} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &102944257 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 102944255} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &102944258 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 102944255} + m_CullTransparentMesh: 1 +--- !u!1 &111303085 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 111303086} + - component: {fileID: 111303088} + - component: {fileID: 111303087} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &111303086 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 111303085} + 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: 1721895620} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &111303087 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 111303085} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 20 +--- !u!222 &111303088 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 111303085} + m_CullTransparentMesh: 1 +--- !u!1 &119127065 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 119127066} + - component: {fileID: 119127068} + - component: {fileID: 119127067} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &119127066 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 119127065} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 966834423} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &119127067 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 119127065} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &119127068 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 119127065} + m_CullTransparentMesh: 1 +--- !u!1 &133317625 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 133317626} + - component: {fileID: 133317628} + - component: {fileID: 133317627} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &133317626 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 133317625} + 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: 1234953724} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 4, y: -2} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &133317627 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 133317625} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &133317628 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 133317625} + m_CullTransparentMesh: 1 +--- !u!1 &135550328 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 135550329} + - component: {fileID: 135550331} + - component: {fileID: 135550330} + m_Layer: 0 + m_Name: info + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &135550329 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 135550328} + 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: 443256482} + - {fileID: 967778547} + m_Father: {fileID: 855143409} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &135550330 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 135550328} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.1254902, g: 0.1254902, b: 0.1254902, a: 0.6666667} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &135550331 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 135550328} + m_CullTransparentMesh: 1 +--- !u!1 &136678428 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 136678429} + - component: {fileID: 136678431} + - component: {fileID: 136678430} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &136678429 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 136678428} + 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: 1931933153} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 3, y: 0} + m_SizeDelta: {x: -6, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &136678430 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 136678428} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: shootR +--- !u!222 &136678431 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 136678428} + m_CullTransparentMesh: 1 +--- !u!1 &140747535 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 140747536} + - component: {fileID: 140747538} + - component: {fileID: 140747537} + m_Layer: 0 + m_Name: column0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &140747536 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 140747535} + 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: 241336535} + - {fileID: 1953553497} + m_Father: {fileID: 101801539} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &140747537 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 140747535} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &140747538 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 140747535} + m_CullTransparentMesh: 1 +--- !u!1 &141368730 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 141368731} + m_Layer: 0 + m_Name: label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &141368731 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 141368730} + 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: 1822552283} + - {fileID: 858525493} + m_Father: {fileID: 2037666613} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &143757499 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 143757500} + - component: {fileID: 143757502} + - component: {fileID: 143757501} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &143757500 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 143757499} + 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: 2009713366} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &143757501 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 143757499} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &143757502 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 143757499} + m_CullTransparentMesh: 1 +--- !u!1 &143942508 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 143942509} + - component: {fileID: 143942511} + - component: {fileID: 143942510} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &143942509 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 143942508} + 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: 841599020} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &143942510 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 143942508} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 17 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <<< +--- !u!222 &143942511 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 143942508} + m_CullTransparentMesh: 1 +--- !u!1 &147875581 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 147875582} + - component: {fileID: 147875584} + - component: {fileID: 147875583} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &147875582 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 147875581} + 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: 1747636731} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &147875583 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 147875581} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'SaveWeightsNow + +' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: f653ac5b85a721e4c9383008e6a565a7, type: 2} + m_sharedMaterial: {fileID: -4662725986004701985, guid: f653ac5b85a721e4c9383008e6a565a7, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 15 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 0 + m_fontSizeMax: 0 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &147875584 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 147875581} + m_CullTransparentMesh: 1 +--- !u!1 &149710880 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 149710881} + - component: {fileID: 149710883} + - component: {fileID: 149710882} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &149710881 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 149710880} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2085253772} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &149710882 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 149710880} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &149710883 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 149710880} + m_CullTransparentMesh: 1 +--- !u!1 &162289218 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 162289219} + - component: {fileID: 162289221} + - component: {fileID: 162289220} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &162289219 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 162289218} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 928900839} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &162289220 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 162289218} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 75 +--- !u!222 &162289221 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 162289218} + m_CullTransparentMesh: 1 +--- !u!1 &162376321 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 162376322} + - component: {fileID: 162376326} + - component: {fileID: 162376325} + - component: {fileID: 162376324} + - component: {fileID: 162376323} + m_Layer: 0 + m_Name: view + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &162376322 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 162376321} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 2026877416} + - {fileID: 101801539} + m_Father: {fileID: 2037666613} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0, y: 1} +--- !u!114 &162376323 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 162376321} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 10 + m_Right: 10 + m_Top: 10 + m_Bottom: 10 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &162376324 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 162376321} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1} + m_EffectDistance: {x: 2, y: -2} + m_UseGraphicAlpha: 0 +--- !u!114 &162376325 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 162376321} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &162376326 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 162376321} + m_CullTransparentMesh: 1 +--- !u!1 &163181242 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 163181243} + - component: {fileID: 163181245} + - component: {fileID: 163181244} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &163181243 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 163181242} + 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: 1477455556} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 4, y: -2} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &163181244 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 163181242} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 22 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &163181245 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 163181242} + m_CullTransparentMesh: 1 +--- !u!1 &188789333 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 188789334} + - component: {fileID: 188789336} + - component: {fileID: 188789335} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &188789334 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 188789333} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 907816953} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &188789335 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 188789333} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &188789336 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 188789333} + m_CullTransparentMesh: 1 +--- !u!1 &188889957 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 188889958} + m_Layer: 0 + m_Name: XAxis0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &188889958 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 188889957} + 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: 25903618} + - {fileID: 808684899} + - {fileID: 1186343261} + - {fileID: 1282464052} + - {fileID: 1926093282} + m_Father: {fileID: 201489786} + m_RootOrder: 13 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &188953744 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 188953745} + - component: {fileID: 188953747} + - component: {fileID: 188953746} + m_Layer: 0 + m_Name: axis_6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &188953745 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 188953744} + 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: 496880997} + - {fileID: 1769014919} + m_Father: {fileID: 1519188529} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: 57} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &188953746 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 188953744} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &188953747 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 188953744} + m_CullTransparentMesh: 1 +--- !u!1 &191139042 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 191139043} + - component: {fileID: 191139045} + - component: {fileID: 191139044} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &191139043 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 191139042} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1241541574} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -14.531864, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &191139044 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 191139042} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &191139045 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 191139042} + m_CullTransparentMesh: 1 +--- !u!1 &194652654 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 194652655} + - component: {fileID: 194652656} + m_Layer: 5 + m_Name: RewardChanger + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &194652655 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 194652654} + 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: 1946802030} + - {fileID: 1506720544} + - {fileID: 800325714} + - {fileID: 1958294038} + - {fileID: 2076769193} + - {fileID: 317682828} + - {fileID: 841599020} + - {fileID: 756103204} + - {fileID: 1931933153} + - {fileID: 1832129955} + - {fileID: 785752919} + - {fileID: 429369155} + - {fileID: 1148611240} + - {fileID: 1483392555} + m_Father: {fileID: 1619861058} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -170.5, y: -100} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &194652656 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 194652654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e23822cccaf08084ab5cde559ca068e0, type: 3} + m_Name: + m_EditorClassIdentifier: + Agent: {fileID: 629870337} + nonRBT: {fileID: 1946802032} + shootRBT: {fileID: 1506720545} + shootWithoutReadyRBT: {fileID: 800325711} + hitRBT: {fileID: 1958294035} + killRBT: {fileID: 2076769190} + winRBT: {fileID: 317682825} + loseRBT: {fileID: 841599021} + nonRInputField: {fileID: 756103205} + shootRInputField: {fileID: 1931933154} + shootWithoutReadyRInputField: {fileID: 1832129956} + hitRInputField: {fileID: 785752920} + killRInputField: {fileID: 429369156} + winRInputField: {fileID: 1148611241} + loseRInputField: {fileID: 1483392556} +--- !u!1 &195883127 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 195883128} + - component: {fileID: 195883131} + - component: {fileID: 195883130} + - component: {fileID: 195883129} + m_Layer: 5 + m_Name: cameraChangeButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &195883128 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 195883127} + 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: 338423604} + m_Father: {fileID: 511399609} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -80, y: -198.4} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &195883129 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 195883127} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 195883130} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 317534022} + m_TargetAssemblyTypeName: CameraChange, Assembly-CSharp + m_MethodName: switchCamera + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &195883130 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 195883127} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &195883131 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 195883127} + m_CullTransparentMesh: 1 +--- !u!1 &200583462 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 200583463} + - component: {fileID: 200583465} + - component: {fileID: 200583464} + m_Layer: 0 + m_Name: axis_8 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &200583463 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 200583462} + 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: 1392249417} + - {fileID: 1235656834} + m_Father: {fileID: 1372129984} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: 117} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &200583464 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 200583462} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &200583465 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 200583462} + m_CullTransparentMesh: 1 +--- !u!1 &201489783 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 201489786} + - component: {fileID: 201489785} + - component: {fileID: 201489784} + m_Layer: 0 + m_Name: EPTotalRewardChart + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &201489784 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 201489783} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b4f38bd00b4648c448cabfc167538f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_EnableTextMeshPro: 0 + m_DebugInfo: + m_Show: 1 + m_ShowDebugInfo: 0 + m_ShowAllChartObject: 0 + m_FoldSeries: 0 + m_LabelStyle: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0.1254902, g: 0.1254902, b: 0.1254902, a: 0.6666667} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontSize: 18 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_ChartName: + m_Theme: + m_Show: 1 + m_SharedTheme: {fileID: 11400000, guid: e1dc23a10de1e4c5dbfbaf74c4dfd218, type: 2} + m_TransparentBackground: 1 + m_EnableCustomTheme: 0 + m_CustomFont: {fileID: 0} + m_CustomBackgroundColor: + serializedVersion: 2 + rgba: 3487029 + m_CustomColorPalette: [] + m_Settings: + m_Show: 1 + m_MaxPainter: 10 + m_ReversePainter: 0 + m_BasePainterMaterial: {fileID: 0} + m_SeriePainterMaterial: {fileID: 0} + m_TopPainterMaterial: {fileID: 0} + m_LineSmoothStyle: 3 + m_LineSmoothness: 2 + m_LineSegmentDistance: 3 + m_CicleSmoothness: 2 + m_LegendIconLineWidth: 2 + m_LegendIconCornerRadius: + - 0 + - 0.25 + - 0.25 + - 0.25 + m_AngleAxes: [] + m_Backgrounds: [] + m_DataZooms: [] + m_Grids: + - m_Show: 1 + m_Left: 0.06 + m_Right: 0.01 + m_Top: 0.11 + m_Bottom: 0.09 + m_BackgroundColor: + serializedVersion: 2 + rgba: 0 + m_ShowBorder: 1 + m_BorderWidth: 0 + m_BorderColor: + serializedVersion: 2 + rgba: 0 + m_Legends: [] + m_MarkLines: [] + m_MarkAreas: [] + m_Polars: [] + m_Radars: [] + m_RadiusAxes: [] + m_Titles: + - m_Show: 1 + m_Text: EPTotalRewardChart + m_SubText: + m_LabelStyle: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_SubLabelStyle: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_ItemGap: 0 + m_Location: + m_Align: 2 + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Tooltips: + - m_Show: 1 + m_Type: 0 + m_Trigger: 1 + m_ItemFormatter: + m_TitleFormatter: + m_Marker: "\u25CF" + m_FixedWidth: 0 + m_FixedHeight: 0 + m_MinWidth: 0 + m_MinHeight: 0 + m_NumericFormatter: + m_PaddingLeftRight: 10 + m_PaddingTopBottom: 10 + m_IgnoreDataShow: 0 + m_IgnoreDataDefaultContent: '-' + m_ShowContent: 1 + m_AlwayShowContent: 0 + m_Offset: {x: 18, y: -25} + m_BackgroundImage: {fileID: 0} + m_BackgroundType: 0 + m_BackgroundColor: {r: 0, g: 0, b: 0, a: 0} + m_BorderWidth: 2 + m_FixedXEnable: 0 + m_FixedX: 0 + m_FixedYEnable: 0 + m_FixedY: 0 + m_TitleHeight: 25 + m_ItemHeight: 25 + m_BorderColor: + serializedVersion: 2 + rgba: 4293322470 + m_LineStyle: + m_Show: 1 + m_Type: 5 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_IndicatorLabelStyle: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_TitleLabelStyle: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 3 + m_ContentLabelStyles: + - m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 0 + m_Right: 5 + m_Left: 0 + m_Bottom: 0 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 3 + - m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 0 + m_Right: 20 + m_Left: 0 + m_Bottom: 0 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 3 + - m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 0 + m_Right: 0 + m_Left: 0 + m_Bottom: 0 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 5 + m_VisualMaps: [] + m_XAxes: + - m_Show: 1 + m_Type: 1 + m_MinMaxType: 0 + m_GridIndex: 0 + m_PolarIndex: 0 + m_ParallelIndex: 0 + m_Position: 2 + m_Offset: 0 + m_Min: 0 + m_Max: 0 + m_SplitNumber: 0 + m_Interval: 0 + m_BoundaryGap: 1 + m_MaxCache: 0 + m_LogBase: 10 + m_LogBaseE: 0 + m_CeilRate: 0 + m_Inverse: 0 + m_Clockwise: 1 + m_InsertDataToHead: 0 + m_Icons: [] + m_Data: + - x1 + - x2 + - x3 + - x4 + - x5 + m_AxisLine: + m_Show: 1 + m_LineStyle: + m_Show: 1 + m_Type: 5 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_OnZero: 1 + m_ShowArrow: 0 + m_Arrow: + m_Width: 10 + m_Height: 15 + m_Offset: 0 + m_Dent: 3 + m_Color: + serializedVersion: 2 + rgba: 0 + m_AxisName: + m_Show: 0 + m_Name: axisName + m_LabelStyle: + m_Show: 1 + m_Position: 10 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_AxisTick: + m_Show: 1 + m_LineStyle: + m_Show: 1 + m_Type: 0 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_AlignWithLabel: 0 + m_Inside: 0 + m_ShowStartTick: 1 + m_ShowEndTick: 1 + m_Distance: 0 + m_SplitNumber: 0 + m_AutoColor: 0 + m_AxisLabel: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 8 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_Interval: 0 + m_Inside: 0 + m_ShowAsPositiveNumber: 0 + m_OnZero: 0 + m_ShowStartLabel: 1 + m_ShowEndLabel: 1 + m_TextLimit: + m_Enable: 1 + m_MaxWidth: 0 + m_Gap: 1 + m_Suffix: ... + m_SplitLine: + m_Show: 0 + m_LineStyle: + m_Show: 1 + m_Type: 5 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_Interval: 0 + m_Distance: 0 + m_AutoColor: 0 + m_SplitArea: + m_Show: 0 + m_Color: [] + m_YAxes: + - m_Show: 1 + m_Type: 0 + m_MinMaxType: 0 + m_GridIndex: 0 + m_PolarIndex: 0 + m_ParallelIndex: 0 + m_Position: 0 + m_Offset: 0 + m_Min: 0 + m_Max: 0 + m_SplitNumber: 0 + m_Interval: 0 + m_BoundaryGap: 0 + m_MaxCache: 0 + m_LogBase: 10 + m_LogBaseE: 0 + m_CeilRate: 0 + m_Inverse: 0 + m_Clockwise: 1 + m_InsertDataToHead: 0 + m_Icons: [] + m_Data: [] + m_AxisLine: + m_Show: 1 + m_LineStyle: + m_Show: 1 + m_Type: 5 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_OnZero: 1 + m_ShowArrow: 0 + m_Arrow: + m_Width: 10 + m_Height: 15 + m_Offset: 0 + m_Dent: 3 + m_Color: + serializedVersion: 2 + rgba: 0 + m_AxisName: + m_Show: 0 + m_Name: axisName + m_LabelStyle: + m_Show: 1 + m_Position: 10 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_AxisTick: + m_Show: 1 + m_LineStyle: + m_Show: 1 + m_Type: 0 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_AlignWithLabel: 0 + m_Inside: 0 + m_ShowStartTick: 1 + m_ShowEndTick: 1 + m_Distance: 0 + m_SplitNumber: 0 + m_AutoColor: 0 + m_AxisLabel: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 8 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_Interval: 0 + m_Inside: 0 + m_ShowAsPositiveNumber: 0 + m_OnZero: 0 + m_ShowStartLabel: 1 + m_ShowEndLabel: 1 + m_TextLimit: + m_Enable: 0 + m_MaxWidth: 0 + m_Gap: 1 + m_Suffix: ... + m_SplitLine: + m_Show: 1 + m_LineStyle: + m_Show: 1 + m_Type: 5 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_Interval: 0 + m_Distance: 0 + m_AutoColor: 0 + m_SplitArea: + m_Show: 0 + m_Color: [] + m_SingleAxes: [] + m_Parallels: [] + m_ParallelAxes: [] + m_Comments: [] + m_SerieBars: [] + m_SerieCandlesticks: [] + m_SerieEffectScatters: [] + m_SerieHeatmaps: [] + m_SerieLines: + - m_Labels: [] + m_LabelLines: [] + m_EndLabels: [] + m_LineArrows: [] + m_AreaStyles: [] + m_TitleStyles: [] + m_EmphasisItemStyles: [] + m_EmphasisLabels: [] + m_EmphasisLabelLines: [] + m_Index: 0 + m_Show: 1 + m_CoordSystem: GridCoord + m_SerieType: Line + m_SerieName: serie0 + m_Stack: + m_XAxisIndex: 0 + m_YAxisIndex: 0 + m_RadarIndex: 0 + m_VesselIndex: 0 + m_PolarIndex: 0 + m_SingleAxisIndex: 0 + m_ParallelIndex: 0 + m_MinShow: 0 + m_MaxShow: 0 + m_MaxCache: 0 + m_SampleDist: 0 + m_SampleType: 1 + m_SampleAverage: 0 + m_LineType: 0 + m_BarType: 0 + m_BarPercentStack: 0 + m_BarWidth: 0 + m_BarGap: 0.1 + m_BarZebraWidth: 4 + m_BarZebraGap: 2 + m_Min: 0 + m_Max: 0 + m_MinSize: 0 + m_MaxSize: 1 + m_StartAngle: 0 + m_EndAngle: 0 + m_MinAngle: 0 + m_Clockwise: 1 + m_RoundCap: 0 + m_SplitNumber: 0 + m_ClickOffset: 1 + m_RoseType: 0 + m_Gap: 0 + m_Center: + - 0.5 + - 0.48 + m_Radius: + - 0 + - 0.28 + m_ShowDataDimension: 1 + m_ShowDataName: 0 + m_Clip: 0 + m_Ignore: 0 + m_IgnoreValue: 0 + m_IgnoreLineBreak: 0 + m_ShowAsPositiveNumber: 0 + m_Large: 1 + m_LargeThreshold: 200 + m_AvoidLabelOverlap: 0 + m_RadarType: 0 + m_PlaceHolder: 0 + m_DataSortType: 2 + m_Orient: 1 + m_Align: 0 + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_InsertDataToHead: 0 + m_LineStyle: + m_Show: 1 + m_Type: 0 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_Symbol: + m_Show: 1 + m_Type: 3 + m_Size: 0 + m_Gap: 0 + m_Width: 0 + m_Height: 0 + m_Offset: {x: 0, y: 0} + m_Image: {fileID: 0} + m_ImageType: 0 + m_Color: + serializedVersion: 2 + rgba: 0 + m_SizeType: 0 + m_SelectedSize: 0 + m_DataIndex: 1 + m_DataScale: 1 + m_SelectedDataScale: 1.5 + m_StartIndex: 0 + m_Interval: 0 + m_ForceShowLast: 0 + m_Repeat: 0 + m_Animation: + m_Enable: 0 + m_Type: 0 + m_Easting: 0 + m_Threshold: 2000 + m_FadeInDuration: 1000 + m_FadeInDelay: 0 + m_FadeOutDuration: 1000 + m_FadeOutDelay: 0 + m_DataChangeEnable: 1 + m_DataChangeDuration: 500 + m_ActualDuration: 0 + m_ItemStyle: + m_Show: 1 + m_Color: + serializedVersion: 2 + rgba: 0 + m_Color0: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_BackgroundColor: + serializedVersion: 2 + rgba: 0 + m_BackgroundWidth: 0 + m_CenterColor: + serializedVersion: 2 + rgba: 0 + m_CenterGap: 0 + m_BorderWidth: 0 + m_BorderGap: 0 + m_BorderColor: + serializedVersion: 2 + rgba: 0 + m_BorderColor0: + serializedVersion: 2 + rgba: 0 + m_BorderToColor: + serializedVersion: 2 + rgba: 0 + m_Opacity: 1 + m_ItemMarker: + m_ItemFormatter: + m_NumericFormatter: + m_CornerRadius: + - 0 + - 0 + - 0 + - 0 + m_Data: + - m_Index: 0 + m_Name: + m_Id: + m_ParentId: + m_Ignore: 0 + m_Selected: 0 + m_Radius: 0 + m_ItemStyles: [] + m_Labels: [] + m_LabelLines: [] + m_Symbols: [] + m_LineStyles: [] + m_AreaStyles: [] + m_TitleStyles: [] + m_EmphasisItemStyles: [] + m_EmphasisLabels: [] + m_EmphasisLabelLines: [] + m_Data: + - 0 + - 52 + - m_Index: 0 + m_Name: + m_Id: + m_ParentId: + m_Ignore: 0 + m_Selected: 0 + m_Radius: 0 + m_ItemStyles: [] + m_Labels: [] + m_LabelLines: [] + m_Symbols: [] + m_LineStyles: [] + m_AreaStyles: [] + m_TitleStyles: [] + m_EmphasisItemStyles: [] + m_EmphasisLabels: [] + m_EmphasisLabelLines: [] + m_Data: + - 1 + - 76 + - m_Index: 0 + m_Name: + m_Id: + m_ParentId: + m_Ignore: 0 + m_Selected: 0 + m_Radius: 0 + m_ItemStyles: [] + m_Labels: [] + m_LabelLines: [] + m_Symbols: [] + m_LineStyles: [] + m_AreaStyles: [] + m_TitleStyles: [] + m_EmphasisItemStyles: [] + m_EmphasisLabels: [] + m_EmphasisLabelLines: [] + m_Data: + - 2 + - 12 + - m_Index: 0 + m_Name: + m_Id: + m_ParentId: + m_Ignore: 0 + m_Selected: 0 + m_Radius: 0 + m_ItemStyles: [] + m_Labels: [] + m_LabelLines: [] + m_Symbols: [] + m_LineStyles: [] + m_AreaStyles: [] + m_TitleStyles: [] + m_EmphasisItemStyles: [] + m_EmphasisLabels: [] + m_EmphasisLabelLines: [] + m_Data: + - 3 + - 23 + - m_Index: 0 + m_Name: + m_Id: + m_ParentId: + m_Ignore: 0 + m_Selected: 0 + m_Radius: 0 + m_ItemStyles: [] + m_Labels: [] + m_LabelLines: [] + m_Symbols: [] + m_LineStyles: [] + m_AreaStyles: [] + m_TitleStyles: [] + m_EmphasisItemStyles: [] + m_EmphasisLabels: [] + m_EmphasisLabelLines: [] + m_Data: + - 4 + - 15 + m_SeriePies: [] + m_SerieRadars: [] + m_SerieRings: [] + m_SerieScatters: [] + m_SerieParallels: [] + m_SerieSimplifiedLines: [] + m_SerieSimplifiedBars: [] + m_SerieSimplifiedCandlesticks: [] +--- !u!222 &201489785 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 201489783} + m_CullTransparentMesh: 1 +--- !u!224 &201489786 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 201489783} + 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: 1397091675} + - {fileID: 1433177290} + - {fileID: 758017859} + - {fileID: 2114851408} + - {fileID: 1829544112} + - {fileID: 30003216} + - {fileID: 1107178053} + - {fileID: 1804136062} + - {fileID: 1380521381} + - {fileID: 997104155} + - {fileID: 795430071} + - {fileID: 1810548990} + - {fileID: 1406810794} + - {fileID: 188889958} + - {fileID: 1519188529} + - {fileID: 17027927} + - {fileID: 1069784063} + - {fileID: 890609531} + m_Father: {fileID: 268923344} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 670.7, y: -50} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &208643480 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 208643481} + - component: {fileID: 208643483} + - component: {fileID: 208643482} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &208643481 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 208643480} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1884023750} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &208643482 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 208643480} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &208643483 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 208643480} + m_CullTransparentMesh: 1 +--- !u!1 &210575778 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 210575779} + - component: {fileID: 210575781} + - component: {fileID: 210575780} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &210575779 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 210575778} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1770477494} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &210575780 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 210575778} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &210575781 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 210575778} + m_CullTransparentMesh: 1 +--- !u!1 &214633554 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 214633555} + - component: {fileID: 214633557} + - component: {fileID: 214633556} + m_Layer: 5 + m_Name: killReward + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &214633555 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 214633554} + 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: 509053162} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -80} + m_SizeDelta: {x: 316.0601, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &214633556 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 214633554} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'killReward: ' +--- !u!222 &214633557 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 214633554} + m_CullTransparentMesh: 1 +--- !u!1 &215367151 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 215367152} + m_Layer: 5 + m_Name: KeyViewer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &215367152 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 215367151} + 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: 2047194226} + - {fileID: 228560050} + - {fileID: 406639879} + - {fileID: 52116502} + - {fileID: 854133116} + - {fileID: 438520161} + m_Father: {fileID: 511399609} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 941, y: 550} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &216871882 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 216871883} + - component: {fileID: 216871885} + - component: {fileID: 216871884} + m_Layer: 0 + m_Name: painter_9 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &216871883 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 216871882} + 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: 1213129649} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &216871884 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 216871882} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &216871885 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 216871882} + m_CullTransparentMesh: 1 +--- !u!1 &221517428 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 221517429} + - component: {fileID: 221517431} + - component: {fileID: 221517430} + m_Layer: 0 + m_Name: axis_3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &221517429 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 221517428} + 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: 328064205} + - {fileID: 1311450673} + m_Father: {fileID: 800843590} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 122.380005, y: -140} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &221517430 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 221517428} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &221517431 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 221517428} + m_CullTransparentMesh: 1 +--- !u!1 &225688599 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 225688600} + - component: {fileID: 225688602} + - component: {fileID: 225688601} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &225688600 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 225688599} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1414640702} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &225688601 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 225688599} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &225688602 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 225688599} + m_CullTransparentMesh: 1 +--- !u!1 &228560049 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 228560050} + - component: {fileID: 228560052} + - component: {fileID: 228560051} + m_Layer: 5 + m_Name: down + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &228560050 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 228560049} + 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: 215367152} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: -734.2999, y: -427.60004} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &228560051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 228560049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: f93a52d02d735b642888188cc77164da, type: 3} + m_FontSize: 25 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 50 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u2193" +--- !u!222 &228560052 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 228560049} + m_CullTransparentMesh: 1 +--- !u!1 &232422798 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 232422799} + - component: {fileID: 232422801} + - component: {fileID: 232422800} + m_Layer: 0 + m_Name: Cube.005_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &232422799 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 232422798} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &232422800 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 232422798} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &232422801 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 232422798} + m_Mesh: {fileID: -7823134470834710897, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &237682635 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 237682636} + - component: {fileID: 237682638} + - component: {fileID: 237682637} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &237682636 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 237682635} + 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: 23283623} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &237682637 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 237682635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &237682638 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 237682635} + m_CullTransparentMesh: 1 +--- !u!1 &241336534 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 241336535} + - component: {fileID: 241336537} + - component: {fileID: 241336536} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &241336535 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 241336534} + 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: 140747536} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &241336536 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 241336534} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &241336537 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 241336534} + m_CullTransparentMesh: 1 +--- !u!1 &268923343 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 268923344} + m_Layer: 5 + m_Name: Charts + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &268923344 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 268923343} + 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: 1213129649} + - {fileID: 611641053} + - {fileID: 201489786} + m_Father: {fileID: 511399609} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &290664181 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 290664182} + - component: {fileID: 290664184} + - component: {fileID: 290664183} + m_Layer: 0 + m_Name: Cylinder.001_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &290664182 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 290664181} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0.4829301, y: 1.386794, z: 3.058825} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 23 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &290664183 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 290664181} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &290664184 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 290664181} + m_Mesh: {fileID: 5796478305813232498, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &295944707 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 295944708} + - component: {fileID: 295944710} + - component: {fileID: 295944709} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &295944708 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 295944707} + 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: 648258324} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &295944709 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 295944707} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &295944710 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 295944707} + m_CullTransparentMesh: 1 +--- !u!1 &307946888 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 307946889} + - component: {fileID: 307946891} + - component: {fileID: 307946890} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &307946889 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 307946888} + 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: 756103204} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 3, y: 0} + m_SizeDelta: {x: -6, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &307946890 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 307946888} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 69 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &307946891 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 307946888} + m_CullTransparentMesh: 1 +--- !u!1 &317534021 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 317534023} + - component: {fileID: 317534022} + m_Layer: 0 + m_Name: CameraController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &317534022 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 317534021} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 136f4ef424a10ea47b5981794fff8a7c, type: 3} + m_Name: + m_EditorClassIdentifier: + FPSCamera: {fileID: 1633276149} + TPSCamera: {fileID: 348429004} +--- !u!4 &317534023 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 317534021} + 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: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &317682824 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 317682828} + - component: {fileID: 317682827} + - component: {fileID: 317682826} + - component: {fileID: 317682825} + m_Layer: 5 + m_Name: winAddBT + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &317682825 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 317682824} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 317682826} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 194652656} + m_TargetAssemblyTypeName: RewardChanger, Assembly-CSharp + m_MethodName: winRBTPresses + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &317682826 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 317682824} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &317682827 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 317682824} + m_CullTransparentMesh: 1 +--- !u!224 &317682828 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 317682824} + 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: 1435262641} + m_Father: {fileID: 194652655} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -100} + m_SizeDelta: {x: 40, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &326222084 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 326222085} + - component: {fileID: 326222087} + - component: {fileID: 326222086} + m_Layer: 0 + m_Name: axis_6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &326222085 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326222084} + 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: 1863075755} + - {fileID: 1669330272} + m_Father: {fileID: 1372129984} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: 57} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &326222086 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326222084} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &326222087 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326222084} + m_CullTransparentMesh: 1 +--- !u!1 &326762359 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 326762360} + - component: {fileID: 326762362} + - component: {fileID: 326762361} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &326762360 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326762359} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 808684899} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &326762361 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326762359} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &326762362 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326762359} + m_CullTransparentMesh: 1 +--- !u!1 &328064204 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 328064205} + - component: {fileID: 328064207} + - component: {fileID: 328064206} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &328064205 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 328064204} + 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: 221517429} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &328064206 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 328064204} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: x4 +--- !u!222 &328064207 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 328064204} + m_CullTransparentMesh: 1 +--- !u!1 &335823786 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 335823787} + - component: {fileID: 335823789} + - component: {fileID: 335823788} + m_Layer: 0 + m_Name: column0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &335823787 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 335823786} + 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: 2022475718} + - {fileID: 430271807} + m_Father: {fileID: 737756490} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &335823788 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 335823786} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &335823789 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 335823786} + m_CullTransparentMesh: 1 +--- !u!1 &338423603 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 338423604} + - component: {fileID: 338423606} + - component: {fileID: 338423605} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &338423604 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 338423603} + 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: 195883128} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &338423605 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 338423603} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Change Camera + +' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: f653ac5b85a721e4c9383008e6a565a7, type: 2} + m_sharedMaterial: {fileID: -4662725986004701985, guid: f653ac5b85a721e4c9383008e6a565a7, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 15 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 0 + m_fontSizeMax: 0 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &338423606 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 338423603} + m_CullTransparentMesh: 1 +--- !u!1 &348429001 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 348429002} + - component: {fileID: 348429004} + - component: {fileID: 348429003} + m_Layer: 0 + m_Name: TPSCamera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &348429002 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 348429001} + 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: 666949839} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!81 &348429003 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 348429001} + m_Enabled: 1 +--- !u!20 &348429004 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 348429001} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 1 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 20.78461 + 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.000004 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + 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_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!1 &355301578 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 355301579} + m_Layer: 0 + m_Name: label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &355301579 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 355301578} + 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: 1414673186} + - {fileID: 1884118930} + m_Father: {fileID: 1069784063} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &358674450 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 358674451} + - component: {fileID: 358674453} + - component: {fileID: 358674452} + m_Layer: 0 + m_Name: axis_3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &358674451 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 358674450} + 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: 721859327} + - {fileID: 1273108962} + m_Father: {fileID: 1519188529} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: -33} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &358674452 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 358674450} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &358674453 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 358674450} + m_CullTransparentMesh: 1 +--- !u!1 &380015111 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 380015112} + m_Layer: 0 + m_Name: serie_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &380015112 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 380015111} + 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: 30407329} + - {fileID: 56789639} + m_Father: {fileID: 1213129649} + m_RootOrder: 15 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &381530242 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 381530243} + - component: {fileID: 381530245} + - component: {fileID: 381530244} + m_Layer: 0 + m_Name: painter_9 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &381530243 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 381530242} + 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: 611641053} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &381530244 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 381530242} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &381530245 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 381530242} + m_CullTransparentMesh: 1 +--- !u!1 &404938101 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 404938102} + - component: {fileID: 404938104} + - component: {fileID: 404938103} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &404938102 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 404938101} + 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: 2026877416} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 4, y: -2} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &404938103 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 404938101} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &404938104 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 404938101} + m_CullTransparentMesh: 1 +--- !u!1 &406639878 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 406639879} + - component: {fileID: 406639881} + - component: {fileID: 406639880} + m_Layer: 5 + m_Name: up + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &406639879 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 406639878} + 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: 215367152} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: -734.2999, y: -398.39996} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &406639880 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 406639878} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: f93a52d02d735b642888188cc77164da, type: 3} + m_FontSize: 25 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 50 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u2191" +--- !u!222 &406639881 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 406639878} + m_CullTransparentMesh: 1 +--- !u!1 &420670194 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 420670195} + - component: {fileID: 420670197} + - component: {fileID: 420670196} + m_Layer: 0 + m_Name: Cylinder.003_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &420670195 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 420670194} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 25 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &420670196 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 420670194} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &420670197 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 420670194} + m_Mesh: {fileID: 1022286299411585782, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &420980395 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 420980396} + - component: {fileID: 420980398} + - component: {fileID: 420980397} + m_Layer: 0 + m_Name: painter_3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &420980396 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 420980395} + 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: 611641053} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &420980397 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 420980395} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &420980398 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 420980395} + m_CullTransparentMesh: 1 +--- !u!1 &429029227 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 429029228} + - component: {fileID: 429029230} + - component: {fileID: 429029229} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &429029228 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 429029227} + 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: 1931933153} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 3, y: 0} + m_SizeDelta: {x: -6, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &429029229 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 429029227} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 69 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &429029230 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 429029227} + m_CullTransparentMesh: 1 +--- !u!1 &429369154 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 429369155} + - component: {fileID: 429369158} + - component: {fileID: 429369157} + - component: {fileID: 429369156} + m_Layer: 5 + m_Name: killInput + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &429369155 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 429369154} + 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: 1399697880} + - {fileID: 1692175693} + m_Father: {fileID: 194652655} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 70, y: -80} + m_SizeDelta: {x: 100, y: 22} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &429369156 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 429369154} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 429369157} + m_TextComponent: {fileID: 1692175694} + m_Placeholder: {fileID: 1399697881} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 +--- !u!114 &429369157 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 429369154} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &429369158 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 429369154} + m_CullTransparentMesh: 1 +--- !u!1 &430271806 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 430271807} + - component: {fileID: 430271809} + - component: {fileID: 430271808} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &430271807 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 430271806} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 335823787} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &430271808 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 430271806} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &430271809 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 430271806} + m_CullTransparentMesh: 1 +--- !u!1 &430915227 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 430915228} + - component: {fileID: 430915230} + - component: {fileID: 430915229} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &430915228 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 430915227} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1926093282} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &430915229 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 430915227} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &430915230 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 430915227} + m_CullTransparentMesh: 1 +--- !u!1 &435476305 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 435476306} + - component: {fileID: 435476308} + - component: {fileID: 435476307} + m_Layer: 0 + m_Name: painter_4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &435476306 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 435476305} + 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: 611641053} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &435476307 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 435476305} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &435476308 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 435476305} + m_CullTransparentMesh: 1 +--- !u!1 &438520158 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 438520161} + - component: {fileID: 438520160} + - component: {fileID: 438520159} + m_Layer: 5 + m_Name: mouse + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &438520159 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 438520158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: f93a52d02d735b642888188cc77164da, type: 3} + m_FontSize: 25 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 50 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 00 +--- !u!222 &438520160 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 438520158} + m_CullTransparentMesh: 1 +--- !u!224 &438520161 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 438520158} + 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: 215367152} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: -572.51, y: -427.60004} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &439946272 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 439946273} + - component: {fileID: 439946275} + - component: {fileID: 439946274} + m_Layer: 0 + m_Name: painter_7 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &439946273 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 439946272} + 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: 611641053} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &439946274 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 439946272} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &439946275 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 439946272} + m_CullTransparentMesh: 1 +--- !u!1 &443205578 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 443205579} + - component: {fileID: 443205581} + - component: {fileID: 443205580} + m_Layer: 0 + m_Name: Cube.010_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &443205579 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 443205578} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &443205580 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 443205578} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &443205581 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 443205578} + m_Mesh: {fileID: -160208019829609773, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &443256481 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 443256482} + - component: {fileID: 443256484} + - component: {fileID: 443256483} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &443256482 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 443256481} + 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: 135550329} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 4, y: -2} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &443256483 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 443256481} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &443256484 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 443256481} + m_CullTransparentMesh: 1 +--- !u!1 &446284309 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 446284310} + - component: {fileID: 446284312} + - component: {fileID: 446284311} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &446284310 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 446284309} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 23283623} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &446284311 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 446284309} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &446284312 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 446284309} + m_CullTransparentMesh: 1 +--- !u!1 &448010745 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 448010746} + - component: {fileID: 448010748} + - component: {fileID: 448010747} + m_Layer: 0 + m_Name: painter_5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &448010746 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 448010745} + 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: 611641053} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &448010747 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 448010745} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &448010748 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 448010745} + m_CullTransparentMesh: 1 +--- !u!1 &453040566 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 453040567} + - component: {fileID: 453040569} + - component: {fileID: 453040568} + m_Layer: 0 + m_Name: info + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &453040567 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 453040566} + 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: 933702210} + - {fileID: 1294052618} + m_Father: {fileID: 890609531} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &453040568 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 453040566} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.1254902, g: 0.1254902, b: 0.1254902, a: 0.6666667} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &453040569 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 453040566} + m_CullTransparentMesh: 1 +--- !u!1 &454701933 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 454701934} + - component: {fileID: 454701936} + - component: {fileID: 454701935} + m_Layer: 0 + m_Name: Cylinder.011_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &454701934 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 454701933} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 32 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &454701935 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 454701933} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &454701936 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 454701933} + m_Mesh: {fileID: 7280481152629387332, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &459517739 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 459517740} + - component: {fileID: 459517741} + - component: {fileID: 459517742} + m_Layer: 5 + m_Name: nonRewardData + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &459517740 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 459517739} + 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: 497823044} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 70, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &459517741 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 459517739} + m_CullTransparentMesh: 1 +--- !u!114 &459517742 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 459517739} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 00 +--- !u!1 &460761057 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 460761058} + m_Layer: 5 + m_Name: MouseVisualization + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &460761058 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 460761057} + 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: 1565640926} + - {fileID: 52138317} + m_Father: {fileID: 511399609} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 157.5, y: 31.800049} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &463651889 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 463651890} + - component: {fileID: 463651892} + - component: {fileID: 463651891} + m_Layer: 5 + m_Name: shootWithoutReadyReward + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &463651890 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 463651889} + 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: 509053162} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -40} + m_SizeDelta: {x: 316.0601, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &463651891 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 463651889} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'shootWOReadyReward: ' +--- !u!222 &463651892 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 463651889} + m_CullTransparentMesh: 1 +--- !u!1 &465041949 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 465041950} + - component: {fileID: 465041952} + - component: {fileID: 465041951} + m_Layer: 5 + m_Name: hitReward + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &465041950 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 465041949} + 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: 509053162} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -60} + m_SizeDelta: {x: 316.0601, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &465041951 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 465041949} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'hitReward: ' +--- !u!222 &465041952 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 465041949} + m_CullTransparentMesh: 1 +--- !u!1 &465774758 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 465774759} + - component: {fileID: 465774761} + - component: {fileID: 465774760} + m_Layer: 0 + m_Name: axis_7 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &465774759 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 465774758} + 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: 2054949623} + - {fileID: 720116287} + m_Father: {fileID: 1519188529} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: 87} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &465774760 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 465774758} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &465774761 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 465774758} + m_CullTransparentMesh: 1 +--- !u!1 &472685522 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 472685523} + - component: {fileID: 472685525} + - component: {fileID: 472685524} + m_Layer: 0 + m_Name: painter_5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &472685523 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 472685522} + 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: 1213129649} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &472685524 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 472685522} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &472685525 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 472685522} + m_CullTransparentMesh: 1 +--- !u!1 &474214542 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 474214543} + - component: {fileID: 474214545} + - component: {fileID: 474214544} + m_Layer: 0 + m_Name: axis_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &474214543 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 474214542} + 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: 1475721441} + - {fileID: 763127411} + m_Father: {fileID: 800843590} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 14.5, y: -140} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &474214544 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 474214542} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &474214545 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 474214542} + m_CullTransparentMesh: 1 +--- !u!1 &485630227 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 485630228} + - component: {fileID: 485630230} + - component: {fileID: 485630229} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &485630228 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 485630227} + 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: 518493904} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &485630229 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 485630227} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &485630230 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 485630227} + m_CullTransparentMesh: 1 +--- !u!1 &491271241 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 491271242} + - component: {fileID: 491271244} + - component: {fileID: 491271243} + m_Layer: 0 + m_Name: column2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &491271242 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 491271241} + 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: 801653729} + - {fileID: 2037616963} + m_Father: {fileID: 1175413812} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &491271243 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 491271241} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &491271244 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 491271241} + m_CullTransparentMesh: 1 +--- !u!1 &495150914 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 495150915} + - component: {fileID: 495150917} + - component: {fileID: 495150916} + m_Layer: 0 + m_Name: axis_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &495150915 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 495150914} + 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: 591203361} + - {fileID: 1625376957} + m_Father: {fileID: 800843590} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -93.37999, y: -140} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &495150916 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 495150914} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &495150917 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 495150914} + m_CullTransparentMesh: 1 +--- !u!1 &496880996 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 496880997} + - component: {fileID: 496880999} + - component: {fileID: 496880998} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &496880997 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 496880996} + 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: 188953745} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &496880998 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 496880996} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 60 +--- !u!222 &496880999 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 496880996} + m_CullTransparentMesh: 1 +--- !u!1 &497823043 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 497823044} + m_Layer: 5 + m_Name: RewardsData + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &497823044 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 497823043} + 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: 459517740} + - {fileID: 1031242400} + - {fileID: 725440910} + - {fileID: 2062704623} + - {fileID: 1369105108} + - {fileID: 665628738} + - {fileID: 719190099} + m_Father: {fileID: 1619861058} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -220, y: -100} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &507878345 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 507878346} + - component: {fileID: 507878348} + - component: {fileID: 507878347} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &507878346 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 507878345} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1477455556} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &507878347 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 507878345} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &507878348 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 507878345} + m_CullTransparentMesh: 1 +--- !u!1 &509053161 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 509053162} + m_Layer: 5 + m_Name: RewardsText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &509053162 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 509053161} + 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: 958160271} + - {fileID: 1950007530} + - {fileID: 463651890} + - {fileID: 465041950} + - {fileID: 214633555} + - {fileID: 1821752599} + - {fileID: 1841514737} + m_Father: {fileID: 1619861058} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -400.5, y: -100} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &511399605 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 511399609} + - component: {fileID: 511399608} + - component: {fileID: 511399607} + - component: {fileID: 511399606} + - component: {fileID: 511399610} + m_Layer: 5 + m_Name: UI Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &511399606 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 511399605} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &511399607 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 511399605} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1920, y: 1080} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &511399608 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 511399605} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &511399609 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 511399605} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 215367152} + - {fileID: 1619861058} + - {fileID: 268923344} + - {fileID: 1913659021} + - {fileID: 460761058} + - {fileID: 195883128} + - {fileID: 1747636731} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &511399610 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 511399605} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 09d6c910046a96641836c2d703e88bcd, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &517135390 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 517135391} + - component: {fileID: 517135393} + - component: {fileID: 517135392} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &517135391 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 517135390} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 25903618} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &517135392 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 517135390} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &517135393 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 517135390} + m_CullTransparentMesh: 1 +--- !u!1 &518493903 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 518493904} + - component: {fileID: 518493906} + - component: {fileID: 518493905} + m_Layer: 0 + m_Name: column2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &518493904 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 518493903} + 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: 485630228} + - {fileID: 1179767048} + m_Father: {fileID: 737756490} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &518493905 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 518493903} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &518493906 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 518493903} + m_CullTransparentMesh: 1 +--- !u!1 &528506630 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 528506631} + - component: {fileID: 528506633} + - component: {fileID: 528506632} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &528506631 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 528506630} + 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: 808684899} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &528506632 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 528506630} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: x2 +--- !u!222 &528506633 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 528506630} + m_CullTransparentMesh: 1 +--- !u!1 &532615954 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 532615955} + - component: {fileID: 532615957} + - component: {fileID: 532615956} + m_Layer: 0 + m_Name: Cylinder.009_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &532615955 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 532615954} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 30 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &532615956 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 532615954} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &532615957 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 532615954} + m_Mesh: {fileID: 287060331232230867, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &545189440 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 545189441} + m_Layer: 0 + m_Name: XAxis0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &545189441 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 545189440} + 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: 844985474} + - {fileID: 1113647590} + - {fileID: 1770477494} + - {fileID: 1481370281} + - {fileID: 568499057} + m_Father: {fileID: 611641053} + m_RootOrder: 13 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &559163971 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 559163972} + m_Layer: 0 + m_Name: title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &559163972 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 559163971} + 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: 17027927} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &568499056 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 568499057} + - component: {fileID: 568499059} + - component: {fileID: 568499058} + m_Layer: 0 + m_Name: axis_4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &568499057 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 568499056} + 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: 1356798915} + - {fileID: 2121688058} + m_Father: {fileID: 545189441} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 230.26001, y: -140} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &568499058 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 568499056} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &568499059 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 568499056} + m_CullTransparentMesh: 1 +--- !u!1 &571903140 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 571903141} + - component: {fileID: 571903143} + - component: {fileID: 571903142} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &571903141 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 571903140} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1283581649} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -123.29662, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &571903142 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 571903140} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &571903143 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 571903140} + m_CullTransparentMesh: 1 +--- !u!1 &591203360 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 591203361} + - component: {fileID: 591203363} + - component: {fileID: 591203362} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &591203361 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 591203360} + 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: 495150915} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &591203362 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 591203360} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: x2 +--- !u!222 &591203363 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 591203360} + m_CullTransparentMesh: 1 +--- !u!1 &595285975 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 595285976} + - component: {fileID: 595285978} + - component: {fileID: 595285977} + m_Layer: 0 + m_Name: axis_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &595285976 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 595285975} + 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: 1133378795} + - {fileID: 804560882} + m_Father: {fileID: 1372129984} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: -93} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &595285977 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 595285975} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &595285978 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 595285975} + m_CullTransparentMesh: 1 +--- !u!1 &600869054 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 600869055} + - component: {fileID: 600869057} + - component: {fileID: 600869056} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &600869055 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 600869054} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1113647590} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &600869056 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 600869054} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &600869057 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 600869054} + m_CullTransparentMesh: 1 +--- !u!1 &602372910 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 602372911} + - component: {fileID: 602372913} + - component: {fileID: 602372912} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &602372911 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 602372910} + 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: 1770477494} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &602372912 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 602372910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: x3 +--- !u!222 &602372913 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 602372910} + m_CullTransparentMesh: 1 +--- !u!1 &611641052 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 611641053} + - component: {fileID: 611641055} + - component: {fileID: 611641054} + m_Layer: 0 + m_Name: RealTimeKeyCounterChart + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &611641053 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 611641052} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1530748063} + - {fileID: 1234285013} + - {fileID: 2116623349} + - {fileID: 1236075753} + - {fileID: 420980396} + - {fileID: 435476306} + - {fileID: 448010746} + - {fileID: 1966151977} + - {fileID: 439946273} + - {fileID: 1213032258} + - {fileID: 381530243} + - {fileID: 1543384452} + - {fileID: 1037816792} + - {fileID: 545189441} + - {fileID: 890182309} + - {fileID: 1876561007} + - {fileID: 2037666613} + - {fileID: 855143409} + m_Father: {fileID: 268923344} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 353.4, y: -354} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &611641054 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 611641052} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 535d2697503c2a94a887354e22a5414d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_EnableTextMeshPro: 0 + m_DebugInfo: + m_Show: 1 + m_ShowDebugInfo: 0 + m_ShowAllChartObject: 0 + m_FoldSeries: 0 + m_LabelStyle: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0.1254902, g: 0.1254902, b: 0.1254902, a: 0.6666667} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontSize: 18 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_ChartName: + m_Theme: + m_Show: 1 + m_SharedTheme: {fileID: 11400000, guid: e1dc23a10de1e4c5dbfbaf74c4dfd218, type: 2} + m_TransparentBackground: 1 + m_EnableCustomTheme: 0 + m_CustomFont: {fileID: 0} + m_CustomBackgroundColor: + serializedVersion: 2 + rgba: 0 + m_CustomColorPalette: [] + m_Settings: + m_Show: 1 + m_MaxPainter: 10 + m_ReversePainter: 0 + m_BasePainterMaterial: {fileID: 0} + m_SeriePainterMaterial: {fileID: 0} + m_TopPainterMaterial: {fileID: 0} + m_LineSmoothStyle: 3 + m_LineSmoothness: 2 + m_LineSegmentDistance: 3 + m_CicleSmoothness: 2 + m_LegendIconLineWidth: 2 + m_LegendIconCornerRadius: + - 0.25 + - 0.25 + - 0.25 + - 0.25 + m_AngleAxes: [] + m_Backgrounds: [] + m_DataZooms: [] + m_Grids: + - m_Show: 1 + m_Left: 0.06 + m_Right: 0.01 + m_Top: 0.11 + m_Bottom: 0.09 + m_BackgroundColor: + serializedVersion: 2 + rgba: 0 + m_ShowBorder: 1 + m_BorderWidth: 0 + m_BorderColor: + serializedVersion: 2 + rgba: 0 + m_Legends: [] + m_MarkLines: [] + m_MarkAreas: [] + m_Polars: [] + m_Radars: [] + m_RadiusAxes: [] + m_Titles: + - m_Show: 1 + m_Text: realTimeKeyCounter + m_SubText: + m_LabelStyle: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_SubLabelStyle: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_ItemGap: 0 + m_Location: + m_Align: 2 + m_Left: 0 + m_Right: 0 + m_Top: -0 + m_Bottom: 0 + m_Tooltips: + - m_Show: 1 + m_Type: 1 + m_Trigger: 1 + m_ItemFormatter: + m_TitleFormatter: + m_Marker: "\u25CF" + m_FixedWidth: 0 + m_FixedHeight: 0 + m_MinWidth: 0 + m_MinHeight: 0 + m_NumericFormatter: + m_PaddingLeftRight: 10 + m_PaddingTopBottom: 10 + m_IgnoreDataShow: 0 + m_IgnoreDataDefaultContent: '-' + m_ShowContent: 1 + m_AlwayShowContent: 0 + m_Offset: {x: 18, y: -25} + m_BackgroundImage: {fileID: 0} + m_BackgroundType: 0 + m_BackgroundColor: {r: 0, g: 0, b: 0, a: 0} + m_BorderWidth: 2 + m_FixedXEnable: 0 + m_FixedX: 0 + m_FixedYEnable: 0 + m_FixedY: 0 + m_TitleHeight: 25 + m_ItemHeight: 25 + m_BorderColor: + serializedVersion: 2 + rgba: 4293322470 + m_LineStyle: + m_Show: 1 + m_Type: 5 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_IndicatorLabelStyle: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_TitleLabelStyle: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 3 + m_ContentLabelStyles: + - m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 0 + m_Right: 5 + m_Left: 0 + m_Bottom: 0 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 3 + - m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 0 + m_Right: 20 + m_Left: 0 + m_Bottom: 0 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 3 + - m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 0 + m_Right: 0 + m_Left: 0 + m_Bottom: 0 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 5 + m_VisualMaps: [] + m_XAxes: + - m_Show: 1 + m_Type: 1 + m_MinMaxType: 0 + m_GridIndex: 0 + m_PolarIndex: 0 + m_ParallelIndex: 0 + m_Position: 2 + m_Offset: 0 + m_Min: 0 + m_Max: 0 + m_SplitNumber: 0 + m_Interval: 0 + m_BoundaryGap: 1 + m_MaxCache: 0 + m_LogBase: 10 + m_LogBaseE: 0 + m_CeilRate: 0 + m_Inverse: 0 + m_Clockwise: 1 + m_InsertDataToHead: 0 + m_Icons: [] + m_Data: + - x1 + - x2 + - x3 + - x4 + - x5 + m_AxisLine: + m_Show: 1 + m_LineStyle: + m_Show: 1 + m_Type: 5 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_OnZero: 1 + m_ShowArrow: 0 + m_Arrow: + m_Width: 10 + m_Height: 15 + m_Offset: 0 + m_Dent: 3 + m_Color: + serializedVersion: 2 + rgba: 0 + m_AxisName: + m_Show: 0 + m_Name: axisName + m_LabelStyle: + m_Show: 1 + m_Position: 10 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_AxisTick: + m_Show: 1 + m_LineStyle: + m_Show: 1 + m_Type: 0 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_AlignWithLabel: 0 + m_Inside: 0 + m_ShowStartTick: 1 + m_ShowEndTick: 1 + m_Distance: 0 + m_SplitNumber: 0 + m_AutoColor: 0 + m_AxisLabel: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 8 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_Interval: 0 + m_Inside: 0 + m_ShowAsPositiveNumber: 0 + m_OnZero: 0 + m_ShowStartLabel: 1 + m_ShowEndLabel: 1 + m_TextLimit: + m_Enable: 1 + m_MaxWidth: 0 + m_Gap: 1 + m_Suffix: ... + m_SplitLine: + m_Show: 0 + m_LineStyle: + m_Show: 1 + m_Type: 5 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_Interval: 0 + m_Distance: 0 + m_AutoColor: 0 + m_SplitArea: + m_Show: 0 + m_Color: [] + m_YAxes: + - m_Show: 1 + m_Type: 0 + m_MinMaxType: 0 + m_GridIndex: 0 + m_PolarIndex: 0 + m_ParallelIndex: 0 + m_Position: 0 + m_Offset: 0 + m_Min: 0 + m_Max: 0 + m_SplitNumber: 0 + m_Interval: 0 + m_BoundaryGap: 0 + m_MaxCache: 0 + m_LogBase: 10 + m_LogBaseE: 0 + m_CeilRate: 0 + m_Inverse: 0 + m_Clockwise: 1 + m_InsertDataToHead: 0 + m_Icons: [] + m_Data: [] + m_AxisLine: + m_Show: 1 + m_LineStyle: + m_Show: 1 + m_Type: 5 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_OnZero: 1 + m_ShowArrow: 0 + m_Arrow: + m_Width: 10 + m_Height: 15 + m_Offset: 0 + m_Dent: 3 + m_Color: + serializedVersion: 2 + rgba: 0 + m_AxisName: + m_Show: 0 + m_Name: axisName + m_LabelStyle: + m_Show: 1 + m_Position: 10 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_AxisTick: + m_Show: 1 + m_LineStyle: + m_Show: 1 + m_Type: 0 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_AlignWithLabel: 0 + m_Inside: 0 + m_ShowStartTick: 1 + m_ShowEndTick: 1 + m_Distance: 0 + m_SplitNumber: 0 + m_AutoColor: 0 + m_AxisLabel: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 8 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_Interval: 0 + m_Inside: 0 + m_ShowAsPositiveNumber: 0 + m_OnZero: 0 + m_ShowStartLabel: 1 + m_ShowEndLabel: 1 + m_TextLimit: + m_Enable: 0 + m_MaxWidth: 0 + m_Gap: 1 + m_Suffix: ... + m_SplitLine: + m_Show: 1 + m_LineStyle: + m_Show: 1 + m_Type: 5 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_Interval: 0 + m_Distance: 0 + m_AutoColor: 0 + m_SplitArea: + m_Show: 0 + m_Color: [] + m_SingleAxes: [] + m_Parallels: [] + m_ParallelAxes: [] + m_Comments: [] + m_SerieBars: + - m_Labels: [] + m_LabelLines: [] + m_EndLabels: [] + m_LineArrows: [] + m_AreaStyles: [] + m_TitleStyles: [] + m_EmphasisItemStyles: [] + m_EmphasisLabels: [] + m_EmphasisLabelLines: [] + m_Index: 0 + m_Show: 1 + m_CoordSystem: GridCoord + m_SerieType: Bar + m_SerieName: serie0 + m_Stack: + m_XAxisIndex: 0 + m_YAxisIndex: 0 + m_RadarIndex: 0 + m_VesselIndex: 0 + m_PolarIndex: 0 + m_SingleAxisIndex: 0 + m_ParallelIndex: 0 + m_MinShow: 0 + m_MaxShow: 0 + m_MaxCache: 0 + m_SampleDist: 0 + m_SampleType: 1 + m_SampleAverage: 0 + m_LineType: 0 + m_BarType: 0 + m_BarPercentStack: 0 + m_BarWidth: 0 + m_BarGap: 0.1 + m_BarZebraWidth: 4 + m_BarZebraGap: 2 + m_Min: 0 + m_Max: 0 + m_MinSize: 0 + m_MaxSize: 1 + m_StartAngle: 0 + m_EndAngle: 0 + m_MinAngle: 0 + m_Clockwise: 1 + m_RoundCap: 0 + m_SplitNumber: 0 + m_ClickOffset: 1 + m_RoseType: 0 + m_Gap: 0 + m_Center: + - 0.5 + - 0.48 + m_Radius: + - 0 + - 0.28 + m_ShowDataDimension: 1 + m_ShowDataName: 0 + m_Clip: 0 + m_Ignore: 0 + m_IgnoreValue: 0 + m_IgnoreLineBreak: 0 + m_ShowAsPositiveNumber: 0 + m_Large: 1 + m_LargeThreshold: 200 + m_AvoidLabelOverlap: 0 + m_RadarType: 0 + m_PlaceHolder: 0 + m_DataSortType: 2 + m_Orient: 1 + m_Align: 0 + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_InsertDataToHead: 0 + m_LineStyle: + m_Show: 1 + m_Type: 0 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_Symbol: + m_Show: 0 + m_Type: 3 + m_Size: 0 + m_Gap: 0 + m_Width: 0 + m_Height: 0 + m_Offset: {x: 0, y: 0} + m_Image: {fileID: 0} + m_ImageType: 0 + m_Color: + serializedVersion: 2 + rgba: 0 + m_SizeType: 0 + m_SelectedSize: 0 + m_DataIndex: 1 + m_DataScale: 1 + m_SelectedDataScale: 1.5 + m_StartIndex: 0 + m_Interval: 0 + m_ForceShowLast: 0 + m_Repeat: 0 + m_Animation: + m_Enable: 1 + m_Type: 0 + m_Easting: 0 + m_Threshold: 2000 + m_FadeInDuration: 1000 + m_FadeInDelay: 0 + m_FadeOutDuration: 1000 + m_FadeOutDelay: 0 + m_DataChangeEnable: 1 + m_DataChangeDuration: 500 + m_ActualDuration: 0 + m_ItemStyle: + m_Show: 1 + m_Color: + serializedVersion: 2 + rgba: 0 + m_Color0: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_BackgroundColor: + serializedVersion: 2 + rgba: 0 + m_BackgroundWidth: 0 + m_CenterColor: + serializedVersion: 2 + rgba: 0 + m_CenterGap: 0 + m_BorderWidth: 0 + m_BorderGap: 0 + m_BorderColor: + serializedVersion: 2 + rgba: 0 + m_BorderColor0: + serializedVersion: 2 + rgba: 0 + m_BorderToColor: + serializedVersion: 2 + rgba: 0 + m_Opacity: 1 + m_ItemMarker: + m_ItemFormatter: + m_NumericFormatter: + m_CornerRadius: + - 0 + - 0 + - 0 + - 0 + m_Data: + - m_Index: 0 + m_Name: + m_Id: + m_ParentId: + m_Ignore: 0 + m_Selected: 0 + m_Radius: 0 + m_ItemStyles: [] + m_Labels: [] + m_LabelLines: [] + m_Symbols: [] + m_LineStyles: [] + m_AreaStyles: [] + m_TitleStyles: [] + m_EmphasisItemStyles: [] + m_EmphasisLabels: [] + m_EmphasisLabelLines: [] + m_Data: + - 0 + - 27 + - m_Index: 1 + m_Name: + m_Id: + m_ParentId: + m_Ignore: 0 + m_Selected: 0 + m_Radius: 0 + m_ItemStyles: [] + m_Labels: [] + m_LabelLines: [] + m_Symbols: [] + m_LineStyles: [] + m_AreaStyles: [] + m_TitleStyles: [] + m_EmphasisItemStyles: [] + m_EmphasisLabels: [] + m_EmphasisLabelLines: [] + m_Data: + - 1 + - 73 + - m_Index: 2 + m_Name: + m_Id: + m_ParentId: + m_Ignore: 0 + m_Selected: 0 + m_Radius: 0 + m_ItemStyles: [] + m_Labels: [] + m_LabelLines: [] + m_Symbols: [] + m_LineStyles: [] + m_AreaStyles: [] + m_TitleStyles: [] + m_EmphasisItemStyles: [] + m_EmphasisLabels: [] + m_EmphasisLabelLines: [] + m_Data: + - 2 + - 52 + - m_Index: 3 + m_Name: + m_Id: + m_ParentId: + m_Ignore: 0 + m_Selected: 0 + m_Radius: 0 + m_ItemStyles: [] + m_Labels: [] + m_LabelLines: [] + m_Symbols: [] + m_LineStyles: [] + m_AreaStyles: [] + m_TitleStyles: [] + m_EmphasisItemStyles: [] + m_EmphasisLabels: [] + m_EmphasisLabelLines: [] + m_Data: + - 3 + - 67 + - m_Index: 4 + m_Name: + m_Id: + m_ParentId: + m_Ignore: 0 + m_Selected: 0 + m_Radius: 0 + m_ItemStyles: [] + m_Labels: [] + m_LabelLines: [] + m_Symbols: [] + m_LineStyles: [] + m_AreaStyles: [] + m_TitleStyles: [] + m_EmphasisItemStyles: [] + m_EmphasisLabels: [] + m_EmphasisLabelLines: [] + m_Data: + - 4 + - 48 + m_SerieCandlesticks: [] + m_SerieEffectScatters: [] + m_SerieHeatmaps: [] + m_SerieLines: [] + m_SeriePies: [] + m_SerieRadars: [] + m_SerieRings: [] + m_SerieScatters: [] + m_SerieParallels: [] + m_SerieSimplifiedLines: [] + m_SerieSimplifiedBars: [] + m_SerieSimplifiedCandlesticks: [] +--- !u!222 &611641055 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 611641052} + m_CullTransparentMesh: 1 +--- !u!1 &621445972 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 621445973} + - component: {fileID: 621445975} + - component: {fileID: 621445974} + m_Layer: 0 + m_Name: Torus.001_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &621445973 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 621445972} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: 0.36568335, y: 1.2728398, z: 3.6131558} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 35 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &621445974 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 621445972} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &621445975 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 621445972} + m_Mesh: {fileID: 7206358537197127457, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &625252341 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 625252342} + m_Layer: 0 + m_Name: debug + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &625252342 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 625252341} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 2088978190} + m_Father: {fileID: 1213129649} + m_RootOrder: 17 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0, y: 1} +--- !u!1 &629870337 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 629870343} + - component: {fileID: 629870342} + - component: {fileID: 629870341} + - component: {fileID: 629870340} + - component: {fileID: 629870339} + - component: {fileID: 629870338} + - component: {fileID: 629870344} + - component: {fileID: 629870345} + - component: {fileID: 629870346} + m_Layer: 0 + m_Name: Agent + m_TagString: Enemy + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &629870338 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 629870337} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3a5c9d521e5ef4759a8246a07d52221e, type: 3} + m_Name: + m_EditorClassIdentifier: + DecisionPeriod: 1 + TakeActionsBetweenDecisions: 0 +--- !u!114 &629870339 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 629870337} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5d1c4e0b1822b495aa52bc52839ecb30, type: 3} + m_Name: + m_EditorClassIdentifier: + m_BrainParameters: + VectorObservationSize: 31 + NumStackedVectorObservations: 1 + m_ActionSpec: + m_NumContinuousActions: 1 + BranchSizes: 0100000001000000010000000100000001000000 + VectorActionSize: + VectorActionDescriptions: [] + VectorActionSpaceType: 0 + hasUpgradedBrainParametersWithActionSpec: 1 + m_Model: {fileID: 0} + m_InferenceDevice: 0 + m_BehaviorType: 0 + m_BehaviorName: AKMAgent + TeamId: 0 + m_UseChildSensors: 1 + m_UseChildActuators: 1 + m_ObservableAttributeHandling: 0 +--- !u!114 &629870340 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 629870337} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4faf6e358e53cc24582eaff8dd830f97, type: 3} + m_Name: + m_EditorClassIdentifier: + agentParameters: + maxStep: 0 + hasUpgradedFromAgentParameters: 1 + MaxStep: 0 + thisAgentObj: {fileID: 629870337} + thisAgent: {fileID: 629870343} + thisCam: {fileID: 1633276149} + PlayerController: {fileID: 629870342} + enemyPrefab: {fileID: 8240453774489061354, guid: c044b8f18a5ed2f4eaabb8d40095018f, type: 3} + nonRewardDefault: -0.05 + shootRewardDefault: -0.1 + shootWithoutReadyRewardDefault: -1 + hitRewardDefault: 2 + winRewardDefault: 10 + loseRewardDefault: -10 + killRewardDefault: 5 + lockMouse: 0 + Damage: 50 + fireRate: 0.5 + enemyNum: 3 + timeLimit: 30 + lockCameraX: 0 + lockCameraY: 1 + minEnemyAreaX: -12 + maxEnemyAreaX: 11 + minEnemyAreaY: -20 + maxEnemyAreaY: 20 + minAgentAreaX: -12 + maxAgentAreaX: 11 + minAgentAreaY: -28 + maxAgentAreaY: -22 + MoveSpeed: 2 + vX: 0 + vZ: 0 + acceleration: 0.1 + mouseXSensitivity: 100 + mouseYSensitivity: 200 + yRotation: 0.1 +--- !u!114 &629870341 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 629870337} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 787273829b64d4d4b8237ea7316f59ce, type: 3} + m_Name: + m_EditorClassIdentifier: + agentCam: {fileID: 1633276149} + myself: {fileID: 629870337} + rayNum: 11 + EnemyTagName: Enemy + WallTagName: Wall + viewDistance: 100 + Damage: 50 + attentionRange: 1 + MaxDistance: 1e+10 + EnemyWidthRedundancy: 0.01 + showEnemySensor: 1 + showEyeSensor: 1 +--- !u!143 &629870342 +CharacterController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 629870337} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Height: 2 + m_Radius: 0.5 + m_SlopeLimit: 45 + m_StepOffset: 0.3 + m_SkinWidth: 0.08 + m_MinMoveDistance: 0.001 + m_Center: {x: 0, y: 0, z: 0} +--- !u!4 &629870343 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 629870337} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -28} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1233692427} + - {fileID: 1633276152} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &629870344 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 629870337} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88b6042bc9a5d4aa58d931eae49442e5, type: 3} + m_Name: + m_EditorClassIdentifier: + agentParameters: + maxStep: 0 + hasUpgradedFromAgentParameters: 1 + MaxStep: 0 +--- !u!114 &629870345 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 629870337} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89d83d123322a5c4ba6afb3c86403371, type: 3} + m_Name: + m_EditorClassIdentifier: + updateStep: 3000 + upText: {fileID: 406639880} + downText: {fileID: 228560051} + leftText: {fileID: 2047194227} + rightText: {fileID: 52116503} + shootText: {fileID: 854133117} + MouseText: {fileID: 438520159} + remainTimeText: {fileID: 1510253035} + remainEnemyText: {fileID: 1266400769} + mouseVisualizationBG: {fileID: 1565640927} + mouseVisualizationMeter: {fileID: 52138318} + nonRewardText: {fileID: 459517742} + shootRewardText: {fileID: 1031242402} + shootWithoutReadyRewardText: {fileID: 725440912} + hitRewardText: {fileID: 2062704625} + winRewardText: {fileID: 665628740} + loseRewardText: {fileID: 719190101} + killRewardText: {fileID: 1369105110} + realTimeRewardChartOBJ: {fileID: 1213129646} + realTimeKeyCounterChartOBJ: {fileID: 611641052} + EPTotalRewardsChartOBJ: {fileID: 201489783} + mouseMaxMovement: 15 +--- !u!114 &629870346 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 629870337} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3a3e891536ddde24b86cbac3ad3837e6, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &636386815 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 636386819} + - component: {fileID: 636386818} + - component: {fileID: 636386817} + - component: {fileID: 636386816} + m_Layer: 0 + m_Name: Ground + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!64 &636386816 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 636386815} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &636386817 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 636386815} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 252e5cac7f0c5a440b896aff10da8c72, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &636386818 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 636386815} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &636386819 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 636386815} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 10, y: 1, z: 10} + m_Children: [] + m_Father: {fileID: 1423193378} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &637116272 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 637116273} + - component: {fileID: 637116275} + - component: {fileID: 637116274} + m_Layer: 0 + m_Name: painter_3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &637116273 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 637116272} + 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: 1213129649} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &637116274 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 637116272} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &637116275 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 637116272} + m_CullTransparentMesh: 1 +--- !u!1 &645014595 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 645014596} + - component: {fileID: 645014598} + - component: {fileID: 645014597} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &645014596 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 645014595} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1186343261} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &645014597 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 645014595} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &645014598 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 645014595} + m_CullTransparentMesh: 1 +--- !u!43 &647063595 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: pb_Mesh27232 + serializedVersion: 10 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 36 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 24 + localAABB: + m_Center: {x: 25, y: 1, z: -0.5} + m_Extent: {x: 25, y: 1, z: 0.5} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 1 + m_KeepVertices: 1 + m_KeepIndices: 1 + m_IndexFormat: 0 + m_IndexBuffer: 000001000200010003000200040005000600050007000600080009000a0009000b000a000c000d000e000d000f000e00100011001200110013001200140015001600150017001600 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 24 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 24 + format: 0 + dimension: 4 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 40 + format: 0 + dimension: 2 + - stream: 0 + offset: 48 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 1344 + _typelessdata: 00000000000000000000000000000000000000000000803f000080bf0000000000000000000080bf0000000000000000ced7a33c2ea6c93d00004842000000000000000000000000000000000000803f000080bf0000000000000000000080bf000048c2000000000f467b3f2ea6c93d00000000000000400000000000000000000000000000803f000080bf0000000000000000000080bf00000000000000400bd7a33c8b350c3e00004842000000400000000000000000000000000000803f000080bf0000000000000000000080bf000048c20000004009467b3f8b350c3e0000484200000000000000000000803f000000000000000000000000000000000000803f000080bf00000000000000000ed7a33c8b358c3e0000484200000000000080bf0000803f000000000000000000000000000000000000803f000080bf000080bf000000000bd7a33cee5c823e0000484200000040000000000000803f000000000000000000000000000000000000803f000080bf00000000000000405b756f3d8b358c3e0000484200000040000080bf0000803f000000000000000000000000000000000000803f000080bf000080bf0000004059756f3dee5c823e0000484200000000000080bf0000000000000000000080bf0000803f0000000000000000000080bf0000484200000000ced7a33c6cb0203e0000000000000000000080bf0000000000000000000080bf0000803f0000000000000000000080bf00000000000000000f467b3f6cb0203e0000484200000040000080bf0000000000000000000080bf0000803f0000000000000000000080bf00004842000000400bd7a33ce112483e0000000000000040000080bf0000000000000000000080bf0000803f0000000000000000000080bf000000000000004009467b3fe112483e0000000000000000000080bf000080bf00000000000000000000000000000000000080bf000080bf0000803f0000000059756f3dc28d5c3e000000000000000000000000000080bf00000000000000000000000000000000000080bf000080bf00000000000000005b756f3dfb3e703e0000000000000040000080bf000080bf00000000000000000000000000000000000080bf000080bf0000803f000000400bd7a33cc28d5c3e000000000000004000000000000080bf00000000000000000000000000000000000080bf000080bf00000000000000400ed7a33cfb3e703e000000000000004000000000000000000000803f000000000000803f0000000000000000000080bf00000000000000001b467b3f6bb0a03d000048420000004000000000000000000000803f000000000000803f0000000000000000000080bf00004842000000003fd8a33c6bb0a03d0000000000000040000080bf000000000000803f000000000000803f0000000000000000000080bf00000000000080bf11467b3ff19b723d0000484200000040000080bf000000000000803f000000000000803f0000000000000000000080bf00004842000080bf0bd7a33cf19b723d0000000000000000000080bf00000000000080bf00000000000080bf0000000000000000000080bf00000000000080bf0bd7a33c0bd7a33c0000484200000000000080bf00000000000080bf00000000000080bf0000000000000000000080bf000048c2000080bf11467b3f0bd7a33c00000000000000000000000000000000000080bf00000000000080bf0000000000000000000080bf00000000000000003fd8a33c6bb0203d00004842000000000000000000000000000080bf00000000000080bf0000000000000000000080bf000048c2000000001b467b3f6bb0203d + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: 25, y: 1, z: -0.5} + m_Extent: {x: 25, y: 1, z: 0.5} + m_MeshUsageFlags: 0 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + m_MeshMetrics[0]: 1 + m_MeshMetrics[1]: 1 + m_MeshOptimizationFlags: 1 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: +--- !u!1 &648100778 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 648100779} + - component: {fileID: 648100781} + - component: {fileID: 648100780} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &648100779 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 648100778} + 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: 1148611240} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 3, y: 0} + m_SizeDelta: {x: -6, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &648100780 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 648100778} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 69 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &648100781 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 648100778} + m_CullTransparentMesh: 1 +--- !u!1 &648258323 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 648258324} + - component: {fileID: 648258326} + - component: {fileID: 648258325} + m_Layer: 0 + m_Name: column1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &648258324 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 648258323} + 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: 295944708} + - {fileID: 1344447592} + m_Father: {fileID: 737756490} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &648258325 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 648258323} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &648258326 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 648258323} + m_CullTransparentMesh: 1 +--- !u!1 &649944397 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 649944398} + - component: {fileID: 649944400} + - component: {fileID: 649944399} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &649944398 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 649944397} + 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: 1470983556} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &649944399 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 649944397} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: x1 +--- !u!222 &649944400 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 649944397} + m_CullTransparentMesh: 1 +--- !u!1 &665628737 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 665628738} + - component: {fileID: 665628739} + - component: {fileID: 665628740} + m_Layer: 5 + m_Name: winRewardData + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &665628738 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 665628737} + 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: 497823044} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -100} + m_SizeDelta: {x: 70, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &665628739 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 665628737} + m_CullTransparentMesh: 1 +--- !u!114 &665628740 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 665628737} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 00 +--- !u!1 &666949838 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 666949839} + m_Layer: 0 + m_Name: TPSCamera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &666949839 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 666949838} + m_LocalRotation: {x: 0.35355338, y: 0.35355338, z: -0.1464466, w: 0.8535535} + m_LocalPosition: {x: -16.12, y: 18.1, z: -31.86} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 348429002} + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 45, y: 45, z: 0} +--- !u!1 &670541041 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 670541042} + - component: {fileID: 670541044} + - component: {fileID: 670541043} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &670541042 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670541041} + 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: 2076769193} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &670541043 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670541041} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 17 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <<< +--- !u!222 &670541044 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670541041} + m_CullTransparentMesh: 1 +--- !u!1 &678277789 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 678277790} + - component: {fileID: 678277792} + - component: {fileID: 678277791} + m_Layer: 0 + m_Name: Cube.002_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &678277790 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 678277789} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &678277791 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 678277789} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &678277792 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 678277789} + m_Mesh: {fileID: 7848903858435477928, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &691081142 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 691081143} + - component: {fileID: 691081145} + - component: {fileID: 691081144} + m_Layer: 0 + m_Name: axis_5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &691081143 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 691081142} + 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: 69535875} + - {fileID: 1010425409} + m_Father: {fileID: 890182309} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: 37} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &691081144 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 691081142} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &691081145 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 691081142} + m_CullTransparentMesh: 1 +--- !u!1 &695855997 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 695855998} + - component: {fileID: 695856000} + - component: {fileID: 695855999} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &695855998 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 695855997} + 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: 1822552283} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 4, y: -2} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &695855999 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 695855997} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &695856000 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 695855997} + m_CullTransparentMesh: 1 +--- !u!4 &698893709 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + m_PrefabInstance: {fileID: 1342743755} + m_PrefabAsset: {fileID: 0} +--- !u!1 &705507993 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 705507995} + - component: {fileID: 705507994} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!108 &705507994 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 705507993} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 1 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &705507995 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 705507993} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1423193378} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &717272750 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 717272751} + - component: {fileID: 717272753} + - component: {fileID: 717272752} + m_Layer: 0 + m_Name: axis_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &717272751 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 717272750} + 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: 793704201} + - {fileID: 1199612232} + m_Father: {fileID: 890182309} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: -59} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &717272752 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 717272750} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &717272753 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 717272750} + m_CullTransparentMesh: 1 +--- !u!1 &719190098 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 719190099} + - component: {fileID: 719190100} + - component: {fileID: 719190101} + m_Layer: 5 + m_Name: loseRewardData + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &719190099 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 719190098} + 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: 497823044} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -120} + m_SizeDelta: {x: 70, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &719190100 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 719190098} + m_CullTransparentMesh: 1 +--- !u!114 &719190101 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 719190098} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 00 +--- !u!1 &720116286 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 720116287} + - component: {fileID: 720116289} + - component: {fileID: 720116288} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &720116287 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 720116286} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 465774759} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &720116288 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 720116286} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &720116289 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 720116286} + m_CullTransparentMesh: 1 +--- !u!1 &721859326 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 721859327} + - component: {fileID: 721859329} + - component: {fileID: 721859328} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &721859327 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 721859326} + 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: 358674451} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &721859328 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 721859326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 30 +--- !u!222 &721859329 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 721859326} + m_CullTransparentMesh: 1 +--- !u!1 &725440909 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 725440910} + - component: {fileID: 725440911} + - component: {fileID: 725440912} + m_Layer: 5 + m_Name: shootWithoutReadyRewardData + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &725440910 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 725440909} + 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: 497823044} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -40} + m_SizeDelta: {x: 70, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &725440911 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 725440909} + m_CullTransparentMesh: 1 +--- !u!114 &725440912 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 725440909} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 00 +--- !u!1 &733816197 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 733816198} + - component: {fileID: 733816200} + - component: {fileID: 733816199} + m_Layer: 0 + m_Name: title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &733816198 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 733816197} + 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: 1462706065} + - {fileID: 951578499} + m_Father: {fileID: 1037816792} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 211.93391, y: 29.680567} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &733816199 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 733816197} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &733816200 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 733816197} + m_CullTransparentMesh: 1 +--- !u!1 &737756489 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 737756490} + m_Layer: 0 + m_Name: item0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &737756490 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 737756489} + 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: 335823787} + - {fileID: 648258324} + - {fileID: 518493904} + m_Father: {fileID: 1053490561} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 25} + m_Pivot: {x: 0, y: 0.5} +--- !u!1 &745459473 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 745459474} + - component: {fileID: 745459476} + - component: {fileID: 745459475} + m_Layer: 0 + m_Name: Cube.016_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &745459474 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 745459473} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 16 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &745459475 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 745459473} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &745459476 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 745459473} + m_Mesh: {fileID: 7170122609824211509, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &755709329 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 755709330} + - component: {fileID: 755709332} + - component: {fileID: 755709331} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &755709330 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755709329} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 885432327} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &755709331 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755709329} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &755709332 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755709329} + m_CullTransparentMesh: 1 +--- !u!1 &756103203 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 756103204} + - component: {fileID: 756103207} + - component: {fileID: 756103206} + - component: {fileID: 756103205} + m_Layer: 5 + m_Name: nonInput + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &756103204 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 756103203} + 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: 2141716} + - {fileID: 307946889} + m_Father: {fileID: 194652655} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 70, y: 0} + m_SizeDelta: {x: 100, y: 22} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &756103205 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 756103203} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 756103206} + m_TextComponent: {fileID: 307946890} + m_Placeholder: {fileID: 2141717} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 +--- !u!114 &756103206 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 756103203} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &756103207 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 756103203} + m_CullTransparentMesh: 1 +--- !u!1 &758017858 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 758017859} + - component: {fileID: 758017861} + - component: {fileID: 758017860} + m_Layer: 0 + m_Name: painter_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &758017859 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 758017858} + 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: 201489786} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &758017860 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 758017858} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &758017861 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 758017858} + m_CullTransparentMesh: 1 +--- !u!1 &758796083 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 758796084} + - component: {fileID: 758796086} + - component: {fileID: 758796085} + m_Layer: 0 + m_Name: Cylinder.006_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &758796084 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 758796083} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 28 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &758796085 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 758796083} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &758796086 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 758796083} + m_Mesh: {fileID: -8980357973529549349, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &763127410 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 763127411} + - component: {fileID: 763127413} + - component: {fileID: 763127412} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &763127411 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 763127410} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 474214543} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &763127412 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 763127410} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &763127413 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 763127410} + m_CullTransparentMesh: 1 +--- !u!1 &785752918 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 785752919} + - component: {fileID: 785752922} + - component: {fileID: 785752921} + - component: {fileID: 785752920} + m_Layer: 5 + m_Name: hitInput + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &785752919 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785752918} + 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: 2138874024} + - {fileID: 1304207500} + m_Father: {fileID: 194652655} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 70, y: -60} + m_SizeDelta: {x: 100, y: 22} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &785752920 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785752918} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 785752921} + m_TextComponent: {fileID: 1304207501} + m_Placeholder: {fileID: 2138874025} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 +--- !u!114 &785752921 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785752918} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &785752922 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785752918} + m_CullTransparentMesh: 1 +--- !u!1 &793704200 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 793704201} + - component: {fileID: 793704203} + - component: {fileID: 793704202} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &793704201 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 793704200} + 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: 717272751} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &793704202 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 793704200} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 20 +--- !u!222 &793704203 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 793704200} + m_CullTransparentMesh: 1 +--- !u!1 &795430070 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 795430071} + - component: {fileID: 795430073} + - component: {fileID: 795430072} + m_Layer: 0 + m_Name: painter_9 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &795430071 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 795430070} + 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: 201489786} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &795430072 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 795430070} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &795430073 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 795430070} + m_CullTransparentMesh: 1 +--- !u!1 &796009155 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 796009156} + - component: {fileID: 796009158} + - component: {fileID: 796009157} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &796009156 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 796009155} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 102944256} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &796009157 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 796009155} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &796009158 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 796009155} + m_CullTransparentMesh: 1 +--- !u!1 &800325710 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 800325714} + - component: {fileID: 800325713} + - component: {fileID: 800325712} + - component: {fileID: 800325711} + m_Layer: 5 + m_Name: shootWithoutReadyAddBT + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &800325711 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 800325710} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 800325712} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 194652656} + m_TargetAssemblyTypeName: RewardChanger, Assembly-CSharp + m_MethodName: shootWithoutReadyRBTPresses + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &800325712 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 800325710} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &800325713 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 800325710} + m_CullTransparentMesh: 1 +--- !u!224 &800325714 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 800325710} + 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: 2142133932} + m_Father: {fileID: 194652655} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -40} + m_SizeDelta: {x: 40, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &800843589 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 800843590} + m_Layer: 0 + m_Name: XAxis0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &800843590 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 800843589} + 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: 1470983556} + - {fileID: 495150915} + - {fileID: 474214543} + - {fileID: 221517429} + - {fileID: 2085253772} + m_Father: {fileID: 1213129649} + m_RootOrder: 13 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &801653728 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 801653729} + - component: {fileID: 801653731} + - component: {fileID: 801653730} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &801653729 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 801653728} + 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: 491271242} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &801653730 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 801653728} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &801653731 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 801653728} + m_CullTransparentMesh: 1 +--- !u!1 &802051161 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 802051162} + - component: {fileID: 802051164} + - component: {fileID: 802051163} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &802051162 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 802051161} + 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: 1635496871} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &802051163 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 802051161} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 10 +--- !u!222 &802051164 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 802051161} + m_CullTransparentMesh: 1 +--- !u!1 &804560881 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 804560882} + - component: {fileID: 804560884} + - component: {fileID: 804560883} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &804560882 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 804560881} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 595285976} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &804560883 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 804560881} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &804560884 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 804560881} + m_CullTransparentMesh: 1 +--- !u!1 &808684898 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 808684899} + - component: {fileID: 808684901} + - component: {fileID: 808684900} + m_Layer: 0 + m_Name: axis_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &808684899 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 808684898} + 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: 528506631} + - {fileID: 326762360} + m_Father: {fileID: 188889958} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -93.37999, y: -140} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &808684900 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 808684898} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &808684901 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 808684898} + m_CullTransparentMesh: 1 +--- !u!1 &810240985 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 810240986} + - component: {fileID: 810240988} + - component: {fileID: 810240987} + m_Layer: 0 + m_Name: title_sub + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &810240986 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 810240985} + 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: 1829879846} + - {fileID: 1364826441} + m_Father: {fileID: 1037816792} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -24} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &810240987 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 810240985} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &810240988 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 810240985} + m_CullTransparentMesh: 1 +--- !u!4 &811589416 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + m_PrefabInstance: {fileID: 1351715751} + m_PrefabAsset: {fileID: 0} +--- !u!1 &815597365 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 815597366} + - component: {fileID: 815597368} + - component: {fileID: 815597367} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &815597366 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 815597365} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1885190692} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -114.232895, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &815597367 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 815597365} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &815597368 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 815597365} + m_CullTransparentMesh: 1 +--- !u!1 &821367000 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 821367001} + - component: {fileID: 821367003} + - component: {fileID: 821367002} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &821367001 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 821367000} + 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: 858525493} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 4, y: -2} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &821367002 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 821367000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &821367003 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 821367000} + m_CullTransparentMesh: 1 +--- !u!1 &822320913 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 822320914} + - component: {fileID: 822320916} + - component: {fileID: 822320915} + m_Layer: 0 + m_Name: Cube.019_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &822320914 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 822320913} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 19 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &822320915 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 822320913} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &822320916 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 822320913} + m_Mesh: {fileID: -5124059043551020927, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &838006000 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 838006001} + - component: {fileID: 838006003} + - component: {fileID: 838006002} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &838006001 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 838006000} + 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: 1926093282} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &838006002 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 838006000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: x5 +--- !u!222 &838006003 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 838006000} + m_CullTransparentMesh: 1 +--- !u!1 &841599019 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 841599020} + - component: {fileID: 841599023} + - component: {fileID: 841599022} + - component: {fileID: 841599021} + m_Layer: 5 + m_Name: loseAddBT + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &841599020 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 841599019} + 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: 143942509} + m_Father: {fileID: 194652655} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -120} + m_SizeDelta: {x: 40, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &841599021 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 841599019} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 841599022} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 194652656} + m_TargetAssemblyTypeName: RewardChanger, Assembly-CSharp + m_MethodName: loseRBTPresses + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &841599022 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 841599019} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &841599023 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 841599019} + m_CullTransparentMesh: 1 +--- !u!1 &844985473 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 844985474} + - component: {fileID: 844985476} + - component: {fileID: 844985475} + m_Layer: 0 + m_Name: axis_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &844985474 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 844985473} + 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: 1863263628} + - {fileID: 1602618187} + m_Father: {fileID: 545189441} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -201.26, y: -140} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &844985475 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 844985473} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &844985476 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 844985473} + m_CullTransparentMesh: 1 +--- !u!1 &849018138 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 849018139} + - component: {fileID: 849018141} + - component: {fileID: 849018140} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &849018139 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 849018138} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 858525493} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &849018140 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 849018138} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &849018141 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 849018138} + m_CullTransparentMesh: 1 +--- !u!1 &850708202 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 850708203} + - component: {fileID: 850708205} + - component: {fileID: 850708204} + m_Layer: 0 + m_Name: Cube_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &850708203 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 850708202} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 21 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &850708204 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 850708202} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &850708205 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 850708202} + m_Mesh: {fileID: -8126535997912153522, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &854133115 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 854133116} + - component: {fileID: 854133118} + - component: {fileID: 854133117} + m_Layer: 5 + m_Name: shoot + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &854133116 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 854133115} + 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: 215367152} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: -677, y: -427.60004} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &854133117 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 854133115} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: f93a52d02d735b642888188cc77164da, type: 3} + m_FontSize: 25 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 50 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: shoot! +--- !u!222 &854133118 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 854133115} + m_CullTransparentMesh: 1 +--- !u!1 &855143408 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 855143409} + m_Layer: 0 + m_Name: debug + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &855143409 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 855143408} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 135550329} + m_Father: {fileID: 611641053} + m_RootOrder: 17 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0, y: 1} +--- !u!1 &858525492 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 858525493} + - component: {fileID: 858525495} + - component: {fileID: 858525494} + m_Layer: 0 + m_Name: label_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &858525493 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 858525492} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 821367001} + - {fileID: 849018139} + m_Father: {fileID: 141368731} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -290, y: 150} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &858525494 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 858525492} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &858525495 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 858525492} + m_CullTransparentMesh: 1 +--- !u!1 &861779682 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 861779683} + m_Layer: 0 + m_Name: Empty.001_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &861779683 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 861779682} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 1.2633394, z: 0.42388362} + m_LocalScale: {x: 27.770853, y: 27.770853, z: 27.770853} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 34 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &863884969 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 863884970} + m_Layer: 0 + m_Name: Wall + m_TagString: Wall + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!4 &863884970 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 863884969} + 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: 1690705681} + - {fileID: 811589416} + - {fileID: 1365896253} + - {fileID: 698893709} + m_Father: {fileID: 1423193378} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &874554413 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 874554414} + - component: {fileID: 874554416} + - component: {fileID: 874554415} + m_Layer: 0 + m_Name: painter_4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &874554414 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 874554413} + 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: 1213129649} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &874554415 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 874554413} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &874554416 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 874554413} + m_CullTransparentMesh: 1 +--- !u!1 &878929883 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 878929884} + - component: {fileID: 878929886} + - component: {fileID: 878929885} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &878929884 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878929883} + 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: 25903618} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &878929885 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878929883} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: x1 +--- !u!222 &878929886 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 878929883} + m_CullTransparentMesh: 1 +--- !u!1 &885432326 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 885432327} + - component: {fileID: 885432329} + - component: {fileID: 885432328} + m_Layer: 0 + m_Name: axis_5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &885432327 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 885432326} + 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: 1872392832} + - {fileID: 755709330} + m_Father: {fileID: 1519188529} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: 27} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &885432328 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 885432326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &885432329 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 885432326} + m_CullTransparentMesh: 1 +--- !u!1 &885839553 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 885839554} + - component: {fileID: 885839556} + - component: {fileID: 885839555} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &885839554 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 885839553} + 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: 1052249376} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 4, y: -2} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &885839555 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 885839553} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &885839556 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 885839553} + m_CullTransparentMesh: 1 +--- !u!1 &886618690 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 886618691} + - component: {fileID: 886618693} + - component: {fileID: 886618692} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &886618691 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 886618690} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1321112281} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &886618692 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 886618690} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &886618693 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 886618690} + m_CullTransparentMesh: 1 +--- !u!1 &890182308 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 890182309} + m_Layer: 0 + m_Name: YAxis0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &890182309 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 890182308} + 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: 1241541574} + - {fileID: 1907076005} + - {fileID: 717272751} + - {fileID: 907816953} + - {fileID: 1163442369} + - {fileID: 691081143} + - {fileID: 1725213616} + - {fileID: 962451837} + - {fileID: 928900839} + m_Father: {fileID: 611641053} + m_RootOrder: 14 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &890609530 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 890609531} + m_Layer: 0 + m_Name: debug + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &890609531 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 890609530} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 453040567} + m_Father: {fileID: 201489786} + m_RootOrder: 17 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0, y: 1} +--- !u!1 &894156493 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 894156494} + - component: {fileID: 894156496} + - component: {fileID: 894156495} + m_Layer: 0 + m_Name: axis_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &894156494 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 894156493} + 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: 1744030218} + - {fileID: 16217189} + m_Father: {fileID: 1519188529} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: -123} + m_SizeDelta: {x: 17.063728, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &894156495 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 894156493} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &894156496 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 894156493} + m_CullTransparentMesh: 1 +--- !u!1 &894179988 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 894179989} + - component: {fileID: 894179991} + - component: {fileID: 894179990} + m_Layer: 5 + m_Name: Remain Time + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &894179989 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 894179988} + 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: 1619861058} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -481.04327, y: -65} + m_SizeDelta: {x: 188.9113, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &894179990 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 894179988} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Remain Time:' +--- !u!222 &894179991 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 894179988} + m_CullTransparentMesh: 1 +--- !u!1 &898640494 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 898640495} + - component: {fileID: 898640497} + - component: {fileID: 898640496} + m_Layer: 0 + m_Name: Cube.008_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &898640495 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 898640494} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &898640496 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 898640494} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &898640497 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 898640494} + m_Mesh: {fileID: -1813769483251343583, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &907816952 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 907816953} + - component: {fileID: 907816955} + - component: {fileID: 907816954} + m_Layer: 0 + m_Name: axis_3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &907816953 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 907816952} + 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: 1083382302} + - {fileID: 188789334} + m_Father: {fileID: 890182309} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: -27} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &907816954 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 907816952} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &907816955 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 907816952} + m_CullTransparentMesh: 1 +--- !u!1 &909785770 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 909785771} + - component: {fileID: 909785773} + - component: {fileID: 909785772} + m_Layer: 0 + m_Name: title_sub + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &909785771 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 909785770} + 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: 1797648751} + - {fileID: 1406686774} + m_Father: {fileID: 1406810794} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -24} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &909785772 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 909785770} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &909785773 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 909785770} + m_CullTransparentMesh: 1 +--- !u!1 &909810156 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 909810157} + - component: {fileID: 909810159} + - component: {fileID: 909810158} + m_Layer: 0 + m_Name: Cube.015_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &909810157 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 909810156} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 15 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &909810158 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 909810156} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &909810159 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 909810156} + m_Mesh: {fileID: 8029401347676143002, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &928036774 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 928036775} + - component: {fileID: 928036777} + - component: {fileID: 928036776} + m_Layer: 0 + m_Name: Cube.001_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &928036775 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 928036774} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &928036776 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 928036774} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &928036777 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 928036774} + m_Mesh: {fileID: 1964926367440911766, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &928900838 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 928900839} + - component: {fileID: 928900841} + - component: {fileID: 928900840} + m_Layer: 0 + m_Name: axis_8 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &928900839 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 928900838} + 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: 162289219} + - {fileID: 72077394} + m_Father: {fileID: 890182309} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: 117} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &928900840 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 928900838} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &928900841 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 928900838} + m_CullTransparentMesh: 1 +--- !u!1 &932711991 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 932711992} + - component: {fileID: 932711994} + - component: {fileID: 932711993} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &932711992 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 932711991} + 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: 1321112281} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &932711993 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 932711991} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 30 +--- !u!222 &932711994 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 932711991} + m_CullTransparentMesh: 1 +--- !u!1 &933702209 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 933702210} + - component: {fileID: 933702212} + - component: {fileID: 933702211} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &933702210 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 933702209} + 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: 453040567} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 4, y: -2} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &933702211 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 933702209} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &933702212 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 933702209} + m_CullTransparentMesh: 1 +--- !u!1 &942607300 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 942607301} + - component: {fileID: 942607303} + - component: {fileID: 942607302} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &942607301 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 942607300} + 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: 1481370281} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &942607302 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 942607300} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: x4 +--- !u!222 &942607303 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 942607300} + m_CullTransparentMesh: 1 +--- !u!1 &950921141 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 950921142} + - component: {fileID: 950921144} + - component: {fileID: 950921143} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &950921142 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 950921141} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1884118930} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &950921143 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 950921141} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &950921144 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 950921141} + m_CullTransparentMesh: 1 +--- !u!1 &951578498 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 951578499} + - component: {fileID: 951578501} + - component: {fileID: 951578500} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &951578499 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 951578498} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 733816198} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -111.96696, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &951578500 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 951578498} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &951578501 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 951578498} + m_CullTransparentMesh: 1 +--- !u!1 &956206173 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 956206174} + - component: {fileID: 956206176} + - component: {fileID: 956206175} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &956206174 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 956206173} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1163442369} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &956206175 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 956206173} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &956206176 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 956206173} + m_CullTransparentMesh: 1 +--- !u!1 &958160270 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 958160271} + - component: {fileID: 958160273} + - component: {fileID: 958160272} + m_Layer: 5 + m_Name: nonReward + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &958160271 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 958160270} + 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: 509053162} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 316.0601, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &958160272 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 958160270} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'nonReward: ' +--- !u!222 &958160273 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 958160270} + m_CullTransparentMesh: 1 +--- !u!1 &958496984 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 958496985} + - component: {fileID: 958496987} + - component: {fileID: 958496986} + m_Layer: 0 + m_Name: Cylinder_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &958496985 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 958496984} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: 0.049297333, y: 0.81470364, z: 2.4645214} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 33 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &958496986 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 958496984} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &958496987 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 958496984} + m_Mesh: {fileID: 1785010775391022613, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &962451836 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 962451837} + - component: {fileID: 962451839} + - component: {fileID: 962451838} + m_Layer: 0 + m_Name: axis_7 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &962451837 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 962451836} + 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: 2021417083} + - {fileID: 1045203207} + m_Father: {fileID: 890182309} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: 101} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &962451838 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 962451836} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &962451839 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 962451836} + m_CullTransparentMesh: 1 +--- !u!1 &966834422 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 966834423} + - component: {fileID: 966834425} + - component: {fileID: 966834424} + m_Layer: 0 + m_Name: axis_5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &966834423 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 966834422} + 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: 1439682604} + - {fileID: 119127066} + m_Father: {fileID: 1372129984} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: 27} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &966834424 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 966834422} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &966834425 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 966834422} + m_CullTransparentMesh: 1 +--- !u!1 &967778546 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 967778547} + - component: {fileID: 967778549} + - component: {fileID: 967778548} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &967778547 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 967778546} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 135550329} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &967778548 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 967778546} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &967778549 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 967778546} + m_CullTransparentMesh: 1 +--- !u!1 &971083480 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 971083481} + - component: {fileID: 971083483} + - component: {fileID: 971083482} + m_Layer: 0 + m_Name: Cylinder.007_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &971083481 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 971083480} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 29 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &971083482 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 971083480} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &971083483 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 971083480} + m_Mesh: {fileID: -8872914256712105324, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &973809283 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 973809284} + - component: {fileID: 973809286} + - component: {fileID: 973809285} + m_Layer: 0 + m_Name: column2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &973809284 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 973809283} + 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: 2045678517} + - {fileID: 1049117196} + m_Father: {fileID: 101801539} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &973809285 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 973809283} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &973809286 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 973809283} + m_CullTransparentMesh: 1 +--- !u!1 &976372793 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 976372794} + - component: {fileID: 976372796} + - component: {fileID: 976372795} + m_Layer: 0 + m_Name: Cylinder.004_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &976372794 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 976372793} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 26 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &976372795 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 976372793} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &976372796 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 976372793} + m_Mesh: {fileID: 2619653575200246064, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &997104154 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 997104155} + - component: {fileID: 997104157} + - component: {fileID: 997104156} + m_Layer: 0 + m_Name: painter_8 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &997104155 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 997104154} + 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: 201489786} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &997104156 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 997104154} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &997104157 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 997104154} + m_CullTransparentMesh: 1 +--- !u!1 &1010425408 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1010425409} + - component: {fileID: 1010425411} + - component: {fileID: 1010425410} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1010425409 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1010425408} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 691081143} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1010425410 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1010425408} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1010425411 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1010425408} + m_CullTransparentMesh: 1 +--- !u!1 &1016459704 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1016459705} + - component: {fileID: 1016459707} + - component: {fileID: 1016459706} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1016459705 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1016459704} + 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: 1148611240} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 3, y: 0} + m_SizeDelta: {x: -6, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1016459706 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1016459704} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: win +--- !u!222 &1016459707 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1016459704} + m_CullTransparentMesh: 1 +--- !u!1 &1023339845 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1023339846} + - component: {fileID: 1023339848} + - component: {fileID: 1023339847} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1023339846 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1023339845} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1470983556} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1023339847 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1023339845} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1023339848 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1023339845} + m_CullTransparentMesh: 1 +--- !u!1 &1026481343 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1026481344} + - component: {fileID: 1026481346} + - component: {fileID: 1026481345} + m_Layer: 0 + m_Name: Cube.012_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1026481344 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1026481343} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1026481345 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1026481343} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1026481346 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1026481343} + m_Mesh: {fileID: -1479511118752177815, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &1031242399 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1031242400} + - component: {fileID: 1031242401} + - component: {fileID: 1031242402} + m_Layer: 5 + m_Name: shootRewardData + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1031242400 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1031242399} + 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: 497823044} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 70, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1031242401 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1031242399} + m_CullTransparentMesh: 1 +--- !u!114 &1031242402 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1031242399} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 00 +--- !u!1 &1032063796 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1032063797} + - component: {fileID: 1032063799} + - component: {fileID: 1032063798} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1032063797 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032063796} + 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: 2085253772} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1032063798 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032063796} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: x5 +--- !u!222 &1032063799 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032063796} + m_CullTransparentMesh: 1 +--- !u!1 &1032891061 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1032891062} + - component: {fileID: 1032891064} + - component: {fileID: 1032891063} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1032891062 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032891061} + 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: 1414673186} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 4, y: -2} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1032891063 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032891061} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &1032891064 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032891061} + m_CullTransparentMesh: 1 +--- !u!1 &1037816791 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1037816792} + m_Layer: 0 + m_Name: Title0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1037816792 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1037816791} + 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: 733816198} + - {fileID: 810240986} + m_Father: {fileID: 611641053} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &1045203206 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1045203207} + - component: {fileID: 1045203209} + - component: {fileID: 1045203208} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1045203207 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1045203206} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 962451837} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1045203208 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1045203206} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1045203209 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1045203206} + m_CullTransparentMesh: 1 +--- !u!1 &1045368338 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1045368339} + - component: {fileID: 1045368341} + - component: {fileID: 1045368340} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1045368339 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1045368338} + 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: 1958294038} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1045368340 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1045368338} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 17 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <<< +--- !u!222 &1045368341 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1045368338} + m_CullTransparentMesh: 1 +--- !u!1 &1049117195 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1049117196} + - component: {fileID: 1049117198} + - component: {fileID: 1049117197} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1049117196 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1049117195} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 973809284} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1049117197 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1049117195} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1049117198 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1049117195} + m_CullTransparentMesh: 1 +--- !u!1 &1052249375 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1052249376} + - component: {fileID: 1052249378} + - component: {fileID: 1052249377} + m_Layer: 0 + m_Name: label_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1052249376 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1052249375} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 885839554} + - {fileID: 1685871917} + m_Father: {fileID: 1792069383} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -290, y: 150} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1052249377 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1052249375} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1052249378 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1052249375} + m_CullTransparentMesh: 1 +--- !u!1 &1053490560 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1053490561} + - component: {fileID: 1053490565} + - component: {fileID: 1053490564} + - component: {fileID: 1053490563} + - component: {fileID: 1053490562} + m_Layer: 0 + m_Name: view + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1053490561 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1053490560} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1234953724} + - {fileID: 737756490} + m_Father: {fileID: 1439973039} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1053490562 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1053490560} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 10 + m_Right: 10 + m_Top: 10 + m_Bottom: 10 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &1053490563 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1053490560} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1} + m_EffectDistance: {x: 2, y: -2} + m_UseGraphicAlpha: 0 +--- !u!114 &1053490564 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1053490560} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1053490565 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1053490560} + m_CullTransparentMesh: 1 +--- !u!1 &1069784062 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1069784063} + m_Layer: 0 + m_Name: Tooltip0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1069784063 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1069784062} + 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: 1310028838} + - {fileID: 355301579} + m_Father: {fileID: 201489786} + m_RootOrder: 16 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &1083382301 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1083382302} + - component: {fileID: 1083382304} + - component: {fileID: 1083382303} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1083382302 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1083382301} + 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: 907816953} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1083382303 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1083382301} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 30 +--- !u!222 &1083382304 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1083382301} + m_CullTransparentMesh: 1 +--- !u!1 &1107178052 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1107178053} + - component: {fileID: 1107178055} + - component: {fileID: 1107178054} + m_Layer: 0 + m_Name: painter_5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1107178053 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1107178052} + 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: 201489786} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1107178054 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1107178052} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1107178055 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1107178052} + m_CullTransparentMesh: 1 +--- !u!1 &1111257557 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1111257558} + - component: {fileID: 1111257560} + - component: {fileID: 1111257559} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1111257558 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1111257557} + 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: 1832129955} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 3, y: 0} + m_SizeDelta: {x: -6, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1111257559 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1111257557} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 69 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &1111257560 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1111257557} + m_CullTransparentMesh: 1 +--- !u!1 &1113647589 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1113647590} + - component: {fileID: 1113647592} + - component: {fileID: 1113647591} + m_Layer: 0 + m_Name: axis_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1113647590 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1113647589} + 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: 1811785218} + - {fileID: 600869055} + m_Father: {fileID: 545189441} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -93.37999, y: -140} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1113647591 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1113647589} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1113647592 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1113647589} + m_CullTransparentMesh: 1 +--- !u!1 &1133378794 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1133378795} + - component: {fileID: 1133378797} + - component: {fileID: 1133378796} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1133378795 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1133378794} + 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: 595285976} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1133378796 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1133378794} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 10 +--- !u!222 &1133378797 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1133378794} + m_CullTransparentMesh: 1 +--- !u!1 &1148611239 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1148611240} + - component: {fileID: 1148611243} + - component: {fileID: 1148611242} + - component: {fileID: 1148611241} + m_Layer: 5 + m_Name: winInput + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1148611240 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1148611239} + 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: 1016459705} + - {fileID: 648100779} + m_Father: {fileID: 194652655} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 70, y: -100} + m_SizeDelta: {x: 100, y: 22} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1148611241 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1148611239} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1148611242} + m_TextComponent: {fileID: 648100780} + m_Placeholder: {fileID: 1016459706} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 +--- !u!114 &1148611242 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1148611239} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1148611243 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1148611239} + m_CullTransparentMesh: 1 +--- !u!1 &1163442368 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1163442369} + - component: {fileID: 1163442371} + - component: {fileID: 1163442370} + m_Layer: 0 + m_Name: axis_4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1163442369 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163442368} + 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: 42608552} + - {fileID: 956206174} + m_Father: {fileID: 890182309} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: 5} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1163442370 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163442368} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1163442371 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163442368} + m_CullTransparentMesh: 1 +--- !u!1 &1175413811 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1175413812} + m_Layer: 0 + m_Name: item0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1175413812 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1175413811} + 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: 23283623} + - {fileID: 1927392549} + - {fileID: 491271242} + m_Father: {fileID: 1310028838} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 25} + m_Pivot: {x: 0, y: 0.5} +--- !u!1 &1179767047 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1179767048} + - component: {fileID: 1179767050} + - component: {fileID: 1179767049} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1179767048 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1179767047} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 518493904} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1179767049 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1179767047} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1179767050 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1179767047} + m_CullTransparentMesh: 1 +--- !u!1001 &1183749942 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 863884970} + m_Modifications: + - target: {fileID: 1225757330756864865, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 647063595} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalPosition.x + value: -13 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalPosition.z + value: 21 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalRotation.y + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7581380566783588035, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 647063595} + - target: {fileID: 7872882754437720452, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 647063595} + - target: {fileID: 8288440288027676086, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_Name + value: 1x30Cube + objectReference: {fileID: 0} + - target: {fileID: 8288440288027676086, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_TagString + value: Wall + objectReference: {fileID: 0} + - target: {fileID: 8288440288027676086, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_StaticEditorFlags + value: 4294967295 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 7872882754437720452, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: db65a59014728b245830bf6269cbbfa6, type: 3} +--- !u!1 &1186343260 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1186343261} + - component: {fileID: 1186343263} + - component: {fileID: 1186343262} + m_Layer: 0 + m_Name: axis_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1186343261 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1186343260} + 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: 1615325406} + - {fileID: 645014596} + m_Father: {fileID: 188889958} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 14.5, y: -140} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1186343262 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1186343260} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1186343263 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1186343260} + m_CullTransparentMesh: 1 +--- !u!1 &1199612231 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1199612232} + - component: {fileID: 1199612234} + - component: {fileID: 1199612233} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1199612232 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1199612231} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 717272751} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1199612233 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1199612231} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1199612234 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1199612231} + m_CullTransparentMesh: 1 +--- !u!1 &1213032257 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1213032258} + - component: {fileID: 1213032260} + - component: {fileID: 1213032259} + m_Layer: 0 + m_Name: painter_8 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1213032258 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1213032257} + 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: 611641053} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1213032259 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1213032257} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1213032260 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1213032257} + m_CullTransparentMesh: 1 +--- !u!1 &1213129646 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1213129649} + - component: {fileID: 1213129648} + - component: {fileID: 1213129647} + m_Layer: 0 + m_Name: RealTimeRewardChart + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1213129647 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1213129646} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b4f38bd00b4648c448cabfc167538f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_EnableTextMeshPro: 0 + m_DebugInfo: + m_Show: 1 + m_ShowDebugInfo: 0 + m_ShowAllChartObject: 0 + m_FoldSeries: 0 + m_LabelStyle: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0.1254902, g: 0.1254902, b: 0.1254902, a: 0.6666667} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontSize: 18 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_ChartName: + m_Theme: + m_Show: 1 + m_SharedTheme: {fileID: 11400000, guid: e1dc23a10de1e4c5dbfbaf74c4dfd218, type: 2} + m_TransparentBackground: 1 + m_EnableCustomTheme: 0 + m_CustomFont: {fileID: 0} + m_CustomBackgroundColor: + serializedVersion: 2 + rgba: 3487029 + m_CustomColorPalette: [] + m_Settings: + m_Show: 1 + m_MaxPainter: 10 + m_ReversePainter: 0 + m_BasePainterMaterial: {fileID: 0} + m_SeriePainterMaterial: {fileID: 0} + m_TopPainterMaterial: {fileID: 0} + m_LineSmoothStyle: 3 + m_LineSmoothness: 2 + m_LineSegmentDistance: 3 + m_CicleSmoothness: 2 + m_LegendIconLineWidth: 2 + m_LegendIconCornerRadius: + - 0 + - 0.25 + - 0.25 + - 0.25 + m_AngleAxes: [] + m_Backgrounds: [] + m_DataZooms: [] + m_Grids: + - m_Show: 1 + m_Left: 0.06 + m_Right: 0.01 + m_Top: 0.11 + m_Bottom: 0.09 + m_BackgroundColor: + serializedVersion: 2 + rgba: 0 + m_ShowBorder: 1 + m_BorderWidth: 0 + m_BorderColor: + serializedVersion: 2 + rgba: 0 + m_Legends: [] + m_MarkLines: [] + m_MarkAreas: [] + m_Polars: [] + m_Radars: [] + m_RadiusAxes: [] + m_Titles: + - m_Show: 1 + m_Text: RealTimeRewardChart + m_SubText: + m_LabelStyle: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_SubLabelStyle: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_ItemGap: 0 + m_Location: + m_Align: 2 + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Tooltips: + - m_Show: 1 + m_Type: 0 + m_Trigger: 1 + m_ItemFormatter: + m_TitleFormatter: + m_Marker: "\u25CF" + m_FixedWidth: 0 + m_FixedHeight: 0 + m_MinWidth: 0 + m_MinHeight: 0 + m_NumericFormatter: + m_PaddingLeftRight: 10 + m_PaddingTopBottom: 10 + m_IgnoreDataShow: 0 + m_IgnoreDataDefaultContent: '-' + m_ShowContent: 1 + m_AlwayShowContent: 0 + m_Offset: {x: 18, y: -25} + m_BackgroundImage: {fileID: 0} + m_BackgroundType: 0 + m_BackgroundColor: {r: 0, g: 0, b: 0, a: 0} + m_BorderWidth: 2 + m_FixedXEnable: 0 + m_FixedX: 0 + m_FixedYEnable: 0 + m_FixedY: 0 + m_TitleHeight: 25 + m_ItemHeight: 25 + m_BorderColor: + serializedVersion: 2 + rgba: 4293322470 + m_LineStyle: + m_Show: 1 + m_Type: 5 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_IndicatorLabelStyle: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_TitleLabelStyle: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 3 + m_ContentLabelStyles: + - m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 0 + m_Right: 5 + m_Left: 0 + m_Bottom: 0 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 3 + - m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 0 + m_Right: 20 + m_Left: 0 + m_Bottom: 0 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 3 + - m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 0 + m_Right: 0 + m_Left: 0 + m_Bottom: 0 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 5 + m_VisualMaps: [] + m_XAxes: + - m_Show: 1 + m_Type: 1 + m_MinMaxType: 0 + m_GridIndex: 0 + m_PolarIndex: 0 + m_ParallelIndex: 0 + m_Position: 2 + m_Offset: 0 + m_Min: 0 + m_Max: 0 + m_SplitNumber: 0 + m_Interval: 0 + m_BoundaryGap: 1 + m_MaxCache: 0 + m_LogBase: 10 + m_LogBaseE: 0 + m_CeilRate: 0 + m_Inverse: 0 + m_Clockwise: 1 + m_InsertDataToHead: 0 + m_Icons: [] + m_Data: + - x1 + - x2 + - x3 + - x4 + - x5 + m_AxisLine: + m_Show: 1 + m_LineStyle: + m_Show: 1 + m_Type: 5 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_OnZero: 1 + m_ShowArrow: 0 + m_Arrow: + m_Width: 10 + m_Height: 15 + m_Offset: 0 + m_Dent: 3 + m_Color: + serializedVersion: 2 + rgba: 0 + m_AxisName: + m_Show: 0 + m_Name: axisName + m_LabelStyle: + m_Show: 1 + m_Position: 10 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_AxisTick: + m_Show: 1 + m_LineStyle: + m_Show: 1 + m_Type: 0 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_AlignWithLabel: 0 + m_Inside: 0 + m_ShowStartTick: 1 + m_ShowEndTick: 1 + m_Distance: 0 + m_SplitNumber: 0 + m_AutoColor: 0 + m_AxisLabel: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 8 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_Interval: 0 + m_Inside: 0 + m_ShowAsPositiveNumber: 0 + m_OnZero: 0 + m_ShowStartLabel: 1 + m_ShowEndLabel: 1 + m_TextLimit: + m_Enable: 1 + m_MaxWidth: 0 + m_Gap: 1 + m_Suffix: ... + m_SplitLine: + m_Show: 0 + m_LineStyle: + m_Show: 1 + m_Type: 5 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_Interval: 0 + m_Distance: 0 + m_AutoColor: 0 + m_SplitArea: + m_Show: 0 + m_Color: [] + m_YAxes: + - m_Show: 1 + m_Type: 0 + m_MinMaxType: 0 + m_GridIndex: 0 + m_PolarIndex: 0 + m_ParallelIndex: 0 + m_Position: 0 + m_Offset: 0 + m_Min: 0 + m_Max: 0 + m_SplitNumber: 0 + m_Interval: 0 + m_BoundaryGap: 0 + m_MaxCache: 0 + m_LogBase: 10 + m_LogBaseE: 0 + m_CeilRate: 0 + m_Inverse: 0 + m_Clockwise: 1 + m_InsertDataToHead: 0 + m_Icons: [] + m_Data: [] + m_AxisLine: + m_Show: 1 + m_LineStyle: + m_Show: 1 + m_Type: 5 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_OnZero: 1 + m_ShowArrow: 0 + m_Arrow: + m_Width: 10 + m_Height: 15 + m_Offset: 0 + m_Dent: 3 + m_Color: + serializedVersion: 2 + rgba: 0 + m_AxisName: + m_Show: 0 + m_Name: axisName + m_LabelStyle: + m_Show: 1 + m_Position: 10 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_AxisTick: + m_Show: 1 + m_LineStyle: + m_Show: 1 + m_Type: 0 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_AlignWithLabel: 0 + m_Inside: 0 + m_ShowStartTick: 1 + m_ShowEndTick: 1 + m_Distance: 0 + m_SplitNumber: 0 + m_AutoColor: 0 + m_AxisLabel: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_Distance: 8 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 2 + m_Right: 4 + m_Left: 4 + m_Bottom: 2 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_Interval: 0 + m_Inside: 0 + m_ShowAsPositiveNumber: 0 + m_OnZero: 0 + m_ShowStartLabel: 1 + m_ShowEndLabel: 1 + m_TextLimit: + m_Enable: 0 + m_MaxWidth: 0 + m_Gap: 1 + m_Suffix: ... + m_SplitLine: + m_Show: 1 + m_LineStyle: + m_Show: 1 + m_Type: 5 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_Interval: 0 + m_Distance: 0 + m_AutoColor: 0 + m_SplitArea: + m_Show: 0 + m_Color: [] + m_SingleAxes: [] + m_Parallels: [] + m_ParallelAxes: [] + m_Comments: [] + m_SerieBars: [] + m_SerieCandlesticks: [] + m_SerieEffectScatters: [] + m_SerieHeatmaps: [] + m_SerieLines: + - m_Labels: [] + m_LabelLines: [] + m_EndLabels: [] + m_LineArrows: [] + m_AreaStyles: [] + m_TitleStyles: [] + m_EmphasisItemStyles: [] + m_EmphasisLabels: [] + m_EmphasisLabelLines: [] + m_Index: 0 + m_Show: 1 + m_CoordSystem: GridCoord + m_SerieType: Line + m_SerieName: serie0 + m_Stack: + m_XAxisIndex: 0 + m_YAxisIndex: 0 + m_RadarIndex: 0 + m_VesselIndex: 0 + m_PolarIndex: 0 + m_SingleAxisIndex: 0 + m_ParallelIndex: 0 + m_MinShow: 0 + m_MaxShow: 0 + m_MaxCache: 0 + m_SampleDist: 0 + m_SampleType: 1 + m_SampleAverage: 0 + m_LineType: 0 + m_BarType: 0 + m_BarPercentStack: 0 + m_BarWidth: 0 + m_BarGap: 0.1 + m_BarZebraWidth: 4 + m_BarZebraGap: 2 + m_Min: 0 + m_Max: 0 + m_MinSize: 0 + m_MaxSize: 1 + m_StartAngle: 0 + m_EndAngle: 0 + m_MinAngle: 0 + m_Clockwise: 1 + m_RoundCap: 0 + m_SplitNumber: 0 + m_ClickOffset: 1 + m_RoseType: 0 + m_Gap: 0 + m_Center: + - 0.5 + - 0.48 + m_Radius: + - 0 + - 0.28 + m_ShowDataDimension: 1 + m_ShowDataName: 0 + m_Clip: 0 + m_Ignore: 0 + m_IgnoreValue: 0 + m_IgnoreLineBreak: 0 + m_ShowAsPositiveNumber: 0 + m_Large: 1 + m_LargeThreshold: 200 + m_AvoidLabelOverlap: 0 + m_RadarType: 0 + m_PlaceHolder: 0 + m_DataSortType: 2 + m_Orient: 1 + m_Align: 0 + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_InsertDataToHead: 0 + m_LineStyle: + m_Show: 1 + m_Type: 0 + m_Color: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_Width: 0 + m_Length: 0 + m_Opacity: 1 + m_Symbol: + m_Show: 1 + m_Type: 3 + m_Size: 0 + m_Gap: 0 + m_Width: 0 + m_Height: 0 + m_Offset: {x: 0, y: 0} + m_Image: {fileID: 0} + m_ImageType: 0 + m_Color: + serializedVersion: 2 + rgba: 0 + m_SizeType: 0 + m_SelectedSize: 0 + m_DataIndex: 1 + m_DataScale: 1 + m_SelectedDataScale: 1.5 + m_StartIndex: 0 + m_Interval: 0 + m_ForceShowLast: 0 + m_Repeat: 0 + m_Animation: + m_Enable: 0 + m_Type: 0 + m_Easting: 0 + m_Threshold: 2000 + m_FadeInDuration: 1000 + m_FadeInDelay: 0 + m_FadeOutDuration: 1000 + m_FadeOutDelay: 0 + m_DataChangeEnable: 1 + m_DataChangeDuration: 500 + m_ActualDuration: 0 + m_ItemStyle: + m_Show: 1 + m_Color: + serializedVersion: 2 + rgba: 0 + m_Color0: + serializedVersion: 2 + rgba: 0 + m_ToColor: + serializedVersion: 2 + rgba: 0 + m_ToColor2: + serializedVersion: 2 + rgba: 0 + m_BackgroundColor: + serializedVersion: 2 + rgba: 0 + m_BackgroundWidth: 0 + m_CenterColor: + serializedVersion: 2 + rgba: 0 + m_CenterGap: 0 + m_BorderWidth: 0 + m_BorderGap: 0 + m_BorderColor: + serializedVersion: 2 + rgba: 0 + m_BorderColor0: + serializedVersion: 2 + rgba: 0 + m_BorderToColor: + serializedVersion: 2 + rgba: 0 + m_Opacity: 1 + m_ItemMarker: + m_ItemFormatter: + m_NumericFormatter: + m_CornerRadius: + - 0 + - 0 + - 0 + - 0 + m_Data: + - m_Index: 0 + m_Name: + m_Id: + m_ParentId: + m_Ignore: 0 + m_Selected: 0 + m_Radius: 0 + m_ItemStyles: [] + m_Labels: [] + m_LabelLines: [] + m_Symbols: [] + m_LineStyles: [] + m_AreaStyles: [] + m_TitleStyles: [] + m_EmphasisItemStyles: [] + m_EmphasisLabels: [] + m_EmphasisLabelLines: [] + m_Data: + - 0 + - 52 + - m_Index: 0 + m_Name: + m_Id: + m_ParentId: + m_Ignore: 0 + m_Selected: 0 + m_Radius: 0 + m_ItemStyles: [] + m_Labels: [] + m_LabelLines: [] + m_Symbols: [] + m_LineStyles: [] + m_AreaStyles: [] + m_TitleStyles: [] + m_EmphasisItemStyles: [] + m_EmphasisLabels: [] + m_EmphasisLabelLines: [] + m_Data: + - 1 + - 76 + - m_Index: 0 + m_Name: + m_Id: + m_ParentId: + m_Ignore: 0 + m_Selected: 0 + m_Radius: 0 + m_ItemStyles: [] + m_Labels: [] + m_LabelLines: [] + m_Symbols: [] + m_LineStyles: [] + m_AreaStyles: [] + m_TitleStyles: [] + m_EmphasisItemStyles: [] + m_EmphasisLabels: [] + m_EmphasisLabelLines: [] + m_Data: + - 2 + - 12 + - m_Index: 0 + m_Name: + m_Id: + m_ParentId: + m_Ignore: 0 + m_Selected: 0 + m_Radius: 0 + m_ItemStyles: [] + m_Labels: [] + m_LabelLines: [] + m_Symbols: [] + m_LineStyles: [] + m_AreaStyles: [] + m_TitleStyles: [] + m_EmphasisItemStyles: [] + m_EmphasisLabels: [] + m_EmphasisLabelLines: [] + m_Data: + - 3 + - 23 + - m_Index: 0 + m_Name: + m_Id: + m_ParentId: + m_Ignore: 0 + m_Selected: 0 + m_Radius: 0 + m_ItemStyles: [] + m_Labels: [] + m_LabelLines: [] + m_Symbols: [] + m_LineStyles: [] + m_AreaStyles: [] + m_TitleStyles: [] + m_EmphasisItemStyles: [] + m_EmphasisLabels: [] + m_EmphasisLabelLines: [] + m_Data: + - 4 + - 15 + m_SeriePies: [] + m_SerieRadars: [] + m_SerieRings: [] + m_SerieScatters: [] + m_SerieParallels: [] + m_SerieSimplifiedLines: [] + m_SerieSimplifiedBars: [] + m_SerieSimplifiedCandlesticks: [] +--- !u!222 &1213129648 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1213129646} + m_CullTransparentMesh: 1 +--- !u!224 &1213129649 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1213129646} + 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: 1351210039} + - {fileID: 1636289228} + - {fileID: 1445443961} + - {fileID: 2039575183} + - {fileID: 637116273} + - {fileID: 874554414} + - {fileID: 472685523} + - {fileID: 1238526725} + - {fileID: 1570055073} + - {fileID: 1768275352} + - {fileID: 216871883} + - {fileID: 1466325945} + - {fileID: 1872357242} + - {fileID: 800843590} + - {fileID: 1372129984} + - {fileID: 380015112} + - {fileID: 1439973039} + - {fileID: 625252342} + m_Father: {fileID: 268923344} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 75, y: -50} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &1215051367 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1215051368} + - component: {fileID: 1215051370} + - component: {fileID: 1215051369} + m_Layer: 0 + m_Name: Cube.003_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1215051368 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1215051367} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1215051369 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1215051367} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1215051370 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1215051367} + m_Mesh: {fileID: 5488722605592516591, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &1233692426 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1233692427} + - component: {fileID: 1233692430} + - component: {fileID: 1233692429} + - component: {fileID: 1233692428} + m_Layer: 0 + m_Name: Chara + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1233692427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1233692426} + 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: 629870343} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!136 &1233692428 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1233692426} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1233692429 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1233692426} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1233692430 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1233692426} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1234285012 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1234285013} + - component: {fileID: 1234285015} + - component: {fileID: 1234285014} + m_Layer: 0 + m_Name: painter_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1234285013 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1234285012} + 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: 611641053} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1234285014 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1234285012} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1234285015 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1234285012} + m_CullTransparentMesh: 1 +--- !u!1 &1234601877 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1234601878} + - component: {fileID: 1234601880} + - component: {fileID: 1234601879} + m_Layer: 0 + m_Name: axis_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1234601878 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1234601877} + 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: 1393325965} + - {fileID: 1489565676} + m_Father: {fileID: 1372129984} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: -123} + m_SizeDelta: {x: 17.063728, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1234601879 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1234601877} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1234601880 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1234601877} + m_CullTransparentMesh: 1 +--- !u!1 &1234953723 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1234953724} + - component: {fileID: 1234953726} + - component: {fileID: 1234953725} + m_Layer: 0 + m_Name: title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1234953724 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1234953723} + 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: 133317626} + - {fileID: 1802288088} + m_Father: {fileID: 1053490561} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1234953725 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1234953723} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1234953726 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1234953723} + m_CullTransparentMesh: 1 +--- !u!1 &1235656833 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1235656834} + - component: {fileID: 1235656836} + - component: {fileID: 1235656835} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1235656834 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1235656833} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 200583463} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1235656835 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1235656833} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1235656836 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1235656833} + m_CullTransparentMesh: 1 +--- !u!1 &1236075752 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1236075753} + - component: {fileID: 1236075755} + - component: {fileID: 1236075754} + m_Layer: 0 + m_Name: painter_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1236075753 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1236075752} + 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: 611641053} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1236075754 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1236075752} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1236075755 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1236075752} + m_CullTransparentMesh: 1 +--- !u!1 &1238526724 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1238526725} + - component: {fileID: 1238526727} + - component: {fileID: 1238526726} + m_Layer: 0 + m_Name: painter_6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1238526725 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1238526724} + 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: 1213129649} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1238526726 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1238526724} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1238526727 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1238526724} + m_CullTransparentMesh: 1 +--- !u!1 &1241541573 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1241541574} + - component: {fileID: 1241541576} + - component: {fileID: 1241541575} + m_Layer: 0 + m_Name: axis_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1241541574 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1241541573} + 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: 1867950664} + - {fileID: 191139043} + m_Father: {fileID: 890182309} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: -123} + m_SizeDelta: {x: 17.063728, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1241541575 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1241541573} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1241541576 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1241541573} + m_CullTransparentMesh: 1 +--- !u!1 &1256664428 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1256664429} + m_Layer: 0 + m_Name: title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1256664429 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1256664428} + 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: 1876561007} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &1265073923 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1265073924} + - component: {fileID: 1265073926} + - component: {fileID: 1265073925} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1265073924 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1265073923} + 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: 1927392549} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1265073925 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1265073923} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &1265073926 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1265073923} + m_CullTransparentMesh: 1 +--- !u!1 &1266400766 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1266400767} + - component: {fileID: 1266400768} + - component: {fileID: 1266400769} + m_Layer: 5 + m_Name: remainEnemyData + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1266400767 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1266400766} + 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: 1619861058} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -82.51779, y: -65} + m_SizeDelta: {x: 65, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1266400768 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1266400766} + m_CullTransparentMesh: 1 +--- !u!114 &1266400769 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1266400766} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 00 +--- !u!1 &1273108961 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1273108962} + - component: {fileID: 1273108964} + - component: {fileID: 1273108963} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1273108962 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1273108961} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 358674451} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1273108963 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1273108961} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1273108964 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1273108961} + m_CullTransparentMesh: 1 +--- !u!1 &1276826917 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1276826918} + - component: {fileID: 1276826920} + - component: {fileID: 1276826919} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1276826918 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1276826917} + 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: 2088978190} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 4, y: -2} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1276826919 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1276826917} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &1276826920 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1276826917} + m_CullTransparentMesh: 1 +--- !u!1 &1282464051 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1282464052} + - component: {fileID: 1282464054} + - component: {fileID: 1282464053} + m_Layer: 0 + m_Name: axis_3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1282464052 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1282464051} + 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: 1935182773} + - {fileID: 1319598733} + m_Father: {fileID: 188889958} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 122.380005, y: -140} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1282464053 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1282464051} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1282464054 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1282464051} + m_CullTransparentMesh: 1 +--- !u!1 &1283581648 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1283581649} + - component: {fileID: 1283581651} + - component: {fileID: 1283581650} + m_Layer: 0 + m_Name: title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1283581649 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1283581648} + 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: 1517139709} + - {fileID: 571903141} + m_Father: {fileID: 1872357242} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 234.59325, y: 29.680567} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1283581650 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1283581648} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1283581651 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1283581648} + m_CullTransparentMesh: 1 +--- !u!1 &1294052617 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1294052618} + - component: {fileID: 1294052620} + - component: {fileID: 1294052619} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1294052618 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1294052617} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 453040567} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1294052619 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1294052617} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1294052620 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1294052617} + m_CullTransparentMesh: 1 +--- !u!1 &1304207499 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1304207500} + - component: {fileID: 1304207502} + - component: {fileID: 1304207501} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1304207500 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1304207499} + 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: 785752919} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 3, y: 0} + m_SizeDelta: {x: -6, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1304207501 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1304207499} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 69 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &1304207502 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1304207499} + m_CullTransparentMesh: 1 +--- !u!1 &1304688935 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1304688936} + - component: {fileID: 1304688938} + - component: {fileID: 1304688937} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1304688936 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1304688935} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1927392549} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1304688937 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1304688935} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1304688938 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1304688935} + m_CullTransparentMesh: 1 +--- !u!1 &1310028837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1310028838} + - component: {fileID: 1310028842} + - component: {fileID: 1310028841} + - component: {fileID: 1310028840} + - component: {fileID: 1310028839} + m_Layer: 0 + m_Name: view + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1310028838 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1310028837} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1842428954} + - {fileID: 1175413812} + m_Father: {fileID: 1069784063} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1310028839 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1310028837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 10 + m_Right: 10 + m_Top: 10 + m_Bottom: 10 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &1310028840 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1310028837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0.9019608, g: 0.9019608, b: 0.9019608, a: 1} + m_EffectDistance: {x: 2, y: -2} + m_UseGraphicAlpha: 0 +--- !u!114 &1310028841 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1310028837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1310028842 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1310028837} + m_CullTransparentMesh: 1 +--- !u!1 &1311450672 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1311450673} + - component: {fileID: 1311450675} + - component: {fileID: 1311450674} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1311450673 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1311450672} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 221517429} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1311450674 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1311450672} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1311450675 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1311450672} + m_CullTransparentMesh: 1 +--- !u!1 &1319598732 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1319598733} + - component: {fileID: 1319598735} + - component: {fileID: 1319598734} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1319598733 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1319598732} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1282464052} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1319598734 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1319598732} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1319598735 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1319598732} + m_CullTransparentMesh: 1 +--- !u!1 &1321112280 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1321112281} + - component: {fileID: 1321112283} + - component: {fileID: 1321112282} + m_Layer: 0 + m_Name: axis_3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1321112281 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1321112280} + 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: 932711992} + - {fileID: 886618691} + m_Father: {fileID: 1372129984} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: -33} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1321112282 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1321112280} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1321112283 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1321112280} + m_CullTransparentMesh: 1 +--- !u!1001 &1342743755 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 863884970} + m_Modifications: + - target: {fileID: 1225757330756864865, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 1995503638} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalPosition.x + value: 13 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalPosition.z + value: 21 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalRotation.y + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7581380566783588035, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 1995503638} + - target: {fileID: 7872882754437720452, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 1995503638} + - target: {fileID: 8288440288027676086, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_Name + value: 1x30Cube + objectReference: {fileID: 0} + - target: {fileID: 8288440288027676086, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_TagString + value: Wall + objectReference: {fileID: 0} + - target: {fileID: 8288440288027676086, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_StaticEditorFlags + value: 4294967295 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 7872882754437720452, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: db65a59014728b245830bf6269cbbfa6, type: 3} +--- !u!1 &1344447591 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1344447592} + - component: {fileID: 1344447594} + - component: {fileID: 1344447593} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1344447592 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1344447591} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 648258324} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1344447593 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1344447591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1344447594 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1344447591} + m_CullTransparentMesh: 1 +--- !u!1 &1351210038 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1351210039} + - component: {fileID: 1351210041} + - component: {fileID: 1351210040} + m_Layer: 0 + m_Name: painter_b + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1351210039 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1351210038} + 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: 1213129649} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1351210040 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1351210038} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1351210041 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1351210038} + m_CullTransparentMesh: 1 +--- !u!1001 &1351715751 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 863884970} + m_Modifications: + - target: {fileID: 1225757330756864865, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 1821328656} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalPosition.x + value: -24 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalPosition.z + value: -29 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7581380566783588035, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 1821328656} + - target: {fileID: 7872882754437720452, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 1821328656} + - target: {fileID: 8288440288027676086, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_Name + value: 1x30Cube + objectReference: {fileID: 0} + - target: {fileID: 8288440288027676086, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_TagString + value: Wall + objectReference: {fileID: 0} + - target: {fileID: 8288440288027676086, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_StaticEditorFlags + value: 4294967295 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 7872882754437720452, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: db65a59014728b245830bf6269cbbfa6, type: 3} +--- !u!1 &1356798914 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1356798915} + - component: {fileID: 1356798917} + - component: {fileID: 1356798916} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1356798915 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1356798914} + 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: 568499057} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1356798916 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1356798914} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: x5 +--- !u!222 &1356798917 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1356798914} + m_CullTransparentMesh: 1 +--- !u!1 &1358647291 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1358647292} + - component: {fileID: 1358647294} + - component: {fileID: 1358647293} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1358647292 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1358647291} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2009713366} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1358647293 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1358647291} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1358647294 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1358647291} + m_CullTransparentMesh: 1 +--- !u!1 &1364826440 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1364826441} + - component: {fileID: 1364826443} + - component: {fileID: 1364826442} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1364826441 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1364826440} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 810240986} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1364826442 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1364826440} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1364826443 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1364826440} + m_CullTransparentMesh: 1 +--- !u!4 &1365896253 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + m_PrefabInstance: {fileID: 1183749942} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1369105107 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1369105108} + - component: {fileID: 1369105109} + - component: {fileID: 1369105110} + m_Layer: 5 + m_Name: killRewardData + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1369105108 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1369105107} + 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: 497823044} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -80} + m_SizeDelta: {x: 70, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1369105109 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1369105107} + m_CullTransparentMesh: 1 +--- !u!114 &1369105110 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1369105107} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 00 +--- !u!1 &1372129983 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1372129984} + m_Layer: 0 + m_Name: YAxis0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1372129984 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1372129983} + 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: 1234601878} + - {fileID: 595285976} + - {fileID: 102944256} + - {fileID: 1321112281} + - {fileID: 1399926665} + - {fileID: 966834423} + - {fileID: 326222085} + - {fileID: 1414640702} + - {fileID: 200583463} + m_Father: {fileID: 1213129649} + m_RootOrder: 14 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &1380521380 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1380521381} + - component: {fileID: 1380521383} + - component: {fileID: 1380521382} + m_Layer: 0 + m_Name: painter_7 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1380521381 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1380521380} + 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: 201489786} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1380521382 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1380521380} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1380521383 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1380521380} + m_CullTransparentMesh: 1 +--- !u!1 &1382603267 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1382603270} + - component: {fileID: 1382603269} + - component: {fileID: 1382603268} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1382603268 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1382603267} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &1382603269 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1382603267} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &1382603270 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1382603267} + 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: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1392249416 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1392249417} + - component: {fileID: 1392249419} + - component: {fileID: 1392249418} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1392249417 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1392249416} + 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: 200583463} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1392249418 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1392249416} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 80 +--- !u!222 &1392249419 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1392249416} + m_CullTransparentMesh: 1 +--- !u!1 &1393325964 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1393325965} + - component: {fileID: 1393325967} + - component: {fileID: 1393325966} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1393325965 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1393325964} + 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: 1234601878} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 9.063729, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1393325966 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1393325964} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 0 +--- !u!222 &1393325967 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1393325964} + m_CullTransparentMesh: 1 +--- !u!1 &1397091674 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1397091675} + - component: {fileID: 1397091677} + - component: {fileID: 1397091676} + m_Layer: 0 + m_Name: painter_b + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1397091675 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1397091674} + 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: 201489786} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1397091676 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1397091674} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1397091677 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1397091674} + m_CullTransparentMesh: 1 +--- !u!1 &1399697879 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1399697880} + - component: {fileID: 1399697882} + - component: {fileID: 1399697881} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1399697880 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1399697879} + 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: 429369155} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 3, y: 0} + m_SizeDelta: {x: -6, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1399697881 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1399697879} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: kill +--- !u!222 &1399697882 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1399697879} + m_CullTransparentMesh: 1 +--- !u!1 &1399926664 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1399926665} + - component: {fileID: 1399926667} + - component: {fileID: 1399926666} + m_Layer: 0 + m_Name: axis_4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1399926665 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1399926664} + 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: 1443827058} + - {fileID: 15909074} + m_Father: {fileID: 1372129984} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: -3} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1399926666 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1399926664} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1399926667 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1399926664} + m_CullTransparentMesh: 1 +--- !u!1 &1402881478 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1402881479} + - component: {fileID: 1402881481} + - component: {fileID: 1402881480} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1402881479 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1402881478} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1481370281} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1402881480 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1402881478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1402881481 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1402881478} + m_CullTransparentMesh: 1 +--- !u!1 &1406686773 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1406686774} + - component: {fileID: 1406686776} + - component: {fileID: 1406686775} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1406686774 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1406686773} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 909785771} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1406686775 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1406686773} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1406686776 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1406686773} + m_CullTransparentMesh: 1 +--- !u!1 &1406810793 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1406810794} + m_Layer: 0 + m_Name: Title0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1406810794 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1406810793} + 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: 1885190692} + - {fileID: 909785771} + m_Father: {fileID: 201489786} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &1414640701 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1414640702} + - component: {fileID: 1414640704} + - component: {fileID: 1414640703} + m_Layer: 0 + m_Name: axis_7 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1414640702 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1414640701} + 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: 25666660} + - {fileID: 225688600} + m_Father: {fileID: 1372129984} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: 87} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1414640703 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1414640701} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1414640704 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1414640701} + m_CullTransparentMesh: 1 +--- !u!1 &1414673185 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1414673186} + - component: {fileID: 1414673188} + - component: {fileID: 1414673187} + m_Layer: 0 + m_Name: label_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1414673186 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1414673185} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1032891062} + - {fileID: 1416018135} + m_Father: {fileID: 355301579} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -290, y: 150} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1414673187 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1414673185} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1414673188 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1414673185} + m_CullTransparentMesh: 1 +--- !u!1 &1416018134 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1416018135} + - component: {fileID: 1416018137} + - component: {fileID: 1416018136} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1416018135 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1416018134} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1414673186} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1416018136 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1416018134} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1416018137 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1416018134} + m_CullTransparentMesh: 1 +--- !u!1 &1423193377 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1423193378} + m_Layer: 0 + m_Name: Env + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!4 &1423193378 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1423193377} + 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: 863884970} + - {fileID: 636386819} + - {fileID: 705507995} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1433177289 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1433177290} + - component: {fileID: 1433177292} + - component: {fileID: 1433177291} + m_Layer: 0 + m_Name: painter_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1433177290 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1433177289} + 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: 201489786} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1433177291 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1433177289} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1433177292 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1433177289} + m_CullTransparentMesh: 1 +--- !u!1 &1435262640 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1435262641} + - component: {fileID: 1435262643} + - component: {fileID: 1435262642} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1435262641 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1435262640} + 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: 317682828} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1435262642 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1435262640} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 17 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <<< +--- !u!222 &1435262643 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1435262640} + m_CullTransparentMesh: 1 +--- !u!1 &1435664621 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1435664622} + - component: {fileID: 1435664624} + - component: {fileID: 1435664623} + m_Layer: 0 + m_Name: Cube.017_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1435664622 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1435664621} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 17 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1435664623 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1435664621} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1435664624 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1435664621} + m_Mesh: {fileID: -8211673063228289779, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &1439682603 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1439682604} + - component: {fileID: 1439682606} + - component: {fileID: 1439682605} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1439682604 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1439682603} + 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: 966834423} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1439682605 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1439682603} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 50 +--- !u!222 &1439682606 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1439682603} + m_CullTransparentMesh: 1 +--- !u!1 &1439973038 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1439973039} + m_Layer: 0 + m_Name: Tooltip0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1439973039 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1439973038} + 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: 1053490561} + - {fileID: 1792069383} + m_Father: {fileID: 1213129649} + m_RootOrder: 16 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &1443827057 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1443827058} + - component: {fileID: 1443827060} + - component: {fileID: 1443827059} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1443827058 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1443827057} + 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: 1399926665} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1443827059 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1443827057} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 40 +--- !u!222 &1443827060 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1443827057} + m_CullTransparentMesh: 1 +--- !u!1 &1445443960 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1445443961} + - component: {fileID: 1445443963} + - component: {fileID: 1445443962} + m_Layer: 0 + m_Name: painter_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1445443961 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1445443960} + 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: 1213129649} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1445443962 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1445443960} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1445443963 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1445443960} + m_CullTransparentMesh: 1 +--- !u!1 &1462706064 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1462706065} + - component: {fileID: 1462706067} + - component: {fileID: 1462706066} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1462706065 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1462706064} + 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: 733816198} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: -0, y: -2} + m_SizeDelta: {x: 203.93391, y: 25.680567} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1462706066 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1462706064} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: realTimeKeyCounter +--- !u!222 &1462706067 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1462706064} + m_CullTransparentMesh: 1 +--- !u!1 &1466325944 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1466325945} + - component: {fileID: 1466325947} + - component: {fileID: 1466325946} + m_Layer: 0 + m_Name: painter_t + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1466325945 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1466325944} + 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: 1213129649} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1466325946 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1466325944} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1466325947 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1466325944} + m_CullTransparentMesh: 1 +--- !u!1 &1470983555 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1470983556} + - component: {fileID: 1470983558} + - component: {fileID: 1470983557} + m_Layer: 0 + m_Name: axis_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1470983556 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1470983555} + 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: 649944398} + - {fileID: 1023339846} + m_Father: {fileID: 800843590} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -201.26, y: -140} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1470983557 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1470983555} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1470983558 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1470983555} + m_CullTransparentMesh: 1 +--- !u!1 &1475721440 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1475721441} + - component: {fileID: 1475721443} + - component: {fileID: 1475721442} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1475721441 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1475721440} + 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: 474214543} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1475721442 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1475721440} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: x3 +--- !u!222 &1475721443 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1475721440} + m_CullTransparentMesh: 1 +--- !u!1 &1477455555 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1477455556} + - component: {fileID: 1477455558} + - component: {fileID: 1477455557} + m_Layer: 0 + m_Name: title_sub + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1477455556 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1477455555} + 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: 163181243} + - {fileID: 507878346} + m_Father: {fileID: 1872357242} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -24} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1477455557 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1477455555} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1477455558 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1477455555} + m_CullTransparentMesh: 1 +--- !u!1 &1481370280 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1481370281} + - component: {fileID: 1481370283} + - component: {fileID: 1481370282} + m_Layer: 0 + m_Name: axis_3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1481370281 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1481370280} + 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: 942607301} + - {fileID: 1402881479} + m_Father: {fileID: 545189441} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 122.380005, y: -140} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1481370282 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1481370280} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1481370283 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1481370280} + m_CullTransparentMesh: 1 +--- !u!1 &1483392554 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1483392555} + - component: {fileID: 1483392558} + - component: {fileID: 1483392557} + - component: {fileID: 1483392556} + m_Layer: 5 + m_Name: loseInput + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1483392555 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1483392554} + 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: 1977465144} + - {fileID: 1591846252} + m_Father: {fileID: 194652655} + m_RootOrder: 13 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 70, y: -120} + m_SizeDelta: {x: 100, y: 22} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1483392556 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1483392554} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1483392557} + m_TextComponent: {fileID: 1591846253} + m_Placeholder: {fileID: 1977465145} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 +--- !u!114 &1483392557 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1483392554} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1483392558 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1483392554} + m_CullTransparentMesh: 1 +--- !u!1 &1484661764 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1484661765} + - component: {fileID: 1484661767} + - component: {fileID: 1484661766} + m_Layer: 0 + m_Name: Cylinder.005_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1484661765 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1484661764} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 27 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1484661766 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1484661764} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1484661767 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1484661764} + m_Mesh: {fileID: -3715088358359381335, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &1489565675 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1489565676} + - component: {fileID: 1489565678} + - component: {fileID: 1489565677} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1489565676 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1489565675} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1234601878} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -14.531864, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1489565677 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1489565675} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1489565678 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1489565675} + m_CullTransparentMesh: 1 +--- !u!1 &1494239042 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1494239043} + - component: {fileID: 1494239045} + - component: {fileID: 1494239044} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1494239043 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1494239042} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 48524277} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1494239044 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1494239042} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1494239045 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1494239042} + m_CullTransparentMesh: 1 +--- !u!1 &1495256091 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1495256092} + - component: {fileID: 1495256094} + - component: {fileID: 1495256093} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1495256092 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1495256091} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1907076005} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1495256093 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1495256091} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1495256094 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1495256091} + m_CullTransparentMesh: 1 +--- !u!1 &1506720543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1506720544} + - component: {fileID: 1506720547} + - component: {fileID: 1506720546} + - component: {fileID: 1506720545} + m_Layer: 5 + m_Name: shootAddBT + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1506720544 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1506720543} + 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: 39280862} + m_Father: {fileID: 194652655} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 40, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1506720545 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1506720543} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1506720546} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 194652656} + m_TargetAssemblyTypeName: RewardChanger, Assembly-CSharp + m_MethodName: shootRBTPresses + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1506720546 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1506720543} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1506720547 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1506720543} + m_CullTransparentMesh: 1 +--- !u!1 &1510253032 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1510253033} + - component: {fileID: 1510253034} + - component: {fileID: 1510253035} + m_Layer: 5 + m_Name: remainTimeData + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1510253033 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1510253032} + 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: 1619861058} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -353.24, y: -65.00003} + m_SizeDelta: {x: 65, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1510253034 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1510253032} + m_CullTransparentMesh: 1 +--- !u!114 &1510253035 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1510253032} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 00 +--- !u!1 &1517139708 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1517139709} + - component: {fileID: 1517139711} + - component: {fileID: 1517139710} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1517139709 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1517139708} + 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: 1283581649} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: -0, y: -2} + m_SizeDelta: {x: 226.59325, y: 25.680567} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1517139710 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1517139708} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: RealTimeRewardChart +--- !u!222 &1517139711 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1517139708} + m_CullTransparentMesh: 1 +--- !u!1 &1519188528 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1519188529} + m_Layer: 0 + m_Name: YAxis0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1519188529 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1519188528} + 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: 894156494} + - {fileID: 1635496871} + - {fileID: 1721895620} + - {fileID: 358674451} + - {fileID: 1884023750} + - {fileID: 885432327} + - {fileID: 188953745} + - {fileID: 465774759} + - {fileID: 48524277} + m_Father: {fileID: 201489786} + m_RootOrder: 14 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &1530748062 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1530748063} + - component: {fileID: 1530748065} + - component: {fileID: 1530748064} + m_Layer: 0 + m_Name: painter_b + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1530748063 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1530748062} + 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: 611641053} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1530748064 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1530748062} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1530748065 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1530748062} + m_CullTransparentMesh: 1 +--- !u!1 &1536968431 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1536968432} + - component: {fileID: 1536968434} + - component: {fileID: 1536968433} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1536968432 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1536968431} + 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: 1725213616} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1536968433 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1536968431} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 60 +--- !u!222 &1536968434 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1536968431} + m_CullTransparentMesh: 1 +--- !u!1 &1537446174 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1537446175} + - component: {fileID: 1537446177} + - component: {fileID: 1537446176} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1537446175 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1537446174} + 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: 1907076005} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1537446176 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1537446174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 10 +--- !u!222 &1537446177 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1537446174} + m_CullTransparentMesh: 1 +--- !u!1 &1543384451 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1543384452} + - component: {fileID: 1543384454} + - component: {fileID: 1543384453} + m_Layer: 0 + m_Name: painter_t + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1543384452 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1543384451} + 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: 611641053} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1543384453 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1543384451} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1543384454 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1543384451} + m_CullTransparentMesh: 1 +--- !u!1 &1550524475 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1550524476} + - component: {fileID: 1550524478} + - component: {fileID: 1550524477} + m_Layer: 0 + m_Name: Cube.020_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1550524476 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1550524475} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 20 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1550524477 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1550524475} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1550524478 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1550524475} + m_Mesh: {fileID: 6286744291313444990, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &1565640925 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1565640926} + - component: {fileID: 1565640928} + - component: {fileID: 1565640927} + m_Layer: 5 + m_Name: MouseVisualizationBG + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1565640926 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1565640925} + 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: 460761058} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 200, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1565640927 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1565640925} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1565640928 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1565640925} + m_CullTransparentMesh: 1 +--- !u!1 &1569521920 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1569521921} + - component: {fileID: 1569521923} + - component: {fileID: 1569521922} + m_Layer: 5 + m_Name: Remain Enemy + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1569521921 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1569521920} + 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: 1619861058} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -217.8778, y: -65} + m_SizeDelta: {x: 205.722, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1569521922 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1569521920} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Remain Enemy:' +--- !u!222 &1569521923 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1569521920} + m_CullTransparentMesh: 1 +--- !u!1 &1570055072 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1570055073} + - component: {fileID: 1570055075} + - component: {fileID: 1570055074} + m_Layer: 0 + m_Name: painter_7 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1570055073 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1570055072} + 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: 1213129649} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1570055074 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1570055072} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1570055075 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1570055072} + m_CullTransparentMesh: 1 +--- !u!1 &1591846251 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1591846252} + - component: {fileID: 1591846254} + - component: {fileID: 1591846253} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1591846252 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1591846251} + 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: 1483392555} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 3, y: 0} + m_SizeDelta: {x: -6, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1591846253 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1591846251} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 69 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &1591846254 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1591846251} + m_CullTransparentMesh: 1 +--- !u!1 &1602618186 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1602618187} + - component: {fileID: 1602618189} + - component: {fileID: 1602618188} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1602618187 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1602618186} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 844985474} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1602618188 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1602618186} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1602618189 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1602618186} + m_CullTransparentMesh: 1 +--- !u!1 &1603146468 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1603146469} + - component: {fileID: 1603146471} + - component: {fileID: 1603146470} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1603146469 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1603146468} + 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: 1842428954} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 4, y: -2} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1603146470 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1603146468} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &1603146471 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1603146468} + m_CullTransparentMesh: 1 +--- !u!1 &1614878825 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1614878826} + - component: {fileID: 1614878828} + - component: {fileID: 1614878827} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1614878826 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1614878825} + 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: 1884023750} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1614878827 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1614878825} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 40 +--- !u!222 &1614878828 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1614878825} + m_CullTransparentMesh: 1 +--- !u!1 &1614888746 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1614888747} + - component: {fileID: 1614888749} + - component: {fileID: 1614888748} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1614888747 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1614888746} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1635496871} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1614888748 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1614888746} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1614888749 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1614888746} + m_CullTransparentMesh: 1 +--- !u!1 &1615325405 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1615325406} + - component: {fileID: 1615325408} + - component: {fileID: 1615325407} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1615325406 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1615325405} + 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: 1186343261} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1615325407 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1615325405} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: x3 +--- !u!222 &1615325408 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1615325405} + m_CullTransparentMesh: 1 +--- !u!1 &1619861057 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1619861058} + m_Layer: 5 + m_Name: Reward&RemainTime + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1619861058 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1619861057} + 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: 894179989} + - {fileID: 1510253033} + - {fileID: 1569521921} + - {fileID: 1266400767} + - {fileID: 497823044} + - {fileID: 509053162} + - {fileID: 194652655} + m_Father: {fileID: 511399609} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1625376956 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1625376957} + - component: {fileID: 1625376959} + - component: {fileID: 1625376958} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1625376957 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1625376956} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 495150915} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1625376958 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1625376956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1625376959 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1625376956} + m_CullTransparentMesh: 1 +--- !u!1 &1631471391 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1631471392} + m_Layer: 0 + m_Name: label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1631471392 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1631471391} + 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: 1876561007} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &1633112520 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1633112521} + - component: {fileID: 1633112523} + - component: {fileID: 1633112522} + m_Layer: 0 + m_Name: Cube.007_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1633112521 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1633112520} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1633112522 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1633112520} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1633112523 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1633112520} + m_Mesh: {fileID: 5687744605115444253, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &1633276148 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1633276152} + - component: {fileID: 1633276149} + - component: {fileID: 1633276151} + - component: {fileID: 1633276150} + m_Layer: 0 + m_Name: FPSCamera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!20 &1633276149 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1633276148} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 2 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 25 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 51.28201 + 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_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!114 &1633276150 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1633276148} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7ab8f48d4eac07f44b093f714ede051c, type: 3} + m_Name: + m_EditorClassIdentifier: + Agent: {fileID: 629870343} + Cam: {fileID: 1633276149} + MouseSensitivity: 200 + yRotation: -0.1 + viewDistance: 100 +--- !u!81 &1633276151 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1633276148} + m_Enabled: 1 +--- !u!4 &1633276152 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1633276148} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.44000006, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1773751427} + m_Father: {fileID: 629870343} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1635496870 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1635496871} + - component: {fileID: 1635496873} + - component: {fileID: 1635496872} + m_Layer: 0 + m_Name: axis_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1635496871 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1635496870} + 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: 802051162} + - {fileID: 1614888747} + m_Father: {fileID: 1519188529} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: -93} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1635496872 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1635496870} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1635496873 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1635496870} + m_CullTransparentMesh: 1 +--- !u!1 &1636289227 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1636289228} + - component: {fileID: 1636289230} + - component: {fileID: 1636289229} + m_Layer: 0 + m_Name: painter_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1636289228 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1636289227} + 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: 1213129649} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1636289229 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1636289227} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1636289230 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1636289227} + m_CullTransparentMesh: 1 +--- !u!1 &1669330271 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1669330272} + - component: {fileID: 1669330274} + - component: {fileID: 1669330273} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1669330272 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1669330271} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 326222085} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1669330273 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1669330271} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1669330274 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1669330271} + m_CullTransparentMesh: 1 +--- !u!1 &1674594923 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1674594924} + - component: {fileID: 1674594926} + - component: {fileID: 1674594925} + m_Layer: 0 + m_Name: Cylinder.010_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1674594924 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1674594923} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 31 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1674594925 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1674594923} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1674594926 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1674594923} + m_Mesh: {fileID: -7775485357160322779, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &1685871916 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1685871917} + - component: {fileID: 1685871919} + - component: {fileID: 1685871918} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1685871917 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1685871916} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1052249376} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1685871918 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1685871916} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1685871919 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1685871916} + m_CullTransparentMesh: 1 +--- !u!4 &1690705681 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + m_PrefabInstance: {fileID: 2027516183} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1692175692 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1692175693} + - component: {fileID: 1692175695} + - component: {fileID: 1692175694} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1692175693 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1692175692} + 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: 429369155} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 3, y: 0} + m_SizeDelta: {x: -6, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1692175694 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1692175692} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 69 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &1692175695 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1692175692} + m_CullTransparentMesh: 1 +--- !u!1 &1697246154 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1697246155} + - component: {fileID: 1697246157} + - component: {fileID: 1697246156} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1697246155 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1697246154} + 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: 1885190692} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: -0, y: -2} + m_SizeDelta: {x: 208.46579, y: 25.680567} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1697246156 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1697246154} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: EPTotalRewardChart +--- !u!222 &1697246157 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1697246154} + m_CullTransparentMesh: 1 +--- !u!1 &1699903299 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1699903300} + - component: {fileID: 1699903302} + - component: {fileID: 1699903301} + m_Layer: 0 + m_Name: label_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1699903300 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1699903299} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1928773188} + - {fileID: 1762055908} + m_Father: {fileID: 1792069383} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -290, y: 150} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1699903301 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1699903299} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1699903302 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1699903299} + m_CullTransparentMesh: 1 +--- !u!1 &1707839903 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1707839904} + - component: {fileID: 1707839906} + - component: {fileID: 1707839905} + m_Layer: 0 + m_Name: Cylinder.000 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1707839904 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1707839903} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 22 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1707839905 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1707839903} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1707839906 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1707839903} + m_Mesh: {fileID: 7348556155622324996, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!43 &1718911498 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: pb_Mesh26962 + serializedVersion: 10 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 36 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 24 + localAABB: + m_Center: {x: 25, y: 1, z: -0.5} + m_Extent: {x: 25, y: 1, z: 0.5} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 1 + m_KeepVertices: 1 + m_KeepIndices: 1 + m_IndexFormat: 0 + m_IndexBuffer: 000001000200010003000200040005000600050007000600080009000a0009000b000a000c000d000e000d000f000e00100011001200110013001200140015001600150017001600 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 24 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 24 + format: 0 + dimension: 4 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 40 + format: 0 + dimension: 2 + - stream: 0 + offset: 48 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 1344 + _typelessdata: 00000000000000000000000000000000000000000000803f000080bf0000000000000000000080bf0000000000000000ced7a33c2ea6c93d00004842000000000000000000000000000000000000803f000080bf0000000000000000000080bf000048c2000000000f467b3f2ea6c93d00000000000000400000000000000000000000000000803f000080bf0000000000000000000080bf00000000000000400bd7a33c8b350c3e00004842000000400000000000000000000000000000803f000080bf0000000000000000000080bf000048c20000004009467b3f8b350c3e0000484200000000000000000000803f000000000000000000000000000000000000803f000080bf00000000000000000ed7a33c8b358c3e0000484200000000000080bf0000803f000000000000000000000000000000000000803f000080bf000080bf000000000bd7a33cee5c823e0000484200000040000000000000803f000000000000000000000000000000000000803f000080bf00000000000000405b756f3d8b358c3e0000484200000040000080bf0000803f000000000000000000000000000000000000803f000080bf000080bf0000004059756f3dee5c823e0000484200000000000080bf0000000000000000000080bf0000803f0000000000000000000080bf0000484200000000ced7a33c6cb0203e0000000000000000000080bf0000000000000000000080bf0000803f0000000000000000000080bf00000000000000000f467b3f6cb0203e0000484200000040000080bf0000000000000000000080bf0000803f0000000000000000000080bf00004842000000400bd7a33ce112483e0000000000000040000080bf0000000000000000000080bf0000803f0000000000000000000080bf000000000000004009467b3fe112483e0000000000000000000080bf000080bf00000000000000000000000000000000000080bf000080bf0000803f0000000059756f3dc28d5c3e000000000000000000000000000080bf00000000000000000000000000000000000080bf000080bf00000000000000005b756f3dfb3e703e0000000000000040000080bf000080bf00000000000000000000000000000000000080bf000080bf0000803f000000400bd7a33cc28d5c3e000000000000004000000000000080bf00000000000000000000000000000000000080bf000080bf00000000000000400ed7a33cfb3e703e000000000000004000000000000000000000803f000000000000803f0000000000000000000080bf00000000000000001b467b3f6bb0a03d000048420000004000000000000000000000803f000000000000803f0000000000000000000080bf00004842000000003fd8a33c6bb0a03d0000000000000040000080bf000000000000803f000000000000803f0000000000000000000080bf00000000000080bf11467b3ff19b723d0000484200000040000080bf000000000000803f000000000000803f0000000000000000000080bf00004842000080bf0bd7a33cf19b723d0000000000000000000080bf00000000000080bf00000000000080bf0000000000000000000080bf00000000000080bf0bd7a33c0bd7a33c0000484200000000000080bf00000000000080bf00000000000080bf0000000000000000000080bf000048c2000080bf11467b3f0bd7a33c00000000000000000000000000000000000080bf00000000000080bf0000000000000000000080bf00000000000000003fd8a33c6bb0203d00004842000000000000000000000000000080bf00000000000080bf0000000000000000000080bf000048c2000000001b467b3f6bb0203d + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: 25, y: 1, z: -0.5} + m_Extent: {x: 25, y: 1, z: 0.5} + m_MeshUsageFlags: 0 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + m_MeshMetrics[0]: 1 + m_MeshMetrics[1]: 1 + m_MeshOptimizationFlags: 1 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: +--- !u!1 &1721895619 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1721895620} + - component: {fileID: 1721895622} + - component: {fileID: 1721895621} + m_Layer: 0 + m_Name: axis_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1721895620 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1721895619} + 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: 111303086} + - {fileID: 1821850659} + m_Father: {fileID: 1519188529} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: -63} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1721895621 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1721895619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1721895622 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1721895619} + m_CullTransparentMesh: 1 +--- !u!1 &1725213615 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1725213616} + - component: {fileID: 1725213618} + - component: {fileID: 1725213617} + m_Layer: 0 + m_Name: axis_6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1725213616 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1725213615} + 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: 1536968432} + - {fileID: 1952665839} + m_Father: {fileID: 890182309} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: 69} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1725213617 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1725213615} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1725213618 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1725213615} + m_CullTransparentMesh: 1 +--- !u!1 &1734642346 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1734642347} + - component: {fileID: 1734642349} + - component: {fileID: 1734642348} + m_Layer: 0 + m_Name: Cube.011_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1734642347 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1734642346} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1734642348 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1734642346} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1734642349 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1734642346} + m_Mesh: {fileID: -8669127404902318575, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &1740914348 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1740914349} + - component: {fileID: 1740914351} + - component: {fileID: 1740914350} + m_Layer: 0 + m_Name: Cube.014_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1740914349 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1740914348} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 14 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1740914350 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1740914348} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1740914351 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1740914348} + m_Mesh: {fileID: -1094834897351882323, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &1744030217 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1744030218} + - component: {fileID: 1744030220} + - component: {fileID: 1744030219} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1744030218 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1744030217} + 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: 894156494} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 9.063729, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1744030219 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1744030217} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 0 +--- !u!222 &1744030220 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1744030217} + m_CullTransparentMesh: 1 +--- !u!1 &1747636730 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1747636731} + - component: {fileID: 1747636735} + - component: {fileID: 1747636734} + - component: {fileID: 1747636733} + - component: {fileID: 1747636732} + m_Layer: 5 + m_Name: SaveNowButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1747636731 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1747636730} + 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: 147875582} + m_Father: {fileID: 511399609} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -80, y: -228.40002} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1747636732 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1747636730} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 065aae6979c750b4fa0a0be5dbd8d2c7, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1747636733 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1747636730} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1747636734} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1747636734 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1747636730} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1747636735 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1747636730} + m_CullTransparentMesh: 1 +--- !u!1 &1753479624 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1753479625} + - component: {fileID: 1753479627} + - component: {fileID: 1753479626} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1753479625 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1753479624} + 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: 1832129955} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 3, y: 0} + m_SizeDelta: {x: -6, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1753479626 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1753479624} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'SWOR + +' +--- !u!222 &1753479627 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1753479624} + m_CullTransparentMesh: 1 +--- !u!1 &1753569901 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1753569902} + - component: {fileID: 1753569904} + - component: {fileID: 1753569903} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1753569902 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1753569901} + 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: 48524277} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1753569903 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1753569901} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 80 +--- !u!222 &1753569904 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1753569901} + m_CullTransparentMesh: 1 +--- !u!1 &1753625888 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1753625889} + - component: {fileID: 1753625891} + - component: {fileID: 1753625890} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1753625889 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1753625888} + 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: 1884118930} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 4, y: -2} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1753625890 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1753625888} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &1753625891 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1753625888} + m_CullTransparentMesh: 1 +--- !u!1 &1762055907 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1762055908} + - component: {fileID: 1762055910} + - component: {fileID: 1762055909} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1762055908 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1762055907} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1699903300} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1762055909 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1762055907} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1762055910 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1762055907} + m_CullTransparentMesh: 1 +--- !u!1 &1768275351 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1768275352} + - component: {fileID: 1768275354} + - component: {fileID: 1768275353} + m_Layer: 0 + m_Name: painter_8 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1768275352 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1768275351} + 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: 1213129649} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1768275353 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1768275351} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1768275354 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1768275351} + m_CullTransparentMesh: 1 +--- !u!1 &1769014918 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1769014919} + - component: {fileID: 1769014921} + - component: {fileID: 1769014920} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1769014919 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1769014918} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 188953745} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1769014920 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1769014918} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1769014921 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1769014918} + m_CullTransparentMesh: 1 +--- !u!1 &1770477493 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1770477494} + - component: {fileID: 1770477496} + - component: {fileID: 1770477495} + m_Layer: 0 + m_Name: axis_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1770477494 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1770477493} + 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: 602372911} + - {fileID: 210575779} + m_Father: {fileID: 545189441} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 14.5, y: -140} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1770477495 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1770477493} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1770477496 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1770477493} + m_CullTransparentMesh: 1 +--- !u!1 &1773751426 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1773751427} + m_Layer: 0 + m_Name: AKM + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1773751427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1773751426} + m_LocalRotation: {x: -0, y: 1, z: -0, w: -0.0000006705522} + m_LocalPosition: {x: 0.396, y: -0.36700004, z: 0.71} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_Children: + - {fileID: 1984237746} + - {fileID: 928036775} + - {fileID: 678277790} + - {fileID: 1215051368} + - {fileID: 95675458} + - {fileID: 232422799} + - {fileID: 1806074329} + - {fileID: 1633112521} + - {fileID: 898640495} + - {fileID: 2037469699} + - {fileID: 443205579} + - {fileID: 1734642347} + - {fileID: 1026481344} + - {fileID: 99436129} + - {fileID: 1740914349} + - {fileID: 909810157} + - {fileID: 745459474} + - {fileID: 1435664622} + - {fileID: 2032658543} + - {fileID: 822320914} + - {fileID: 1550524476} + - {fileID: 850708203} + - {fileID: 1707839904} + - {fileID: 290664182} + - {fileID: 47646445} + - {fileID: 420670195} + - {fileID: 976372794} + - {fileID: 1484661765} + - {fileID: 758796084} + - {fileID: 971083481} + - {fileID: 532615955} + - {fileID: 1674594924} + - {fileID: 454701934} + - {fileID: 958496985} + - {fileID: 861779683} + - {fileID: 621445973} + m_Father: {fileID: 1633276152} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} +--- !u!1 &1792069382 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1792069383} + m_Layer: 0 + m_Name: label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1792069383 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792069382} + 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: 1699903300} + - {fileID: 1052249376} + m_Father: {fileID: 1439973039} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &1797648750 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1797648751} + - component: {fileID: 1797648753} + - component: {fileID: 1797648752} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1797648751 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797648750} + 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: 909785771} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 4, y: -2} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1797648752 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797648750} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 22 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &1797648753 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797648750} + m_CullTransparentMesh: 1 +--- !u!1 &1802288087 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1802288088} + - component: {fileID: 1802288090} + - component: {fileID: 1802288089} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1802288088 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1802288087} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1234953724} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1802288089 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1802288087} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1802288090 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1802288087} + m_CullTransparentMesh: 1 +--- !u!1 &1804136061 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1804136062} + - component: {fileID: 1804136064} + - component: {fileID: 1804136063} + m_Layer: 0 + m_Name: painter_6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1804136062 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1804136061} + 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: 201489786} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1804136063 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1804136061} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1804136064 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1804136061} + m_CullTransparentMesh: 1 +--- !u!1 &1806074328 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1806074329} + - component: {fileID: 1806074331} + - component: {fileID: 1806074330} + m_Layer: 0 + m_Name: Cube.006_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1806074329 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1806074328} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: 0.15559006, y: 0.4127557, z: 1.3653904} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1806074330 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1806074328} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1806074331 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1806074328} + m_Mesh: {fileID: 3382770850716141589, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &1807687760 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1807687761} + m_Layer: 0 + m_Name: label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1807687761 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1807687760} + 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: 17027927} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &1810548989 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1810548990} + - component: {fileID: 1810548992} + - component: {fileID: 1810548991} + m_Layer: 0 + m_Name: painter_t + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1810548990 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1810548989} + 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: 201489786} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1810548991 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1810548989} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1810548992 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1810548989} + m_CullTransparentMesh: 1 +--- !u!1 &1811785217 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1811785218} + - component: {fileID: 1811785220} + - component: {fileID: 1811785219} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1811785218 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1811785217} + 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: 1113647590} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1811785219 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1811785217} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: x2 +--- !u!222 &1811785220 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1811785217} + m_CullTransparentMesh: 1 +--- !u!43 &1821328656 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: pb_Mesh26856 + serializedVersion: 10 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 36 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 24 + localAABB: + m_Center: {x: 25, y: 1, z: -0.5} + m_Extent: {x: 25, y: 1, z: 0.5} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 1 + m_KeepVertices: 1 + m_KeepIndices: 1 + m_IndexFormat: 0 + m_IndexBuffer: 000001000200010003000200040005000600050007000600080009000a0009000b000a000c000d000e000d000f000e00100011001200110013001200140015001600150017001600 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 24 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 24 + format: 0 + dimension: 4 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 40 + format: 0 + dimension: 2 + - stream: 0 + offset: 48 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 1344 + _typelessdata: 00000000000000000000000000000000000000000000803f000080bf0000000000000000000080bf0000000000000000ced7a33c2ea6c93d00004842000000000000000000000000000000000000803f000080bf0000000000000000000080bf000048c2000000000f467b3f2ea6c93d00000000000000400000000000000000000000000000803f000080bf0000000000000000000080bf00000000000000400bd7a33c8b350c3e00004842000000400000000000000000000000000000803f000080bf0000000000000000000080bf000048c20000004009467b3f8b350c3e0000484200000000000000000000803f000000000000000000000000000000000000803f000080bf00000000000000000ed7a33c8b358c3e0000484200000000000080bf0000803f000000000000000000000000000000000000803f000080bf000080bf000000000bd7a33cee5c823e0000484200000040000000000000803f000000000000000000000000000000000000803f000080bf00000000000000405b756f3d8b358c3e0000484200000040000080bf0000803f000000000000000000000000000000000000803f000080bf000080bf0000004059756f3dee5c823e0000484200000000000080bf0000000000000000000080bf0000803f0000000000000000000080bf0000484200000000ced7a33c6cb0203e0000000000000000000080bf0000000000000000000080bf0000803f0000000000000000000080bf00000000000000000f467b3f6cb0203e0000484200000040000080bf0000000000000000000080bf0000803f0000000000000000000080bf00004842000000400bd7a33ce112483e0000000000000040000080bf0000000000000000000080bf0000803f0000000000000000000080bf000000000000004009467b3fe112483e0000000000000000000080bf000080bf00000000000000000000000000000000000080bf000080bf0000803f0000000059756f3dc28d5c3e000000000000000000000000000080bf00000000000000000000000000000000000080bf000080bf00000000000000005b756f3dfb3e703e0000000000000040000080bf000080bf00000000000000000000000000000000000080bf000080bf0000803f000000400bd7a33cc28d5c3e000000000000004000000000000080bf00000000000000000000000000000000000080bf000080bf00000000000000400ed7a33cfb3e703e000000000000004000000000000000000000803f000000000000803f0000000000000000000080bf00000000000000001b467b3f6bb0a03d000048420000004000000000000000000000803f000000000000803f0000000000000000000080bf00004842000000003fd8a33c6bb0a03d0000000000000040000080bf000000000000803f000000000000803f0000000000000000000080bf00000000000080bf11467b3ff19b723d0000484200000040000080bf000000000000803f000000000000803f0000000000000000000080bf00004842000080bf0bd7a33cf19b723d0000000000000000000080bf00000000000080bf00000000000080bf0000000000000000000080bf00000000000080bf0bd7a33c0bd7a33c0000484200000000000080bf00000000000080bf00000000000080bf0000000000000000000080bf000048c2000080bf11467b3f0bd7a33c00000000000000000000000000000000000080bf00000000000080bf0000000000000000000080bf00000000000000003fd8a33c6bb0203d00004842000000000000000000000000000080bf00000000000080bf0000000000000000000080bf000048c2000000001b467b3f6bb0203d + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: 25, y: 1, z: -0.5} + m_Extent: {x: 25, y: 1, z: 0.5} + m_MeshUsageFlags: 0 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + m_MeshMetrics[0]: 1 + m_MeshMetrics[1]: 1 + m_MeshOptimizationFlags: 1 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: +--- !u!1 &1821752598 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1821752599} + - component: {fileID: 1821752601} + - component: {fileID: 1821752600} + m_Layer: 5 + m_Name: winReward + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1821752599 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1821752598} + 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: 509053162} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -100} + m_SizeDelta: {x: 316.0601, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1821752600 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1821752598} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'winReward: ' +--- !u!222 &1821752601 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1821752598} + m_CullTransparentMesh: 1 +--- !u!1 &1821850658 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1821850659} + - component: {fileID: 1821850661} + - component: {fileID: 1821850660} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1821850659 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1821850658} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1721895620} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1821850660 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1821850658} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1821850661 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1821850658} + m_CullTransparentMesh: 1 +--- !u!1 &1822552282 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1822552283} + - component: {fileID: 1822552285} + - component: {fileID: 1822552284} + m_Layer: 0 + m_Name: label_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1822552283 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1822552282} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 695855998} + - {fileID: 1981716309} + m_Father: {fileID: 141368731} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -290, y: 150} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1822552284 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1822552282} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1822552285 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1822552282} + m_CullTransparentMesh: 1 +--- !u!1 &1829544111 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1829544112} + - component: {fileID: 1829544114} + - component: {fileID: 1829544113} + m_Layer: 0 + m_Name: painter_3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1829544112 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1829544111} + 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: 201489786} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1829544113 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1829544111} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1829544114 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1829544111} + m_CullTransparentMesh: 1 +--- !u!1 &1829879845 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1829879846} + - component: {fileID: 1829879848} + - component: {fileID: 1829879847} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1829879846 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1829879845} + 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: 810240986} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 4, y: -2} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1829879847 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1829879845} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 22 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &1829879848 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1829879845} + m_CullTransparentMesh: 1 +--- !u!1 &1832129954 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1832129955} + - component: {fileID: 1832129958} + - component: {fileID: 1832129957} + - component: {fileID: 1832129956} + m_Layer: 5 + m_Name: shootWithoutReadyInput + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1832129955 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1832129954} + 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: 1753479625} + - {fileID: 1111257558} + m_Father: {fileID: 194652655} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 70, y: -40} + m_SizeDelta: {x: 100, y: 22} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1832129956 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1832129954} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1832129957} + m_TextComponent: {fileID: 1111257559} + m_Placeholder: {fileID: 1753479626} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 +--- !u!114 &1832129957 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1832129954} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1832129958 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1832129954} + m_CullTransparentMesh: 1 +--- !u!1 &1841514736 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1841514737} + - component: {fileID: 1841514739} + - component: {fileID: 1841514738} + m_Layer: 5 + m_Name: loseReward + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1841514737 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1841514736} + 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: 509053162} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -120} + m_SizeDelta: {x: 316.0601, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1841514738 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1841514736} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'loseReward: ' +--- !u!222 &1841514739 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1841514736} + m_CullTransparentMesh: 1 +--- !u!1 &1842428953 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1842428954} + - component: {fileID: 1842428956} + - component: {fileID: 1842428955} + m_Layer: 0 + m_Name: title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1842428954 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1842428953} + 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: 1603146469} + - {fileID: 2108148304} + m_Father: {fileID: 1310028838} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1842428955 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1842428953} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1842428956 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1842428953} + m_CullTransparentMesh: 1 +--- !u!1 &1863075754 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1863075755} + - component: {fileID: 1863075757} + - component: {fileID: 1863075756} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1863075755 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1863075754} + 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: 326222085} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1863075756 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1863075754} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 60 +--- !u!222 &1863075757 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1863075754} + m_CullTransparentMesh: 1 +--- !u!1 &1863263627 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1863263628} + - component: {fileID: 1863263630} + - component: {fileID: 1863263629} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1863263628 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1863263627} + 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: 844985474} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1863263629 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1863263627} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: x1 +--- !u!222 &1863263630 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1863263627} + m_CullTransparentMesh: 1 +--- !u!1 &1867950663 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1867950664} + - component: {fileID: 1867950666} + - component: {fileID: 1867950665} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1867950664 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1867950663} + 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: 1241541574} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 9.063729, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1867950665 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1867950663} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 0 +--- !u!222 &1867950666 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1867950663} + m_CullTransparentMesh: 1 +--- !u!1 &1872357241 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1872357242} + m_Layer: 0 + m_Name: Title0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1872357242 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1872357241} + 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: 1283581649} + - {fileID: 1477455556} + m_Father: {fileID: 1213129649} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &1872392831 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1872392832} + - component: {fileID: 1872392834} + - component: {fileID: 1872392833} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1872392832 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1872392831} + 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: 885432327} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1872392833 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1872392831} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 50 +--- !u!222 &1872392834 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1872392831} + m_CullTransparentMesh: 1 +--- !u!1 &1876561006 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1876561007} + m_Layer: 0 + m_Name: serie_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1876561007 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1876561006} + 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: 1631471392} + - {fileID: 1256664429} + m_Father: {fileID: 611641053} + m_RootOrder: 15 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &1884023749 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1884023750} + - component: {fileID: 1884023752} + - component: {fileID: 1884023751} + m_Layer: 0 + m_Name: axis_4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1884023750 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1884023749} + 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: 1614878826} + - {fileID: 208643481} + m_Father: {fileID: 1519188529} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: -3} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1884023751 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1884023749} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1884023752 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1884023749} + m_CullTransparentMesh: 1 +--- !u!1 &1884118929 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1884118930} + - component: {fileID: 1884118932} + - component: {fileID: 1884118931} + m_Layer: 0 + m_Name: label_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1884118930 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1884118929} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1753625889} + - {fileID: 950921142} + m_Father: {fileID: 355301579} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -290, y: 150} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1884118931 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1884118929} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1884118932 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1884118929} + m_CullTransparentMesh: 1 +--- !u!1 &1885190691 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1885190692} + - component: {fileID: 1885190694} + - component: {fileID: 1885190693} + m_Layer: 0 + m_Name: title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1885190692 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1885190691} + 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: 1697246155} + - {fileID: 815597366} + m_Father: {fileID: 1406810794} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 216.46579, y: 29.680567} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1885190693 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1885190691} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1885190694 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1885190691} + m_CullTransparentMesh: 1 +--- !u!1 &1888459657 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1888459658} + - component: {fileID: 1888459660} + - component: {fileID: 1888459659} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1888459658 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1888459657} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 2026877416} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1888459659 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1888459657} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1888459660 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1888459657} + m_CullTransparentMesh: 1 +--- !u!1 &1907076004 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1907076005} + - component: {fileID: 1907076007} + - component: {fileID: 1907076006} + m_Layer: 0 + m_Name: axis_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1907076005 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1907076004} + 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: 1537446175} + - {fileID: 1495256092} + m_Father: {fileID: 890182309} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -553.2, y: -91} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1907076006 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1907076004} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1907076007 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1907076004} + m_CullTransparentMesh: 1 +--- !u!1 &1913659020 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1913659021} + - component: {fileID: 1913659023} + - component: {fileID: 1913659022} + m_Layer: 5 + m_Name: Crosshair + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1913659021 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1913659020} + 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: 511399609} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 5, y: 5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1913659022 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1913659020} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 50a3ac7eee070fd44ab2021a86a5284c, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1913659023 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1913659020} + m_CullTransparentMesh: 1 +--- !u!1 &1926093281 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1926093282} + - component: {fileID: 1926093284} + - component: {fileID: 1926093283} + m_Layer: 0 + m_Name: axis_4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1926093282 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1926093281} + 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: 838006001} + - {fileID: 430915228} + m_Father: {fileID: 188889958} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 230.26001, y: -140} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1926093283 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1926093281} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1926093284 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1926093281} + m_CullTransparentMesh: 1 +--- !u!1 &1927392548 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1927392549} + - component: {fileID: 1927392551} + - component: {fileID: 1927392550} + m_Layer: 0 + m_Name: column1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1927392549 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1927392548} + 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: 1265073924} + - {fileID: 1304688936} + m_Father: {fileID: 1175413812} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1927392550 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1927392548} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1927392551 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1927392548} + m_CullTransparentMesh: 1 +--- !u!1 &1928773187 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1928773188} + - component: {fileID: 1928773190} + - component: {fileID: 1928773189} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1928773188 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1928773187} + 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: 1699903300} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 4, y: -2} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1928773189 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1928773187} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &1928773190 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1928773187} + m_CullTransparentMesh: 1 +--- !u!1 &1931933152 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1931933153} + - component: {fileID: 1931933156} + - component: {fileID: 1931933155} + - component: {fileID: 1931933154} + m_Layer: 5 + m_Name: shootInput + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1931933153 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1931933152} + 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: 136678429} + - {fileID: 429029228} + m_Father: {fileID: 194652655} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 70, y: -20} + m_SizeDelta: {x: 100, y: 22} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1931933154 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1931933152} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1931933155} + m_TextComponent: {fileID: 429029229} + m_Placeholder: {fileID: 136678430} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 +--- !u!114 &1931933155 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1931933152} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1931933156 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1931933152} + m_CullTransparentMesh: 1 +--- !u!1 &1935182772 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1935182773} + - component: {fileID: 1935182775} + - component: {fileID: 1935182774} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1935182773 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1935182772} + 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: 1282464052} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1935182774 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1935182772} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: x4 +--- !u!222 &1935182775 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1935182772} + m_CullTransparentMesh: 1 +--- !u!1 &1946802029 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1946802030} + - component: {fileID: 1946802034} + - component: {fileID: 1946802033} + - component: {fileID: 1946802032} + m_Layer: 5 + m_Name: nonAddBT + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1946802030 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1946802029} + 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: 1996723313} + m_Father: {fileID: 194652655} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1946802032 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1946802029} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1946802033} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 194652656} + m_TargetAssemblyTypeName: RewardChanger, Assembly-CSharp + m_MethodName: nonRBTPresses + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 1 +--- !u!114 &1946802033 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1946802029} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1946802034 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1946802029} + m_CullTransparentMesh: 1 +--- !u!1 &1950007529 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1950007530} + - component: {fileID: 1950007532} + - component: {fileID: 1950007531} + m_Layer: 5 + m_Name: shootReward + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1950007530 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1950007529} + 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: 509053162} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 316.0601, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1950007531 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1950007529} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'shootReward: ' +--- !u!222 &1950007532 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1950007529} + m_CullTransparentMesh: 1 +--- !u!1 &1952665838 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1952665839} + - component: {fileID: 1952665841} + - component: {fileID: 1952665840} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1952665839 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1952665838} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1725213616} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1952665840 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1952665838} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1952665841 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1952665838} + m_CullTransparentMesh: 1 +--- !u!1 &1953553496 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1953553497} + - component: {fileID: 1953553499} + - component: {fileID: 1953553498} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1953553497 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1953553496} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 140747536} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1953553498 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1953553496} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1953553499 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1953553496} + m_CullTransparentMesh: 1 +--- !u!1 &1958294034 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1958294038} + - component: {fileID: 1958294037} + - component: {fileID: 1958294036} + - component: {fileID: 1958294035} + m_Layer: 5 + m_Name: hitAddBT + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1958294035 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1958294034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1958294036} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 194652656} + m_TargetAssemblyTypeName: RewardChanger, Assembly-CSharp + m_MethodName: hitRBTPresses + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1958294036 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1958294034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1958294037 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1958294034} + m_CullTransparentMesh: 1 +--- !u!224 &1958294038 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1958294034} + 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: 1045368339} + m_Father: {fileID: 194652655} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -60} + m_SizeDelta: {x: 40, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1966151976 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1966151977} + - component: {fileID: 1966151979} + - component: {fileID: 1966151978} + m_Layer: 0 + m_Name: painter_6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1966151977 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1966151976} + 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: 611641053} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1966151978 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1966151976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1966151979 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1966151976} + m_CullTransparentMesh: 1 +--- !u!1 &1977465143 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1977465144} + - component: {fileID: 1977465146} + - component: {fileID: 1977465145} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1977465144 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1977465143} + 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: 1483392555} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 3, y: 0} + m_SizeDelta: {x: -6, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1977465145 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1977465143} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: lose +--- !u!222 &1977465146 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1977465143} + m_CullTransparentMesh: 1 +--- !u!1 &1981716308 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1981716309} + - component: {fileID: 1981716311} + - component: {fileID: 1981716310} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1981716309 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1981716308} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1822552283} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1981716310 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1981716308} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1981716311 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1981716308} + m_CullTransparentMesh: 1 +--- !u!1 &1984237745 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1984237746} + - component: {fileID: 1984237748} + - component: {fileID: 1984237747} + m_Layer: 0 + m_Name: Circle_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1984237746 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1984237745} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1984237747 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1984237745} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1984237748 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1984237745} + m_Mesh: {fileID: 3440213568303713751, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!43 &1995503638 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: pb_Mesh27068 + serializedVersion: 10 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 36 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 24 + localAABB: + m_Center: {x: 25, y: 1, z: -0.5} + m_Extent: {x: 25, y: 1, z: 0.5} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 1 + m_KeepVertices: 1 + m_KeepIndices: 1 + m_IndexFormat: 0 + m_IndexBuffer: 000001000200010003000200040005000600050007000600080009000a0009000b000a000c000d000e000d000f000e00100011001200110013001200140015001600150017001600 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 24 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 24 + format: 0 + dimension: 4 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 40 + format: 0 + dimension: 2 + - stream: 0 + offset: 48 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 1344 + _typelessdata: 00000000000000000000000000000000000000000000803f000080bf0000000000000000000080bf0000000000000000ced7a33c2ea6c93d00004842000000000000000000000000000000000000803f000080bf0000000000000000000080bf000048c2000000000f467b3f2ea6c93d00000000000000400000000000000000000000000000803f000080bf0000000000000000000080bf00000000000000400bd7a33c8b350c3e00004842000000400000000000000000000000000000803f000080bf0000000000000000000080bf000048c20000004009467b3f8b350c3e0000484200000000000000000000803f000000000000000000000000000000000000803f000080bf00000000000000000ed7a33c8b358c3e0000484200000000000080bf0000803f000000000000000000000000000000000000803f000080bf000080bf000000000bd7a33cee5c823e0000484200000040000000000000803f000000000000000000000000000000000000803f000080bf00000000000000405b756f3d8b358c3e0000484200000040000080bf0000803f000000000000000000000000000000000000803f000080bf000080bf0000004059756f3dee5c823e0000484200000000000080bf0000000000000000000080bf0000803f0000000000000000000080bf0000484200000000ced7a33c6cb0203e0000000000000000000080bf0000000000000000000080bf0000803f0000000000000000000080bf00000000000000000f467b3f6cb0203e0000484200000040000080bf0000000000000000000080bf0000803f0000000000000000000080bf00004842000000400bd7a33ce112483e0000000000000040000080bf0000000000000000000080bf0000803f0000000000000000000080bf000000000000004009467b3fe112483e0000000000000000000080bf000080bf00000000000000000000000000000000000080bf000080bf0000803f0000000059756f3dc28d5c3e000000000000000000000000000080bf00000000000000000000000000000000000080bf000080bf00000000000000005b756f3dfb3e703e0000000000000040000080bf000080bf00000000000000000000000000000000000080bf000080bf0000803f000000400bd7a33cc28d5c3e000000000000004000000000000080bf00000000000000000000000000000000000080bf000080bf00000000000000400ed7a33cfb3e703e000000000000004000000000000000000000803f000000000000803f0000000000000000000080bf00000000000000001b467b3f6bb0a03d000048420000004000000000000000000000803f000000000000803f0000000000000000000080bf00004842000000003fd8a33c6bb0a03d0000000000000040000080bf000000000000803f000000000000803f0000000000000000000080bf00000000000080bf11467b3ff19b723d0000484200000040000080bf000000000000803f000000000000803f0000000000000000000080bf00004842000080bf0bd7a33cf19b723d0000000000000000000080bf00000000000080bf00000000000080bf0000000000000000000080bf00000000000080bf0bd7a33c0bd7a33c0000484200000000000080bf00000000000080bf00000000000080bf0000000000000000000080bf000048c2000080bf11467b3f0bd7a33c00000000000000000000000000000000000080bf00000000000080bf0000000000000000000080bf00000000000000003fd8a33c6bb0203d00004842000000000000000000000000000080bf00000000000080bf0000000000000000000080bf000048c2000000001b467b3f6bb0203d + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: 25, y: 1, z: -0.5} + m_Extent: {x: 25, y: 1, z: 0.5} + m_MeshUsageFlags: 0 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + m_MeshMetrics[0]: 1 + m_MeshMetrics[1]: 1 + m_MeshOptimizationFlags: 1 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: +--- !u!1 &1996723312 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1996723313} + - component: {fileID: 1996723315} + - component: {fileID: 1996723314} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1996723313 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1996723312} + 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: 1946802030} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1996723314 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1996723312} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 17 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <<< +--- !u!222 &1996723315 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1996723312} + m_CullTransparentMesh: 1 +--- !u!1 &2009713365 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2009713366} + - component: {fileID: 2009713368} + - component: {fileID: 2009713367} + m_Layer: 0 + m_Name: column1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2009713366 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2009713365} + 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: 143757500} + - {fileID: 1358647292} + m_Father: {fileID: 101801539} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &2009713367 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2009713365} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2009713368 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2009713365} + m_CullTransparentMesh: 1 +--- !u!1 &2021417082 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2021417083} + - component: {fileID: 2021417085} + - component: {fileID: 2021417084} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2021417083 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2021417082} + 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: 962451837} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &2021417084 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2021417082} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 70 +--- !u!222 &2021417085 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2021417082} + m_CullTransparentMesh: 1 +--- !u!1 &2022475717 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2022475718} + - component: {fileID: 2022475720} + - component: {fileID: 2022475719} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2022475718 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2022475717} + 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: 335823787} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &2022475719 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2022475717} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &2022475720 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2022475717} + m_CullTransparentMesh: 1 +--- !u!1 &2026877415 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2026877416} + - component: {fileID: 2026877418} + - component: {fileID: 2026877417} + m_Layer: 0 + m_Name: title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2026877416 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2026877415} + 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: 404938102} + - {fileID: 1888459658} + m_Father: {fileID: 162376322} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &2026877417 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2026877415} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2026877418 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2026877415} + m_CullTransparentMesh: 1 +--- !u!1001 &2027516183 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 863884970} + m_Modifications: + - target: {fileID: 1225757330756864865, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 1718911498} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalPosition.x + value: -23 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalPosition.z + value: 22 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4658081160006525512, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7581380566783588035, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 1718911498} + - target: {fileID: 7872882754437720452, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 1718911498} + - target: {fileID: 8288440288027676086, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_Name + value: 1x30Cube + objectReference: {fileID: 0} + - target: {fileID: 8288440288027676086, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_TagString + value: Wall + objectReference: {fileID: 0} + - target: {fileID: 8288440288027676086, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + propertyPath: m_StaticEditorFlags + value: 4294967295 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 7872882754437720452, guid: db65a59014728b245830bf6269cbbfa6, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: db65a59014728b245830bf6269cbbfa6, type: 3} +--- !u!1 &2032658542 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2032658543} + - component: {fileID: 2032658545} + - component: {fileID: 2032658544} + m_Layer: 0 + m_Name: Cube.018_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2032658543 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2032658542} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 18 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &2032658544 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2032658542} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &2032658545 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2032658542} + m_Mesh: {fileID: -3773398725173850471, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &2037469698 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2037469699} + - component: {fileID: 2037469701} + - component: {fileID: 2037469700} + m_Layer: 0 + m_Name: Cube.009_low + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2037469699 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2037469698} + m_LocalRotation: {x: -0.7071068, y: -0.000000057601163, z: -0.000000057601163, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1773751427} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &2037469700 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2037469698} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08d76a9e6d6712d4aa9193bdb4f6b55f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &2037469701 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2037469698} + m_Mesh: {fileID: 1558708428209142139, guid: 99fcce1f10b2ebd4a8cd31a345f6bed8, type: 3} +--- !u!1 &2037616962 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2037616963} + - component: {fileID: 2037616965} + - component: {fileID: 2037616964} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2037616963 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2037616962} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 491271242} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2037616964 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2037616962} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2037616965 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2037616962} + m_CullTransparentMesh: 1 +--- !u!1 &2037666612 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2037666613} + m_Layer: 0 + m_Name: Tooltip0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2037666613 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2037666612} + 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: 162376322} + - {fileID: 141368731} + m_Father: {fileID: 611641053} + m_RootOrder: 16 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!1 &2039575182 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2039575183} + - component: {fileID: 2039575185} + - component: {fileID: 2039575184} + m_Layer: 0 + m_Name: painter_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2039575183 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2039575182} + 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: 1213129649} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &2039575184 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2039575182} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &2039575185 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2039575182} + m_CullTransparentMesh: 1 +--- !u!1 &2045678516 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2045678517} + - component: {fileID: 2045678519} + - component: {fileID: 2045678518} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2045678517 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2045678516} + 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: 973809284} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &2045678518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2045678516} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!222 &2045678519 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2045678516} + m_CullTransparentMesh: 1 +--- !u!1 &2047194225 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2047194226} + - component: {fileID: 2047194228} + - component: {fileID: 2047194227} + m_Layer: 5 + m_Name: left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2047194226 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2047194225} + 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: 215367152} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: -763.2, y: -427.6} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2047194227 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2047194225} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: f93a52d02d735b642888188cc77164da, type: 3} + m_FontSize: 25 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 50 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u2190" +--- !u!222 &2047194228 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2047194225} + m_CullTransparentMesh: 1 +--- !u!1 &2054949622 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2054949623} + - component: {fileID: 2054949625} + - component: {fileID: 2054949624} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2054949623 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2054949622} + 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: 465774759} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 18.127459, y: 18.127459} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &2054949624 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2054949622} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 70 +--- !u!222 &2054949625 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2054949622} + m_CullTransparentMesh: 1 +--- !u!1 &2062704622 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2062704623} + - component: {fileID: 2062704624} + - component: {fileID: 2062704625} + m_Layer: 5 + m_Name: hitRewardData + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2062704623 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2062704622} + 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: 497823044} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -60} + m_SizeDelta: {x: 70, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2062704624 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2062704622} + m_CullTransparentMesh: 1 +--- !u!114 &2062704625 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2062704622} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 00 +--- !u!1 &2076769189 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2076769193} + - component: {fileID: 2076769192} + - component: {fileID: 2076769191} + - component: {fileID: 2076769190} + m_Layer: 5 + m_Name: killAddBT + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2076769190 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2076769189} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2076769191} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 194652656} + m_TargetAssemblyTypeName: RewardChanger, Assembly-CSharp + m_MethodName: killRBTPresses + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &2076769191 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2076769189} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2076769192 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2076769189} + m_CullTransparentMesh: 1 +--- !u!224 &2076769193 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2076769189} + 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: 670541042} + m_Father: {fileID: 194652655} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -80} + m_SizeDelta: {x: 40, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2085253771 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2085253772} + - component: {fileID: 2085253774} + - component: {fileID: 2085253773} + m_Layer: 0 + m_Name: axis_4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2085253772 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2085253771} + 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: 1032063797} + - {fileID: 149710881} + m_Father: {fileID: 800843590} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 230.26001, y: -140} + m_SizeDelta: {x: 26.127459, y: 22.127459} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2085253773 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2085253771} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2085253774 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2085253771} + m_CullTransparentMesh: 1 +--- !u!1 &2088978189 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2088978190} + - component: {fileID: 2088978192} + - component: {fileID: 2088978191} + m_Layer: 0 + m_Name: info + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2088978190 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2088978189} + 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: 1276826918} + - {fileID: 15538179} + m_Father: {fileID: 625252342} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &2088978191 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2088978189} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61287841bdc4142caba8e77985cd8715, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.1254902, g: 0.1254902, b: 0.1254902, a: 0.6666667} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2088978192 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2088978189} + m_CullTransparentMesh: 1 +--- !u!1 &2108148303 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2108148304} + - component: {fileID: 2108148306} + - component: {fileID: 2108148305} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2108148304 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2108148303} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1842428954} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2108148305 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2108148303} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2108148306 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2108148303} + m_CullTransparentMesh: 1 +--- !u!1 &2114851407 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2114851408} + - component: {fileID: 2114851410} + - component: {fileID: 2114851409} + m_Layer: 0 + m_Name: painter_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2114851408 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2114851407} + 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: 201489786} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &2114851409 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2114851407} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &2114851410 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2114851407} + m_CullTransparentMesh: 1 +--- !u!1 &2116623348 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2116623349} + - component: {fileID: 2116623351} + - component: {fileID: 2116623350} + m_Layer: 0 + m_Name: painter_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2116623349 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2116623348} + 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: 611641053} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 580, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &2116623350 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2116623348} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01c85cd323a9f4dfb803470695bd0944, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &2116623351 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2116623348} + m_CullTransparentMesh: 1 +--- !u!1 &2121688057 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2121688058} + - component: {fileID: 2121688060} + - component: {fileID: 2121688059} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2121688058 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2121688057} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 568499057} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -19.063728, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2121688059 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2121688057} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2121688060 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2121688057} + m_CullTransparentMesh: 1 +--- !u!1 &2138874023 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2138874024} + - component: {fileID: 2138874026} + - component: {fileID: 2138874025} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2138874024 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2138874023} + 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: 785752919} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 3, y: 0} + m_SizeDelta: {x: -6, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2138874025 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2138874023} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: hit +--- !u!222 &2138874026 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2138874023} + m_CullTransparentMesh: 1 +--- !u!1 &2142133931 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2142133932} + - component: {fileID: 2142133934} + - component: {fileID: 2142133933} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2142133932 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2142133931} + 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: 800325714} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2142133933 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2142133931} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 17 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: <<< +--- !u!222 &2142133934 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2142133931} + m_CullTransparentMesh: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Scenes/InGame.unity.meta b/Aimbot-PPO-MultiScene/Assets/Scenes/InGame.unity.meta new file mode 100644 index 0000000..952bd1e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Scenes/InGame.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9fc0d4010bbf28b4594072e72b8655ab +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Scenes/Start.unity b/Aimbot-PPO-MultiScene/Assets/Scenes/Start.unity new file mode 100644 index 0000000..70f7f90 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Scenes/Start.unity @@ -0,0 +1,5795 @@ +%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: 9 + 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.44657898, g: 0.4964133, b: 0.5748178, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 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: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !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 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &42682887 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 42682888} + - component: {fileID: 42682890} + - component: {fileID: 42682889} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &42682888 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 42682887} + 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: 883289516} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &42682889 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 42682887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Start +--- !u!222 &42682890 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 42682887} + m_CullTransparentMesh: 1 +--- !u!1 &112144285 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 112144286} + - component: {fileID: 112144288} + - component: {fileID: 112144287} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &112144286 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 112144285} + 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: 653235283} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &112144287 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 112144285} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: LoadDirTime +--- !u!222 &112144288 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 112144285} + m_CullTransparentMesh: 1 +--- !u!1 &129131657 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 129131658} + - component: {fileID: 129131660} + - component: {fileID: 129131659} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &129131658 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 129131657} + 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: 1733870683} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &129131659 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 129131657} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &129131660 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 129131657} + m_CullTransparentMesh: 1 +--- !u!1 &132436944 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 132436945} + - component: {fileID: 132436947} + - component: {fileID: 132436946} + m_Layer: 5 + m_Name: InfoText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &132436945 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 132436944} + 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: 1539152182} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 565, y: 0} + m_SizeDelta: {x: 490.8, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &132436946 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 132436944} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Input Date(just like 08311045)and Time(like 104504) +--- !u!222 &132436947 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 132436944} + m_CullTransparentMesh: 1 +--- !u!1 &214505146 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 214505148} + - component: {fileID: 214505147} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &214505147 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 214505146} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &214505148 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 214505146} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &228040751 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 228040752} + - component: {fileID: 228040754} + - component: {fileID: 228040753} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &228040752 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 228040751} + 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: 1054572789} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &228040753 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 228040751} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &228040754 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 228040751} + m_CullTransparentMesh: 1 +--- !u!1 &282242985 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 282242986} + - component: {fileID: 282242988} + - component: {fileID: 282242987} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &282242986 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 282242985} + 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: 1633180792} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 9, y: -0.5} + m_SizeDelta: {x: -28, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &282242987 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 282242985} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: TakeActionsBetweenDecisions +--- !u!222 &282242988 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 282242985} + m_CullTransparentMesh: 1 +--- !u!1 &293920964 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 293920965} + - component: {fileID: 293920968} + - component: {fileID: 293920967} + - component: {fileID: 293920966} + - component: {fileID: 293920969} + m_Layer: 5 + m_Name: LoadDirTextBox-Date + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &293920965 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 293920964} + 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: 884034940} + - {fileID: 746911212} + m_Father: {fileID: 1539152182} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 95, y: 0} + m_SizeDelta: {x: 136, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &293920966 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 293920964} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 0 + m_TargetGraphic: {fileID: 293920967} + m_TextComponent: {fileID: 746911213} + m_Placeholder: {fileID: 884034941} + m_ContentType: 2 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 4 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 1 + m_CharacterLimit: 8 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 293920969} + m_TargetAssemblyTypeName: LoadDirDateTextChange, Assembly-CSharp + m_MethodName: OnValueChanged + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 +--- !u!114 &293920967 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 293920964} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &293920968 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 293920964} + m_CullTransparentMesh: 1 +--- !u!114 &293920969 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 293920964} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cce4f6a22ca8eba4b94c1bfc6ac08072, type: 3} + m_Name: + m_EditorClassIdentifier: + DataTransfer: {fileID: 1483319556} +--- !u!1 &350269940 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 350269941} + - component: {fileID: 350269943} + - component: {fileID: 350269942} + m_Layer: 5 + m_Name: killReward + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &350269941 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 350269940} + 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: 1546066800} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -155, y: -120} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &350269942 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 350269940} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'killReward + +' +--- !u!222 &350269943 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 350269940} + m_CullTransparentMesh: 1 +--- !u!1 &473186478 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 473186479} + - component: {fileID: 473186481} + - component: {fileID: 473186480} + m_Layer: 5 + m_Name: DecisionPeriodText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &473186479 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 473186478} + 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: 2046915484} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -74.09999, y: 0} + m_SizeDelta: {x: 120, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &473186480 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 473186478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'DecisionPeriod:' +--- !u!222 &473186481 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 473186478} + m_CullTransparentMesh: 1 +--- !u!1 &480624646 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 480624647} + - component: {fileID: 480624649} + - component: {fileID: 480624648} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &480624647 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 480624646} + 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: 619248516} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &480624648 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 480624646} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 10.0 +--- !u!222 &480624649 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 480624646} + m_CullTransparentMesh: 1 +--- !u!1 &519891816 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519891817} + - component: {fileID: 519891820} + - component: {fileID: 519891819} + - component: {fileID: 519891818} + m_Layer: 5 + m_Name: shootWithoutReady + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &519891817 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519891816} + 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: 1002439974} + - {fileID: 979759537} + m_Father: {fileID: 1546066800} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -60} + m_SizeDelta: {x: 136, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &519891818 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519891816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 519891819} + m_TextComponent: {fileID: 979759538} + m_Placeholder: {fileID: 1002439975} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 8 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1546066801} + m_TargetAssemblyTypeName: RewardsChange, Assembly-CSharp + m_MethodName: shootWOReadyRValueChanged + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 +--- !u!114 &519891819 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519891816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &519891820 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519891816} + m_CullTransparentMesh: 1 +--- !u!1 &568685693 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 568685694} + - component: {fileID: 568685696} + - component: {fileID: 568685695} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &568685694 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 568685693} + 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: 651349052} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 9, y: -0.5} + m_SizeDelta: {x: -28, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &568685695 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 568685693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &568685696 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 568685693} + m_CullTransparentMesh: 1 +--- !u!1 &589318726 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 589318727} + - component: {fileID: 589318730} + - component: {fileID: 589318729} + - component: {fileID: 589318728} + m_Layer: 5 + m_Name: non + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &589318727 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 589318726} + 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: 1653556294} + - {fileID: 1952163555} + m_Father: {fileID: 1546066800} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 136, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &589318728 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 589318726} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 589318729} + m_TextComponent: {fileID: 1952163556} + m_Placeholder: {fileID: 1653556295} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 8 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1546066801} + m_TargetAssemblyTypeName: RewardsChange, Assembly-CSharp + m_MethodName: nonRValueChanged + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 +--- !u!114 &589318729 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 589318726} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &589318730 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 589318726} + m_CullTransparentMesh: 1 +--- !u!1 &619248515 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 619248516} + - component: {fileID: 619248519} + - component: {fileID: 619248518} + - component: {fileID: 619248517} + m_Layer: 5 + m_Name: kill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &619248516 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 619248515} + 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: 480624647} + - {fileID: 1768793743} + m_Father: {fileID: 1546066800} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -120} + m_SizeDelta: {x: 136, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &619248517 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 619248515} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 619248518} + m_TextComponent: {fileID: 1768793744} + m_Placeholder: {fileID: 480624648} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 8 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1546066801} + m_TargetAssemblyTypeName: RewardsChange, Assembly-CSharp + m_MethodName: killRValueChanged + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 +--- !u!114 &619248518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 619248515} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &619248519 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 619248515} + m_CullTransparentMesh: 1 +--- !u!1 &651349051 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 651349052} + - component: {fileID: 651349054} + - component: {fileID: 651349053} + m_Layer: 5 + m_Name: LoadDirToggle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &651349052 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 651349051} + 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: 855266357} + - {fileID: 568685694} + m_Father: {fileID: 1539152182} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 40, y: 0} + m_SizeDelta: {x: 80, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &651349053 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 651349051} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e18f417f93a39c74481660da3236c133, type: 3} + m_Name: + m_EditorClassIdentifier: + LoadDirDateTextBox: {fileID: 293920966} + LoadDirTimeTextBox: {fileID: 653235284} + Toggle: {fileID: 651349054} + DataTransfer: {fileID: 1483319556} +--- !u!114 &651349054 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 651349051} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 855266358} + toggleTransition: 1 + graphic: {fileID: 786591310} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 651349053} + m_TargetAssemblyTypeName: LoadDirToggle, Assembly-CSharp + m_MethodName: OnToggleChanged + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_IsOn: 0 +--- !u!1 &653235282 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 653235283} + - component: {fileID: 653235286} + - component: {fileID: 653235285} + - component: {fileID: 653235284} + - component: {fileID: 653235287} + m_Layer: 5 + m_Name: LoadDirTextBox-Time + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &653235283 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 653235282} + 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: 112144286} + - {fileID: 1086771388} + m_Father: {fileID: 1539152182} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 237.17099, y: 0} + m_SizeDelta: {x: 148.3425, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &653235284 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 653235282} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 0 + m_TargetGraphic: {fileID: 653235285} + m_TextComponent: {fileID: 1086771389} + m_Placeholder: {fileID: 112144287} + m_ContentType: 2 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 4 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 1 + m_CharacterLimit: 6 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 653235287} + m_TargetAssemblyTypeName: LoadDirTimeTextChange, Assembly-CSharp + m_MethodName: OnValueChanged + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 +--- !u!114 &653235285 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 653235282} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &653235286 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 653235282} + m_CullTransparentMesh: 1 +--- !u!114 &653235287 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 653235282} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8396a1a162e012447a0e4f7626e70dc7, type: 3} + m_Name: + m_EditorClassIdentifier: + DataTransfer: {fileID: 1483319556} +--- !u!1 &658127036 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 658127037} + - component: {fileID: 658127039} + - component: {fileID: 658127038} + m_Layer: 5 + m_Name: winReward + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &658127037 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 658127036} + 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: 1546066800} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -155, y: -150} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &658127038 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 658127036} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: winReward +--- !u!222 &658127039 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 658127036} + m_CullTransparentMesh: 1 +--- !u!1 &668470152 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 668470153} + - component: {fileID: 668470155} + - component: {fileID: 668470154} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &668470153 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 668470152} + 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: 2070899080} + m_Father: {fileID: 1633180792} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 10, y: -10} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &668470154 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 668470152} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &668470155 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 668470152} + m_CullTransparentMesh: 1 +--- !u!1 &720101934 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 720101935} + - component: {fileID: 720101937} + - component: {fileID: 720101936} + m_Layer: 5 + m_Name: nonReward + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &720101935 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 720101934} + 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: 1546066800} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -155, y: 0} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &720101936 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 720101934} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: nonReward +--- !u!222 &720101937 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 720101934} + m_CullTransparentMesh: 1 +--- !u!1 &726997157 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 726997160} + - component: {fileID: 726997159} + - component: {fileID: 726997158} + m_Layer: 0 + m_Name: Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &726997158 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 726997157} + m_Enabled: 1 +--- !u!20 &726997159 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 726997157} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + 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: 0 + 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_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &726997160 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 726997157} + 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: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &746911211 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 746911212} + - component: {fileID: 746911214} + - component: {fileID: 746911213} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &746911212 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 746911211} + 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: 293920965} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &746911213 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 746911211} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &746911214 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 746911211} + m_CullTransparentMesh: 1 +--- !u!1 &764033377 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 764033378} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &764033378 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 764033377} + 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: 910511157} + m_Father: {fileID: 2025428251} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &786591308 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 786591309} + - component: {fileID: 786591311} + - component: {fileID: 786591310} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &786591309 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 786591308} + 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: 855266357} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &786591310 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 786591308} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &786591311 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 786591308} + m_CullTransparentMesh: 1 +--- !u!1 &808693437 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 808693438} + - component: {fileID: 808693440} + - component: {fileID: 808693439} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &808693438 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 808693437} + 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: 2087760451} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &808693439 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 808693437} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &808693440 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 808693437} + m_CullTransparentMesh: 1 +--- !u!1 &846094854 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 846094855} + - component: {fileID: 846094857} + - component: {fileID: 846094856} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &846094855 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 846094854} + 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: 2087760451} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &846094856 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 846094854} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 20.0 +--- !u!222 &846094857 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 846094854} + m_CullTransparentMesh: 1 +--- !u!1 &855266356 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 855266357} + - component: {fileID: 855266359} + - component: {fileID: 855266358} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &855266357 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 855266356} + 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: 786591309} + m_Father: {fileID: 651349052} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 10, y: -10} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &855266358 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 855266356} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &855266359 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 855266356} + m_CullTransparentMesh: 1 +--- !u!1 &883289515 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 883289516} + - component: {fileID: 883289519} + - component: {fileID: 883289518} + - component: {fileID: 883289517} + - component: {fileID: 883289520} + m_Layer: 5 + m_Name: Start + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &883289516 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 883289515} + 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: 42682888} + m_Father: {fileID: 1375409014} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0.5, y: 87} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &883289517 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 883289515} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 883289518} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 883289520} + m_TargetAssemblyTypeName: SceneChange, Assembly-CSharp + m_MethodName: onStartClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &883289518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 883289515} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &883289519 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 883289515} + m_CullTransparentMesh: 1 +--- !u!114 &883289520 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 883289515} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73ae3df5f5faba1428ab2529c043b7ae, type: 3} + m_Name: + m_EditorClassIdentifier: + DataTransfer: {fileID: 1483319556} + errorText: {fileID: 1951625460} +--- !u!1 &884034939 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 884034940} + - component: {fileID: 884034942} + - component: {fileID: 884034941} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &884034940 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 884034939} + 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: 293920965} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &884034941 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 884034939} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: LoadDirDate +--- !u!222 &884034942 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 884034939} + m_CullTransparentMesh: 1 +--- !u!1 &892644347 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 892644348} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &892644348 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 892644347} + 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: 1413448795} + m_Father: {fileID: 2025428251} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &901241035 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 901241036} + - component: {fileID: 901241038} + - component: {fileID: 901241037} + m_Layer: 5 + m_Name: DecisionPeriodData + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &901241036 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 901241035} + 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: 2046915484} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -11.3, y: 0} + m_SizeDelta: {x: 24.8115, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &901241037 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 901241035} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 1 +--- !u!222 &901241038 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 901241035} + m_CullTransparentMesh: 1 +--- !u!1 &910511156 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 910511157} + - component: {fileID: 910511159} + - component: {fileID: 910511158} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &910511157 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 910511156} + 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: 764033378} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &910511158 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 910511156} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &910511159 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 910511156} + m_CullTransparentMesh: 1 +--- !u!1 &979759536 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 979759537} + - component: {fileID: 979759539} + - component: {fileID: 979759538} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &979759537 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 979759536} + 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: 519891817} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &979759538 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 979759536} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &979759539 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 979759536} + m_CullTransparentMesh: 1 +--- !u!1 &1002439973 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1002439974} + - component: {fileID: 1002439976} + - component: {fileID: 1002439975} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1002439974 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1002439973} + 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: 519891817} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1002439975 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1002439973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: -0.06 +--- !u!222 &1002439976 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1002439973} + m_CullTransparentMesh: 1 +--- !u!1 &1054572788 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1054572789} + - component: {fileID: 1054572792} + - component: {fileID: 1054572791} + - component: {fileID: 1054572790} + m_Layer: 5 + m_Name: lose + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1054572789 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1054572788} + 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: 1507282999} + - {fileID: 228040752} + m_Father: {fileID: 1546066800} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -180} + m_SizeDelta: {x: 136, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1054572790 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1054572788} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1054572791} + m_TextComponent: {fileID: 228040753} + m_Placeholder: {fileID: 1507283000} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 8 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1546066801} + m_TargetAssemblyTypeName: RewardsChange, Assembly-CSharp + m_MethodName: loseRValueChanged + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 +--- !u!114 &1054572791 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1054572788} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1054572792 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1054572788} + m_CullTransparentMesh: 1 +--- !u!1 &1065028216 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1065028217} + - component: {fileID: 1065028220} + - component: {fileID: 1065028219} + - component: {fileID: 1065028218} + m_Layer: 5 + m_Name: shoot + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1065028217 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1065028216} + 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: 1813454583} + - {fileID: 1942806763} + m_Father: {fileID: 1546066800} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -30} + m_SizeDelta: {x: 136, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1065028218 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1065028216} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1065028219} + m_TextComponent: {fileID: 1942806764} + m_Placeholder: {fileID: 1813454584} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 8 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1546066801} + m_TargetAssemblyTypeName: RewardsChange, Assembly-CSharp + m_MethodName: shootRValueChanged + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 +--- !u!114 &1065028219 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1065028216} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1065028220 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1065028216} + m_CullTransparentMesh: 1 +--- !u!1 &1086771387 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1086771388} + - component: {fileID: 1086771390} + - component: {fileID: 1086771389} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1086771388 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1086771387} + 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: 653235283} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1086771389 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1086771387} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &1086771390 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1086771387} + m_CullTransparentMesh: 1 +--- !u!1 &1214676943 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1214676944} + - component: {fileID: 1214676946} + - component: {fileID: 1214676945} + m_Layer: 5 + m_Name: shootReward + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1214676944 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1214676943} + 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: 1546066800} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -155, y: -30} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1214676945 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1214676943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: shootReward +--- !u!222 &1214676946 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1214676943} + m_CullTransparentMesh: 1 +--- !u!1 &1341524053 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1341524054} + - component: {fileID: 1341524056} + - component: {fileID: 1341524055} + m_Layer: 5 + m_Name: hitReward + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1341524054 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1341524053} + 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: 1546066800} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -155, y: -90} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1341524055 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1341524053} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: hitReward +--- !u!222 &1341524056 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1341524053} + m_CullTransparentMesh: 1 +--- !u!1 &1375409010 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1375409014} + - component: {fileID: 1375409013} + - component: {fileID: 1375409012} + - component: {fileID: 1375409011} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1375409011 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1375409010} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1375409012 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1375409010} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &1375409013 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1375409010} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1375409014 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1375409010} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1982556591} + - {fileID: 1951625459} + - {fileID: 883289516} + - {fileID: 1539152182} + - {fileID: 1546066800} + - {fileID: 2046915484} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &1389931565 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1389931568} + - component: {fileID: 1389931567} + - component: {fileID: 1389931566} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1389931566 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1389931565} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &1389931567 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1389931565} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &1389931568 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1389931565} + 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: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1413448794 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1413448795} + - component: {fileID: 1413448797} + - component: {fileID: 1413448796} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1413448795 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1413448794} + 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: 892644348} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1413448796 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1413448794} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1413448797 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1413448794} + m_CullTransparentMesh: 1 +--- !u!1 &1483319556 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1483319558} + - component: {fileID: 1483319557} + m_Layer: 0 + m_Name: StartSeneDataTransfer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1483319557 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1483319556} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 52ba7faaa6129cf418f26c5933d4ea0e, type: 3} + m_Name: + m_EditorClassIdentifier: + LoadDirDate: 0 + LoadDirTime: 0 + nonRewardDefault: -0.05 + shootRewardDefault: -0.06 + shootWithoutReadyRewardDefault: -0.06 + hitRewardDefault: 5 + killRewardDefault: 10 + winRewardDefault: 20 + loseRewardDefault: -10 + nonReward: 0 + shootReward: 0 + shootWithoutReadyReward: 0 + hitReward: 0 + killReward: 0 + winReward: 0 + loseReward: 0 + DecisionPeriod: 1 + ActionsBetweenDecisions: 0 +--- !u!4 &1483319558 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1483319556} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 497.08234, y: 299.96817, z: 296.6533} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1507282998 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1507282999} + - component: {fileID: 1507283001} + - component: {fileID: 1507283000} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1507282999 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1507282998} + 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: 1054572789} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1507283000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1507282998} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: -10.0 +--- !u!222 &1507283001 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1507282998} + m_CullTransparentMesh: 1 +--- !u!1 &1539152181 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1539152182} + m_Layer: 5 + m_Name: LoadDir + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1539152182 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1539152181} + 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: 132436945} + - {fileID: 653235283} + - {fileID: 293920965} + - {fileID: 651349052} + m_Father: {fileID: 1375409014} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 50, y: -46} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1546066799 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1546066800} + - component: {fileID: 1546066801} + m_Layer: 5 + m_Name: DefaultRewards + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1546066800 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1546066799} + 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: 589318727} + - {fileID: 1065028217} + - {fileID: 519891817} + - {fileID: 1733870683} + - {fileID: 619248516} + - {fileID: 2087760451} + - {fileID: 1054572789} + - {fileID: 720101935} + - {fileID: 1214676944} + - {fileID: 2010289380} + - {fileID: 1341524054} + - {fileID: 350269941} + - {fileID: 658127037} + - {fileID: 1792678409} + m_Father: {fileID: 1375409014} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 282, y: -80} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1546066801 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1546066799} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 44fd351436d221849991bd84d37d8109, type: 3} + m_Name: + m_EditorClassIdentifier: + DataTransfer: {fileID: 1483319556} + nonRInputOBJ: {fileID: 589318726} + shootRInputOBJ: {fileID: 1065028216} + shootWithoutReadyRInputOBJ: {fileID: 519891816} + hitRInputOBJ: {fileID: 1733870682} + killRInputOBJ: {fileID: 619248515} + winRInputOBJ: {fileID: 2087760450} + loseRInputOBJ: {fileID: 1054572788} + nonRInputText: {fileID: 720101936} + shootRInputText: {fileID: 1214676945} + shootWithoutReadyRInputText: {fileID: 2010289381} + hitRInputText: {fileID: 1341524055} + killRInputText: {fileID: 350269942} + winRInputText: {fileID: 658127038} + loseRInputText: {fileID: 1792678410} +--- !u!1 &1633180791 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1633180792} + - component: {fileID: 1633180793} + m_Layer: 5 + m_Name: TakeActionsBetweenDecisions + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1633180792 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1633180791} + 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: 668470153} + - {fileID: 282242986} + m_Father: {fileID: 2046915484} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 305.43787, y: 0} + m_SizeDelta: {x: 247.8758, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1633180793 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1633180791} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 668470154} + toggleTransition: 1 + graphic: {fileID: 2070899081} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2046915485} + m_TargetAssemblyTypeName: DecisionPeriodChanger, Assembly-CSharp + m_MethodName: onToggleChanged + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_IsOn: 1 +--- !u!1 &1653556293 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1653556294} + - component: {fileID: 1653556296} + - component: {fileID: 1653556295} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1653556294 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1653556293} + 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: 589318727} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1653556295 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1653556293} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: -0.05 +--- !u!222 &1653556296 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1653556293} + m_CullTransparentMesh: 1 +--- !u!1 &1733870682 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1733870683} + - component: {fileID: 1733870686} + - component: {fileID: 1733870685} + - component: {fileID: 1733870684} + m_Layer: 5 + m_Name: hit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1733870683 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1733870682} + 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: 1868400972} + - {fileID: 129131658} + m_Father: {fileID: 1546066800} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -90} + m_SizeDelta: {x: 136, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1733870684 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1733870682} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1733870685} + m_TextComponent: {fileID: 129131659} + m_Placeholder: {fileID: 1868400973} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 8 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1546066801} + m_TargetAssemblyTypeName: RewardsChange, Assembly-CSharp + m_MethodName: hitRValueChanged + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 +--- !u!114 &1733870685 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1733870682} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1733870686 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1733870682} + m_CullTransparentMesh: 1 +--- !u!1 &1768793742 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1768793743} + - component: {fileID: 1768793745} + - component: {fileID: 1768793744} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1768793743 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1768793742} + 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: 619248516} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1768793744 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1768793742} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &1768793745 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1768793742} + m_CullTransparentMesh: 1 +--- !u!1 &1792678408 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1792678409} + - component: {fileID: 1792678411} + - component: {fileID: 1792678410} + m_Layer: 5 + m_Name: loseReward + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1792678409 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792678408} + 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: 1546066800} + m_RootOrder: 13 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -155, y: -180} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1792678410 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792678408} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: loseReward +--- !u!222 &1792678411 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792678408} + m_CullTransparentMesh: 1 +--- !u!1 &1813454582 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1813454583} + - component: {fileID: 1813454585} + - component: {fileID: 1813454584} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1813454583 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1813454582} + 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: 1065028217} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1813454584 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1813454582} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: -0.06 +--- !u!222 &1813454585 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1813454582} + m_CullTransparentMesh: 1 +--- !u!1 &1868400971 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1868400972} + - component: {fileID: 1868400974} + - component: {fileID: 1868400973} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1868400972 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1868400971} + 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: 1733870683} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1868400973 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1868400971} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 5.0 +--- !u!222 &1868400974 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1868400971} + m_CullTransparentMesh: 1 +--- !u!1 &1876464233 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1876464234} + - component: {fileID: 1876464236} + - component: {fileID: 1876464235} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1876464234 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1876464233} + 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: 2025428251} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1876464235 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1876464233} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1876464236 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1876464233} + m_CullTransparentMesh: 1 +--- !u!1 &1942806762 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1942806763} + - component: {fileID: 1942806765} + - component: {fileID: 1942806764} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1942806763 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1942806762} + 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: 1065028217} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1942806764 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1942806762} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &1942806765 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1942806762} + m_CullTransparentMesh: 1 +--- !u!1 &1951625458 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1951625459} + - component: {fileID: 1951625461} + - component: {fileID: 1951625460} + m_Layer: 5 + m_Name: errorText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1951625459 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1951625458} + 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: 1375409014} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.5, y: -140} + m_SizeDelta: {x: 185.77, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1951625460 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1951625458} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &1951625461 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1951625458} + m_CullTransparentMesh: 1 +--- !u!1 &1952163554 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1952163555} + - component: {fileID: 1952163557} + - component: {fileID: 1952163556} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1952163555 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1952163554} + 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: 589318727} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1952163556 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1952163554} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &1952163557 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1952163554} + m_CullTransparentMesh: 1 +--- !u!1 &1982556590 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1982556591} + - component: {fileID: 1982556593} + - component: {fileID: 1982556592} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1982556591 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1982556590} + 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: 1375409014} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 2282.503, y: 1165.1953} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1982556592 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1982556590} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1982556593 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1982556590} + m_CullTransparentMesh: 1 +--- !u!1 &2010289379 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2010289380} + - component: {fileID: 2010289382} + - component: {fileID: 2010289381} + m_Layer: 5 + m_Name: shootWithoutReady + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2010289380 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2010289379} + 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: 1546066800} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -155, y: -60} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2010289381 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2010289379} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 979318e2cdafc0e43bfd56bb63011857, type: 3} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: shootWithoutReady +--- !u!222 &2010289382 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2010289379} + m_CullTransparentMesh: 1 +--- !u!1 &2025428250 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2025428251} + - component: {fileID: 2025428252} + m_Layer: 5 + m_Name: DecisionPeriodSlide + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2025428251 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2025428250} + 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: 1876464234} + - {fileID: 892644348} + - {fileID: 764033378} + m_Father: {fileID: 2046915484} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85.2, y: 0} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2025428252 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2025428250} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 910511158} + m_FillRect: {fileID: 1413448795} + m_HandleRect: {fileID: 910511157} + m_Direction: 0 + m_MinValue: 1 + m_MaxValue: 20 + m_WholeNumbers: 1 + m_Value: 1 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2046915485} + m_TargetAssemblyTypeName: DecisionPeriodChanger, Assembly-CSharp + m_MethodName: onSlideValueChanged + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &2046915483 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2046915484} + - component: {fileID: 2046915485} + m_Layer: 5 + m_Name: DecisionPeriod + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2046915484 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2046915483} + 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: 2025428251} + - {fileID: 1633180792} + - {fileID: 473186479} + - {fileID: 901241036} + m_Father: {fileID: 1375409014} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 207.1, y: -287.3} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2046915485 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2046915483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0d097ecbef2d7b843b772144dd301b2b, type: 3} + m_Name: + m_EditorClassIdentifier: + DataTransfer: {fileID: 1483319556} + DecisionPeriodSlide: {fileID: 2025428252} + DecisionPeriodDataText: {fileID: 901241037} + TakeActionsBetweenDecisionsToggle: {fileID: 1633180793} +--- !u!1 &2070899079 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2070899080} + - component: {fileID: 2070899082} + - component: {fileID: 2070899081} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2070899080 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2070899079} + 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: 668470153} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2070899081 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2070899079} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2070899082 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2070899079} + m_CullTransparentMesh: 1 +--- !u!1 &2087760450 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2087760451} + - component: {fileID: 2087760454} + - component: {fileID: 2087760453} + - component: {fileID: 2087760452} + m_Layer: 5 + m_Name: win + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2087760451 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2087760450} + 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: 846094855} + - {fileID: 808693438} + m_Father: {fileID: 1546066800} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -150} + m_SizeDelta: {x: 136, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2087760452 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2087760450} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2087760453} + m_TextComponent: {fileID: 808693439} + m_Placeholder: {fileID: 846094856} + m_ContentType: 3 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 2 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 2 + m_CharacterLimit: 8 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1546066801} + m_TargetAssemblyTypeName: RewardsChange, Assembly-CSharp + m_MethodName: winRValueChanged + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 +--- !u!114 &2087760453 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2087760450} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2087760454 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2087760450} + m_CullTransparentMesh: 1 diff --git a/Aimbot-PPO-MultiScene/Assets/Scenes/Start.unity.meta b/Aimbot-PPO-MultiScene/Assets/Scenes/Start.unity.meta new file mode 100644 index 0000000..72d2114 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Scenes/Start.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fc168544586b83f47a73568842170c14 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Script.meta b/Aimbot-PPO-MultiScene/Assets/Script.meta new file mode 100644 index 0000000..9fa0257 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 240f7b386bfcf4e41ac9a2087d0a5f54 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Script/AgentWithGun.cs b/Aimbot-PPO-MultiScene/Assets/Script/AgentWithGun.cs new file mode 100644 index 0000000..fcd4625 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/AgentWithGun.cs @@ -0,0 +1,638 @@ +using System; +using System.Reflection; +using System.Collections; +using System.Collections.Generic; + +using UnityEngine; +using UnityEngine.UI; +using UnityEditor; +using Unity.MLAgents; +using Unity.MLAgents.Sensors; +using Unity.MLAgents.Actuators; +using XCharts; +using XCharts.Runtime; + +/*主要ML-Agent控制*/ + +public class AgentWithGun : Agent +{ + public GameObject thisAgentObj; + public Transform thisAgent; + public Camera thisCam; + public CharacterController PlayerController; + public GameObject enemyPrefab; + + [Header("Rewards")] + [Tooltip("Nothing happened reward")] + public float nonRewardDefault = -0.05f; + [Tooltip("Agent Do shoot action reward")] + public float shootRewardDefault = -0.1f; + [Tooltip("Agent Do shoot action but gun is not read")] + public float shootWithoutReadyRewardDefault = -1.0f; + [Tooltip("Hit Enemy reward")] + public float hitRewardDefault = 2.0f; + [Tooltip("Episode Win reward")] + public float winRewardDefault = 10.0f; + [Tooltip("Episode Lose reward")] + public float loseRewardDefault = -10.0f; + [Tooltip("Enemy down reward")] + public float killRewardDefault = 5.0f; + + [Header("Env")] + public bool lockMouse = false; + public float Damage = 50; // damage to enemy + public float fireRate = 0.5f; + public int enemyNum = 3; + public int timeLimit = 30; + public bool lockCameraX = false; + public bool lockCameraY = true; + //public Vector3 startPosition = new Vector3(9, 1, 18); + public int minEnemyAreaX = -12; + public int maxEnemyAreaX = 11; + public int minEnemyAreaY = -20; + public int maxEnemyAreaY = 20; + public int minAgentAreaX = -12; + public int maxAgentAreaX = 11; + public int minAgentAreaY = -28; + public int maxAgentAreaY = -22; + + [Header("GetAxis() Simulate")] + public float MoveSpeed = 2.0f; + public float vX = 0f; + public float vZ = 0f; + public float acceleration = 0.1f; // 加速度 + public float mouseXSensitivity = 100; + public float mouseYSensitivity = 200; + public float yRotation = 0.1f;//定义一个浮点类型的量,记录‘围绕’X轴旋转的角度 + + + private float startTime = 0; + private int shoot = 0; + private float lastShootTime = 0.0f; + private int nowEnemyNum = 0; + private int enemyKillCount = 0; + private int step = 0; + private int EP = 0; + private string LoadDirDate; + private string LoadDirTime; + private float LoadDirDateF; + private float loadDirTimeF; + private StartSeneData DataTransfer; + private UIController UICon; + private HistoryRecorder HistoryRec; + private RaySensors rayScript; + + [System.NonSerialized]public float nonReward; + [System.NonSerialized] public float shootReward; + [System.NonSerialized] public float shootWithoutReadyReward; + [System.NonSerialized] public float hitReward; + [System.NonSerialized] public float winReward; + [System.NonSerialized] public float loseReward; + [System.NonSerialized] public float killReward; + [System.NonSerialized] public float saveNow = 0; + + + void Start() + { + DataTransfer = GameObject.Find("StartSeneDataTransfer").GetComponent(); + UICon = transform.GetComponent(); + HistoryRec = transform.GetComponent(); + rayScript = GetComponent(); + + // get load directory. + LoadDirDate = DataTransfer.LoadDirDate; + LoadDirTime = DataTransfer.LoadDirTime; + LoadDirDateF = float.Parse(LoadDirDate); + loadDirTimeF = float.Parse(LoadDirTime); + + // get Default reward. + nonRewardDefault = DataTransfer.nonReward; + shootRewardDefault = DataTransfer.shootReward; + shootWithoutReadyRewardDefault = DataTransfer.shootWithoutReadyReward; + hitRewardDefault = DataTransfer.hitReward; + killRewardDefault = DataTransfer.killReward; + winRewardDefault = DataTransfer.winReward; + loseRewardDefault = DataTransfer.loseReward; + + // give default Reward to Reward value will be used. + nonReward = nonRewardDefault; + shootReward = shootRewardDefault; + shootWithoutReadyReward = shootWithoutReadyRewardDefault; + hitReward = hitRewardDefault; + winReward = winRewardDefault; + loseReward = loseRewardDefault; + killReward = killRewardDefault; + + // change Decision Period & Take Actions Between Decisions + transform.GetComponent().DecisionPeriod = DataTransfer.DecisionPeriod; + transform.GetComponent().TakeActionsBetweenDecisions = DataTransfer.ActionsBetweenDecisions; +} + + /* ----------此Update用于debug,Build前删除或注释掉!----------*/ + /*void Update() + { + //Debug.Log(RaySensors.rayTagResult[0]); + }*/ + /* ----------此Update用于debug,Build前删除或注释掉!----------*/ + + // --------------初始化--------------- + // randomInitEnemys随机生成enemy + public void randomInitEnemys(int EnemyNum) + { + for (int i = 0; i < EnemyNum; i++) + { + int randX = UnityEngine.Random.Range(minEnemyAreaX, maxEnemyAreaX); + int randZ = UnityEngine.Random.Range(minEnemyAreaY, maxEnemyAreaY); + int Y = 1; + Instantiate(enemyPrefab, new Vector3(randX, Y, randZ), Quaternion.identity); + } + } + + // --------------初始化--------------- + // randomInitAgent随机位置初始化Agent + public void randomInitAgent() + { + int randX = UnityEngine.Random.Range(minAgentAreaX, maxAgentAreaX); + int randZ = UnityEngine.Random.Range(minAgentAreaY, maxAgentAreaY); + int Y = 1; + Vector3 initAgentLoc = new Vector3(randX, Y, randZ); + thisAgent.localPosition = initAgentLoc; + } + + // ------------动作处理-------------- + // moveAgent 用于模拟Input.GetAxis移动 + public void moveAgent(int kW, int kS,int kA,int kD) + { + Vector3 thisMovement; + int horizontal = 0; + int vertical = 0; + if (kW==1 && kS != 1) + { + vertical = 1; + } + else if (kS==1 && kW!=1) + { + vertical = -1; + } + if (kD==1 && kA!=1) + { + horizontal = 1; + } + else if (kA ==1 && kD!=1) + { + horizontal = -1; + } + + if (horizontal != 0)//当按下按键(水平方向) + { + if (vX < MoveSpeed && vX > -MoveSpeed)//当前速度小于最大速度 + { + vX += (float)horizontal * acceleration;//增加加速度 + } + else + { + //防止在一瞬间切换输入时速度仍保持不变 + if ((vX * horizontal) > 0)//输入与当前速度方向同向 + { + vX = (float)horizontal * MoveSpeed; //限制最大速度 + } + else + { + vX += (float)horizontal * acceleration;//增加加速度 + } + + } + } + else + { + if (Math.Abs(vX) > 0.001) + { + vX -= (vX / Math.Abs(vX)) * acceleration;//减少加速度 + } + else + { + vX = 0; + } + } + + if (vertical != 0)//当按下按键(垂直方向) + { + if (vZ < MoveSpeed && vZ > -MoveSpeed)//当前速度小于最大速度 + { + vZ += (float)vertical * acceleration;//增加加速度 + } + else + { + if ((vZ * vertical) > 0)//输入与当前速度方向同向 + { + vZ = (float)vertical * MoveSpeed; //限制最大速度 + } + else + { + vZ += (float)vertical * acceleration;//增加加速度 + } + } + } + else + { + if (Math.Abs(vZ) > 0.001) + { + vZ -= (vZ / Math.Abs(vZ)) * acceleration;//减少加速度 + } + else + { + vZ = 0; + } + } + thisMovement = (transform.forward * vZ + transform.right * vX) * MoveSpeed; + //PlayerController下的.Move为实现物体运动的函数 + //Move()括号内放入一个Vector3类型的量,本例中为Player_Move + PlayerController.Move(thisMovement * Time.deltaTime); + // update Key Viewer + } + + // ------------动作处理-------------- + // cameraControl 用于控制Agent视角转动 + public void cameraControl(float Mouse_X,float Mouse_Y) + { + //Mouse_X = Input.GetAxis("Mouse X") * MouseSensitivity * Time.deltaTime; + //Debug.Log(Input.GetAxis("Mouse X")); + //Mouse_Y = Input.GetAxis("Mouse Y") * MouseSensitivity * Time.deltaTime; + if (lockCameraX) + { + Mouse_X = 0; + } + if (lockCameraY) + { + Mouse_Y = 0; + } + yRotation = yRotation - Mouse_Y; + //xRotation值为正时,屏幕下移,当xRotation值为负时,屏幕上移 + //当鼠标向上滑动,Mouse_Y值为正,xRotation-Mouse_Y的值为负,xRotation总的值为负,屏幕视角向上滑动 + //当鼠标向下滑动,Mouse_Y值为负,xRotation-Mouse_Y的值为正,xRotation总的值为正,屏幕视角向下滑动 + //简单来说就是要控制鼠标滑动的方向与屏幕移动的方向要相同 + + //limit UP DOWN between -90 -> 90 + yRotation = Mathf.Clamp(yRotation, -90f, 90f); + + + //相机左右旋转时,是以Y轴为中心旋转的,上下旋转时,是以X轴为中心旋转的 + thisAgent.Rotate(Vector3.up * Mouse_X); + //Vector3.up相当于Vector3(0,1,0),CameraRotation.Rotate(Vector3.up * Mouse_X)相当于使CameraRotation对象绕y轴旋转Mouse_X个单位 + //即相机左右旋转时,是以Y轴为中心旋转的,此时Mouse_X控制着值的大小 + + //相机在上下旋转移动时,相机方向不会随着移动,类似于低头和抬头,左右移动时,相机方向会随着向左向右移动,类似于向左向右看 + //所以在控制相机向左向右旋转时,要保证和父物体一起转动 + thisCam.transform.localRotation = Quaternion.Euler(yRotation, 0, 0); + //this.transform指这个CameraRotation的位置,localRotation指的是旋转轴 + //transform.localRotation = Quaternion.Eular(x,y,z)控制旋转的时候,按照X-Y-Z轴的旋转顺规 + //即以围绕X轴旋转x度,围绕Y轴旋转y度,围绕Z轴旋转z度 + //且绕轴旋转的坐标轴是父节点本地坐标系的坐标轴 + } + + // GotKill 获得击杀时用于呼出 + public void GotKill() + { + enemyKillCount += 1; + } + + // check gun is ready to shoot + bool gunReady() + { + if ((Time.time - lastShootTime) >= fireRate) + { + return true; + } + else + { + return false; + } + } + + // ballistic 射击弹道处理,并返回获得reward + float ballistic() + { + Vector3 point = new Vector3(thisCam.pixelWidth / 2, thisCam.pixelHeight / 2, 0);//发射位置 + Ray ray = thisCam.ScreenPointToRay(point); + RaycastHit hit; + Debug.DrawRay(ray.origin, ray.direction * 100, Color.blue); + bool isGunReady = gunReady(); + UICon.updateShootKeyViewer(shoot,isGunReady); + //按下鼠标左键 + if (shoot != 0 && isGunReady == true) + { + + lastShootTime = Time.time; + if (Physics.Raycast(ray, out hit, 100)) + { + if (hit.collider.tag == "Enemy") + { + GameObject gotHitObj = hit.transform.gameObject;//获取受到Ray撞击的对象 + gotHitObj.GetComponent().ReactToHit(Damage, thisAgentObj); + shoot = 0; + return hitReward; + } + } + shoot = 0; + return shootReward; + } + else if (shoot != 0 && isGunReady == false) + { + shoot = 0; + return shootWithoutReadyReward; + } + else + { + shoot = 0; + return nonReward; + } + } + + // destroyEnemy消除除了自己以外的所有Enemy + public void destroyAllEnemys() + { + GameObject[] EnemyGameObjs; + EnemyGameObjs = GameObject.FindGameObjectsWithTag("Enemy"); + //遍历所有Enemy + foreach (GameObject EnemyObj in EnemyGameObjs) + { + Vector3 thisEnemyPosition = EnemyObj.transform.position; + Vector3 thisEnemyScale = EnemyObj.transform.localScale; + Vector3 MyselfPosition = thisAgent.position; + + //探测到Agent为自己时的处理 + if (thisEnemyPosition == MyselfPosition) + { + //Debug.Log("OH It's me"); + } + else + { + Destroy(EnemyObj); + } + } + } + + // checkFinish 检查是否结束回合返回int值 + // 1 = success,2 = overtime,0 = notover + int checkFinish() + { + GameObject[] EnemyGameObjs; + EnemyGameObjs = GameObject.FindGameObjectsWithTag("Enemy"); + if(EnemyGameObjs.Length <= 1) + { + //成功击杀所有Enemy + return 1; + } + else if(Time.time - startTime >= timeLimit) + { + //超时失败 + return 2; + } + else + { + return 0; + } + } + + // getEnemyNum 获取现场除了自己以外的敌人数量 + int getEnemyNum() + { + int enemyNum = 0; + GameObject[] EnemyGameObjs; + EnemyGameObjs = GameObject.FindGameObjectsWithTag("Enemy"); + //遍历所有Enemy + foreach (GameObject EnemyObj in EnemyGameObjs) + { + Vector3 thisEnemyPosition = EnemyObj.transform.position; + Vector3 thisEnemyScale = EnemyObj.transform.localScale; + Vector3 MyselfPosition = thisAgent.position; + + //探测到Agent为自己时的处理 + if (thisEnemyPosition == MyselfPosition) + { + //Debug.Log("OH It's me"); + } + else + { + enemyNum += 1; + } + } + return enemyNum; + } + + // enemyNumDiff 获取与上一把相比敌人数量的区别 + int enemyNumDiff() + { + int diff = 0; + int nowEnemyNum = getEnemyNum(); + diff = enemyNum - nowEnemyNum; + return diff; + } + + // ------------Reward-------------- + // rewardCalculate 计算本动作的Reward + public float rewardCalculate() + { + float epreward = 0f; + // 击杀reward判断 + if(enemyKillCount > 0) + { + for(int i = 0;i < enemyKillCount; i++) + { + epreward += killReward; + } + enemyKillCount = 0; + } + else + { + enemyKillCount = 0; + } + // 射击动作reward判断 + epreward += ballistic(); + return epreward; + } + + + // ML-AGENTS处理-------------------------------------------------------------------------------------------ML-AGENTS + // env开始执行初始化 + public override void OnEpisodeBegin() + { + step = 0; + if (EP == 0) + { + UICon.iniChart(); + } + if (lockMouse) + { + Cursor.lockState = CursorLockMode.Locked; // 隐藏并且锁定鼠标 + } + //iniCharts(); + thisAgentObj.name = thisAgentObj.GetInstanceID().ToString(); + destroyAllEnemys(); + startTime = Time.time;// Reset StartTime as now time + randomInitAgent(); + randomInitEnemys(enemyNum); + nowEnemyNum = getEnemyNum(); // Reset Enemy number + } + + // ML-AGENTS处理-------------------------------------------------------------------------------------------ML-AGENTS + // 观察情报 + public override void CollectObservations(VectorSensor sensor) + { + + //List enemyLDisList = RaySensors.enemyLDisList;// All Enemy Lside Distances + //List enemyRDisList = RaySensors.enemyRDisList;// All Enemy Rside Distances + + + int allEnemyNum = RaySensors.allEnemyNum; + float[] myObserve = { thisAgent.position.x, thisAgent.position.y, thisAgent.position.z, thisAgent.rotation.w }; + float[] rayTagResult = RaySensors.rayTagResult;// 探测用RayTag结果 float[](raySensorNum,1) + float[] rayDisResult = RaySensors.rayDisResult; // 探测用RayDis结果 float[](raySensorNum,1) + float[] focusEnemyObserve = RaySensors.focusEnemyInfo;// 最近的Enemy情报 float[](3,1) MinEnemyIndex,x,z + int raySensorNum = rayScript.rayNum;// raySensor数量 int + + //sensor.AddObservation(allEnemyNum); // 敌人数量 int + sensor.AddObservation(myObserve); // 自机位置xyz+朝向 float[](4,1) + sensor.AddObservation(rayTagResult); // 探测用RayTag结果 float[](raySensorNum,1) + sensor.AddObservation(rayDisResult); // 探测用RayDis结果 float[](raySensorNum,1) + sensor.AddObservation(focusEnemyObserve); // 最近的Enemy情报 float[](3,1) MinEnemyIndex,x,z + //sensor.AddObservation(raySensorNum); // raySensor数量 int + sensor.AddObservation(LoadDirDateF); // 用于loadModel的第一级dir + sensor.AddObservation(loadDirTimeF); // 用于loadModel的第二级dir + //sensor.AddObservation(remainTime); // RemainTime int + } + + // ML-AGENTS处理-------------------------------------------------------------------------------------------ML-AGENTS + // agent 输入处理 + public override void OnActionReceived(ActionBuffers actionBuffers) + { + //获取输入 + int kW = actionBuffers.DiscreteActions[0]; + int kS = actionBuffers.DiscreteActions[1]; + int kA = actionBuffers.DiscreteActions[2]; + int kD = actionBuffers.DiscreteActions[3]; + int mouseShoot = actionBuffers.DiscreteActions[4]; + float Mouse_X = actionBuffers.ContinuousActions[0]; + //float Mouse_Y = actionBuffers.ContinuousActions[1]; + //int timeLimitControl = (int)actionBuffers.ContinuousActions[2]; + //float nonRewardIn = actionBuffers.ContinuousActions[1]; + //float shootRewardIn = actionBuffers.ContinuousActions[2]; + //float shootWithoutReadyRewardIn = actionBuffers.ContinuousActions[3]; + //float hitRewardIn = actionBuffers.ContinuousActions[4]; + //float winRewardIn = actionBuffers.ContinuousActions[5]; + // loseRewardIn = actionBuffers.ContinuousActions[6]; + //float killRewardIn = actionBuffers.ContinuousActions[7]; + //Rewards Update + int remainTime = (int)(timeLimit - Time.time + startTime); + + //应用输入 + shoot = mouseShoot; + HistoryRec.realTimeKeyCounter(kW, kS, kA, kD, shoot); + (int kWCount, int kSCount, int kACount, int kDCount, int shootCount) = HistoryRec.getKeyCount(); + UICon.updateRemainTime(remainTime); + UICon.updateWASDKeyViewer(kW, kS, kA, kD); + UICon.updateKeyCounterChart(kWCount, kSCount, kACount, kDCount, shootCount); + UICon.updateMouseMovementViewer(Mouse_X); + UICon.updateRewardViewer(nonReward, shootReward, shootWithoutReadyReward, hitReward, winReward, loseReward, killReward); + cameraControl(Mouse_X, 0); + moveAgent(kW, kS, kA, kD); + float thisRoundReward = rewardCalculate(); + + //判断结束 + int finished = checkFinish(); + if (finished == 1) + { + //Win Finished + HistoryRec.addRealTimeReward(winReward); + HistoryRec.EPTotalRewardsUpdate(); + UICon.epUpdateChart(EP, HistoryRec.getLastEPTotalReward()); + UICon.resetStepChart(); + UICon.resetCounterChat(); + EP += 1; + SetReward(winReward); + Debug.Log("reward = " + winReward); + EndEpisode(); + } + else if(finished == 2) + { + //Lose Finished + HistoryRec.addRealTimeReward(loseReward); + HistoryRec.EPTotalRewardsUpdate(); + UICon.epUpdateChart(EP, HistoryRec.getLastEPTotalReward()); + UICon.resetStepChart(); + UICon.resetCounterChat(); + EP += 1; + SetReward(loseReward); + Debug.Log("reward = " + loseReward); + EndEpisode(); + } + else + { + // game not over yet + HistoryRec.addRealTimeReward(thisRoundReward); + UICon.stepUpdateChart(step, thisRoundReward); + step += 1; + SetReward(thisRoundReward); + Debug.Log("reward = " + thisRoundReward); + } + } + + // ML-AGENTS处理-------------------------------------------------------------------------------------------ML-AGENTS + // 控制调试 + public override void Heuristic(in ActionBuffers actionsOut) + { + // + //-------------------BUILD + ActionSegment continuousActions = actionsOut.ContinuousActions; + ActionSegment discreteActions = actionsOut.DiscreteActions; + + int kW = 0; + int kS = 0; + int kA = 0; + int kD = 0; + if (Input.GetKey(KeyCode.W)) + { + kW = 1; + } + if (Input.GetKey(KeyCode.S)) + { + kS = 1; + } + if (Input.GetKey(KeyCode.A)) + { + kA = 1; + } + if (Input.GetKey(KeyCode.D)) + { + kD = 1; + } + discreteActions[0] = kW; + discreteActions[1] = kS; + discreteActions[2] = kA; + discreteActions[3] = kD; + + if (Input.GetMouseButton(0)) + { + // Debug.Log("mousebuttonhit"); + shoot = 1; + } + discreteActions[4] = shoot; + //^^^^^^^^^^^^^^^^^^^^^discrete-Control^^^^^^^^^^^^^^^^^^^^^^ + + //vvvvvvvvvvvvvvvvvvvvvvvvvvvvvcontinuous-Controlvvvvvvvvvvvvvvvvvvvvvv + float Mouse_X = Input.GetAxis("Mouse X") * mouseXSensitivity * Time.deltaTime; + float Mouse_Y = Input.GetAxis("Mouse Y") * mouseYSensitivity * Time.deltaTime; + continuousActions[0] = Mouse_X; + //continuousActions[1] = nonReward; + //continuousActions[2] = shootReward; + //continuousActions[3] = shootWithoutReadyReward; + //continuousActions[4] = hitReward; + //continuousActions[5] = winReward; + //continuousActions[6] = loseReward; + //continuousActions[7] = killReward; + //continuousActions[1] = Mouse_Y; + //continuousActions[2] = timeLimit; + //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^continuous-Control^^^^^^^^^^^^^^^^^^^^^^ + + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/Script/AgentWithGun.cs.meta b/Aimbot-PPO-MultiScene/Assets/Script/AgentWithGun.cs.meta new file mode 100644 index 0000000..25454b8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/AgentWithGun.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4faf6e358e53cc24582eaff8dd830f97 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Script/CameraChange.cs b/Aimbot-PPO-MultiScene/Assets/Script/CameraChange.cs new file mode 100644 index 0000000..8eed794 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/CameraChange.cs @@ -0,0 +1,35 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class CameraChange : MonoBehaviour +{ + public Camera FPSCamera; + public Camera TPSCamera; + + public void switchCamera() + { + if (TPSCamera.enabled && !FPSCamera.enabled) + { + ShowFPSView(); + }else if(FPSCamera.enabled && !TPSCamera.enabled) + { + ShowTPSView(); + } + else + { + ShowFPSView(); + } + } + + public void ShowTPSView() + { + TPSCamera.enabled = true; + FPSCamera.enabled = false; + } + public void ShowFPSView() + { + FPSCamera.enabled = true; + TPSCamera.enabled = false; + } +} diff --git a/Aimbot-PPO-MultiScene/Assets/Script/CameraChange.cs.meta b/Aimbot-PPO-MultiScene/Assets/Script/CameraChange.cs.meta new file mode 100644 index 0000000..ddac4ce --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/CameraChange.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 136f4ef424a10ea47b5981794fff8a7c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Script/Camera_Control.cs b/Aimbot-PPO-MultiScene/Assets/Script/Camera_Control.cs new file mode 100644 index 0000000..706de98 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/Camera_Control.cs @@ -0,0 +1,52 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Camera_Control : MonoBehaviour +{ + public Transform Agent; + public Camera Cam; + public float MouseSensitivity = 100; + public float yRotation = 0.1f;//定义一个浮点类型的量,记录‘围绕’X轴旋转的角度 + public float viewDistance = 100; + + private float Mouse_X; + private float Mouse_Y; + + void Start() + { + Cursor.lockState = CursorLockMode.Locked;// 隐藏并且锁定鼠标 + } + + void Update() + { + //Mouse_X = Input.GetAxis("Mouse X") * MouseSensitivity * Time.deltaTime; + //Debug.Log(Input.GetAxis("Mouse X")); + //Mouse_Y = Input.GetAxis("Mouse Y") * MouseSensitivity * Time.deltaTime; + + //yRotation = yRotation - Mouse_Y; + //xRotation值为正时,屏幕下移,当xRotation值为负时,屏幕上移 + //当鼠标向上滑动,Mouse_Y值为正,xRotation-Mouse_Y的值为负,xRotation总的值为负,屏幕视角向上滑动 + //当鼠标向下滑动,Mouse_Y值为负,xRotation-Mouse_Y的值为正,xRotation总的值为正,屏幕视角向下滑动 + //简单来说就是要控制鼠标滑动的方向与屏幕移动的方向要相同 + + //limit UP DOWN between -90 -> 90 + //yRotation = Mathf.Clamp(yRotation, -90f, 90f); + + + //相机左右旋转时,是以Y轴为中心旋转的,上下旋转时,是以X轴为中心旋转的 + //Agent.Rotate(Vector3.up * Mouse_X); + //Vector3.up相当于Vector3(0,1,0),CameraRotation.Rotate(Vector3.up * Mouse_X)相当于使CameraRotation对象绕y轴旋转Mouse_X个单位 + //即相机左右旋转时,是以Y轴为中心旋转的,此时Mouse_X控制着值的大小 + + //相机在上下旋转移动时,相机方向不会随着移动,类似于低头和抬头,左右移动时,相机方向会随着向左向右移动,类似于向左向右看 + //所以在控制相机向左向右旋转时,要保证和父物体一起转动 + //this.transform.localRotation = Quaternion.Euler(yRotation, 0, 0); + //this.transform指这个CameraRotation的位置,localRotation指的是旋转轴 + //transform.localRotation = Quaternion.Eular(x,y,z)控制旋转的时候,按照X-Y-Z轴的旋转顺规 + //即以围绕X轴旋转x度,围绕Y轴旋转y度,围绕Z轴旋转z度 + //且绕轴旋转的坐标轴是父节点本地坐标系的坐标轴 + } + + +} diff --git a/Aimbot-PPO-MultiScene/Assets/Script/Camera_Control.cs.meta b/Aimbot-PPO-MultiScene/Assets/Script/Camera_Control.cs.meta new file mode 100644 index 0000000..dff2550 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/Camera_Control.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7ab8f48d4eac07f44b093f714ede051c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Script/DecisionPeriodChanger.cs b/Aimbot-PPO-MultiScene/Assets/Script/DecisionPeriodChanger.cs new file mode 100644 index 0000000..4170e57 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/DecisionPeriodChanger.cs @@ -0,0 +1,22 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class DecisionPeriodChanger : MonoBehaviour +{ + public GameObject DataTransfer; + public Slider DecisionPeriodSlide; + public Text DecisionPeriodDataText; + public Toggle TakeActionsBetweenDecisionsToggle; + + public void onSlideValueChanged() + { + DataTransfer.GetComponent().DecisionPeriod = (int)(DecisionPeriodSlide.GetComponent().value); + DecisionPeriodDataText.text = DataTransfer.GetComponent().DecisionPeriod.ToString(); + } + public void onToggleChanged() + { + DataTransfer.GetComponent().ActionsBetweenDecisions = TakeActionsBetweenDecisionsToggle.isOn; + } +} diff --git a/Aimbot-PPO-MultiScene/Assets/Script/DecisionPeriodChanger.cs.meta b/Aimbot-PPO-MultiScene/Assets/Script/DecisionPeriodChanger.cs.meta new file mode 100644 index 0000000..ba52b2b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/DecisionPeriodChanger.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0d097ecbef2d7b843b772144dd301b2b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Script/Enemy.cs b/Aimbot-PPO-MultiScene/Assets/Script/Enemy.cs new file mode 100644 index 0000000..f9f2208 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/Enemy.cs @@ -0,0 +1,40 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Enemy : MonoBehaviour +{ + float EnemyHP = 100; + public float EnemyMaxHP = 100; + + void Start() + { + EnemyHP = EnemyMaxHP; + } + + // Update is called once per frame + void Update() + { + detactDeath(); + } + private void detactDeath() + { + if (EnemyHP <= 0){ + Destroy(this.gameObject); + } + } + public void ReactToHit(float Damage,GameObject damageSource) + { + EnemyHP -= Damage; + Debug.Log("HP:"+ EnemyHP); + if(EnemyHP <= 0) + { + damageSource.GetComponent().GotKill(); + Destroy(this.gameObject); + } + } + public float getnowHP() + { + return EnemyHP; + } +} diff --git a/Aimbot-PPO-MultiScene/Assets/Script/Enemy.cs.meta b/Aimbot-PPO-MultiScene/Assets/Script/Enemy.cs.meta new file mode 100644 index 0000000..49e0f2d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/Enemy.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8cded1019e262a04e8d9ccb536d1ff20 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Script/EnemyHPBar.cs b/Aimbot-PPO-MultiScene/Assets/Script/EnemyHPBar.cs new file mode 100644 index 0000000..2902e12 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/EnemyHPBar.cs @@ -0,0 +1,31 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class EnemyHPBar : MonoBehaviour +{ + GameObject EnemyOBJ; + GameObject BGOBJ; + GameObject gaugeImgOBJ; + + + void Start() + { + EnemyOBJ = transform.parent.gameObject; + BGOBJ = transform.GetChild(0).gameObject; + gaugeImgOBJ = BGOBJ.transform.GetChild(0).gameObject; + } + + void Update() + { + Vector3 v = Camera.main.transform.position - transform.position; + v.x = v.z = 0.0f; + transform.LookAt(Camera.main.transform.position - v); + transform.Rotate(0,180,0); + + float maxHP = EnemyOBJ.GetComponent().EnemyMaxHP; + float nowHP = EnemyOBJ.GetComponent().getnowHP(); + gaugeImgOBJ.GetComponent().fillAmount = nowHP / maxHP; + } +} diff --git a/Aimbot-PPO-MultiScene/Assets/Script/EnemyHPBar.cs.meta b/Aimbot-PPO-MultiScene/Assets/Script/EnemyHPBar.cs.meta new file mode 100644 index 0000000..5216267 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/EnemyHPBar.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b293d3b541b20b7448f3ca4d09a9c38c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Script/HistoryRecorder.cs b/Aimbot-PPO-MultiScene/Assets/Script/HistoryRecorder.cs new file mode 100644 index 0000000..30911be --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/HistoryRecorder.cs @@ -0,0 +1,114 @@ +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; + +/*??????????????*/ + +public class HistoryRecorder : MonoBehaviour +{ + private List realTimeReward = new List (); + private List EPTotalRewards = new List (); + private List EPTotalShootCount = new List (); + + private int realTimeWKeyCount = 0; + private int realTimeAKeyCount = 0; + private int realTimeSKeyCount = 0; + private int realTimeDKeyCount = 0; + private int realTimeShootCount = 0; + + + // add Record History ----------------------------- + public void addRealTimeReward(float reward) + { + realTimeReward.Add(reward); + } + public void addEPTotalRewards(float EPTotalReward) + { + EPTotalRewards.Add(EPTotalReward); + } + public void addEPTotalShootCount(int TotalShootCount) + { + EPTotalShootCount.Add(TotalShootCount); + } + public void realTimeKeyCounter(int kW, int kS, int kA, int kD, int shoot) + { + if (kW == 1) + { + realTimeWKeyCount += 1; + } + if (kS == 1) + { + realTimeSKeyCount += 1; + } + if (kA == 1) + { + realTimeAKeyCount += 1; + } + if (kD == 1) + { + realTimeDKeyCount += 1; + } + if (shoot == 1) + { + realTimeShootCount += 1; + } + } + + // math job--------------------------------------- + // delete RealTimeReward item + public void resetRealTimeReward() + { + realTimeReward.Clear(); + } + // set all realTimeKeyCount to 0 + public void resetrealTimeKeyCounter() + { + realTimeAKeyCount = 0; + realTimeDKeyCount = 0; + realTimeWKeyCount = 0; + realTimeSKeyCount = 0; + realTimeShootCount = 0; + } + // calc RealTimeReward's Average and Add to EPTotalRewards + public void EPTotalRewardsUpdate() + { + float EPSumRealTimeReward = getSumRealTimeReward(); + resetRealTimeReward(); + addEPTotalRewards(EPSumRealTimeReward); + } + + // get Record History ----------------------------- + // get EPTotalReward List + public List getEPTotalReward() + { + return (EPTotalRewards); + } + // get EPTotalShootCount List + public List getEPTotalShootCount() + { + return (EPTotalShootCount); + } + // get RealTimeReward's Mean + public float getMeanRealTimeReward() + { + return (realTimeReward.Average()); + } + // get RealTimeReward's Sum + public float getSumRealTimeReward() + { + return realTimeReward.Sum(); + } + // get LastEPTotalReward last item + public float getLastEPTotalReward() + { + return (EPTotalRewards.Last()); + } + //get KeyCount + public (int w,int s,int a,int d,int shoot) getKeyCount() + { + return (realTimeWKeyCount, realTimeSKeyCount, realTimeAKeyCount, realTimeDKeyCount, realTimeShootCount); + } + + +} diff --git a/Aimbot-PPO-MultiScene/Assets/Script/HistoryRecorder.cs.meta b/Aimbot-PPO-MultiScene/Assets/Script/HistoryRecorder.cs.meta new file mode 100644 index 0000000..93f02b0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/HistoryRecorder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3a3e891536ddde24b86cbac3ad3837e6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Script/LoadDirDateTextChange.cs b/Aimbot-PPO-MultiScene/Assets/Script/LoadDirDateTextChange.cs new file mode 100644 index 0000000..e7d2348 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/LoadDirDateTextChange.cs @@ -0,0 +1,14 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class LoadDirDateTextChange : MonoBehaviour +{ + public GameObject DataTransfer; + public void OnValueChanged() + { + string input = this.GetComponent().text; + DataTransfer.GetComponent().LoadDirDate = input; + } +} diff --git a/Aimbot-PPO-MultiScene/Assets/Script/LoadDirDateTextChange.cs.meta b/Aimbot-PPO-MultiScene/Assets/Script/LoadDirDateTextChange.cs.meta new file mode 100644 index 0000000..f528646 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/LoadDirDateTextChange.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cce4f6a22ca8eba4b94c1bfc6ac08072 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Script/LoadDirTimeTextChange.cs b/Aimbot-PPO-MultiScene/Assets/Script/LoadDirTimeTextChange.cs new file mode 100644 index 0000000..db7bf70 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/LoadDirTimeTextChange.cs @@ -0,0 +1,14 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class LoadDirTimeTextChange : MonoBehaviour +{ + public GameObject DataTransfer; + public void OnValueChanged() + { + string input = this.GetComponent().text; + DataTransfer.GetComponent().LoadDirTime = input; + } +} diff --git a/Aimbot-PPO-MultiScene/Assets/Script/LoadDirTimeTextChange.cs.meta b/Aimbot-PPO-MultiScene/Assets/Script/LoadDirTimeTextChange.cs.meta new file mode 100644 index 0000000..1ed3833 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/LoadDirTimeTextChange.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8396a1a162e012447a0e4f7626e70dc7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Script/LoadDirToggle.cs b/Aimbot-PPO-MultiScene/Assets/Script/LoadDirToggle.cs new file mode 100644 index 0000000..5258791 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/LoadDirToggle.cs @@ -0,0 +1,30 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class LoadDirToggle : MonoBehaviour +{ + public InputField LoadDirDateTextBox; + public InputField LoadDirTimeTextBox; + public Toggle Toggle; + public GameObject DataTransfer; + // Start is called before the first frame update + void Start() + { + + } + + public void OnToggleChanged() + { + // if loadDirToggle is on then turn off the input text boxs. + LoadDirDateTextBox.interactable = Toggle.isOn; + LoadDirTimeTextBox.interactable = Toggle.isOn; + // if loadDirToggle is off set loaddirs as 0. + if (!Toggle.isOn) + { + DataTransfer.GetComponent().LoadDirDate = "0"; + DataTransfer.GetComponent().LoadDirTime = "0"; + } + } +} diff --git a/Aimbot-PPO-MultiScene/Assets/Script/LoadDirToggle.cs.meta b/Aimbot-PPO-MultiScene/Assets/Script/LoadDirToggle.cs.meta new file mode 100644 index 0000000..d73d0ee --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/LoadDirToggle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e18f417f93a39c74481660da3236c133 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Script/OnCam.cs b/Aimbot-PPO-MultiScene/Assets/Script/OnCam.cs new file mode 100644 index 0000000..0cfe32b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/OnCam.cs @@ -0,0 +1,17 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class OnCam : MonoBehaviour +{ + public void OnBecameInvisible() + { + Debug.Log("I SEE U"); + } + + // ...and enable it again when it becomes visible. + public void OnBecameVisible() + { + Debug.Log("NO Visual"); + } +} diff --git a/Aimbot-PPO-MultiScene/Assets/Script/OnCam.cs.meta b/Aimbot-PPO-MultiScene/Assets/Script/OnCam.cs.meta new file mode 100644 index 0000000..b02cd51 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/OnCam.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d1f4766daac5b854db2634c914619261 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Script/RaySensors.cs b/Aimbot-PPO-MultiScene/Assets/Script/RaySensors.cs new file mode 100644 index 0000000..3a799d4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/RaySensors.cs @@ -0,0 +1,321 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/*该scrip用于创建复数条ray于视角内,并探测被ray射到的物体*/ + + +public class RaySensors : MonoBehaviour +{ + + public Camera agentCam; + public GameObject myself; + public int rayNum = 6; + public string EnemyTagName; + public string WallTagName; + public float viewDistance = 100; // how long the ray can detect + public float Damage = 50; // damage to enemy + public float attentionRange = 1f; //注意力范围,1为最大 + public float MaxDistance = 9999999999f; + public float EnemyWidthRedundancy = 0.01f; //为了确保Ray可以击中Enemy,用于缩小EnemyWidth的长度 + //public List tagNames = new List(); + public static int allEnemyNum = 0;//All Enemy Num + public static float[] focusEnemyInfo = new float[3]; + public static float[] rayTagResult; // Array to save Tag Result + public static float[] rayDisResult; // Array to save Distance Result + public static List enemyLDisList = new List();// All Enemy Lside Distances + public static List enemyRDisList = new List();// All Enemy Rside Distances + + + + public bool showEnemySensor = true; + public bool showEyeSensor = true; + + + static int tagToInt(string tag) + { + switch (tag) + { + case "Wall": + return 1; + case "Enemy": + return 2; + default: + return 0; + } + } + + + + // 敌人Ray探测处理 + // 返回 + (int, List, List, float[]) enemySensorRay(GameObject myself, Camera agentCam, float attentionRange) + { + List thisLDistanceList = new List(); + List thisRDistanceList = new List(); + + GameObject[] EnemyGameObjs; + EnemyGameObjs = GameObject.FindGameObjectsWithTag("Enemy"); + int EnemyIndex = 0; + float MinEnemyDis = MaxDistance+1.0f; + int MinEnemyIndex = 0; + float[] MinEnemyInfo = new float[3]; + + //遍历所有Enemy + foreach (GameObject EnemyObj in EnemyGameObjs) + { + Vector3 thisEnemyPosition = EnemyObj.transform.position; + Vector3 thisEnemyScale = EnemyObj.transform.localScale; + Vector3 MyselfPosition = myself.transform.position; + float thisEnemyWidth = (float)(thisEnemyScale.x / 2) - EnemyWidthRedundancy; + float thisEnemyDistance = Vector3.Distance(MyselfPosition, thisEnemyPosition); + + //探测到Agent为自己时的处理 + if (thisEnemyPosition == MyselfPosition) + { + //Debug.Log("OH It's me"); + thisLDistanceList.Add(MaxDistance); + thisRDistanceList.Add(MaxDistance); + } + //非己Agent处理 + else + { + EnemyIndex += 1; + Vector3 Vertical = new Vector3(0, 100, 0);//垂直向上的向量 + Vector3 EnemytoMe = MyselfPosition - thisEnemyPosition;//Enemy和自机连线,指向自机的向量 + Vector3 LHorizontal = Vector3.Cross(Vertical, EnemytoMe);// 垂直于EnemytoMe与Vertical向量所组成的面的,且指向<-左侧的小向量<- Enemy + Vector3 RHorizontal = Vector3.Cross(EnemytoMe, Vertical);// 垂直于EnemytoMe与Vertical向量所组成的面的,且指向->右侧的小向量Enemy -> + //此时RHorizontal,LHorizontal的长度巨几把长,需要下面操作标准化为1/2Enemy宽度 + float standaedization = (float)thisEnemyWidth / Vector3.Distance(thisEnemyPosition, RHorizontal);//计算需要缩小的比例 + RHorizontal *= standaedization;//应用缩小比例,标准化完成 + LHorizontal *= standaedization;//应用缩小比例,标准化完成 + Vector3 LMetoEnemy = LHorizontal - EnemytoMe;//自机与左侧边界连线Me<- Enemy + Vector3 RMetoEnemy = RHorizontal - EnemytoMe;//自机与右侧边界连线Enemy ->Me + Vector3 L0toEnemy = LHorizontal + thisEnemyPosition;// Enemy左侧绝对坐标 + Vector3 R0toEnemy = RHorizontal + thisEnemyPosition;// Enemy右侧绝对坐标 + float LMetoEnemyDist = Vector3.Distance(MyselfPosition, L0toEnemy); + float RMetoEnemyDist = Vector3.Distance(MyselfPosition, R0toEnemy); + Vector3 LEnemyInView = agentCam.WorldToViewportPoint(L0toEnemy);//Enemy左侧于视角中位置 + Vector3 REnemyInView = agentCam.WorldToViewportPoint(R0toEnemy);//Enemy右侧于视角中位置 + //Debug连线,颜色遵循飞机航行灯基本使用规则,左红右绿尾翼白。 + //Debug.DrawRay(thisEnemyPosition, EnemytoMe, Color.white);//Enemy和自机连线,指向自机的向量 + //Debug.DrawRay(thisEnemyPosition, Vertical, Color.white);//垂直向上的向量 + //Debug.DrawRay(thisEnemyPosition, LHorizontal, Color.red);// 垂直于Vc与Vertical向量所组成的面的,且指向<-左侧的小向量<- Enemy + //Debug.DrawRay(thisEnemyPosition, RHorizontal, Color.green);// 垂直于Vc与Vertical向量所组成的面的,且指向->右侧的小向量Enemy -> + //Debug.DrawRay(MyselfPosition, LMetoEnemy, Color.red);//自机与左侧边界连线<- Enemy + //Debug.DrawRay(MyselfPosition, RMetoEnemy, Color.green);//自机与右侧边界连线Enemy -> + //Debug.Log("EnemyObj" + EnemyIndex + "Position:" + thisEnemyPosition); + + + //左侧于可见范围内--<--<--<--<--<--<--<--<--<--<--<--<--<--< + if (LEnemyInView.x >= (thisEnemyWidth - attentionRange / 2) && LEnemyInView.x <= (thisEnemyWidth + attentionRange / 2) && LEnemyInView.z > 0) + { + //射出Raycast + Ray LRay = new Ray(MyselfPosition, LMetoEnemy); + RaycastHit LHit; + if (showEnemySensor) + { + Debug.DrawRay(LRay.origin, LRay.direction * LMetoEnemyDist, Color.white);//自机与左侧边界连线<- Enemy + } + //Ray Hit Something + if (Physics.Raycast(MyselfPosition, LMetoEnemy, out LHit, LMetoEnemyDist)) + { + //Ray Hit Enemy + //并且当射线射到的Enemy的距离与当前判断Enemy的距离差小于该Enemy半径时 + //既该射线所射到的Enemy为当前Enemy而不是别的时 + if (LHit.collider.tag == EnemyTagName && System.Math.Abs(LHit.distance - thisEnemyDistance) <= thisEnemyWidth) + { + if (showEnemySensor) + { + Debug.DrawRay(LRay.origin, LRay.direction * LHit.distance, Color.red);//自机与所击中物体的连线 + } + thisLDistanceList.Add(LHit.distance); + //Debug.Log("Hit Tag = " + LHit.collider.tag); + //Debug.Log(LDistance[EnemyIndex-1]); + //Debug.Log("ADD_LIST_ENEMYL"); + } + //当射线所hit的不是enemy或hit的enemy不是当前所判断的enemy + else + { + if (showEnemySensor) + { + Debug.DrawRay(LRay.origin, LRay.direction * LHit.distance, Color.cyan);//自机与所击中物体的连线 + } + thisLDistanceList.Add(MaxDistance); + //Debug.LogWarning("Hit Tag = " + LHit.collider.tag); + //Debug.LogWarning(LDistance[EnemyIndex-1]); + //Debug.Log("ADD_LIST_ENEMYL"); + } + } + else + { + thisLDistanceList.Add(MaxDistance); + Debug.LogError("LRAY HIT NOTHING, Check Code!"); + } + } + //左侧不在可见范围内时--<--<--<--<--<--<--<--<--<--<--<--<--<--< + else + { + thisLDistanceList.Add(MaxDistance); + //Debug.LogError("NoVisual"); + //Debug.LogError(LDistance[EnemyIndex-1]); + //Debug.Log("ADD_LIST_ENEMYL_ELSE"); + } + + //右侧于可见范围内-->-->-->-->-->-->-->-->-->-->-->-->-->--> + if (REnemyInView.x >= (thisEnemyWidth - attentionRange / 2) && REnemyInView.x <= (thisEnemyWidth + attentionRange / 2) && REnemyInView.z > 0) + { + //射出Raycast + Ray RRay = new Ray(MyselfPosition, RMetoEnemy); + RaycastHit RHit; + if (showEnemySensor) + { + Debug.DrawRay(RRay.origin, RRay.direction * RMetoEnemyDist, Color.white);//自机与左侧边界连线<- Enemy + } + //Ray Hit Something + if (Physics.Raycast(MyselfPosition, RMetoEnemy, out RHit, RMetoEnemyDist)) + { + //Ray Hit Enemy + //并且当射线射到的Enemy的距离与当前判断Enemy的距离差小于该Enemy半径时 + //既该射线所射到的Enemy为当前Enemy而不是别的时 + if (RHit.collider.tag == EnemyTagName && System.Math.Abs(RHit.distance - thisEnemyDistance) <= thisEnemyWidth) + { + if (showEnemySensor) + { + Debug.DrawRay(RRay.origin, RRay.direction * RHit.distance, Color.red);//自机与所击中物体的连线 + } + thisRDistanceList.Add(RHit.distance); + //Debug.Log("Hit Tag = " + LHit.collider.tag); + //Debug.Log(LDistance[EnemyIndex-1]); + //Debug.Log("ADD_LIST_ENEMYR"); + } + //当射线所hit的不是enemy或hit的enemy不是当前所判断的enemy + else + { + if (showEnemySensor) + { + Debug.DrawRay(RRay.origin, RRay.direction * RHit.distance, Color.cyan);//自机与所击中物体的连线 + } + thisRDistanceList.Add(MaxDistance); + //Debug.LogWarning("Hit Tag = " + LHit.collider.tag); + //Debug.LogWarning(LDistance[EnemyIndex-1]); + //Debug.Log("ADD_LIST_ENEMYR"); + } + } + else + { + thisLDistanceList.Add(MaxDistance); + Debug.LogError("RRAY HIT NOTHING, Check Code!"); + } + } + //右侧不在可见范围内时-->-->-->-->-->-->-->-->-->-->-->-->-->--> + else + { + thisRDistanceList.Add(MaxDistance); + //Debug.LogError("NoVisual"); + //Debug.LogError(LDistance[EnemyIndex-1]); + //Debug.Log("ADD_LIST_ENEMYR_ELSE"); + } + } + //Debug.LogWarning("EnemyIndex" + EnemyIndex); + //Debug.LogWarning(thisLDistanceList.Count); + //Debug.LogWarning(MinEnemyIndex); + //Debug.Log("thisLDistanceList" + thisLDistanceList.Count); + //Debug.Log("thisRDistanceList" + thisRDistanceList.Count); + + //检查最近Enemy + if (System.Math.Min(thisLDistanceList[EnemyIndex], thisRDistanceList[EnemyIndex]) < MinEnemyDis) + { + //Debug.Log("EnemyIndex" + EnemyIndex); + MinEnemyDis = System.Math.Min(thisLDistanceList[EnemyIndex], thisRDistanceList[EnemyIndex]); + MinEnemyIndex = EnemyIndex; + } + } + // 获取最近敌人的准确位置信息 + MinEnemyInfo[0] = (float)MinEnemyIndex; + if(MinEnemyInfo[0] <= 0) + { + MinEnemyInfo[1] = MaxDistance; + MinEnemyInfo[2] = MaxDistance; + } + else + { + MinEnemyInfo[1] = EnemyGameObjs[MinEnemyIndex].transform.position.x; + MinEnemyInfo[2] = EnemyGameObjs[MinEnemyIndex].transform.position.z; + } + return (EnemyIndex, thisLDistanceList, thisRDistanceList,MinEnemyInfo); + } + + + // 全局Ray探测处理 + (float[], float[]) eyeSensorRay(int rayNum, Camera agentCam, float viewDistance) + { + //初始化result Array + float[] thisRayTagResult = new float[rayNum]; + float[] thisRayDisResult = new float[rayNum]; + + //于视角范围内一帧射出rayNum条射线 + for (int a = 0; a <= rayNum - 1; a = a + 1) + { + //射线射出 + Vector3 point = new Vector3(a * agentCam.pixelWidth / (rayNum - 1), agentCam.pixelHeight / 2, 0);//发射位置 + Ray ray = agentCam.ScreenPointToRay(point); + RaycastHit hit; + if (showEyeSensor) + { + Debug.DrawRay(ray.origin, ray.direction * viewDistance, Color.black); + } + //若在viewDistance范围内有碰撞 + if (Physics.Raycast(ray, out hit, viewDistance)) + { + thisRayTagResult[a] = tagToInt(hit.collider.tag); + thisRayDisResult[a] = hit.distance; + if (showEyeSensor) + { + Debug.DrawRay(ray.origin, ray.direction * hit.distance, Color.yellow); + } + //输出log + //Debug.Log(rayTagResult[a]); + //Debug.Log(tagToInt(hit.collider.tag)); + + } + //若在viewDistance范围无碰撞 + else + { + thisRayTagResult[a] = -1f; + thisRayDisResult[a] = -1f; + //输出log + //Debug.Log(0); + //Debug.Log(0); + } + } + return (thisRayTagResult, thisRayDisResult); + } + + void Start() + { + rayTagResult = new float[rayNum]; + rayDisResult = new float[rayNum]; + } + + + + void Update() + { + (rayTagResult, rayDisResult) = eyeSensorRay(rayNum, agentCam, viewDistance); + (allEnemyNum, enemyLDisList, enemyRDisList, focusEnemyInfo) = enemySensorRay(myself, agentCam, attentionRange); + transform.gameObject.GetComponent().updateRemainEnemy(allEnemyNum); + /* + Debug.LogWarning("rayNum :" + rayNum); + for (int i =0;i < rayNum; i++) + { + Debug.Log("rayTagResult" + rayTagResult[i] + "rayDisResult"+ rayDisResult[i]); + } + Debug.LogWarning("EnemyNum Include Me:" + allEnemyNum); + for(int i = 0; i < allEnemyNum; i++) + { + Debug.Log("enemyLDisList" + enemyLDisList[i] + "enemyRDisList" + enemyRDisList[i]); + } + */ + } +} diff --git a/Aimbot-PPO-MultiScene/Assets/Script/RaySensors.cs.meta b/Aimbot-PPO-MultiScene/Assets/Script/RaySensors.cs.meta new file mode 100644 index 0000000..4537bf3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/RaySensors.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 787273829b64d4d4b8237ea7316f59ce +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Script/RewardChanger.cs b/Aimbot-PPO-MultiScene/Assets/Script/RewardChanger.cs new file mode 100644 index 0000000..a371cb2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/RewardChanger.cs @@ -0,0 +1,55 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class RewardChanger : MonoBehaviour +{ + public GameObject Agent; + + public Button nonRBT; + public Button shootRBT; + public Button shootWithoutReadyRBT; + public Button hitRBT; + public Button killRBT; + public Button winRBT; + public Button loseRBT; + + public InputField nonRInputField; + public InputField shootRInputField; + public InputField shootWithoutReadyRInputField; + public InputField hitRInputField; + public InputField killRInputField; + public InputField winRInputField; + public InputField loseRInputField; + + + public void nonRBTPresses(){ + string reward = nonRInputField.GetComponent().text; + Agent.GetComponent().nonReward = float.Parse(reward); + } + public void shootRBTPresses(){ + string reward = shootRInputField.GetComponent().text; + Agent.GetComponent().shootReward = float.Parse(reward); + } + public void shootWithoutReadyRBTPresses(){ + string reward = shootWithoutReadyRInputField.GetComponent().text; + Agent.GetComponent().shootWithoutReadyReward = float.Parse(reward); + } + public void hitRBTPresses(){ + string reward = hitRInputField.GetComponent().text; + Agent.GetComponent().hitReward = float.Parse(reward); + } + public void killRBTPresses(){ + string reward = killRInputField.GetComponent().text; + Agent.GetComponent().killReward = float.Parse(reward); + } + public void winRBTPresses(){ + string reward = winRInputField.GetComponent().text; + Agent.GetComponent().winReward = float.Parse(reward); + } + public void loseRBTPresses(){ + string reward = loseRInputField.GetComponent().text; + Agent.GetComponent().loseReward = float.Parse(reward); + } +} diff --git a/Aimbot-PPO-MultiScene/Assets/Script/RewardChanger.cs.meta b/Aimbot-PPO-MultiScene/Assets/Script/RewardChanger.cs.meta new file mode 100644 index 0000000..03d99ef --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/RewardChanger.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e23822cccaf08084ab5cde559ca068e0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Script/RewardsChange.cs b/Aimbot-PPO-MultiScene/Assets/Script/RewardsChange.cs new file mode 100644 index 0000000..3786f1e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/RewardsChange.cs @@ -0,0 +1,120 @@ +using System.Collections; +using System.Collections.Generic; +using System; +using UnityEngine; +using UnityEngine.UI; + +public class RewardsChange : MonoBehaviour +{ + public GameObject DataTransfer; + + public GameObject nonRInputOBJ; + public GameObject shootRInputOBJ; + public GameObject shootWithoutReadyRInputOBJ; + public GameObject hitRInputOBJ; + public GameObject killRInputOBJ; + public GameObject winRInputOBJ; + public GameObject loseRInputOBJ; + + + public Text nonRInputText; + public Text shootRInputText; + public Text shootWithoutReadyRInputText; + public Text hitRInputText; + public Text killRInputText; + public Text winRInputText; + public Text loseRInputText; + + + + private void Start() + { + } + // Update is called once per frame + + public void nonRValueChanged() + { + if (nonRInputOBJ.GetComponent().text == "") + { + nonRInputText.color = Color.gray; + DataTransfer.GetComponent().nonReward = DataTransfer.GetComponent().nonRewardDefault; + } + else + { + nonRInputText.color = Color.yellow; + DataTransfer.GetComponent().nonReward = float.Parse(nonRInputOBJ.GetComponent().text); + } + } + public void shootRValueChanged() + { + if (shootRInputOBJ.GetComponent().text == "") + { + shootRInputText.color = Color.gray; + DataTransfer.GetComponent().shootReward = DataTransfer.GetComponent().shootRewardDefault; + } + else { + shootRInputText.color = Color.yellow; + DataTransfer.GetComponent().shootReward = float.Parse(shootRInputOBJ.GetComponent().text); + } + } + public void shootWOReadyRValueChanged() + { + if(shootWithoutReadyRInputOBJ.GetComponent().text == "") + { + shootWithoutReadyRInputText.color = Color.gray; + DataTransfer.GetComponent().shootWithoutReadyReward = DataTransfer.GetComponent().shootWithoutReadyRewardDefault; + } + else{ + shootWithoutReadyRInputText.color = Color.yellow; + DataTransfer.GetComponent().shootWithoutReadyReward = float.Parse(shootWithoutReadyRInputOBJ.GetComponent().text); + } + } + public void hitRValueChanged() + { + if(hitRInputOBJ.GetComponent().text == "") + { + hitRInputText.color = Color.gray; + DataTransfer.GetComponent().hitReward = DataTransfer.GetComponent().hitRewardDefault; + } + else{ + hitRInputText.color = Color.yellow; + DataTransfer.GetComponent().hitReward = float.Parse(hitRInputOBJ.GetComponent().text); + } + } + public void winRValueChanged() + { + if(winRInputOBJ.GetComponent().text == "") + { + winRInputText.color = Color.gray; + DataTransfer.GetComponent().winReward = DataTransfer.GetComponent().winRewardDefault; + } + else{ + winRInputText.color = Color.yellow; + DataTransfer.GetComponent().winReward = float.Parse(winRInputOBJ.GetComponent().text); + } + } + public void loseRValueChanged() + { + if(loseRInputOBJ.GetComponent().text == "") + { + loseRInputText.color = Color.gray; + DataTransfer.GetComponent().loseReward = DataTransfer.GetComponent().loseRewardDefault; + } + else{ + loseRInputText.color = Color.yellow; + DataTransfer.GetComponent().loseReward = float.Parse(loseRInputOBJ.GetComponent().text); + } + } + public void killRValueChanged() + { + if(killRInputOBJ.GetComponent().text == "") + { + killRInputText.color = Color.gray; + DataTransfer.GetComponent().killReward = DataTransfer.GetComponent().killRewardDefault; + } + else{ + killRInputText.color = Color.yellow; + DataTransfer.GetComponent().killReward = float.Parse(killRInputOBJ.GetComponent().text); + } + } +} diff --git a/Aimbot-PPO-MultiScene/Assets/Script/RewardsChange.cs.meta b/Aimbot-PPO-MultiScene/Assets/Script/RewardsChange.cs.meta new file mode 100644 index 0000000..4ba0c47 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/RewardsChange.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 44fd351436d221849991bd84d37d8109 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Script/SaveWeightsButton.cs b/Aimbot-PPO-MultiScene/Assets/Script/SaveWeightsButton.cs new file mode 100644 index 0000000..83b1094 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/SaveWeightsButton.cs @@ -0,0 +1,11 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class SaveWeightsButton : MonoBehaviour +{ + public GameObject Agent; + public void onButtonClicked() + { + } +} diff --git a/Aimbot-PPO-MultiScene/Assets/Script/SaveWeightsButton.cs.meta b/Aimbot-PPO-MultiScene/Assets/Script/SaveWeightsButton.cs.meta new file mode 100644 index 0000000..fc8616a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/SaveWeightsButton.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 065aae6979c750b4fa0a0be5dbd8d2c7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Script/SceneChange.cs b/Aimbot-PPO-MultiScene/Assets/Script/SceneChange.cs new file mode 100644 index 0000000..885aecd --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/SceneChange.cs @@ -0,0 +1,41 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.SceneManagement; + +public class SceneChange : MonoBehaviour +{ + public GameObject DataTransfer; + public Text errorText; + // Start is called before the first frame update + bool checkLoadDirFormat() + { + string thisLoadDirDate = DataTransfer.GetComponent().LoadDirDate; + string thisLoadDirTime = DataTransfer.GetComponent().LoadDirTime; + int LoadDirDateLength = thisLoadDirDate.Length; + int LoadDirTimeLength = thisLoadDirTime.Length; + if ((LoadDirDateLength == 8 && LoadDirTimeLength == 6) || (thisLoadDirDate == "0" && thisLoadDirTime == "0")) + { + return true; + } + else + { + return false; + } + } + + public void onStartClick() + { + if (checkLoadDirFormat()) + { + errorText.text = "Loading next Scene..."; + errorText.color = Color.green; + SceneManager.LoadScene("InGame"); + } + else + { + errorText.text = "Dir Format error"; + } + } +} diff --git a/Aimbot-PPO-MultiScene/Assets/Script/SceneChange.cs.meta b/Aimbot-PPO-MultiScene/Assets/Script/SceneChange.cs.meta new file mode 100644 index 0000000..b40b5d4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/SceneChange.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 73ae3df5f5faba1428ab2529c043b7ae +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Script/StartSeneData.cs b/Aimbot-PPO-MultiScene/Assets/Script/StartSeneData.cs new file mode 100644 index 0000000..c34badf --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/StartSeneData.cs @@ -0,0 +1,46 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class StartSeneData : MonoBehaviour +{ + public string LoadDirDate = "0"; + public string LoadDirTime = "0"; + [Header("Default Rewards")] + public float nonRewardDefault = -0.05f; + public float shootRewardDefault = -0.06f; + public float shootWithoutReadyRewardDefault = -0.06f; + public float hitRewardDefault = 5.0f; + public float killRewardDefault = 10.0f; + public float winRewardDefault = 20.0f; + public float loseRewardDefault = -10.0f; + + [Header("Rewards for Transfer")] + public float nonReward; + public float shootReward; + public float shootWithoutReadyReward; + public float hitReward; + public float killReward; + public float winReward; + public float loseReward; + + [Header("Decision Period")] + public int DecisionPeriod = 1; + public bool ActionsBetweenDecisions = true; + + private void Start() + { + nonReward = nonRewardDefault; + shootReward = shootRewardDefault; + shootWithoutReadyReward = shootWithoutReadyRewardDefault; + hitReward = hitRewardDefault; + killReward = killRewardDefault; + winReward = winRewardDefault; + loseReward = loseRewardDefault; + } + // Update is called once per frame + void Awake() + { + DontDestroyOnLoad(transform.gameObject); + } +} diff --git a/Aimbot-PPO-MultiScene/Assets/Script/StartSeneData.cs.meta b/Aimbot-PPO-MultiScene/Assets/Script/StartSeneData.cs.meta new file mode 100644 index 0000000..327aeba --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/StartSeneData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 52ba7faaa6129cf418f26c5933d4ea0e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/Script/UIController.cs b/Aimbot-PPO-MultiScene/Assets/Script/UIController.cs new file mode 100644 index 0000000..f3912f6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/UIController.cs @@ -0,0 +1,204 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using XCharts.Runtime; + +/*????UI*/ + +public class UIController : MonoBehaviour +{ + + [Header("Key Viewer")] + public int updateStep = 600; + public Text upText; + public Text downText; + public Text leftText; + public Text rightText; + public Text shootText; + public Text MouseText; + public Text remainTimeText; + public Text remainEnemyText; + public Image mouseVisualizationBG; + public Image mouseVisualizationMeter; + + [Header("Reward Viewer")] + public Text nonRewardText; + public Text shootRewardText; + public Text shootWithoutReadyRewardText; + public Text hitRewardText; + public Text winRewardText; + public Text loseRewardText; + public Text killRewardText; + + + [Header("X_Charts")] + public GameObject realTimeRewardChartOBJ; + public GameObject realTimeKeyCounterChartOBJ; + public GameObject EPTotalRewardsChartOBJ; + + [Header("Other Para")] + public float mouseMaxMovement = 15; + + private LineChart realTimeRewardChart; + private BarChart realTimeKeyCounterChart; + private LineChart EPTotalRewardsChart; + + //-----------RewardViewer-------- + public void updateRewardViewer(float nonReward, float shootReward, float shootWithoutReadyReward, float hitReward, float winReward, float loseReward, float killReward) + { + nonRewardText.text = Convert.ToString(nonReward); + shootRewardText.text = Convert.ToString(shootReward); + shootWithoutReadyRewardText.text = Convert.ToString(shootWithoutReadyReward); + hitRewardText.text = Convert.ToString(hitReward); + winRewardText.text = Convert.ToString(winReward); + loseRewardText.text = Convert.ToString(loseReward); + killRewardText.text = Convert.ToString(killReward); + } + + //------------RemainTime---------- + public void updateRemainTime(int remainTime) + { + remainTimeText.text = Convert.ToString(remainTime); + } + //------------RemainEnemy--------- + public void updateRemainEnemy(int enemyNum) + { + remainEnemyText.text = Convert.ToString(enemyNum); + } + + //------------Key Viewer---------- + public void updateWASDKeyViewer(int kW,int kS,int kA,int kD) + { + if (kW == 1) + { + upText.color = Color.red; + } + else + { + upText.color = Color.black; + } + if (kS == 1) + { + downText.color = Color.red; + } + else + { + downText.color = Color.black; + } + if(kA == 1) + { + leftText.color = Color.red; + } + else + { + leftText.color = Color.black; + } + if( kD == 1) + { + rightText.color = Color.red; + } + else + { + rightText.color = Color.black; + } + } + public void updateShootKeyViewer(int shoot,bool isGunReady) + { + if(shoot != 0 && isGunReady == true) + { + shootText.color = Color.red; + } + else if(shoot != 0 && isGunReady == false) + { + shootText.color = Color.yellow; + } + else + { + shootText.color = Color.black; + } + } + public void updateMouseMovementViewer(float Mouse_x) + { + MouseText.text = Mouse_x.ToString(); + float mouseBGWidth = mouseVisualizationBG.GetComponent().sizeDelta.x; + float mouseBGPosX = mouseVisualizationBG.GetComponent().position.x; + float mouseBGPosY = mouseVisualizationBG.GetComponent().position.y; + + float mouseMeterWidth = mouseBGWidth * Mouse_x / mouseMaxMovement; + float mouseMeterPositionOffset = mouseMeterWidth / 2; + mouseVisualizationMeter.rectTransform.sizeDelta = new Vector2(Math.Abs(mouseMeterWidth),mouseVisualizationMeter.GetComponent().sizeDelta.y); + mouseVisualizationMeter.rectTransform.position = new Vector3(mouseBGPosX + mouseMeterPositionOffset, mouseBGPosY, 0); + } + + // ------------X Chart------------ + // Initialize Chart UI + public void iniChart() + { + realTimeRewardChart = realTimeRewardChartOBJ.GetComponent(); + resetStepChart(); + realTimeKeyCounterChart = realTimeKeyCounterChartOBJ.GetComponent(); + resetCounterChat(); + + EPTotalRewardsChart = EPTotalRewardsChartOBJ.GetComponent(); + resetEPChart(); + } + + // Resert------------ + // reset setp by setp update Chart + public void resetStepChart() + { + realTimeRewardChart.RemoveData(); + realTimeRewardChart.AddSerie("RealTimeRewardChart"); + } + // reset keyCounter Chart + public void resetCounterChat() + { + realTimeKeyCounterChart.RemoveData(); + realTimeKeyCounterChart.AddSerie("RealTimeKeyCounterChart"); + realTimeKeyCounterChart.AddXAxisData("W"); + realTimeKeyCounterChart.AddXAxisData("S"); + realTimeKeyCounterChart.AddXAxisData("A"); + realTimeKeyCounterChart.AddXAxisData("D"); + realTimeKeyCounterChart.AddXAxisData("Pew"); + realTimeKeyCounterChart.AddData("RealTimeKeyCounterChart", 0, "W"); + realTimeKeyCounterChart.AddData("RealTimeKeyCounterChart", 0, "S"); + realTimeKeyCounterChart.AddData("RealTimeKeyCounterChart", 0, "A"); + realTimeKeyCounterChart.AddData("RealTimeKeyCounterChart", 0, "D"); + realTimeKeyCounterChart.AddData("RealTimeKeyCounterChart", 0, "Pew"); + } + // reset EP by EP update Chart + public void resetEPChart() + { + EPTotalRewardsChart.RemoveData(); + EPTotalRewardsChart.AddSerie("EPTotalRewardsChart"); + } + + // Update------------ + // update setp by setp update Type Chart + public void stepUpdateChart(int step, float reward) + { + if(step % updateStep == 0) + { + resetStepChart(); + } + realTimeRewardChart.AddXAxisData(Convert.ToString(step)); + realTimeRewardChart.AddData(0,reward); + } + // update KeyCounter chart + public void updateKeyCounterChart(int kWCount, int kSCount, int kACount, int kDCount,int shootCount) + { + realTimeKeyCounterChart.UpdateData(0, 0, kWCount); + realTimeKeyCounterChart.UpdateData(0, 1, kSCount); + realTimeKeyCounterChart.UpdateData(0, 2, kACount); + realTimeKeyCounterChart.UpdateData(0, 3, kDCount); + realTimeKeyCounterChart.UpdateData(0, 4, shootCount); + } + // update EP by EP update Type Chart + public void epUpdateChart(int EP,float totalReward) + { + EPTotalRewardsChart.AddXAxisData(Convert.ToString(EP)); + EPTotalRewardsChart.AddData(0,totalReward); + } +} diff --git a/Aimbot-PPO-MultiScene/Assets/Script/UIController.cs.meta b/Aimbot-PPO-MultiScene/Assets/Script/UIController.cs.meta new file mode 100644 index 0000000..8847c71 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/Script/UIController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 89d83d123322a5c4ba6afb3c86403371 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro.meta new file mode 100644 index 0000000..f9da8b5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f54d1bd14bd3ca042bd867b519fee8cc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Documentation.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Documentation.meta new file mode 100644 index 0000000..afa527a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Documentation.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8e7e8f5a82a3a134e91c54efd2274ea9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf new file mode 100644 index 0000000..c2ea2d2 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf differ diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf.meta new file mode 100644 index 0000000..e4afeef --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1b8d251f9af63b746bf2f7ffe00ebb9b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Fonts.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Fonts.meta new file mode 100644 index 0000000..f0c2972 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Fonts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6ab70aee4d56447429c680537fbf93ed +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt new file mode 100644 index 0000000..f2473f9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt @@ -0,0 +1,46 @@ +Digitized data copyright (c) 2010 Google Corporation + with Reserved Font Arimo, Tinos and Cousine. +Copyright (c) 2012 Red Hat, Inc. + with Reserved Font Name Liberation. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. + +The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the copyright statement(s). + +"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. + +"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. + +5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt.meta new file mode 100644 index 0000000..fa60cea --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6e59c59b81ab47f9b6ec5781fa725d2c +timeCreated: 1484171296 +licenseType: Pro +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Fonts/LiberationSans.ttf b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Fonts/LiberationSans.ttf new file mode 100644 index 0000000..626dd93 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Fonts/LiberationSans.ttf differ diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Fonts/LiberationSans.ttf.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Fonts/LiberationSans.ttf.meta new file mode 100644 index 0000000..f2fc814 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Fonts/LiberationSans.ttf.meta @@ -0,0 +1,19 @@ +fileFormatVersion: 2 +guid: e3265ab4bf004d28a9537516768c1c75 +timeCreated: 1484171297 +licenseType: Pro +TrueTypeFontImporter: + serializedVersion: 2 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 1 + characterPadding: 0 + includeFontData: 1 + use2xBehaviour: 0 + fontNames: [] + fallbackFontReferences: [] + customCharacters: + fontRenderingMode: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources.meta new file mode 100644 index 0000000..cfc142f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 243e06394e614e5d99fab26083b707fa +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials.meta new file mode 100644 index 0000000..8a01112 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 731f1baa9d144a9897cb1d341c2092b8 +folderAsset: yes +timeCreated: 1442040525 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat new file mode 100644 index 0000000..5bc142c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat @@ -0,0 +1,106 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: LiberationSans SDF - Drop Shadow + m_Shader: {fileID: 4800000, guid: fe393ace9b354375a9cb14cdbbc28be4, type: 3} + m_ShaderKeywords: OUTLINE_ON UNDERLAY_ON + m_LightmapFlags: 5 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Cube: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FaceTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 28684132378477856, guid: 8f586378b4e144a9851e7b34d9b748ee, + type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OutlineTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Ambient: 0.5 + - _Bevel: 0.5 + - _BevelClamp: 0 + - _BevelOffset: 0 + - _BevelRoundness: 0 + - _BevelWidth: 0 + - _BumpFace: 0 + - _BumpOutline: 0 + - _ColorMask: 15 + - _Diffuse: 0.5 + - _DiffusePower: 1 + - _FaceDilate: 0.1 + - _FaceUVSpeedX: 0 + - _FaceUVSpeedY: 0 + - _GlowInner: 0.05 + - _GlowOffset: 0 + - _GlowOuter: 0.05 + - _GlowPower: 0.75 + - _GradientScale: 10 + - _LightAngle: 3.1416 + - _MaskSoftnessX: 0 + - _MaskSoftnessY: 0 + - _OutlineSoftness: 0 + - _OutlineUVSpeedX: 0 + - _OutlineUVSpeedY: 0 + - _OutlineWidth: 0.1 + - _PerspectiveFilter: 0.875 + - _Reflectivity: 10 + - _ScaleRatioA: 0.9 + - _ScaleRatioB: 0.73125 + - _ScaleRatioC: 0.64125 + - _ScaleX: 1 + - _ScaleY: 1 + - _ShaderFlags: 0 + - _Sharpness: 0 + - _SpecularPower: 2 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _TextureHeight: 1024 + - _TextureWidth: 1024 + - _UnderlayDilate: 0 + - _UnderlayOffsetX: 0.5 + - _UnderlayOffsetY: -0.5 + - _UnderlaySoftness: 0.05 + - _VertexOffsetX: 0 + - _VertexOffsetY: 0 + - _WeightBold: 0.75 + - _WeightNormal: 0 + m_Colors: + - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0} + - _FaceColor: {r: 1, g: 1, b: 1, a: 1} + - _GlowColor: {r: 0, g: 1, b: 0, a: 0.5} + - _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767} + - _OutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5} diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat.meta new file mode 100644 index 0000000..fbd2cdb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e73a58f6e2794ae7b1b7e50b7fb811b0 +timeCreated: 1484172806 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset new file mode 100644 index 0000000..6f8e6c0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset @@ -0,0 +1,351 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2180264 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: LiberationSans SDF Material + m_Shader: {fileID: 4800000, guid: fe393ace9b354375a9cb14cdbbc28be4, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 1 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Cube: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FaceTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 28268798066460806} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OutlineTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Ambient: 0.5 + - _Bevel: 0.5 + - _BevelClamp: 0 + - _BevelOffset: 0 + - _BevelRoundness: 0 + - _BevelWidth: 0 + - _BumpFace: 0 + - _BumpOutline: 0 + - _BumpScale: 1 + - _ColorMask: 15 + - _CullMode: 0 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _Diffuse: 0.5 + - _DstBlend: 0 + - _FaceDilate: 0 + - _FaceUVSpeedX: 0 + - _FaceUVSpeedY: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _GlowInner: 0.05 + - _GlowOffset: 0 + - _GlowOuter: 0.05 + - _GlowPower: 0.75 + - _GradientScale: 10 + - _LightAngle: 3.1416 + - _MaskSoftnessX: 0 + - _MaskSoftnessY: 0 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _OutlineSoftness: 0 + - _OutlineUVSpeedX: 0 + - _OutlineUVSpeedY: 0 + - _OutlineWidth: 0 + - _Parallax: 0.02 + - _PerspectiveFilter: 0.875 + - _Reflectivity: 10 + - _ScaleRatioA: 0.9 + - _ScaleRatioB: 0.73125 + - _ScaleRatioC: 0.73125 + - _ScaleX: 1 + - _ScaleY: 1 + - _ShaderFlags: 0 + - _Sharpness: 0 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SpecularPower: 2 + - _SrcBlend: 1 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _TextureHeight: 512 + - _TextureWidth: 512 + - _UVSec: 0 + - _UnderlayDilate: 0 + - _UnderlayOffsetX: 0 + - _UnderlayOffsetY: 0 + - _UnderlaySoftness: 0 + - _VertexOffsetX: 0 + - _VertexOffsetY: 0 + - _WeightBold: 0.75 + - _WeightNormal: 0 + - _ZWrite: 1 + m_Colors: + - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0} + - _FaceColor: {r: 1, g: 1, b: 1, a: 1} + - _GlowColor: {r: 0, g: 1, b: 0, a: 0.5} + - _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767} + - _OutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5} + m_BuildTextureStacks: [] +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 71c1514a6bd24e1e882cebbe1904ce04, type: 3} + m_Name: LiberationSans SDF - Fallback + m_EditorClassIdentifier: + hashCode: -1699145518 + material: {fileID: 2180264} + materialHashCode: 462855346 + m_Version: 1.1.0 + m_SourceFontFileGUID: e3265ab4bf004d28a9537516768c1c75 + m_SourceFontFile_EditorRef: {fileID: 12800000, guid: e3265ab4bf004d28a9537516768c1c75, type: 3} + m_SourceFontFile: {fileID: 12800000, guid: e3265ab4bf004d28a9537516768c1c75, type: 3} + m_AtlasPopulationMode: 1 + m_FaceInfo: + m_FaceIndex: 0 + m_FamilyName: Liberation Sans + m_StyleName: Regular + m_PointSize: 86 + m_Scale: 1 + m_LineHeight: 98.8916 + m_AscentLine: 77.853516 + m_CapLine: 59 + m_MeanLine: 45 + m_Baseline: 0 + m_DescentLine: -18.22461 + m_SuperscriptOffset: 77.853516 + m_SuperscriptSize: 0.5 + m_SubscriptOffset: -18.22461 + m_SubscriptSize: 0.5 + m_UnderlineOffset: -12.261719 + m_UnderlineThickness: 6.298828 + m_StrikethroughOffset: 18 + m_StrikethroughThickness: 6.298828 + m_TabWidth: 24 + m_GlyphTable: [] + m_CharacterTable: [] + m_AtlasTextures: + - {fileID: 28268798066460806} + m_AtlasTextureIndex: 0 + m_IsMultiAtlasTexturesEnabled: 0 + m_ClearDynamicDataOnBuild: 1 + m_UsedGlyphRects: [] + m_FreeGlyphRects: + - m_X: 0 + m_Y: 0 + m_Width: 511 + m_Height: 511 + m_fontInfo: + Name: Liberation Sans + PointSize: 86 + Scale: 1 + CharacterCount: 250 + LineHeight: 98.90625 + Baseline: 0 + Ascender: 77.84375 + CapHeight: 59.1875 + Descender: -18.21875 + CenterLine: 0 + SuperscriptOffset: 77.84375 + SubscriptOffset: -12.261719 + SubSize: 0.5 + Underline: -12.261719 + UnderlineThickness: 6.298828 + strikethrough: 23.675 + strikethroughThickness: 0 + TabWidth: 239.0625 + Padding: 9 + AtlasWidth: 1024 + AtlasHeight: 1024 + atlas: {fileID: 0} + m_AtlasWidth: 512 + m_AtlasHeight: 512 + m_AtlasPadding: 9 + m_AtlasRenderMode: 4169 + m_glyphInfoList: [] + m_KerningTable: + kerningPairs: [] + m_FontFeatureTable: + m_GlyphPairAdjustmentRecords: [] + fallbackFontAssets: [] + m_FallbackFontAssetTable: [] + m_CreationSettings: + sourceFontFileName: + sourceFontFileGUID: e3265ab4bf004d28a9537516768c1c75 + pointSizeSamplingMode: 0 + pointSize: 86 + padding: 9 + packingMode: 4 + atlasWidth: 512 + atlasHeight: 512 + characterSetSelectionMode: 1 + characterSequence: 32 - 126, 160 - 255, 8192 - 8303, 8364, 8482, 9633 + referencedFontAssetGUID: 8f586378b4e144a9851e7b34d9b748ee + referencedTextAssetGUID: + fontStyle: 0 + fontStyleModifier: 0 + renderMode: 4169 + includeFontFeatures: 1 + m_FontWeightTable: + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + fontWeights: + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + normalStyle: 0 + normalSpacingOffset: 0 + boldStyle: 0.75 + boldSpacing: 7 + italicStyle: 35 + tabSize: 10 +--- !u!28 &28268798066460806 +Texture2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: LiberationSans SDF Atlas + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_ForcedFallbackFormat: 4 + m_DownscaleFallback: 0 + m_IsAlphaChannelOptional: 0 + serializedVersion: 2 + m_Width: 0 + m_Height: 0 + m_CompleteImageSize: 0 + m_MipsStripped: 0 + m_TextureFormat: 1 + m_MipCount: 1 + m_IsReadable: 1 + m_IsPreProcessed: 0 + m_IgnoreMasterTextureLimit: 0 + m_StreamingMipmaps: 0 + m_StreamingMipmapsPriority: 0 + m_VTOnly: 0 + 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: 0 + m_PlatformBlob: + image data: 0 + _typelessdata: + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset.meta new file mode 100644 index 0000000..42dd6ac --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2e498d1c8094910479dc3e1b768306a4 +timeCreated: 1484171803 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat new file mode 100644 index 0000000..cca8ce8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat @@ -0,0 +1,104 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: LiberationSans SDF - Outline + m_Shader: {fileID: 4800000, guid: fe393ace9b354375a9cb14cdbbc28be4, type: 3} + m_ShaderKeywords: OUTLINE_ON + m_LightmapFlags: 5 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Cube: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FaceTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 28684132378477856, guid: 8f586378b4e144a9851e7b34d9b748ee, + type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OutlineTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Ambient: 0.5 + - _Bevel: 0.5 + - _BevelClamp: 0 + - _BevelOffset: 0 + - _BevelRoundness: 0 + - _BevelWidth: 0 + - _BumpFace: 0 + - _BumpOutline: 0 + - _ColorMask: 15 + - _Diffuse: 0.5 + - _FaceDilate: 0.1 + - _FaceUVSpeedX: 0 + - _FaceUVSpeedY: 0 + - _GlowInner: 0.05 + - _GlowOffset: 0 + - _GlowOuter: 0.05 + - _GlowPower: 0.75 + - _GradientScale: 10 + - _LightAngle: 3.1416 + - _MaskSoftnessX: 0 + - _MaskSoftnessY: 0 + - _OutlineSoftness: 0 + - _OutlineUVSpeedX: 0 + - _OutlineUVSpeedY: 0 + - _OutlineWidth: 0.1 + - _PerspectiveFilter: 0.875 + - _Reflectivity: 10 + - _ScaleRatioA: 0.9 + - _ScaleRatioB: 0.73125 + - _ScaleRatioC: 0.64125 + - _ScaleX: 1 + - _ScaleY: 1 + - _ShaderFlags: 0 + - _Sharpness: 0 + - _SpecularPower: 2 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _TextureHeight: 1024 + - _TextureWidth: 1024 + - _UnderlayDilate: 0 + - _UnderlayOffsetX: 0 + - _UnderlayOffsetY: 0 + - _UnderlaySoftness: 0 + - _VertexOffsetX: 0 + - _VertexOffsetY: 0 + - _WeightBold: 0.75 + - _WeightNormal: 0 + m_Colors: + - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} + - _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0} + - _FaceColor: {r: 1, g: 1, b: 1, a: 1} + - _GlowColor: {r: 0, g: 1, b: 0, a: 0.5} + - _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767} + - _OutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5} diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat.meta new file mode 100644 index 0000000..88d6334 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 79459efec17a4d00a321bdcc27bbc385 +timeCreated: 1484172856 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset new file mode 100644 index 0000000..c7b0771 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset @@ -0,0 +1,7821 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2180264 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: LiberationSans SDF Material + m_Shader: {fileID: 4800000, guid: fe393ace9b354375a9cb14cdbbc28be4, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 1 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 28684132378477856} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _ColorMask: 15 + - _FaceDilate: 0 + - _GradientScale: 10 + - _MaskSoftnessX: 0 + - _MaskSoftnessY: 0 + - _OutlineSoftness: 0 + - _OutlineWidth: 0 + - _PerspectiveFilter: 0.875 + - _ScaleRatioA: 0.9 + - _ScaleRatioB: 1 + - _ScaleRatioC: 0.73125 + - _ScaleX: 1 + - _ScaleY: 1 + - _ShaderFlags: 0 + - _Sharpness: 0 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _TextureHeight: 1024 + - _TextureWidth: 1024 + - _UnderlayDilate: 0 + - _UnderlayOffsetX: 0 + - _UnderlayOffsetY: 0 + - _UnderlaySoftness: 0 + - _VertexOffsetX: 0 + - _VertexOffsetY: 0 + - _WeightBold: 0.75 + - _WeightNormal: 0 + m_Colors: + - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} + - _FaceColor: {r: 1, g: 1, b: 1, a: 1} + - _OutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5} +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 71c1514a6bd24e1e882cebbe1904ce04, type: 3} + m_Name: LiberationSans SDF + m_EditorClassIdentifier: + hashCode: 231247347 + material: {fileID: 2180264} + materialHashCode: -1183942120 + m_Version: 1.1.0 + m_SourceFontFileGUID: e3265ab4bf004d28a9537516768c1c75 + m_SourceFontFile_EditorRef: {fileID: 12800000, guid: e3265ab4bf004d28a9537516768c1c75, + type: 3} + m_SourceFontFile: {fileID: 0} + m_AtlasPopulationMode: 0 + m_FaceInfo: + m_FamilyName: Liberation Sans + m_StyleName: Regular + m_PointSize: 86 + m_Scale: 1 + m_LineHeight: 98.8916 + m_AscentLine: 77.853516 + m_CapLine: 59 + m_MeanLine: 45 + m_Baseline: 0 + m_DescentLine: -18.22461 + m_SuperscriptOffset: 77.853516 + m_SuperscriptSize: 0.5 + m_SubscriptOffset: -18.22461 + m_SubscriptSize: 0.5 + m_UnderlineOffset: -12.261719 + m_UnderlineThickness: 6.298828 + m_StrikethroughOffset: 18 + m_StrikethroughThickness: 6.298828 + m_TabWidth: 24 + m_GlyphTable: + - m_Index: 3 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 4 + m_Metrics: + m_Width: 9 + m_Height: 59 + m_HorizontalBearingX: 9 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 555 + m_Y: 816 + m_Width: 9 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 5 + m_Metrics: + m_Width: 25 + m_Height: 19 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 775 + m_Y: 922 + m_Width: 25 + m_Height: 19 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 6 + m_Metrics: + m_Width: 48 + m_Height: 59 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 471 + m_Y: 170 + m_Width: 48 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 7 + m_Metrics: + m_Width: 47 + m_Height: 70 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 64 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 161 + m_Y: 212 + m_Width: 47 + m_Height: 70 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 8 + m_Metrics: + m_Width: 70 + m_Height: 61 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 76 + m_GlyphRect: + m_X: 409 + m_Y: 10 + m_Width: 70 + m_Height: 61 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 9 + m_Metrics: + m_Width: 53 + m_Height: 61 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 57 + m_GlyphRect: + m_X: 437 + m_Y: 90 + m_Width: 53 + m_Height: 61 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 10 + m_Metrics: + m_Width: 8 + m_Height: 19 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 16 + m_GlyphRect: + m_X: 975 + m_Y: 961 + m_Width: 8 + m_Height: 19 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 11 + m_Metrics: + m_Width: 24 + m_Height: 80 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 146 + m_Y: 673 + m_Width: 24 + m_Height: 80 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 12 + m_Metrics: + m_Width: 24 + m_Height: 80 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 189 + m_Y: 671 + m_Width: 24 + m_Height: 80 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 13 + m_Metrics: + m_Width: 31 + m_Height: 30 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 33 + m_GlyphRect: + m_X: 495 + m_Y: 984 + m_Width: 31 + m_Height: 30 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 14 + m_Metrics: + m_Width: 42 + m_Height: 43 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 50 + m_HorizontalAdvance: 50 + m_GlyphRect: + m_X: 972 + m_Y: 330 + m_Width: 42 + m_Height: 43 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 15 + m_Metrics: + m_Width: 10 + m_Height: 20 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 9 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 583 + m_Y: 992 + m_Width: 10 + m_Height: 20 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 16 + m_Metrics: + m_Width: 23 + m_Height: 7 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 26 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 399 + m_Y: 925 + m_Width: 23 + m_Height: 7 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 17 + m_Metrics: + m_Width: 10 + m_Height: 9 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 9 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 657 + m_Y: 958 + m_Width: 10 + m_Height: 9 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 18 + m_Metrics: + m_Width: 24 + m_Height: 63 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 695 + m_Y: 409 + m_Width: 24 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 19 + m_Metrics: + m_Width: 42 + m_Height: 61 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 532 + m_Y: 249 + m_Width: 42 + m_Height: 61 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 20 + m_Metrics: + m_Width: 38 + m_Height: 59 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 915 + m_Y: 501 + m_Width: 38 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 21 + m_Metrics: + m_Width: 40 + m_Height: 60 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 596 + m_Y: 329 + m_Width: 40 + m_Height: 60 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 22 + m_Metrics: + m_Width: 42 + m_Height: 61 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 417 + m_Y: 503 + m_Width: 42 + m_Height: 61 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 23 + m_Metrics: + m_Width: 45 + m_Height: 59 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 725 + m_Y: 252 + m_Width: 45 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 24 + m_Metrics: + m_Width: 42 + m_Height: 60 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 724 + m_Y: 330 + m_Width: 42 + m_Height: 60 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 25 + m_Metrics: + m_Width: 41 + m_Height: 61 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 912 + m_Y: 262 + m_Width: 41 + m_Height: 61 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 26 + m_Metrics: + m_Width: 40 + m_Height: 59 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 438 + m_Y: 830 + m_Width: 40 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 27 + m_Metrics: + m_Width: 42 + m_Height: 61 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 733 + m_Y: 648 + m_Width: 42 + m_Height: 61 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 28 + m_Metrics: + m_Width: 40 + m_Height: 61 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 856 + m_Y: 484 + m_Width: 40 + m_Height: 61 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 29 + m_Metrics: + m_Width: 10 + m_Height: 45 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 897 + m_Y: 819 + m_Width: 10 + m_Height: 45 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 30 + m_Metrics: + m_Width: 10 + m_Height: 57 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 429 + m_Y: 287 + m_Width: 10 + m_Height: 57 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 31 + m_Metrics: + m_Width: 42 + m_Height: 43 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 50 + m_HorizontalAdvance: 50 + m_GlyphRect: + m_X: 846 + m_Y: 341 + m_Width: 42 + m_Height: 43 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 32 + m_Metrics: + m_Width: 42 + m_Height: 29 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 50 + m_GlyphRect: + m_X: 227 + m_Y: 281 + m_Width: 42 + m_Height: 29 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 33 + m_Metrics: + m_Width: 42 + m_Height: 43 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 50 + m_HorizontalAdvance: 50 + m_GlyphRect: + m_X: 972 + m_Y: 392 + m_Width: 42 + m_Height: 43 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 34 + m_Metrics: + m_Width: 42 + m_Height: 60 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 733 + m_Y: 728 + m_Width: 42 + m_Height: 60 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 35 + m_Metrics: + m_Width: 74 + m_Height: 74 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 87 + m_GlyphRect: + m_X: 10 + m_Y: 10 + m_Width: 74 + m_Height: 74 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 36 + m_Metrics: + m_Width: 57 + m_Height: 59 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 57 + m_GlyphRect: + m_X: 828 + m_Y: 103 + m_Width: 57 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 37 + m_Metrics: + m_Width: 46 + m_Height: 59 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 57 + m_GlyphRect: + m_X: 542 + m_Y: 486 + m_Width: 46 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 38 + m_Metrics: + m_Width: 55 + m_Height: 61 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 62 + m_GlyphRect: + m_X: 509 + m_Y: 88 + m_Width: 55 + m_Height: 61 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 39 + m_Metrics: + m_Width: 51 + m_Height: 59 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 62 + m_GlyphRect: + m_X: 655 + m_Y: 252 + m_Width: 51 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 40 + m_Metrics: + m_Width: 47 + m_Height: 59 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 57 + m_GlyphRect: + m_X: 629 + m_Y: 409 + m_Width: 47 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 41 + m_Metrics: + m_Width: 43 + m_Height: 59 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 53 + m_GlyphRect: + m_X: 789 + m_Y: 259 + m_Width: 43 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 42 + m_Metrics: + m_Width: 57 + m_Height: 61 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 67 + m_GlyphRect: + m_X: 904 + m_Y: 103 + m_Width: 57 + m_Height: 61 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 43 + m_Metrics: + m_Width: 48 + m_Height: 59 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 62 + m_GlyphRect: + m_X: 495 + m_Y: 407 + m_Width: 48 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 44 + m_Metrics: + m_Width: 9 + m_Height: 59 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 552 + m_Y: 919 + m_Width: 9 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 45 + m_Metrics: + m_Width: 36 + m_Height: 60 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 43 + m_GlyphRect: + m_X: 797 + m_Y: 569 + m_Width: 36 + m_Height: 60 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 46 + m_Metrics: + m_Width: 50 + m_Height: 59 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 57 + m_GlyphRect: + m_X: 458 + m_Y: 326 + m_Width: 50 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 47 + m_Metrics: + m_Width: 39 + m_Height: 59 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 497 + m_Y: 816 + m_Width: 39 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 48 + m_Metrics: + m_Width: 59 + m_Height: 59 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 71 + m_GlyphRect: + m_X: 97 + m_Y: 955 + m_Width: 59 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 49 + m_Metrics: + m_Width: 48 + m_Height: 59 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 62 + m_GlyphRect: + m_X: 562 + m_Y: 408 + m_Width: 48 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 50 + m_Metrics: + m_Width: 59 + m_Height: 61 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 67 + m_GlyphRect: + m_X: 583 + m_Y: 89 + m_Width: 59 + m_Height: 61 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 51 + m_Metrics: + m_Width: 46 + m_Height: 59 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 57 + m_GlyphRect: + m_X: 669 + m_Y: 491 + m_Width: 46 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 52 + m_Metrics: + m_Width: 59 + m_Height: 76 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 67 + m_GlyphRect: + m_X: 10 + m_Y: 103 + m_Width: 59 + m_Height: 76 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 53 + m_Metrics: + m_Width: 52 + m_Height: 59 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 62 + m_GlyphRect: + m_X: 461 + m_Y: 248 + m_Width: 52 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 54 + m_Metrics: + m_Width: 51 + m_Height: 61 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 57 + m_GlyphRect: + m_X: 288 + m_Y: 273 + m_Width: 51 + m_Height: 61 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 55 + m_Metrics: + m_Width: 50 + m_Height: 59 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 52 + m_GlyphRect: + m_X: 527 + m_Y: 329 + m_Width: 50 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 56 + m_Metrics: + m_Width: 50 + m_Height: 60 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 62 + m_GlyphRect: + m_X: 655 + m_Y: 330 + m_Width: 50 + m_Height: 60 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 57 + m_Metrics: + m_Width: 57 + m_Height: 59 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 57 + m_GlyphRect: + m_X: 273 + m_Y: 195 + m_Width: 57 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 58 + m_Metrics: + m_Width: 85 + m_Height: 59 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 85 + m_GlyphRect: + m_X: 103 + m_Y: 10 + m_Width: 85 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 59 + m_Metrics: + m_Width: 56 + m_Height: 59 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 58 + m_GlyphRect: + m_X: 175 + m_Y: 955 + m_Width: 56 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 60 + m_Metrics: + m_Width: 54 + m_Height: 59 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 56 + m_GlyphRect: + m_X: 582 + m_Y: 169 + m_Width: 54 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 61 + m_Metrics: + m_Width: 49 + m_Height: 59 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 53 + m_GlyphRect: + m_X: 427 + m_Y: 404 + m_Width: 49 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 62 + m_Metrics: + m_Width: 18 + m_Height: 80 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 232 + m_Y: 671 + m_Width: 18 + m_Height: 80 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 63 + m_Metrics: + m_Width: 24 + m_Height: 63 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 375 + m_Y: 951 + m_Width: 24 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 64 + m_Metrics: + m_Width: 18 + m_Height: 80 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 223 + m_Y: 393 + m_Width: 18 + m_Height: 80 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 65 + m_Metrics: + m_Width: 38 + m_Height: 31 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 38 + m_GlyphRect: + m_X: 630 + m_Y: 870 + m_Width: 38 + m_Height: 31 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 66 + m_Metrics: + m_Width: 51 + m_Height: 6 + m_HorizontalBearingX: -2 + m_HorizontalBearingY: -12 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 497 + m_Y: 894 + m_Width: 51 + m_Height: 6 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 67 + m_Metrics: + m_Width: 19 + m_Height: 13 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 63 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 456 + m_Y: 997 + m_Width: 19 + m_Height: 13 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 68 + m_Metrics: + m_Width: 45 + m_Height: 47 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 669 + m_Y: 648 + m_Width: 45 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 69 + m_Metrics: + m_Width: 40 + m_Height: 63 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 738 + m_Y: 409 + m_Width: 40 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 70 + m_Metrics: + m_Width: 38 + m_Height: 47 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 43 + m_GlyphRect: + m_X: 908 + m_Y: 579 + m_Width: 38 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 71 + m_Metrics: + m_Width: 40 + m_Height: 63 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 797 + m_Y: 403 + m_Width: 40 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 72 + m_Metrics: + m_Width: 42 + m_Height: 47 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 785 + m_Y: 337 + m_Width: 42 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 73 + m_Metrics: + m_Width: 25 + m_Height: 62 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 25 + m_GlyphRect: + m_X: 538 + m_Y: 168 + m_Width: 25 + m_Height: 62 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 74 + m_Metrics: + m_Width: 40 + m_Height: 64 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 86 + m_Y: 872 + m_Width: 40 + m_Height: 64 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 75 + m_Metrics: + m_Width: 38 + m_Height: 62 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 430 + m_Y: 666 + m_Width: 38 + m_Height: 62 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 76 + m_Metrics: + m_Width: 9 + m_Height: 62 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 19 + m_GlyphRect: + m_X: 852 + m_Y: 567 + m_Width: 9 + m_Height: 62 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 77 + m_Metrics: + m_Width: 17 + m_Height: 80 + m_HorizontalBearingX: -3 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 20 + m_GlyphRect: + m_X: 145 + m_Y: 773 + m_Width: 17 + m_Height: 80 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 78 + m_Metrics: + m_Width: 40 + m_Height: 62 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 856 + m_Y: 403 + m_Width: 40 + m_Height: 62 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 79 + m_Metrics: + m_Width: 9 + m_Height: 62 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 19 + m_GlyphRect: + m_X: 880 + m_Y: 564 + m_Width: 9 + m_Height: 62 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 80 + m_Metrics: + m_Width: 64 + m_Height: 46 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 74 + m_GlyphRect: + m_X: 378 + m_Y: 222 + m_Width: 64 + m_Height: 46 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 81 + m_Metrics: + m_Width: 38 + m_Height: 46 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 630 + m_Y: 805 + m_Width: 38 + m_Height: 46 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 82 + m_Metrics: + m_Width: 42 + m_Height: 47 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 972 + m_Y: 264 + m_Width: 42 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 83 + m_Metrics: + m_Width: 40 + m_Height: 64 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 145 + m_Y: 872 + m_Width: 40 + m_Height: 64 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 84 + m_Metrics: + m_Width: 40 + m_Height: 64 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 329 + m_Y: 666 + m_Width: 40 + m_Height: 64 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 85 + m_Metrics: + m_Width: 23 + m_Height: 46 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 926 + m_Y: 816 + m_Width: 23 + m_Height: 46 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 86 + m_Metrics: + m_Width: 38 + m_Height: 47 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 43 + m_GlyphRect: + m_X: 956 + m_Y: 740 + m_Width: 38 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 87 + m_Metrics: + m_Width: 23 + m_Height: 56 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 55 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 388 + m_Y: 672 + m_Width: 23 + m_Height: 56 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 88 + m_Metrics: + m_Width: 38 + m_Height: 46 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 495 + m_Y: 919 + m_Width: 38 + m_Height: 46 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 89 + m_Metrics: + m_Width: 43 + m_Height: 45 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 43 + m_GlyphRect: + m_X: 226 + m_Y: 329 + m_Width: 43 + m_Height: 45 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 90 + m_Metrics: + m_Width: 63 + m_Height: 45 + m_HorizontalBearingX: -1 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 61 + m_GlyphRect: + m_X: 655 + m_Y: 188 + m_Width: 63 + m_Height: 45 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 91 + m_Metrics: + m_Width: 43 + m_Height: 45 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 43 + m_GlyphRect: + m_X: 737 + m_Y: 188 + m_Width: 43 + m_Height: 45 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 92 + m_Metrics: + m_Width: 41 + m_Height: 63 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 41 + m_GlyphRect: + m_X: 609 + m_Y: 640 + m_Width: 41 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 93 + m_Metrics: + m_Width: 35 + m_Height: 45 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 42 + m_GlyphRect: + m_X: 968 + m_Y: 806 + m_Width: 35 + m_Height: 45 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 94 + m_Metrics: + m_Width: 27 + m_Height: 80 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 164 + m_Y: 113 + m_Width: 27 + m_Height: 80 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 95 + m_Metrics: + m_Width: 8 + m_Height: 80 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 22 + m_GlyphRect: + m_X: 181 + m_Y: 772 + m_Width: 8 + m_Height: 80 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 96 + m_Metrics: + m_Width: 27 + m_Height: 80 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 227 + m_Y: 182 + m_Width: 27 + m_Height: 80 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 97 + m_Metrics: + m_Width: 44 + m_Height: 11 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 34 + m_HorizontalAdvance: 50 + m_GlyphRect: + m_X: 333 + m_Y: 832 + m_Width: 44 + m_Height: 11 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 98 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 99 + m_Metrics: + m_Width: 10 + m_Height: 59 + m_HorizontalBearingX: 9 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 349 + m_Y: 195 + m_Width: 10 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 100 + m_Metrics: + m_Width: 38 + m_Height: 60 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 915 + m_Y: 422 + m_Width: 38 + m_Height: 60 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 101 + m_Metrics: + m_Width: 45 + m_Height: 60 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 669 + m_Y: 569 + m_Width: 45 + m_Height: 60 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 102 + m_Metrics: + m_Width: 40 + m_Height: 40 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 733 + m_Y: 807 + m_Width: 40 + m_Height: 40 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 103 + m_Metrics: + m_Width: 50 + m_Height: 59 + m_HorizontalBearingX: -1 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 358 + m_Y: 357 + m_Width: 50 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 104 + m_Metrics: + m_Width: 8 + m_Height: 80 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 22 + m_GlyphRect: + m_X: 306 + m_Y: 766 + m_Width: 8 + m_Height: 80 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 105 + m_Metrics: + m_Width: 40 + m_Height: 69 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 223 + m_Y: 492 + m_Width: 40 + m_Height: 69 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 106 + m_Metrics: + m_Width: 25 + m_Height: 8 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 931 + m_Y: 961 + m_Width: 25 + m_Height: 8 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 107 + m_Metrics: + m_Width: 61 + m_Height: 61 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 63 + m_GlyphRect: + m_X: 277 + m_Y: 90 + m_Width: 61 + m_Height: 61 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 108 + m_Metrics: + m_Width: 32 + m_Height: 33 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 784 + m_Y: 870 + m_Width: 32 + m_Height: 33 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 109 + m_Metrics: + m_Width: 42 + m_Height: 34 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 972 + m_Y: 454 + m_Width: 42 + m_Height: 34 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 110 + m_Metrics: + m_Width: 42 + m_Height: 24 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 32 + m_HorizontalAdvance: 50 + m_GlyphRect: + m_X: 972 + m_Y: 560 + m_Width: 42 + m_Height: 24 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 111 + m_Metrics: + m_Width: 23 + m_Height: 7 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 26 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 583 + m_Y: 890 + m_Width: 23 + m_Height: 7 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 112 + m_Metrics: + m_Width: 61 + m_Height: 61 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 63 + m_GlyphRect: + m_X: 357 + m_Y: 90 + m_Width: 61 + m_Height: 61 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 113 + m_Metrics: + m_Width: 50 + m_Height: 4 + m_HorizontalBearingX: -1 + m_HorizontalBearingY: 65 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 862 + m_Y: 961 + m_Width: 50 + m_Height: 4 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 114 + m_Metrics: + m_Width: 24 + m_Height: 24 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 34 + m_GlyphRect: + m_X: 687 + m_Y: 906 + m_Width: 24 + m_Height: 24 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 115 + m_Metrics: + m_Width: 43 + m_Height: 52 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 52 + m_HorizontalAdvance: 47 + m_GlyphRect: + m_X: 607 + m_Y: 487 + m_Width: 43 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 116 + m_Metrics: + m_Width: 27 + m_Height: 36 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 792 + m_Y: 815 + m_Width: 27 + m_Height: 36 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 117 + m_Metrics: + m_Width: 27 + m_Height: 37 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 687 + m_Y: 796 + m_Width: 27 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 118 + m_Metrics: + m_Width: 19 + m_Height: 13 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 63 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 545 + m_Y: 997 + m_Width: 19 + m_Height: 13 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 119 + m_Metrics: + m_Width: 43 + m_Height: 63 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 50 + m_GlyphRect: + m_X: 593 + m_Y: 247 + m_Width: 43 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 120 + m_Metrics: + m_Width: 40 + m_Height: 70 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 46 + m_GlyphRect: + m_X: 208 + m_Y: 770 + m_Width: 40 + m_Height: 70 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 121 + m_Metrics: + m_Width: 10 + m_Height: 10 + m_HorizontalBearingX: 9 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 996 + m_Y: 932 + m_Width: 10 + m_Height: 10 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 122 + m_Metrics: + m_Width: 16 + m_Height: 18 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 622 + m_Y: 958 + m_Width: 16 + m_Height: 18 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 123 + m_Metrics: + m_Width: 24 + m_Height: 35 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 687 + m_Y: 852 + m_Width: 24 + m_Height: 35 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 124 + m_Metrics: + m_Width: 29 + m_Height: 33 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 835 + m_Y: 877 + m_Width: 29 + m_Height: 33 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 125 + m_Metrics: + m_Width: 42 + m_Height: 34 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 972 + m_Y: 507 + m_Width: 42 + m_Height: 34 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 126 + m_Metrics: + m_Width: 67 + m_Height: 59 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 72 + m_GlyphRect: + m_X: 498 + m_Y: 10 + m_Width: 67 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 127 + m_Metrics: + m_Width: 68 + m_Height: 59 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 72 + m_GlyphRect: + m_X: 10 + m_Y: 955 + m_Width: 68 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 128 + m_Metrics: + m_Width: 66 + m_Height: 60 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 72 + m_GlyphRect: + m_X: 584 + m_Y: 10 + m_Width: 66 + m_Height: 60 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 129 + m_Metrics: + m_Width: 43 + m_Height: 60 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 53 + m_GlyphRect: + m_X: 903 + m_Y: 183 + m_Width: 43 + m_Height: 60 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 130 + m_Metrics: + m_Width: 57 + m_Height: 74 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 74 + m_HorizontalAdvance: 57 + m_GlyphRect: + m_X: 829 + m_Y: 10 + m_Width: 57 + m_Height: 74 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 131 + m_Metrics: + m_Width: 57 + m_Height: 74 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 74 + m_HorizontalAdvance: 57 + m_GlyphRect: + m_X: 905 + m_Y: 10 + m_Width: 57 + m_Height: 74 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 132 + m_Metrics: + m_Width: 57 + m_Height: 75 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 75 + m_HorizontalAdvance: 57 + m_GlyphRect: + m_X: 10 + m_Y: 673 + m_Width: 57 + m_Height: 75 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 133 + m_Metrics: + m_Width: 57 + m_Height: 75 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 75 + m_HorizontalAdvance: 57 + m_GlyphRect: + m_X: 10 + m_Y: 767 + m_Width: 57 + m_Height: 75 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 134 + m_Metrics: + m_Width: 57 + m_Height: 72 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 72 + m_HorizontalAdvance: 57 + m_GlyphRect: + m_X: 88 + m_Y: 113 + m_Width: 57 + m_Height: 72 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 135 + m_Metrics: + m_Width: 57 + m_Height: 75 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 75 + m_HorizontalAdvance: 57 + m_GlyphRect: + m_X: 10 + m_Y: 861 + m_Width: 57 + m_Height: 75 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 136 + m_Metrics: + m_Width: 82 + m_Height: 59 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 86 + m_GlyphRect: + m_X: 207 + m_Y: 10 + m_Width: 82 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 137 + m_Metrics: + m_Width: 55 + m_Height: 78 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 62 + m_GlyphRect: + m_X: 10 + m_Y: 576 + m_Width: 55 + m_Height: 78 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 138 + m_Metrics: + m_Width: 47 + m_Height: 74 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 74 + m_HorizontalAdvance: 57 + m_GlyphRect: + m_X: 84 + m_Y: 580 + m_Width: 47 + m_Height: 74 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 139 + m_Metrics: + m_Width: 47 + m_Height: 74 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 74 + m_HorizontalAdvance: 57 + m_GlyphRect: + m_X: 157 + m_Y: 487 + m_Width: 47 + m_Height: 74 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 140 + m_Metrics: + m_Width: 47 + m_Height: 75 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 75 + m_HorizontalAdvance: 57 + m_GlyphRect: + m_X: 157 + m_Y: 393 + m_Width: 47 + m_Height: 75 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 141 + m_Metrics: + m_Width: 47 + m_Height: 72 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 72 + m_HorizontalAdvance: 57 + m_GlyphRect: + m_X: 150 + m_Y: 580 + m_Width: 47 + m_Height: 72 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 142 + m_Metrics: + m_Width: 19 + m_Height: 74 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 74 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 227 + m_Y: 859 + m_Width: 19 + m_Height: 74 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 143 + m_Metrics: + m_Width: 19 + m_Height: 74 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 74 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 265 + m_Y: 859 + m_Width: 19 + m_Height: 74 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 144 + m_Metrics: + m_Width: 28 + m_Height: 75 + m_HorizontalBearingX: -2 + m_HorizontalBearingY: 75 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 981 + m_Y: 10 + m_Width: 28 + m_Height: 75 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 145 + m_Metrics: + m_Width: 25 + m_Height: 72 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 72 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 216 + m_Y: 580 + m_Width: 25 + m_Height: 72 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 146 + m_Metrics: + m_Width: 58 + m_Height: 59 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 62 + m_GlyphRect: + m_X: 751 + m_Y: 102 + m_Width: 58 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 147 + m_Metrics: + m_Width: 48 + m_Height: 75 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 75 + m_HorizontalAdvance: 62 + m_GlyphRect: + m_X: 210 + m_Y: 88 + m_Width: 48 + m_Height: 75 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 148 + m_Metrics: + m_Width: 59 + m_Height: 75 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 74 + m_HorizontalAdvance: 67 + m_GlyphRect: + m_X: 10 + m_Y: 388 + m_Width: 59 + m_Height: 75 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 149 + m_Metrics: + m_Width: 59 + m_Height: 75 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 74 + m_HorizontalAdvance: 67 + m_GlyphRect: + m_X: 10 + m_Y: 482 + m_Width: 59 + m_Height: 75 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 150 + m_Metrics: + m_Width: 59 + m_Height: 76 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 75 + m_HorizontalAdvance: 67 + m_GlyphRect: + m_X: 10 + m_Y: 198 + m_Width: 59 + m_Height: 76 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 151 + m_Metrics: + m_Width: 59 + m_Height: 76 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 75 + m_HorizontalAdvance: 67 + m_GlyphRect: + m_X: 10 + m_Y: 293 + m_Width: 59 + m_Height: 76 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 152 + m_Metrics: + m_Width: 59 + m_Height: 73 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 72 + m_HorizontalAdvance: 67 + m_GlyphRect: + m_X: 751 + m_Y: 10 + m_Width: 59 + m_Height: 73 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 153 + m_Metrics: + m_Width: 40 + m_Height: 39 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 50 + m_GlyphRect: + m_X: 838 + m_Y: 819 + m_Width: 40 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 154 + m_Metrics: + m_Width: 63 + m_Height: 65 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 67 + m_GlyphRect: + m_X: 669 + m_Y: 10 + m_Width: 63 + m_Height: 65 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 155 + m_Metrics: + m_Width: 50 + m_Height: 75 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 74 + m_HorizontalAdvance: 62 + m_GlyphRect: + m_X: 88 + m_Y: 392 + m_Width: 50 + m_Height: 75 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 156 + m_Metrics: + m_Width: 50 + m_Height: 75 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 74 + m_HorizontalAdvance: 62 + m_GlyphRect: + m_X: 88 + m_Y: 486 + m_Width: 50 + m_Height: 75 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 157 + m_Metrics: + m_Width: 50 + m_Height: 76 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 75 + m_HorizontalAdvance: 62 + m_GlyphRect: + m_X: 88 + m_Y: 297 + m_Width: 50 + m_Height: 76 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 158 + m_Metrics: + m_Width: 50 + m_Height: 73 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 72 + m_HorizontalAdvance: 62 + m_GlyphRect: + m_X: 157 + m_Y: 301 + m_Width: 50 + m_Height: 73 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 159 + m_Metrics: + m_Width: 54 + m_Height: 74 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 74 + m_HorizontalAdvance: 56 + m_GlyphRect: + m_X: 88 + m_Y: 204 + m_Width: 54 + m_Height: 74 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 160 + m_Metrics: + m_Width: 46 + m_Height: 59 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 57 + m_GlyphRect: + m_X: 734 + m_Y: 491 + m_Width: 46 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 161 + m_Metrics: + m_Width: 44 + m_Height: 63 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 53 + m_GlyphRect: + m_X: 545 + m_Y: 564 + m_Width: 44 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 162 + m_Metrics: + m_Width: 45 + m_Height: 64 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 63 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 324 + m_Y: 583 + m_Width: 45 + m_Height: 64 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 163 + m_Metrics: + m_Width: 45 + m_Height: 64 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 63 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 333 + m_Y: 749 + m_Width: 45 + m_Height: 64 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 164 + m_Metrics: + m_Width: 45 + m_Height: 63 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 478 + m_Y: 485 + m_Width: 45 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 165 + m_Metrics: + m_Width: 45 + m_Height: 62 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 61 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 250 + m_Y: 952 + m_Width: 45 + m_Height: 62 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 166 + m_Metrics: + m_Width: 45 + m_Height: 60 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 733 + m_Y: 569 + m_Width: 45 + m_Height: 60 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 167 + m_Metrics: + m_Width: 45 + m_Height: 71 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 70 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 260 + m_Y: 580 + m_Width: 45 + m_Height: 71 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 168 + m_Metrics: + m_Width: 71 + m_Height: 47 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 76 + m_GlyphRect: + m_X: 661 + m_Y: 94 + m_Width: 71 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 169 + m_Metrics: + m_Width: 38 + m_Height: 64 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 43 + m_GlyphRect: + m_X: 427 + m_Y: 583 + m_Width: 38 + m_Height: 64 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 170 + m_Metrics: + m_Width: 42 + m_Height: 64 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 63 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 436 + m_Y: 747 + m_Width: 42 + m_Height: 64 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 171 + m_Metrics: + m_Width: 42 + m_Height: 64 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 63 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 484 + m_Y: 567 + m_Width: 42 + m_Height: 64 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 172 + m_Metrics: + m_Width: 42 + m_Height: 63 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 608 + m_Y: 558 + m_Width: 42 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 173 + m_Metrics: + m_Width: 42 + m_Height: 60 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 851 + m_Y: 262 + m_Width: 42 + m_Height: 60 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 174 + m_Metrics: + m_Width: 19 + m_Height: 63 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 63 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 838 + m_Y: 737 + m_Width: 19 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 175 + m_Metrics: + m_Width: 19 + m_Height: 63 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 63 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 418 + m_Y: 951 + m_Width: 19 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 176 + m_Metrics: + m_Width: 29 + m_Height: 62 + m_HorizontalBearingX: -2 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 980 + m_Y: 104 + m_Width: 29 + m_Height: 62 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 177 + m_Metrics: + m_Width: 25 + m_Height: 59 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 794 + m_Y: 737 + m_Width: 25 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 178 + m_Metrics: + m_Width: 42 + m_Height: 64 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 63 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 487 + m_Y: 650 + m_Width: 42 + m_Height: 64 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 179 + m_Metrics: + m_Width: 38 + m_Height: 61 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 61 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 915 + m_Y: 342 + m_Width: 38 + m_Height: 61 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 180 + m_Metrics: + m_Width: 42 + m_Height: 64 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 63 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 548 + m_Y: 646 + m_Width: 42 + m_Height: 64 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 181 + m_Metrics: + m_Width: 42 + m_Height: 64 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 63 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 497 + m_Y: 733 + m_Width: 42 + m_Height: 64 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 182 + m_Metrics: + m_Width: 42 + m_Height: 63 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 672 + m_Y: 714 + m_Width: 42 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 183 + m_Metrics: + m_Width: 42 + m_Height: 62 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 61 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 314 + m_Y: 952 + m_Width: 42 + m_Height: 62 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 184 + m_Metrics: + m_Width: 42 + m_Height: 60 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 972 + m_Y: 185 + m_Width: 42 + m_Height: 60 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 185 + m_Metrics: + m_Width: 43 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 47 + m_GlyphRect: + m_X: 965 + m_Y: 603 + m_Width: 43 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 186 + m_Metrics: + m_Width: 50 + m_Height: 49 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 47 + m_HorizontalAdvance: 53 + m_GlyphRect: + m_X: 357 + m_Y: 435 + m_Width: 50 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 187 + m_Metrics: + m_Width: 38 + m_Height: 64 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 63 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 558 + m_Y: 729 + m_Width: 38 + m_Height: 64 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 188 + m_Metrics: + m_Width: 38 + m_Height: 64 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 63 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 615 + m_Y: 722 + m_Width: 38 + m_Height: 64 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 189 + m_Metrics: + m_Width: 38 + m_Height: 63 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 799 + m_Y: 485 + m_Width: 38 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 190 + m_Metrics: + m_Width: 38 + m_Height: 60 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 956 + m_Y: 661 + m_Width: 38 + m_Height: 60 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 191 + m_Metrics: + m_Width: 41 + m_Height: 81 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 63 + m_HorizontalAdvance: 41 + m_GlyphRect: + m_X: 86 + m_Y: 673 + m_Width: 41 + m_Height: 81 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 192 + m_Metrics: + m_Width: 40 + m_Height: 80 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 86 + m_Y: 773 + m_Width: 40 + m_Height: 80 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 193 + m_Metrics: + m_Width: 41 + m_Height: 77 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 41 + m_GlyphRect: + m_X: 269 + m_Y: 670 + m_Width: 41 + m_Height: 77 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1997 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 43 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1998 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 86 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1999 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 43 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2000 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 86 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2001 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2002 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 22 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2003 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 14 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2004 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2005 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2006 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2007 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 7 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2008 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 0 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2009 + m_Metrics: + m_Width: 4 + m_Height: 65 + m_HorizontalBearingX: -2 + m_HorizontalBearingY: 54 + m_HorizontalAdvance: 0 + m_GlyphRect: + m_X: 204 + m_Y: 871 + m_Width: 4 + m_Height: 65 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2010 + m_Metrics: + m_Width: 20 + m_Height: 70 + m_HorizontalBearingX: -10 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 0 + m_GlyphRect: + m_X: 267 + m_Y: 770 + m_Width: 20 + m_Height: 70 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2011 + m_Metrics: + m_Width: 21 + m_Height: 70 + m_HorizontalBearingX: -2 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 0 + m_GlyphRect: + m_X: 260 + m_Y: 393 + m_Width: 21 + m_Height: 70 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2012 + m_Metrics: + m_Width: 21 + m_Height: 70 + m_HorizontalBearingX: -19 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 0 + m_GlyphRect: + m_X: 282 + m_Y: 482 + m_Width: 21 + m_Height: 70 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2013 + m_Metrics: + m_Width: 48 + m_Height: 6 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 25 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 862 + m_Y: 936 + m_Width: 48 + m_Height: 6 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2014 + m_Metrics: + m_Width: 48 + m_Height: 6 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 25 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 929 + m_Y: 936 + m_Width: 48 + m_Height: 6 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2015 + m_Metrics: + m_Width: 86 + m_Height: 6 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 25 + m_HorizontalAdvance: 86 + m_GlyphRect: + m_X: 103 + m_Y: 88 + m_Width: 86 + m_Height: 6 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2016 + m_Metrics: + m_Width: 86 + m_Height: 6 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 25 + m_HorizontalAdvance: 86 + m_GlyphRect: + m_X: 277 + m_Y: 170 + m_Width: 86 + m_Height: 6 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2017 + m_Metrics: + m_Width: 22 + m_Height: 62 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 36 + m_GlyphRect: + m_X: 862 + m_Y: 181 + m_Width: 22 + m_Height: 62 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2018 + m_Metrics: + m_Width: 51 + m_Height: 15 + m_HorizontalBearingX: -2 + m_HorizontalBearingY: -4 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 288 + m_Y: 353 + m_Width: 51 + m_Height: 15 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2019 + m_Metrics: + m_Width: 9 + m_Height: 19 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 19 + m_GlyphRect: + m_X: 612 + m_Y: 995 + m_Width: 9 + m_Height: 19 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2020 + m_Metrics: + m_Width: 9 + m_Height: 19 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 19 + m_GlyphRect: + m_X: 640 + m_Y: 995 + m_Width: 9 + m_Height: 19 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2021 + m_Metrics: + m_Width: 9 + m_Height: 19 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 8 + m_HorizontalAdvance: 19 + m_GlyphRect: + m_X: 1002 + m_Y: 961 + m_Width: 9 + m_Height: 19 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2022 + m_Metrics: + m_Width: 9 + m_Height: 19 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 19 + m_GlyphRect: + m_X: 686 + m_Y: 949 + m_Width: 9 + m_Height: 19 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2023 + m_Metrics: + m_Width: 23 + m_Height: 19 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 967 + m_Y: 894 + m_Width: 23 + m_Height: 19 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2024 + m_Metrics: + m_Width: 23 + m_Height: 19 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 580 + m_Y: 916 + m_Width: 23 + m_Height: 19 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2025 + m_Metrics: + m_Width: 23 + m_Height: 19 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 8 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 580 + m_Y: 954 + m_Width: 23 + m_Height: 19 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2026 + m_Metrics: + m_Width: 22 + m_Height: 19 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 622 + m_Y: 920 + m_Width: 22 + m_Height: 19 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2027 + m_Metrics: + m_Width: 38 + m_Height: 68 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 303 + m_Y: 865 + m_Width: 38 + m_Height: 68 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2028 + m_Metrics: + m_Width: 38 + m_Height: 68 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 300 + m_Y: 387 + m_Width: 38 + m_Height: 68 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2029 + m_Metrics: + m_Width: 24 + m_Height: 23 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 30 + m_GlyphRect: + m_X: 819 + m_Y: 929 + m_Width: 24 + m_Height: 23 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2030 + m_Metrics: + m_Width: 64 + m_Height: 9 + m_HorizontalBearingX: 11 + m_HorizontalBearingY: 9 + m_HorizontalAdvance: 86 + m_GlyphRect: + m_X: 661 + m_Y: 160 + m_Width: 64 + m_Height: 9 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2031 + m_Metrics: + m_Width: 21 + m_Height: 63 + m_HorizontalBearingX: -2 + m_HorizontalBearingY: 52 + m_HorizontalAdvance: 0 + m_GlyphRect: + m_X: 876 + m_Y: 737 + m_Width: 21 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2032 + m_Metrics: + m_Width: 21 + m_Height: 63 + m_HorizontalBearingX: -19 + m_HorizontalBearingY: 52 + m_HorizontalAdvance: 0 + m_GlyphRect: + m_X: 916 + m_Y: 734 + m_Width: 21 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2033 + m_Metrics: + m_Width: 20 + m_Height: 70 + m_HorizontalBearingX: -10 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 0 + m_GlyphRect: + m_X: 388 + m_Y: 583 + m_Width: 20 + m_Height: 70 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2034 + m_Metrics: + m_Width: 20 + m_Height: 70 + m_HorizontalBearingX: -10 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 0 + m_GlyphRect: + m_X: 397 + m_Y: 747 + m_Width: 20 + m_Height: 70 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2035 + m_Metrics: + m_Width: 20 + m_Height: 70 + m_HorizontalBearingX: -10 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 0 + m_GlyphRect: + m_X: 360 + m_Y: 862 + m_Width: 20 + m_Height: 70 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2036 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2037 + m_Metrics: + m_Width: 82 + m_Height: 61 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 86 + m_GlyphRect: + m_X: 308 + m_Y: 10 + m_Width: 82 + m_Height: 61 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2038 + m_Metrics: + m_Width: 12 + m_Height: 22 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 16 + m_GlyphRect: + m_X: 427 + m_Y: 363 + m_Width: 12 + m_Height: 22 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2039 + m_Metrics: + m_Width: 26 + m_Height: 22 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 30 + m_GlyphRect: + m_X: 730 + m_Y: 907 + m_Width: 26 + m_Height: 22 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2040 + m_Metrics: + m_Width: 35 + m_Height: 22 + m_HorizontalBearingX: -4 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 30 + m_GlyphRect: + m_X: 730 + m_Y: 866 + m_Width: 35 + m_Height: 22 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2041 + m_Metrics: + m_Width: 23 + m_Height: 34 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 883 + m_Y: 883 + m_Width: 23 + m_Height: 34 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2042 + m_Metrics: + m_Width: 23 + m_Height: 34 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 925 + m_Y: 883 + m_Width: 23 + m_Height: 34 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2043 + m_Metrics: + m_Width: 28 + m_Height: 59 + m_HorizontalBearingX: 9 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 43 + m_GlyphRect: + m_X: 583 + m_Y: 812 + m_Width: 28 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2044 + m_Metrics: + m_Width: 35 + m_Height: 5 + m_HorizontalBearingX: -3 + m_HorizontalBearingY: 68 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 968 + m_Y: 870 + m_Width: 35 + m_Height: 5 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2045 + m_Metrics: + m_Width: 44 + m_Height: 59 + m_HorizontalBearingX: -18 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 14 + m_GlyphRect: + m_X: 799 + m_Y: 181 + m_Width: 44 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2046 + m_Metrics: + m_Width: 10 + m_Height: 62 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 322 + m_Y: 474 + m_Width: 10 + m_Height: 62 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2047 + m_Metrics: + m_Width: 20 + m_Height: 70 + m_HorizontalBearingX: -10 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 0 + m_GlyphRect: + m_X: 399 + m_Y: 836 + m_Width: 20 + m_Height: 70 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2048 + m_Metrics: + m_Width: 20 + m_Height: 70 + m_HorizontalBearingX: -10 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 0 + m_GlyphRect: + m_X: 794 + m_Y: 648 + m_Width: 20 + m_Height: 70 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2049 + m_Metrics: + m_Width: 22 + m_Height: 70 + m_HorizontalBearingX: -11 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 0 + m_GlyphRect: + m_X: 833 + m_Y: 648 + m_Width: 22 + m_Height: 70 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2050 + m_Metrics: + m_Width: 22 + m_Height: 70 + m_HorizontalBearingX: -11 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 0 + m_GlyphRect: + m_X: 874 + m_Y: 648 + m_Width: 22 + m_Height: 70 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2051 + m_Metrics: + m_Width: 22 + m_Height: 70 + m_HorizontalBearingX: -11 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 0 + m_GlyphRect: + m_X: 915 + m_Y: 645 + m_Width: 22 + m_Height: 70 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2052 + m_Metrics: + m_Width: 20 + m_Height: 70 + m_HorizontalBearingX: -10 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 0 + m_GlyphRect: + m_X: 456 + m_Y: 908 + m_Width: 20 + m_Height: 70 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2075 + m_Metrics: + m_Width: 47 + m_Height: 61 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 351 + m_Y: 503 + m_Width: 47 + m_Height: 61 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2090 + m_Metrics: + m_Width: 70 + m_Height: 33 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 86 + m_GlyphRect: + m_X: 382 + m_Y: 170 + m_Width: 70 + m_Height: 33 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 2179 + m_Metrics: + m_Width: 52 + m_Height: 51 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 51 + m_HorizontalAdvance: 52 + m_GlyphRect: + m_X: 358 + m_Y: 287 + m_Width: 52 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + m_CharacterTable: + - m_ElementType: 1 + m_Unicode: 32 + m_GlyphIndex: 3 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 33 + m_GlyphIndex: 4 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 34 + m_GlyphIndex: 5 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 35 + m_GlyphIndex: 6 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 36 + m_GlyphIndex: 7 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 37 + m_GlyphIndex: 8 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 38 + m_GlyphIndex: 9 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 39 + m_GlyphIndex: 10 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 40 + m_GlyphIndex: 11 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 41 + m_GlyphIndex: 12 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 42 + m_GlyphIndex: 13 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 43 + m_GlyphIndex: 14 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 44 + m_GlyphIndex: 15 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 45 + m_GlyphIndex: 16 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 46 + m_GlyphIndex: 17 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 47 + m_GlyphIndex: 18 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 48 + m_GlyphIndex: 19 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 49 + m_GlyphIndex: 20 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 50 + m_GlyphIndex: 21 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 51 + m_GlyphIndex: 22 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 52 + m_GlyphIndex: 23 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 53 + m_GlyphIndex: 24 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 54 + m_GlyphIndex: 25 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 55 + m_GlyphIndex: 26 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 56 + m_GlyphIndex: 27 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 57 + m_GlyphIndex: 28 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 58 + m_GlyphIndex: 29 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 59 + m_GlyphIndex: 30 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 60 + m_GlyphIndex: 31 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 61 + m_GlyphIndex: 32 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 62 + m_GlyphIndex: 33 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 63 + m_GlyphIndex: 34 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 64 + m_GlyphIndex: 35 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65 + m_GlyphIndex: 36 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 66 + m_GlyphIndex: 37 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 67 + m_GlyphIndex: 38 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 68 + m_GlyphIndex: 39 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 69 + m_GlyphIndex: 40 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 70 + m_GlyphIndex: 41 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 71 + m_GlyphIndex: 42 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 72 + m_GlyphIndex: 43 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 73 + m_GlyphIndex: 44 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 74 + m_GlyphIndex: 45 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 75 + m_GlyphIndex: 46 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 76 + m_GlyphIndex: 47 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 77 + m_GlyphIndex: 48 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 78 + m_GlyphIndex: 49 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 79 + m_GlyphIndex: 50 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 80 + m_GlyphIndex: 51 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 81 + m_GlyphIndex: 52 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 82 + m_GlyphIndex: 53 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 83 + m_GlyphIndex: 54 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 84 + m_GlyphIndex: 55 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 85 + m_GlyphIndex: 56 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 86 + m_GlyphIndex: 57 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 87 + m_GlyphIndex: 58 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 88 + m_GlyphIndex: 59 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 89 + m_GlyphIndex: 60 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 90 + m_GlyphIndex: 61 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 91 + m_GlyphIndex: 62 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 92 + m_GlyphIndex: 63 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 93 + m_GlyphIndex: 64 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 94 + m_GlyphIndex: 65 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 95 + m_GlyphIndex: 66 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 96 + m_GlyphIndex: 67 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 97 + m_GlyphIndex: 68 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 98 + m_GlyphIndex: 69 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 99 + m_GlyphIndex: 70 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 100 + m_GlyphIndex: 71 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 101 + m_GlyphIndex: 72 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 102 + m_GlyphIndex: 73 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 103 + m_GlyphIndex: 74 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 104 + m_GlyphIndex: 75 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 105 + m_GlyphIndex: 76 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 106 + m_GlyphIndex: 77 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 107 + m_GlyphIndex: 78 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 108 + m_GlyphIndex: 79 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 109 + m_GlyphIndex: 80 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 110 + m_GlyphIndex: 81 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 111 + m_GlyphIndex: 82 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 112 + m_GlyphIndex: 83 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 113 + m_GlyphIndex: 84 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 114 + m_GlyphIndex: 85 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 115 + m_GlyphIndex: 86 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 116 + m_GlyphIndex: 87 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 117 + m_GlyphIndex: 88 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 118 + m_GlyphIndex: 89 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 119 + m_GlyphIndex: 90 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 120 + m_GlyphIndex: 91 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 121 + m_GlyphIndex: 92 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 122 + m_GlyphIndex: 93 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 123 + m_GlyphIndex: 94 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 124 + m_GlyphIndex: 95 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 125 + m_GlyphIndex: 96 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 126 + m_GlyphIndex: 97 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 160 + m_GlyphIndex: 98 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 161 + m_GlyphIndex: 99 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 162 + m_GlyphIndex: 100 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 163 + m_GlyphIndex: 101 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 164 + m_GlyphIndex: 102 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 165 + m_GlyphIndex: 103 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 166 + m_GlyphIndex: 104 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 167 + m_GlyphIndex: 105 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 168 + m_GlyphIndex: 106 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 169 + m_GlyphIndex: 107 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 170 + m_GlyphIndex: 108 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 171 + m_GlyphIndex: 109 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 172 + m_GlyphIndex: 110 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 173 + m_GlyphIndex: 111 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 174 + m_GlyphIndex: 112 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 175 + m_GlyphIndex: 113 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 176 + m_GlyphIndex: 114 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 177 + m_GlyphIndex: 115 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 178 + m_GlyphIndex: 116 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 179 + m_GlyphIndex: 117 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 180 + m_GlyphIndex: 118 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 181 + m_GlyphIndex: 119 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 182 + m_GlyphIndex: 120 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 183 + m_GlyphIndex: 121 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 184 + m_GlyphIndex: 122 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 185 + m_GlyphIndex: 123 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 186 + m_GlyphIndex: 124 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 187 + m_GlyphIndex: 125 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 188 + m_GlyphIndex: 126 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 189 + m_GlyphIndex: 127 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 190 + m_GlyphIndex: 128 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 191 + m_GlyphIndex: 129 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 192 + m_GlyphIndex: 130 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 193 + m_GlyphIndex: 131 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 194 + m_GlyphIndex: 132 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 195 + m_GlyphIndex: 133 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 196 + m_GlyphIndex: 134 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 197 + m_GlyphIndex: 135 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 198 + m_GlyphIndex: 136 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 199 + m_GlyphIndex: 137 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 200 + m_GlyphIndex: 138 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 201 + m_GlyphIndex: 139 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 202 + m_GlyphIndex: 140 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 203 + m_GlyphIndex: 141 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 204 + m_GlyphIndex: 142 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 205 + m_GlyphIndex: 143 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 206 + m_GlyphIndex: 144 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 207 + m_GlyphIndex: 145 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 208 + m_GlyphIndex: 146 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 209 + m_GlyphIndex: 147 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 210 + m_GlyphIndex: 148 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 211 + m_GlyphIndex: 149 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 212 + m_GlyphIndex: 150 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 213 + m_GlyphIndex: 151 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 214 + m_GlyphIndex: 152 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 215 + m_GlyphIndex: 153 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 216 + m_GlyphIndex: 154 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 217 + m_GlyphIndex: 155 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 218 + m_GlyphIndex: 156 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 219 + m_GlyphIndex: 157 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 220 + m_GlyphIndex: 158 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 221 + m_GlyphIndex: 159 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 222 + m_GlyphIndex: 160 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 223 + m_GlyphIndex: 161 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 224 + m_GlyphIndex: 162 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 225 + m_GlyphIndex: 163 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 226 + m_GlyphIndex: 164 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 227 + m_GlyphIndex: 165 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 228 + m_GlyphIndex: 166 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 229 + m_GlyphIndex: 167 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 230 + m_GlyphIndex: 168 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 231 + m_GlyphIndex: 169 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 232 + m_GlyphIndex: 170 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 233 + m_GlyphIndex: 171 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 234 + m_GlyphIndex: 172 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 235 + m_GlyphIndex: 173 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 236 + m_GlyphIndex: 174 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 237 + m_GlyphIndex: 175 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 238 + m_GlyphIndex: 176 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 239 + m_GlyphIndex: 177 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 240 + m_GlyphIndex: 178 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 241 + m_GlyphIndex: 179 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 242 + m_GlyphIndex: 180 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 243 + m_GlyphIndex: 181 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 244 + m_GlyphIndex: 182 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 245 + m_GlyphIndex: 183 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 246 + m_GlyphIndex: 184 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 247 + m_GlyphIndex: 185 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 248 + m_GlyphIndex: 186 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 249 + m_GlyphIndex: 187 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 250 + m_GlyphIndex: 188 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 251 + m_GlyphIndex: 189 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 252 + m_GlyphIndex: 190 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 253 + m_GlyphIndex: 191 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 254 + m_GlyphIndex: 192 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 255 + m_GlyphIndex: 193 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8192 + m_GlyphIndex: 1997 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8193 + m_GlyphIndex: 1998 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8194 + m_GlyphIndex: 1999 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8195 + m_GlyphIndex: 2000 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8196 + m_GlyphIndex: 2001 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8197 + m_GlyphIndex: 2002 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8198 + m_GlyphIndex: 2003 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8199 + m_GlyphIndex: 2004 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8200 + m_GlyphIndex: 2005 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8201 + m_GlyphIndex: 2006 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8202 + m_GlyphIndex: 2007 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8203 + m_GlyphIndex: 2008 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8204 + m_GlyphIndex: 2009 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8205 + m_GlyphIndex: 2010 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8206 + m_GlyphIndex: 2011 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8207 + m_GlyphIndex: 2012 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8210 + m_GlyphIndex: 2013 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8211 + m_GlyphIndex: 2014 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8212 + m_GlyphIndex: 2015 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8213 + m_GlyphIndex: 2016 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8214 + m_GlyphIndex: 2017 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8215 + m_GlyphIndex: 2018 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8216 + m_GlyphIndex: 2019 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8217 + m_GlyphIndex: 2020 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8218 + m_GlyphIndex: 2021 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8219 + m_GlyphIndex: 2022 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8220 + m_GlyphIndex: 2023 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8221 + m_GlyphIndex: 2024 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8222 + m_GlyphIndex: 2025 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8223 + m_GlyphIndex: 2026 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8224 + m_GlyphIndex: 2027 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8225 + m_GlyphIndex: 2028 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8226 + m_GlyphIndex: 2029 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8230 + m_GlyphIndex: 2030 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8234 + m_GlyphIndex: 2031 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8235 + m_GlyphIndex: 2032 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8236 + m_GlyphIndex: 2033 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8237 + m_GlyphIndex: 2034 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8238 + m_GlyphIndex: 2035 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8239 + m_GlyphIndex: 2036 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8240 + m_GlyphIndex: 2037 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8242 + m_GlyphIndex: 2038 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8243 + m_GlyphIndex: 2039 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8244 + m_GlyphIndex: 2040 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8249 + m_GlyphIndex: 2041 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8250 + m_GlyphIndex: 2042 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8252 + m_GlyphIndex: 2043 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8254 + m_GlyphIndex: 2044 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8260 + m_GlyphIndex: 2045 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8286 + m_GlyphIndex: 2046 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8298 + m_GlyphIndex: 2047 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8299 + m_GlyphIndex: 2048 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8300 + m_GlyphIndex: 2049 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8301 + m_GlyphIndex: 2050 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8302 + m_GlyphIndex: 2051 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8303 + m_GlyphIndex: 2052 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8364 + m_GlyphIndex: 2075 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8482 + m_GlyphIndex: 2090 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 9633 + m_GlyphIndex: 2179 + m_Scale: 1 + m_AtlasTextures: + - {fileID: 28684132378477856} + m_AtlasTextureIndex: 0 + m_UsedGlyphRects: + - m_X: 0 + m_Y: 0 + m_Width: 93 + m_Height: 93 + - m_X: 93 + m_Y: 0 + m_Width: 104 + m_Height: 78 + - m_X: 197 + m_Y: 0 + m_Width: 101 + m_Height: 78 + - m_X: 298 + m_Y: 0 + m_Width: 101 + m_Height: 80 + - m_X: 0 + m_Y: 93 + m_Width: 78 + m_Height: 95 + - m_X: 0 + m_Y: 188 + m_Width: 78 + m_Height: 95 + - m_X: 0 + m_Y: 283 + m_Width: 78 + m_Height: 95 + - m_X: 0 + m_Y: 378 + m_Width: 78 + m_Height: 94 + - m_X: 0 + m_Y: 472 + m_Width: 78 + m_Height: 94 + - m_X: 0 + m_Y: 566 + m_Width: 74 + m_Height: 97 + - m_X: 399 + m_Y: 0 + m_Width: 89 + m_Height: 80 + - m_X: 0 + m_Y: 663 + m_Width: 76 + m_Height: 94 + - m_X: 0 + m_Y: 757 + m_Width: 76 + m_Height: 94 + - m_X: 0 + m_Y: 851 + m_Width: 76 + m_Height: 94 + - m_X: 0 + m_Y: 945 + m_Width: 87 + m_Height: 78 + - m_X: 488 + m_Y: 0 + m_Width: 86 + m_Height: 78 + - m_X: 574 + m_Y: 0 + m_Width: 85 + m_Height: 79 + - m_X: 659 + m_Y: 0 + m_Width: 82 + m_Height: 84 + - m_X: 741 + m_Y: 0 + m_Width: 78 + m_Height: 92 + - m_X: 819 + m_Y: 0 + m_Width: 76 + m_Height: 93 + - m_X: 895 + m_Y: 0 + m_Width: 76 + m_Height: 93 + - m_X: 971 + m_Y: 0 + m_Width: 47 + m_Height: 94 + - m_X: 93 + m_Y: 78 + m_Width: 105 + m_Height: 25 + - m_X: 78 + m_Y: 103 + m_Width: 76 + m_Height: 91 + - m_X: 78 + m_Y: 194 + m_Width: 73 + m_Height: 93 + - m_X: 78 + m_Y: 287 + m_Width: 69 + m_Height: 95 + - m_X: 78 + m_Y: 382 + m_Width: 69 + m_Height: 94 + - m_X: 78 + m_Y: 476 + m_Width: 69 + m_Height: 94 + - m_X: 74 + m_Y: 570 + m_Width: 66 + m_Height: 93 + - m_X: 76 + m_Y: 663 + m_Width: 60 + m_Height: 100 + - m_X: 76 + m_Y: 763 + m_Width: 59 + m_Height: 99 + - m_X: 76 + m_Y: 862 + m_Width: 59 + m_Height: 83 + - m_X: 87 + m_Y: 945 + m_Width: 78 + m_Height: 78 + - m_X: 154 + m_Y: 103 + m_Width: 46 + m_Height: 99 + - m_X: 200 + m_Y: 78 + m_Width: 67 + m_Height: 94 + - m_X: 151 + m_Y: 202 + m_Width: 66 + m_Height: 89 + - m_X: 147 + m_Y: 291 + m_Width: 69 + m_Height: 92 + - m_X: 147 + m_Y: 383 + m_Width: 66 + m_Height: 94 + - m_X: 147 + m_Y: 477 + m_Width: 66 + m_Height: 93 + - m_X: 140 + m_Y: 570 + m_Width: 66 + m_Height: 91 + - m_X: 267 + m_Y: 80 + m_Width: 80 + m_Height: 80 + - m_X: 347 + m_Y: 80 + m_Width: 80 + m_Height: 80 + - m_X: 427 + m_Y: 80 + m_Width: 72 + m_Height: 80 + - m_X: 499 + m_Y: 78 + m_Width: 74 + m_Height: 80 + - m_X: 573 + m_Y: 79 + m_Width: 78 + m_Height: 80 + - m_X: 651 + m_Y: 84 + m_Width: 90 + m_Height: 66 + - m_X: 741 + m_Y: 92 + m_Width: 77 + m_Height: 78 + - m_X: 818 + m_Y: 93 + m_Width: 76 + m_Height: 78 + - m_X: 894 + m_Y: 93 + m_Width: 76 + m_Height: 80 + - m_X: 970 + m_Y: 94 + m_Width: 48 + m_Height: 81 + - m_X: 267 + m_Y: 160 + m_Width: 105 + m_Height: 25 + - m_X: 217 + m_Y: 172 + m_Width: 46 + m_Height: 99 + - m_X: 263 + m_Y: 185 + m_Width: 76 + m_Height: 78 + - m_X: 372 + m_Y: 160 + m_Width: 89 + m_Height: 52 + - m_X: 339 + m_Y: 185 + m_Width: 29 + m_Height: 78 + - m_X: 368 + m_Y: 212 + m_Width: 83 + m_Height: 65 + - m_X: 136 + m_Y: 663 + m_Width: 43 + m_Height: 99 + - m_X: 179 + m_Y: 661 + m_Width: 43 + m_Height: 99 + - m_X: 206 + m_Y: 570 + m_Width: 44 + m_Height: 91 + - m_X: 222 + m_Y: 661 + m_Width: 37 + m_Height: 99 + - m_X: 213 + m_Y: 383 + m_Width: 37 + m_Height: 99 + - m_X: 213 + m_Y: 482 + m_Width: 59 + m_Height: 88 + - m_X: 250 + m_Y: 570 + m_Width: 64 + m_Height: 90 + - m_X: 259 + m_Y: 660 + m_Width: 60 + m_Height: 96 + - m_X: 135 + m_Y: 763 + m_Width: 36 + m_Height: 99 + - m_X: 135 + m_Y: 862 + m_Width: 59 + m_Height: 83 + - m_X: 165 + m_Y: 945 + m_Width: 75 + m_Height: 78 + - m_X: 171 + m_Y: 762 + m_Width: 27 + m_Height: 99 + - m_X: 198 + m_Y: 760 + m_Width: 59 + m_Height: 89 + - m_X: 194 + m_Y: 861 + m_Width: 23 + m_Height: 84 + - m_X: 217 + m_Y: 849 + m_Width: 38 + m_Height: 93 + - m_X: 240 + m_Y: 942 + m_Width: 64 + m_Height: 81 + - m_X: 255 + m_Y: 849 + m_Width: 38 + m_Height: 93 + - m_X: 257 + m_Y: 760 + m_Width: 39 + m_Height: 89 + - m_X: 296 + m_Y: 756 + m_Width: 27 + m_Height: 99 + - m_X: 293 + m_Y: 855 + m_Width: 57 + m_Height: 87 + - m_X: 304 + m_Y: 942 + m_Width: 61 + m_Height: 81 + - m_X: 651 + m_Y: 150 + m_Width: 83 + m_Height: 28 + - m_X: 461 + m_Y: 160 + m_Width: 67 + m_Height: 78 + - m_X: 528 + m_Y: 158 + m_Width: 44 + m_Height: 81 + - m_X: 572 + m_Y: 159 + m_Width: 73 + m_Height: 78 + - m_X: 645 + m_Y: 178 + m_Width: 82 + m_Height: 64 + - m_X: 451 + m_Y: 238 + m_Width: 71 + m_Height: 78 + - m_X: 522 + m_Y: 239 + m_Width: 61 + m_Height: 80 + - m_X: 583 + m_Y: 237 + m_Width: 62 + m_Height: 82 + - m_X: 645 + m_Y: 242 + m_Width: 70 + m_Height: 78 + - m_X: 216 + m_Y: 319 + m_Width: 62 + m_Height: 64 + - m_X: 217 + m_Y: 271 + m_Width: 61 + m_Height: 48 + - m_X: 278 + m_Y: 263 + m_Width: 70 + m_Height: 80 + - m_X: 250 + m_Y: 383 + m_Width: 40 + m_Height: 89 + - m_X: 348 + m_Y: 277 + m_Width: 71 + m_Height: 70 + - m_X: 278 + m_Y: 343 + m_Width: 70 + m_Height: 34 + - m_X: 290 + m_Y: 377 + m_Width: 57 + m_Height: 87 + - m_X: 419 + m_Y: 277 + m_Width: 29 + m_Height: 76 + - m_X: 448 + m_Y: 316 + m_Width: 69 + m_Height: 78 + - m_X: 517 + m_Y: 319 + m_Width: 69 + m_Height: 78 + - m_X: 586 + m_Y: 319 + m_Width: 59 + m_Height: 79 + - m_X: 645 + m_Y: 320 + m_Width: 69 + m_Height: 79 + - m_X: 348 + m_Y: 347 + m_Width: 69 + m_Height: 78 + - m_X: 417 + m_Y: 353 + m_Width: 31 + m_Height: 41 + - m_X: 347 + m_Y: 425 + m_Width: 69 + m_Height: 68 + - m_X: 417 + m_Y: 394 + m_Width: 68 + m_Height: 78 + - m_X: 485 + m_Y: 397 + m_Width: 67 + m_Height: 78 + - m_X: 552 + m_Y: 398 + m_Width: 67 + m_Height: 78 + - m_X: 619 + m_Y: 399 + m_Width: 66 + m_Height: 78 + - m_X: 685 + m_Y: 399 + m_Width: 43 + m_Height: 82 + - m_X: 272 + m_Y: 472 + m_Width: 40 + m_Height: 89 + - m_X: 312 + m_Y: 464 + m_Width: 29 + m_Height: 81 + - m_X: 341 + m_Y: 493 + m_Width: 66 + m_Height: 80 + - m_X: 314 + m_Y: 573 + m_Width: 64 + m_Height: 83 + - m_X: 319 + m_Y: 656 + m_Width: 59 + m_Height: 83 + - m_X: 323 + m_Y: 739 + m_Width: 64 + m_Height: 83 + - m_X: 378 + m_Y: 573 + m_Width: 39 + m_Height: 89 + - m_X: 378 + m_Y: 662 + m_Width: 42 + m_Height: 75 + - m_X: 387 + m_Y: 737 + m_Width: 39 + m_Height: 89 + - m_X: 407 + m_Y: 493 + m_Width: 61 + m_Height: 80 + - m_X: 417 + m_Y: 573 + m_Width: 57 + m_Height: 83 + - m_X: 420 + m_Y: 656 + m_Width: 57 + m_Height: 81 + - m_X: 426 + m_Y: 737 + m_Width: 61 + m_Height: 83 + - m_X: 468 + m_Y: 475 + m_Width: 64 + m_Height: 82 + - m_X: 474 + m_Y: 557 + m_Width: 61 + m_Height: 83 + - m_X: 477 + m_Y: 640 + m_Width: 61 + m_Height: 83 + - m_X: 532 + m_Y: 476 + m_Width: 65 + m_Height: 78 + - m_X: 535 + m_Y: 554 + m_Width: 63 + m_Height: 82 + - m_X: 538 + m_Y: 636 + m_Width: 61 + m_Height: 83 + - m_X: 487 + m_Y: 723 + m_Width: 61 + m_Height: 83 + - m_X: 548 + m_Y: 719 + m_Width: 57 + m_Height: 83 + - m_X: 597 + m_Y: 477 + m_Width: 62 + m_Height: 71 + - m_X: 598 + m_Y: 548 + m_Width: 61 + m_Height: 82 + - m_X: 599 + m_Y: 630 + m_Width: 60 + m_Height: 82 + - m_X: 605 + m_Y: 712 + m_Width: 57 + m_Height: 83 + - m_X: 659 + m_Y: 481 + m_Width: 65 + m_Height: 78 + - m_X: 659 + m_Y: 559 + m_Width: 64 + m_Height: 79 + - m_X: 659 + m_Y: 638 + m_Width: 64 + m_Height: 66 + - m_X: 662 + m_Y: 704 + m_Width: 61 + m_Height: 82 + - m_X: 714 + m_Y: 320 + m_Width: 61 + m_Height: 79 + - m_X: 715 + m_Y: 242 + m_Width: 64 + m_Height: 78 + - m_X: 728 + m_Y: 399 + m_Width: 59 + m_Height: 82 + - m_X: 724 + m_Y: 481 + m_Width: 65 + m_Height: 78 + - m_X: 723 + m_Y: 559 + m_Width: 64 + m_Height: 79 + - m_X: 723 + m_Y: 638 + m_Width: 61 + m_Height: 80 + - m_X: 723 + m_Y: 718 + m_Width: 61 + m_Height: 79 + - m_X: 727 + m_Y: 178 + m_Width: 62 + m_Height: 64 + - m_X: 789 + m_Y: 171 + m_Width: 63 + m_Height: 78 + - m_X: 779 + m_Y: 249 + m_Width: 62 + m_Height: 78 + - m_X: 775 + m_Y: 327 + m_Width: 61 + m_Height: 66 + - m_X: 787 + m_Y: 393 + m_Width: 59 + m_Height: 82 + - m_X: 789 + m_Y: 475 + m_Width: 57 + m_Height: 82 + - m_X: 852 + m_Y: 171 + m_Width: 41 + m_Height: 81 + - m_X: 893 + m_Y: 173 + m_Width: 62 + m_Height: 79 + - m_X: 841 + m_Y: 252 + m_Width: 61 + m_Height: 79 + - m_X: 902 + m_Y: 252 + m_Width: 60 + m_Height: 80 + - m_X: 962 + m_Y: 175 + m_Width: 61 + m_Height: 79 + - m_X: 962 + m_Y: 254 + m_Width: 61 + m_Height: 66 + - m_X: 962 + m_Y: 320 + m_Width: 61 + m_Height: 62 + - m_X: 836 + m_Y: 331 + m_Width: 61 + m_Height: 62 + - m_X: 846 + m_Y: 393 + m_Width: 59 + m_Height: 81 + - m_X: 846 + m_Y: 474 + m_Width: 59 + m_Height: 80 + - m_X: 905 + m_Y: 332 + m_Width: 57 + m_Height: 80 + - m_X: 962 + m_Y: 382 + m_Width: 61 + m_Height: 62 + - m_X: 905 + m_Y: 412 + m_Width: 57 + m_Height: 79 + - m_X: 962 + m_Y: 444 + m_Width: 61 + m_Height: 53 + - m_X: 905 + m_Y: 491 + m_Width: 57 + m_Height: 78 + - m_X: 962 + m_Y: 497 + m_Width: 61 + m_Height: 53 + - m_X: 962 + m_Y: 550 + m_Width: 61 + m_Height: 43 + - m_X: 323 + m_Y: 822 + m_Width: 63 + m_Height: 30 + - m_X: 350 + m_Y: 852 + m_Width: 39 + m_Height: 89 + - m_X: 365 + m_Y: 941 + m_Width: 43 + m_Height: 82 + - m_X: 389 + m_Y: 826 + m_Width: 39 + m_Height: 89 + - m_X: 428 + m_Y: 820 + m_Width: 59 + m_Height: 78 + - m_X: 487 + m_Y: 806 + m_Width: 58 + m_Height: 78 + - m_X: 784 + m_Y: 638 + m_Width: 39 + m_Height: 89 + - m_X: 787 + m_Y: 559 + m_Width: 55 + m_Height: 79 + - m_X: 784 + m_Y: 727 + m_Width: 44 + m_Height: 78 + - m_X: 823 + m_Y: 638 + m_Width: 41 + m_Height: 89 + - m_X: 828 + m_Y: 727 + m_Width: 38 + m_Height: 82 + - m_X: 842 + m_Y: 557 + m_Width: 28 + m_Height: 81 + - m_X: 870 + m_Y: 554 + m_Width: 28 + m_Height: 81 + - m_X: 898 + m_Y: 569 + m_Width: 57 + m_Height: 66 + - m_X: 955 + m_Y: 593 + m_Width: 62 + m_Height: 58 + - m_X: 864 + m_Y: 638 + m_Width: 41 + m_Height: 89 + - m_X: 905 + m_Y: 635 + m_Width: 41 + m_Height: 89 + - m_X: 946 + m_Y: 651 + m_Width: 57 + m_Height: 79 + - m_X: 866 + m_Y: 727 + m_Width: 40 + m_Height: 82 + - m_X: 906 + m_Y: 724 + m_Width: 40 + m_Height: 82 + - m_X: 946 + m_Y: 730 + m_Width: 57 + m_Height: 66 + - m_X: 389 + m_Y: 915 + m_Width: 42 + m_Height: 26 + - m_X: 408 + m_Y: 941 + m_Width: 38 + m_Height: 82 + - m_X: 446 + m_Y: 898 + m_Width: 39 + m_Height: 89 + - m_X: 545 + m_Y: 806 + m_Width: 28 + m_Height: 78 + - m_X: 573 + m_Y: 802 + m_Width: 47 + m_Height: 78 + - m_X: 620 + m_Y: 795 + m_Width: 57 + m_Height: 65 + - m_X: 677 + m_Y: 786 + m_Width: 46 + m_Height: 56 + - m_X: 723 + m_Y: 797 + m_Width: 59 + m_Height: 59 + - m_X: 782 + m_Y: 805 + m_Width: 46 + m_Height: 55 + - m_X: 828 + m_Y: 809 + m_Width: 59 + m_Height: 58 + - m_X: 487 + m_Y: 884 + m_Width: 70 + m_Height: 25 + - m_X: 485 + m_Y: 909 + m_Width: 57 + m_Height: 65 + - m_X: 485 + m_Y: 974 + m_Width: 50 + m_Height: 49 + - m_X: 542 + m_Y: 909 + m_Width: 28 + m_Height: 78 + - m_X: 887 + m_Y: 809 + m_Width: 29 + m_Height: 64 + - m_X: 916 + m_Y: 806 + m_Width: 42 + m_Height: 65 + - m_X: 958 + m_Y: 796 + m_Width: 54 + m_Height: 64 + - m_X: 620 + m_Y: 860 + m_Width: 57 + m_Height: 50 + - m_X: 677 + m_Y: 842 + m_Width: 43 + m_Height: 54 + - m_X: 720 + m_Y: 856 + m_Width: 54 + m_Height: 41 + - m_X: 774 + m_Y: 860 + m_Width: 51 + m_Height: 52 + - m_X: 825 + m_Y: 867 + m_Width: 48 + m_Height: 52 + - m_X: 873 + m_Y: 873 + m_Width: 42 + m_Height: 53 + - m_X: 446 + m_Y: 987 + m_Width: 38 + m_Height: 32 + - m_X: 958 + m_Y: 860 + m_Width: 54 + m_Height: 24 + - m_X: 535 + m_Y: 987 + m_Width: 38 + m_Height: 32 + - m_X: 677 + m_Y: 896 + m_Width: 43 + m_Height: 43 + - m_X: 720 + m_Y: 897 + m_Width: 45 + m_Height: 41 + - m_X: 765 + m_Y: 912 + m_Width: 44 + m_Height: 38 + - m_X: 809 + m_Y: 919 + m_Width: 43 + m_Height: 42 + - m_X: 852 + m_Y: 926 + m_Width: 67 + m_Height: 25 + - m_X: 852 + m_Y: 951 + m_Width: 69 + m_Height: 23 + - m_X: 915 + m_Y: 873 + m_Width: 42 + m_Height: 53 + - m_X: 957 + m_Y: 884 + m_Width: 42 + m_Height: 38 + - m_X: 919 + m_Y: 926 + m_Width: 67 + m_Height: 25 + - m_X: 921 + m_Y: 951 + m_Width: 44 + m_Height: 27 + - m_X: 965 + m_Y: 951 + m_Width: 27 + m_Height: 38 + - m_X: 573 + m_Y: 880 + m_Width: 42 + m_Height: 26 + - m_X: 570 + m_Y: 906 + m_Width: 42 + m_Height: 38 + - m_X: 570 + m_Y: 944 + m_Width: 42 + m_Height: 38 + - m_X: 612 + m_Y: 910 + m_Width: 41 + m_Height: 38 + - m_X: 612 + m_Y: 948 + m_Width: 35 + m_Height: 37 + - m_X: 573 + m_Y: 982 + m_Width: 29 + m_Height: 39 + - m_X: 602 + m_Y: 985 + m_Width: 28 + m_Height: 38 + - m_X: 630 + m_Y: 985 + m_Width: 28 + m_Height: 38 + - m_X: 986 + m_Y: 922 + m_Width: 29 + m_Height: 29 + - m_X: 992 + m_Y: 951 + m_Width: 28 + m_Height: 38 + - m_X: 647 + m_Y: 948 + m_Width: 29 + m_Height: 28 + - m_X: 676 + m_Y: 939 + m_Width: 28 + m_Height: 38 + m_FreeGlyphRects: + - m_X: 78 + m_Y: 93 + m_Width: 15 + m_Height: 10 + - m_X: 74 + m_Y: 566 + m_Width: 4 + m_Height: 4 + - m_X: 198 + m_Y: 78 + m_Width: 2 + m_Height: 25 + - m_X: 151 + m_Y: 194 + m_Width: 3 + m_Height: 8 + - m_X: 147 + m_Y: 287 + m_Width: 4 + m_Height: 4 + - m_X: 267 + m_Y: 78 + m_Width: 31 + m_Height: 2 + - m_X: 488 + m_Y: 78 + m_Width: 11 + m_Height: 2 + - m_X: 573 + m_Y: 78 + m_Width: 1 + m_Height: 1 + - m_X: 651 + m_Y: 79 + m_Width: 8 + m_Height: 5 + - m_X: 818 + m_Y: 92 + m_Width: 1 + m_Height: 1 + - m_X: 970 + m_Y: 93 + m_Width: 1 + m_Height: 1 + - m_X: 200 + m_Y: 172 + m_Width: 17 + m_Height: 30 + - m_X: 263 + m_Y: 172 + m_Width: 4 + m_Height: 13 + - m_X: 368 + m_Y: 185 + m_Width: 4 + m_Height: 27 + - m_X: 140 + m_Y: 661 + m_Width: 39 + m_Height: 2 + - m_X: 250 + m_Y: 660 + m_Width: 9 + m_Height: 1 + - m_X: 136 + m_Y: 762 + m_Width: 35 + m_Height: 1 + - m_X: 179 + m_Y: 760 + m_Width: 19 + m_Height: 2 + - m_X: 171 + m_Y: 861 + m_Width: 23 + m_Height: 1 + - m_X: 198 + m_Y: 849 + m_Width: 19 + m_Height: 12 + - m_X: 217 + m_Y: 942 + m_Width: 23 + m_Height: 3 + - m_X: 259 + m_Y: 756 + m_Width: 37 + m_Height: 4 + - m_X: 293 + m_Y: 849 + m_Width: 3 + m_Height: 6 + - m_X: 499 + m_Y: 158 + m_Width: 29 + m_Height: 2 + - m_X: 572 + m_Y: 158 + m_Width: 1 + m_Height: 1 + - m_X: 645 + m_Y: 159 + m_Width: 6 + m_Height: 19 + - m_X: 451 + m_Y: 212 + m_Width: 10 + m_Height: 26 + - m_X: 522 + m_Y: 238 + m_Width: 6 + m_Height: 1 + - m_X: 572 + m_Y: 237 + m_Width: 11 + m_Height: 2 + - m_X: 216 + m_Y: 291 + m_Width: 1 + m_Height: 28 + - m_X: 263 + m_Y: 263 + m_Width: 15 + m_Height: 8 + - m_X: 348 + m_Y: 263 + m_Width: 20 + m_Height: 14 + - m_X: 278 + m_Y: 377 + m_Width: 12 + m_Height: 6 + - m_X: 448 + m_Y: 277 + m_Width: 3 + m_Height: 39 + - m_X: 517 + m_Y: 316 + m_Width: 5 + m_Height: 3 + - m_X: 417 + m_Y: 347 + m_Width: 2 + m_Height: 6 + - m_X: 347 + m_Y: 377 + m_Width: 1 + m_Height: 48 + - m_X: 485 + m_Y: 394 + m_Width: 32 + m_Height: 3 + - m_X: 552 + m_Y: 397 + m_Width: 34 + m_Height: 1 + - m_X: 619 + m_Y: 398 + m_Width: 26 + m_Height: 1 + - m_X: 250 + m_Y: 472 + m_Width: 22 + m_Height: 10 + - m_X: 290 + m_Y: 464 + m_Width: 22 + m_Height: 8 + - m_X: 272 + m_Y: 561 + m_Width: 69 + m_Height: 9 + - m_X: 341 + m_Y: 464 + m_Width: 6 + m_Height: 29 + - m_X: 312 + m_Y: 545 + m_Width: 29 + m_Height: 25 + - m_X: 314 + m_Y: 545 + m_Width: 27 + m_Height: 28 + - m_X: 314 + m_Y: 656 + m_Width: 5 + m_Height: 4 + - m_X: 319 + m_Y: 739 + m_Width: 4 + m_Height: 17 + - m_X: 378 + m_Y: 737 + m_Width: 9 + m_Height: 2 + - m_X: 416 + m_Y: 425 + m_Width: 1 + m_Height: 68 + - m_X: 417 + m_Y: 656 + m_Width: 3 + m_Height: 6 + - m_X: 416 + m_Y: 472 + m_Width: 69 + m_Height: 3 + - m_X: 416 + m_Y: 472 + m_Width: 52 + m_Height: 21 + - m_X: 468 + m_Y: 557 + m_Width: 6 + m_Height: 16 + - m_X: 474 + m_Y: 640 + m_Width: 3 + m_Height: 16 + - m_X: 532 + m_Y: 475 + m_Width: 20 + m_Height: 1 + - m_X: 532 + m_Y: 554 + m_Width: 3 + m_Height: 3 + - m_X: 535 + m_Y: 636 + m_Width: 3 + m_Height: 4 + - m_X: 477 + m_Y: 723 + m_Width: 10 + m_Height: 14 + - m_X: 538 + m_Y: 719 + m_Width: 10 + m_Height: 4 + - m_X: 597 + m_Y: 476 + m_Width: 22 + m_Height: 1 + - m_X: 597 + m_Y: 548 + m_Width: 1 + m_Height: 6 + - m_X: 598 + m_Y: 630 + m_Width: 1 + m_Height: 6 + - m_X: 599 + m_Y: 712 + m_Width: 6 + m_Height: 7 + - m_X: 659 + m_Y: 477 + m_Width: 26 + m_Height: 4 + - m_X: 659 + m_Y: 704 + m_Width: 3 + m_Height: 8 + - m_X: 734 + m_Y: 150 + m_Width: 7 + m_Height: 28 + - m_X: 734 + m_Y: 170 + m_Width: 84 + m_Height: 1 + - m_X: 734 + m_Y: 170 + m_Width: 55 + m_Height: 8 + - m_X: 779 + m_Y: 242 + m_Width: 10 + m_Height: 7 + - m_X: 775 + m_Y: 320 + m_Width: 4 + m_Height: 7 + - m_X: 775 + m_Y: 393 + m_Width: 12 + m_Height: 6 + - m_X: 787 + m_Y: 475 + m_Width: 2 + m_Height: 6 + - m_X: 893 + m_Y: 171 + m_Width: 1 + m_Height: 2 + - m_X: 841 + m_Y: 249 + m_Width: 11 + m_Height: 3 + - m_X: 1018 + m_Y: 0 + m_Width: 5 + m_Height: 175 + - m_X: 955 + m_Y: 173 + m_Width: 15 + m_Height: 2 + - m_X: 955 + m_Y: 173 + m_Width: 7 + m_Height: 79 + - m_X: 836 + m_Y: 327 + m_Width: 5 + m_Height: 4 + - m_X: 897 + m_Y: 331 + m_Width: 5 + m_Height: 62 + - m_X: 897 + m_Y: 332 + m_Width: 8 + m_Height: 61 + - m_X: 386 + m_Y: 822 + m_Width: 1 + m_Height: 30 + - m_X: 323 + m_Y: 852 + m_Width: 27 + m_Height: 3 + - m_X: 350 + m_Y: 941 + m_Width: 15 + m_Height: 1 + - m_X: 386 + m_Y: 826 + m_Width: 3 + m_Height: 26 + - m_X: 426 + m_Y: 820 + m_Width: 2 + m_Height: 6 + - m_X: 789 + m_Y: 557 + m_Width: 53 + m_Height: 2 + - m_X: 846 + m_Y: 554 + m_Width: 24 + m_Height: 3 + - m_X: 898 + m_Y: 554 + m_Width: 7 + m_Height: 15 + - m_X: 955 + m_Y: 569 + m_Width: 7 + m_Height: 24 + - m_X: 870 + m_Y: 635 + m_Width: 35 + m_Height: 3 + - m_X: 946 + m_Y: 635 + m_Width: 9 + m_Height: 16 + - m_X: 905 + m_Y: 724 + m_Width: 1 + m_Height: 3 + - m_X: 428 + m_Y: 898 + m_Width: 18 + m_Height: 17 + - m_X: 431 + m_Y: 898 + m_Width: 15 + m_Height: 43 + - m_X: 548 + m_Y: 802 + m_Width: 25 + m_Height: 4 + - m_X: 605 + m_Y: 795 + m_Width: 15 + m_Height: 7 + - m_X: 662 + m_Y: 786 + m_Width: 15 + m_Height: 9 + - m_X: 782 + m_Y: 797 + m_Width: 2 + m_Height: 8 + - m_X: 485 + m_Y: 898 + m_Width: 2 + m_Height: 11 + - m_X: 906 + m_Y: 806 + m_Width: 10 + m_Height: 3 + - m_X: 1003 + m_Y: 651 + m_Width: 20 + m_Height: 145 + - m_X: 946 + m_Y: 796 + m_Width: 12 + m_Height: 10 + - m_X: 720 + m_Y: 842 + m_Width: 3 + m_Height: 14 + - m_X: 774 + m_Y: 856 + m_Width: 8 + m_Height: 4 + - m_X: 825 + m_Y: 860 + m_Width: 3 + m_Height: 7 + - m_X: 873 + m_Y: 867 + m_Width: 14 + m_Height: 6 + - m_X: 446 + m_Y: 1019 + m_Width: 39 + m_Height: 4 + - m_X: 484 + m_Y: 987 + m_Width: 1 + m_Height: 36 + - m_X: 535 + m_Y: 974 + m_Width: 7 + m_Height: 13 + - m_X: 765 + m_Y: 897 + m_Width: 9 + m_Height: 15 + - m_X: 720 + m_Y: 938 + m_Width: 45 + m_Height: 85 + - m_X: 809 + m_Y: 912 + m_Width: 16 + m_Height: 7 + - m_X: 852 + m_Y: 919 + m_Width: 21 + m_Height: 7 + - m_X: 916 + m_Y: 871 + m_Width: 42 + m_Height: 2 + - m_X: 957 + m_Y: 871 + m_Width: 1 + m_Height: 13 + - m_X: 557 + m_Y: 884 + m_Width: 16 + m_Height: 22 + - m_X: 557 + m_Y: 884 + m_Width: 13 + m_Height: 25 + - m_X: 615 + m_Y: 880 + m_Width: 5 + m_Height: 30 + - m_X: 612 + m_Y: 906 + m_Width: 8 + m_Height: 4 + - m_X: 535 + m_Y: 1019 + m_Width: 38 + m_Height: 4 + - m_X: 570 + m_Y: 982 + m_Width: 3 + m_Height: 5 + - m_X: 535 + m_Y: 1021 + m_Width: 67 + m_Height: 2 + - m_X: 602 + m_Y: 982 + m_Width: 10 + m_Height: 3 + - m_X: 647 + m_Y: 978 + m_Width: 318 + m_Height: 7 + - m_X: 658 + m_Y: 978 + m_Width: 307 + m_Height: 45 + - m_X: 658 + m_Y: 989 + m_Width: 365 + m_Height: 34 + - m_X: 1012 + m_Y: 651 + m_Width: 11 + m_Height: 271 + - m_X: 999 + m_Y: 884 + m_Width: 24 + m_Height: 38 + - m_X: 957 + m_Y: 922 + m_Width: 29 + m_Height: 4 + - m_X: 1017 + m_Y: 593 + m_Width: 6 + m_Height: 358 + - m_X: 1020 + m_Y: 593 + m_Width: 3 + m_Height: 430 + - m_X: 1015 + m_Y: 651 + m_Width: 8 + m_Height: 300 + - m_X: 653 + m_Y: 910 + m_Width: 24 + m_Height: 29 + - m_X: 653 + m_Y: 910 + m_Width: 23 + m_Height: 38 + - m_X: 704 + m_Y: 939 + m_Width: 61 + m_Height: 84 + - m_X: 704 + m_Y: 950 + m_Width: 105 + m_Height: 73 + - m_X: 704 + m_Y: 961 + m_Width: 148 + m_Height: 62 + - m_X: 647 + m_Y: 977 + m_Width: 274 + m_Height: 8 + - m_X: 647 + m_Y: 976 + m_Width: 29 + m_Height: 9 + - m_X: 658 + m_Y: 977 + m_Width: 263 + m_Height: 46 + - m_X: 658 + m_Y: 976 + m_Width: 18 + m_Height: 47 + - m_X: 704 + m_Y: 974 + m_Width: 217 + m_Height: 49 + m_fontInfo: + Name: Liberation Sans + PointSize: 86 + Scale: 1 + CharacterCount: 250 + LineHeight: 98.90625 + Baseline: 0 + Ascender: 77.84375 + CapHeight: 59.1875 + Descender: -18.21875 + CenterLine: 0 + SuperscriptOffset: 77.84375 + SubscriptOffset: -12.261719 + SubSize: 0.5 + Underline: -12.261719 + UnderlineThickness: 6.298828 + strikethrough: 23.675 + strikethroughThickness: 0 + TabWidth: 239.0625 + Padding: 9 + AtlasWidth: 1024 + AtlasHeight: 1024 + atlas: {fileID: 0} + m_AtlasWidth: 1024 + m_AtlasHeight: 1024 + m_AtlasPadding: 9 + m_AtlasRenderMode: 4169 + m_glyphInfoList: [] + m_KerningTable: + kerningPairs: [] + m_FontFeatureTable: + m_GlyphPairAdjustmentRecords: + - m_FirstAdjustmentRecord: + m_GlyphIndex: 3 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.75 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 36 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 3 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 3 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 60 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 20 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 20 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 36 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.75 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 3 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 36 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 36 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 36 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -3.1875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 58 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 36 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 60 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 36 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 89 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 36 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 90 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 36 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 92 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 36 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 2020 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 41 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -9.53125 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 15 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 41 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -9.53125 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 17 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 41 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.75 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 36 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 47 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -3.1875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 3 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 47 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 47 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 47 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 58 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 47 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 60 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 47 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -3.1875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 92 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 47 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.75 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 2020 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 51 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 3 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 51 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -11.09375 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 15 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 51 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -11.09375 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 17 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 51 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 36 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 53 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 53 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 53 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 58 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 53 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 60 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 3 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -9.53125 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 15 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.75 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 16 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -9.53125 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 17 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -9.53125 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 29 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -9.53125 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 30 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 36 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 50 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -9.53125 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 68 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -9.53125 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 70 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -9.53125 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 72 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -3.1875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 76 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -9.53125 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 82 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -3.1875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 85 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -9.53125 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 86 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -3.1875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 88 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.75 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 90 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 55 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.75 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 92 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -7.890625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 15 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.75 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 16 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -7.890625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 17 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -3.1875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 29 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -3.1875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 30 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 36 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 68 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.75 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 72 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 76 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.75 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 82 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -3.1875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 85 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -3.1875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 88 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -3.1875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 92 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 58 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.75 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 15 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 58 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 16 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 58 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.75 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 17 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 58 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 29 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 58 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 30 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 58 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -3.1875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 36 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 58 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -3.1875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 68 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 58 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 72 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 58 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 82 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 58 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 85 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 58 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 88 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 58 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -0.75 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 92 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 60 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 3 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 60 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -11.09375 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 15 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 60 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -7.890625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 16 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 60 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -11.09375 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 17 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 60 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.75 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 29 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 60 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -5.578125 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 30 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 60 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 36 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 60 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 68 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 60 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -7.890625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 72 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 60 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -3.1875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 76 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 60 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -7.890625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 82 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 60 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 83 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 60 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -7.890625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 84 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 60 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.75 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 88 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 60 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.75 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 89 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 73 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 73 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 73 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 2020 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 85 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.75 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 15 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 85 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.75 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 17 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 85 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 3.1875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 2020 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 89 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 15 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 89 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 17 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 90 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.75 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 15 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 90 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.75 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 17 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 92 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 15 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 92 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 17 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 2019 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 2019 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 2020 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -3.1875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 3 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 2020 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 86 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 2020 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 2020 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + fallbackFontAssets: [] + m_FallbackFontAssetTable: + - {fileID: 11400000, guid: 2e498d1c8094910479dc3e1b768306a4, type: 2} + m_CreationSettings: + sourceFontFileName: + sourceFontFileGUID: e3265ab4bf004d28a9537516768c1c75 + pointSizeSamplingMode: 0 + pointSize: 86 + padding: 9 + packingMode: 4 + atlasWidth: 1024 + atlasHeight: 1024 + characterSetSelectionMode: 1 + characterSequence: 32 - 126, 160 - 255, 8192 - 8303, 8364, 8482, 9633 + referencedFontAssetGUID: 8f586378b4e144a9851e7b34d9b748ee + referencedTextAssetGUID: + fontStyle: 0 + fontStyleModifier: 0 + renderMode: 4169 + includeFontFeatures: 1 + m_FontWeightTable: + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + fontWeights: + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + normalStyle: 0 + normalSpacingOffset: 0 + boldStyle: 0.75 + boldSpacing: 7 + italicStyle: 35 + tabSize: 10 +--- !u!28 &28684132378477856 +Texture2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: LiberationSans SDF Atlas + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_ForcedFallbackFormat: 4 + m_DownscaleFallback: 0 + serializedVersion: 2 + m_Width: 1024 + m_Height: 1024 + m_CompleteImageSize: 1048576 + m_TextureFormat: 1 + m_MipCount: 1 + m_IsReadable: 0 + m_StreamingMipmaps: 0 + m_StreamingMipmapsPriority: -92 + 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: 0 + image data: 1048576 + _typelessdata: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040607090b0d0f101112121313131212100f0e0c0a08060603000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000407090a1313131313131313130e0d0b08030000000000000000000000000000000000000002070a0c0d1313131313131313130b0a0805000000000000000000000000000000000000000000000000000000000000050a0d0f10131313131313130e0d0b0803000000000000000000000000000000000000000000000004080a0a13131313131313131313131313131313131313131313131313131313131313131313131313131313130a09070400000000000000000000000000000000000000000006060606060600000000000000000000000000000000000000000000020507080c0f1112131211100c080806020000000000000000000000030607090d1011121312110e0a070604010000000000000000000000000000000000000000000000000000000000000000000000000606060606060000000000000000000000000000000000000000000000000000000000010507070c0f1112131312100c08080602000000000000000000000000000000000000000000000000000000000000000000030608091313131313120707050100000000000000000000000000000000000000000000000000000000000105070713131313130c0b09060100000000000000000000000000000000000000000000000000000000000306080913131313131207070501000000000000000000000000000000000000000000000000000000000105070713131313130c0b09060100000000000000000000000000000000000004080a0a0b0b0b0b0b0b0b07060401000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030607090b0d0f1111121313121211100f0d0a0807050200000000000000000000000000000000000000000000000000000000000000000003080c0e0e131313131313130f0e0c09040000000000000000000000000000000000000000000000000000000000000003070b0d0e131313131313130e0e0c0803000000000000000000000003080c0e0e131313131313130f0e0c09040000000000000000000000000000000000000000000000000000000000000003070b0d0e131313131313130e0e0c080300000000000000000000000000000000000000000000040613131313131313131312110e09040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000205070c10131315171a1c1d1e1e1f20201f1f1e1d1c1b19171513120f0b06060401000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b101316172020202020202020201b1a18140f080100000000000000000000000000000000070e1317191a202020202020202020181715110c060000000000000000000000000000000000000000000000000000030a10161a1c1d202020202020201b1a18140f080100000000000000000000000000000000000000050b101416172020202020202020202020202020202020202020202020202020202020202020202020202020202020171614100b0500000000000000000000000000000106090b0c131313131313080705020000000000000000000000000000000002090e111414181c1e1f201f1e1c191514120e090300000000000000060b101213161a1d1e1f201e1d1b171413110d0701000000000000000000000000000000000000000000000000000000000000030608091313131313130b0a0805000000000000000000000000000000000000000000000002080d111314191c1e1f201f1e1c191514120e09030000000000000000000000000000000000000000000000000000000000040a0f12151520202020201f1413110d08020000000000000000000000000000000000000000000000000002080d1113142020202020191815120d060000000000000000000000000000000000000000000000000000040a0f12151520202020201f1413110d080200000000000000000000000000000000000000000000000002080d1113142020202020191815120d06000000000000000000000000000000050b10141617181818181818181413110d07010000000000000000000001030405060606060504040200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000104060b10121315171a1c1d1e1f1f201f1f1e1d1b19171514120e0906030000000000000000000000000000000000000000000000000000000001090f14181a1b202020202020201c1b191510090200000000000000000000000000000000000000000000000000000001080e1317191a202020202020201b1a18140f09010000000000000001090f14181a1b202020202020201c1b191510090200000000000000000000000000000000000000000000000000000001080e1317191a202020202020201b1a18140f0901000000000000000000000000000000000001070c10132020202020202020201f1d1a150f0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000104090e1214181c1f20222426282a2a2b2c2c2c2c2c2b2a2927262422201f1c171413110d0705020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080f161c2022232d2d2d2d2d2d2d2d2d282724201a130b0200000000000000000000000000010a12191f2326272d2d2d2d2d2d2d2d2d2424211d171009000000000000000000000000000000000000000000000000040d151c2126292a2d2d2d2d2d2d2d2727241f1a130b0200000000000000000000000000000000000810171c2023242d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2423201c161008000000000000000000000000060d1215181920202020201f1514120e090300000000000000000000000002080e141a1e202125292a2b2c2c2b292622211e1a150e0903000000020a11171c1f2023272a2b2c2c2b2a282420201d18130c07000000000000000000000000000000000000000000000000000000030a0f121515202020202020181715110c060000000000000000000000000000000000000002080d13191e202125292b2c2d2c2b292622211e1a150e09030000000000000000000000000000000000000000000000000000060e151b1f21222c2d2d2d2d2c21201d19130c040000000000000000000000000000000000000000000000050c13191d20212d2d2d2d2d2524221e181109010000000000000000000000000000000000000000000000060e151b1f21222c2d2d2d2d2c21201d19130c0400000000000000000000000000000000000000000000050c13191d20212d2d2d2d2d2524221e181109010000000000000000000000000810171c2023242525252525252520201d18130c0400000000030607090b0e0f1112121313121211100f0d0a0807050200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d1113171c1f20222426292a2b2b2c2c2c2b2b2a28262422211e1a1312100c0600000000000000000000000000000000000000000000000000030b131a202427282d2d2d2d2d2d2d292825211b140c0300000000000000000000000000000000000000000000000000020b12191f2326272d2d2d2d2d2d2d282724201a130b030000000000030b131a202427282d2d2d2d2d2d2d292825211b140c0300000000000000000000000000000000000000000000000000020b12191f2326272d2d2d2d2d2d2d282724201a130b03000000000000000000000000000000030b12181c1f2d2d2d2d2d2d2d2d2c2c2a2620191209000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d11141a1e2123282c2d2f31333537373838393939383837353433302e2d2b282221201d1814120e0904000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008111921272c2f303939393939393939393433302b251d140b010000000000000000000000000a141c242a2f323339393939393939393931302d28221b120900000000000000000000000000000000000000000000030d161f262d323536393939393939393433302b251d140b0000000000000000000000000000000008111a22282d30313939393939393939393939393939393939393939393939393939393939393939393939393939393939302f2c28211a1108000000000000000000010911181e2224252d2d2d2d2d2c22211e1a140d0600000000000000000000050d14191f252a2d2e3235373839383736322f2e2b26201a150e0600070c141c23282b2d303336383939383734312d2c29241d18120b03000000000000000000000000000000000000000000000000060e151a1f21222c2d2d2d2d2d2424211d1710090000000000000000000000000000000000050c13191e252a2d2e3235373939393836332e2d2b261f1a150e0600000000000000000000000000000000000000000000000006101820262b2e2f3939393939382e2d29251e160e04000000000000000000000000000000000000000000050e161e252a2d2e393939393932312e29231b13090000000000000000000000000000000000000000000006101820262b2e2f3939393939382e2d29251e160e040000000000000000000000000000000000000000050e161e252a2d2e393939393932312e29231b1309000000000000000000000008121a22282d3031313131313131312d2c29241d160d0405060b10121316181a1c1d1f1f20201f1f1e1d1b19171514120e0906030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e13181d2023282b2d2f3133353737383939393837373533312e2d2a26201f1c17110d0802000000000000000000000000000000000000000000010b151d252b303435393939393939393534312c261e150c000000000000000000000000000000000000000000000000000b141d242b303334393939393939393534302b251d150b01000000010b151d252b303435393939393939393534312c261e150c000000000000000000000000000000000000000000000000000b141d242b303334393939393939393534302b251d150b0100000000000000000000000000030d151d23292c3939393939393939393836312b241b1208000000000000000000000000000000000000000000000000000000000000000000000000000003090e13181d20262a2d2e34383a3c3e40424344454546464645454342413f3d3b3938332d2d2c2924201e1a14100c070100000000000000000000000000000000000000000000000000000000000000000000000000000000000000050f19232b33383c3d46464646464646464641403c362f261d1308000000000000000000000007121c262e353b3f404646464646464646463e3d39342c241b10060000000000000000000000000000000000000000000a151f2831383e42434646464646464641403c362f261d0f05000000000000000000000000000005101a232c33393c3d46464646464646464646464646464646464646464646464646464646464646464646464646464646463d3c38332c231a1005000000000000000009131b23292e31323939393939392e2d2a261f180f060000000000000000080e171e252a30363a3b3f424445464544433f3b3a37312b2620180f0b12181e262e34383a3c40434445464544413d3a39352f28231c150c050000000000000000000000000000000000000000000006101820262b2e2f39393939393931302d28221a1209000000000000000000000000000000070e161e252a3036393a3f424445464645433f3b3a37312b2620180f0900000000000000000000000000000000000000000000040e18222a31373a3c4646464646453a3935302820160c0200000000000000000000000000000000000000020c1620283036394646464646463f3e3a342d251b11060000000000000000000000000000000000000000040e18222a31373a3c4646464646453a3935302820160c02000000000000000000000000000000000000020c1620283036394646464646463f3e3a342d251b110600000000000000000005101a242c33393c3d3e3e3e3e3e3e3e3a39352f281f160b1113171c1f20222527292a2b2c2c2d2c2b2b2a28262422211e1a1312100c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f151a1d24292c2e34383a3c3e404244444546464545444342403d3b3a36312d2c28231c19130d08020000000000000000000000000000000000000009131d272f373c40414646464646464642413d3730271e0e050000000000000000000000000000000000000000000000030d1d262e363c3f414646464646464641403c372f271d130900000009131d272f373c40414646464646464642413d3730271e0e050000000000000000000000000000000000000000000000030d1d262e363c3f414646464646464641403c372f271d1309000000000000000000000000010b151f272f343846464646464646464645423d352d24190f04000000000000000000000000000000000000000000000000000000000000000000000001070c141a1d24292c31363a3b404546484a4d4f505151525353525251504f4e4c4a4846443f3d3a39352f2d2a251f1d18120e090300000000000000000000000000000000000000000000000000000000000000000000000000000000000b16212b353d44484a5353535353535353534e4c4841382f251a0f03000000000000000000020e19242e3840474b4d5353535353535353534b49453e362c22170c000000000000000000000000000000000000000005101c26313a43494e50535353535353534e4c4841382f21170d03000000000000000000000000000b17222c363e44494a53535353535353535353535353535353535353535353535353535353535353535353535353535353534a48443e352c21160b0000000000000006111b252d343a3e3f4646464646463b3a36312921180b0200000000000008111a202930363b4246474b4f51525352514f4c4847423c37312a211b151c232830383f4446494d5051525351504e4a4745403a342e271e170e050000000000000000000000000000000000000000030e18222a31373a3c4646464646463e3d39342c241a0e0500000000000000000000000000071019202830363a4146474c4f51525352514f4c4847423c37312a211b12090100000000000000000000000000000000000000000a15202a343c4347485353535353524746413a32281e13080000000000000000000000000000000000000008131e28323a41465353535353534c4a463f372d23180d01000000000000000000000000000000000000000a15202a343c4347485353535353524746413a32281e130800000000000000000000000000000000000008131e28323a41465353535353534c4a463f372d23180d0100000000000000000b17222c363e44494a4b4b4b4b4b4b4b4745403a31281d191d2023282b2d2f3234363738393939393837373533312e2d2a26201f1c17110d08020000000000000000000000000000000000000000000000000000000000000000000000000000070c151b20262b2f35393a3f4446484a4d4f5051525253525251504e4c4a4846423d3a38342e29251e19140d050000000000000000000000000000000000030f1a252f3941484d4e535353535353534f4d4942393020170d02000000000000000000000000000000000000000000010b151f2e3840474c4d535353535353534e4d4841392f251a0f0300030f1a252f3941484d4e535353535353534f4d4942393020170d02000000000000000000000000000000000000000000010b151f2e3840474c4d535353535353534e4d4841392f251a0f03000000000000000000000007121d2731394045535353535353535353524e473f352b20150900000000000000000000000000000000000000000000000000000000000000000000030b12181f252a2f35393b4246484b51535557595b5d5d5e5f5f5f5f5f5e5d5c5a59575553504a4a4745413b3a36302c29241d1a140f0a03000000000000000000000000000000000000000000000000000000000000000000000000000004101c27333d474f54566060606060606060605b58534a41362b20140400000000000000000007131f2a35404a52575a606060606060606060575550483e34281d1101000000000000000000000000000000000000000a16212d38434c545a5d606060606060605a58534a4133291f140900000000000000000000000004101c28333e48505557606060606060606060606060606060606060606060606060606060606060606060606060606060606057554f473e33281c10040000000000010d18232d373f464a4c5353535353524846423b33291d140a000000000008111a232c323b41464d5254585c5d5e5f5f5e5c5955534d47423c332d241e272e343e424a5053565a5d5e5f5f5e5d5b5753514b444039302920170f05000000000000000000000000000000000000000a15202a343c4347485353535353534b49453e362c20170d020000000000000000000000071119222b323a41464c5254585c5e5f605f5e5c5955534d47423c332d241b130900000000000000000000000000000000000000030f1b26313c464e53555f606060605f54524c443a3025190c030000000000000000000003030303030303010d1925303a444c525f6060606060585651493f34291e1206000000000000000000000000000000000000030f1b26313c464e53555f606060605f54524c443a3025190c0300000000000000000003030303030303010d1925303a444c525f6060606060585651493f34291e12060000000000000004101c28333e485055575858585858585853514b433a2f2625292d2e34383a3c3e414244454546464545444342403d3b3a36312d2c28231c19130d080200000000000000000000000000000000000000000000000000000000000000000000030b121820262b31373a4145474a50535557595c5d5e5e5f5f5f5e5e5d5b595755534d4946443f3835302a251e170e08020000000000000000000000000000000814202b37414b53595b606060606060605c59544b4232291f140900000000000000000000000000000000000000000007121d2731404a52585a606060606060605b59534b41372b201408000814202b37414b53595b606060606060605c59544b4232291f140900000000000000000000000000000000000000000007121d2731404a52585a606060606060605b59534b41372b20140800000000000000000000000c18232f39434b515f606060606060605f5e5951473d31261a0e010000000000000000000000000000000000000000000000000000000000000000060d151d232930363a4045474d5355545c60626466686a6a6b6b6c6c6c6b6b6a6867666361605b545654514b4846423b39352f2a251f1a150e08020000000000000000000000000000000000000000000000000000000000000000000000000713202c38444f5960636c6c6c6c6c6c6c6c6c67645c53483c3020150a0000000000000000000a17232f3b47525c63666c6c6c6c6c6c6c6c6c64615a5045392d1d1207000000000000000000000000000000000000000d1a26323e49545e66696c6c6c6c6c6c6c67645c53453b30251a0e0200000000000000000000000814202d3944505a61646c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6361594f44382c201407000000000006121e29343f4951565860606060605f55534d453b2f261b1106000000050f1a232c353e444c52575e6165686a6b6c6b6a6965625f57534d453f372d27303940444f545c606366696b6c6c6b6a6764605d55514a423b322921170b020000000000000000000000000000000000030f1a26313c464e53555f6060606060575550483e32291e130800000000000000000000050e19232b343d444c52565e6165686a6c6c6c6b6966615f57534d453e362d251b110800000000000000000000000000000000000006121f2b37434e585f626c6c6c6c6c6b615e564c4135291e150b00000000000004080a0a1010101010101010111d2a36414c565e6c6c6c6c6c6c65625b51463a2e22150900000000000000000000000000000000000006121f2b37434e585f626c6c6c6c6c6b615e564c4135291e150b000000000004080a0a1010101010101010111d2a36414c565e6c6c6c6c6c6c65625b51463a2e221509000000000000000814202d3944505a616464646464646464605d554b41382d3035393a3f4446494b4d4f5052525353525251504e4c4a4846423d3a38342e29251e19140d050000000000000000000000000000000000000000000000000000000000000000070c151d232831373c42474b5154545c60626466686a6a6b6c6c6c6b6a6a686664615f575653504a46413a3630292019130d0500000000000000000000000000000c1824303c48535d64686c6c6c6c6c6c6c68655d54443b3025190e0000000000000000000000000000000000000000000c18232f3943525c64676c6c6c6c6c6c6c68645d53483c3024180c000c1824303c48535d64686c6c6c6c6c6c6c68655d54443b3025190e0000000000000000000000000000000000000000000c18232f3943525c64676c6c6c6c6c6c6c68645d53483c3024180c0000000000000000000004101c2934404b555c6c6c6c6c6c6c6c6c6c6a63594e42362a1d1104000000000000000000000000000000000000000000000000000000000000030a11171f272f343b42464b5153575f6165666d6f71737576777878797979787876757472706e6c666663605d5554524d4745403936312b262019140d0500000000000000000000000000000000000000000000000000000000000000000000000916222f3c4854606b70797979797979797979746e64584c3c32261b0f0300000000000000000c1926323f4b57636e73797979797979797979716c615549392f23180c000000000000000000000000000000000000000f1c2935424e5a66707679797979797979746e64574d42362a1f140900000000000000000000000a1623303c4955616c707979797979797979797979797979797979797979797979797979797979797979797979797979797979706b6155483c2f23160900000000000915222e3a46515b62656c6c6c6c6c6c615f574d41382d22170b0300030d17212c353e474f565e61696e7275777879787776726e69625f5751493f373039424a515961666d6f7376777879787774706d67605c544d443b33291d140a000000000000000000000000000000000006121f2b37434e585f626c6c6c6c6c6c64615a50443a3025190e040000000000000000020d17202b353d464f565e61686d7275777879797876726e69625f5750483f372d23190d0400000000000000000000000000000000000815212e3a47535f6a6f7979797979786d685e52463d30271c1207000000050b101416171d1d1d1d1d1d1d1d1d202d3946525e68767979797979726d62564a3e312418080100000000000000000000000000000000000815212e3a47535f6a6f7979797979786d685e52463d30271c12070000050b101416171d1d1d1d1d1d1d1d1d202d3946525e68767979797979726d62564a3e31241808010000000000000a1623303c4955616c70717171717171716d675d53493f383a4146474a505355585a5c5d5e5f5f605f5e5e5d5b595755534d4946443f3835302a251e170e080200000000000000000000000000000000000000000000000000000000000810191e272e343c43474d53555d6064666d6f7173757777787979787877767573706e696763605c54524c46413b322a251e170e06000000000000000000000000000e1a2734404d59646f7479797979797979756f65564d42362a1c11060000000000000000000000000000000000000004101c2934404b55646e7479797979797979746f64594d4034271a0e000e1a2734404d59646f7479797979797979756f65564d42362a1c11060000000000000000000000000000000000000004101c2934404b55646e7479797979797979746f64594d4034271a0e0000000000000000000006131f2c3845515c67767979797979797979756a5e5245382c1f12060000000000000000000000000000000000000000000000000000000000040c151c2328313940454d52555d6065696e7276797b7d80828384848586868585848382817f7d7b797673706d6765615e5753514b46423b37312a251e170e07000000000000000000000000000000000000000000000000000000000000000000030f1b27333f495363707d868686868686868686807467584e43372b1f12060000000000000005111e2a36424d576673808686868686868686867e7164554b4034291c1004000000000000000000000000000000000000101d2a3643505d697682868686868686868074695e52463b30251a0e02000000000000000000000a1724313d4a5764707d86868686868686868686868686868686868686868686868686868686868686868686868686868686867d7063574a3d3024170a00000000000b1824313e4a56626d727979797979796e695f53493f33271f14090009141f29333e474f5961686e747b7e828485868584827f7b756e69625b51493f39424b545c606c70787c80838485868483817d7a726d665e564d453b2f261c1106000000000000000000000000000000000815212e3a47535f6a6f797979797979716c61564c41362a20160c020000000000000009141f29333d474f5960686d747a7f828485868584827f7b756e69625a51493f352b1f160c01000000000000000000000000000000000915222f3c4855626f7c8786868686857a6d61594f42392e23180c03000810171c202324292929292929292929292e3a4754616d7a86868686867f7265584c3f322519130c04000000000000000000000000000000000915222f3c4855626f7c8786868686857a6d61594f42392e23180c030810171c202324292929292929292929292e3a4754616d7a86868686867f7265584c3f322519130c0400000000000a1724313d4a5764707e7e7e7e7e7e7e7e796d655b504443484c5254545c60626567696a6b6c6c6c6c6b6a6a686664615f575653504a46413a3630292019130d0500000000000000000000000000000000000000000000000000000009111a222a303940454e53575f62676d7175797b7d8082838485858685858483817f7d7b7874706d66615e56524c443e36302920180f070000000000000000000000000e1b2835414e5b687481868686868686868175695e5246382d22170b0000000000000000000000000000000000000006131f2c3845515c677480868686868686868174685b4e4135281b0e000e1b2835414e5b687481868686868686868175695e5246382d22170b0000000000000000000000000000000000000006131f2c3845515c677480868686868686868174685b4e4135281b0e000000000000000000000714202d3a4753606d798686868686868687796c5f5346392c20130600000000000000000000000000000000000000000000000000000000060d161e262e343d434b51575e61676d72777b7f8286888a8c8e909091929292929291908f8d8c8a888583807d7a76726e6964605d55534d47433c36302920191007000000000000000000000000000000000000000000000000000000000000000005121f2b3744505b6574818d939393939393939184786a5f53473b2e211508000000000000000714202d3a46525e69778390939393939393938e8275675c5145382c1f13060000000000000000000000000000000000000a1723303d4a5663707d89959393939392867b6e61574d42362a1f1409000000000000000000000a1724313d4a5764707d8a9393939393939393939393939393939393939393939393939393939393939393939393939393938a7d7063574a3d3024170a00000000000c1925323f4c5865727f8686868686867b6e655b50443b31251a0e050e1a25313b454f59616b707a81878b8f90919292918f8c88827b726d625b5147404b545c666d757d84898d9091929291908e8a857f786e695e574d42382d22170b010000000000000000000000000000000915222f3c4855626f7b8786868686867e71685e52463e32281e1308000000000000020e1a25303b454f59606b6f7a81868b8f91929392918f8c87827b716c625b51473d31281d1307000000000000000000000000000000000815212e3a47535f6a73808d9693978e81746b60544a4034281f140908111a21282d303136363636363636363636363a4754616d7a879393938b7f7265584c3f3229241e160d040000000000000000000000000000000815212e3a47535f6a73808d9693978e81746b60544a4034281f1409111a21282d303136363636363636363636363a4754616d7a879393938b7f7265584c3f3229241e160d04000000000a1724303d4a5763707d868b8b8b8b8b8b81776c605a504e54565e6165666d6f7174757778787979787877767573706e696763605c54524c46413b322a251e170e060000000000000000000000000000000000000000000000000009121b232c343c424b51585f62696e747a7d8185888a8c8f9091919292929191908e8c8a8884807d79736d68615e565046413a322a2119100700000000000000000000000916232f3c4956626f7c89959393939392867b6e61544a3f33281c0f030000000000000000000000000000000000000714202d3a4753606d7985929393939395897c6f6356493c30231609000916232f3c4956626f7c89959393939392867b6e61544a3f33281c0f030000000000000000000000000000000000000714202d3a4753606d7985929393939395897c6f6356493c30231609000000000000000000000714202d3a4753606d7a8693939393939286796c5f5346392c201306000000000000000000000000000000000000000000000000000000060f171f2830383f444f555c60696e737a7f84888b8f929897999b9d9d9e9e9f9f9f9e9e9d9b9a99969892908c8986827f7b76716d67615e57534e46413b322b22190f04000000000000000000000000000000000000000000000000000000000000000613202d394653606c7884919e9f9f9f9f9fa196887c6f6255483c3025190d010000000000000814212e3b4754616e7b8795a09f9f9f9f9f9f9285796d6053473a2d22170b0000000000000000000000000000000000000916222f3c4854606b7683909da79fa3998d8074695e52463b3025190e020000000000000000000a1724313d4a5764707d8a979f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f968a7d7063574a3d3024170a00000000000613202d394653606c7782909893988f82776c60574d42362a20170d121e2a36424d57616b707d868e939a9b9d9e9d9d9d9c98948f877f726d62594f45515c666d78818a9196999c9e9d9d9e9d9a98928c837b6e695e544a3f33281d12070000000000000000000000000000000815212e3a47535f6a737f8c95939392857a6d615a50443a3024190d04000000000005111e2a36424d57606b6f7d858d92999b9d9c9b9c9e9c9a938f867e726d62594f433a2f24180d0100000000000000000000000000000006121f2b37434e58606d7984919e9f93887d6f665c51443b31261a0d101a232c33393c3d4343434343434343434343434754616d7a87949f988b7f7265584c3f39352f281f160c01000000000000000000000000000006121f2b37434e58606d7984919e9f93887d6f665c51443b31261a0d1a232c33393c3d4343434343434343434343434754616d7a87949f988b7f7265584c3f39352f281f160c010000000a16232f3c4855616b727f8c93979797938d80736c6158586062686d7175797c7e8082838585868685858483817f7d7b7874706d66615e56524c443e36302920180f07000000000000000000000000000000000000000000000009121b242d353e464e545c606a6f757b81868a8e929797999b9d9d9e9f9f9f9e9d9d9b999796918d8985807a746e68615a524c443c332b22191007000000000000000000000915222e3b4854606a7783909daa9fa3998c7f73665b5044382b1f1409000000000000000000000000000000000006121f2b37434e5864717e8a97a29f9f9d9083776b6054483b2f221509000915222e3b4854606a7783909daa9fa3998c7f73665b5044382b1f1409000000000000000000000000000000000006121f2b37434e5864717e8a97a29f9f9d9083776b6054483b2f221509000000000000000000000714202d3a4753606d7a86939f9f9f9f9286796c5f5346392c2013060000000000000000000000000000000000000000000000000000050e172129313a424a505960676d737b80858b9195989c9fa3a39f9d9b9a999898989898999b9c9d9fa3a29f9c9999928f8b87837e79746e69625f58524c443d342b21160a000000000000000000000000000000000000000000000000000000000000000916232f3c4956626f7c8996a1adacacacb2a8998c7f7266564c41362a1d1105000000000004101c2834404b5465717e8b98a7b1acacacaea2988a7d7063544a3f33281c0f0300000000000000000000000000000000000714202c38444f5963707d8a959fabab9f92867b6e61564d42362a1f14080000000000000000000a1724313d4a5764707d8a97a3acacb2acaba6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a3968a7d7063574a3d3024170a000000000005121f2b3744505b656e7b86929f9f948b7e72695e53463f32291f1414212d3a46535e69707d8692989f9d9b9691909192999f9e99928b7f726b60554e58606d78818e939ea09e9892909091979d9f9f9590847b6e665b5044392f23180c00000000000000000000000000000006121f2b37434e58606d78839099a1978e81756c61564c4135291f160c01000000000714202d3a46525e696f7d8691979f9f9892908e8f91979f9f98928b7f726b60554b4035291d1307000000000000000000000000000000030f1b26313c45515d67707d8a939e9a9183786d60574d42362a1f1617212c353e44494a5050505050505050505050505054616d7a8794a0988b7f726558504745413a31281e13080000000000000000000000000000030f1b26313c45515d67707d8a939e9a9183786d60574d42362a1f16212c353e44494a5050505050505050505050505054616d7a8794a0988b7f726558504745413a31281e13080000000714202c38444f59636d74818e959fa59c928a7e716a60626a6f757a7e8285888b8d8f9091929293929191908e8c8a8884807d79736d68615e565046413a322a2119100700000000000000000000000000000000000000000007101b242d363e474f585f666d737c82878e92989b9ea2a9a6a8aaa8a7a6a6a6a7a8a9a8a6a8a19e9a97928c86807a716c615e564d453c342b22190e0500000000000000000007131f2c38434e5865727e8b98a2aeab9e9184786c6053463b30251a0e00000000000000000000000000000000000814212e3a47535f6a7683909ca9aea2988b7f7265594f43382c1f13070007131f2c38434e5865727e8b98a2aeab9e9184786c6053463b30251a0e00000000000000000000000000000000000814212e3a47535f6a7683909ca9aea2988b7f7265594f43382c1f1307000000000000000000000714202d3a4753606d7a8693a0acac9f9286796c5f5346392c20130600000000000000000000000000000000000000000000000000030d172029333b434c545c606b707980868d92979da0a29f9b989892908e8d8c8c8b8b8b8c8d8e8f919299979a9d9fa39f9c9a938f8b85807b756e6a615e564e463d32271b0f03000000000000000000000000000000000000000000000000000000000006121e2b37424d576673808d99a8b1acaaacaea99d908376685e5246392d201306000000000006131f2c3845515c6675828f9ba8b0aba9abb0aa9a8e8174665b5044382b1f1206000000000000000000000000000000000004101c27333d4855616b7783909da7aea3988d8074695e52463b3025190e0200000000000000000a1724313d4a5764707d8a97a3b0b2a8a19e9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a968a7d7063574a3d3024170a0000000000030f1b27333f49535f69727f8c959f9f92867b6e615a50443b3025191f2c38434e58616e7b869298a29c938e88848384868c9299a39f93887d6f675c535f6a73808d939ea197928b858483858990959fa0969083786c60554b4034291c10040000000000000000000000000000030f1a26313c44515c666f7c87929f9e938a7d70685d52453d31281d130700000007131f2c38434f59616e7b859298a19a938c86838282858a9297a29f93877d70675d51453a2f24180d010000000000000000000000000000000a15202935404b55616b75818e98a0958c7f72695f53463e31281e1c28333e474f55575c5c5c5c5c5c5c5c5c5c5c5c5c5c616d7a8794a0988b7f72655c5c54524c433a2f24190d0100000000000000000000000000000a15202935404b55616b75818e98a0958c7f72695f53463e31281e28333e474f55575c5c5c5c5c5c5c5c5c5c5c5c5c5c616d7a8794a0988b7f72655c5c54524c433a2f24190d01000004101c28333e47515b606d79839096a1a49f92867c6f6a6f767c81868b8f9298989a9c9d9e9f9f9f9f9e9d9d9b999796918d8985807a746e68615a524c443c332b2219100700000000000000000000000000000000000000050e19222d363e485059616a6f7980878f93999fa3aaabaaaaa29f9d9b9a9a999a9a9b9d9fa2aaa9aba9a19e98928d857e756d685f574e463c342a20170c030000000000000000030f1b27323d4754606d7a85929facaca1968a7d7063574d42362a1c110600000000000000000000000000000004101c2934404b55626e7b88949fabac9f92867a6d6054473d32271b0f0300030f1b27323d4754606d7a85929facaca1968a7d7063574d42362a1c110600000000000000000000000000000004101c2934404b55626e7b88949fabac9f92867a6d6054473d32271b0f03000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000000000000020b151f29323b454d565d666d747d848c92999fa29f9c98928f8b88858381807f7f7e7e7f7f8081828486888a8d9092999b9ea19f9c98928d86817c746e6860584e43382c1f130700000000000000000000000000000000000000000000000000000000000814212e3a47535f697784919daaa7a09d9fa2aa9f93867a6d6154473a2e23170c00000000000713202d3a4653606d7985929faca69f9c9fa6ab9e9285796c605346392d20130a0000000000000000000000000000000000000b16212c38444f5964707d8a95a0acaa9f92867b6e61564d41362a1e140800000000000000000a1724313d4a5764707d8a97a3b0aca196918d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8a7d7063574a3d3024170a0000000000000b17222d38414d57606d78839099a2988f82766c62564d41362a20222e3b4854606a75828f98a29c918c817b7876777a7f87929aa49a9184796d6056626e7c87929fa19791857e797776787c838f949f9f958b7f72675c5145382c1f13060000000000000000000000000000000a15202834404a54606a73808d96a09e91857a6d60594f433a2f24180d0300000915222f3b4854606b75828f97a19f9388807a767576797e859297a2999184796d60554b4035291d1104000000000000000000000000000000040c18242f39434f59616e7b85929f9f92867b6e615a50433a2f24202d39444f5961646969696969696969696969696969696d7a8794a0988b7f72696969605d564c4135291d11040000000000000000000000000000040c18242f39434f59616e7b85929f9f92867b6e615a50433a2f242d39444f5961646969696969696969696969696969696d7a8794a0988b7f72696969605d564c4135291d11040000000b17212c353f45515c676e7a849198a2a39891857b747c82898e92999c9fa2aaa7a8aaa8a8a7a6a6a7a8a9a8a6a8a19e9a97928c86807a716c615e564d453c342b22190e050000000000000000000000000000000000020d17202b343e48505a616b707c838c92999fa4abaca7a09d999892908f8d8d8d8d8d8f909298989c9fa4abaaa29f97928a827a6e6960584e463c32291e150b0000000000000000000a16202c3945515d6774818e9aa7b1a89b8f8275695e5246382e23170b00000000000000000000000000000006131f2c3845515c6774808d9aa6b0a79b8e8174685d5245392b21160a0000000a16202c3945515d6774818e9aa7b1a89b8f8275695e5246382e23170b00000000000000000000000000000006131f2c3845515c6774808d9aa6b0a79b8e8174685d5245392b21160a00000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000000000000a141d27313a444d575f686d78808991969fa39e9b948f8a85827e7b7977757373727171727273747677797b7e8083868a8e92979b9fa29f99928e87817a6f6a6054483b2e22150900000000000000000000000000000000000000000000000000000000000815222f3b4855626e7b8895a0aca095909298a2a4998a7e7164544a3f34281c1003000000000a1723303d4a5663707d8998a2a99f9490949faba197897c6f6356493c31261b0f03000000000000000000000000000000000005101c28333e4653606c7883909da7aea3988d8074685e52463b3025190e02000000000000000a1724313d4a5764707d8a97a3b0ab9e91848080808080808080808080808080808080808080808080808080808080808080807c6e6255483b2f22150800000000000006111b262f3c44505c666f7c86929f9f948b7e71685e52463e32292834404b54626f7c89939e9f948c7f746e696a686d737e88939fa0968b7f72655e6875828f99a39e91857b716d676a6a6f78828f98a29f9285796d6053473a2e23170b000000000000000000000000000000030c18232e39424e58606d7984919aa1978e81746b60554b4035291f150b0105111e2a36414c56636f7c89939e9e938b7e736d6868666d717c85929fa1968c8073675d5145392c2013070000000000000000000000000000000007121d27313e46525e69727f8b959f988f82756c61554c41352923303c4955616c70767676767676767676767676767676767a8794a0988b7f767676766d685d5245392c20130600000000000000000000000000000007121d27313e46525e69727f8b959f988f82756c61554c413529303c4955616c70767676767676767676767676767676767a8794a0988b7f767676766d685d5245392c20130600000005101a232834404b555e686f7c86929aa4a197908381878f949b9fa3abacaaaba39f9d9c9b9a999a9a9b9d9fa2aaa9aba9a19e98928d857e756d685f574e463c342a20170c030000000000000000000000000000000009141f29323d46505a626c717d8690959fa3ababa49f9b95908c898584828180808081828385888b8f93999fa2aaa9a19e938f847b6f6a60584e443b30271d1207000000000000000004111d2935414b55626f7c88959fabac9f92877b6e61544a3f34281c100300000000000000000000000000000714202d3a4753606d7985929eabaca095897c6f63564c413529190f0400000004111d2935414b55626f7c88959fabac9f92877b6e61544a3f34281c100300000000000000000000000000000714202d3a4753606d7985929eabaca095897c6f63564c413529190f0400000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000000000006111c262f39434c565f696e7a828d929ea0a09d938e88827d7975716e6c666867666565656565666869666d6e7174767a7d81858a8e92989ea19f99928e867c6f6256493c2f2316090000000000000000000000000000000000000000000000000000000005111e2a36414c5666727f8c99a7aa9d908386929fab9b8e8175665c5044382c1f120600000005121e2a36424d576774808d9aaaa1979083909ca9a99a8d807367584e43372b1f12060000000000000000000000000000000000000b161f2b3744505b65717e8a95a0acaa9f92867b6e61564c41362a1e14080a0a0a0a0a0a0a0a1724313d4a5764707d8a97a3b0a99c8f827673737373737373737373737373737373737373737373737373737373737373736e6a5f53473a2e211408000000000000000a141d28343f4a545f6a737f8c95a09f92857b6e615a50443a302c3845515c6674818e9aa59c9082786c615f575d616c74818d99a49d9083776a616d7a86929fa0958a7d7069605c5860666e7b86929fa2978a7e7164544a3f34281c100300000000000000000000000000000007121c27303c45515c676f7d88939f9d93897d70675d51453d31271d12070714202d3946525e6875828f9ca59b8e81756c615d565c606a717e8b96a09f92857a6d6053473a2f24180c00000000000000000000000000000000010b151f2a36424d56606c788390999e948a7e71675d51453c3026313d4a5764707d8283838383838383838383838383838383909ca99e9184838383827a6d6054473a2d211407000000000000000000000000000000010b151f2a36424d56606c788390999e948a7e71675d51453c30313d4a5764707d8283838383838383838383838383838383909ca99e9184838383827a6d6054473a2d21140700000000081118232e39434c565f6a717e88939fa5a095908d93999fa6acaaa8a09d999992908f8e8d8d8d8d8f909298989c9fa4abaaa29f97928a827a6e6960584e463c32291e150b000000000000000000000000000000030d1925303b444e58626c717e879298a0a7afa79f99938e88837f7c79777574737373747577797c7f83878d92989ea5ada59e9691857c6f6a5f564c42392e23180c0300000000000000010d18242f3a47535f6a7683909da9afa3998c7f73665c5044382b1f14090a0a0a0a0a0a0a0a0a0a0a0a0a0a121f2b37434e5864717e8b97a2adaa9d9083776b6054443a2f24190700000000010d18242f3a47535f6a7683909da9afa3998c7f73665c5044382b1f14090a0a0a0a0a0a0a0a0a0a0a0a0a0a121f2b37434e5864717e8b97a2adaa9d9083776b6054443a2f2419070000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000000000000000b17222d38424b555e686e7b838f949da49c969189817c76706d666561605b545a5959585858595a5b545c60626467676d7174797d81868c91969da09e9285796d6053473a2d201407000000000000000000000000000000000000000000000000000000000714202d3946525e687683909da9a79a8d80828f9ca99f9285796d6053463a2d2013090000000714212d3a46535f697784919daa9e91857e8a97a8aa9e9184776a5f53473a2e211509000000000000000000000000000000000000030f1b27333f4953606c7884919da8aea3988d8074685e52463b3025191616161616161616161724313d4a5764707d8a97a3b0a99c8f82766967676767676767676767676767676767676767676767676767676767676767625f584e43372b1f120600000000000000020b17232e38424e58606d78839099a2978f82756c61564c41362d3a4653606d7985929fa2988a7d70655b534d5259616e7b87939f9f95887b6f65727e8b99a39d9184786c6057514e545e6874818d9aa99c8f8276665c5044382b1f1206000000000000000000000000000000000b151e2934404b55606b74808d96a19e9184796d60594f43392f24180c0814212e3b4754616e7a86929f9f94887b6e615a524c5058606c7884919da2978b7e7164554b4035291d100400000000000000000000000000000000030d1925303b44505b666f7c87929f9e91847a6d60584e42382e323f4b5865727e8b8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f90949faba096918f8f8f877a6d6154473a2e21140700000000000000000000000000000000030d1925303b44505b666f7c87929f9e91847a6d60584e42382e3f4b5865727e8b8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f90949faba096918f8f8f877a6d6154473a2e211407000000000007121d27303b444e58616c73808c939ea7a09d9a9fa4abaca59e9b96918c898684828180808081828385888b8f93999fa2aaa9a19e938f847b6f6a60584e443b30271d120700000000000000000000000000010b151f2a36424d56606a717e889299a2aaafa49c959087817c77726f6d6668676766676768666c6f72767b80868e939fa3aaa8a09792867c6f685e544b403428201509000000000000000007131d2b37434e5864717e8b97a2adab9e9184786d6053463b31251a16161616161616161616161616161616212e3a47535f6a7683909ca9aea2988b7f7265594f4332281e1308000000000007131d2b37434e5864717e8b97a2adab9e9184786d6053463b31251a16161616161616161616161616161616212e3a47535f6a7683909ca9aea2988b7f7265594f4332281e13080000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000000000000030f1c28333f4a545d676d7a8491959fa39f928d847d756f6a64605c545553504a4d4c4c4b4b4c4c4d4e4a51535557555d6064666d70757a7f848a9095978c7f72675d5145392c1f1306000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a87939faca7978a7e7f8c99aba297897c6f6356493c31251a0e0200000815222e3b4855616e7b8896a0a89b8e827a8796a0aca096887b6f6255483c31251a0e020000000000000000000000000000000000000b17222d3844505b66717e8a96a0acaa9f92867a6e61564c41362a232323232323232323232324313d4a5764707d8a97a3b0a99c8f8276695c5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a55534e463c31261a0f02000000000000000006111c26303c44515c666f7c87929f9e938a7e71685e52463e323c4956626f7c8997a29f9285796d6053494246535f697683909da7988b7f726875828f9bab998c8073655b5045424d5663707c8998a39f9285796d6053463a2d20130700000000000000000000000000000000030c18232f39434f59606d7984919ea1968d80746b60554b4035291e150b1825323e4b5865717e8b99a39c908376695f53464144505b65727f8c99a99c8f8276675d5145392c1f1306000000000000000000000000000000000009141f28333f4a545f6a74808d96a1978d80746a60544a3f34323f4b5865727e8b989c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9fa6b0a8a09e9c9c94877a6d6154473a2e211407000000000000000000000000000000000009141f28333f4a545f6a74808d96a1978d80746a60544a3f343f4b5865727e8b989c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9fa6b0a8a09e9c9c94877a6d6154473a2e2114070000000000000b151e29323c46505a606c77818e96a0acaaa7acafa7a09d938e89847f7c7a777575747373747577797c7f83878d92989ea5ada59e9691857c6f6a5f564c42392e23180c0300000000000000000000000007121d27313946525e696f7c86929aa3ababa39f928d837c756f6a6662605c545a5a5a5a5a545b606265696e747b818a9298a2a9a9a19891847a6e665c51453c31261a0e0500000000000000010f1b26323c4753606d7985929fabada1968a7d7063574d42362a23232323232323232323232323232323232934404b55626e7b88949fabac9f92867a6d6054473d3221160c010000000000010f1b26323c4753606d7985929fabada1968a7d7063574d42362a23232323232323232323232323232323232934404b55626e7b88949fabac9f92867a6d6054473d3221160c010000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000000000005101a232b3844505b666d79839096a0a299928b8079706b625f5853514b4846443f40403f3e3e3f3f4041404446484b4c5154545c6063686d72797e838a91857a6d60554b4035291d100400000000000000000000000000000000000000000000000000000004111d2935414c5565727e8b9aa4aca095877a7d8999a3a9998d807366574d42362a1e12050004101d2935404b5565727f8b98a8a9988b7f7784919daaa8998c7f7366574d42362a1e120500000000000000000000000000000000000006111b28333f4a54606d7884919ea8aea2988d8073685e52463a30303030303030303030303030313d4a5764707d8a97a3b0a99c8f8276695c4f4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4847433c332a201509000000000000000000000a141e2834404a545f6a73808d95a09e92857a6d615a50443a3f4b5865727e8b98a99c8f8276665c504138424d576673808d99a69b8e8174677784919eab96897d706353493f3b4653606d7986929fa298887b6e6255483b2f221508000000000000000000000000000000000007121d27313d45515d67707d89939e9f93887d6f675d51453d30271c121d2935414c566875828e9bab998c7f7266574d42353f4953626e7b8897a29f92867a6d6053473a2d2014070000000000000000000000000000000000020b17222d38424e58606d7984919e9f93877c6f665c50443b303f4b5865727e8b98a9a49f969393939393939393939394979ea8a39b98939393877a6d6154473a2e2114070000000000000000000000000000000000020b17222d38424e58606d7984919e9f93877c6f665c50443b3f4b5865727e8b98a9a49f969393939393939393939394979ea8a39b98939393877a6d6154473a2e211407000000000000030c17202a343e44505b656d7a84919daab6b4b3a9a0959189817c7773706d6769686766676768666c6f72767b80868e939fa3aaa8a09792867c6f685e544b4034282015090000000000000000000000000c18232f3943505a616e7b859198a3acaca399928b80786f6a625f585653504a4e4d4d4d4e4a505355575e61696e757e869297a2aaaaa1969082786d60574e42372b21170b00000000000000000a151f2c3845515d6774808d9aa6b0a89c8f8275695e5346382e3030303030303030303030303030303030303845515c6774808d9aa6b0a79b8e8174685d5245392c201304000000000000000a151f2c3845515d6774808d9aa6b0a89c8f8275695e5346382e3030303030303030303030303030303030303845515c6774808d9aa6b0a79b8e8174685d5245392c201304000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000000b17212a36424d57606c78818f959fa29892877e736d676059534e46454040434546464544423f3b3a373134383a3b3e4145474a5053565d60666d71787e847f73675d5143392f24180c000000000000000000000000000000000000000000000000000000000613202c3945515d6776828f9cacaa9d9184777a86929faa9d908477695e53463a2d2114070006131f2c3945515d6776828f9ca9a197887c74818d9aa7aa9d908377695e53463a2d211408000000000000000000000000000000000000000b17222d3844505c66717e8b96a1acaa9f92867a6e61564c413d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4a5764707d8a97a3b0a99c8f8276695c4f43404040404040404040404040404040404040404040404040404040403b3a37312a21180e0300000000000000000000020c18232e39424e58606d79839199a1978e81756c61564c41414e5b6774818e9aa79a8d807467544a3f2f3e4b5764717e8a97a49d9083776d7a86939fa399877b6e6154473b3845515c677784909daa978a7e7164574b3e3124180b0000000000000000000000000000000000010b151f2935404b55616b74818e97a19a9184796d60584e42392e2318202d3946525d687884919ea996897c706356493d31394653606c7985929fa398897c6f6356493c3023160900000000000000000000000000000000000006111c262f3c45515d67707d8a949e999083786d60574d42363f4b5865727e8b97a19a938a86868686868686868686878c97a39b918b868686867a6d6154473a2e21140700000000000000000000000000000000000006111c262f3c45515d67707d8a949e999083786d60574d423f4b5865727e8b97a19a938a86868686868686868686878c97a39b918b868686867a6d6154473a2e2114070000000000000008131e28313a46535e696f7d86929facb9b9ada29791837d75706b6663605d555b5a5a5a5a545b606265696e747b818a9298a2a9a9a19891847a6e665c51453c31261a0e050000000000000000000004101c2934404b55616c76828f97a1aaafa49a92877e736d665f58534e4946443f41404040413f4446484d53565e616c717c859298a2aca89f948d80736a5f53473e33281c10040000000000000004101d2935404b55626e7b88949fabac9f93877b6e61544a3f3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4753606d7985929eabaca095897c6f63564c4135291d11040000000000000004101d2935404b55626e7b88949fabac9f93877b6e61544a3f3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4753606d7985929eabaca095897c6f63564c4135291d1104000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000004101c28333a46525e69727f8b939ea39992867d716c605c554f47434446494d5051525352514f4c4847433c37332d2f2f35393a3f44464c52545c60656c7179796d60554b4131271f1911060000000000000000000000000000000000000000000000000000000714212d3a4754606d7a86929faca79a8d81747683909da9a095877b6e6154483b2f24180c000714202d3a4753606d7a86929fab9e928579717e8a97a7aca095877b6e6154483b3025190d0100000000000000000000000000000000000006111c28343f4a54606d7984919ea8aea2988d8073685e52494949494949494949494949494949494a5764707d8a97a3b0a99c8f8276695c4f43363434343434343434343434343434343434343434343434343434342f2e2b2620180f0600000000000000000000000007121c27303c45515c676f7c87939f9e938a7e70685d5246434f5c6976828f9ca5988b7f7265584c3f2e3c4956636f7c8996a29f9285786f7b889aa49f9286796c6053463934404b556975828f9ca5998c7f7266594c3f3326190c000000000000000000000000000000000000030d18242f3a434f59606d7a85919ea0968d80736a60544a4034281e212e3a4754616d7a8796a1a297877a6d6054473a2d3744505b6576828f9caa988b7f7265584c3f3225190c000000000000000000000000000000000000000a141d2935414b55616c75828f98a0958b7f72695e52463e3a4754616d7a85919a93867d797979797979797979797a8794a0988b7f7979797976685e5246392d201307000000000000000000000000000000000000000a141d2935414b55616c75828f98a0958b7f72695e52463e4754616d7a85919a93867d797979797979797979797a8794a0988b7f7979797976685e5246392d201307000000000000010d19242f3a43505a616e7b859299a3aebbb8ab9e92857a706b6360595653514b4e4d4d4d4e4a505355575e61696e757e869297a2aaaaa1969082786d60574e42372b21170b0000000000000000000006131f2c3845515c67707d8a949fa9b0a69f93887e716c605c544e47433c3a38342e3433342d3338393c42464d525a616a6f7c86929aa4afa69f92877b6e62594f44392d20150a00000000000000000c18242f3947535f6a7683909ca9afa4998c8073665c504949494949494949494949494949494949494949494e5864717e8b97a2adaa9d9083776b6054443a2f24190d0100000000000000000c18242f3947535f6a7683909ca9afa4998c8073665c504949494949494949494949494949494949494949494e5864717e8b97a2adaa9d9083776b6054443a2f24190d01000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000000000714202c38444f59616e7b86929fa59f92877d706b615a514b4344495053565a5c5e5f5f5f5e5c5955534e46443f382f27343c424a5053565b5d5f5f5b60666c6d675c51454039312b2317110a0200000000000000000000000000000000000000000000000004101c2834404b5464717e8a99a3aea7978a7e7173808d99aba7988b7f7265554b4035291d10040a1724303d4a5763707d8a98a3a89b8f82756e7a8795a0aca7988b7f7265564c4135291d1105000000000000000000000000000000000000000b17232e3844515c66727e8b96a1adaa9f92867a6d615656565656565656565656565656565656565764707d8a97a3b0a99c8f8276695c4f433629272727272727272727272727272727272727272727272727272722211f1a150e0600000000000000000000000000000b151e2834404b55606a73808d96a09e91857a6d61594f43505d6a7683909da4978a7e7164574b3e313b4855616e7b8894a19f9286796f7c8996ac9e918578655b5044372e414e5b6774818e9aa6998d8073665a4d4033271a0d0000000000000000000000000000000000000007131d28313d45525d68717e8a939e9f92877c6f665c51443c3026232f3c4956626f7c8995a89f928578685d5245392c333f49536774818e9aa79a8d8174675a4e4134271b0e00000000000000000000000000000000000000020b18242f3a43505a616e7b86929f9f92867b6e61594f433946525e68707d88939a92857a6e656c6c6c6c6c6c6d7a8794a0988b7f726c6c6c6c5e564c41362a1d110500000000000000000000000000000000000000020b18242f3a43505a616e7b86929f9f92867b6e61594f4346525e68707d88939a92857a6e656c6c6c6c6c6c6d7a8794a0988b7f726c6c6c6c5e564c41362a1d110500000000000004111d2935414c55626c76828f97a1abb5afacada2978e81776c605a504947454042414040413f4446484d53565e616c717c859298a2aca89f948d80736a5f53473e33281c1004000000000000000003101c28343f4a54606d7984919ea6b0aa9e948c7f736c625a504a423c37322d2c282327272722282b2d31363b42465058606a707e88939fa8aea3998f82766c6155493c31261b0f000000000000000007121d2b37434e5864717e8a97a1adab9e9184796d6056565656565656565656565656565656565656565656565f6a7683909ca9aea2988b7f7265594f4332281e130800000000000000000007121d2b37434e5864717e8a97a1adab9e9184796d6056565656565656565656565656565656565656565656565f6a7683909ca9aea2988b7f7265594f4332281e130800000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000000000a16232f3c4855616b75828f98a29d938b7e716b60595045414950535b606366696b6c6c6c6b6866625f58535049413d333d464e545b6063676a6b6c6c6b696663605c54514b433d3528221c140b02000000000000000000000000000000000000000000000006131f2c3845515c6675818e9babaca095877a6e707d8999a3a89c8f8275675d5145392c1f1306121f2b37434e586774818d9aaaa8988b7f72687784919daaa99c8f8376685e5246392d2013070000000000000000000000000000000000000006111c2834404a54606d7984919ea9aea2988d8073686363636363636363636363636363636363636364707d8a97a3b0a99c8f8276695c4f4336291c1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1514120f0903000000000000000000000000000000030c18232e39434e58606d7984919aa1978e81746b61564c515e6a7784919da3978a7d7064574a3d313b4754616e7a8794a1a399867a707d8a96a39e9184776b5e493f3334414d5a6774808d9aa79a8d8174675a4e4134271b0e000000000000000000000000000000030608090d0c161f2935414c56616c75818f97a2999083786d60584e42382e23313e4a5764717d8a97a49d9084776a564c4135292d404c5966737f8c99a69c8f8276695c4f4336291c10000000000000000000000006060606060606060007131d28313e46535e69727f8c95a0988e81756b61554b40414c56616b74808d95978f82776c6058606060616d7a8794a0988b7f726560605f524c443a3025190d010000000000000000000000000000020608080c0e07131d28313e46535e69727f8c95a0988e81756b61554b414c56616b74808d95978f82776c6058606060616d7a8794a0988b7f726560605f524c443a3025190d010000000000000613202c3945515d67717e8b949fa9b3aba39fa3a99e938c80736c61584e453b352f3433342d3338393c42464d525a616a6f7c86929aa4afa69f92877b6e62594f44392d20150a000000000000000006121f2b3844505c66727f8c96a0acaea2988f82776c605a50443f38302b26201f1c171a1a1a171c1f20252a30363e464e58616c73808d96a1acab9f948a7d7064584e43372b1d120700000000000000010f1a26313c4653606d7985929eacada1968a7d70646363636363636363636363636363636363636363636363636e7b88949fabac9f92867a6d6054473d3221160c01000000000000000000010f1a26313c4653606d7985929eacada1968a7d70646363636363636363636363636363636363636363636363636e7b88949fabac9f92867a6d6054473d3221160c0100000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000007131f2c38434f5963707d8a949ea1978e81746c62594f47444c535b60656c6f7376787979787775726e6a64605b534e443f464e585f666c707477787979777673706d66605d554f4740332d261d140a00000000000000000000000000000000000000000000000713202d3a4653606d7985929fabaa9d908477686d7a86929fac9f92867a6d6053473a2d20140a15212e3a47535f6a7884919eaba196887b6e6774818d9aabac9f92867a6d6154473a2f24180c00000000000000000000000000000000000000000c18232e3945515c66727f8b97a1adaa9f92867a707070707070707070707070707070707070707070707d8a97a3b0a99c8f8276695c4f4336291c100d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0808060200000000000000000000000000000000000007121d27303d45515d67707d88939f9e938a7d70685d52515e6b7884919ea3968a7d7063574a3d303a4754616d7a8794a0a194877a717d8a97a49d9184776a5e51442d34404d5a6773808d9aa69b8e8175685b4e4235281b0f00000000000000000000000000040a0f1315161a1d1f1924303a44505a616e7a85929ea0958c7f736a5f544a3f3428323f4b5865727e8b98a59c8f8376695c50432f24323e4b5865717e8b98a49d9083776a5d5044372a1d1100000000000002060a0c0d131313131313131313130c161f2a36424d57606d788390999e938a7d70675d51453c444f59606d79839098948c7f726a60554b54616d7a8794a0988b7f726558535346413a32281e13080000000000000000000000000003090e121415191b1d1e161f2a36424d57606d788390999e938a7d70675d5145444f59606d79839098948c7f726a60554b54616d7a8794a0988b7f726558535346413a32281e130800000000000004111d2935414c55606d7a85929ea6b0aaa2999299a1a59c928a7e716a60574d43392f26272722282b2d31363b42465058606a707e88939fa8aea3998f82766c6155493c31261b0f00000000000000000713202d3a4653606d7884919ea8b2a99f92867b6e655b50483e342e261e1b1312100c060d060b0f12131a1f252a343d46505a606d7984919ea8b0a69c8f83766a5f5347392e23180c000000000000000009151f2c3845515c6673808d9aa4afa99c8f82757070707070707070707070707070707070707070707070707074808d9aa6b0a79b8e8174685d5245392c201304000000000000000000000009151f2c3845515c6673808d9aa4afa99c8f82757070707070707070707070707070707070707070707070707074808d9aa6b0a79b8e8174685d5245392c2013040000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000915222f3b4854606b7683909da69e91857a6d605a5047454d565e656c71787c80838485868584827f7b77716c65605850494e58606a6f787d81838586858483807c78726d67605952443f382f261c1106000000000000000000000000000000000000000000030f1b27333f495363707d8a98a2aeaa9a8d807367677683909ca9a3988a7d7063574a3d31261b0f15222f3c4855626f7b8896a1ab9e9184786a64717d8a99a3afa3998b7e7164554b4035291d10040000000000000000000000000000000000000007121c2834404b54606d7985919ea9aea2988e817c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7f8c99a6b2a99c8f8276695c4f4336291c1003010101010101010101010101010101010101010101010100000000000000000000000000000000000000000000000b151e2935404b55606b74818d96a19e91847a6d60594f5e6a7784919da3978a7d7064574a3d313b4754616e7a8794a1aa93877a707d8a96a39e9184776b5e51442f34414d5a6774808d9aa79a8e8174675b4e4134281b0e0000000000000000000000040a0f151b1f212226292b2c2c28323e46525e68717e8b949e9f92877c6f665c50443c2f33404c5966737f8c99a69c8f8275695c4f423629313e4b5764717e8a97a49e9184786b5e5145382b1e120000000000070d121619192020202020202020202020201a25313b44505c666f7c87939f9e9184796d60584e413d45515c676f7c86929f92867c6f675d5154616d7a8794a0988b7f7265584c3f3936302820160c020000000000000000000000060c11151a1e212226282a2b2c2c25313b44505c666f7c87939f9e9184796d60584e4145515c676f7c86929f92867c6f675d5154616d7a8794a0988b7f7265584c3f3936302820160c020000000000000613202c3945515d67737f8c97a2adaea29892869196a1a49f92867c6f695e554b41382d2217171c1f20252a30363e464e58616c73808d96a1acab9f948a7d7064584e43372b1d120700000000000005111e2a36414c5664707d8a96a1adada1978c7f72695e53493f3628231c140c0a060300000000000306090e1419222b343e45515d67717e8a96a0acab9f94887c6f62544b4034281c10040000000000000004101c2834404b54616e7b87939facac9f93877d7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7d85929fabaca095897c6f63564c4135291d1104000000000000000000000004101c2834404b54616e7b87939facac9f93877d7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7d85929fabaca095897c6f63564c4135291d11040000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000005111e2a36424d56636f7c89959f9f958a7e71685d5248434d575e686d777e84898d8f91929292918f8c88837e786f6a605b5354606a6f7c83898e9092929291908c89847f796f6b635c504a42382d22171007000000000000000000000000000000000000000005121f2b3744505b6574818e9aaaaea398897d70636673808c99a9aa9a8d817467584e43372b1f121d2935414c5666727f8c99a8ac9b8e817468606d7a86929facab9b8f8275675d5145382c1f130600000000000000000000000000000000000000000c18232e3945515d67727f8c97a1adaa9d938e898989898989898989898989898989898989898989898c919ca8b5a99c8f8276695c4f4336291c100300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c18242f39434f59606d7984919ea1968e81746b60555d6a7783909da4978a7d7164574a3e313b4855616e7b8894a1a2988679707c8996a39e9184786b564c413534414e5b6774818e9aa69a8d8073675a4d4034271a0d00000000000000000000070e151b20262b2e2f3336383939393736414c56626c76828f98a2999083786d60574d41382d404d596673808c99a69b8e8275685b4f423528313d4a5764707d8a97a39e9285786b5f5245382c1f12000000010a12191e2325262d2d2d2d2d2d2d2d2d2d2d2d2d2d28343f4a54606a74808d97a1968d80736a5f53493f404b555f6a727f8b94999184796d605a54616d7a8794a0988b7f7265584c3f322a251e160e050000000000000000000002090e171d1f262b2e2f3235373839393938343f4a54606a74808d97a1968d80736a5f5349404b555f6a727f8b94999184796d605a54616d7a8794a0988b7f7265584c3f322a251e160e05000000000000000714212d3a4754606d7a85929fa9b3a99f92867c849198a2a29891847b6e675d53493f332722190f12131a1f252a343d46505a606d7984919ea8b0a69c8f83766a5f5347392e23180c0000000000000714202d3946525e6876828f9ca8b2ab9e9185796d60574d41382d2417110a02000000000000000000000002091019222935404b55606c7884919dabb0a69a8e8174665c5145382c1f130600000000000000000c18232e3946535f6976828f9ca9afa499938a89898989898989898989898989898989898989898989898989899297a2adaa9d9084776b6054443a2f24190d010000000000000000000000000c18232e3946535f6976828f9ca9afa499938a89898989898989898989898989898989898989898989898989899297a2adaa9d9084776b6054443a2f24190d010000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000714202d3a46525e6975828f9ba79d9083766c61564c414b555e696e7a828b9196999c9e9f9f9f9e9b9995908a837c726c655c5c666f7c8690959a9d9e9f9f9e9c9996918b847d736e605b544a3f332822190c02000000000000000000000000000000000000000613202d394653606c7885919eabac9f9286796d60636f7c8997a2ab9e9184786a5f53473a2e2115202c3945525d687683909ca9a49a8a7e71645d687683909ca9ac9f9285796d6053473a2e23170b000000000000000000000000000000000000000007121d2935404b55606d7985929ea9afa59d9a96969696969696969696969696969696969696969696999ca3adb5a99c8f8276695c4f4336291c100c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0706040000000000000000000000000000000000000000000000000007121d27313d45515d67707d89939d9d93897d70675d5c6976838f9ca4988b7e7165584b3e323c4855626f7b8895a29f9285796f7c8895a99f928578685d52453935424e5b6875818e9ba6998c807366594d4033261a0d00000000000000000109101920272b32373b3c40434546464544423e44505a616e7b86929f9f958c7f72695f53493f33404d5a6673808d99a69b8e8174685b4e413528303d4a5663707d8996a39f9285786c5f5245392c1f120000000a131c232a2f32333939393939393939393939393939392e38424e58606d7a85919e9f92877c6f655b50443a434e58626d75828f97968e81746c6157616d7a8794a0988b7f7265584c3f322519130c0500000000000000000000050d141a22282d31373a3b3f414445454646454441424e58606d7a85919e9f92877c6f655b5044434e58626d75828f97968e81746c6157616d7a8794a0988b7f7265584c3f322519130c050000000000000006121e2b37424d5765727e8b97a2adada1978c7f727c86929aa4a1969083796d655b50443e342b20170d090e1419222b343e45515d67717e8a96a0acab9f94887c6f62544b4034281c100400000000000814212e3b4754616e7a87939facafa3998c7f72675d51453b2f261b1206000000000000000000000000000000071018242f3944505b66727e8b99a3aeac9f9285796d6053463a2d201308000000000000000007121d2a36424d5764707d8a96a1adaba49f9796969696969696969696969696969696969696969696969696969fa2a9aea2988b7f7265594f4332281e13080000000000000000000000000007121d2a36424d5764707d8a96a1adaba49f9796969696969696969696969696969696969696969696969696969fa2a9aea2988b7f7265594f4332281e1308000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000814212e3b4754616e7b87939fa1968a7e71645a504445515d676e7b848f949ea0a8a39f9c9a999a9b9e9f9d9590877f776d66606d79849198a0a79f9d979595989c9f9e96918780746c665b50443f342b1e140a00000000000000000000000000000000000000091623303c4956636f7c8997a1ada99c8f8276675d606d7985929faba196887b6f6255483c302419212d3a4754606d7a86929fac9f93877a6e615666737f8c99a8aea2988a7d7064544a3f34281c100300000000000000000000000000000000000000000c18242f3945515d67727f8c97a2adafa9a7a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a6a8adb5b5a99c8f8276695c4f4336291c1919191919191919191919191919191919191919191313100c070000000000000000000000000000000000000000000000010b151f2935414b55606b74818e97a19e9184796d60596875818e9ba6998c807366594d40313d4a5763707d8a96a39e9184776e7a8797a1a298877a6d6054473a36424d57697683909cac988b7e7265584b3f3225180c00000000000000010a131b222b32373c4347494d5052525352514e4b4746535e69727f8b949f9f92867b6e655b50443b404d5a6673808d99a69b8e8174685b4e413528303d4a5663707d8996a39f9285786c5f5245392c1f12000007121c252e353b3e4046464646464646464646464646464646464645525d68717e8a949f999083776c60564c413c46515b616d7a85919a938a7e71695e616d7a8794a0988b7f7265584c3f322519080200000000000000000000060f171f252a34393c4247484c4e505152535252514e4c48525d68717e8a949f999083776c60564c4146515b616d7a85919a938a7e71695e616d7a8794a0988b7f7265584c3f322519080200000000000000000814212e3a47535f697683909da9b3ab9e9185796d717e88939fa59f958e81776c605a50463c32291f150b02091019222935404b55606c7884919dabb0a69a8e8174665c5145382c1f130600000000030f1b27333f495364717e8b9aa4afac9f92867a6e61554b4033291d140a000000000000000000000000000000000007121d28333f4a54616d7a86929facaea298897d706356493d2f24190d0100000000000000000e1a26313b4653606d7984919eabb5afaca3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3abadb3ac9f92867a6d6054473d3221160c0100000000000000000000000000000e1a26313b4653606d7984919eabb5afaca3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3abadb3ac9f92867a6d6054473d3221160c01000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000004101d2935404b5565727e8b99a49e9184786d605346434e58606d798391969fa6a49f9992908e8d8d8e91969a9f99928c81786d66717e8a96a0a89f95908a88898b8f949da099938c81786c605b51463d30261c1106000000000000000000000000000000000006121f2b37434e586773808d9aa9b2a8988c7f7265555c6675828f9ba8a8998c7f7266564c4135291d27333f495364717d8a99a3aa9d908377685e55626f7c8896a1adaa9b8e8174665c5044382b1f1206000000000000000000000000000000000000000007121d2935404b55606d7a85929faab3b5b4b1acaa9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa3a6abb4b5a99c8f8276695c4f43362926262626262626262626262626262626262626262626201f1c18120b0300000000000000000000000000000000000000000000030d18242f3a434f59606d7a84919ea1968d80746b6066727f8c99ab9b8e817568574d42373f4a5465727f8b98a59b8f8275697885929eaa95887c6f6255493c3a46535e697885919ea49a897c6f6256493c2f231609000000000000000a131c252d343c43474e5355595c5e5f5f5f5d5b5853514d57606c77829098a3989082776c60574d42404d596673808c99a69b8e8175685b4e423528303d4a5763707d8a96a39e9285786b5f5245382c1f1200020d19232e3740464b4c535353535353535353535353535353535353534c56616c76828f989f948b7e71685e52463d3f46525e68707d88939f92857b6e66616d7a8794a0988b7f7265584c3f3225190c00000000000000000000060f18212930363e45494d5355595b5d5e5f5f5f5e5d5b58555356616c76828f989f948b7e71685e52463f46525e68707d88939f92857b6e66616d7a8794a0988b7f7265584c3f3225190c0000000000000000000815222f3b4855626e7b88959fabafa3998c7f73676c73808c939ea79e938c7f736c61584e443b31271d120700071018242f3944505b66727e8b99a3aeac9f9285796d6053463a2d2013080000000005121f2b3744505b6575818e9bacb6a99c8f8276685e5243392f21170b020000000000000000000000000000000000010b17222d3846525d6875828f9ca8b4aa9a8d807367564c4135291d1104000000000000000009141f2c3844505c6673808c99a3afbbb9b1acaa9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa7a9afb8bab1a79b8e8174685d5245392c20130400000000000000000000000000000009141f2c3844505c6673808c99a3afbbb9b1acaa9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa7a9afb8bab1a79b8e8174685d5245392c20130400000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000613202c3945515d6775828f9ca8998c7f72665c50444854606a74808d95a0a8a499938d87838180808184888d92989f938e81786c74818e9ba8a09690837d7b7c7e828991969f9f938e81746d62584e42382e23170b01000000000000000000000000000000000815212e3a47535f6a7784919eaaaca196887c6f62555465717e8b98a7a99c908376685d5246392d202b3744505b6574818e9babaa9a8d80736756535f6a7884919eabab9e9285796d6053463a2d20130a0000000000000000000000000000000000000000010d18242f3945515d6773808c98a2aebab1a7a09d93939393939393939393939393939393939393979aa2abb5a99c8f8276695c4f433633333333333333333333333333333333333333333333332d2c28231d150c030000000000000000000000000000000000000000010407131d28313d45525d68707d8a939e9f93887d6f6763707d8a99a39e918478695f53473f44505c6675818e9ba9998c7f736976838f9ca5988b7f7265574d423f4854616e7b8796a19f93867a6d6053473a2d20140700000000000008121c252e373f464e54585f6266696b6c6c6c6a6864605d55515b656e7b86929f9f948b7f72695e5346404c5966737f8c99a69b8f8275685c4f423529313e4a5764717d8a97a49e9184786b5e5145382b1e120006121e2a3540495157596060606060606060606060606060606060606060605a616e7b86929f9e92857a6d61594f4239414c56616b74808d95979083786d616d7a8794a0988b7f7265584c3f3225190c000000000000000000030d18212a333b42465055575f6265686a6b6c6c6c6b6a6865615f575a616e7b86929f9e92857a6d61594f42414c56616b74808d95979083786d616d7a8794a0988b7f7265584c3f3225190c0000000000000000030f1c28333f4a5465727f8b98a7b1ac9f92867b6e61606c77818e95a0a59f93887e716a60564d43392f231812080007121d28333f4a54616d7a86929facaea298897d706356493d2f24190d010000000613202d394653606c7885929eabb3a9988b7f7265564c4131271d0f050000000000000000000000000000000000000006111c2935414c5665727f8b98aab4aa9d918477685d5245392c201306000000000000000003101c28343f4a54616e7b87929facb9b1a7a0939393939393939393939393939393939393939393939b9ea5afb8aca095897c6f63564c4135291d110400000000000000000000000000000003101c28343f4a54616e7b87929facb9b1a7a0939393939393939393939393939393939393939393939b9ea5afb8aca095897c6f63564c4135291d110400000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000714202d3a4753606d7a86929fa096887b6e62544a414d56626f7c87939fa7a4999387807a7674737375777b80868e939f938c807376838f9ca99e918478706e6f71767d848f949f9d938b7f726a60544a3f34281d1207000000000000000000000000000000000915222f3c4855626f7b8896a0acab9e9184786a5f5354616e7b8795a0ac9f92867a6d6154473a2d222d394653606c7885929eaba298897d7063564e586774818e9aaaada197897c706356493d32261b0f03000000000000000000000000000000000000000007121d2935414c55606d7a85929faab4aca09591868686868686868686868686868686868686868a909aa6b5a99c8f8276695c4f433f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3a38342e271e150b00000000000000000000000000000000000001080d111314161f2935414c56616c75818e97a19a9184796d616d7a86929fa196887b6e6259504a4e56606d7985919ea197897d706673808d99a79c8f8275695f544d4a505b65717e8b98a99d908377675d5145392c2013060000000000040e1a242e374049515860626a6f7376787979787775716d67605c555f69727f8c959f9f92867b6e615a50444b5865727e8b98a59c8f8276695c4f432f24313e4b5864717e8b97a49d9083776a5d5044372a1d11000a16232f3b46515b63666c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b69727f8c95a0978e81746b60544b403a444f59606d79839098958c80736b6d7a8794a0988b7f7265584c3f3225190c0000000000000000010b151f2a333c454d525a6164696e72747778787979787774726e6963605f69727f8c95a0978e81746b60544b40444f59606d79839098958c80736b6d7a8794a0988b7f7265584c3f3225190c000000000000000006121f2b3844505b6676828f9ca9b5a99c8f8276685e5b656d79839097a1a49a92867c6f685e554b403429241a1006010b17222d3846525d6875828f9ca8b4aa9a8d807367564c4135291d11040000000815222e3b4855616e7b8897a1adada197887b6e6255483b3022150b0000000000000000000000000000000000000000000d1924303c4855626f7b8898a2aeaca095877a6d6054473a2d2114070000000000000000000c17232e3846525e6975828f9ca8b2aca095898686868686868686868686868686868686868686868e939ea9b4aa9d9084776b6054443a2f24190d01000000000000000000000000000000000c17232e3846525e6975828f9ca8b2aca095898686868686868686868686868686868686868686868e939ea9b4aa9d9084776b6054443a2f24190d0100000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000a1724303d4a5763707d8a98a39e9184776a5f534246525e6875828f99a4a89f93877e746d6867666768696e737a818b929893887d7783909da5988c7f72666262656b707a828f959f9f92877c6f665c5044392f24180d00000000000000000000000000000005121e2a36424d5766737f8c99a8b2aa9a8d807467584e525e697783909daaa3998a7e7164544a3f33282f3c4956626f7c8997a1ab9f9285796d60534a5764707d8a98a3aea99a8d807467584e43372b1f13060000000000000000000000000000000000000000010d19242f3a45525d6873808d98a2aeaa9d9184777979797979797979797979797979797979797e8a97a3b0a99c8f8276695c4f4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4645403930271d120700000000000000000000000000000001070c13191d20212428242f3a444f59616d7a85929ea0968d80736a6876828f9ca89a8d80746b605b54585f68707d8a97a19e9185796d626f7b8895a09f93877b6e665e57545c606d7683909da4998c7f7266554b4035291d110400000000020c16202c364049525b626a6f767c80838585868584817e7a736d675e57606d78839099a2988f82766c62564d4a5764717d8a97a49d9083776a554b403529323f4c5965727f8c98a59c8f8276695c4f4336291c10000c1925323e4b57636d737979797979797979797979797979797979797979797978736d7883919a9e93897d70665c51453c3d45515c676f7c86929f93877d706d7a8794a0988b7f7265584c3f3225190c000000000000000007121d27313c464e575e616c71777b7f8183848586858584817f7b76706b60606d7883919a9e93897d70665c51453d45515c676f7c86929f93877d706d7a8794a0988b7f7265584c3f3225190c00000000000000000613202d394653606c7985929facb3a9988b7f726556535d676e7b859198a3a29891847a6e675c514540362c22180e0506111c2935414c5665727f8b98aab4aa9d918477685d5245392c2013060000000a1724303d4a5763707d8a96a9b3ab9e928578695f53473a2e2114030000000000000000000000000000000000000000000813202d394653606c7985929facb1a795897c6f6256493c2f23160900000000000000000006111c2a36424d5763707d8a96a1acaa9d9083797979797979797979797979797979797979797979818e9ba7aea2988b7f7265594f4332281e1308000000000000000000000000000000000006111c2a36424d5763707d8a96a1acaa9d9083797979797979797979797979797979797979797979818e9ba7aea2988b7f7265594f4332281e13080000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000c1926333f4c5966727f8c99aa9a8d807467584e434754616e7b86929faba1968c7f736c615e565a5a575f61686d757e86929891857a83909ca3968a7d706354565960686d79839096a1999083786d60554b4035291c110600000000000000000000000000000714202d3a46525e697783909daaaea298897d7063564a4d566673808d99a9ab9b8e8175665b5044382b36414c566673808c99a9ab9b8e8275665c514753606d7a86929facab9e9184786a5f53473b2e21150900000000000000000000000000000000000000000008131e2935414c56616d7a86929faaaca0958a7d706c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c707d8a97a3b0a99c8f8276695c595959595959595959595959595959595959595959595959595953514b43392e23180c0000000000000000000000000000030b12181e24292c2d31353738323e46525e68717e8a939e9f93877c6f67717e8a95a09f92877d716c6667676a6e7a84919ea2988d8073665f6a7783909da4998f82786e696767666d727f8b959f9f93877b6e6154483b2f24180d010000000008131e28323e48525b636d727c82888c8f91929292908e8b857f796e695e5c666f7c87929f9f948b7e71685e524956626f7c8995a99e918578675d5145392c34404d5a6773808d9aa69a8e8174675b4e4134281b0e000d192633404c5966737f868686868686868686868686868686868686868686868578666f7d88939f9d9184796d60574d4237404b555f6a727f8b94999184796d7a8794a0988b7f7265584c3f3225190c00000000000000000c18242f39434e585f696e767e83888c8e909192929291908e8b87827d746d67666f7d88939f9d9184796d60574d42404b555f6a727f8b94999184796d7a8794a0988b7f7265584c3f3225190c00000000000000000815222f3b4855626e7b8898a2aeada197887b6e62554b555e696f7c86929fa4a1969083796d605b51483e342a20170c030d1924303c4855626f7b8898a2aeaca095877a6d6054473a2d2114070000000c1926323f4c5965727f8c98a5b2a99c8f837669574d42372b1e120600000000000000000000000000000000000000000006121f2b3844505b667783909daab1a4978b7e7164584b3e3125180b000000000000000000000e1a25303b4653606c7884919eabaca095897c6f6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6d7a86929facac9f92867a6d6054473d3221160c010000000000000000000000000000000000000e1a25303b4653606c7884919eabaca095897c6f6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6d7a86929facac9f92867a6d6054473d3221160c010000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000030f1b27333f49536874818e9bab978a7e7164574b3f4c5965727f8c99a3ab9e9184796d605a524c4d4d4d53565e616c717d8692978d80828f9ca396897c706356494f565d676e7a84919ea0958b7f72675d5145382d22170b00000000000000000000000000000815212e3b4854616e7b87939facab9f9285796d6053464956636f7c8997a1ab9e9285796c605346392d3946525e687783909daaa4998b7e7164544b45515d6776828f9ca9aca196887c6f6255493c31261a0e020000000000000000000000000000000000000000010d1924303a46525e6873808d98a3aea79c9083766b606060606060606060606060606064707d8a97a3b0a99c8f827669666666666666666666666666666666666666666666666666666666605c554b4034281c1004000000000000000000000000060d151d24292f35393a3e4144454645414c56616c75828f97a2999183796d6d7984919da39992857e78757474767b839096a19f92867b6e615864717d8a949e9f948f827b76747475797f87929fa1978e8174695e52463a2d1d130700000000010d1924303a44505a636e737f878f94999c9e9e9d9e9d9b98928c837b6e695e5f6a73808c95a09f92857b6e615a5054616d7a8797a1a197867a6d6053473a2d35414c566875828f9bac998c7f7266594c3f3326190c000d192633404c5966737f8c93939393939393939393939393939393939393939185786b6b74818e97a0968c7f73695f53463e39434e58626d75828f97968d80747a8794a0988b7f7265584c3f3225190c0000000000000004101d2935404b555f6a6e7b838a9095989b9c9a989898999c9b9a938f8981796d676b74818e97a0968c7f73695f53463e434e58626d75828f97968d80747a8794a0988b7f7265584c3f3225190c00000000000000000b1824313e4b5764717e8a97aab4ab9e928578695f53474d57606a717e8a929ca59f958e81756d635a50463c32291e150b0813202d394653606c7985929facb1a795897c6f6256493c2f2316090000000e1b2834414e5b6774818e9aa7b3a79a8d8074675a4d4131261a0e02000000000000000000000000000000000000000000030f1c28333f4a546875818e9ba8b3a6998d8073665a4d4033271a0d0000000000000000000009141f2b3844505b66727f8c99a3aea79a8d8174675c606060606060606060606060605765717e8b98a2aea79b8e8174685d5245392c2013040000000000000000000000000000000000000009141f2b3844505b66727f8c99a3aea79a8d8174675c606060606060606060606060605765717e8b98a2aea79b8e8174685d5245392c201304000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000005121f2b3744505b657783909da499887c6f625549424d566875828f9baba9998c7f73675c514641404042474c525a626b707d8792928785919ea3968a7d7063574a434c555e68707d8a939e9f9285796d60544a3f33281c0f0300000000000000000000000004111d2935414c5665727f8b9aa4afab9b8e8275665c51444653606d7985929eaba197897c6f6356493c303a4754616d7a87939fac9f93867a6d615447404b5565727e8b98a7b1a8998c807366574d42362a1e120500000000000000000000000000000000000000000008131e2a36414c56616e7a86929fabab9f94897c6f63574e535353535353535353535764707d8a97a3b0a99c8f8276727272727272727272727272727272727272727272727272727272726d675c5145382c1f13060000000000000000000000060f181f272f353a4145474a4e505253525150505a616e7a85929fa0958d80736a707d89919fa297928a8482808183879095a09e938c7f72695e55616c75828f95a09f948f8783818082858b9299a29892857a6d61574d42362a1e0c010000000005111d2935414c56616c73808c92999f9f9992919091979c9e9f9590847b6e675c606d79839099a2978f82756c6156525e687885919ea995897c6f6256493c303946525d687784919ea49a897d7063564a3d3023170a000d192633404c5966737f8c999999999999999da0a7a9a29f999999999999999185786b616d7a85929e9f92867b6e615a50443a3c46515b616d7a85919a93887d7a8794a0988b7f7265584c3f3225190c0000000000000006131f2c3945515d676e7c8490959d9d9993908d8b8b8b8d8f92999f9c938e82796d616d7a85929e9f92867b6e615a50443c46515b616d7a85919a93887d7a8794a0988b7f7265584c3f3225190c00000000000000000d1a2633404d596673808c99a6b3a99c8f827669574d42454e58616c73808d939ea79e938c7f736c61584e443b30271d1207121f2b3844505b667783909daab1a4978b7e7164584b3e3125180b000000101c2936434f5c6976828f9ca9b2a5998c7f7266594c3f3326190900000000000000000000000000000000000000000000000b17222d404d5a6773808d9aa6b3a89b8e8175685b4f4235281c0f00000000000000000000030f1c28333f4a54616e7a86929facab9f9285796d60535353535353535353535353535f697683909caaaca095897c6f63564c4135291d110400000000000000000000000000000000000000030f1c28333f4a54616e7a86929facab9f9285796d60535353535353535353535353535f697683909caaaca095897c6f63564c4135291d1104000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000613202d394653606c7985929f9f93867a6d60534746525e697885919eaba297887b6e62554b40363031373a41465059616b727f8b93929197a1a4978b7e7164584b3e434c56616c75828f9ba2978b7f72665b5044382b1f12060000000000000000000000000713202c3945525d6876828f9cacafa3998a7e7164544a4044505c6675818e9baba9998c807366574d42363f4a5464717e8b9aa4a99d908376685e52463b4854616e7b8795a0acaa9d908377695f53463a2d211408000000000000000000000000000000000000000000020d1925303a46525e6874808d99a3aea69b8f82756a5f534746464646464646464a5764707d8a97a3b0aa9d91847f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f796d6053463a2d20130700000000000000000000060f18212a313940454c5254575b5d5e5f5f5e5d59565e68717e8b949e9f92877c6f6b737f8c93999e9f97918e8d8e90939aa09e938e81786d6056505a616e7a8390959e9f9993908e8d8e92979f9f9892867d70685e52453b30251a0e00000000000713202d3946525d68717e8a929fa198928b86848385888f949da0969083796d605c666f7c87939f9e938a7e71685e52566975828f9ca5988b7f7265574d42363b4754616d7a86939f9f93867a6d6154473a2e211407000d192633404c5966737f8c8c8c8c8c8c8c8c9095a0a297928c8c8c8c8c8c8c8c85786b5d68717e8b949f988f82766c61564c41353f46525e68707d88939a91847a8794a0988b7f7265584c3f3225190c00000000000004111d2935414c55606d798391969f9b938e8783807f7e7f8082878f949e9d948e81746a68717e8b949f988f82766c61564c413f46525e68707d88939a91847a8794a0988b7f7265584c3f3225190c00000000000000010e1b2834414e5b6774818e9aa7b4a79a8d8174675a4e413d46505a606c77818f95a0a59f93887e706a5f564c43392e2318110f1c28333f4a546875818e9ba8b3a6998d8073665a4d4033271a0d000000101d2a3643505d697683909ca9b1a4978a7e7164574b3e3124180b0000000000000000000000000000000000000000000000061926323f4c5965727f8c98a5b2a89c8f8275695c4f4236291c0f00000000000000000000000b17222d3846525e6875828e9ba8ada2978a7e7164574d42464646464646463f4a54626e7b88949fabaa9d9084776b6054443a2f24190d0100000000000000000000000000000000000000000b17222d3846525e6875828e9ba8ada2978a7e7164574d42464646464646463f4a54626e7b88949fabaa9d9084776b6054443a2f24190d01000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000714212d3a4754606d7a8798a29e918478675c51454754616e7a8797a1ab9e928578695f5343392f25262b30363e474f59626d74818e979ea1a9a6998c7f7366594c403b444f59626f7c88949e9e9184786c605346392d22170b0000000000000000000000000714212d3a4754606d7a86929facac9f92867a6d6054473a3f4a5464717e8a99a3aa9d908377695e52463a44505c6675828e9baca8998c7f7366564c413a46535e697783909daaaca095887b6e6155483b3025190d0100000000000000000000000000000000000000000008131e2a36414c56616e7b86929fabac9f93877b6e62564d423639393939393d4a5764707d8a97a3b0aca096918c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c877a6d6054473a2d211407000000000000000000030c18212a333c434b51565d6064686a6b6c6c6b69666260626c76828f98a2999083786d6d737f878f94989b9d9b9a9a9d9c9996918a81786d665c5046525e686e7a838b92979a9c9c9a9a9b9d9b9a938e867d706b60564c4133291f14090000000004111d2935414c56616d7a85929ea19792867f7a7776787c828d929d9f958c7f73685e606a73808d96a09e92857a6d61595965727f8c98a79c8f8275695e524641444f5964717e8a9aa49d908377685e5246392d20130700091623303c4956636f7d808080808080808083909d9f928580808080808080807f726556626c76828f989f948a7e71685d52453d36414c56616b74808d95958c808c99a5988b7f7265584c3f3225190c0000000000000613202c3945515d6773808d95a09b918c817b767372717273767b828f939e9f93877c6f626c76828f989f948a7e71685d52453d414c56616b74808d95958c808c99a5988b7f7265584c3f3225190c0000000000000003101c2936434f5c6976828f9ca9b2a5988c7f7265594c3f343e44505b656d79839097a1a49a92867c6f685e554b403428231a1017222d404d5a6773808d9aa6b3a89b8e8275685b4f4235281c0f020000111e2a3744515d6a7783909daab0a3968a7d7063574a3d3024170a00000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4b1a99c908376695d5043362a1d10000000000000000000000006111c2a36414c5663707d8996a0aca99c8f8276695e5246382d393939393844505c6673808d99a6aea2988b7f7265594f4332281e130800000000000000000000000000000000000000000006111c2a36414c5663707d8996a0aca99c8f8276695e5246382d393939393844505c6673808d99a6aea2988b7f7265594f4332281e130800000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000815212e3b4854616e7b8794aa9d9083776a554b404955626f7c8895a9a99c8f837669574d4231271d1a1e252a353e47515b616d7a85929ea7b1a79a8e8174675b4e41323e47535f6a75828f9ca096897d7063544a3f33281c0f030000000000000000000004101c2934404b5564717e8b99a3afa99c8f8376685d5245393a4754606d7a86929faca095877b6e6154473b4653606d7985929faba196887c6f6255493c36424d576673808d99a9b1a7988c7f7265564c41362a1d1105000000000000000000000000000000000000000000020e1925303b46525e6974818d99a3afa49a8e8174695e52463a2f242d2d313d4a5764707d8a97a3b0b2a8a09d99999999999999999999999999999999999999999999999999999993877a6d6054473a2d2114070000000000000000000b151e2a333c454d555d60686d7174777879787776736f6c65616e7b86929fa0958c7f736a6d727c82888b8f9091929291908d89847d756d665c544a414c565e686d787e85898d9091929291908f8b87817b706b60594f443a3021170d02000000000713202c3945525d6873808d97a19e92857c726d676a6a6f77808d95a09f92867a6e6158606d7984919aa1978e81756b6155616e7b88959f9f92867b6e615a524d5056606b75828f9ca4998c7f7366564c4135291d1105000915222f3b4854606b6f7373737373737374818e9b9e91847873737373737373726d62575a626e7b86929f9e91857a6d60584e42383a444f59606d798390989285929fa5988b7f7265584c3f3225190c0000000000000714212d3a4754606d7a85929f9e948c7f746e696765656566696e78818f98a39a8e817566626e7b86929f9e91857a6d60584e423a444f59606d798390989285929fa5988b7f7265584c3f3225190c0000000000000004111d2a3744505d6a7783909daab1a4978a7e7164574b3e31333f49535d676e7b859299a3a29891847a6e675c51453f352c22181926323f4c5965727f8c98a5b2a89c8f8275695c4f4236291c0f030000111e2b3844515e6b7784919eaaafa396897c706356493d3023160a00000000000000000000000000000000000000000000000b1824313e4b5764717e8a97a4b1aa9d9083776a5d5044372a1d110000000000000000000000000d1925303b4854606b7784919daaac9f93877b6e6153493f33272d2d2d3a4653606d7984919eabac9f92867a6d6054473d3221160c01000000000000000000000000000000000000000000000d1925303b4854606b7784919daaac9f93877b6e6153493f33272d2d2d3a4653606d7984919eabac9f92867a6d6054473d3221160c0100000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000815222f3b4855626e7b8895a19c8f8376695c5043495663707c8996a3a89b8e8175685b4e423128150e1319232c353f46525d68717e8a95a0aca99c90837669574d423637434e5864707d8a97a29a8e8174665b5044382b1f12060000000000000000000006131f2c3845515c6775828f9babb1a7988b7f7265564c41353945525d687683909ca9a7988b7e7165544b40495663707c8997a2ab9e9184786a5f53473b313c4956636f7c8997a1ada99c908376685e5246392d2013070000000000000000000000000000000000000000000008141e2a36424d57616e7b87929fabac9f92867b6e61564c4135291d24313d4a5764707d8a97a3b0bab2acaaa5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a093877a6d6054473a2d211407000000000000000007121d27303c454e575f676d737a7e81838586858483807c78706b69727e8b949f9f92867c6f666a6f757b7f82848586858483807c79706c605c544a423b444c565e666d72797d80838485868584827e7b746e6860594f473d32281e0f0500000000000714212d3a4754606d7a86929f9f958a7e716a605d585f656d7883919da3988d8073665c5d67707d88939f9e938a7d70675d5f697683909da3998e81756c615e565b60686f7d87939f9f93877b6e6155483b3025190d01000713202c38444f5960636666666666666874818e9b9e9184786b66666666666665625b51535f6973808c96a0978d80746a60544a3f343d45515c676f7c8692989298a2a5988b7f7265584c3f3225190c0000000000000b1825323e4b5865717e8b989e9c8f82756d615e57585858575e666e7b86929f9e9285796d606973808c96a0978d80746a60544a3f3d45515c676f7c8692989298a2a5988b7f7265584c3f3225190c0000000000000004111e2b3744515e6a7784919daab0a3968a7d7063574a3d302d38414b555e696f7d87929fa4a1969083796d605b51473e342a201725323e4b5865717e8b98a4b1a99c908376695d5043362a1d10030000121f2b3845525e6b7885919eabafa296897c6f6356493c3023160900000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a3b0aa9e9184776b5e5144382b1e1100000000000000000000000008141e2c38444f5965727f8c98a3aea4998c7f73655b5044372b1f2a36414c5663707d8a97a1ada79b8e8174685d5245392c201304000000000000000000000000000000000000000000000008141e2c38444f5965727f8c98a3aea4998c7f73655b5044372b1f2a36414c5663707d8a97a1ada79b8e8174685d5245392c2013040000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000916232f3c4956626f7c8995a29c8f8275695c4f424a5764707d8a97a3a79a8e8174675b4e4134281b0e08111a232935414c56616c7783909da8ab9f928578695e52463a323c4653606d7985929e9e9285796c605346392d201306000000000000000000000714202d3a4753606d7985929facaca095887b6e6155483b3035414c5666727f8c99a8a89b8f8275665c51454d576673808d99a9aa9a8d817467584e43372d394653606c7985929eabac9f93867a6d6154473a2f24180d01000000000000000000000000000000000000000000020e1a25303b46535e6974818e99a3aea3998d8073685d5245392e2324313d4a5764707d8a97a3b0b8b0aaa99f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f93877a6d6054473a2d21140700000000000000000c18232e39424e575f696e7980868a8e9091929291908c89837d746c6c77828f98a2999083786d6062696e7275777879787776736f6d66615a504a4238323b444c545c60676d707376777879787775716e69615e564f473d352b20160c000000000004101d2935404b5565727e8b98a29d9083766c6158514e535c66707d8a97a19e9185796d6055606b74818e96a19e91847a6d605964717e8a95a09e938b7e736e6869666c707a84919aa3998f8275695f53463a2d1e13080000030f1b27323d474f545659595959595b6874818e9b9e9184786b5e5959595959595751494d57606d7984919e9f93877c6f665c50443b34404b555f6a727f8b949fa2aaa5988b7f7265584c3f3225190c0000000000000e1b2835414e5b6874818e909192897c6f635b524d4c4b4c4d545e6976828f9ca297887b6e61606d7984919e9f93877c6f665c50443b404b555f6a727f8b949fa2aaa5988b7f7265584c3f3225190c0000000000000005121e2b3845515e6b7884919eabafa396897c706356493d30262f3a434d57606b717e8b929da69f958e81756d635a50463c32291e24313e4b5764717e8a97a4b1aa9d9083776a5d5044372a1d11040000121f2b3845525e6b7884919eabafa296897c6f6356493c3023160900000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4b0aa9d9184776a5e5144372b1e1100000000000000000000000002101c27333d4754616d7a86929facab9e9184786c6053463a2f242d3946525e6875828f9ba9aca095897c6f63564c4135291d1104000000000000000000000000000000000000000000000002101c27333d4754616d7a86929facab9e9184786c6053463a2f242d3946525e6875828f9ba9aca095897c6f63564c4135291d11040000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000a1623303d495663707c8996a39b8e8275685b4f424b5764717e8a97a4a79a8d8074675a4d4134271a0e0008111924303a44505a64717e8a96a1aca297877b6e6154473b2e3845515c6674818e9ba197897c6f6356493c30231608000000000000000000030f1c28333f4a5463707d8a98a2aeaa9d908477695f53463a2d303c4855626f7b8896a1ac9f9285796d605346535e697784909daaa2988a7d7063574a3d322b3844505b6674818e9babafa4998b7e7165554b4035291d10040000000000000000000000000000000000000000000009141f2a36424d57616e7b87929fabab9f92857a6d60554b40342824313d4a5764707d8a97a3b0b0a69f9c93939393939393939393939393939393939393939393939393939393877a6d6054473a2d2114070000000000000004101c2834404b545f6a6e7b848c92989b9d9e9d9d9e9c9995908980776c6e7b86929f9f958c7f72695f5f6165686a6b6c6c6b696663605c5450443f383029323a424a50555c606367696b6c6c6b6a6865615e57524d443d352b23190e04000000000006131f2c3945515d6776828f9ca8988b7f72655a5045414a54606d7985919ea197897c70635659606d7a84919ea1968e81746b60606c78839098a39b908b807b777576797d849196a09f92877c6e62574d42362a1e0c020000000b16212b353d4448494d4d4d4d4e5b6874818e9b9e9184786b5e514d4d4d4d4c4a463f45515c67707d89939e999083786d60574d423639434e58626d75828f97a19f9f988b7f7265584c3f3225190c0000000000000c1926323f4c5965727f8283848586786d605346423f3e3f424d576773808d9aa995897c6f625c67707d89939e999083786d60574d4239434e58626d75828f97a19f9f988b7f7265584c3f3225190c0000000000000005121f2c3845525f6b7885929eabafa296897c6f6356493c302328313b454f59626c73808d949ea79e938c7f726c61584e443a302724313d4a5764707d8a97a3b0aa9e9184776b5e5144382b1e11050000111e2b3844515e6b7784919eaab0a396897d7063564a3d3023170a00000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a99d9083766a5d5043372a1d10000000000000000000000000000b16202d3946525d6875818e9ba7aca096897c7063554b4135292e3a4754616d7a86929facaa9d9084776b6054443a2f24190d010000000000000000000000000000000000000000000000000b16202d3946525d6875818e9ba7aca096897c7063554b4135292e3a4754616d7a86929facaa9d9084776b6054443a2f24190d010000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000091623303c4956636f7c8996a29b8f8275685c4f424a5763707d8a96a3a79a8e8174675b4e4134281b07000008131e28323e4653606d7984919eaba9978a7d7064574a3d2d34404b5464717e8a97a8998c7f7266594c3f2f24190d01000000000000000006121f2b3844505b6674818e9baab3a9998d807366574d42362a2e3a47535f6a7884919eaba298897d7063564954616e7b8795a0ac9f9286796d6053473a2d28333f4a5464717d8a99a3aeab9c8f8275675d5145392c20130600000000000000000000000000000000000000000000020e1a25313b46535f6975818e99a4aea2988c7f72675c5145382d22313d4a5764707d8a97a3b0aa9f948f86868686868686868686868686868686868686868686868686868686867a6d6054473a2d2114070000000000000006131f2c3845515c666e7c8591969f9f9c9791909092989fa09d928d81786c727f8c959f9f92867b6e665b55585c5d5e5f5f5e5d5a5653504a423e342e26202930383f444b5153565a5d5e5f5f5e5d5c5854524d46413b322b231911080000000000000714202d3a4753606d7a86929fa196877a6e6154473e3944505c6674818d9aa9998d80736654515d67707d8a939e9f93887d70675d666f7c869299a29b928d86838283858a9196a09d938c80736a5f53453b31261a0e00000000040f19232b32383b3c404040414e5b6874818e9b9e9184786b5e51454040403f3e3a34404b55606b75818e97a0958c7f72695e52463e313c46515b616d7a85919a9393938b7f7265584c3f3225190c0000000000000c1825313e4a57636d7275767778796d665c5044383030363f4c5966727f8c99ab96897d706355606b75818e97a0958c7f72695e52463e3c46515b616d7a85919a9393938b7f7265584c3f3225190c0000000000000005121f2b3845525e6b7885919eabafa296897c6f6356493c30231f29333d47505a606c78828f95a0a59f93887e706a5f564c42392e23313e4a5764717d8a97a4b0aa9d9184776a5e5144372b1e11040000111e2a3744515d6a7784909daab0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000c1825323f4b5865727e8b98a5b1a99c8f8276695c504336291d100000000000000000000000000005111d2935414c56636f7c8995a0aca89b8e8174675d5145392c37434e5865727f8b99a3aea2988b7f7265594f4332281e13080000000000000000000000000000000000000000000000000005111d2935414c56636f7c8995a0aca89b8e8174675d5145392c37434e5865727f8b99a3aea2988b7f7265594f4332281e1308000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000916232f3c4956626f7c8995a29c8f8275695c4f42495663707c8996a3a89b8e8175685b4e422e23180c0000020c16202c3844505c6673808d99a9a6998c807366544a3f332e3a4754616d7a8796a19b8f827568564c4135291d110400000000000000000613202d394653606c7985929eabada197897c6f6256493c31262b37434e586774808d9aaaaa9a8d807367574d5565727e8b98a7a89c8f8275675d5145382c222d3a4754606d7a86929facac9f92867a6d6053473a2e23170c000000000000000000000000000000000000000000000009141f2b37424d57626e7b87939facaa9e9184796d6053493f3327313d4a5764707d8a97a3b0a99c8f82797979797979797979797979797979797979797979797979797979797976685d5245392c20130700000000000004111d2935414c56606d79849197a19e949089858384858b9297a29d938c7f726c78839098a3989083786c60574d4f5152535251504d4946443f383028231c171e262e34394045474a4d5051525352514f4b4846423b3630292019110800000000000000091623303c4956636f7c8998a39e918478685e524639343f4a5464717e8b97ac9c908376665b5055616b75818e97a19a9184796d60606a717e8792989f9d9992908f8f91979ea09d938e81786d60584e4333291f1409000000000007111921272c2f30333335414e5b6874818e9b9e9184786b5e514538333332312e2e39434f59616d7a85929f9f92867b6e61594f4339343f46525e68707d8786868686867f7265584c3f3225190c0000000000000916222e3a46515b636568696b676d675c544a3f41414142464e586673808d99a399887c6f625559616d7a85929f9f92867b6e61594f43393f46525e68707d8786868686867f7265584c3f3225190c0000000000000005111e2b3844515e6b7784919eaab0a396897d7063564a3d302317212b353f44505b666d79839197a2a49a92867c6f685e544b403428313e4b5864717e8b97a4b1aa9d9084776a5d5144372a1e11040000101d2a3643505d697683909ca9b1a5988b7e7265584b3f3225180700000000000000000000000000000000000000000000000d1a2633404d596673808c99a6b3a89b8f8275685c4f4235291c0f00000000000000000000000000010d1924303a4854606b7783909daaac9f92857a6d6054473c313b4754606a7783909dabac9f92867a6d6054473d3221160c0100000000000000000000000000000000000000000000000000010d1924303a4854606b7783909daaac9f92857a6d6054473c313b4754606a7783909dabac9f92867a6d6054473d3221160c01000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000915222f3c4855626f7b8895ab9c908376695d50434955626f7c8895a9a99c8f837669554b4034281c1004000004101c28343f4a54626f7c8996a1a99c8f8276665b5044382d3946525e687884919e9e918578685d5245392c2013070000000000000000091623303c4956636f7c8997a1adab9e9185786c605346392d2026313d4a5663707d8998a2aa9d918477695e535c6775828f9ca8a7988b7e7265554b403529202c3945515d6776828f9ca9aea3988a7d7164544a3f34281c100300000000000000000000000000000000000000000000030e1a26313c47535f6a75818e9aa4ada1978b7e71655b5044372b313d4a5764707d8a97a3b0a99c8f82766c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c5d564c4135291d11040000000000000613202c3945525d68737f8c96a09e938e827c787677797e859298a29f92867b6e6e7b86929f9f948b7f72695f53493f4546454443403c3a38342e261e17110c151c23282f34383a3d40434445464544423e3b3a36302a251f170e0800000000000000000c1925323f4c5865727f8b98aa9b8f827568564d41362e3b4855626e7b889aa49f9285796c60534f59616d7a85929ea0968d80746a60616c717e868e92999b9d9d9c9c9e9c9a96918a81786d665c50463c3121180d03000000000000070f161b202223262835414e5b6874818e9b9e9184786b5e5145382b2626251d27303d46525e68717e8b949f988f82756c61554b403536414c56616b70797979797979726d62564a3e3124180b00000000000006121e2a353f495157595b5d555c605c554b474e4e4e4e4d52575f6a76838f9c9f92867a6d6054525e68717e8b949f988f82756c61554b4036414c56616b70797979797979726d62564a3e3124180b0000000000000004111e2a3744515d6a7784909daab0a3978a7d7064574a3d312417192328333f4a545d676e7b859299a3a29891847a6d665c51453f35323f4b5865727e8b98a5b1a99d9083766a5d5043372a1d100400000f1c2835424f5b6875818e9ba8b3a6998c807366594d402f23180c00000000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7b4a79a8e8174675b4e4134281b0e000000000000000000000000000008131e2c38434f5965727f8b98a2aea2988b7e7165574d4237404b55626f7c8895a0aca79b8e8174685d5245392c20130400000000000000000000000000000000000000000000000000000008131e2c38434f5965727f8b98a2aea2988b7e7165574d4237404b55626f7c8895a0aca79b8e8174685d5245392c20130400000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000714212e3a4754616d7a8799a49d9184776a564c414754606d7a8797a1ab9e918478675c5145382c1f13060000000c17232e394653606c7884919eab9f9285796c605346392d36414c566975828f9ca197877a6d6054473a2d2114070000000000000006121f2b37434e586773808d9aa9b3aa9a8e8174655b5044372b1f202d3a4653606d7985929faca095877b6e6154606d7985929faca095877b6e6154483b2f241d2935414c5565727f8b98a7b1aa9b8e8175665c5044382c1f1206000000000000000000000000000000000000000000000009141f2b37434e58626f7c87939faca99d9184786c6053463d32313d4a5764707d8a97a3b0a99c8f8276696060606060606060606060606060606060606060606060606060605f524c443a2f24190d010000000000000714212d3a4754606d7a86929fa1978e81786f6a6a676d717c86929fa2988e81746a727f8c95a09f92867b6e655b50443b3039383633302d2c28231c150c06030a11171d23292c2d303436383939383735322e2d2a251f19140d050000000000000000000e1b2734414e5a6774818d9aa69a8d8073675a4d40302d3a4653606d7986939fa298877b6e615448525e68717e8a939e9f93877c6f675c616c717b81868b8f9192929291908d89847d746d665c544a3f342a200f060000000000000000040b0f1315161b2835414e5b6874818e9b9e9184786b5e5145382b1e1918151e2a36414c56606c778390999e938a7d70675d51453c2f3a444f5961636c6c6c6c6c6c65625b51463a2e221509000000000000010d18232d373f464a4c4f504b5153514c52545a5a5a5b575e61696f7c87929f9c8f8376675d514c56606c778390999e938a7d70675d51453c3a444f5961636c6c6c6c6c6c65625b51463a2e2215090000000000000003101d2a3643505d697683909ca9b1a5988b7e7265584b3f3225181017222d38424c555f69707d87929fa4a1969082786d605b51473e34404d596673808c99a6b3a89c8f8275695c4f4236291c0f0300000d1a2734404d5a6773808d9aa6b3a89b8e817568554b4034291c100400000000000000000000000000000000000000000005121e2a36424d576976838f9ca9b2a5988c7f7265594c3f3226190c0000000000000000000000000000020f1b27323d4754606d7a86929facaa9c908376695f53473845515c6774808d9aa7aca095897c6f63564c4135291d1104000000000000000000000000000000000000000000000000000000020f1b27323d4754606d7a86929facaa9c908376695f53473845515c6774808d9aa7aca095897c6f63564c4135291d110400000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000613202d394653606c7986939f9f928578685d524545515d677885919eab9f9386796d6053463a2d20130800000006121f2b3744505b6575818e9ba8a298887b6f6255483c2f30404d5a6673808d99a995887c6f6255493c2f221609000000000000000815212e3b47535f6a7784919eaaaea2988a7d706453493f33271b1f2c3845515c6775828f9baca7988b7e72655463707d8998a2aa9d908377695e52463a2d1d19242f3b4855616e7b8895a0acab9f9285796d6053463a2d20130a0000000000000000000000000000000000000000000000030f1a26313c47535f6a75828f9ba6aca0968a7d7064594f4438313d4a5764707d8a97a3b0a99c8f8276695c53535353535353535353535353535353535353535353535353535345413a32281e130800000000000004101c2934404b5565717e8b98a29e92857a6d6660585c606a717e8b96a19f92857a6d6d78839099a2988f82776c60574d42362a2b2a2723201f1c17110a03000000060c12181c1f2023272a2b2c2c2b2a292521201e1a140e0802000000000000000000000f1c2936424f5c6975828f9ca5988c7f7265594c3f322c3845515c667885929eaa96897c706356494c56616c75828f97a2999183796d605a61696e757b7f82848586858583807c78706c605c544b42382e22180e00000000000000000000000307090e1b2835414e5b6874818e9b9e9184786b5e5145382b1e120b0c1925303a44505b656f7c87929f9e9184796d60584e4138323d474f5556606060606060585651493f34291e12060000000000000007111c252d353a3e3f42434045474c565d616767676869696e727b8491999e938a7d7063554b44505b656f7c87929f9e9184796d60584e41383d474f5556606060606060585651493f34291e120600000000000000020f1c2835424f5b6875828e9ba8b3a6998c807366594d402f23180c111c262f3a434d57606b727f8b929da69f948e81746d63594f463c414e5b6774818e9aa7b4a79a8e8174675b4e4134281b0e0100000c1925323f4c5865727f8b98abb5aa9d908477675c5145382c1f13060000000000000000000000000000000000000000000714212d3a46535f697885929fabb4aa968a7d7063574a3d3024170a0000000000000000000000000000000a16202c3945515d6774818e9aa7ab9f94887b6e62544a3f4653606d7985929fabaa9d9084776b6054443a3024190d01000000000000000000000000000000000000000000000000000000000a16202c3945515d6774818e9aa7ab9f94887b6e62544a3f4653606d7985929fabaa9d9084776b6054443a3024190d0100000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000006121f2b3844505b667884919ea297877a6d605447414c556976838f9ca9a499897c6f6356493c3025190d000000030f1b27333f495365727e8b98acaa988b7e7265584b3f30323f4b5865727e8b98a3978a7d7064574a3d3124170a000000000000000915222f3c4855626f7c8896a0acac9f9286796d6053473a2d22171c2834404b5565717e8b9aa4a89c8f8275665c6774808d9aaaa9998d807366574d42362a1e14212d3a46535f697784919daaada297897d706356493d32271b0f0300000000000000000000000000000000000000000000000915202b37434e58626f7c88949eaaa89d9083766b6054483c313d4a5764707d8a97a3b0a99c8f8276695c4f464646464646464646464646464646464646464646464646464639352f2820160c0100000000000006131f2c3845515c677683909ca9998c7f73675d544e5157606d7984919ea2988b7e71666f7c87929f9f948b7e72695e52463e32291f1a161312100c0600000000000001070c101314171a1d1e1f201f1e1c181514120e0902000000000000000000000000111d2a3744505d6a7783909da4978a7d7164574a3e312834404b546a7783909da4978a7d7164574a44505a616e7b85929fa0958c80736a5f575f61696e727577787979787673706c65615a514b423930261c0f0600000000000000000000000000020e1b2835414e5b6874818e9b9e9184786b5e5145382b1e120008131e27333f49535f6a73808d96a0968d80736a5f53493f33353d44484a5353535353534c4a463f372d23180d0100000000000000000a131c232a2e3132352f343946525d686d7474747475777b7f8591969e938e81746b6155433f49535f6a73808d96a0968d80736a5f53493f333d44484a5353535353534c4a463f372d23180d0100000000000000010d1a2734404d5a6773808d9aa6b3a89b8e817568554b4034291c100a141d28313b454f59626d74808d949fa69d938c7f726b61584e44424d57697683909ca9b2a6998c7f7366594c403326190d000000091623303c4956636f7c8999a4afac9f9286796d6053473a2d22170b0000000000000000000000000000000000000000000815222e3b4855616e7b8897a2adaea298887b6e6155483b2e22150800000000000000000000000000000004111d2935414c55626f7c88959faba6998d8073665c50444d5764717e8a97a2ada2988b7f7265594f4332281e1308000000000000000000000000000000000000000000000000000000000004111d2935414c55626f7c88959faba6998d8073665c50444d5764717e8a97a2ada2988b7f7265594f4332281e13080000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000030f1c28333f4a546976838f9ca995897c6f625649404d5a6673808d99aaab998c7f7266564c41362a1c11060000000b17222d3c4956626f7c899aa4a89b8e817568564c4136313d4a5764707d8a97a3988b7f7265584c3f3225190c00000000000005121e2a36424d5766737f8c99a8b2ac9c8f8275675d5145382c1b1118232e3b4754616e7a87939fac9f9285796d60697784919daaa197897c6f6256493c30251a121e2a36424d576673808d99a9b3a99a8d807467584e43372b1f13060000000000000000000000000000000000000000000000030f1b26313c4754606a75828f9ca6ab9f95897c6f63584e43373d4a5764707d8a97a3b0a99c8f8276695c4f43393939393939393939393939393939393939393939393939392c29241e160d04000000000000000714202d3a4753606d7986929fa197887b6f62554b4245515c6674818d9aaa9b8e8174686a73808c95a09f92867b6e615a50443b3025190e07060300000000000000000000000406070a0d1011121312110f0b080705020000000000000000000000000000121e2b3845515e6b7884919ea3968a7d7063574a3d30232e43505d697683909ca5988b7e7265584b3f46525e69717e8b949f9f92877c6f665c53575e6165686a6c6c6c6b696763605b535045403930271e140a0000000000000000000000000205070e1b2835414e5b6874818e9b9e9184786b5e5145382b1e1205020b17222d38414e58606d7984919e9f92877c6f655b50443b3033383c3d4646464646463f3e3a342d251b1106000000000000000000010a11181e22252628232e3a4754616d7a808181818284878c929796918b81796d60594f4438414e58606d7984919e9f92877c6f655b50443b33383c3d4646464646463f3e3a342d251b11060000000000000000000c1925323f4c5865727f8b98abb5aa9d908477675c5145382c1f13060b161f2a333d47515b606d78828f96a0a59f93877d706a5f564c47535f697885929eabb4aa978a7e7164574b3e3124180b0000000714202d3a4753606d7a86939facaea399897d706353493f33271b0f030000000000000000000000000000000000000004111d2935414c5565717e8b98a9b3ac9f9285786d6053463a2d201307000000000000000000000000000000010d19242f3a47545f6a7783909da9ab9e9184796d605346525e6976828f9ca9ac9f92867a6d6054473d3221160c020000000000000000000000000000000000000000000000000000000000010d19242f3a47545f6a7783909da9ab9e9184796d605346525e6976828f9ca9ac9f92867a6d6054473d3221160c020000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000b17222d414e5b6774818e9aa4978b7e7164584b3e495663707c8998a2a99c8f8276685e5246382d22170b0000000614202d3a4753606d7a86939faa9e918477685e5246392f3c4956626f7c8995a2998c7f7266594c3f3326190c0000000000000714212d3a46535e697783909daaafa49a8b7e7165554b4035291d0a14202d3946525e687783909daaa298897c70636e7b8796a0ab9e9285796c605346392d20130e1a26313c4956636f7c8997a1adab9e9184786a6054473b2e2215090000000000000000000000000000000000000000000000000a15202b37434e58626f7c89949faba79c8f82756a5f53473b3d4a5764707d8a97a3b0a99c8f8276695c4f43362d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d201d19130c0400000000000000000916232f3c4956626f7c8999a39e9285796c6053463a404a5464717d8a97ac9d90847767606d79839099a2988f82766c62564d41362a20170c0200000000000000000000000000000000010305060605040200000000000000000000000000000000000000121f2c3845525f6b7885929ea396897c706356493d302936434f5c6976828f9ca5988c7f7265594c3f424d56626c76828f98a2999083786d60584e5254585c5e5f5f5f5e5d5a56535049413e342e271e150c020000000000000000000002090e1114141b2835414e5b6874818e9b9e9184786b5e5145382b1e12050006111b262f3c45515d67707d8a939e999083776c60564c41362a2c2f3039393939393932312e29231b1309000000000000000000000000070d121618191c212e3b4854616e7b878d8d8e8f9193938f8d89847e756d675c51473e2f3c45515d67707d8a939e999083776c60564c41362c2f3039393939393932312e29231b130900000000000000000000091623303c4956636f7c8999a4afac9f9286796d6053473a2d22170b040d18212b353f44505c666d7a849197a2a49992867c6f685e544b55626e7b8897a2adaea298887b6f6255483c2f2215090000000613202c3945515d677784909daab4ab9a8d8073655b5044372b1f140a000000000000000000000000000000000000010c13202c3945515d6775828e9ba8b5a89c8f8275665c5044382b1f12060000000000000000000000000000000008131e2b37434e5865717e8b97a2ada1968a7d7063564c54616e7b87939faca79b8e8174685d5245392c2013040000000000000000000000000000000000000000000000000000000000000008131e2b37434e5865717e8b97a2ada1968a7d7063564c54616e7b87939faca79b8e8174685d5245392c201304000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000061825323f4b5865727e8b98aa9a8d817467564c414653606d7986929fac9f92867a6e61544a3f33281d1207000006131f2c3945515d677885919eaba096877a6e6154473b2f3c4955626f7c8895a2998c807366594d4033261a0d0000000000000815212e3b4854616e7b8795a0acac9f93877a6e6154473b2f24180c111e2a36414c5666737f8c99a9aa998d807366717e8b97a8ab9b8e8174665b5044382b1f120913202d3a4653606d7985929eabada196887c6f6255493c31261a0e020000000000000000000000000000000000000000000000040f1b27323c4854606a76828f9ca6ac9f93877c6f62574d423d4a5764707d8a97a3b0a99c8f8276695c4f433629202020202020202020202020202020202020202020201413110d08010000000000000000000b1825323e4b5865717e8b98ab9c908376655b5044373b4855626e7b889aa49f9286796d60666f7c87929f9e948b7e71685e52463e32291e130800000000000000000000000000000000000000000000000000000000000000000000000000000000000000121f2c3945525f6c7885929fa296897c6f6356493c302935424f5c6875828f9ba6998c7f7366594c403b44505a616e7b86929fa0958c7f726a5f544a484c4f5152535252504d4946443f382f28231d150c0300000000000000000000050d14191e2021272835414e5b6874818e9b9e9184786b5e5145382b1e120500000a141d2935404b55616b75818e989f958b7e72685e52463d302723232d2d2d2d2d2d2524221e18110901000000000000000000000000000106090c0c15212e3b4854616e7b87949a9b9c9e938682807d78716c605c554b40352935404b55616b75818e989f958b7e72685e52463d3027232d2d2d2d2d2d2524221e18110901000000000000000000000714202d3a4753606d7a86939facaea399897d706353493f33271b0f03060f192328343f4a545d686e7b859299a3a29891847a6d665c515665717e8b98a9b3ac9f9285796d6053463a2d20130700000004101d2935404b556773808d9aa9b3ab9e9184786c6053463c2f261b1106000000000000000000000000000000000007131d28333f4a54606d7a86929facb1a7988b7f7265544a3f34281c100300000000000000000000000000000000010f1b26323c4753606d7985929faba99b8e8275685d525966737f8c99a4aca095897c6f63564c4135291d110400000000000000000000000000000000000000000000000000000000000000010f1b26323c4753606d7985929faba99b8e8275685d525966737f8c99a4aca095897c6f63564c4135291d1104000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000916222f3c4955626f7c8898a29d908377685d524545515c6775828e9ba8a3998b7f72665b5044392e23180f060004101d2935404b556a7784909daaa8978a7d7064574a3d2f3b4855626e7b8895a19a8d8074675a4d4134271a0e000000000005111d2a36414c5665727f8b98a7b1a99d908376685e5246392d1d12070e1925303c4955626f7c8896a1a99d9083766774818e9ba7a3998a7d7164544a3f33281c0f06121f2b3844505c6674818e9babb2a8998c807366574d42372b1e12060000000000000000000000000000000000000000000000000a15202c38434e5863707d89949faba49a8e8174695e52463d4a5764707d8a97a3b0a99c8f8276695c4f4336291c1313131313131313131313131313131313131313130707040100000000000000000000000d1a2633404d596673808c99a69b8e81746853493f333a4653606d7986939fa399887b6e61606a73808d96a09f92857b6e615a50443a3025190e04000000000000000000000000000000000000000000000000000000000000000000000000000000000000121f2c3945525f6c7885929fa295897c6f6256493c2f2935424f5c6875828f9ba6998c7f7366594c40323f46535e69727f8b949f9f92867c6e665b50443f42444546464543403d3937332d261d18120b0300000000000000000000050e171f252a2d2e342d35414e5b6874818e9b9e9184786b5e5145382b1e12050000020b18242f39434f59616e7b85929f9f92857a6e61594f43392e2318202020202020191815120d06000000000000000000000000000000060b0f12131c212e3b4854616e7b8793939495989a9285817d756e685e574d43392e242f39434f59616e7b85929f9f92857a6e61594f43392e23182020202020191815120d060000000000000000000000000613202c3945515d677784909daab5ab9a8d8073655b5044372b1f140a00071117232e38424c565f69707d87929fa5a0969082786d605b5d6875828f9ca8b5a99c908376665c5044382b1f1206000000010d18242f3d495663707c8997a1adaca196897d7063584e41382d22170f06000000000000000000000000000000071118242f3844505b66717e8b98a2aeaca095887b6e6155483b2e23170b0000000000000000000000000000000000000a151f2c3945515d6774808d9aa6ac9f92867a6d6154606b7784919eabaa9d9084776b6054443a3024190d0100000000000000000000000000000000000000000000000000000000000000000a151f2c3945515d6774808d9aa6ac9f92867a6d6154606b7784919eabaa9d9084776b6054443a3024190d01000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000713202d3a4653606d7985929f9f93867a6d605447404b5563707d8996a1ab9e9184786c60554b4034282118100b09111d2a36414c566a7784919daaa69a8d807367554b40343b4855616e7b8894a19a8d8174675a4e4134271b0e00000000000713202d3946525e6876838f9ca9b2a8998c7f7266564c41362a1e0b010815222e3b47545f6a7884919eab9f92867a6d7784919eaa9f92867a6d6054473a2d22170b03101c28343f4a5464717d8a99a3aeaa9d908477695f53473a2d211408000000000000000000000000000000000000000000000000040f1b27323d4854606b7683909ca7ac9f92867b6e61564c414a5764707d8a97a3b0a99c8f8276695c4f4336291c100d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0a0a08040000000000000000000e1a2734414d5a6774808d9aa69a8d8073675a4d402d3845515c677885929fab95887c6f6258606d79849199a2978f82756c61564c41362a20160c020000000000000000000000000000000000000000000000000000000000000000000000000000000000121f2c3845525f6b7885929ea296897c6f6356493c302936434f5c6976828f9ca5998c7f7266594c3f3336424d57606c78839098a3989083786c60574d41382d393939383634302d2b27221b140b070000000000000000000000020d17202930363a3b413a38414e5b6874818e9b9e9184786b5e5145382b1e120500000007121d27313e46525e68727f8b959f978e81756b60554b4034281f1509131313130c0b0906010000000000000000000000000000020a11171c1f2028232e3b4854616e7b86868687898c9195928e89827a6e695e544a40342827313e46525e68727f8b959f978e81756b60554b4034281f15091313130c0b0906010000000000000000000000000004111d2935404b556773808d9aa9b3ab9e9184786c6053463c2f261b11060006111c26303a444d57606b727f8b939da69f948e81746d62606d7a86929facb2a8998c7f7266544a3f34281c1003000000000713202d3a4653606d7985929eacb2a89c8f82756a5f53493f332721180f0802000000000000000000000003091119232935404b55606c7884919daab3a99d908477695f53463a2d1c110600000000000000000000000000000000000004101d2935404b55626f7b88949faba3998b7e726557636f7c8996a0aca2988b7f7265594f4332281e130800000000000000000000000000000000000000000000000000000000000000000004101d2935404b55626f7b88949faba3998b7e726557636f7c8996a0aca2988b7f7265594f4332281e130800000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000006121f2c3844515c6676828f9ca4998a7d7164554b404653606c7884919ea8a0968a7d71675c51453d332a221c18181a222d3946525e687885929eaba99d908376675c5145383c4955626f7c8895a2998d8073665a4d4033271a0d00000000000714212e3a4754616d7a86929facaca096887b6f6255483c3025190d0006131f2b37434e586774818e9aaaa399897d707b8796a0a99c8f8276675d5145392c1c1106000b17232e3a4754606d7a86929facaca095887b6e6155483b3025190d010000000000000000000000000000000000000000000000000a16212c38444f5963707d89959faba3998d8073685d52454a5764707d8a97a3b0a99c8f8276695c4f4336291c1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a171614100b05000000000000000e1b2835414e5b6874818e9ba6998d8073665a4d403334404b556b7885919ea396897c7063565c676f7c87939f9e938a7e71685e52463e32281e13080000000000000000000000000000000000000000000000000000000000000000000000000000000000121f2b3845525e6b7885919ea396897d7063564a3d30293643505c6976838f9ca5988b7f7265584c3f32313b44505b666e7b86929f9f958b7f72695f53493f33272c2c2b2a2723201f1b17110a0200000000000000000000000009141f29323b4246474d4745404e5b6874818e9b9e9184786b5e5145382b1e1205000000010b151f2a36414d56606c788390999e93897d70675c51453c31261a0e04060606000000000000000000000000000000000000020b141c22282b2d352e343a46535e69767979797a7c7f848c9399948f847b6e665c5144382c1f2a36414d56606c788390999e93897d70675c51453c31261a0e040606000000000000000000000000000000000000010d18242f3d495663707c8997a1adaca196897d7063584e41382d22170f06000a151e28323c454f59626d74818e949fa69d938c7f726b66727f8b98a3aeaca096887c6f6255493c2e23170b000000000006121f2c3844505c6673808d9aa4afaa9e94887c6f655b50443d332a2219140e09060400000100000406090e141a232b353d45515d67717e8a95a0acada2978b7e7265574d42362a1e0a00000000000000000000000000000000000000000c18242f3947535f6a7683909ca9ab9d908376695f6774818e9aa8ac9f92867a6d6054473d3221160c02000000000000000000000000000000000000000000000000000000000000000000000c18242f3947535f6a7683909ca9ab9d908376695f6774818e9aa8ac9f92867a6d6054473d3221160c0200000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000004101c2834404a5465727f8c98a79b8e8175675c514544505b66727f8c96a1a89e9184796d60594f453c342c272524262a343c4754616d7a86939facac9f9286796d6053473a3d495663707c8996a3998c7f7266594c3f3326190c0000000004101d2935404b5564717e8b99a3afaa9e9184776a5f53473a2e1e140800030f1b26323d4a5763707d8a98a2ab998c80737e8a97a8a8988c7f7265554c4135291d0a00000613202c3945515d6776828f9ca9b1a7988c7f7265564c41362a1e110500000000000000000000000000000000000000000000000004101b27323d4854606b7683909da7ab9f92857a6d60554b4a5764707d8a97a3b0a99c8f8276695c4f4336292727272727272727272727272727272727272727272727272423201c1710080000000000000f1c2835424f5b6875828e9ba6998c7f7366594c40332e44515e6b7784919ea3968a7d70635755606b74808d96a09e92857a6d615a50443a3024190d0400000000000000000000000000000000000000000000000000000000000000000000000000000000111e2a3744515d6a7784909da3978a7d7064574a3d312a3743505d6a7683909da4978b7e7164584b3e3128333f4a545f6a737f8c95a09f92867b6e655b50443b30251a1f1d1a1613120f0b0600000000000000000000000000020e1925303b444d52545a53514b4e5b6874818e9b9e9184786b5e5145382b1e120500000000030d1925303b44505b666f7c87929f9e9184796d60574d42372b20160c0200000000000000000000000000000000000000000a141d262d33383942434045464d575e6c6c666d6d6f72787f87939f969083786d6053463c312625303b44505b666f7c87929f9e9184796d60574d42372b20160c0200000000000000000000000000000000000000000713202d3a4653606d7985929eacb2a89c8f82756a5f53493f332721180f08030c16202a333d47515b606d78828f96a0a59f93877d706d7984919eaab4aa9d9184776a5f53473b2e1c1106000000000003101c28343f4a54616e7b87939fabb0a69c9083776c60584e453c342a251e1a1312100c070e070c1013131a1f262a353d47505a606d7984919ea7b1a99f9285796d6053473b31261a0e000000000000000000000000000000000000000007121d2b37434e5864717e8a97a1ab9f95887b6e616d7985929faba79b8e8174685d5245392c201304000000000000000000000000000000000000000000000000000000000000000000000007121d2b37434e5864717e8a97a1ab9f95887b6e616d7985929faba79b8e8174685d5245392c2013040000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000c18232e3b4855616e7b88959f9f9285796d6053473f4a54606d7984919ea6a0968c7f736b60574e463f3833313131363d46505a64717e8a9aa4afaea399897c6f6356493c3d4a5764707d8a97a3988b7f7265584c3f3225190c0000000006131f2c3945515d6775828f9babb3a99a8d807467584e43372b1f0d0200000a14202d3a4753606d7986929fa99c908376818d9aa7a096887b6e6155483b2f24190d000004111d2935414c5565727f8b98a7b1a99c908376685e5246392d201407000000000000000000000000000000000000000000000000000b16212c38444f5963707d8a95a0aba2988c7f72675c514a5764707d8a97a3b0a99c8f8276695c4f43363434343434343434343434343434343434343434343434343431302d28221a110800000000000f1b2835424e5b6875818e9ba6998c807366594d40333845525e6b7885919ea396897c7063564f59606d7984919ea1978e81756c61564c4135291f160c01000000000000000000000000000000000000000000000000000000000000000000000000000000101d293643505c6976838f9ca4988b7e7165584b3e322935414c566b7784919eac968a7d7063574a3d30222d38424e57606d78839099a2988f82776c60574d42362a20170d0d0a06050300000000000000000000000000000005111e2a36424d565e6167605c554e5b6874818e9b9e9184786b5e5145382b1e1205000000000008141f28333f4a545f6a73808d96a0968c8073695f53473e32281e13080000000000000000000000000000000000000006111c262f383f44464f504b51535452535f605c606162666c727f8b95a0958c7f7265574e42372b1f28333f4a545f6a73808d96a0968c8073695f53473e32281e1308000000000000000000000000000000000000000006121f2c3844505c6673808d9aa4afaa9e94887c6f655b50443d332a2219140e090e18212c353f44515c666d7a849198a2a49992867c717e8b96a0acaea3988c7f7265584e43372b1f0a000000000000000c17232e3846535f6975828e99a3afab9f948b7f726a60574e463e36302a25201f1c181b1a1b181c1f20262b31363f474f59616c74808d96a1adada2978d8073675d5145392a1f14090000000000000000000000000000000000000000010f1a26313c4653606d7985929eaca7998c7f7366717d8a98a2aca095897c6f63564c4135291d11040000000000000000000000000000000000000000000000000000000000000000000000010f1a26313c4653606d7985929eaca7998c7f7366717d8a98a2aca095897c6f63564c4135291d11040000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000714212d3a46535f697783909da2988a7e7164584e4345515c67717e8b949fa89f92877d70695f585048443f3e3e3f42464f58616c7683909cacaab0ab998c7f7266594c3f3f4c5865727f8b98a4978b7e7164584b3e3125180b000000000714202d3a4753606d7a86929facada297897c706356493d31261a0f00000006131f2c3845515d6775828f9ca89f92867983909daa9d918477695f53473a2d1e13080000010d19242f3b4855616e7b8895a0acac9f93867a6e6154473b2f24180d0100000000000000000000000000000000000000000000000004101c27333d4855616b7783909da7aa9e9285796d60544a5764707d8a97a3b0a99c8f8276695c4f4340404040404040404040404040404040404040404040404040403d3c39332c231a1005000000000e1b2734414e5a6774818d9aa69a8d8073675a4d40343744505b657885929ea295897c6f625649515d67707d89939d9e938a7d70685d52453e31281e13080000000000000000000000000000000000000000000000000000000000000000000000000000000f1b2835424e5b6875818e9ba6998c7f7366594c402e2c3945525d687985929fa49a887b6f6255483c2f22262f3c44505c666f7c87929f9f948b7e71695e52463e32291e1308000000000000000000000000000000000000000714202d3a46525e696e746d675f585b6874818e9b9e9184786b5e5145382b1e12050000000000020b17222d38424e58606d7984919e9f92867b6e625a50443a3024190c030000000000000000000000000000000000000b17222d38424a50535b5d555c60605d564c4a505354545b606c7883909d9e9184786a5f53473a2e21222d38424e58606d7984919e9f92867b6e625a50443a3024190c030000000000000000000000000000000000000003101c28343f4a54616e7b87939fabb0a69c9083776c60584e453c342a251e1a1312101a232834404a545e686f7c869299a4a29891847b85929ea8b2aa9f92867a6d6154473c32261b0f0000000000000006111c2a36424d57626e7b87929fa8b0a69f92877c6f695f585046413b36312d2c282327272723282c2d31373b42465159606b717e8a929da8b1a79f92857a6d61554b4035291d10040000000000000000000000000000000000000000000a151f2c3845515c6773808d9aa4aa9d9184776a75828e9baaaa9d9084776b6054443a3024190d010000000000000000000000000000000000000000000000000000000000000000000000000a151f2c3845515c6773808d9aa4aa9d9184776a75828e9baaaa9d9084776b6054443a3024190d010000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000005121e2b37424d5765727f8c98a39c9083766a605447404b55606c77828f97a2a39992857b6f6a625a554f4c4b4b4c4d5359606a707d8a949f9b9ea6a89b8f827568574d42404b546774818e9aa896897c6f6356493c3023160900000003101c28343f4a5464707d8a98a2aeab9f9285796d6053463a2d20130a00000004101d2935404b5565727e8b98a7a3988a7d87939fa99a8d807367574d42372b1e0c010000000814212d3a46535f697784919daaafa4998b7e7165554b4135291d1104000000000000000000000000000000000000000000000000000b16212c38444f5964707d8a95a0aca1978b7e72665b505764707d8a97a3b0a99c8f8276695c4f4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4a49443e362c22170b000000000d1a2734404d5a6773808d9aa69a8e8174675b4e4130394653606c7986929fa895887b6e6255484b55606b74818e96a19e91857a6d60594f433a2f24190d0400000000000000000000000000000000000000000000000000000000000000000000000000000d1a2633404d596673808c99a69a8e817467544b40342d3a4754606d7a8798a29f93867a6d6053473a2d201d28343f4a545f6a73808d95a09f92857b6e615a50443a3025190e040000000000000000000000000000000000000814212e3b4754616e7b80796f6a605b6874818e9b9e9184786b5e5145382b1e120500000000000006111c262f3c45515d67707d8a939e988f82766c61564c4135291e150a0000000000000000000000000000000000030f1c28333f4a545b6068696b676d6d685d52454446474a505b6573808c99a196887b6e6255483b2f221c262f3c45515d67707d8a939e988f82766c61564c4135291e150a00000000000000000000000000000000000000000c17232e3846535f6975828e99a3afab9f948b7f726a60574e463e36302a25201f1c1818232e39424c565f6a707d87939fa5a09691859297a1adaea2988d8074685e5246392a20150a00000000000000000e1a26313b47535f6974808d96a0abaea39991857b6e6a615a524c46423c3a38342e3434342e34383a3c42474d535b626b707d86929fa4aeaaa0958b7f72685e5243392f24180d0100000000000000000000000000000000000000000004101c2834404b55616e7b87939faca095887b6f7985929faca3988b7f7265594f4332281e13080000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b55616e7b87939faca095887b6f7985929faca3988b7f7265594f4332281e1308000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000020e1a26313c4754616d7a86929f9f94887c6f62584e4244505b656e7b859299a4a19791857c716c63615959585758575f616b707c869299938f939eab9e928578695f534745515c667683909da196877a6d6054473a2d21140700000006121f2c3844505c6674818e9baab4ab9b8e8175665c5044382c1f1206000000000c18242f3b4754616e7b8795a0aa9c8f838f99a4a297897c706356493d31261a0e0000000005121e2a36424d576673808d99a9b3ab9c8f8275675d5145392c2013070000000000000000000000000000000000000000000000000005101c28333e4653606c7883909da8a99e9184786c60555764707d8a97a3b0a99c8f8276695c5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a575550483e33281c10040000000c1926323f4c5965727f8c98a59c8f827669564c41363b4754616e7a8799a3a196877a6d605447434f59606d7a84919ea1978e81746b61554c4135291f160c01000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a89d908376665c514538303d495663707c8996aa9e918477675d5145392c1f17232e38424e58606d79849199a2988f82756c61564c41362a20160c0200000000000000000000000000000000000815212e3b4854616e7b87837c726c656874818e9b9e9184786b5e5145382b1e1205000000000000000a141d2935404b55616c75828f989f948a7e71685d52453d30261c11060000000000000000000000000000000006121f2b3844505b666c75767778797a6d60544b403a3a3f495364717e8b97a8978a7d7164574a3e3124141d2935404b55616c75828f989f948a7e71685d52453d30261c11060000000000000000000000000000000000000006111c2a36424d57626e7b87929fa8b0a69f92877c6f695f585046413b36312d2c2823272727303a444e58616b727f8c939ea7a0989298a1a9b1a79f92867a6e61564c41362a1e1105000000000000000009141f2b37424d57606d79849199a4afaba19791847c706c615e56534d494644404141414141404546494d53575f616d727d869298a2aeaca2989083786c60564c4131281d120700000000000000000000000000000000000000000000000c18232e3946535f6976828f9ca9a7998c7f737d8a98a2ac9f92867a6d6054473d3221160c0200000000000000000000000000000000000000000000000000000000000000000000000000000c18232e3946535f6976828f9ca9a7998c7f737d8a98a2ac9f92867a6d6054473d3221160c02000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000914202d3946525e6874818e9aa49b8f82756a60544a3f49535e69717e87939fa3a19791867e76706b686564646567696e747d8592989387828f9baaa197887b6e6255484653606d7985929f9e918478675d5145392c2013060000000713202d3a4653606d7985929eabaea3998a7e7164544a3f34281c1003000000000714202d3a46525e697783909daa9f948f949fab9f9285796d6053463a2d20130900000000020e1a26313c4956636f7c8997a1adac9f92867a6d6054473a2e23180c00000000000000000000000000000000000000000000000000000b161f2b3744505b65717e8a95a0aca0968a7d7064626264707d8a97a3b0a99c8f827669676767676767676767676767676767676767676767676767676767676764615a5044392d2014080000000a1723303d4a5663707d8996a89e918477685e5246393c4956626f7c8995ab9e918478685d52453d45515d67707d8a939e9e938a7d70675d51453d31281d1207000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b8796a09f9286796d6053463c36414c5665727f8c98ab9b8e817568554b4035291d111c26303c45515c676f7c87939f9e948a7e71685e52463e32281e130800000000000000000000000000000000000815212e3b4854616e7b8790867f776e6974818e9b9e9184786b5e5145382b1e120500000000000000020b18242f3a43505a616e7b86929f9e92857a6d60594f42382e23170c030000000000000000000000000000000613202d394653606c7881838485868275665c5145403f414a5464717e8b97a4988b7e7165584b3e32251818242f3a43505a616e7b86929f9e92857a6d60594f42382e23170c03000000000000000000000000000000000000000e1a26313b47535f6974808d96a0abaea39991857b6e6a615a524c46423c3a38342e34343430353c464f59636d74818e959faaa29fa2aab3aaa0958c7f72685e52443a3025190d010000000000000000030e1a26313c45515d676f7d87939fa4aea9a19691867e756e68615e575653514a4e4e4d4e4e4b515356575f62696e767f879298a2aaafa49a92867c6f665b50443a301f160c01000000000000000000000000000000000000000000000007121d2b37424d5764717d8a97a1aa9d908377818e9baaa79b8e8174685d5245392c20130400000000000000000000000000000000000000000000000000000000000000000000000000000007121d2b37424d5764717d8a97a1aa9d908377818e9baaa79b8e8174685d5245392c20130400000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000005111d2935414c56626f7c87939f9f93877c6f665b5044414d57616c727f8b919fa3a198928b827d78757271717274777b81879297978e817d8998a3a9978b7e7164584b4a5463707d8a98a29c8f827569554c4135291d11040000000a1623303d495663707d8997a2adac9f92867a6d6054473a2e23170c000000000005111e2a36424d576673808c99a9a69f9c9fa6ab9b8e8275665c5044382c1f120600000000000913202d394653606c7985929eabaea3988a7d7164544a4034281c100400000000000000000000000000000000000000000000000000030f1b27333f4953606c7884919da8a89c9083766e6e6e6e707d8a97a3b0a99c8f8276737373737373737373737373737373737373737373737373737373737373706c6155493c3023160a0000000714212e3a4754616d7a8796a0a096877a6d61544740414d5765727f8c98ac9c8f827569564c4135414c55616b75818e97a19e91847a6d60594f43392f24180d030000000000000000000000000000000000000000000000000000000000000000000000000714202d3a46525e697784919ea398897d7063584e433f46525e6876828f9ca3998b7e7164584b3e2f24180c151e2834404b55606b74808d96a19e92857a6d615a50443a3024190d04000000000000000000000000000000000815212e3b4854616e7b8798928c827b7174818e9b9e9184786b5e5145382b1e1205000000000000000007131d28313e46525e69727f8c95a0978e81746b60544a3f34281f140900000000000000000000000000000006121f2b3844505b6677849091929285796d6058514a4c4b515b6673808d99a9978a7d7164574a3e312417131d28313e46525e69727f8c95a0978e81746b60544a3f34281f14090000000000000000000000000000000000000009141f2b37424d57606d79849199a4afaba19791847c706c615e56534d49464440414141414241464749505b606d79839098a2aeacaeb4aea2989083786d60564c4132291e13080000000000000000000009151f2935404b55606b727f8b929da4ada9a198928a817a746e696562605c545b5a5a5a5b545c606266696e747b828b9299a2aaaea39f93887e706a5f544a3f32291e0d04000000000000000000000000000000000000000000000000000e1a26313c4653606d7984919eaba095887b85929faba095897c6f63564c4135291d1104000000000000000000000000000000000000000000000000000000000000000000000000000000000e1a26313c4653606d7984919eaba095887b85929faba095897c6f63564c4135291d110400000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000000010d1925303a47535f6a75828f9aa49a9083786c60564c4145505a626d737f8a9298a0a29f948f8984817f7e7e7f8083878e92999992857b7986929fa79a8e817467564c505c6674818e9aa7988c7f7265594c3f2f24190d01000006131f2b37434e586774808d9aa9b3a99c8f8276675d5145392c1c11060000000000020e1a25303c4955626f7c8897a1adaba9abafa4998b7e7164544a3f34281c1003000000000006121f2b3844505b6674818e9babb4aa9b8e8175665c5144382c1f120600000000000000000000000000000000000000000000000000000b17222d3844505b66717e8b96a0ab9f948a7d7b7b7b7b7b7f8b98a5b1ab9e9184808080808080808080808080808080808080808080808080808080808080807e7064574a3d3124170a0000000713202d3946525e687784919ea8978a7e71645b514b4c535f6976828f9ca49a8c7f7266594c3f2f3a434f59616d7a85919ea1968e81746b60554b4035291f150b01000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d576773808d9aa69b8e81746a5f554e4a5059616d7a86929f9f92867a6d6154473a2e2114070c18232e39434f59606d7984919ea1978e81756c61564c4135291f160c010000000000000000000000000000000815212e3b4854616e7b879298948f857e74818e9b9e9184786b5e5145382b1e12050000000000000000010c161f2a36424d57606d788390999f93887c6f665c50443b31251a0d040000000000000000000000000000030f1c28333f4a546774818e9a9f978b7e716a605c5459555d606c7884919da297897c6f6356493c3023160c161f2a36424d57606d788390999f93887c6f665c50443b31251a0d04000000000000000000000000000000000000030e1a26313c45515d676f7d87939fa4aea9a19691867e756e68615e575653514a4e4e4d4e4f4c5254535b60636b6f7a85929facb8bab2a89f92867c6f665c50443b3020170d0200000000000000000000030d18242f3a434f59626d74808d929ca3adaaa29f938e86807b76726f6d6669686767676869666d6f72777b81868f949fa3ababa39f918c7f726c61584e42382d20170d000000000000000000000000000000000000000000000000000009141f2c3844505c6673808c99a4a79c8f828f97a2aa9d9084776b6054443a3024190d010000000000000000000000000000000000000000000000000000000000000000000000000000000009141f2c3844505c6673808c99a4a79c8f828f97a2aa9d9084776b6054443a3024190d0100000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000008131e2b37434e58626f7c87939f9f958b7f72685e53493f48515b636d737e8691969fa39f9c96918e8c8b8a8b8d9093999f9993877d707683909ca99d918477685d5253606d7985919ea095887b6e6155483b2e2215080000000815222e3b4754606a7884919eabb1a7988b7f7265554c4135291d0a000000000000000913202d394653606c7884919eabb8b6b9ac9f93867a6d6154473a2e23170c000000000000030f1c28333f4a5464717d8a99a3aeab9f9285796d6053463a2d22170b000000000000000000000000000000000000000000000000000006111b28333f4a54606d7884919ea8a69a8f8a88888888888b919ba7b3aca196918d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8074675a4e4134271b0e01000005111d2a36414c566673808c99a59d9083766d605c55565e656e7b87939f9f93877b6e6154483b2e313e46525d68717e8a939e9d93897d70675d51453d31271d12070000000000000000000000000000000000000000000000000000000000000000000000020e1a25303c4855626f7c88949f9f92867c6f676058545c606b73808d99a39c8f8275685e5246392d20130707121d27303d45515d67707d89939d9e938a7d70685d52453d31281d13070000000000000000000000000000000613202d394653606c787f86909597928a81818e9b9e9184786b5e5145382b1e1205000000000000000000040d1a25303b44505c666f7c87939f9a9083786d60574d42362a1f160c0100000000000000000000000000000b17222d3c4956626f7c89949f9f92857c716d66666666676d737f8c96a09f9285796d6053463a2d2013070d1a25303b44505c666f7c87939f9a9083786d60574d42362a1f160c0100000000000000000000000000000000000009151f2935404b55606b727f8b929da4ada9a198928a817a746e696562605c545b5a5a5b5c565d6163656c70757d839098a2aebab9aca0968a7e716a5f544a3f32291e0e0500000000000000000000000007131d28313d47515b606c77808c919ea1a9aea59e98928d87837f7c79777674747474747677797c7f83888e92999fa6aea8a199928b7f736d635a50463c2f261c0e05000000000000000000000000000000000000000000000000000003101c28343f4a54616e7b87939fac9e948f949ea9a3988b7f7265594f4332281e1308000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a54616e7b87939fac9e948f949ea9a3988b7f7265594f4332281e13080000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000020f1b26323c47535f6a74818e97a29f92857a6d655b50443f49515b636c717c848c92989ea1a19e9b989797989a9d9f9f9791877e716b73808c99a09f93867a6d61545b65717e8a97a19d918477695f53473a2d2114080000000916222f3c4955626f7c8896a1adaca095877b6e6154483b2f24190d0000000000000005121f2b3744505b6574818e9aaab4bfb6a99c908376685e5246392d1c1106000000000000000b17222d3a4754606d7a86929facada297897d706353493f33271b0f0300000000000000000000000000000000000000000000000000000b17222d3844505c66717e8b96a1aca19a969595959595989ba3adb8b2a8a19e9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a8d8174675a4e4134271b0e010000010d1925303b4855626e7b88939e9f958b7f736d676767686d77828f99a49c908376695e53463a2d2935414c56616c75818e97a19e9184796d60594f43392f24180c0400000000000000000000000000000000000000000000000000000000000000000000000915212e3b47535f6a76828f9aa3999083796f6a6867666d717d87929f9f94897d7063564c41362a1e1105000b151e2935404b55606b74818e97a19e91857a6d60594f433a2f24180d04000000000000000000000000000006121f2b3844505b666c727c838c9299938e8e939e9e9184786b5e5145382b1e12050000000000000000000009141f28343f4a54606a74808d97a0958c7f72695e53463e31281d130700000000000000000000000000000615222e3b4754606a76828f98a29792857e7975737273757a8088939fa1978d8074665c5144382c1f120609141f28343f4a54606a74808d97a0958c7f72695e53463e31281d1307000000000000000000000000000000000000030d18242f3a434f59626d74808d929ca3adaaa29f938e86807b76726f6d6669686767676869686d7073787d82899095a0aab4b4b7aa9e9184796d605b51473e342a20160c030000000000000000000000010c161f2b353f44505b656c747f8a92979ea6acaaa29f9a93908c898684828181808181828486898c90959a9fa3ababa49f9691877e736d635b51473e342a1d140a000000000000000000000000000000000000000000000000000000000c17232e3846535e6975828f9ca8a69e9c9ea6ac9f92867a6d6054473d3221160c020000000000000000000000000000000000000000000000000000000000000000000000000000000000000c17232e3846535e6975828f9ca8a69e9c9ea6ac9f92867a6d6054473d3221160c020000000000000000000000000000000000000000000000000000000104000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060503000000000000000000000000000000000000000a15202b37434e58616d7a85929fa2978f81776c605a50464049515a616a6f797f868c9196999c9d9e9f9f9e9c9a98928d857d716c63707d899994949a8a7d706355606c7883909da3998c807366574d42372b1e1206000005121e2a36424d576673808c99a8b2aa9d908377695e53463a2d1e130800000000000000030f1b27333f495364707d8a98a2aeacb2a8998c7f7266564c41362a1d0a00000000000000000613202c3945515d6776828f9ca9b3a99a8d8174655b5044372b1f1205000000000000000000000000000000000000000000000000000006111c28343f4a54606d7984919ea8aba5a3a1a1a1a1a1a5a7adacacacb2acaba6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a69a8d8174675a4e4134271b0e010000000814212e3a47535f6975818e98a29f92877f79757474767a818f949f9e93897d7063574d42362a24303a44505a616d7a85929ea0968d80746b60554b40352920150a000000000000000000000000000000000000000000000000000000000000000000000006121f2b37434e58626f7c87939f9f9590837c77757475797e869299a2988f82766b6054443a3025190d0100030c18242f39434f59606d7a84919ea1978e81746b60554b40352921160a0000000000000000000000000000030f1c28333f4a545b606a6e787f8690959b9b9ea59e9184786b5e5145382b1e120500000000000000000000030b17232e38424e58606d7a84919e9f92867b6e615a50433a2f24180d010000000000000000000000000006131f2b37434e58616e7b869298a097928b8582807f8082858d939aa19892857a6d61544a4034281c1004030b17232e38424e58606d7a84919e9f92867b6e615a50433a2f24180d0100000000000000000000000000000000000007131d28313d47515b606c77808c919ea1a9aea59e98928d87837f7c797776747474747576777a7d8084898e939da0a7afaaa8abaca0968e81746d62594f463c32281e150b000000000000000000000000040d192327333f49535b606d737d858f949da0a7acaca49f9c989892918f8e8d8d8d8e8f919298999d9fa7acaca69f99938d847d716c635b51493f352c22180b020000000000000000000000000000000000000000000000000000000006111c2a36424d5763707d8a96a1acaaa8aab0a79b8e8174685d5245392c2013040000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c2a36424d5763707d8a96a1acaaa8aab0a79b8e8174685d5245392c201304000000000000000000000000000000000000000000000000000004090e11131314202d3a4753606d7a8693a0acac9f9286796c5f5346392c201312110f0c070100000000000000000000000000000000040f1b26323c46525e68717e8b949e9e938c80736c61584f474048505860676d737b8084898c8f9192929291908d8a85807a706b61606d798787878787878073665d67707d8a95a09f92867b6e6154483c31261a0e0200000714212d3a46535f697784909d9f9fa9998c807366574d42362a1e120500000000000000000b17222d3a4753606d7a86929f9f9f9fa196887b6f6255483c3025190d000000000000000004111d2935414b5565727f8b98a79f9f9e9184786c605346392d2013060000000000000000000000000000000000000000000000000000000b17232e3844515c66727e8b96a19f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9a8d8174675a4e4134271b0e0100000006121e2b37424d57616e7b859298a299928c8582818182868f939e9f958e81756b6054453b31251e28323e46525e68717e8a949e9f93887d6f675d51453d32271b0f0300000000000000000000000000000000000000000000000000000000000000000000030f1b26323c4754606a74808d949e9f95908983818082848b9298a29992857b6e61594f4432291e130800000007121d28313d45525d68707d8a939e9d93897d70675d51453d32271b0f0300000000000000000000000000000b17222d38424a50585f666d727c838c9299a0a79e9184786b5e5145382b1e1205000000000000000000000006111c26303d45515d67717e8a949e988f82756c61554b4035291d110400000000000000000000000000030f1b27323d46535f69707d8691969e9f97928e8c8c8d8f92989f9f9691867d6f685e5242392e23180c000006111c26303d45515d67717e8a949e988f82756c61554b4035291d1104000000000000000000000000000000000000010c161f2b353f44505b656c747f8a92979ea6acaaa29f9a93908c898684828181808182838487898c91969b9ea5acaba59e9b9ea1a89d938c7f726b61584e443a30271c1207000000000000000000000000071017222d384149505b636b707b828990959c9fa4acaca9aaa39f9d9c9b9a9a9a9b9c9d9fa3aaaaababa39f9b948f878079706b625a514940372e231a10060000000000000000000000000000000000000000000000000000000000000e1a25313b4653606c7884919e9f9f9f9f9fa095897c6f63564c4135291d110400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1a25313b4653606c7884919e9f9f9f9f9fa095897c6f63564c4135291d110400000000000000000000000000000000000000000000000000080f151a1d1f2020202d3a4753606d7a86939f9f9f9f9286796c5f5346392c20201f1e1c18130c05000000000000000000000000000000000a15202a36414c56626d76828f97a19f93887e716a60594f473f464e555c60696e73797c7f82848586858583817d79736d6860595d67757a7a7a7a7a7a796d60606d7984919ea49a8e8174695e53463a2a1f15090000000815222e3b4855616e7b88959393939396897c6f6256493c31251a0e02000000000000000006131f2c3945515d6775828f93939393939184786a5f53473a2e1e13080000000000000000010d18242f3b4854616e7b87959393939396897c6f6256493c2f23160900000000000000000000000000000000000000000000000000000006111c2834404a54606d7984919393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393938d8174675a4e4134271b0e01000000020e1a26313c46525e69707d8692989f9f98928f8d8d8f92999e9f9590837a6d61594f4433291f16202a36414c56616c75828f97a29a9184796d60584e43372b1f130600000000000000000000000000000000000000000000000000000000000000000000000a15202b37434e58606d78828e939da09d95908e8d8e91969f9f9792877d70695f53473d3320170d02000000010c161f2935414c56616c75818e97a19e9184796d60594f44382c1f1307000000000000000000000000000006111c262f383f444e545c606a6f788087909593939184786b5e5145382b1e12050000000000000000000000000a141e2935414c55616c75828f9893948a7d70675d5145392c20130600000000000000000000000000000a15202a36424d57606b707c848c9196999c9b9999999b9d9a97928d847d6f6b60564c4130271c12070000000a141e2935414c55616c75828f9893948a7d70675d5145392c20130600000000000000000000000000000000000000040d192327333f49535b606d737d858f949da0a7acaca49f9c989892918f8e8d8d8e8f8f919696999ea1a8aaaca69f9c938e9196a1a59f93877d706a5f564c42392e2318110800000000000000000000000006111b262f383f44515961696e757d83898f939a9c9fa2aaa7a8aaa9a7a7a7a7a7a9a9a8a6a9a29e9b99928e88827c746d676059504840372e251c11080000000000000000000000000000000000000000000000000000000000000009141f2b3844505b66737f8c999393939393939084776b6054443a3024190d01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141f2b3844505b66737f8c999393939393939084776b6054443a3024190d0100000000000000000000000000000000000000000000000009121a20262a2c2d2d2d2d3a4753606d7a8693939393939286796c5f5346392d2d2d2c2b28241e170f07000000000000000000000000000000040d1925303a44505a616e7b859299a39a92867c6f6b6159504641434b51565e61666d6f737677787979787674706d67615d564f555d686d6d6d6d6d6d6d67616b74808d96a19f93877c6f62574d42362a180e030000000c1926323f4c5965727f8686868686868684786c605346392d20130900000000000000000004101d2935404b5565727f86868686868686807467584e43372b1f12060000000000000000000714212d3a46535e697783868686868686868073665a4d4033271a0d000000000000000000000000000000000000000000000000000000000c18232e3945515c67727f86868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868074675a4e4134271b0e01000000000915202a36424d56616b707d868e92999b9d9b9a9a9c9d9a97928b837a6d685d52473d3321170e1925303a44505a616e7b85929393968d80736a6054473b2e2215080000000000000000000000000000000000000000000000000000000000000000000000040f1b27323d44515c666d79818a9195999c9d9b9a9b9e9c99928e857d706b61574d42352b210e050000000000040d19242f3a44505a616d7a85929393968d80746b6054483b2f2215090000000000000000000000000000000a141d262d333c424a50585f666d737c838686868684786b5e5145382b1e1205000000000000000000000000020c19242f3a43505a616e7b8686868686847a6d6053473a2d2014070000000000000000000000000000040e1a26313b454f59606a6f797f848a8d8f9192929291908d8a8580796f6b60594f443a301e150b00000000020c19242f3a43505a616e7b8686868686847a6d6053473a2d2014070000000000000000000000000000000000000000071017222d384149505b636b707b828990959c9fa4acaca9aaa39f9d9c9b9a9a9a9b9c9ea0a8a6abacaba39f9b94908981849198a2a49992867c6e685e544a40342823190b020000000000000000000000000a141d262d3340474f575e616b70777d82878b8f9298989a9b9d9e9e9f9f9f9e9d9d9b999797928e8a86817c766f6a605d554f473e362e251c130a0000000000000000000000000000000000000000000000000000000000000000030f1c28333f4a54616e7a8786868686868686867f7265594f4332281e1308000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1c28333f4a54616e7a8786868686868686867f7265594f4332281e130800000000000000000000000000000000000000000000000008121b242b323639393939393a4753606d798686868686868687796c5f5346393939393837342f2921190f0500000000000000000000000000000008131e29323f46525e69707d87929fa29892857d706b625a524c4440454d52545c606366696a6b6c6c6b696764605c55524c444c565d61616161616160606a707d88939fa2978e81756a5f53453b31251a06000000000b1825313e4a57626d7279797979797979786c655b5044372b1f1205000000000000000000000c18242f394a56626d7279797979797979746e6458463c31261b0f0300000000000000000005121e2a36424d5767717779797979797979736e63584b3f3226190c0000000000000000000000000000000000000000000000000000000007121c2834404b55626d727979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979746e64584c3f33261a0d0000000000030e1925303b444f59616b707a81868b8e9091929291908d8a857f786d685e564c41352b210f08131e29323e46525e69717e8686868686877c6f6256493c2f2316090000000000000000000000000000000000000000000000000000000000000000000000000a16202834404a545c676d747d84898d8f91929292918f8c87817b706b61594f453b3123190f0000000000000008131e28323e46525e68717e8686868686887c6f6356493c30231609000000000000000000000000000000020b141c222830383f444e545c606a6f77797979797872685c5043372a1d11040000000000000000000000000008131e28313e46535f696e7979797979786d675d5145392c20130600000000000000000000000000000009141f29333d474f5860676d72787d8082848586858483807e79736d6760594f473d32281e0c03000000000008131e28313e46535f696e7979797979786d675d5145392c20130600000000000000000000000000000000000000000006111b262f383f44515961696e757d83898f939a9c9fa2aaa7a8aaa9a7a7a7a7a8a9aaa8a6aaa29f9c99928f89837d757c86929aa4a29891847a6d665c51443f352b1d140a000000000000000000000000020b141b2227353e454d525960636b70757b7e8285888b8d8f9091929292929191908e8c8a8885817e7a746f6a626058514b433d352d241c130a010000000000000000000000000000000000000000000000000000000000000000000b17222d3846525e686e797979797979797979726d6256473d32261e140a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d3846525e686e797979797979797979726d6256473d3220160c020000000000000000000000000000000000000000000000040f1a242d363d4245464646464545515c67767979797979797979756a5e523e454646464544403a332b21170c010000000000000000000000000000020d17202a36424d56606b727f8b929ca29792867d716c615e5650474242464a505356595c5e5f5f5f5e5d5a5753514b46413a444c5254545454545960696f7c86929aa49f92857b6e61584e4333291f1409000000000916222e3a46515b62656c6c6c6c6c6c6c6b605b53493f33271b0f030000000000000000000007121d2e3a45515b62656c6c6c6c6c6c6c67645c5247342a20150a00000000000000000000020e1a25313b45555f676a6c6c6c6c6c6c6c66635c52473b2f23170a00000000000000000000000000000000000000000000000000000000000c18232e3943515b62656c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c67645c52473c3024170b00000000000009141f29323e474f5960686e747a7e81838485858483817d79726d665e564c443a3023190f020d17202a36424d57626c717979797979796f6a6054473b2e221508000000000000000000000000000000000000000000000000000000000000000000000000040c18232e39424b555c606c70777c80838485868584827f7b756e6961594f473e332a1f110700000000000000010c16202a36414c56616c717979797979796f6b6054483b2f22150900000000000000000000000000000000020a11171e262e343c424a51585f626a6c6c6c6c6b6860564b3f33271b0f0200000000000000000000000000010c161f2a36424d575f616c6c6c6c6c6b605d554b4035291d1104000000000000000000000000000000030d17212b353d464e555c60666d70737677787978787674716d67605d554f473d352b20160c000000000000010c161f2a36424d575f616c6c6c6c6c6b605d554b4035291d1104000000000000000000000000000000000000000000000a141d262d3340474f575e616b70777d82878b8f9298989a9b9d9e9e9f9f9f9f9e9d9c9a9898928f8b86827d76706b707e88939fa5a0968f82786d605b51473d2f261b1106000000000000000000000000020a1117232c333b42464f54596063696e7276797c7e808283848585868585848382807d7b7975716d68625f58544e45403a312b231b120a010000000000000000000000000000000000000000000000000000000000000000000006111c2a36414d565e616c6c6c6c6c6c6c6c6c65625b51443f3830261c110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c2a36414d565e616c6c6c6c6c6c6c6c6c65625b5146342b210e040000000000000000000000000000000000000000000000000915202b363f484e5253535353514a4b555c6c6c6c6c6c6c6c6c6c6a6359464b5253535352504c453d33291e1307000000000000000000000000000000050e1925303b444f59626d73808d929da29892877e756d68615a534e47433f4446494c4f5152535252504e4a4745403935323a414647474d535b626b707b859198a29e948b7e71685e52463c3121170d030000000006121e29353f49515759606060606060605e53504941382d22170b000000000000000000000001111d29343f48515658606060606060605a58524a413622180e04000000000000000000000009141f2933434d555b5d606060606060605a58524a40352a1f1307000000000000000000000000000000000000000000000000000000000007121d27303f4951565860606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060605a58524a41362b1f1408000000000000020d17202c353e474f565e61686e717577787979787674706d67605c544c443a32281e110700050e1a25303b45505a62656c6c6c6c6c6c6260584e43372b1f13060000000000000000000000000000000000000000000000000000000000000000000000000007121c273039434b515a61646b6f7376787979797775726e69615e574f473e352c21180e000000000000000000040d1925303a44505a61646c6c6c6c6c6c6360594f44382c1f1307000000000000000000000000000000000000060c141c2328303940444e54555d606060605e5c564e443a2f23170b000000000000000000000000000000040d1a26313b454d53555f606060605e53514b433a2f24180d0100000000000000000000000000000000060f19232b343d434b51545c606366696b6c6c6c6b6a6764605d55514b433d342b23190e0400000000000000040d1a26313b454d53555f606060605e53514b433a2f24180d0100000000000000000000000000000000000000000000020b141b2227353e454d525960636b70757b7e8285888b8d8f9091929293929291908f8d8b8885827e7a75706b63616c737f8c939ea79f948d80746d62594f41382d22170b000000000000000000000000000006111a202930363d44484f54565e6165666d6f7174757778787979787877767573716f6d6664605d56534e47433d352f281f191109000000000000000000000000000000000000000000000000000000000000000000000000000e1925303b444d52545f606060606060606060605f5e504a42382e23170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17232e38424a505e5f606060606060606060585651493f3422190f000000000000000000000000000000000000000000000000000e1a26323d4851595e606060605e575550515f606060606060605f5e595053585f6060605f5c574f453a2f24180c0000000000000000000000000000000009141f29323d47515b636e74808d929fa299928b817a706c625f57534e4745413c4043444546464543413d3a383435393a3d43474c52575f626d727d859197a1a0958f82756c62564d41342a200f050000000000010d18232d373f464a4c535353535353535246443f382f261b11060000000000000000000000010c18232d363f454a4b535353535353534e4c4741382f241006000000000000000000000000030d1721323b434a4f51535353535353534d4b4740382e24190e020000000000000000000000000000000000000000000000000000000000000b151e2d373f464a4c53535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353534e4c4741382f241a0e0300000000000000050e1a232c353d444c52565e6164686a6b6c6c6b6a6763605d55504a423a322820160c00000009141f29333f4850565860606060605f56544e463d32271b0f0300000000000000000000000000000000000000000000000000000000000000000000000000000b151e2730394045505559606366696b6c6c6c6b6965615e57524d453e352c231a0f060000000000000000000008131e29323e4850555760606060606056544f473d32271b0f0300000000000000000000000000000000000000020a11171e272e343c434749515353535351504b443c32281d12070000000000000000000000000000000009141f29333b4246485253535353514745403a31281d1307000000000000000000000000000000000000081119222b303940454a5053575a5c5e5f5f5f5e5d5a5753514b45413a312b2219110700000000000000000009141f29333b4246485253535353514745403a31281d1307000000000000000000000000000000000000000000000000020a1117232c333b42464f54596063696e7276797c7e808283848585868685848382807e7c7975726e686360595a636d75818e95999999928b7f726b6053493f33271b0f030000000000000000000000000000080e171f252a33383d44484d535f605c60626567686a6b6b6c6c6c6b6a6a68666462605c605f534d47433c383229241d160d07000000000000000000000000000000000000000000000000000000000000000000000000000008141f29323b41464753534d545b60666c6c6c6c6c6a5c544a3f34281c10030000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a545c6a6c6c6c6c6c66605b544d4c4a463f372d23130c04000000000000000000000000000000000000000000000000111d2a36424e59636b6c6c6c6c6b64615a534d53535353535353534d535b60656c6c6c6c6b6861574c4034281c0f00000000000000000000000000000000020d17202b353f49525c646e74808c9399a29f938e857d756e6a625f5854524c49474540413f3e3e3d3d3e3f3f404045474a4e53565e61696e767e879297a1a1969083796d605a50443b3022180e0000000000000007111b252d353a3e3f46464646464646453937332d261d140a0000000000000000000000000006111b242d343a3d3f4646464646464641403c362f261d130000000000000000000000000000050f202932393f434446464646464646403f3b352e261c120800000000000000000000000000000000000000000000000000000000000000030c1b252d343a3e3f4646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646413f3c362f261d130800000000000000000008111a232c323b41464c5254585b5d5e5f5f5e5d5a5753514b443f38302820160e04000000020d17202d363f454a4b5353535353534947433d342b20150a000000000000000000000000000000000000000000000000000000000000000000000000000000030c151e272e343e44494f54565a5c5e5f5f5f5e5c5954524d46423b332c231a11080000000000000000000000020d17202c363e45494b5353535353534948443d352b21160a00000000000000000000000000000000000000000000060c151c232832373b3c444646464645433f3a322a20160c0100000000000000000000000000000000030d17212931363a3b4646464646453a39352f281f160c01000000000000000000000000000000000000000810191e272e34383f44464a4d505152535251504d4a47454039352f281f19100700000000000000000000030d17212931363a3b4646464646453a39352f281f160c01000000000000000000000000000000000000000000000000000006111a202930363d44484f54565e6165666d6f7174757778787979797878777573716f6d6665615e56544f515b606d79838c8c8c8c8c8c867d70655b5044372b1f1205000000000000000000000000000000050d141a21272c36424d575e6c6c6c6c6c6c6c6a665f5f5f5f5f5e5e66696c6c6c6c6c6c6c5e574d42362b272018130c04000000000000000000000000000000000000000000000000000000000000000000000000000001070e17202930363b424651575f666c72797979797975665c5044382b1f12060000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505c66757979797979726c665f575146423b3229251e160e070100000000000000000000000000000000000000000000131f2c3945525e6b757979797978706c615f57514b434646424b51575f656c71787979797873685c5044372b1e110000000000000000000000000000000000050e19232d37404a525c646e737f8792979f9e97928a827b756f6a65605d565653514b4d4c4b4b4a4a4b4b4c4d4b515357585f62686d737b828b9299a19f9791847a6e675d51483e32291f100600000000000000000a131b23292e313239393939393939382d2b27221b140b02000000000000000000000000000009121b23292e3132393939393939393433302b241d140b0100000000000000000000000000000e1720272e3336373939393939393933322f2a241c140a00000000000000000000000000000000000000000000000000000000000000000009131b23292e313239393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393433302b241d140b010000000000000000000008111a202930363b4146474b4e5051525251504e4a47454039342e261e160e040000000000050e1b242d343a3d3e4646464646463c3b37322b22190f0400000000000000000000000000000000000000000000000000000000000000000000000000000000030c151d232833393d4348494d5051525352514f4c4846423b363029211a110800000000000000000000000000050e1b242c34393d3e4646464646463c3b38322b23190f040000000000000000000000000000000000000000000000030b121820262b2e2f37393939393837332f2820180f05000000000000000000000000000000000000060f171f262a2d2e3939393939382d2c29241d160d04000000000000000000000000000000000000000000070c151d23282e34383a3d4043444546454543413e3a38352f29241d160d07000000000000000000000000060f171f262a2d2e3939393939382d2c29241d160d0400000000000000000000000000000000000000000000000000000000080e171f252a33383d44484d5254545c60626567686a6b6b6c6c6c6c6b6a69676562605c5454524c484445515c676e7b808080808080807f786c605346392d2013060000000000000000000000000000000002090e16212d3a46535e69767979797979797771665b5253525a66707679797979797976695e53463a2d21160d07010000000000000000000000000000000000000000000000000000000000000000000000000000040c1318202830353e444d525b62696e787f8686868687796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7987868686867f786e69625b524d443e3530282018130c0400000000000000000000000000000000000000000013202d394653606c7987868686847d756e69605c554f46454f545c60696e777e8586868685786b5f5245382c1f1200000000000000000000000000000000000007111b252e38414a525c646d727d8590949fa19e938f87817c76716d686663605d555a59585757575858595a555d6063676a6f747a80868f949fa39e9590857c6e685e554c41362d20170d000000000000000000010a11181e2225262d2d2d2d2d2d2d2b201f1b17110a02000000000000000000000000000000000911181d2224252d2d2d2d2d2d2d2726241f1a130b02000000000000000000000000000000050e161c2227292a2d2d2d2d2d2d2d2726231f19120a02000000000000000000000000000000000000000000000000000000000000000000010911181e2225252d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2726241f1a130b02000000000000000000000000080e171e252a3036393b3e42444546464543413d3a39352f28231c150c040000000000000009121b22292e31323939393939392f2e2b2720191007000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b121822282d32383b3c40434546464644423f3b3a36302a251f170f0800000000000000000000000000000009121b22282d3031393939393939302f2c27211911070000000000000000000000000000000000000000000000000000070c151b1f22222a2d2d2d2d2b2a27231d160f060000000000000000000000000000000000000000060d141a1e21222c2d2d2d2d2b20201d18130c040000000000000000000000000000000000000000000000030b12181c23282b2d30333638393939383734312d2c29241d18130c040000000000000000000000000000060d141a1e21222c2d2d2d2d2b20201d18130c04000000000000000000000000000000000000000000000000000000000000050d141a21272c33383b4246474a505355585a5c5d5e5f5f605f5f5e5d5c5a585553504a4746413b38404b555e696e73737373737373726c655b5044372b1f12050000000000000000000000000000000000000815212e3b4854616e7b86868686868683776a5d50464f5c6976828686868686867b6e6154483b2e211508000000000000000000000000000000000000000000000000000000000000000000000000000000070d161d2429323a414650565e616d727b828c929992877e71665c5044382b1f12060000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505c66717e879399928c827b726d615e565046413a3229241d160d0700000000000000000000000000000000000000000b1825313e4b5864717e889396918a827b736d67615953525960666d737b828b929792877e7064574a3d3124170a0000000000000000000000000000000000000009131c262f38414a525b626b707b828c92989e9e99928e88837e7a76726f6d67696766656464646465666769676d7074777c81868d92999fa19e938e837b6e6a5f564d433a2f241b0e050000000000000000000000070d12161819202020202020201f13120f0b0600000000000000000000000000000000000000060c11151718202020202020201b1a17140e08010000000000000000000000000000000000040b11161a1d1e202020202020201a1917130e0800000000000000000000000000000000000000000000000000000000000000000000000000070d1216181920202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020201b1a17140e08010000000000000000000000000000050d14191e252a2d2e313537383939383734302d2c29241d17110a030000000000000000000911181d2124252d2d2d2d2d2c23221f1b150f07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c171c21272c2f303336383939393836322e2d2a251f1a140d0500000000000000000000000000000000000910171d2124242d2d2d2d2d2d23221f1b160f0700000000000000000000000000000000000000000000000000000000040a0f1315161e202020201e1d1b17120c050000000000000000000000000000000000000000000003090e1214151f202020201e1413110d07010000000000000000000000000000000000000000000000000000070c11171c1f202427292b2c2c2c2b2a2724201f1d18120d07010000000000000000000000000000000003090e1214151f202020201e1413110d0701000000000000000000000000000000000000000000000000000000000000000002090e161c21272c30363a3b3f4446494b4d4f5051525253535251504f4d4b4946443f3b3936302f39434d565e616666666666666665605b53493f33271b0f030000000000000000000000000000000000000815212e3b4854616e7b87939393939083776a5d50444f5c6976828f93939393877b6e6154483b2e21150800000000000000000000000000000000000000000000000000000000000000000000000000000710191f282f353e444c525a61696e767f8690949a93877e716c61544a3f34281c10030000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a54616c717e87939a9490867f766e69615a524c443e352f281f191007000000000000000000000000000000000000000a1724303d4956626c717f8b919e948f868079706b615f5d606b6f797f868f949f93887e716c6155493c3023160a00000000000000000000000000000000000000010a141d262f384049515961696e787f868f949c9f9f9b94908b86837f7c7a77757472717170707172727376787a7d8084888e92989fa39f97928b81796e695f574e443b31281e1209000000000000000000000000000106090b0c1313131313131312060503000000000000000000000000000000000000000000000105090b0c131313131313130e0d0b0803000000000000000000000000000000000000000000060b0e1011131313131313130d0c0a07020000000000000000000000000000000000000000000000000000000000000000000000000000000106090b0c13131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313130e0d0b0803000000000000000000000000000000000002080e14191e202125282a2b2c2c2b2a2724201f1d18120c06000000000000000000000000060c111517182020202020201615130f0a040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b10161b1f222327292b2c2c2c2b292621201e1a140e090300000000000000000000000000000000000000060c111517182020202020201615130f0a040000000000000000000000000000000000000000000000000000000000000003060809111313131312110f0b0701000000000000000000000000000000000000000000000000000205070813131313131207060401000000000000000000000000000000000000000000000000000000000000060b101213171a1d1e1f201f1e1d1a171413100c070100000000000000000000000000000000000000000205070813131313131207060401000000000000000000000000000000000000000000000000000000000000000000000000050b10161c1f252a2d2e34383a3c3e414244454546464645454442403e3c3a38342e2d2a2527313b444d5254595959595959595953504941382d22170b000000000000000000000000000000000000000815212e3b4854616e7b87949f9f9d9083776a5d50444f5c6976828f9c9f9f94877b6e6154483b2e21150800000000000000000000000000000000000000000000000000000000000000000000000000040f19222b313a41454f565e616c717b828b92989a93887e716c615a5042382e23170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17232e3842505a616c717e88939a98928b827b716c615e564f45413a312b22190f040000000000000000000000000000000000000815212d3945505a626d727f8b919c98928c847d756e69686d747c838c92989c918b7f726c625a5044392d2014080000000000000000000000000000000000000000020b141d262e373f474f575e666d727b828990949b9f9f9c9992908c89868482807f7e7e7d7d7e7e7f808284868a8d91969b9fa39f99938d857e756d675e574e453c32291f160c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080e111414181b1d1e1f1f1e1d1b171413100c070100000000000000000000000000000105090b0b13131313131309080603000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f1315161a1d1e1f201f1e1c191514120e0903000000000000000000000000000000000000000000000005080a0b1313131313130909070300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306070a0d101112131212100e0b070604000000000000000000000000000000000000000000000000000000060606060605000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b1014191e2023282c2d2f3234353738383939393938373634322f2d2c2823201e191f29323b4246474d4d4d4d4d4d4d4c46443f382f261b1106000000000000000000000000000000000000000815212e3b4854616e7b8794a1aa9d9083776a5d50444f5c6976828f9ca9a194877b6e6154483b2e211508000000000000000000000000000000000000000000000000000000000000000000000000000a16212b343d434b515961686d757e858f949f9f93887f716c625a50483e30261c110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c26303e48505a626c717f88939f9f948f857e756d686159514b433d342b21160a00000000000000000000000000000000000005111d29343e48505a626d727f8c929c9f96918a827b73717a818891959f9d928c7f736d625a50483e33281c1004000000000000000000000000000000000000000000020b141c252d353e454d545c60696e757c83898f93999da09f9c999992918f8d8c8b8a8a8a8b8b8c8d8f91939a9a9ea0a19e99928e87817a716c605d554d453c332a20170d040000000000000000000000000000050a0d0f10101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010100f0d0a0500000000000000000000000002080d101213131313131313090806030000000000000000000000000000000000000000000000010407071213131313131313131313120f0a0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080b0f1112131312100e0a07060400000000000000000000000000000000000000000000060606060606000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030709090d1012131313110f0c08070502000000000000000000000000000000000000000000000000000000000006060606060600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040607090b0d0f1111121313121111100d0b08060603000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002090e1114171c1f20222527292a2b2c2c2d2c2c2b2a29272522201f1c1714110d17202930363a3b404040404040403f3937332d261d140a00000000000000000000000000000000000000000815212e3b4854616e7b8794a1a99d9083776a5d50444f5c6976828f9ca9a194877b6e6154483b2e211508000000000000000000000000000000000000000000000000000000000000000000000000030f1b27323d464e555d606b707a818a92979f9b918b7f726d625a50483e362c1e140a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141e2c363e48505a626d727f8b919b9e97928a817a706b605d554e463d32271b0f030000000000000000000000000000000000000c17222d363f48515b636d737f8c929ca09e948f867f7d848d939aa09d938d80736d635b51483e362c22170b0000000000000000000000000000000000000000000000020a131b232c333b424a50575f616b6f767c82878c9196989c9fa29f9d9c9a99989797979798999a9c9e9fa39f9c9997918c86817c746d68625a514b433b332a21180e0500000000000000000000000000030a1016191c1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1c1916100a03000000000000000000060d14191c1f1f2020202020201515120f0a030000000000000000000000000000000000000001080d1113141f202020202020202020201e1b161009010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000104070c10121316181a1c1d1e1f1f201f1e1d1c1a181513120f0b060300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030607090b0d0f1111121313121211100f0d0a08070502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000205060c10121316181a1c1d1e1f1f20201f1e1d1c1a18161312100c0605050e171f252a2d2e33333333333333322d2b27221b140b0200000000000000000000000000000000000000000815212e3b4854616e7b87949c9c9c9083776a5d50444f5c6976828f9c9c9c94877b6e6154483b2e21150800000000000000000000000000000000000000000000000000000000000000000000000007131f2c38434e5860676d747d858e939fa29b918b7f726d625a50483f362d241a0c020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c1a242d363f48505a626d727f8b919ba29f938e857d746d6760584e43382c1f130700000000000000000000000000000000000006101b242d363f49515b636d73808d929da49e98928c8a91969fa49e938e81746e645b51493f362d241a10050000000000000000000000000000000000000000000000000109111a212930383f444d535960636b6f757b7f84888c8f929797999b9c9d9e9f9f9f9f9e9d9d9b99979992908c8884807a746f6a615d5650454039312920180f0600000000000000000000000000040d151c21262929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292926211c150d04000000000000000810181f25292b2c2d2d2d2d2d2d22211f1b150e060000000000000000000000000000000000040c13191d20212b2d2d2d2d2d2d2d2d2d2d2b27211b130a0100000000000000000000000000000000000000000000000000000000000000030506090c0e1011121313131211100e0b090605030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030506090c0e1011121313131211100e0b090605030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010507070b0d0f111213131312110f0d0b07070501000000000000000000020608080c0f1112131312110f0c080705020000000000000000000000000000000000000000000000000000000001080d1113181c1f20222527292a2b2c2c2c2c2b2a29272422201f1c1712100c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000104060b10121315171a1c1d1e1f1f201f1f1e1d1b19171514120e0906030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030607090b0e0f1112121313131212110f0d0b0907060300000000050d14191e20212626262626262626201f1b17110a020000000000000000000000000000000000000000000815212e3b4854616e7b878f8f8f8f8f83776a5d50444f5c6976828f8f8f8f8f877b6e6154483b2e2115080000000000000000000000000000000000000000000000000000000000000000000000000915222e3b4854606a6f79818a91979ea39c918c7f726d625b51483f362d241b12080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008121b242d363f48515b626d727f8c919ca39e97918a81796f6a6054483b2e2215090000000000000000000000000000000000000009121b242d373f49525b636e74808d929da5a39f99979ea1a69e948e81786c605c524940372d241b1108000000000000000000000000000000000000000000000000000000080f171e262e343b42464f54596063696e73777b7f8285888a8c8e8f9192929292929191908f8d8b8886837f7c78736e68625f58524c443f352f271f170e0600000000000000000000000000030d161f262d3235363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363635322d261f160d03000000000006101a222a303538393939393939392f2e2b2620181006000000000000000000000000000000040d161e24292c2d383939393939393939393937332c251c13090000000000000000000000000000000000000000000000000000000003060b0f121315181b1d1e1f2020201f1e1c1a181513120f0b0603000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003060b0f121315181b1d1e1f2020201f1e1c1a181513120f0b060300000000000000000000000000000000000000000000000000000000000000000000000000000000000004080d111314171a1c1e1f1f20201f1e1c1a171413110d08040100000000030a0f121415191c1e1f20201f1e1c191514120e090300000000000000000000000000000000000000000000000003090e13191d2023282c2d2f31333637383839393838373634312f2d2b28221f1c17110d0802000000000000000000000000000000000000000000000000000000000000000000000000000001070d1113171c1f20222426292a2b2b2c2c2c2b2b2a28262422211e1a1312100c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010204050506060606050403010000000000000000000002090e1114141a1a1a1a1a1a1a1913120f0b0600000000000000000000000000000000000000000000000814212e3b4754616e7a8283838383828074675a4e414d5a6673808283838383827a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000916232f3c4956626f7c848e9393939393918c7f726d625b51493f362d241b120900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b242d363f49515b626d727f8c9193939393938e847c6f6256493c2f231609000000000000000000000000000000000000000009121b252d374049525c646e74808d939da59f9f9f9fa79f948f82786d665b504a40372e251b12090000000000000000000000000000000000000000000000000000000000050c141c232831363d44484f54575e61666a6e7276797b7e80818384858586868584848382807e7c7a76726f6c65615e56534e46413a3229241d150d0500000000000000000000000000000a151f2831383e424343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343423e3831281f150a00000000020d18222c343b4144464646464646463c3a37312a22180e0300000000000000000000000000010c1620282f35393a4546464646464646464646433e372e251b100500000000000000000000000000000000000000000000000000060b1012171b1f20222527292b2c2c2d2c2c2b29272522201f1b17120f0b0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b1012171b1f20222527292b2c2c2d2c2c2b29272522201f1b17120f0b060000000000000000000000000000000000000000000000000000000000000000000000000001070c1013191d20212427292a2c2c2d2c2c2b29272421201d1913100d0701060b0f151a1f212226292b2c2c2c2c2a282621211e1a140d05000000000000000000000000000000000000000000030a0f151a1e24292c2e34383a3c3e4042444445464645444443403e3b3938332d2c28231c19130d08010000000000000000000000000000000000000000000000000000000000000000000003090e13181d2023282b2d2f3133353737383939393837373533312e2d2a26201f1c17110d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080d0d0d0d0d0d0d0c060503000000000000000000000000000000000000000000000000000714202d3946525e686e767676767676746e64584c404b58636e737676767676766e685e5246392d2014070000000000000000000000000000000000000000000000000000000000000000000000010e1b2734414e5a67748186868686868686867f736d635b51493f372d241b1209000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b242d373f49515b636d737f86868686868686868174675a4e4134271b0e01000000000000000000000000000000000000000009131c252e37404a525c606c77818e93939393939393959082796d665c544a3f382e251c130900000000000000000000000000000000000000000000000000000000000000020a11171f262a32383d44484d5354575f6265666c6f717375767778797979787877767573716f6d676662605b53524c47433c3530282018120b03000000000000000000000000000005101c26313a42494e50505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050504e49423a31261c100500000008141f2a343e464d51525353535353534847433c342a20150a0000000000000000000000000008131e28323a41454752535353535353535353534f4940372c21160a0000000000000000000000000000000000000000000002080d11171c1f22272b2d2f323436373939393938373634322f2d2b27221f1c17110d08020000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d11171c1f22272b2d2f323436373939393938373634322f2d2b27221f1c17110d0802000000000000000000000000000000000000000000000000000000000000000000060b12181d1f252a2d2e313336373839393939373634312e2d2a25201d18120d11171b1f262b2e2f323537393939393735322e2d2a251f170f0500000000000000000000000000000000000000060b151a1f262b2f35393a404446494b4d4f50515252535251504f4d4b4846443f3a38342e29241e19130c0400000000000000000000000000000000000000000000000000000000000000040a0f151a1d24292c2e34383a3c3e404244444546464545444342403d3b3a36312d2c28231c19130d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111e2a36414c565e6169696969696967645c52473c47525c6366696969696969615e564c41362a1e11050000000000000000000000000000000000000000000000000000000000000000000000010d1a2733404c58646e747979797979797979736d635b51493f372d251b12090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b252d373f49515b636d737979797979797979746e64584c4033271a0d010000000000000000000000000000000000000000010a131c252e384044505b656c7881868686868686868683796d675d544a42382d261c130a01000000000000000000000000000000000000000000000000000000000000000000060b141a21272c32383b4246484e5355545b6062646668696a6b6c6c6c6c6b6a6a68666462605d555553504946413b373229241e160e07010000000000000000000000000000000a16212d38424c545a5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5a544c42382d21160a0000000d1925303b4650585d5f60606060606055534e463c31261b0f030000000000000000000000030c19242f3a444c52545e6060606060606060605f5a52493e33271b0f000000000000000000000000000000000000000001070d13191c23282b2d3337393c3f41434445464646454443413e3c3937332d2b28221c19130d070100000000000000000000000000000000000000000000000000000000000000000000000000000001070d13191c23282b2d3337393c3f41434445464646454443413e3c3937332d2b28221c19130d07010000000000000000000000000000000000000000000000000000000000020a11171d24292c3036393a3e40424445464646454442403e3a3936302c29241d191b22272b31373a3b3f42444546464544423f3b3a36312921170d0300000000000000000000000000000000020a111720262b31373a4145474a515355585a5c5d5e5f5f5f5f5e5d5c5a575553504a46443f38353029241e160d070000000000000000000000000000000000000000000000000000000000070c151b20262b2f35393a3f4446484a4d4f5051525253525251504e4c4a4846423d3a38342e29251e19140d0500000000000000000000000000000000000000000000000000000000000000010407070a0d10111213131211100d0b07070501000000000000000000000000000000010406070a0d0f11121213131211100e0c0908060300000000000000000000000000000000000000000000000000000000000000000000000000010d1925303b444c52545c5c5c5c5c5c5a58524a4136404a52585a5c5c5c5c5c5c54524c443b3025190d010000000000000000000000000000000000000000000000000000000000000000000000000b1824303c48535c64676c6c6c6c6c6c6c6c66635b51493f372d251b130900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009131b252d373f49515b63666c6c6c6c6c6c6c6c67645c53483c3024180b00000000000000000000000000000000000000000000010a131c2627333f49535b666c757979797979797979776d675d554b42392f261c140a01000000000000000000000000000000000000000000000000000000000000000000000003090e161b21272c31363a3c4247484a50535557595b5c5e5f5f5f5f5f5e5e5d5c5a585553514b4946443f3836302b262019130c0400000000000000000000000000000000000d1926323e49545e666969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969665e54493e3226190d000000101c2935414d5862696c6c6c6c6c6c6c625f584e43372b1f120600000000000000000000000b151e2935414c565d606b6c6c6c6c6c6c6c6c6c6c645a4f43372b1e1200000000000000000000000000000000000000040c13181e24292e34383a3f4446484b4e50515253535352514f4d4b4846443f3938332d29241e18130c0400000000000000000000000000000000000000000000000000000000000000000000000000040c13181e24292e34383a3f4446484b4e50515253535352514f4d4b4846443f3938332d29241e18130c04000000000000000000000000000000000000000000000000000000060c141c23282f35393a4146474a4d4f515252535352514f4d4a4746413a39352f2924262d33373c4347484c4f5152535352514f4c4846423b33291f1409000000000000000000000000000000060c141c232831373c42474c5154545c60626466696a6b6b6c6c6b6b6a69676462605b5453504a45413a352f281f18120b0300000000000000000000000000000000000000000000000000030b121820262b31373a4145474a50535557595c5d5e5e5f5f5f5e5e5d5b595755534d4946443f3835302a251e170e080200000000000000000000000000000000000000000000000000000002080d111314171a1d1e1f201f1f1e1c1a181413110d0803000000000000000000000003080d111314171a1c1e1f1f201f1f1e1d1b181615130f0a0602000000000000000000000000000000000000000000000000000000000000000000000008141e29323b4146475050505050504e4c4741382f3840474b4d5050505050504746413b32291e1408000000000000000000000000000000000000000000000000000000000000000000000000000814202b36414a53585a60606060606060605957514940372e251b1309000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000109131b252e37404951575960606060606060605a58534a41362b2014080000000000000000000000000000000000000000000000010a1417222d38414a545b60686c6c6c6c6c6c6c6c6a605d554c433930271d140a020000000000000000000000000000000000000000000000000000000000000000000000000000040a0f161b1f252a2d31373a3b3f4446484b4d4e505152525353525151504f4d4b494745403c3937332d2a251e1b150d08020000000000000000000000000000000000000f1c2935424e5a6670767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767670665a4e4235291c0f000000121f2b3844515d697479797979797979766a5f53473a2e2115080000000000000000000007121d27303945525d686d78797979797979797979766c5f5346392d2013000000000000000000000000000000000001070d161d24293035383f444649505355585a5c5e5f5f605f5f5e5c5a585553504946443f38353029241d160d080200000000000000000000000000000000000000000000000000000000000000000001070d161d24293035383f444649505355585a5c5e5f5f605f5f5e5c5a585553504946443f38353029241d160d0802000000000000000000000000000000000000000000000000070f181e262e34394045474c5254575a5c5d5f5f605f5f5e5c5a5754524c47454039352f2f383f44464e5355595c5e5f5f5f5f5d5b5954534d453b31251a0e0200000000000000000000000000070f181e262e343c43474d53555d6064666d6f71737577777879797877777673716e6c6663605c54524c45413a3128231d150c040000000000000000000000000000000000000000000000070c151d232831373c42474b5154545c60626466686a6a6b6c6c6c6b6a6a686664615f575653504a46413a3630292019130d0500000000000000000000000000000000000000000000000003090e13191d202124272a2b2c2c2c2c2b29272421201d1913100c0600000000000000060b0f13191d20212426292a2b2c2c2c2b2b29272522211f1b15120e0903000000000000000000000000000000000000000000000000000000000000000000020d1720293036393b43434343434341403c362f262e353b3f404343434343433b3936302920170d0200000000000000000000000000000000000000000000000000000000000000000000000000030f1a252f3841484c4e53535353535353534c4b4640372e251c1309010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a131c252e3740464b4c53535353535353534e4c4841382f251a0f030000000000000000000000000000000000000000000000000006111b262f38424a50535b60606060606060605d54514c433a31271e150b020000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f141a1e21262b2e2d3338393c3e40424344454646464545444342403e3c3a39352f2d2b27221b19140f0a040000000000000000000000000000000000000000101d293643505c6976828383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838276695c504336291d10000000131f2c3946525f6c79868686868686867c6f6255483c2f221509000000000000000000000c18232e39424f59606d7a85868686868686868686796c605346392d201300000000000000000000000000000000040c13181f282f353a41454a5053535b60626567696a6c6c6c6c6b6a69676562605b5353504a45413a352f281f19130c0400000000000000000000000000000000000000000000000000000000000000040c13181f282f353a41454a5053535b60626567696a6c6c6c6c6b6a69676562605b5353504a45413a352f281f19130c0400000000000000000000000000000000000000000000071019212a30383f444b5153565e616466696a6b6c6c6c6c6a696764615e5653514b45413a3c41495053585f6265686a6c6c6c6c6a6865615e574d42362a1e1205000000000000000000000000081019212a30383f444e53575f62676d7175797c7e8082838485858685848382807e7b7974706d66605d56524c433d342e271e160e050000000000000000000000000000000000000000000810191e272e343c43474d53555d6064666d6f7173757777787979787877767573706e696763605c54524c46413b322a251e170e0600000000000000000000000000000000000000000000060e141a1e24292c2d3134363738393938383634312e2d29251f1c17110a03000000020a11171b1f24292c2d313335373839393938383634322f2e2b26211e1a150e09030000000000000000000000000000000000000000000000000000000000000000050e171e252a2d2e3636363636363433302b241d242a2f32333636363636362e2d2a251e170e0500000000000000000000000000000000000000000000000000000000000000000000000000000008131d262f363c40414646464646464646403e3b352e251c130a0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a131c252e353b3e40464646464646464641403c362f261d13080000000000000000000000000000000000000000000000000000000a141d262f383f44464e5353535353535353504745413a31281f150c03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e12151a1e2122282b2d2f313335363738393939393837373533312f2d2c2924201f1b17110e08020000000000000000000000000000000000000000000013202d394653606c79868f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f86796c605346392d2013000000131f2c3946525f6c79859293939393887b6f6255483c2f22150900000000000000000005101c2834404b54606b74818e979393939393939386796c605346392d2013000000000000000000000000000000070d161d2429313a40454c52545c6063656c6f727476777879797978777674716f6c6563605b54524c45413a3129241e160e070000000000000000000000000000000000000000000000000000000000070d161d2429313a40454c52545c6063656c6f727476777879797978777674716f6c6563605b54524c45413a3129241e160e070000000000000000000000000000000000000000071019232b333b424a50555d6065686d717375777879797978777573716d6865605d55524c44464e535b60646a6e727577787979787775726e695e53463a2d211407000000000000000000000008111a222b333c424a50585f62696e747a7e8185888b8d8f90919292929291908f8d8a8885817d79736d68605d564f454039302820160e050000000000000000000000000000000000000009111a222a303940454e53575f62676d7175797b7d8082838485858685858483817f7d7b7874706d66615e56524c443e36302920180f070000000000000000000000000000000000000000060f181f262b3035393a3d404344454646454443403e3a3935302c28231c150c0802070b141b22272b2f35393a3d40424445454646454443413f3c3b37322e2b26201a150e060000000000000000000000000000000000000000000000000000000000000000050d14191e20212929292929292726241f1a13191f23262729292929292921201e19140d0500000000000000000000000000000000000000000000000000000000000000000000000000000000010b141d252b303334393939393939393933322f2a231c130a01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a131c232a2f323339393939393939393433302b251d140b01000000000000000000000000000000000000000000000000000000020b141d262d333839424646464646464646443a39352f281f160d0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000205090e1214171c1f2022242628292b2c2c2c2c2c2b2b2a2927252220201d1813120f0b060000000000000000000000000000000000000000000000000013202d394653606c7986939c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9386796c605346392d2013000000131f2c3946525f6c7985929f9f9f95887b6f6255483c2f2215090000000000000000050e1b242c3845515c666f7c88939fa99f9f9f9f9f9386796c605346392d201300000000000000000000000000000810191f282f353e434b51565d60666d7074787b7e81838485868686858482807e7b7874706c66605d56514b433e353028201910080000000000000000000000000000000000000000000000000000000810191f282f353e434b51565d60666d7074787b7e81838485868686858482807e7b7874706c66605d56514b433e35302820191008000000000000000000000000000000000000050e19222b353d454d545c60676d72767a7e80828485858686858482807d7a76726d67605d565050585f656c71767b7f82848586868584827f7b6e6154483b2e2115080000000000000000000007111a232b343d454d545c606a6e757b81868a8e929897999c9d9e9e9f9f9e9e9d9c9a9797928e8985807a736d686059514b423a322820170e05000000000000000000000000000000000009121b232c343c424b51585f62696e747a7d8185888a8c8f9091919292929191908e8c8a8884807d79736d68615e565046413a322a211910070000000000000000000000000000000000020a1117212a31373a4145474a4d505152535252514f4d4b4746413a38342e261e19130d12181d262d33373a4145474a4d4f51525253525251504e4b4947433c3a37312b2620180f06000000000000000000000000000000000000000000000000000000000000000002080d1114141d1d1d1d1d1d1b1a17140e080e1317191a1d1d1d1d1d1d1414110d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b131a202427272d2d2d2d2d2d2d2d2625231e19120a010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a12191e2325262d2d2d2d2d2d2d2d272724201a130b020000000000000000000000000000000000000000000000000000000000020b141c22282b2d353939393939393939372d2c29241e160d040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000206060b0f121315181a1b1d1e1f1f20201f1e1e1d1c1a18161413110d07050300000000000000000000000000000000000000000000000000000013202d394653606c7986939f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9386796c605346392d2013000000131f2c3946525f6c7985929faca295887b6f6255483c2f22150900000000000000020c16202b37424d57606d7983919aa4afacacacac9f9386796c605346392d20130000000000000000000000000009111a222b313a41454f555d60686d73797d8185888b8d8f919292939292918f8d8b8885817d78726d68605d555046413a322b221a11090000000000000000000000000000000000000000000000000009111a222b313a41454f555d60686d73797d8185888b8d8f919292939292918f8d8b8885817d78726d68605d555046413a322b221a110900000000000000000000000000000000020d17202b343d474f575f666d72797e83878a8d8f909292939292918f8d8a86837e79736d68605b5a626a6e787d83888c8f9192929292908e8c8275685b4f4235281c0f000000000000000000050f19232b353d464e575f666d727c81878e92999b9fa2aaa6a8aaa9a8a7a7a8a9aaa9a6a9a29e9a97928d85807a706b605c544c443a322920170c0300000000000000000000000000000009121b242d353e464e545c606a6f757b81868a8e929797999b9d9d9e9f9f9f9e9d9d9b999796918d8985807a746e68615a524c443c332b22191007000000000000000000000000000000020b141b2227333c42464c5254575a5d5e5f5f5f5f5e5c5a5754524c46443f38302a251e171d24292f383f44464c515457595c5d5e5f5f5f5e5e5c5a5855534e4847423c37312a2117110a020000000000000000000000000000000000000000000000000000000000000000010507081010101010100e0d0b08030002070a0c0d1010101010100807050100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080f14181a1b2020202020202020191916120d07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070d1216191920202020202020201b1a18140f080100000000000000000000000000000000000000000000000000000000000000020a11171c1f20282d2d2d2d2d2d2d2d2a21201d19130c040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030606090b0d0f101112131313121211100f0d0b090706040100000000000000000000000000000000000000000000000000000000000013202d394653606c798693939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939386796c605346392d2013000000131f2c3946525f6c7985929faca295887b6f6255483c2f2215090000000000000008131e28323a47535f69737f8c95a0acb6b8b9beac9f9386796c605346392d201300000000000000000000000009121b232c343d434b515961676d737a7f848a8e92979899969494989298949496999897918e89847f7a736d67615a524c443d342c231b1209000000000000000000000000000000000000000000000009121b232c343d434b515961676d737a7f848a8e92979899969494989298949496999897918e89847f7a736d67615a524c443d342c231b120900000000000000000000000000000008141e29323d464f5960696e787f858b90939a999c9d9e9f9f9f9f9d9c9a9992908b85807a726c65636c717c838a9095989b9d9f9f9f9f9d9b8e8275685b4f4235281c0f0000000000000000030d17212b353d474f5860696e787f868e93999fa3ababaca8a9a29e9d9b9b9a9b9c9d9fa3aaa9aba9a19e98928c857d736d665d564c443a32291e150a000000000000000000000000000007101b242d363e474f585f666d737c82878e92989b9ea2a9a6a8aaa8a7a6a6a6a7a8a9a8a6a8a19e9a97928c86807a716c615e564d453c342b22190e0500000000000000000000000000000a141d262d333f454d53565d606467696a6b6c6c6b6b696764615e5653504a423e36302920272f353e41495053555d606466686a6b6c6c6c6b6b696765625f5855534e47423c3328221c140b020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003080b0d0e13131313131313130d0c0a0602000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002060a0c0d13131313131313130e0d0b08030000000000000000000000000000000000000000000000000000000000000000000000060b0f12131b20202020202020201d1413110d08010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013202d394653606c798686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686796c605346392d2013000000131f2c3946525f6c7985929faca295887b6f6255483c2f221509000000000000030d1925303a44505a616e7b86929fa7afacabadb3ac9f9386796c605346392d2013000000000000000000000009121b242d353e464e555d606c707980868c91969a97918e8c8988878685868788898c8f91979a96918c868079706c615d564e463e352d241b120900000000000000000000000000000000000000000009121b242d353e464e555d606c707980868c91969a97918e8c8988878685868788898c8f91979a96918c868079706c615d564e463e352d241b120900000000000000000000000000020e1925303b444e58606b6f7b838b92979c9fa4a9a19e9c9a9a999a9c9ea1a39f9c97928d857e776e6d737e8690959d9fa7a8aba49f9f9f9f9b8e8275685b4f4235281c0f00000000000000010b151f29333d474f59606a6f7b838c92999fa4abadaaa29f9b979792908f8e8e8e8f909298989d9fa7acaaa29f97918880786d685e564c443a30261c1106000000000000000000000000050e19222d363e485059616a6f7980878f93999fa3aaabaaaaa29f9d9b9a9a999a9a9b9d9fa2aaa9aba9a19e98928d857e756d685f574e463c342a20170c0300000000000000000000000006111b262f383f4451575f61686d7073767778797978777673716d6864605c545046413a322a313940454f535b6064676d707375777878797978777674726f6a67625f57534d453f332d261d140b0200000000000000000000000000000000000002080d10121313131313131313131313131313131313131313131313121211100e0b09070604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306060f131313131313131311070604010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030608090c0f111213131211100e0c0a07060401000000000000000000000000000000000000000000000000000000000013202d3946535f6c767979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979766c5f5346392d2013000000131f2c3946525f6c7985929faca295887b6f6255483c2f2215090000000000010b151f2a36414c56626c76828f98a3aca49f9ea1a9b39f9386796c605346392d20130000000000000000000007111b242d363e474f5860676d747d848c929897928d8985827f7d7b7a7979797a7b7d7f8285898d929798928c857d756d6860584f473f362d241b11070000000000000000000000000000000000000007111b242d363e474f5860676d747d848c929897928d8985827f7d7b7a7979797a7b7d7f8285898d929798928c857d756d6860584f473f362d241b110700000000000000000000000005111e2a36414c56606a6f7d8590959ea1a9a29e9997928f8e8d8d8d8f9197999ea1a29f97928b827a747f8b92989fa7a9a19e999993929292998e8275685b4f4235281c0f0000000000000007121d27313b454f59606b707c8590959fa3abaea9a19e98928e8a87858382818181828386888b90959b9fa4aca9a19a938d837a6d685e564c42382e23170d0400000000000000000000020d17202b343e48505a616b707c838c92999fa4abaca7a09d999892908f8d8d8d8d8d8f909298989c9fa4abaaa29f97928a827a6e6960584e463c32291e150b0000000000000000000000000b17222d384149505b62696e747a7d808384858685858482807e7a76716d66615a524c443b333a434b515961656c71757a7d80828485858685858483817e7c78746e6a625f5751443f382f261d140a0000000000000000000000000000000000060d14191c1f1f202020202020202020202020202020202020202020201f1e1e1c1a18161413100c070501000000000000000000000000000000000000000000000000000000000003080c0e0e131313131313130f0e0c09040000000000000000000000000000000000000000000000000000000000000003070b0d0e131313131313130e0e0c080300000000000000000000000000000000000000000000000000000000000000000001040707090c0e101111121313121211100f0d0b0907060300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f131516191c1e1f1f201f1e1d1b19161413110d0801000000000000000000000000000000000000000000000000000000121e2b37434f5a646c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c645a4f43372b1e12000000131f2c3946525f6c7985929faca295887b6f6255483c2f221509000000000007121d27313946525e68717e8b949faaa49a939297a1ad9f9386796c605346392d2013000000000000000000060f19232d363e485059616a6f79818a919797918b85817c797572706e6d6d666d6d6e707275797c81858b919697918a817a6f6a615951483f362d23190f060000000000000000000000000000000000060f19232d363e485059616a6f79818a919797918b85817c797572706e6d6d666d6d6e707275797c81858b919697918a817a6f6a615951483f362d23190f0600000000000000000000000714202d3946525e686f7c869297a0a7a49d97928c888582818080808285888c91969ea1a29f948f84818c919fa3aaa39f97928d898685858687898275685b4f4235281c0f000000000000000c18242f39434d57606b707d8692979fa7aeaba39f96918b86817e7b7876757474757677797c7f83888e939a9fa7aca49f9590837a6d685e544a3f34281f160c0100000000000000000009141f29323d46505a626c717d8690959fa3ababa49f9b95908c898584828180808081828385888b8f93999fa2aaa9a19e938f847b6f6a60584e443b30271d120700000000000000000000030f1b27333f49535b606d727b81868a8d909192929292918f8d8a86837e78716c615e564d453c444c555d606c70787d82868a8c8f909192929291918f8d8b8884807b756e69625b504a42382f261b11060000000000000000000000000000000810181f25292b2c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2c2b2a29272523201f1c1813110d08020000000000000000000000000000000000000000000000000001090f14181a1b202020202020201c1b191510090200000000000000000000000000000000000000000000000000000001080e1317191a202020202020201b1a18140f0901000000000000000000000000000000000000000000000000000000000206080d11131416181a1c1e1e1f1f201f1f1e1d1b1a18161312100b060603000000000000000000000000000000000000000000000000000000000000000000000000060a0e1011131313131313100f0d0a05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c10151b1f222226292a2b2c2c2b2b2a28252321201d19130c0400000000000000000000000000000000000000000000000000000f1b27333e49525a5f60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060605f5a52493e33271b0f000000131f2c3946525f6c7985929faca295887b6f6255483c2f22150900000000020b18232f39434f59616d7a85929ea6a99f938785929eab9f9386796c605346392d20130000000000000000030c18212b353e48505a626b707c848e9398928c857f7974706c6666636161605c6061616366666c7074797f848b9298938e857c706b625b51483e352b21180c03000000000000000000000000000000030c18212b353e48505a626b707c848e9398928c857f7974706c6666636161605c6061616366666c7074797f848b9298938e857c706b625b51483e352b21180c0300000000000000000007131f2c38444f59616e7a859198a2a9a39f928d85807b78757473737475787b7f848b91969ea59f96918d929ca4a9a199928c85807c797878797a7d7e7164574a3e3124170b00000000000004101d2935404b555e69707d879298a2a9b1a8a099928c847f7a75716e696a6868676869666d6f72767b818790959da4afa79f9590837a6d665c50443e31281d13070000000000000000030d1925303b444e58626c717e879298a0a7afa79f99938e88837f7c79777574737373747577797c7f83878d92989ea5ada59e9691857c6f6a5f564c42392e23180c030000000000000000040f19232b3744505b656c747f868d92989a9c9d9e9f9f9e9e9c9a9992908a847e756d685f574e464c565d676d747d838a8f9299999b9d9e9f9f9f9e9e9c9a9896918d87817b726d605b544a41382d22170b040000000000000000000000000006101a222a30353839393939393939393939393939393939393939393939393838373634322f2d2c2923201d19130f0a0300000000000000000000000000000000000000000000030b131a202427282d2d2d2d2d2d2d292825211b140c0300000000000000000000000000000000000000000000000000020b12191f2326272d2d2d2d2d2d2d282724201a130b0300000000000000000000000000000000000000000000000000040a0f1214191d2021232527292a2b2c2c2c2c2b2b2a28272522201f1c1715120f0a050200000000000000000000000000000000000000000000000000000000000000040b11161a1d1e2020202020201d1c1916100a030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181d1f272b2e2f3235373839393837363532302d2c29241e160d04000000000000000000000000000000000000000000000000000a16212c3740494f535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353534f4940372c21160a000000131f2c3946525f6c7985929faca295887b6f6255483c2f221509000000000a141d2934404b55606b74818e97a1ada1978e8183909da99f9386796c605346392d201300000000000000000b151e2a333d47505a626c717d8691969490867f79726d6763605b54565554535053545556545b6063676d72797f858f949791867d726d625a50473d332a1e150a0000000000000000000000000000000b151e2a333d47505a626c717d8691969490867f79726d6763605b54565554535053545556545b6063676d72797f858f949791867d726d625a50473d332a1e150a0000000000000000000915222f3b4854606b75818e97a1aaa399928a8079736e69696767666769696e73797f848e939fa3a19e9a9da4a8a09691877f79736f6d67666c6e70716c6155493c3023170a000000000005101a232c3945515d676e7b859299a2aab1a79f9691878079726d6764615e575c5b5b5b545c6062656a6e747c838d929fa3aba7a0959082786d60594f433a2f24180d02000000000000010b151f2a36424d56606a717e889299a2aaafa49c959087817c77726f6d6668676766676768666c6f72767b80868e939fa3aaa8a09792867c6f685e544b40342820150900000000000000000b16212c38444f59606c77818b92999fa2aaa9a8a09e9c9b9c9d9fa29f9c96918a827a6e695f584e555d686d79818a90959c9fa3aba39f9e9c9b9c9d9ea1a9a8a19e99938e867f746c665b53493f332720150a000000000000000000000000020d18222c343b4144464646464646464646464646464646464646464646464645454443413e3c3a38342f2d29241e1a150f0a0400000000000000000000000000000000000000010b151d252b303435393939393939393534312c261e150c000000000000000000000000000000000000000000000000000b141d242b303334393939393939393534302b251d150b0100000000000000000000000000000000000000000000070c10151a1f2124292c2d303234363738383939393838373533322f2d2b2823211f1b15120e090300000000000000000000000000000000000000000000000000000000050d151c2227292a2d2d2d2d2d2d292926211c150d04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070d151d24292c32373b3c3f4244454646454443413f3d3a39352f281f160c0100000000000000000000000000000000000000000000000005101b252e373e4346464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646433e372e251b1005000000131f2c3946525f6c7985929faca295887b6f6255483c2f22150900000006111b262f3845515c67707d89939ea9a69e91857a84919daa9f9386796c605346392d20130000000000000007121d27303c454f59626c717e879298938c827b726d67605c5553504a4d505152535352514e4a5053555c60676d727b828b929892877f726c61594f453c30261c11060000000000000000000000000007121d27303c454f59626c717e879298938c827b726d67605c5553504a4a484746444647484a4a5053555c60676d727b828b929892877f726c61594f453c30261c11060000000000000005111d2a36414c56636f7c89939ea9a59f92877e746d67625f575b5a5a5a575f62666d7279818c9299a3aba7a9aca09691847c736d6762605c5b60616364615a5045392d21140800000000000b16212b37434e58606d79839097a1abb1a79f9590847c736d67605d5554524d4f4e4e4e4a505355585f626a6f78808a9299a3aba79f948d80736b61554b4035291f140900000000000007121d27313946525e696f7c86929aa3ababa39f928d837c756f6a6662605c545a5a5a5a5a545b606265696e747b818a9298a2a9a9a19891847a6e665c51453c31261a0e0500000000000003101b27323b4854606b73808c939fa3aba9a19e9896918f8f8f909297989d9f9e938f847b6e6a5f565d676d7a838e939da0a7a59e9b999291908f8f909297979c9fa6a49f98928b81786c655b50443c32261b0f05000000000000000000000008141f2a343e464d5152535353535353535353535353535353535353535353535251514f4d4b494745403a3935302b26201b150c0700000000000000000000000000000000000009131d272f373c40414646464646464642413d3730271e0e050000000000000000000000000000000000000000000000030d1d262e363c3f414646464646464641403c372f271d13090000000000000000000000000000000000000000070c12181c1f262b2e2f35393a3c3f414344444546464545444342403e3c3a38342e2e2b26211e1a140f0a0400000000000000000000000000000000000000000000000000040d171f272e3336373939393939393635322d261f160d03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a10191f272f35383c4347494c4f515252535251504e4c494745413a31281e13080000000000000000000000000000000000000000000000000009131c252c33373939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393937332c251c130900000000131f2c3946525f6c7985929faca295887b6f6255483c2f2215090000000b17222d38414e58606d7984919ea5aa9e948a7e7885919eab9f9386796c605346392d2013000000000000000c18232e39434d57606b717e8b929992887f786e69605d55514b5153575a5c5e5f5f5f5f5d5b5854524d51555c60696e767f879298928b7e716b60574e42382e23170c030000000000000000000000000c18232e39434d57606b717e8b929992887f786e69605d55514b514f4b443b3a3a383a3a3b3d3f44464b51555c60696e767f879298928b7e716b60574e42382e23170c030000000000000713202d3946525e6875828f9ca5ab9e938b7e716c605d55534d4e4d4d4d4d53545c60676d757f87929facb4b7aa9e91847b6f6a605d55535150535456575550483e33281c11050000000004101c27333a47535f6a74808d95a0a9b2a89f9590837a6f6a605c55514b484642424141423f4446494e53585f666d737e879299a4afa69f93887d70675d51453b30251a0e0200000000000c18232f3943505a616e7b859198a3acaca399928b80786f6a625f585653504a4e4d4d4d4e4a505355575e61696e757e869297a2aaaaa1969082786d60574e42372b21170b0000000000000713202c38444f5963707d88939fa5aea69f97918c87848382828385888b90959d9e9691857c6e685e606d798390959da5a8a09d938f8a86848382828385878b8f949da0a7a29f938e81776c60584e43372b21160b00000000000000000000000d1925303b4650585d5f6060606060606060606060606060606060606060605f5f5e5d5c5a585653514b4746413a37312b262018120b03000000000000000000000000000000030f1a252f3941484d4e535353535353534f4d4942393020170d02000000000000000000000000000000000000000000010b151f2e3840474c4d535353535353534e4d4841392f251a0f030000000000000000000000000000000000030b12181c23282c31373a3b414547494b4d4f5151525253525251504e4d4b4946443f3c3a37312d2a251f1b160f0a0400000000000000000000000000000000000000000000000b151f2931393f424446464646464643423e3831281f150a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b131c222b31394045474e5455595c5d5e5f5f5e5e5d5b585654514c433a2f24190d01000000000000000000000000000000000000000000000000010a131b21272b2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2b27211b130a0100000000131f2c3946525f6c7985929faca295887b6f6255483c2f2215090000040f1b27333f49535f6a73808c96a0aca2988f82757985929fac9f9386796c605346392d201300000000000004101c2834404b555f69707d87929892877e726c665f57514d53555c606467696b6c6c6c6b6a6865615e57544f51575e616d727d86929792877d706a5f544a3f3428201509000000000000000000000004101c2834404b555f69707d87929892877e726c665f57606060605e5c564e44392d2c2d2e323f49515759606060575e616d727d86929792877d706a5f544a3f34282015090000000000000714212e3a4754616d7a86929faca3998e81756d625a514b47424140404142474b51555e69707c86929facb8b0a3968a7d70696058514b46454446474a4a49453e362c22170c00000000000714202c38444f59626e7c87929fa7b1aaa1969083796d685f58514b45413b3a363035342e34383a3c43474e545c606c717e87939fa5afa49a9185796d60574d42362a1e11050000000004101c2934404b55616c76828f97a1aaafa49a92877e736d665f58534e4946443f41404040413f4446484d53565e616c717c859298a2aca89f948d80736a5f53473e33281c100400000000000916222f3b4854606b7683909aa4afa89f948f847f7a7776757676787b7f838990959c9791847a6d666c75818f959fa7a79f959189827e7a7776757676787b7e828990959ea5a59d938c7f736a5f53473d33271c100400000000000000000003101c2935414d5862696c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b6b6a69676562605c5554524c47433c373228231d150c0700000000000000000000000000000814202b37414b53595b606060606060605c59544b4232291f140900000000000000000000000000000000000000000007121d2731404a52585a606060606060605b59534b41372b20140800000000000000000000000000000001070c151d23282e34383c4347484c525456585a5c5d5e5f5f5f5f5e5e5d5b5a585553504a4847433c3a36312b27201b150d0802000000000000000000000000000000000000000006111c27313b434a4f51535353535353504e49423a31261c1005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b141c252e343d434b515358606265686a6b6c6c6b6a69686563605d554c4135291d110400000000000000000000000000000000000000000000000000010910161b1e202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020201e1b161009010000000000131f2c3946525f6c7985929faca295887b6f6255483c2f22150900040d1a232b3744505b656f7c87929fa8a79f92867b6e7986939fac9f9386796c605346392d20130000000000050f1a232c3845515c676e7b85929992867d716c605b544d51575f61676d70737677787979787775726e69636059524d525b626b707c85929892857c6e665c50443c31261a0f04000000000000000000050f1a232c3845515c676e7b85929992867d716c605b63666c6c6c6c6b6760564b3f331f25303b44515b62656c6c6c6c6c67646b707c85929892857c6e665c50443c31261a0f0400000000000b1825313e4b5864717e8b99a3ac9f92867b6e625a504540393731343331373c45515c676e7b859299a3aeabaea99c9083786c60564c413a3838393b3d3e3c39332c241a100500000000000916232f3c4855616b76828f99a3afaea39891847a6d675e564e454039352f2d2a25282823282c2d31373c424a505a616c727f8b939ea8aca1978c8073695e52463a2d2014070000000006131f2c3845515c67707d8a949fa9b0a69f93887e716c605c544e47433c3a38342e3433342d3338393c42464d525a616a6f7c86929aa4afa69f92877b6e62594f44392d20150a00000000000a1623303d495663707c89949facaca0958f827a726d686968696a696e72767d838c929f968f82786d717e8b939ea7a79f9590837d75716d676968696a696e71767d838e939ea5a59f92877c6f62594f44382c20140700000000000000000005121f2b3844515d697479797979797979797979797979797979797979797979797878777674716f6d6764615d56534e47433c342e271e191008000000000000000000000000000c1824303c48535d64686c6c6c6c6c6c6c68655d54443b3025190e0000000000000000000000000000000000000000000c18232f3943525c64676c6c6c6c6c6c6c68645d53483c3024180c0000000000000000000000000000030b12181e272e34394044464e5355565d60636567696a6b6b6c6c6c6b6b6a68666562605c5455534e4846423b37322b262019130c04000000000000000000000000000000000000000a16222e39434d555b5d6060606060605c5a544c42382d21160a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009131c262e3740464f555d60656a6f7275777879797877767472706d675d5145392c201306000000000000000000000000000000000000000000000000000000050a0f1213131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313120f0a0500000000000000131f2c3946525f6c7985929faca295887b6f6255483c2f221509010c161f2a36414c56606c77839099a3aba0958c7f726d7a879aa4af9f9386796c605346392d201300000000000b16212b37434e58606d7983919792877d706b615a504d555c60696e74797d8082848586868584817f7b76706b605d564e5159606a6f7c8692979083786d60584e43372b21160a0000000000000000000b16212b37434e58606d7983919792877d706b615a636d72797979797772675c4f43372a2a36414d56626d727979797979746e646a6f7c8692979083786d60584e43372b21160a00000000000e1b2834414e5b6774818e9aaba99c8f8276695f53483f352f2b262727313c46515b606d79839097a1aaa29fa2aa9f948b7e71685e52463c322b2d2e3031302d28221a1208000000000005121e2a36424d5763707d89949fabb2a89f92867c6f685e554c443c342e2924201e1a1b1b171c1f20262b30383f44505a626d75818e96a0aca79f92867b6e6154473b2e21140800000003101c28343f4a54606d7984919ea6b0aa9e948c7f736c625a504a423c37322d2c282327272722282b2d31363b42465058606a707e88939fa8aea3998f82766c6155493c31261b0f0000000004101d2935404b556774808d9aa6b0a99d91837a6d68615e565c5c575f61656b7078808b9399948c7f737a85929fa5aba095908279706b64605d555c5c565e61646b7079818e939ea8a3999083776b6054483c2f22160900000000000000000006131f2c3946525f6c79868686868686868686868686868686868686868686868685848482807e7c7975716d68625f58534e454039302a221a11090000000000000000000000000e1a2734404d59646f7479797979797979756f65564d42362a1c11060000000000000000000000000000000000000004101c2934404b55646e7479797979797979746f64594d4034271a0e00000000000000000000000000040d151d2329303940454a5153585f6266686d6f7274767777787979787877767573716f6d6666625f5854534d47433d373129241e160e060000000000000000000000000000000000010e1a27333f4a555f676a6c6c6c6c6c6c69665e54493e3226190d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007101b252e384049515960676d71777c7f8284858586858483817f7d796d6054473a2d21140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000131f2c3946525f6c7985929faca295887b6f6255483c2f22150907121d28313946525e68727e8b949faba3999083786d6e7a8794a1b69f9386796c605346392d20130000000004101c27333a47535f6a73808c95928b7f726b6159504d575e676d737b81858a8d8f9192929292908e8b87827d756d685f584e4f58606a707e8793958c7f726a5f53473d32271b0f040000000000000004101c27333a47535f6a73808c95928b7f726b61595966727f8686868684776b5e51443826303846525e68727f8686868686817467606a707e8793958c7f726a5f53473d32271b0f0400000000101d2a3743505d6a7683909da9a5988c7f7265574d423629241d1a242f39434e58626d74818e959fa9a29892989fa69e92857a6d61584e43372b2021232423211c1710080000000000000714212d3a46535e6975828f9ca6b0aca0968c7f736a60564c433a3228231d1814120e09060c1012131a1e262e343e48515b606d7984919ea09d95908a807366594d4033261a0d00000006121f2b3844505c66727f8c96a0acaea2988f82776c605a50443f38302b26201f1c171a1a1a171c1f20252a30363e464e58616c73808d96a1acab9f948a7d7064584e43372b1d120700000006131f2c3945515d677784909daaada1978a7d70675e56524c4f4f4d53555960666d737e87939f92867b7f8c97a2ada39990837a6d67605954514c4f4f4d52545960676d78818f96a0a49f95897d7063564a3d3023170a00000000000000000006131f2c3946525f6c7985929393939393939393939393939393939393939399929291908f8d8b8985827e7a756f6a625f58514b433c342c231b120900000000000000000000000e1b2835414e5b687481868686868686868175695e5246382d22170b0000000000000000000000000000000000000006131f2c3845515c677480868686868686868174685b4e4135281b0e000000000000000000000000050e161f272f343d434b51545c60646a6e72767a7c7e808284848585868585848381807e7c7976736f6a66615e57544e47433c3530282017110a0200000000000000000000000000000003101d2936424f5b6771777979797979797670665a4e4235291c0f03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c19222d37404a525b636b6f797e84888c8f909192929191908e8b897f7266594c3f3326190c0000000000000000000000000003080c0e0e131313131313130f0e0c09040000000000000000000000000000000000000000000000000000000000000003070b0d0e131313131313130e0e0c0803000000000000000000000000000000000000000000000000000000000406070b0e11121313131313130c0c0a0602000000000000131f2c3946525f6c7985929faca295887b6f6255483c2f2215090b18242f39434f59616e7a85929fa6a89f92877c6f666e7b8894a1ac9f9386796c605346392d2013000000000714202c38444f59626f7c8792968e81746d62594f4d575e696e7980868d92989a9c9b999898999b9b9a938f89827a6f6a5f574d4e58616c737f8c9592867c6e62594f43382c20150a000000000000000714202c38444f59626f7c8792968e81746d62594f5966727f8c93939184776b5e5144382e38424f59616e7b8692939391857a6d6058616c737f8c9592867c6e62594f43382c20150a00000000121f2b3845525e6b7885919eaba295897c6f6256493c31231817202935404b555f6a727f8b939da7a298928590949fa1978e81746a5f53473c32261b17171714110c05000000000000000815212e3b4854616e7b87939facb2a89d9184796d60584e443a31292018120d0705020000000306090c151c2328363f45515d676f7d899395908a837e776c605346392d2013060000000713202d3a4653606d7884919ea8b2a99f92867b6e655b50483e342e261e1b1312100c060d060b0f12131a1f252a343d46505a606d7984919ea8b0a69c8f83766a5f5347392e23180c0000000714202d3a4753606d7a86939facab9e9285786c60554c464142434246484f545c606c727f8b9398908385929ea9ab9f92877c6f685d554f47454142434246474f555d666d7984919b9a93908c8276695c4f4336291c1003000000000000000006131f2c3946525f6c7985929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa39f9e9e9d9c9a9898928f8b86817c756f6a605c554e463e352d241b1209000000000000000000000916232f3c4956626f7c89959393939392867b6e61544a3f33281c0f030000000000000000000000000000000000000714202d3a4753606d7985929393939395897c6f6356493c302316090000000000000000000000050f172028313940454f555c60666d71777b7f8386898b8d8f9091929292929191908e8d8b8885827f7c77736e69626058534e46413a3228221c140b03000000000000000000000000000004111e2a3744515d6a77838686868686868276695c504336291d10030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151e2b343f49525c646d737c848b9095989b9d9e9f9f9e9d9c9b988c7f7266594c3f3326190c000000000000000000000001090f14181a1b202020202020201c1b191510090200000000000000000000000000000000000000000000000000000001080e1317191a202020202020201b1a18140f0901000000000000000000000000000000000000000000000001070c101314171b1e1f202020202020191816120d070000000000131f2c3946525f6c7985929faca295887b6f6255483c2f22150a141d2935404b55616b75818e97a2aca1968d80746a626f7b8895a2ac9f9386796c605346392d2013000000000916232f3c4855606b768390999184796d605b514b555e696e7b838d92999f9c96918e8c8b8b8c8e92979e9c938f847c6f695f564c505a606d788390988f82766b6054483d32271b0f000000000000000916232f3c4855606b768390999184796d605b514c5966727f8c999e9184776b5e514438343f4a54606b75818e989e948a7e71685d525a606d788390988f82766b6054483d32271b0f00000000131f2c3946525f6c7985929faca194887b6e6155483b2e22151f29333b45515d676f7c86929fa5a49a92867b829099a39f93877c6f62584e43372b20150a0a0805000000000000000005121e2a36424d576673808d99a4afaca0968a7e71665c51463c32281f170e0700000000000000000000030a1117242935414b55606b75818e8a837d78706c655b5044372b1f1205000005111e2a36414c5664707d8a96a1adada1978c7f72695e53493f3628231c140c0a060300000000000306090e1419222b343e45515d67717e8a96a0acab9f94887c6f62544b4034281c100400000815212e3b4854616e7b879aa4afa89b8f8275655b50433a363031363a3d424a515a626d75818e9794909297a1ada3998d80736a5f564c433d39352f30363a3d434b545d67707d8a8e8b87837f7c6f6255493c2f22160900000000000000000006131f2c3946525f6c7985929facacacada7a5a5a5a5a5a5a5a5a5a5a5a5a5a5a6a6a7aaa9a7aaa29f9b99928e87827c736d675f584f473f362d241b10070000000000000000000915222e3b4854606a7783909daa9fa3998c7f73665b5044382b1f1409000000000000000000000000000000000006121f2b37434e5864717e8a97a29f9f9d9083776b6054483b2f22150900000000000000000000050e172129323a434b515960676d72797e83888c909399989a9c9d9e9e9f9f9f9e9e9d9b999898928f8c8884807b756f6a625f58524c443d332d261d150c040000000000000000000000000004111e2a3744515d6a778490939393938f8376695c504336291d1003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c26303d46515b646e737f8791969da0a7a8aaa8a4a2a0a0a0a1998c7f7266594c3f3326190c00000000000000000000030b131a202427282d2d2d2d2d2d2d292825211b140c0300000000000000000000000000000000000000000000000000020b12191f2326272d2d2d2d2d2d2d282724201a130b03000000000000000000000000000000000000000000060b12181c1f2024282a2b2c2d2d2d2d2d2625221e18120a01000000131f2c3946525f6c7985929faca295887b6f6255483c2f2215111c262f3845515d67707d8a939ea9a59e9184796d60626f7c8895a2ac9f9386796c605346392d201300000007131f2c38434f5963707d899593897d70675d5145515d676e7b8490959f9f948f898481807e7e7f82858a91969e9691857b6e685d5245505c666f7c879294897c6f63584e43372b1c1106000000000007131f2c38434f5963707d899593897d70675d51494c5966727f8c999e9184776b5e5144383844505c666f7d89939e988f82756c61564c505c666f7c879294897c6f63584e43372b1c110600000013202c3946535f6c7986929faca093877a6d6054473a2d211a25303b45505a606d79839199a3a59f93887e707c87929fa49a8f82756a5f53473c32261b0f01000000000000000000000714212d3a46535f697784919eabb5ab9d9184786c60544b40342b20160d0500000000000000000000000000061218242f3a434f59616e7b837e78716c65605b53493f33271b0f0300000714202d3946525e6876828f9ca8b2ab9e9185796d60574d41382d2417110a02000000000000000000000002091019222935404b55606c7884919dabb0a69a8e8174665c5145382c1f130600000916222f3c4955626f7c8895acb6a79a8d81746753493f312a25262a2d30394044515b616d7a85929f9c9ea1a9ac9f92867a6d61584e433a312c2924252a2d3139424b55606c7783827e7a76736f6a6054473b2e22150800000000000000000006131f2c3946525f6c7985929facb8ada39c9898989898989898989898989898999a9b9d9fa3aaaaacaba39f9a938f8780796f6a615950483f362d22190f05000000000000000007131f2c38434e5865727e8b98a2aeab9e9184786c6053463b30251a0e00000000000000000000000000000000000814212e3a47535f6a7683909ca9aea2988b7f7265594f43382c1f1307000000000000000000030d172029333b444c555c606b6f797f848b9095999c9fa4aba7a9a9a8a7a6a6a7a7a8a9a8a6aaa29f9c9995918c87817c766f6a615d564f443f382f271e160d0400000000000000000000000004111e2a3744515d6a7784909d9f9f9c8f8376695c504336291d100300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c17232e38424e58626d73808c9299a0a8acaaa39f9b979594939394958c7f7266594c3f3326190c000000000000000000010b151d252b303435393939393939393534312c261e150c000000000000000000000000000000000000000000000000000b141d242b303334393939393939393534302b251d150b01000000000000000000000000000000000000020a11171d23292c2d3134373839393939393933322f2a231c130a000000131f2c3946525f6c7985929faca295887b6f6255483c2f221517222d38424e58606d7984919ea5a99e938a7d70675d626f7c8995a2ac9f9386796c605346392d20130000000915222f3b4854606b7683909a8e81756b60554b4e58606d798390969f99928b827c78747372727375797e848e939d9791847a6d605a504a545f6a74808d988f82766a605447382e23170c00000000000915222f3b4854606b7683909a8e81756b60554b414c5966727f8c999e9184776b5e514436414c56606d7883909d9f92867b6e615a50444a545f6a74808d988f82766a605447382e23170c000000121f2c3945525f6c7885929faba194877a6e6154473b2e21202a36424d57616c74818e95a0a89e938c7f736c74808d97a29f93877c6f62584e43372b1e1308000000000000000000000815222e3b4855616e7b8896a0acafa3998c7f72665b5042392e22190e0500000000000000000000000000000007131d28313d46535f696e77716c65605b53504941382d22170b0000000814212e3b4754616e7a87939facafa3998c7f72675d51453b2f261b1206000000000000000000000000000000071018242f3944505b66727e8b99a3aeac9f9285796d6053463a2d2013080000091623303c4956636f7c8996a2afa69a8d8073675a4d403025191a1e21272e343f46525e6873808c99a3abadb3a89c8f8275685e52463c3128201d19191e2027303944505b656c7675716d68666260584e43372b1f130600000000000000000006131f2c3946525f6c7985929facb8a79c918c8b8b8b8b8b8b8b8b8b8b8b8b8b8c8d8e909298999da0a7aaaca49f99928d837c706b625a50483e342b21170d0300000000000000030f1b27323d4754606d7a85929facaca1968a7d7063574d42362a1c110600000000000000000000000000000004101c2934404b55626e7b88949fabac9f92867a6d6054473d32271b0f030000000000000000010b151f29333b454d565d676d747c848c91969da0a7a9aca8a9a19e9c9b9a9a999a9a9b9d9fa2a9a6aaa9a7a09d99928e89827c746d686059504a423930281f160c01000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a54606a727f8b929fa3abaca49f98928e8b8887868687898b7f7266594c3f3326190c00000000000000000009131d272f373c40414646464646464642413d3730271e0e050000000000000000000000000000000000000000000000030d1d262e363c3f414646464646464641403c372f271d13090000000000000000000000000000000000030b141b22272f34383a3e4144454646464646463f3e3a352e251c12070000131f2c3946525f6c7985929faca295887b6f6255483c2f22151c28333f4a545f6a73808d96a1aca2978e81756b6155626f7c8995a2ac9f9386796c605346392d2013000004101c2934404b55636f7c899493877c6f62594f4754606a74808d95a09892877e766f6c6566656566666d7179818e939d968e81756c61554b4e58616e7b869294897c6f62544a3f34281c100300000004101c2934404b55636f7c899493877c6f62594f433f4c5966727f8c999e9184776b5e51443846525e68727f8b959f958b7f72695e53483e424e58616e7b869294897c6f62544a3f34281c10030000111e2b3844515e6b7784919eaaa295887c6f6255493c2f2428323a46525e69707e8a939da8a0958e81776c606d7a85929fa49a8f82756a5f53473a2f24190d010000000000000000000c1825323f4b5865727e8b98a8b2ac9f92867a6e61544a3f30271d100700000000000000000000000000000000010c161f2a36424d575f616a64605b535049443f382f261b11060000030f1b27333f495364717e8b9aa4afac9f92867a6e61554b4033291d140a000000000000000000000000000000000007121d28333f4a54616d7a86929facaea298897d706356493d2f24190d01000916222f3c4955626f7c8895aab4a79b8e817468564c41362a24201d191c232a36414c56616e7a86929facb9b3a9978a7e7164564c41342a1f161d1d1d1d151e27333f49535b606a6864615e5655544e463c32271b0f0300000000000000000006131f2c3946525f6c7985929facb2a5988c7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f80818386888c91959c9ea6acaba39f9591867d716c625a50463d33291f140900000000000000000a16202c3945515d6774818e9aa7b1a89b8f8275695e5246382e23170b00000000000000000000000000000006131f2c3845515c6774808d9aa6b0a79b8e8174685d5245392b21160a00000000000000000007121d27313b454d575e686d79808791959ea1a8acaaa29f9b979791908e8d8d8d8d8e8f909297979a9ea0a8ababa39f9b948f87817a706b605b544b433a31281d1307000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000000000000000000000000000000000000000000000000000000000001040707121f2c3844505c666f7c87929fa4afaaa39a938d86817e7b7a797a7a7c7e7d6f6356493c302316090000000000000000030f1a252f3941484d4e535353535353534f4d4942393020170d02000000000000000000000000000000000000000000010b151f2e3840474c4d535353535353534e4d4841392f251a0f03000000000000000000000000000000030c151d262d33394045474a4e51525353535353534c4b463f372e23180d0200131f2c3946525f6c7985929faca295887b6f6255483c2f221a242b3844505b666f7c87929fa8a69f92857a6e615956626f7c8995a2ac9f9386796c605346392d2013000006131f2c3845515c6775818e9b8f82756a5f53474d57626f7c87939f9f92867d716c62605b535858545c60676d77818e959e938a7e71675d5146525e6974818d9a8e8174665c5044382c1f120600000006131f2c3845515c6775818e9b8f82756a5f53473d3f4c5966727f8c999e9184776b5e5144424e58616d7a85929f999083786c60574d42363c46525e6974818d9a8e8174665c5044382c1f12060000101d293643505c6976838f9ca9a4978b7e7164564c413529303a44505a616e7b85929ea5a3989183796d655d6873808d98a39f93877c6f62564c4135291d1104000000000000000004101d2935404b556875828f9ba8b5a99c908376685e5242382d1e150b000000000000000000000000000000000000040d1a26313b454d53555d57535049443f38332d261d140a00000005121f2b3744505b6575818e9bacb6a99c8f8276685e5243392f21170b020000000000000000000000000000000000010b17222d3846525d6875828f9ca8b4aa9a8d807367564c4135291d1104000814212e3b4754616e7a8798a2aeaa9d908377685e52463c352f2c2924272625303a46525e6876828f9ca9b6ada197877b6e6154483b302a2a2a2a2a2a2a2a2a222d38414950535d5b5854524c4947433c342b20150a0000000000000000000006131f2c3946525f6c7985929facada093877a7272727272727272727272727273737477797c8084898f949da0a7afa7a09892877e716c61584e453b30251a0d040000000000000004111d2935414b55626f7c88959fabac9f92877b6e61544a3f34281c100300000000000000000000000000000714202d3a4753606d7985929eabaca095897c6f63564c413529190f040000000000000000040e18242f39434d575e696e7a828d9399a0a8ada8a19e98928e8a878583818180808081828385878a8d9196999ea1a9aca69f99928d847d736c665c554b433a2f24180d010000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000000000000000000000000000000000000000000000000000000000000000000000000000000206080d1113141d2935404b55606d78839099a3aeaba3989288817a75716f6d6d6d6e6f716f6b6054483b2f22150900000000000000000814202b37414b53595b606060606060605c59544b4232291f140900000000000000000000000000000000000000000007121d2731404a52585a606060606060605b59534b41372b2014080000000000000000000000000000000b151e272f383f444b5153575b5d5e5f6060606060595751493f352a1e120600131f2c3946525f6c7985929faca295887b6f6255483c2f221f2a36424d57606c78839099a3ab9f948b7e71685e5256626f7c8995a2ac9f9386796c605346392d201300000714202d3a4753606d79859296897c6f63584e46535f6975828f9a9f948b7f726b615a5350494b4b4b51555d656d78839099999184796d6053474d56616e7b88959285796d6053463a2d2013070000000714202d3a4753606d79859296897c6f63584e43353f4c5966727f8c999e9184776b5e513f4a54606a74818e979f92877c6f665b50453b3136424d56616e7b88959285796d6053463a2d20130700000d1a2633404d596673808c99a9a79b8e8174685d52453b3136414c56616c75828f97a2a59f92867c6f675d56616e7a86929fa49a8e8174685d5245392c20150a000000000000000006131f2c3845515d677884919eabb6ac998c7f7266564c412f261c0c030000000000000000000000000000000000000009141f29333b424648504a46443f38332d27221b140b020000000613202d394653606c7885929eabb3a9988b7f7265564c4131271d0f050000000000000000000000000000000000000006111c2935414c5665727f8b98aab4aa9d918477685d5245392c201306000714202d3a46525e697885929fabac9f92867a6e61584e45403a39352f3433333236414c566673808c99a6b3ab9e928578695e53463a3737373737373737373737372f383f4446504f4b4746413c3b37322b2620180f0600000000000000000006131f2c3946525f6c7985929facada093877a6d656565656565656565656565666768666d6f73777c828990959fa4acaaa299928b7e716a60574d42362a1f160c01000000000000010d18242f3a47535f6a7683909da9afa3998c7f73665c5044382b1f14090a0a0a0a0a0a0a0a0a0a0a0a0a0a121f2b37434e5864717e8b97a2adaa9d9083776b6054443a2f2419070000000000000000020c16202935404b555e696e7b8390949fa4abaaa29f96918b86817e7b78767574737374747577787b7d8084888d92979ea1a8aba39f96918780786d675d554b4035291d11040000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000000000000000000000000000000000000000000000000000000000000000000000000003090e1214191d2021242c3945515d67727f8b95a0abafa39992867d746d6864626160606162656360594f43382c1f130700000000000000000c1824303c48535d64686c6c6c6c6c6c6c68655d54443b3025190e0000000000000000000000000000000000000000000c18232f3943525c64676c6c6c6c6c6c6c68645d53483c3024180c000000000000000000000000000007121d273039414950555c6064676a6b6c6c6c6c6c6c66635b51463a2f22160a00131f2c3946525f6c7985929faca295887b6f6255483c2f2228313a46525e69727f8b959faba3999082776c60564c56626f7c8995a2ac9f9386796c605346392d201300000a1724313d4a5764707d8a989184786c6053464855616e7b88949e9c9083786c60595046443f3f3f40454b535c666e7b878e8a86827c6f62554846535f6976839097897d7063564a3d2f23180c0000000a1724313d4a5764707d8a989184786c6053463c313f4c5966727f8c999e9184776b5e5144505b666f7c87939f968d80736a5f544a3f3329303b46535f6976839097897d7063564a3d2f23180c00000a1723303d4a5663707d8997a1ac9f92867a6d60574d43393946525e68717e8a949ea89e938b7f726a5f55525e6874818d9aa49f92867a6d6054473d32271b0f03000000000000000714202d3a4753606d7a86939facafa49a897c6f6356493c3023140a0000000000000000000000000000000000000000030d17212931363a3b443e3937332d27221b17110a02000000000815222e3b4855616e7b8897a1adada197887b6e6255483b3022150b0000000000000000000000000000000000000000000d1924303c4855626f7b8898a2aeaca095877a6d6054473a2d2114070005111e2a36424d566976828f9caaafa3998c80736a5f58514b4745414240403f3f3f3e4a5764717d8a97a4b0a99c8f827669574d4244444444444444444444444444444444444444444444444444443b3a37312a21180e03000000000000000006131f2c3946525f6c7985929facada093877a6d605858585858585858585858595a545c6062666b6f767c838d939aa3ababa39f92867c6f695e52463e31281d13070000000000000007131d2b37434e5864717e8b97a2adab9e9184786d6053463b31251a16161616161616161616161616161616212e3a47535f6a7683909ca9aea2988b7f7265594f4332281e1308000000000000000008131e28323a45515d676e7b8491959fa6afa7a098928c847f7a75716e6969686767666767686a696e7173777b80858b91969fa2aaa9a199938c81796d675d5145392c2013060000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000000000000000000000000000000000000000000000000000000000000000000000060c10151a1e2124292c2d30333f4a54606d7985929ea7b1a79f92877d706b615e565554535354565856544f473d32271b0f0300000000000000000e1a2734404d59646f7479797979797979756f65564d42362a1c11060000000000000000000000000000000000000004101c2934404b55646e7479797979797979746f64594d4034271a0e00000000000000000000000000040d18232e39434b535b60676d71747778797979797979726d63574b3e3225180c00131f2c3946525f6c7985929faca295887b6f6255483c2f242f3a43505a616e7b86929fa7a89f92867c6e655b504956626f7c8995a2ac9f9386796c605346392d20130004111d2935414c566874818e9a8d8073655b50444b5566737f8c99a096897d70665b50473e37332d2e3439414a545f697380827e7a766f6a5f5347424d5765727f8c988d817467554b4034291c10040004111d2935414c566874818e9a8d8073655b504437333f4c5966727f8c999e9184776b5e514c56606c7883909a9e9184796d60584e42382d212a36424d5765727f8c988d817467554b4034291c1004000713202d3a4653606d7985929eaaa2988c7f72695f554b43424f59616d7a85929ea6a1968f81756d62584e4c56616e7b87939fa2988b7f7265584e43372b1f1306000000000000000915222f3c4855626f7b889aa4afac9f93867a6d6054473a2d211407000000000000000000000000000000000000000000060f171f262a2d2e37312d2b27221b17110b060000000000000a1724303d4a5763707d8a96a9b3ab9e928578695f53473a2e2114030000000000000000000000000000000000000000000813202d394653606c7985929facb1a795897c6f6256493c2f23160900020e1925303f4b5865727e8b98a2aeab9f92867c6f6a605d5554524c4e4d4d4c4c4b4b4b5663707c8996a3afa79b8e8174685b505050505050505050505050505050505050505050505050505050504847433c332a201509000000000000000006131f2c3946525f6c7985929facada093877a6d60544c4c4c4c4c4c4c4c4c4c4c4d4a5053555960636a6f7980889299a3abaea39891857b6e615a50433a2f24180d00000000000000010f1b26323c4753606d7985929fabada1968a7d7063574d42362a23232323232323232323232323232323232934404b55626e7b88949fabac9f92867a6d6054473d3221160c0100000000000000010d1925303a44505a606d79839096a0a8b0a69e9591867f79726d6764615e575b5a5a5a5a5b5c575e6164676a6e73797e848c92989fa7aba49f938e82796d6053473a2d2014070000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000000000000000000000000000000000000000000000000000000030a11171c1f262b2e2f35393a3d4044505b66727f8b97a1adaca0958c7f736b6159524c4847464747494b4948433d352b21160a0000000000000000000e1b2835414e5b687481868686868686868175695e5246382d22170b0000000000000000000000000000000000000006131f2c3845515c677480868686868686868174685b4e4135281b0e000000000000000000000000010c161f2834404b555c656c71797d8184858686868686867f7266594c3f3326190c00131f2c3946525f6c7985929faca295887b6f6255483c2f2935414c55616c75828f98a2aca0968c80736a5f53494956626f7c8995a2ac9f9386796c605346392d2013000713202c3945525d6877849199897c6f62534945515d677683909d9e9184786c60544a3f352b272223282f38424d57636e7375716d68625f584e433b4854616e7b8797908477675c5145382c1f1306000713202c3945525d6877849199897c6f6253493f33333f4c5966727f8c999e9184776b5e53535d68717e8b959e93897d70675d51463c2f261c26313b4854616e7b8797908477675c5145382c1f13060006131f2c3845515c6773808c98a2aa9f92867b6e675d554c4a54616b75818e97a1a59e91847a6d605b514646535f697683909caa9d9083776a6054473b2e221509000000000000000b1724313e4a5764717d8a97acb6aa9e918477675d5145392c20130600000000000000000000000000000000000000000000060d141a1e21222a24201f1b17110b0600000000000000000c1926323f4c5965727f8c98a5b2a99c8f837669574d42372b1e120600000000000000000000000000000000000000000006121f2b3844505b667783909daab1a4978b7e7164584b3e3125180b00000914212d3a4754606d7a85929fa7aea29891847c726d6763605d565b5a59595858585857626f7c8995a2afa79a8d8074675d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d55534e463c31261a0f020000000000000006131f2c3946525f6c7985929facada093877a6d6054473f3f3f3f3f3f3f3f3f40403f4446494f545860676d737e879299a3aeaaa1978f82766c61554b4135291d1207000000000000000a151f2c3845515d6774808d9aa6b0a89c8f8275695e5346382e3030303030303030303030303030303030303845515c6774808d9aa6b0a79b8e8174685d5245392c201304000000000000000005111d2935414c56626d75818e959fa8b0a69e948f837b726d66605d5554534d4e4e4d4d4d4e4f4d525457585f62666d71797f8690959ea5afa59e948d8073665a4d4033271a0d0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000000000000000000000000000000000000000000000000000000000000003090c151c23282c31373a3b4145474a4d4e53606c7884919ea9b1a79d9083786c60594f46413c3a3a3a3b3c3e3c3b38322b23190f040000000000000000000916232f3c4956626f7c89959393939392867b6e61544a3f33281c0f030000000000000000000000000000000000000714202d3a4753606d7985929393939395897c6f6356493c3023160900000000000000000000000007131d28313a45515c676d777e848a8e909192999393938c7f7266594c3f3326190c00131f2c3946525f6c7985929faca295887b6f6255483c2f303845515d67707d8a939eaaa49a9184796d60584e414956626f7c8995a2ac9f9386796c605346392d2013000714212d3a4754606d7a87969286796d6053464753606d7a86939f998d8073655b5042382d231b17181d26303b45525c63666864615d56534e463c3a46535e697885919286796d6053473a2d201407000714212d3a4754606d7a87969286796d6053463a2d333f4c5966727f8c999e9184776b606060606d7a85929e978e81746b60554b40342a1d14212d3a46535e697885919286796d6053473a2d2014070004101c2834404b55616e7a86929fa6a2989083796d675e56515c66707d8a939ea99e938a7d70685d52493f424d5765717e8b98a3a095897c6f6256493c31261a0e020000000000000c1926323f4c5965727f8c98a5b2a99c8f837669554b4135291d1104000000000000000000000000000000000000000000000003090e1214151d1713120f0b06000000000000000000000e1b2834414e5b6774818e9aa7b3a79a8d8074675a4d4131261a0e02000000000000000000000000000000000000000000030f1c28333f4a546875818e9ba8b3a6998d8073665a4d4033271a0d00000713202c3945525d68737f8c95a0a8aaa19691867f7974706d6869686766666565656464646f7c8995a2afa6998c7f736a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a625f584e43372b1f12060000000000000006131f2c3946525f6c7985929facada093877a6d6054473a3232323232323232332e34383a3d43484e555c606c717e87929fa5afa99f948a7e71675d5145392e23180c0000000000000004101d2935404b55626e7b88949fabac9f93877b6e61544a3f3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4753606d7985929eabaca095897c6f63564c4135291d110400000000000000000713202d3946525e68717e8b939ea7b1a79e948f82796e69605c54514b484642424140404141424246484a4e53545c60666d727b838f939ea8afa69a8d8074675a4d4134271a0e0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000000000000000000000000000000000000000000000000050d141a1e262e34383c4247484c525457595b5563707d8996a0acab9f95897d70665b504745403a37322d2e2f32302f2c2721191007000000000000000000000915222e3b4854606a7783909daa9fa3998c7f73665b5044382b1f1409000000000000000000000000000000000006121f2b37434e5864717e8a97a29f9f9d9083776b6054483b2f2215090000000000000000000000010d18242f3a43515b606d79818b91969a9d9e9fa39f9f998c7f7266594c3f3326190c00131f2c3946525f6c7985929faca295887b6f6255483c2e38424e58606d7a84919ea6a99f93887d70675c51463c4956626f7c8995a2ac9f9386796c605346392d2013000a1623303d495663707d8996908377665c51454956626f7c8999a4978a7d706453493f2f261c0f0b0b151e2a33404a5257595b5754524c47433c3436424d576976828f99897c6f6256493c2f231609000a1623303d495663707d8996908377665c5145382c333f4c5966727f8c999e9184776d6d6d6d6d74808d979e92857a6d61594f433b322920171e2a36424d576976828f99897c6f6256493c2f23160900000c18232e3946525e68727f8b949fa89f958f82796e68615a606d7884919ea5a1978e81756b61564c41373b4754606d7a86929fa79a8d807467574d42372b1e12060000000000000d192633404c5966737f8c99a6b2a89b8e8175685b4e422f24180d010000000000000000000000000000000000000000000000000002050708110b060503000000000000000000000000101c2936434f5c6976828f9ca9b2a5998c7f7266594c3f3326190900000000000000000000000000000000000000000000000b17222d404d5a6773808d9aa6b3a89b8e8175685b4f4235281c0f000004111d2935414c56606d79839096a0a7a8a198928c85807d7a787675737372727271717171707c8995a2afa5988c7f777777777777777777777777777777777777777777777777777777777777776e6a5f53473a2e2114080000000000000006131f2c3946525f6c7985929facada093877a6d6054473a2d252525252525252623282c2d32383d434b515a616c727f8b939ea9b0a69e91847a6d60544b4034281c1004000000000000000c18242f3947535f6a7683909ca9afa4998c8073665c504949494949494949494949494949494949494949494e5864717e8b97a2adaa9d9083776b6054443a2f24190d010000000000000006121f2b37434e58616d7a85929ea5afa9a0958f82796d675f57514a45403b3a3631343433343430363a3b3e43474b51545c60696e79818f96a0aca79a8d8074675a4d4134271a0e0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000000000000000000000000000000000000000000000000000000000080f171f252a30383f44464d5355565d60636668696775818e9ba8b2aa9d9083776b605b5353514b47433c3731292423221f1b160f07000000000000000000000007131f2c38434e5865727e8b98a2aeab9e9184786c6053463b30251a0e00000000000000000000000000000000000814212e3a47535f6a7683909ca9aea2988b7f7265594f43382c1f1307000000000000000000000004111d2935414b55626d75818e939ea1a8aaa29f9c9998988c7f7266594c3f3326190c00131f2c3946525f6c7985929faca295887b6f6255483c343f4a54606a74808d96a1ada1978e81746b60554b403c4956626f7c8995a2ac9f9386796c605346392d2013000c1925323f4c5865727f8b988e817467544b404b5864717e8b97a398877b6e6154473b2d21140a00030c18212e3840474b4d4f4b4746413a37322a31404d596673808c988b7e7165584b3e3225180b000c1925323f4c5865727f8b988e817467544b403428333f4c5966727f8c999e9184797a7a7a7a7a7c87929f978b7e7168605b544d443b32291d1a2531404d596673808c988b7e7165584b3e3225180b000007121d2a36414c56606c78829096a1a79e948f837a716c6268727f8c96a0a69e91857a6d61594f443a303945525d6875828f9bac9e918477695f53473a2e2114080000000000000d1a2734404d5a6773808d9aa6b3a79a8d8074675a4d4134271a070000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000101d2a3643505d697683909ca9b1a4978a7e7164574b3e3124180b0000000000000000000000000000000000000000000000061926323f4c5965727f8c98a5b2a89c8f8275695c4f4236291c0f0000010d19242f3a45515c666e7b8490959fa3aaa29f97928d898784838180807f7f7e7e7e7e7d7d7f8c98a5b2ab9e9184838383838383838383838383838383838383838383838383838383838383837c6e6255483b2f2215080000000000000006131f2c3946525f6c7985929facada093877a6d6054473a2d2119191919191919171c1f20272c30394045505a626d74818e97a1adada1968c7f73665c5145382c1f14090000000000000007121d2b37434e5864717e8a97a1adab9e9184796d6056565656565656565656565656565656565656565656565f6a7683909ca9aea2988b7f7265594f4332281e130800000000000000000815212e3a47535f6a74818e97a2adada2979083796d675d554d444039352f2d2a252727272728252a2d2e31373940454b51575f676d7884919eaaa79a8d8074675a4d4134271a0e0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000000000000000000000000000000000000000000020a121a212931363e424a5053575f6266686d70737576777986929facb1a4988b7e716e6c6564605d55534e47433c352f281f180f0a04000000000000000000000000030f1b27323d4754606d7a85929facaca1968a7d7063574d42362a1c110600000000000000000000000000000004101c2934404b55626e7b88949fabac9f92867a6d6054473d32271b0f0300000000000000000000000613202c3945515d67727f8b939ea5ada49d98928f8d8c8b8b7f7266594c3f3326190c00131f2c3946525f6c7985929faca295887b6f6255483c3844505c666f7c87939fa9a69e92857a6d60594f43393c4956626f7c8995a2ac9f9386796c605346392d2013000d1a2733404d5a6673808d998c7f7366594c404c5966727f8c999f928579695e52463a2d2014020000060f1c262e353b3f40423e3a3935302b2625323e4b5865717e8b988c7f7266594c3f3326190c000d1a2733404d5a6673808d998c7f7366594c402e23333f4c5966727f8c99a096918686868686868892999e92857c78716c665e564d443b2f261b25323e4b5865717e8b988c7f7266594c3f3326190c0000000d1925303b44505b666e7b849197a1a69e9590857e756f6d7a85929fa89f948a7e71685d52473e322935414c5664717e8a9aa4a096887b6e6255483b2f2215080000000000000e1b2734414e5a6774818d9aa7b3a69a8d8073675a4d4034271a0d0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111e2a3744515d6a7783909daab0a3968a7d7063574a3d3024170a00000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4b1a99c908376695d5043362a1d1000000008131e2834404b545e696e7b838d92999fa2a9a29e9a9696918f8e8d8c8c8b8b8b8b8a8a8a8c919ba7b4ada19691909090909090909090909090909090909090909090909090909090909090887c6f6255493c2f2216090000000000000006131f2c3946525f6c7985929facada093877a6d6054473a2d21140c0c0c0c0c060c1012131b1e272e343e47515b606d7985919ea7b1a99e9185796d6053463b31251a0e02000000000000010f1a26313c4653606d7985929eacada1968a7d70646363636363636363636363636363636363636363636363636e7b88949fabac9f92867a6d6054473d3221160c010000000000000005111d2935414c56626f7c87939fa9b0a69f92857b6e675d554b433c342e2924211e1a1b1a1a1a1b1a1e2021262b2e343940454d555c667784909daaa79a8d8074675a4d4134271a0e0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000000000000000000000000000000000000000000000000000020b141c242c333b424650545c6065696e73777a7d80818384869298a2aeb3a69a8d807d7b7975716d67625f58534e454039312a211a1108000000000000000000000000000a16202c3945515d6774818e9aa7b1a89b8f8275695e5246382e23170b00000000000000000000000000000006131f2c3845515c6774808d9aa6b0a79b8e8174685d5245392b21160a0000000000000000000000000714212d3a4754606d7a85929fa6ada39c928d8682807f7f7f7c6f6255493c2f22160900131f2c3946525f6c7985929faca295887b6f6255483c424d57606d78839099a4aa9e948a7e71685d52473d303c4956626f7c8995a2ac9f9386796c605346392d2013000e1b2734414e5a6774818d988b7e7265584b404d5a6773808d9a9e9185786b574d42362a1e11050000000a131c242a2f323335312e2d29241e1b24313e4a5764717d8a978d8073665a4d4033271a0d000e1b2734414e5a6774818d988b7e7265584b3f3226333f4c5966727f8c99a8a09e939393939393959fa3a1979289847e786e685e564d41382d2224313e4a5764717d8a978d8073665a4d4033271a0d00000008141e28333f4a545e696e7b8591969fa69f97918a827c76808d97a2a3998f82766c61564c41352c242f3a4754616d7a87939fa1988c7f7265594c3f3226190c0000000000000e1b2835414e5b6874818e9ba7b3a6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111e2b3844515e6b7784919eaaafa396897c706356493d3023160a00000000000000000000000000000000000000000000000b1824313e4b5764717e8a97a4b1aa9d9083776a5d5044372a1d11000000010c18232e39424d575e696e7980878e92989b9ea1a9a8a19e9c9b9a999998989897979797989ba3adb8b2a8a19e9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d95887b6e6255483b2f2215080000000000000006131f2c3946525f6c7985929facada093877a6d6054473a2d21140700000000000003060a0c151d2328353f45515d67717e8b95a0acada1978b7e7164574d42362a1e12050000000000000009151f2c3845515c6673808d9aa4afa99c8f82757070707070707070707070707070707070707070707070707074808d9aa6b0a79b8e8174685d5245392c20130400000000000000000713202d3946525e6874818e9aa4afab9f948b7e71695e554b433a3128231c1814120e090d0d0e090e1214151a1d23282e343c434b546a7784909daaa79a8d8074675a4d4134271a0e0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000000000000000000000000020b141c262e363e454d535a61666d71767b8084868a8c8e90919298a2aab4b5a89d928d8a8885817e7a756f6a625f58514b433c332c231a120800000000000000000000000004111d2935414b55626f7c88959fabac9f92877b6e61544a3f34281c100300000000000000000000000000000714202d3a4753606d7985929eabaca095897c6f63564c413529190f04000000000000000000000004101c2934404b5565727f8b98a2aea79c918c807a75737272726f6a5f54473b2e22150800131f2c3946525f6c7985929faca295887b6f6255483c46535f69727f8c95a0aba2988f82766c61564c41352f3c4956626f7c8995a2ac9f9386796c605346392d2013000f1b2835424e5b6875818e978a7e7164574b414d5a6774808d9a9d9184776a5e514430251a0e02000000010a12191f232626282421201d19131723303d4a5663707d89968d8174675a4e4134271b0e000f1b2835424e5b6875818e978a7e7164574b3e3126333f4c5966727f8c99a8a09393939393939393939496999e96918b827a6e685e53493f332723303d4a5663707d89968d8174675a4e4134271b0e000000020b17222d38424d575f696f7c8490949fa3a19e948f888287929fa99f92877c6e625a50443a3028232d3946525e687783909997928e8376695c504336291d100300000000000e1b2835414e5b6874818e9ba7b3a6998d8073665a4d4033271a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000121f2b3845525e6b7885919eabafa296897c6f6356493c3023160900000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a3b0aa9e9184776b5e5144382b1e110000000007121d27303b454d575e676d747b81868b8e929796989a9b9c9d9d9d9e9e9e9e9e9f9f9f9fa4acb6c0b6aea9a79f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa8aaaaaaaaab94887b6e6155483b2e2215080000000000000006131f2c3946525f6c7985929facada093877a6d6054473a2d211407000000000000000000030b1218232935414b55606c7883909da9b3a99d908377695e53463a2d2114060000000000000004101c2834404b54616e7b87939facac9f93877d7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7d85929fabaca095897c6f63564c4135291d110400000000000000000714212e3a4754616d7a86929facb0a69c9082766c62574d433930281f18120d07050c111517181c1c1c1c1c1c1c181d23283144515d6a7784909daaa79a8d8074675a4d4134271a0e0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000000000000000000000000000000000000000a141c262e38404850575e616c71787e83888d90939a999b9c9e9fa2aab4b1b2aea49d9a9797928e8b86817c756f6a605d554e463e352c241a11080000000000000000000000010d18242f3a47535f6a7683909da9afa3998c7f73665c5044382b1f14090a0a0a0a0a0a0a0a0a0a0a0a0a0a121f2b37434e5864717e8b97a2adaa9d9083776b6054443a2f24190700000000000000000000000006131f2c3845515c677683909daaaca0958c7f746d6866656565625f584e43372b1f130600131f2c3946525f6c7985929faca295887b6f62554844505a616e7b86929fa7a79f92867b6e615a50443a302f3c4956626f7c8995a2ac9f9386796c605346392d2013000f1c2935424f5c6875828f978a7d7064574a414e5a6774818d9a9d9184776a5e51442f24180d0100000000040c13181d2020201d1814120f0916232f3c4956626f7c89958e8175685b4e4235281b0f000f1c2935424f5c6875828f978a7d7064574a3d3126333f4c5966727f8c99a09689868686868686868687898d92989e948f847a6e655b5044372b232f3c4956626f7c89958e8175685b4e4235281b0f0000000006111c262f3b454d575f6a6f7a828d92999fa69e9c948f9299a3a2978d80746a5f534b454039342e2a36414c566673808d8c8985817e7064574a3d3124170a0000000000000e1b2734414e5a6774818d9aa7b3a69a8d8073675a4d4034271a0d0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000121f2b3845525e6b7884919eabafa296897c6f6356493c3023160900000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4b0aa9d9184776a5e5144372b1e1100000000000b151e29333b454d555d60696e747a7e8285888a8c8d8e8f9090919191919192929292939aa4afbbaea49d9a93939393939393939393939393939393939393939393939b9ea5afafa499877a6d6154473a2e2114070000000000000003131f2c3946525f6c7985929facada093877a6d6054473a2d21140c0c0c0c0c0c0c0c07060400071118242f3a44505b65717e8b97a2adab9f95877b6e6154483b2e23170c00000000000000000c18232e3946535f6976828f9ca9afa499938a89898989898989898989898989898989898989898989898989899297a2adaa9d9084776b6054443a2f24190d010000000000000005111e2a36424d5666727f8c98a3aeab9f94897c6f635a50453b31271e160d07000911181d212425292929292929292929292a3744515d6a7784909daaa79a8d8074675a4d4134271a0e0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000000000000000000000009121c262e38404a525a61696e767e848b9095999d9fa4aca8a9a8a6a5a4a4a4a5a6a8aaa6a9a19e9b98928e88827c736d675f584f473e362c231a1007000000000000000000000007131d2b37434e5864717e8b97a2adab9e9184786d6053463b31251a16161616161616161616161616161616212e3a47535f6a7683909ca9aea2988b7f7265594f4332281e13080000000000000000000000000714202d3a4753606d7986929facac9d9083786c605d5659585855544e463c32261b0f0300131f2c3946525f6c7985929faca295887b6f6255484c56616c76828f98a2aba0958c7f72695e53483e32282f3c4956626f7c8995a2ac9f9386796c605346392d2013000f1b2835424e5b6875818e978a7e7164574b404d5a6773808d9a9e9184786b554b4035291d1004000000080d161d24292c2d2c2924211f1a151723303d4a5663707d89968d8174675a4e4134271b0e000f1b2835424e5b6875818e978a7e7164574b3e3126333f4c5966727f8c999e918479797979797979797a7c808590959f969082776c6053463c3126303d4a5663707d89968d8174675a4e4134271b0e00000000000a141d29333c454e585f686d78808790959ea0a69e9c9fa3ab9f92857a6d65605c54514b443f3830303d495663707d83807c7874706c6155493c3023160a0000000000000d1a2734404d5a6773808d9aa6b3a79a8d8174675a4e4134271b090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111e2b3844515e6b7784919eaab0a396897d7063564a3d3023170a00000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a99d9083766a5d5043372a1d100000000000030c172129333b434b51575f62686d7175787b7d7f808283838484848485858585858687939facb9a99d928d86868686868686868686868686868686868686868686868e939eaaac9f9386796c605346392d2013060000000000040a0f131f2c3946525f6c7985929facada093877a6d6054473a2d211919191919191919191313100c0707131d27333f4953606d7985929fabb1a7988b7e7265544a3f34281c10030000000000000007121d2a36424d5764707d8a96a1adaba49f9796969696969696969696969696969696969696969696969696969fa2a9aea2988b7f7265594f4332281e130800000000000000000714202d3a46525e697784909daab4aa9c9083766b6054483f33291f150c040009121b22292e313236363636363636363636363744515d6a7784909daaa79a8d8074675a4d4134271a0e0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000000000000000000000000000000000006101b242e38404a525c636c717b838a91969d9fa7aaacaba39f9d9b999897979898999b9d9fa3ababaaa29f9b948f8780796e6a615950483e352c22180d0400000000000000000000010f1b26323c4753606d7985929fabada1968a7d7063574d42362a23232323232323232323232323232323232934404b55626e7b88949fabac9f92867a6d6054473d3221160c010000000000000000000000000916232f3c4956626f7c8999a3aea49a8b7e71665b524c4c4c4c4947433c342a20150a0000131f2c3946525f6c7985929faca295887b6f625548525d68717e8a949faaa4999083786d60574d42362c232f3c4956626f7c8995a2ac9f9386796c605346392d2013000e1b2734414e5a6774818d988b7f7265584c404d596673808c999f928578675d5145392c20130600000811191f282f35393a39352f2e2b26201824313e4a5764717d8a978d8073665a4d4033271a0d000e1b2734414e5a6774818d988b7f7265584c3f3226333f4c5966727f8c999e9184776c6c6c6c6c666c6d6f737b8390969f948b7e7165574d42372b313e4a5764717d8a978d8073665a4d4033271a0d0000000000020b17202a333c464e565e666d737c838b91969ea1a9acafaa9d90837d77716d66605d55504a423d353b4854606b7077736f6c656461594f44392d2014080000000000000d192633404c5966737f8c99a6b2a89b8f8275685c4f4230251a0e0200000000000000000000000000000000000000000000000000000102030000000000000000000000000000000000111e2a3744515d6a7784909daab0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000c1825323f4b5865727e8b98a5b1a99c8f8276695c504336291d100000000000040d161e2429313940454d53565d606468696e707274757676777777787878787879797c8995a2afa79a8d807979797979797979797979797979797979797979797979818e9ba8ab9e928578665b5044382b1f120600000000070e151b1f222c3946525f6c7985929facada093877a6d6054473a2d26262626262626262626201f1c18120b0b17222d3845515d6774818e9aabb5a89c8f8275665c5044382c1f120600000000000000000e1a26313b4653606d7984919eabb5afaca3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3abadb3ac9f92867a6d6054473d3221160c0100000000000000000814212e3b4754616e7b8795a0acaea2988a7e7164594f44362d21170d030006111b242d343a3d3e43434343434343434343434344515d6a7784909daaa79a8d8074675a4d4134271a0e0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000000000000000000030c18222d36404a525c646e737e8590949da0a8abaaa29f9b9992908e8c8b8b8a8b8b8c8e9092999a9ea1a9aca69e99928d837c706b615a50473e342a1f160c01000000000000000000000a151f2c3845515d6774808d9aa6b0a89c8f8275695e5346382e3030303030303030303030303030303030303845515c6774808d9aa6b0a79b8e8174685d5245392c201304000000000000000000000000000a1724313d4a5764707d8a97abac9f93867a6d61544a413f3f3f3c3b37322a22190e040000131f2c3946525f6c7985929faca295887b6f62554f59606d7a85929ea6a89f93877c6f665c50453b3124232f3c4956626f7c8995a2ac9f9386796c605346392d2013000d1a2733404d5a6673808d998c7f7366594c404b5865727e8b989f93867a6d6053473a2d20140900030d19232b313a40454745403b3a37312a2125323e4b5865717e8b988c7f7266594c3f3326190c000d1a2733404d5a6673808d998c7f7366594c402e23333f4c5966727f8c999e9184776b606060605b606163696e7a84919e9d908377695f53463a2d323e4b5865717e8b988c7f7266594c3f3326190c000000000000050e18212a343c444c545c606a6f787e848b9297a1adb8aca0959089837e79726d67605c544f45403a444f5960636a6662605b53554f473e33281c10040000000000000b1825313e4b5864717e8b97a4b1a99d9083766a574d42362a1e1105000000000000000000000000000000000000000000000003080c0e0e0f0b07070401000000000000000000000000101d2a3643505d697683909ca9b1a5988b7e7265584b3f3225180700000000000000000000000000000000000000000000000d1a2633404d596673808c99a6b3a89b8f8275685c4f4235291c0f00000000010c161f282f35393a3e3f42474c525458575f6163656768696a6a6a6b6b6b6b6b6c6c6f7c8995a2afa89b8e82756c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c7783909daaa99d9083766a544a3f33281c0f0300000007101920262b2e2f3946525f6c7985929facada093877a6d6054473a33333333333333333333332d2c28231d150c111b2935404b5564717d8a99a3afac9f9285796d6053463a2d201307000000000000000009141f2c3844505c6673808c99a3afbbb9b1acaa9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa7a9afb8bab1a79b8e8174685d5245392c2013040000000000000000000b1825323e4b5865717e8b98a7b1ac9f9285796d6053473d32201b0f0500010c18222d363f454a4b4f4f4f4f4f4f4f4f4f4f4f4f4f515d6a7784909daaa79a8d8074675a4d4134271a0e0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000000000000000000000000000000000b151e2a343f48525c646e73808a92979fa6aca9a29f98928e8a868381807f7e7e7e7f80818386898d92979ea0a8aba39f9591867d716c61594f463c31281e13080000000000000000000004101d2935404b55626e7b88949fabac9f93877b6e61544a3f3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4753606d7985929eabaca095897c6f63564c4135291d1104000000000000000000000000000b1825313e4b5864717e8b97a4ab9e918478685e5242382f32322f2e2b2620191007000000131f2c3946525f6c7985929faca295887b6f625554606b74818e97a1ada1968d80746a60544a3f33291f232f3c4956626f7c8995a2ac9f9386796c605346392d2013000c1925323f4c5865727f8b988e817468554b404a5663707d8996a49a897c6f6356493c30251a0e090c151f2b353d434b5153514b4847433c332f2633404d596673808c988b7e7165584b3e3225180b000c1925323f4c5865727f8b988e817468554b403428333f4c5966727f8c999e9184776b5e53534a505354565e68727e8b9aa095887b6e6155483b2e33404d596673808c988b7e7165584b3e3225180b00000000000000060f18222a323a424b51585f666c71787e85929eabadaba7a09d95908b847f79726d666059514b433d474f54565d595653504949443e352c21170b000000000000000a1723303d4a5663707d8996aab4ab9f928578695e52463a2d20140700000000000000000000000000000000000000000001090f14181a1b1c181413110d0805010000000000000000000f1c2835424f5b6875818e9ba8b3a6998c807366594d402f23180c00000000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7b4a79a8e8174675b4e4134281b0e0000000008131e28313a4145474b4c4d4e4f5052504d535557595a5b5c5d5d5e5e5e5e5e5f5f626f7c8995a2afa99c908376655b60606060606060606060606060606060605e697885929faba79b8e8174685b4e412d22170b000000040e19222a32373b3c3f46525f6c7985929facada093877a6d6054473f3f3f3f3f3f3f3f3f3f3f3f3a38342e271e150c18242f3a4754606d7a86929facaea298887b6e6255483b2f221508000000000000000003101c28343f4a54616e7b87929facb9b1a7a0939393939393939393939393939393939393939393939b9ea5afb8aca095897c6f63564c4135291d1104000000000000000004101d2935404b556875828e9ba8b5a89b8f8275675d5145392c1f1309000005111d29343f485056585c5c5c5c5c5c5c5c5c5c5c5c5c5c5d6a7784909daaa79a8d8074675a4d4134271a0e0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000000000000000007121d27303c46505a646e73808d929fa2a9aea59e97928c86817d7a77757372717171727375777a7d81858b91969fa3aba7a09892877e716b61584e433a2f24190c03000000000000000000000c18242f3947535f6a7683909ca9afa4998c8073665c504949494949494949494949494949494949494949494e5864717e8b97a2adaa9d9083776b6054443a2f24190d01000000000000000000000000000c1925323f4c5865727f8b98a5a99c8f827669564c412f26252522221f1b150e0700000000131f2c3946525f6c7985929faca295887b6f62555c666f7d88939fa9a59e9184796d60584e42382e2117232f3c4956626f7c8995a2ac9f9386796c605346392d2013000a1623303d495663707d8996908377675c51454754616e7a8796a1988b7f7265574d42362a201a19191e27313d474f555d605d5555534e4641382a36424d576976828f99897c6f6256493c2f231609000a1623303d495663707d8996908377675c5145382c333f4c5966727f8c999e9184776b5e51463f4446474d56616d7a87939f978a7e7164574b3e3136424d576976828f99897c6f6256493c2f23160900000000000000000610182029303940454e545b60666d7a85929fa9a19e989ea0a09d97918c857f78706b605d554e463d444849514d4946443f3839332c231a1005000000000000000815222e3b4855616e7b8898a2aeada297877b6e6154473b2e21140a0000000000000000000000000000000000000000030b131a20242728292521201d1913110d0802000000000000000d1a2734404d5a6773808d9aa6b3a89b8e817568554b4034291c100400000000000000000000000000000000000000000005121e2a36424d576976838f9ca9b2a5988c7f7265594c3f3226190c000000010d19242f3a434c525457595a5b5c5d5e5d5a54484a4c4d4f5050515151515252525663707d8996a3b0ab9e9285796c605353535353535353535353535353535354616e7b8798a2aeaa988c7f7265594c3f322619060000000a15202a343c4347494c4c525f6c7985929facada093877a6d60544c4c4c4c4c4c4c4c4c4c4c4c4c4645403930271d1213202c3945525d687783909daab4aa978a7d7064574a3d3124170a0000000000000000000c17232e3846525e6975828f9ca8b2aca095898686868686868686868686868686868686868686868e939ea9b4aa9d9084776b6054443a2f24190d01000000000000000006131f2c3845515d677884919eabb5ab988b7e7265554b4035291d100400000915212e3a45505a62656969696969696969696969696969696a7784909daaa79a8d8074675a4d4134271a0e0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000000000000000000000000000000000000000000c18232e39434e58626c73808d929ca4adaaa39f938e857f7a75706d67686665646465656668676d7074797e848c9299a1a9aaa29992877d706a5f554c4135291e150a0000000000000000000007121d2b37434e5864717e8a97a1adab9e9184796d6056565656565656565656565656565656565656565656565f6a7683909ca9aea2988b7f7265594f4332281e130800000000000000000000000000000c1925323f4c5865727f8b98a5a89b8e8275685b4f42302814191615130f0a040000000000131f2c3946525f6c7985929faca295887b6f6257606d7984919aa4a99e938a7d70675d51463c30261c16232f3c4956626f7c8995a2ac9f9386796c605346392d2013000714212d3a4754606d7a87969286796d60534646525e687884919e9c8f8275695e52463c332a262524293039434f5960676d6765625f58534a41363a46535f697885919286796d6053473a2d201407000714212d3a4754606d7a87969286796d6053463a2d333f4c5966727f8c999e9184776b5e51443338393b46525d687784919e998c7f7366594c40333a46535f697885919286796d6053473a2d201407000000000000000000060e171e272e343c424a505b66727f8c98a2a197918c91969d9fa19e97918b837d746d675f584f473d3b3d44403c3937332d2d28211a110800000000000000000613202d394653606c7985929facb3a9968a7d7063574a3d31261b0f01000000000000000000000000000000000000000b151d252b30343536312d2c2924201d19130c070100000000000c1925323f4c5865727f8b98abb5aa9d908477675c5145382c1f13060000000000000000000000000000000000000000000714212d3a46535f697885929fabb4aa968a7d7063574a3d3024170a00000004111d2935414c565d6064656668696a6b69665e54423f414243434444444545454a5764717d8a97a4b0ada297887b6f625548464646464646464646464646414c5665717e8b98aaaea298897c6f6256493c2f2316090000030f1b26323c464e54555959595f6c7985929facada093877a6d60595959595959595959595959595953514b43392e2318111d2935414c566875818e9ba8b2a5998c7f7266594c3f3326190c00000000000000000006111c2a36424d5763707d8a96a1acaa9d9083797979797979797979797979797979797979797979818e9ba7aea2988b7f7265594f4332281e13080000000000000000000714202d3a4753606d7986939facaea399887b6f6255483c2f24180c0000000b1724313d4a56626c71767676767676767676767676767676767784909daaa79a8d8074675a4d4134271a0e0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000000000000000000000000000004101c2834404b555f6a717e8b929da4aeaaa298928b817a736d6863605d5559585857585859555d6063676d717980879197a0a8aba39992867c6f675d51453d30261c1106000000000000000000010f1a26313c4653606d7985929eacada1968a7d70646363636363636363636363636363636363636363636363636e7b88949fabac9f92867a6d6054473d3221160c0100000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e0908060300000000000000131f2c3946525f6c7985929faca195887b6e625f69737f8c95a0aca2978e81756b61554b40342b1e1516232f3c4956626f7c8995a2ac9f9386796c605346392d2013000713202c3945525d6877849199897c6f635349414d566774818e9a9f92877b6e61584e453c3631322f353a424b55606b707a76726e6a645c53483c3b4855616e7b8897908477675c5145382c1f1306000713202c3945525d6877849199897c6f6353493f33333f4c5966727f8c999e9184776b5e5144382e2e35414c566a7683909d9a8d8073675a4d40343b4855616e7b8897908477675c5145382c1f130600000000000000000000050c151d23282f394653606c7884919eaa9e91857f848a90959c9fa19e95918981796e6a60594f463c3237332f2d2b27221b1c17100800000000000000000006121f2b3844505b667683909ca9b3a79a8d807467584e43372b1e1308000000000000000000000000000000000000060f1d272f373c4041423e3a39352f2d29251e18120b0300000000091623303c4956636f7c8999a4afac9f9286796d6053473a2d22170b0000000000000000000000000000000000000000000815222e3b4855616e7b8897a2adaea298887b6e6155483b2e2215080000000613202c3945525d686d71727374757778767066544b403435363737373838383f4b5865727e8b98a5b1b3a9988b7f7265594f42392e393939393939392d3945525d6875828e9ba8ac9f9285796d6053463a2d201307000006131f2b37434e585f62666666666c7985929facada093877a6d666666666666666666666666666666605c554b4034281c1019242f404d596673808c99a6b3a79b8e8174685b4e4135281b0e000000000000000000000e1a25303b4653606c7884919eabaca095897c6f6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6d7a86929facac9f92867a6d6054473d3221160c010000000000000000000916222f3c4955626f7c889aa4afac9f9286796d6053463a2d2013070000000b1825323e4b5865717e828282828282828282828282828282828286929faca79a8d8074675a4d4134271a0e0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000000000000000000000000000006131f2c3845515c676f7c86929fa4aeaaa29892867e756d68605d5654514b4d4c4b4b4b4c4d4b5153555c60676d737d859196a0a8aba29891847a6d60594f42382e23170c0000000000000000000009151f2c3845515c6673808d9aa4afa99c8f82757070707070707070707070707070707070707070707070707074808d9aa6b0a79b8e8174685d5245392c2013040000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e0200000000000000000000131f2c3946525f6c7985929faca194887b6e61626e7b86929fa8a69f92857b6e61594f433a2f22190c16232f3c4956626f7c8995a2ac9f9386796c605346392d20130004111d2935414c566875818e9a8d8074655b5044495663707d8996a0998d80736a5f574e4642403f3f41454c545d67707d86837f7b746e64584c40424d5765727f8c988e817467554b4034291c10040004111d2935414c566875818e9a8d8074655b504437333f4c5966727f8c999e9184776b5e51443b3b3b3c44505c667783909d998d8073665a4d4037424d5765727f8c988e817467554b4034291c10040000000000000000000000030b121b27333f4953636f7c8996a1a3998c7f73787d83898f949da0a09d938e847c706b60584e443b302523201f1b1711100b0500000000000000000000030f1c28333f4a546774808d9aaab4aa9d9184776a5f53473a2f24190b0200000000000000000000000000000000030e18212f3941484d4e4f4b4745413a39353029241d150d030000000714202d3a4753606d7a86939facaea399897d706353493f33271b0f030000000000000000000000000000000000000004111d2935414c5565717e8b98a9b3ac9f9285786d6053463a2d2013070000000714212d3a4754606d7a7e7f80818283858276665c5145382f2c2924262a2d37434e586774818e9aa7b4b7aa9d9083776b60544b40352f2b2623282b2f38414c56606d7a85929faca99b8e8275665c5144382c1f120600000815222e3b47545f6a6f72727272727985929facada093877a727272727272727272727272727272726d675c5145382c1f131824313e4b5764717e8a97a4b1a89c8f8275695c4f4236291c0f0000000000000000000009141f2b3844505b66727f8c99a3aea79a8d8174675c606060606060606060606060605765717e8b98a2aea79b8e8174685d5245392c201304000000000000000000000b1824313e4b5764717e8a97acb6aa9d908477665c5144382c1f12060000010d1a2734404d5a6773808d8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f9298a2aea79a8d8074675a4d4134271a0e0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000000000000000000000000000000000000004111d2935414c56606d79839198a2aeaea39892867d716c615e56524c474541403f3e3e3e3f404045474b51555c606b6f7b849196a1abaaa0968e81746b60544a3f34281c110600000000000000000004101c2834404b54616e7b87939facac9f93877d7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7d85929fabaca095897c6f63564c4135291d11040000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e0200000000000000000000131f2c3946525f6c7985929faca194877a6e616c76828f98a3ab9f948b7e72685e52473e31281d100916232f3c4956626f7c8995a2ac9f9386796c605346392d201300010d19242f3d4a5764707d8a989184786c6053464653606c7884919e9f92877c6f695f58534d4d4c4c4c51565d666d7983918f8c888174675a4e4147535f6977839097897d7063564a3d2f23180c0000010d19242f3d4a5764707d8a989184786c6053463c323f4c5966727f8c999e9184776b5e5148484848494e56606d7985929f988b7f7265584c3f3a47535f6977839097897d7063564a3d2f23180c0000000000000000000000000005121f2b3744505b6574808d9aa89f92867a6e6c70767c828991959fa39d9691867d706a5f564c41362a2113120f0b0600000000000000000000000000000b17222d3d4a5763707d8a98a2aeaca095887c6f62564c4135291d140a000000000000000000000000000000000915202a33414b53595b5c5854524c4746413a352f271f150b0100000613202c3945515d677784909daab4ab9a8d8073655b5044372b1f140a000000000000000000000000000000000000010c13202c3945515d6775828e9ba8b5a89c8f8275665c5044382b1f12060000000714212d3a4754606d7a878c8d8e8f909186796d60544a403a39352f31363a3f47535f6a7783909daab6b8aca095897d70665c5145413a37312e34383b424a525e68727f8c98a2ada1978a7d7164544a4034281c100400000916222f3c4955626f7c7f7f7f7f7f7f86929facb3a6998c807f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f796d6053463a2d20131724303d4a5763707d8a96a3b0a99c908376695d5043362a1d1000000000000000000000030f1c28333f4a54616e7a86929facab9f9285796d60535353535353535353535353535f697683909caaaca095897c6f63564c4135291d1104000000000000000000000c1926333f4c5966727f8c99a5b2a99c8f827669544a4034281c10040000010d1a2734404d5a6773808d9a9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9fa2aab4a79a8d8074675a4d4134271a0e0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000000000000000000000000000713202c3945525d68727f8c95a0aaafa59f92867d706b625a524c45413a39352f32313132322f35383a40454b515960696e7b849199a3aea89e93897d70665c5044382d22170b000000000000000000000c18232e3946535f6976828f9ca9afa499938a89898989898989898989898989898989898989898989898989899297a2adaa9d9084776b6054443a2f24190d010000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e0200000000000000000000131f2c3946525f6c7985929faca094877a6d68717e8b949faaa3999083776c60564d41352c1f160c0916232f3c4956626f7c8995a2ac9f9386796c605346392d201300000813202d3a4653606d79859296897c7063584e44505b66717e8b959f9991847b6f6a615f57595859555d60686d78818e959c93877c6f625548424d57616e7b88959285796d6053463a2d2013070000000813202d3a4653606d79859296897c7063584e43373f4c5966727f8c999e9184776b5e545454545556585f68707d8a98a298897d7063564a3d424d57616e7b88959285796d6053463a2d201307000000000000000000000000000613202d394653606c7884919eac9b8f82756860646b6f767d838c9299a2a09892867c6f685e52463d32271b1003000000000000000000000000000000000614202d3a4753606d7985929facb1a79a8d8073685d52453b2f261b1106000000000000000000000000000006101a26313c45535d64686964605d5654524c45403931271d1207000004101d2935404b556773808d9aa9b3ab9e9184786c6053463c2f261b1106000000000000000000000000000000000007131d28333f4a54606d7a86929facb1a7988b7f7265544a3f34281c10030000000613202c3945515d67778390999b9c9d988a7d71665b514b4745404343424648505a626f7b8895a0acb8bcb1a79d9083796d605b524c464242413f44464d545b616d7a85919eaaa99e9184796d6053463a2e23180c0000000c1925323f4c5865727f8b8c8c8c8c8c9299a3aeb4a89c928c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c877a6d6054473a2d21141623303d495663707c8996a3afaa9d9083776a5d5044372a1d1100000000000000000000000b17222d3846525e6875828e9ba8ada2978a7e7164574d42464646464646463f4a54626e7b88949fabaa9d9084776b6054443a2f24190d01000000000000000000000d1a2633404d596673808c99a6b3a79a8e8174675b4e412e23180c000000010d1a2734404d5a6773808d9aa6a9a9a9a9a9a9a9a9a9a9a9a9a9a9acaeb4aca79a8d8074675a4d4134271a0e0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000000000004111d2935404b55606d7a85929fa7b1a99d938b7e716b60595046413a352f2c2924252524252524292c2e343940454f575e696f7c87929fa7afa59d9183786d60544a3f33281c0f0300000000000000000007121d2a36424d5764707d8a96a1adaba49f9796969696969696969696969696969696969696969696969696969fa2a9aea2988b7f7265594f4332281e1308000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e0200000000000000000000131f2c3946525f6c7985929faca093867a6d6d7a85929ea6a89f92867c6e655b50443b30231a0d040916232f3c4956626f7c8995a2ac9f9386796c605346392d2013000006131f2c3845515c6775818e9b8f82756a6054474a54606c78839098a09691847c746e696766656567676d727a828e939e958d80746a5f534746535e6974818e9a8e8174665c5044382c1f120600000006131f2c3845515c6775818e9b8f82756a6054473e3f4c5966727f8c999e9184776b61616161616162656a6f7a84919e9f9285796d6053463a46535e6974818e9a8e8174665c5044382c1f1206000000000000000000000000000815222f3b4855626e7b8896a1a49a8b7e7164565960636b70787f879297a2a29891847a6e61594f44382c1e13080000000000000000000000000000000006131f2c3845515c6775828f9ba8b2ab9f92857a6d60574d41382d2217110a020000000000000000000001081018222b37424e57646f7475716d6865615e56514b43392f24180c0000010d18242f3d495663707c8997a1adaca196897d7063584e41382d22170f06000000000000000000000000000000071118242f3844505b66717e8b98a2aeaca095887b6e6155483b2e23170b0000000004111d2935414c556673808d99a3a8aa9d9083786c605d5553514b50504d53555a626c74818e9aa7b1b6b4b6aca0958d80736d605d56534d4e4e4a5053575e666c75828f97a1ada1978c7f73665c5145382c1c12070000000c1925323f4c5865727f8b98999999999fa3abb4b9ada49c99999999999999999999999999999993877a6d6054473a2d211416222f3c4955626f7c8895a2afaa9e9184776b5e5144382b1e11000000000000000000000006111c2a36414c5663707d8996a0aca99c8f8276695e5246382d393939393844505c6673808d99a6aea2988b7f7265594f4332281e130800000000000000000000000e1a2734414d5a6774808d9aa7b3a69a8d8073675a4d4034271a07000000010d1a2734404d5a6773808d9a9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9a8d8074675a4d4134271a0e0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000000000000000000000000000000000000613202c3945515d6773808d97a2adada1978e81746c61594f473e36302924201d181918181819181d1f23282f343d454d57606a727f8c95a0acaca0958b7e71665b5044382b1f1308000000000000000000000e1a26313b4653606d7984919eabb5afaca3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3abadb3ac9f92867a6d6054473d3221160c01000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e0200000000000000000000131f2c3946525f6c7985929faca39986796d75818e97a2aca0968c80736a5f53493f32291f1108000916232f3c4956626f7c8995a2ac9f9386796c605346392d2013000004101c2834404b55636f7c899494887c6f62594f44505b666e7b869298a0969187807b777473727273767a7f858f939e969083796d60584e434e58616e7b869294897c6f62544a3f34281c100300000004101c2834404b55636f7c899494887c6f62594f443f4c5966727f8c999e9184776e6e6e6e6e6e6e6f72757c839096a0978d8074665c5145434e58616e7b869294897c6f62544a3f34281c1003000000000000000000000000000b1825323e4b5865717e8b98a89f93877a6d61544f545960666d737d859297a2a1968f82756b6054483a2f24190d0100000000000000000000000000000004101c2934404b5563707d8a96a1acaea2988c7f73695e53493f3327221b140b090603000001000205080d1319222a343c47535f6a7481827e7a76716d68605d554b4035291d100400000713202d3a4653606d7985929eacb2a89c8f82756a5f53493f332721180f0802000000000000000000000003091119232935404b55606c7884919daab3a99d908477695f53463a2d1c110600000000010d19242f3b4854616e7b86929fa9ab9f958c7f736d6762605d555d5d575f61656d717e8a939da9afa9a7a9aba79c928c7f746d68615f575b5b545c6062696e78808d949ea9a59e9184796d60544b4034281c0b000000000c1925323f4c5865727f8b98a5a5a5a5acaeb4bdbfb6ada8a6a5a5a5a5a5a5a5a5a5a5a5a5a5a093877a6d6054473a2d211416222f3c4955626f7c8895a2afab9e9184786b5e5145382b1e120000000000000000000000000d1925303b4854606b7784919daaac9f93877b6e6153493f33272d2d2d3a4653606d7984919eabac9f92867a6d6054473d3221160c0100000000000000000000000e1b2834414e5b6774818e9aa7b3a6998c807366594d4033261a0d000000010d1a2734404d5a6773808d939393939393939393939393939393939393939393938d8074675a4d4134271a0e0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000000000000000000000000000000000000714202d3a4753606d7a85929fa9b2a89e91857a6d605a50473d352a251e1913110d070b0b0b070c1013181d2329333b454e58606d7883909da7b1a79e9184786c6053463a3024190d0100000000000000000009141f2c3844505c6673808c99a3afbbb9b1acaa9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa7a9afb8bab1a79b8e8174685d5245392c20130400000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e0200000000000000000000131f2c3946525f6c7985929fac9f928679707d89939ea9a59d9184796d60584e41382d20170d00000916232f3c4956626f7c8995a2ac9f9386796c605346392d20130000000c18232e394854606b76828f9c8f82756c61564c4a545f69707d8692979f99928d888481807f7f8082868b91979e9691847b6e675c51464b55606a74818d998f82766a605442382e23170c00000000000c18232e394854606b76828f9c8f82756c61564c414c5966727f8c999e91847b7b7b7b7b7b7b7b7c7e82879095a09892857a6d61544b404b55606a74818d998f82766a605442382e23170c00000000000000000000000000010e1b2834414e5b6774818e9aa79e918477685e5246484f545c606b707c85929fa59e93897d7063564c4135291d1104000000000000000000000000000000000c18232f394653606c7884919ea8b2aa9f92867b6e655b50443e332d261d1a1312100b060e090e1214191e2429343c46505a626e7b878f8b86827e7a766d675d5145392c1f1306000006121f2c3844505c6673808d9aa4afaa9e94887c6f655b50443d332a2219140e09060400000100000406090e141a232b353d45515d67717e8a95a0acada2978b7e7265574d42362a1e0a0000000000000814212d3a46535e6974818e97a1aba79c918c8079736f6d676a6a6a6a696e71777e87929fa5afa59d9b9c9fa6a49c918c807a726e6969686768666d6f747b828d929da6a69e938a7e71675d5142392e23180c000000000c1925323f4c5865727f8b989f9f9f9fa0aeb4bcb9b0a8a2a09f9f9f9f9f9f9f9f9f9f9f9f9f9f93877a6d6054473a2d211416232f3c4956626f7c8995a2afaa9d9184776a5e5144372b1e1100000000000000000000000008141e2c38444f5965727f8c98a3aea4998c7f73655b5044372b1f2a36414c5663707d8a97a1ada79b8e8174685d5245392c2013040000000000000000000000000f1c2835424f5b6875818e9ba8b2a5998c7f7266594c3f3326190c000000010d1a2734404d5a6773808686868686868686868686868686868686868686868686868074675a4d4134271a0e0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000000000000000000000006121e2b37424d5765717e8b98a2aeaca0968b7e71685d52483e352b2319130d08040100000000000004070c12182129333d44505c66707d89959fabaca0968a7d7064564c4135291d110400000000000000000003101c28343f4a54616e7b87929facb9b1a7a0939393939393939393939393939393939393939393939b9ea5afb8aca095897c6f63564c4135291d110400000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e0200000000000000000000131f2c3946525f6c7985929fac9f9285797984919ea5a99d93897d70675c51463c2f261b0e0500000916232f3c4956626f7c8995a2ac9f9386796c605346392d201300000007121d2c38434f5963707d8994948a7d70685d52454d57606b707d858f949c9f9a95918e8c8b8c8d8f92989e9c938e847b6e695f554b45515c676f7c879394897c6f63584e4330261c1106000000000007121d2c38434f5963707d8994948a7d70685d52454c5966727f8c99a196918787878787878788898b8f93999e9691867d6f685d524245515c676f7c879394897c6f63584e4330261c11060000000000000000000000000004111d2a3744505d6a7783909da89b8e827568564c413d424a5159606a707d8a939ea69c8f8276685d5245392c2013070000000000000000000000000000000007121f2b3844505b66727f8b96a1acaea2988f82776c605a50443f382f2b26201f1c171b1a1b1a1e2124292f353e464e58626c75828f9999928f8b8682796d6053473a2d201407000003101c28343f4a54616e7b87939fabb0a69c9083776c60584e453c342a251e1a1312100c070e070c1013131a1f262a353d47505a606d7984919ea7b1a99f9285796d6053473b31261a0e00000000000005121e2a36424d57616e7b859299a3aba39c928d84807c7a7877767677787b7e838b9299a3aea69d938e90949fa6a39c928d857f7b777675747576797c80868f949da4a69f948e81746c61554b4030271d1207000000000c1925323f4c5865727f8b939393939393a2aab4b3a89e9693939393939393939393939393939393877a6d6054473a2d21141623303d495663707c8996a3afaa9d9083776a5d5044372a1d1100000000000000000000000002101c27333d4754616d7a86929facab9e9184786c6053463a2f242d3946525e6875828f9ba9aca095897c6f63564c4135291d11040000000000000000000000000f1b2835424e5b6875818e9ba8b2a6998c7f7366594c403326190d000000000d1926333f4c58646e73797979797979797979797979797979797979797979797979746e64584c3f33261a0d0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000000000814212e3a47535f697683909daab4aa9e9184786d60564c41362d2319110802000000000000000000000001070f172128343f4a54606b7783909daab2a89b8f8275685d5245392c201307000000000000000000000c17232e3846525e6975828f9ca8b2aca095898686868686868686868686868686868686868686868e939ea9b4aa9d9084776b6054443a2f24190d0100000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e0200000000000000000000131f2c3946525f6c7985929fab9e918578808d96a0aca1978e81746b60554b40342a1d140a0000000916232f3c4956626f7c8995a2ac9f9386796c605346392d2013000000000f1b27323d4854606b7682909991847a6d605b51484f59606b707b828a8f939a9a9d9a9998989a9c9a99928f8981796e695f574d47505a606d798491988f82766b6054463d321e150a000000000000000f1b27323d4854606b7682909991847a6d605b514c5966727f8c99a8a19e949494949494949495989c9a97928d847d6f6b60564c47505a606d798491988f82766b6054463d321e150a000000000000000000000000000004101d2935404b556b7885919ea6998c807366594d40303940444f58616b75818e9ba99f92867a6d6054473a2d21140700000000000000000000000000000000030f1c28333f4a54606d7984919ea6b0aa9e948c7f726c615a5049413c37312d2b2823272728252a2d2f353a41454f585f6a717e8b939ea39f9c998f8275675d5145392c1f13060000000c17232e3846535f6975828e99a3afab9f948b7f726a60574e463e36302a25201f1c181b1a1b181c1f20262b31363f474f59616c74808d96a1adada2978d8073675d5145392a1f1409000000000000020e1a25313b46525e69707d879299a1a9a49c96918d8986858483838485888b90959fa3aba59d948e818390949da5a49d97928c8884828181828385898d92989ea6a49f948f82796d605a5043392f1e150b00000000000c1925323f4c5865727f8686868686868998a2aeafa2968c87868686868686868686868686868686867a6d6054473a2d21141824313e4b5764717e8a97a4b1a99c8f8376695c504336291d10000000000000000000000000000b16202d3946525d6875818e9ba7aca096897c7063554b4135292e3a4754616d7a86929facaa9d9084776b6054443a2f24190d010000000000000000000000000e1b2834414e5b6774818e9aa7b3a6998d8073665a4d4033271a0d000000000b17232f3b47525c64676c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c67645c52473c3023170b0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000000000815222f3b4855626e7b88959fabaea3988b7e72665c50443a2f241b1107000000000000000000000000000000050f17232e38424f5964717e8a98a2aeac9f92867a6d6054473a2d2114080000000000000000000006111c2a36424d5763707d8a96a1acaa9d9083797979797979797979797979797979797979797979818e9ba7aea2988b7f7265594f4332281e13080000000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e0200000000000000000000131f2c3946525f6c7985929faa9d91847b87929fa8a69e92857a6d61594f43392e22180b020000000916232f3c4956626f7c8995a2ac9f9386796c605346392d2013000000000a16212c38444f59626f7c8692978e81746d625a50474f5960696e767d83878b8e909192929291908e8b86827c756d675f574d474f59626c73808d9592867c6e62594f44342b200c03000000000000000a16212c38444f59626f7c8692978e81746d625a505966727f8c9393939393939393939399929291908d8a8580796f6b60594f474f59626c73808d9592867c6e62594f44342b200c03000000000000000000000000000006131f2c3945515d677986929fa5988b7f7265584c3f322e343d464f59626f7c8997a2a3998a7d7164574a3e3124170b00000000000000000000000000000000000b17222d3845515c67717e8b949ea9b0a69f92877e716c605b534d47423c3a38342e34343531363a3b41454c5159616a6f7c86929fa5aea99f93877c6f62554b4035291d100400000006111c2a36424d57626e7b87929fa8b0a69f92877c6f695f585046413b36312d2c282327272723282c2d31373b42465159606b717e8a929da8b1a79f92857a6d61554b4035291d10040000000000000009141f2a36424d57606b717e8792979fa2a8a19e999a9391909090919297989da0a7a8a19e938e82797a828e939da0a8a19e9996918f8e8e8f9092989a9fa3a7a09a938d82796d675d51483e31281d0c0300000000000b1824313e4a56626d7279797979797986929facada093877a7979797979797979797979797979797976685d5245392c20131926333f4c5966727f8c99a5b2a79b8e8174685b4e4135281b0e0000000000000000000000000005111d2935414c56636f7c8995a0aca89b8e8174675d5145392c37434e5865727f8b99a3aea2988b7f7265594f4332281e1308000000000000000000000000000e1b2734414e5a6774818d9aa7b3a79a8d8074675a4d4134271a080000000007131f2b36404a52585a6060606060606060606060606060606060606060606060605a58524a40362b1f13070000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000000030f1c28333f4a5465727f8b98a7b1ac9f92867a6d60544a3f32281e1209000000000000000000000000000000000006111c26303d4753606d7a85929facaea3998b7e7164584b3e3025190e02000000000000000000000e1a25303b4653606c7884919eabaca095897c6f6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6d7a86929facac9f92867a6d6054473d3221160c010000000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e0200000000000000000000131f2c3946525f6c7985929faa9d9083839099a3aa9f948a7e71685d52473d30271d0f06000000000916232f3c4956626f7c8995a2ac9f9386796c605346392d20130000000004101c27333d47535f6a737f8c95938c7f726c615950444f575f616b70767b7e8183858586858583817e7a756f6a605d554d445059606b717e8b92958c7f736a5f53473d3222190f000000000000000004101c27333d47535f6a737f8c95938c7f726c61595966727f86868686868686868686868686858483807d79736d6760594f445059606b717e8b92958c7f736a5f53473d3222190f0000000000000000000000000000000714202d3a4753606d7a8699a3a4978b7e7164584b3e312328343e4653606c7985929fab998c7f7266594c3f3326190c000000000000000000000000000000000006111c2834404b55616c75828f97a2abafa39992877e726c655f57534d4946443f41414141424246484c52555d606b707c859298a2aeada2978f82756a5f5343392f24180c00000000000e1a26313b47535f6974808d96a0abaea39991857b6e6a615a524c46423c3a38342e3434342e34383a3c42474d535b626b707d86929fa4aeaaa0958b7f72685e5243392f24180d0100000000000000030e1a25303b454f59626c717d858d92989d9fa4aca49f9e9d9d9d9d9ea1a9aba49f9c96918a81786d6d78818991959c9fa3a8a09e9c9b9a9b9c9fa2aaa39f9b95908880786d675d554b40362c1f160c0000000000000915222e3a46515b62656c6c6c6c6c7985929facada093877a6d6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c5d564c4135291d111c2934404b556774818e9aa7b3a6998c807366594d4033261a0d00000000000000000000000000010d1924303a4854606b7783909daaac9f92857a6d6054473c313b4754606a7783909dabac9f92867a6d6054473d3221160c01000000000000000000000000000d1a2733404d5a6673808d99a6b3a89b8e8175685b4e422f24190d01000000020e19242e3840474c4d5353535353535353535353535353535353535353535353534d4c4740382f24190e030000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000000000000000000000000000000006121f2b3844505b6675828f9ba8b5a89b8f8275685d5242382e20160c000000000000000000000000000000000000000a15202c3945515d6775828e9ba8b4ab9b8e817468564c41362a1e11050000000000000000000009141f2b3844505b66727f8c99a3aea79a8d8174675c606060606060606060606060605765717e8b98a2aea79b8e8174685d5245392c201304000000000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e0200000000000000000000131f2c3946525f6c7985929fac9f928790959faba2988f82766c61564c41352b1e150b00000000000916232f3c4956626f7c8995a2ac9f9386796c605346392d201300000000000b16212b37434e58606d7883909793887e716b625a514a4d53596163696e71747678797979787674716d68626058514b4a505a616b707d8792979083786d60584e43352b2110070000000000000000000b16212b37434e58606d7883909793887e716b625a636d727979797979797979797979797978777673716d67605d554f4a505a616b707d8792979083786d60584e43352b2110070000000000000000000000000000000613202d394653606c7986929fa5988b7e7265584b3f3025212b3744505b657784909da79a8d8074675a4d4134271a0e0100000000000000000000000000000000000c18232e3943505a616e7b859299a3afaba39992877f776e69615f575553504a4e4e4d4e4f4d5354565d60676d747d859297a1aaaea49e92857b6e61584e4331271d1207000000000009141f2b37424d57606d79849199a4afaba19791847c706c615e56534d494644404141414141404546494d53575f616d727d869298a2aeaca2989083786c60564c4131281d120700000000000000000009141f29333d47505a626b6f7a80868c90939a999b9d9e9e9f9f9f9e9d9c9a9993908b847d746d66666d747d848a8f92999a9c9d9e9f9f9f9e9d9b9998928f89837d746d665d554c43392f241a0d0400000000000006121e29343f49515658606060606c7985929facada093877a6d6060606060606060606060606060605f524c443a2f2419131f2c3845515c677783909daab4aa988b7e7165584b3e3225180b000000000000000000000000000008131e2c38434f5965727f8b98a2aea2988b7e7165574d4237404b55626f7c8895a0aca79b8e8174685d5245392c20130400000000000000000000000000000c1825323f4b5865727e8b98a5b1a99c8f837669554c4135291d11040000000008121c262e363b3f40464646464646464646464646464646464646464646464646413f3c362f261d1208000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000000000000000000000613202d394653606c7885929fabb2a9988b7e7165564c4130261c0d040000000000000000000000000000000000000004101d2935404b5565717e8b98aab3ab9e918478685e5246392d20140700000000000000000000030f1c28333f4a54616e7a86929facab9f9285796d60535353535353535353535353535f697683909caaaca095897c6f63564c4135291d1104000000000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e0200000000000000000000131f2c3946525f6c7985929faca39992999fa7a79f92867b6e615a50443a3023190c0300000000000916232f3c4956626f7c8995a2ac9f9386796c605346392d20130000000000050f1a26313c44505c666e7b85929992867d716c605c544e464f55575e6165676a6b6c6c6c6b6a6765615e56544e454e545c606c717d86929992857b6e665c50463c3123190f00000000000000000000050f1a26313c44505c666e7b85929992867d716c605c63666c6c6c6c6c6c6c6c6c6c6c6c6c6b6b696764605c55514b4e545c606c717d86929992857b6e665c50463c3123190f0000000000000000000000000000000005121f2b3744505b657885929ea6998c807366564c41362e2e2e3844505b667784909da79a8d8074675a4d4134271a0e01000000000000000000000000000000000007121d27303e46525e69707d87929fa4acaba399938c827b746e696562605c545b5a5a5b5c575e6164686d737a808a9297a1a9afa59d928a7e70695e52463c321f150b010000000000030e1a26313c45515d676f7d87939fa4aea9a19691867e756e68615e575653514a4e4e4d4e4e4b515356575f62696e767f879298a2aaafa49a92867c6f665b50443a301f160c01000000000000000000030d17212c353f48505960686d737a7f83878a8c8e90919192929292908f8d8a86837e79706c605c5c606b70787d82868a8d8f919292929292908f8c8986827d776f6b605c544c433a31271d120800000000000000010d18232d373f464a4c5353535f6c7985929facada093877a6d6054535353535353535353535353535345413a32281e1314202d3a4753606d7986929facaea298887c6f6255493c2f2216090000000000000000000000000000020f1b27323d4754606d7a86929facaa9c908376695f53473845515c6774808d9aa7aca095897c6f63564c4135291d110400000000000000000000000000000a1724313d4a5764707d8a97abb5ab9e918478675d5145392c20130600000000010a141c242b2f33343939393939393939393939393939393939393939393939393433302b241d140b01000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000000000000000000000815222f3b4855626e7b8897a2adada197877b6e6154483b2f21140a0000000000000000000000000000000000000000010d18242f3b4855616e7b8898a2aeada196877a6e6154473b2e21140800000000000000000000000b17222d3846525e6875828e9ba8ada2978a7e7164574d42464646464646463f4a54626e7b88949fabaa9d9084776b6054443a2f24190d01000000000000000000000000000000000000000c1926323f4c5965727f8c98a5a79b8e8174685b4e4135281b0e0200000000000000000000131f2c3946525f6c7985929facaba39fa3ababa0958c7f72695f53483e32281e11070000000000000916232f3c4956626f7c8995a2ac9f9386796c605346392d20130000000000000a152028343f4a545f696f7d87929892877e736d665f58524c484d5254585b5d5e5f5f5f5e5d5b5854524c474b51575f666d737e87929892877d6f695f544a3f342a20110700000000000000000000000a152028343f4a545f696f7d87929892877e736d665f586060606060606060606060605f5f5e5d5a5753514b4b51575f666d737e87929892877d6f695f544a3f342a20110700000000000000000000000000000000030f1b27333f49536a7784909da99c8f8276685e52463f3b3b3b404653606c7985929fac998c7f7266594c3f3326190c000000000000000000000000000000000000000b151e2a36424d56606b717f8b939aa3ababa49f948f86817b76726f6d6668686767686869696e71757a7f858d929ea2a9afa59e938d80746c61574d42342a200d030000000000000009151f2935404b55606b727f8b929da4ada9a198928a817a746e696562605c545b5a5a5a5b545c606266696e747b828b9299a2aaaea39f93887e706a5f544a3f32291e0d040000000000000000000000050f1a232d363f474f565d60686e72767b7d7f82838485858685858482807d7a76716d66615a51515960666c71767a7d80828485858685858382807d7a75706b636059514a423a31281f150b00000000000000000006111b252d343a3e3f4646525f6c7985929facada093877a6d6054474646464646464646464646464639352f282016101d2935404b5563707d8a99a3aeac9f9285796d6053463a2d2013070000000000000000000000000000000a16202c3945515d6774818e9aa7ab9f94887b6e62544a3f4653606d7985929fabaa9d9084776b6054443a3024190d0100000000000000000000000000000916222f3c4955626f7c8899a3aeaca196877a6d6054473a2d2114080000000000020a12191f2326272d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2726231f19120b0200000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000000000000000000000a1724313d4a5764707d8a97a9b3ab9e918578695e53463a2d2114020000000000000000000000000000000000000000000714212d3a46535f697885929fabb2a896897d7063564a3d3023170a000000000000000000000006111c2a36414c5663707d8996a0aca99c8f8276695e5246382d393939393844505c6673808d99a6aea2988b7f7265594f4332281e1308000000000000000000000000000000000003060809192633404c5966737f8c99a6a79b8e8174685b4e4135281b0e0200000000000000000000131f2c3946525f6c7985929facb5afacafafa4999083786d60574d42362c20160c000000000000000916232f3c4956626f7c8995a2ac9f9386796c605346392d2013000000000000030c17232e38424d57606b717e8a9299928b80786f6a605d56524c46474b4e505252535252504e4b47464b51555d606a6e787f889299928a7e716b60574d42382e22180e000000000000000000000000030c17232e38424d57606b717e8a9299928b80786f6a605d56524c5353535353535353535251504d4a474b51555d606a6e787f889299928a7e716b60574d42382e22180e0000000000000000000000000000000000000b17222d414e5a6774818d9aa99f92867a6d6159504a4847484b515b636f7c8998a2a49a8a7e7164574b3e3124180b00000000000000000000000000000000000000030c1925303b444f59626d727f889299a1a8afa69f99928e88837f7c797775747474747576787b7e82868c92979da4adaba39f938e81786d605a50453b3022180e0000000000000000030d18242f3a434f59626d74808d929ca3adaaa29f938e86807b76726f6d6669686767676869666d6f72777b81868f949fa3ababa39f918c7f726c61584e42382d20170d0000000000000000000000000008111b242d353d444c52565e6165696e71737577777879797978777573716e6864605c545044454f545b6064686d717376777879797978777573706d67636059544f44403930281f160d030000000000000000000009131b23292e31323946525f6c7985929facada093877a6d6054473a3939393939393939393939392c29241e160e19222c3945515d6774818e9aabb4a99c908376665c5044382c1f120600000000000000000000000000000004111d2935414c55626f7c88959faba6998d8073665c50444d5764717e8a97a2ada2988b7f7265594f4332281e13080000000000000000000000000000000713202d3a4653606d7986929facb2a896897c6f6356493c3025190e00000000000001080e1317191a20202020202020202020202020252728292622211f1a20201a1a17130e08010000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000000000000000000000c1926333f4c5966727f8c99a5b2a99c8f827669574d42362a1e120500000000000000000000000000000000000000000005121e2b37424d576a7683909da9b2a5988c7f7265594c3f3226190c0000000000000000000000000d1925303b4854606b7784919daaac9f93877b6e6153493f33272d2d2d3a4653606d7984919eabac9f92867a6d6054473d3221160c01000000000000000000000000000000040a0f1315161a2734404d5a6773808d9aa6a79b8e8174685b4e4135281b0e0200000000000000000000131f2c3946525f6c7985929facb8bbb9b2a89f93877c6f665c50453b31241a0e04000000000003050916232f3c4956626f7c8995a2ac9f9386796c605346392d20130000000000000006111c26303c454f59616c717e879298928d837c736d68605d5653514a4a484847464748484a4a5053555d60676d737b838c939892877e716c61594f453c30261c0f060000000000000000000000000006111c26303c454f59616c717e879298928d837c736d68605d5653514a4a484847464748484a4a5053555d60676d737b838c939892877e716c61594f453c30261c0f06000000000000000000000000000000000000061724313d4a5764707d8a97a2a3988d80736b605c54555455555c606d75828f9caa9f93877a6e6154473b2e211408000000000000000000000000000000000000000009141f29323d47505a626d727e8791969ea5acaba39f9a95908c8885848281818081828385878b8f92989fa2a9ada8a099928d81786d665c50483e33291f100600000000000000000007131d28313d47515b606c77808c919ea1a9aea59e98928d87837f7c79777674747474747677797c7f83888e92999fa6aea8a199928b7f736d635a50463c2f261c0e05000000000000000000000000000009121b232b323a41454c5254565e616466686a6b6b6c6c6c6b6a696764615e5653514a423e3d424a5053565e616467696a6b6c6c6c6b6a686663605d55554f48433d342e271e160d040000000000000000000000010911181e22242c3946525f6c7985929facada093877a6d6054473a2d2d2d2d2d2d2d2d2d2d2d2d201d19130e17202935404b55606d7985929fabb1a7988c7f7265544a3f34281c1003000000000000000000000000000000010d19242f3a47545f6a7783909da9ab9e9184796d605346525e6976828f9ca9ac9f92867a6d6054473d3221160c0200000000000000000000000000000006131f2c3845515c677783909daab2a6998c7f7366564d41362a1c11060000000000000002070b0d0d131313131313131313151e252c31343536322f2e2b26201f1c18120b0300000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000000000000000000000e1b2834414e5b6774818e9aa7b3a69a8d8073675a4d4031251a0e02000000000000000000000000000000000000000000020e1a2631414e5b6874818e9ba7b3a79a8d8074675a4d4134271a0e00000000000000000000000008141e2c38444f5965727f8c98a3aea4998c7f73655b5044372b1f2a36414c5663707d8a97a1ada79b8e8174685d5245392c201304000000000000000000000000000000070f151b1f2222262b38434e586875828f9ba8a79a8d8074675a4d4134271a0e0100000000000000000000131f2c3946525f6c7985929facacacacada1968d80746a60544a3f33291f120900010407070c10121316232f3c4956626f7c8995a2ac9f9386796c605346392d201300000000000000000a151e2a333d47505a626c717d869196959087807a736d6863605c54575554545354545557545c6063676d727a7f8690959691867d716c625a50473d332a1e150a0000000000000000000000000000000a151e2a333d47505a626c717d869196959087807a736d6863605c54575554545354545557545c6063676d727a7f8690959691867d716c625a50473d332a1e150a000000000000000000000000000000000000000714202d3a4753606d7a85929ea89f93887d726d666362616263676d737f8b949ea69d908376685e5246392d2014070000000000000000000000000000000000000000020d17202b353f48515b626c717d848e939da0a7abaca79f9d989892908f8e8d8d8e8f909298979c9fa3aaada9a29f96918780786c665c544a3f362c21170d00000000000000000000010c161f2b353f44505b656c747f8a92979ea6acaaa29f9a93908c898684828181808181828486898c90959a9fa3ababa49f9691877e736d635b51473e342a1d140a00000000000000000000000000000000091119202830353b4146474d525457595b5d5e5e5f5f5f5f5d5c5a5754524c46444039302f383f44464c5254575a5c5e5f5f5f5f5f5d5c595653514b48443d383228231c150c040000000000000000000000000000060d12151f2c3946525f6c7985929facada093877a6d6054473a2d212020202020202020201413110d0f182029323b45515d67727e8b97a2adab9f95887b6e6155483b2e23170c000000000000000000000000000000000008131e2b37434e5865717e8b97a2ada1968a7d7063564c54616e7b87939faca79b8e8174685d5245392c2013040000000000000000000000000000000004101c2834404b556774818e9aabb5a99c908376685e5246382e23170c0100000000000000000000010606060606060008111e272f373d4042433f3b3a37312d2c29231d150d04000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000000101c2936434f5c6976828f9ca9b2a5988c7f7265594c3f322619090000000000000000000000000000000000000000000000091a2733404d5a6673808d99a6b3a89b8e8175685b4f4235281c0f00000000000000000000000002101c27333d4754616d7a86929facab9e9184786c6053463a2f242d3946525e6875828f9ba9aca095897c6f63564c4135291d1104000000000000000000000000000007101920272b2e2f31363e4754606a7885919eabaa998c7f7266594c3f3326190c0000000000000000000000131f2c3946525f6c7985929f9f9f9f9fa59e9184796d60584e42382e21170d02080d111314181c1f201f232f3c4956626f7c89959f9f9f9386796c605346392d20130000000000000000030c18212b353e48505a626b707c848e9399928d85807a75706d666664626160606061626466666d70757a7f858c9298938e847c706b625a50483e352b21180c03000000000000000000000000000000030c18212b353e48505a626b707c848e9399928d85807a75706d666664626160606061626466666d70757a7f858c9298938e847c706b625a50483e352b21180c03000000000000000000000000000000000000000613202c3945515d67727f8c96a1a49a92877f7873706e6e6e7073798088939fa69f948a7e7164564d41362a1e1105000000000000000000000000000000000000000000050e19232d363f49515a626b6f7a818990959c9fa6a9aca9aaa29f9d9b9b9a9a9b9b9c9fa2aaa8acaaa9a19e97928c847c736c665b544a42382e241a0f050000000000000000000000040d192327333f49535b606d737d858f949da0a7acaca49f9c989892918f8e8d8d8d8e8f919298999d9fa7acaca69f99938d847d716c635b51493f352c22180b020000000000000000000000000000000000070e161e24293036393b4246474a4c4f50515252535252514f4d4a4746413b38342e27262d33383a4146474a4d4f515252535252504f4d4a4745403a38332c272118120b03000000000000000000000000000000000106131f2c3946525f6c7985929facada093877a6d6054473a2d21141313131313131313060b0f151a212a323b444e58606d7984919ea9b2a89d908376695f53463a2d1c11060000000000000000000000000000000000010f1b26323c4753606d7985929faba99b8e8275685d525966737f8c99a4aca095897c6f63564c4135291d110400000000000000000000000000000000000c18232e3e4a5764717e8a99a3afac9f93877b6e61544a3f34281d13070000000000000000000000000000000000040e1a232f3941484d4f504c4847433d3a38342f271f160e040000000000000000000001040606111e2a3744515d6a7784909daaa99c8f8376695c504336291d10060000000000000000000000000000000000101d2a3743505d6a7683909da9b1a4978a7e7164574b3e3124180b00000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5b2a99c908376695d5043362a1d10000000000000000000000000000b16202d3946525d6875818e9ba7aca096897c7063554b4135292e3a4754616d7a86929facaa9d9084776b6054443a2f24190d0100000000000000000000000000040f19222b32373b3c3f4246505a626f7c8997a1ada298897d7063564a3d3023170a0000000000000000000000131f2c3946525f6c798692939393939393938a7d70675d51463d30261c0f080d13191d202125292b2c2c292f3c4956626f7c89939393939386796c605346392d2013000000000000000000060f19232c363f485059616a6f7a818a919697928c86817d797673706f6e6d6c6d6e6f707376797d81858c929796918a817a6f6a615950483f362c23190f060000000000000000000000000000000000060f19232c363f485059616a6f7a818a919697928c86817d797673706f6e6d6c6d6e6f707376797d81858c929796918a817a6f6a615950483f362c23190f06000000000000000000000000000000000000000004111d2935404b55606d79849197a1a399928b84807d7b7a7b7d80858d939aa4a0968f82766c6155443b3025190e020000000000000000000000000000000000000000000008111b242d373f48505960686d757d83898f94989c9fa3aba7a8aaa8a7a7a7a7a8a9a9a7a5a8a09e9a97918c8580796f6b605b544a423830261c110800000000000000000000000000071017222d384149505b636b707b828990959c9fa4acaca9aaa39f9d9c9b9a9a9a9b9c9d9fa3aaaaababa39f9b948f878079706b625a514940372e231a100600000000000000000000000000000000000000040c13191e252a2d30363a3b3e4042444445464646454442403e3b3936302c28231c1c22282b3036393a3e40434445464646454442403d3a39352f2c27211b160c070000000000000000000000000000000000000006131f2c3946525f6c7985929facada093877a6d6054473a2d21140c0c0c0c0d090e1114171b1f262b333b444c56606a73808c96a1adada1968a7e7164574d42362a1e0a000000000000000000000000000000000000000a151f2c3945515d6774808d9aa6ac9f92867a6d6154606b7784919eabaa9d9084776b6054443a3024190d0100000000000000000000000000000000000714212d3a4754606d7a86929facafa4998c7f72665c50443a2f24181007000000000000000000000000000000030c16202c35414b53595b5c5955534e4a47454039312820160c020000000000000004090e111213131e2a3744515d6a7784909daaa99c8f8376695c504336291d13130807050200000000000000000000000000111e2a3744515d6a7783909daab0a3968a7d7063574a3d3024170a00000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1aa9d9083776a5d5044372a1d110000000000000000000000000005111d2935414c56636f7c8995a0aca89b8e8174675d5145392c37434e5865727f8b99a3aea2988b7f7265594f4332281e130800000000000000000000000000000a15202b343c4347494c4d5359616c75818e9ba9aa9f92867a6d6054473a2d2114070000000000000000000000131f2c3946525f6c7986868686868686868681756c61554b40342b1e150c13191e24292c2d323638393836323c4956626f7c86868686868686796c605346392d20130000000000000000000007111a242d363f474f5860686d747d848c929898928e8a8582807d7b7b7a797a7b7b7d8082858a8e929898928c847d746d675f584f473f362d241a11070000000000000000000000000000000000000007111a242d363f474f5860686d747d848c929898928e8a8582807d7b7b7a797a7b7b7d8082858a8e929898928c847d746d675f584f473f362d241a1107000000000000000000000000000000000000000000010d18242f3a45515d676e7c8592979fa39f96918c89888788898d91979fa49d9691847b6e615a504532291f140800000000000000000000000000000000000000000000000009121b252d363f474f565e616b70787d82878b909299989a9c9d9e9f9f9f9e9e9d9c9b999696918d89857f7a736d676059504a42382f261e140a00000000000000000000000000000006111b262f383f44515961696e757d83898f939a9c9fa2aaa7a8aaa9a7a7a7a7a7a9a9a8a6a9a29e9b99928e88827c746d676059504840372e251c110800000000000000000000000000000000000000000002080d14191e20252a2d2e31333537383839393938373634312e2d2a251f1c181211171c1f252a2d2e313436373839393938373533302d2c29241d1c160f0a04000000000000000000000000000000000000000006131f2c3946525f6c7985929facada093877a6d6054473a2d211919191919191a191e2022272b31373e454d565e686f7c87929fa8b1a79e9184786d6053463b31261a0e0000000000000000000000000000000000000004101d2935404b55626f7b88949faba3998b7e726557636f7c8996a0aca2988b7f7265594f4332281e13080000000000000000000000000000000000000713202c3945525d6876838f9ca9b3ab9e9184796d60554b4035292219100903000000000000000000000000040c151e28323d47535d65686965625f585653514b433a32281e1308000000000000080f151a1d1f2020202a3744515d6a7784909d9f9f9c8f8376695c504336292020201514120e09030000000000000000000000121e2b3845515e6b7884919eabafa396897c706356493d3023160a00000000000000000000000000000000000000000000000b1824313e4b5764717e8a97a4b1aa9d9184776a5e5144372b1e1100000000000000000000000000010d1924303a4854606b7783909daaac9f92857a6d6054473c313b4754606a7783909dabac9f92867a6d6054473d3221160c0100000000000000000000000000030f1b27323c464e545559575f616b707e8a939eaaa3988e8174675d5145392c2013060000000000000000000000121f2b3844515d6974797979797979797979756f65594f433a342e261e191e252a3035393a3f43454645433f3a4754606a6f79797979797979766c5f5346392d2013000000000000000000000009121b242d353e464e565d606b70797f858c91969a97928f8d8a888787868787888a8c8f92979a96918c857f79706b605d554e463d352d241b120900000000000000000000000000000000000000000009121b242d353e464e565d606b70797f858c91969a97928f8d8a888787868787888a8c8f92979a96918c857f79706b605d554e463d352d241b1209000000000000000000000000000000000000000000000007131d2935404b555f6a6f7d858f949c9fa09e999695949596999ea19f9b938e847b6e695e52483e3320170d020000000000000000000000000000000000000000000000000009131b242d353d444c525960656c70767b7f8386898b8d8f9091929292929190908e8c8a8784807c79726d67605d554f443f382f261d140c02000000000000000000000000000000000a141d262d3340474f575e616b70777d82878b8f9298989a9b9d9e9e9f9f9f9e9d9d9b999797928e8a86817c766f6a605d554f473e362e251c130a00000000000000000000000000000000000000000000000002080e1114191e20212426282a2b2b2c2c2c2c2a29272421201e1914100c07060b0f13191d20212427292b2c2c2c2c2c2a29262320201d1813100b050000000000000000000000000000000000000000000006131f2c3946525f6c7985929facada093877a6d6054473a2d2525252525262627252a2d2d33373c434750575f686e7a849199a3afaa9f958b7e71665c504438291f140900000000000000000000000000000000000000000c18242f3947535f6a7683909ca9ab9d908376695f6774818e9aa8ac9f92867a6d6054473d3221160c0200000000000000000000000000000000000004111d2935414c5664717e8a97a1adaca0968b7e71675d51453e342b221a140e09060400000101000205060c10161e27303a444f59656f7576726e6a6763605c554c443a3025190d010000000009121920262a2c2c2d2d2d3744515d6a778490939393938f8376695c5043362d2d2d2d22211e1a140e0600000000000000000000121f2c3845525f6b7885929eabafa296897c6f6356493c3023160900000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a3b0aa9e9184776b5e5144382b1e11000000000000000000000000000008131e2c38434f5965727f8b98a2aea2988b7e7165574d4237404b55626f7c8895a0aca79b8e8174685d5245392c201304000000000000000000000000000006131f2b37434e5860626567696e747d86929fa5a49f92867b6e61554c4135291d11040000000000000000000000101c2935414d5862696c6c6c6c6c6c6c6c6c68655d535246443f383026252a30363a4145474b4f525352504c47454e5860626c6c6c6c6c6c6c6c645a4f43372b1e1200000000000000000000000009121b232c343c434c525961676d737a7f84898e91979899979594939393949597999897918e89847f7a736d676159514c433c342c231b1209000000000000000000000000000000000000000000000009121b232c343c434c525961676d737a7f84898e91979899979594939393949597999897918e89847f7a736d676159514c433c342c231b1209000000000000000000000000000000000000000000000000010c18242f39434e58606b6f7b828a8f94979a9d9e9e9f9f9e9d9a99928f89817a6e695e574d42362c220e0500000000000000000000000000000000000000000000000000000109121b232b323a41464f535b6063696e7276797c7f8182848585868685848483817f7d7b7773706d66605d55514b433d332d261d140b020000000000000000000000000000000000020b141b2227353e454d525960636b70757b7e8285888b8d8f9091929292929191908e8c8a8885817e7a746f6a626058514b433d352d241c130a0100000000000000000000000000000000000000000000000000000205090e11141417191c1d1e1f1f201f1f1e1c1a171414110d08040000000003080d111314171a1c1e1f1f201f1f1d1c1a171413110d070100000000000000000000000000000000000000000000000006131f2c3946525f6c7985929facada093877a6d6054473a32323232323232333430363a3b3f44464e535a61696e7a839096a1abaea3989083786c60544a3f34281c1003000000000000000000000000000000000000000007121d2b37434e5864717e8a97a1ab9f95887b6e616d7985929faba79b8e8174685d5245392c20130400000000000000000000000000000000000000010d19242f3a4653606d7985929ea9b2a89e9184796d605a50463d342a251f1a1313100c070e0e080e1114171c1f283039424c56606b7581837f7b7774706d675e564c4135291d110500000008121b242b313638393939393844515d6a77838686868686868276695c504337393939392e2d2b261f180f06000000000000000000121f2b3845525e6b7884919eabafa296897c6f6356493c3023160900000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4b0aa9d9184776a5e5144372b1e110000000000000000000000000000020f1b27323d4754606d7a86929facaa9c908376695f53473845515c6774808d9aa7aca095897c6f63564c4135291d110400000000000000000000000000000815222e3b4754606a6f7274777b81879298a2a39f928c7f72695f53433a2f24190d0100000000000000000000000d1925303b4650585d5f60606060606060605b5e60605f53504a42382e30363a41464c5254585c5e5f5f5c5853514b4e5456606060606060605f5a52493e33271b0f0000000000000000000000000009111a222b313a41454f555d60686d72787d8185888b8d8f919292939292918f8d8b8885817d78726d68605d554f45413a312a221a11090000000000000000000000000000000000000000000000000009111a222b313a41454f555d60686d72787d8185888b8d8f919292939292918f8d8b8885817d78726d68605d554f45413a312a221a1109000000000000000000000000000000000000000000000000000007121d27313c464f5960696e777d82888b8e909192929291908d8b86827d746d685e574d453b30241a100000000000000000000000000000000000000000000000000000000000091019202830363d41495053575e6165676d6f7274757778787979787877767472706e696763605c54514c45403a3128221c140b0200000000000000000000000000000000000000020a1117232c333b42464f54596063696e7276797c7e808283848585868585848382807d7b7975716d68625f58544e45403a312b231b120a01000000000000000000000000000000000000000000000000000000000000020507080b0d0f11111213131312110f0d0b080705010000000000000000010507070b0d10111213131312110f0d0a07060401000000000000000000000000000000000000000000000000000006131f2c3946525f6c7985929facada093877a6d6054473f3f3f3f3f3f3f3f404042424647495053585f626c717b839095a0a8afa59f92867c6f655b5042382e23170c000000000000000000000000000000000000000000010f1a26313c4653606d7985929eaca7998c7f7366717d8a98a2aca095897c6f63564c4135291d1104000000000000000000000000000000000000000008131f2c3845515c6773808c97a1adada1968d80746c61584e463e36302a26201f1c181b1a1b1b191e2023282c313a424a545d68707d898f8c8884807d796d685e5246392d2013070000040f19242d353d424546464646453d4f5b6771777979797979797670665a4e3b44464646463b3a37312a21180e030000000000000000111e2b3844515e6b7784919eaab0a396897d7063564a3d3023170a00000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a99d9083766a5d5043372a1d100000000000000000000000000000000a16202c3945515d6774818e9aa7ab9f94887b6e62544a3f4653606d7985929fabaa9d9084776b6054443a3024190d0100000000000000000000000000000916222f3c4955626f7c7f8084888e9299a29f99928c80746d63574d4231281e130800000000000000000000000008141f2a343e464d51525353535353535761686b6c6c6c605c544a3f353a41464c52565d6065696b6c6b6965605c554e474953535353535353534f4940372c21160a00000000000000000000000000000810191f282f353e434b51565d60666c7074787b7e80828485858685858482807e7b7874706c66605d56514b433e352f281f1910080000000000000000000000000000000000000000000000000000000810191f282f353e434b51565d60666c7074787b7e80828485858685858482807e7b7874706c66605d56514b433e352f281f191008000000000000000000000000000000000000000000000000000000010b151f2a343d474f575e656c70767b7e8183848586858483817e7b756f6b605d564d453b33291f1208000000000000000000000000000000000000000000000000000000000000070e161e252a2f383f44464d5354555c60636567696a6b6c6c6c6b6b6a69686663615e575653504a45413a352f281f17110a020000000000000000000000000000000000000000000006111a202930363d44484f54565e6165666d6f7174757778787979787877767573716f6d6664605d56534e47433d352f281f1911090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3946525f6c7985929facada093877a6d60544c4c4c4c4c4c4c4c4c4c4d4e4d5254535b60636a6e757e859195a0a7afa59d938b7f726a5f53493f30261c1106000000000000000000000000000000000000000000000a151f2c3845515c6773808d9aa4aa9d9184776a75828e9baaaa9d9084776b6054443a3024190d01000000000000000000000000000000000000000004101c2834404b55606d7a85929ea7b1a89d928a7e706a60585046423b36312d2c282327272728252a2d2e34383e434c545c666d7a84919c9896918d89857a6d6154473a2e21140700000915202b353f474e5253535353514948555f676a6c6c6c6c6c6c69665e54474851535353534846423c332a1f14090000000000000000111e2a3744515d6a7784909daab0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000c1825323f4b5865727e8b98a5b1a99c8f8276695c504336291d1000000000000000000000000000000004111d2935414c55626f7c88959faba6998d8073665c50444d5764717e8a97a2ada2988b7f7265594f4332281e13080000000000000000000000000000000e1a2734414d5a6774808c8d90959b9fa098928e877f746e645b51453c311f160c01000000000000000000000000020d18222c343b4144464646464646505c6873787979796d665c504441454c52565e61686d727678797876726d675f584e464646464646464646433e372e251b1005000000000000000000000000000000070d161e2429313a40454c52545b6063656c6e717476777879797978777674716e6c6563605b54524c4540393129241e160d070000000000000000000000000000000000000000000000000000000000070d161e2429313a40454c52545b6063656c6e717476777879797978777674716e6c6563605b54524c4540393129241e160d070000000000000000000000000000000000000000000000000000000000030d18222b353d454d535b6063696e71747677787978777674716e69636059524c433b332921170d0000000000000000000000000000000000000000000000000000000000000000050c13191d262d33373b4246484b515356585a5c5d5e5f5f5f5f5e5d5d5b595754534d4946443f38352f29241d160d0600000000000000000000000000000000000000000000000000080e171f252a33383d44484d5254545c60626567686a6b6b6c6c6c6b6a6a68666462605c5454524c47433c383229241d160d07000000000000000000000000000000000000000004080a0b1313131313131311110e0b060100000000000000000004090e11121313131313131313070705010000000000000000000000060b0e1011131313131313130a0a0804000000000000000000000000000000000000000006131f2c3946525f6c7985929facada093877a6d6058585858585858585859595a5b565e6164656c70757c828a9297a0a8afa59e938e81746d62584e41382d1e150a000000000000000000000000000000000000000000000004101c2834404b55616e7b87939faca095887b6f7985929faca3988b7f7265594f4332281e1308000000000000000000000000000000000000000000000c18232e3945525d68727f8c959faaaea49f92867c6f6a625a524d46423c3a38342e343434353036393b3f444650565d666d78828f96a0a8a09e988d8074685e5246392d20130700000e1a26313d4751595e5f6060605e56544f555b5d6060606060605c5a544d53555d6060606055534d453c31261a0e0200000000000000101d2a3643505d697683909ca9b1a5988b7e7265584b3f3225180700000000000000000000000000000000000000000000000d1a2733404d5a6673808d99a6b3a89b8f8275685c4f4235291c0f000000000000000000000000000000010d19242f3a47545f6a7783909da9ab9e9184796d605346525e6976828f9ca9ac9f92867a6d6054473d3221160c020000000000000000000000000000000e1a2734414d5a6774808d9a9da0a7a0969186817b726d645c53493f332a1f0d04000000000000000000000000000006101a222a303538393939393945525e6b7885868686786d60534a4c51565e61686d737a7f82858685837f796f6a5f584e42382e393939393937332c251c13090000000000000000000000000000000000040c13191f282f353a41454a5053535b60626567696a6b6c6c6c6b6a69676562605b5353504a45413a352f281f19130c0400000000000000000000000000000000000000000000000000000000000000040c13191f282f353a41454a5053535b60626567696a6b6c6c6c6b6a69676562605b5353504a45413a352f281f19130c0400000000000000000000000000000000000000000000000000000000000000060f19232b333b41495053575f6164676a6b6b6c6c6b6a6764615e57544f45413a312921170f0500000000000000000000000000000000000000000000000000000000000000000002080b141b22272b31363a3b404547494c4e4f5152525353525151504e4c4a4846423d3a38342e29241e18130c04000000000000000000000000000000000000000000000000000000050d141a21272c33383b4246474a505355585a5c5d5e5f5f5f5f5e5e5d5b59575553504a4745413a37312b272018130c0400000000000000000000000000000000000000050c11141717202020202020201e1d1b17120c0400000000000000080f151a1d1f20202020202020201413110d080200000000000000040b11171a1d1e20202020202020171614100b0500000000000000000000000000000000000006131f2c3946525f6c7985929facada093877a6d656565656565656565656566676869696e7074787d81878f939ea1a9aca49f938e81786d605b51463c2f261b0c030000000000000000000000000000000000000000000000000c18232e3946535f6976828f9ca9a7998c7f737d8a98a2ac9f92867a6d6054473d3221160c020000000000000000000000000000000000000000000007121d2935414c56606d78839098a2acaea29892857c716c615e57534d494645404141414141424146474a50535a61686d78818e949fa8b0a69f92857a6d61564c4135291d11050000111d2a36424e59636a6c6c6c6c6b636059514a51535353535353504e50575f626a6c6c6c6c6c5f574d42372b1e1205000000000000000f1b2835424e5b6875818e9ba8b3a6998c807366594d402f24180c00000000000000000000000000000000000000000000020e1b2835414e5b6874818e9ba7b4a79a8e8174675b4e4134281b0e0000000000000000000000000000000008131e2b37434e5865717e8b97a2ada1968a7d7063564c54616e7b87939faca79b8e8174685d5245392c201304000000000000000000000000000000000e1a2734414d5a6774808d9aa5a9aa9e91847d78716c605d554b43392f24180c050000000000000000000000000000000810181f25292b2c2d2d2d3643505d6976839098897c6f635a56555d60686d737a80858b8f9192928f8b847c6f6a5f544a3f34282d2d2d2d2b27211b130a0100000000000000000000000000000000000001080d161d24292f35383f444649505355585a5c5e5f5f605f5f5e5c5a585553504946443f38352f29241d160d080100000000000000000000000000000000000000000000000000000000000000000001080d161d24292f35383f444649505355585a5c5e5f5f605f5f5e5c5a585553504946443f38352f29241d160d080100000000000000000000000000000000000000000000000000000000000000000007111920292f383f44464d5355585b5d5e5f5f5f5e5d5a5854524d48443d352f281f170f05000000000000000000000000000000000000000000000000000000000000000000000000020a11171b1f252a2d2f34383a3c3f4142444545464645454443413f3d3b3a36312d2c28231c19130d0701000000000000000000000000000000000000000000000000000000000002090e161c21272c30363a3b3f4446494b4d4f5051525253525251504f4d4a4846443f3a39352f2b26201b160d0701000000000000000000000000000000000000000810171c2123242d2d2d2d2d2d2d2b2a27231d160e06000000000009121920262a2c2c2d2d2d2d2d2d2d21201d19130c050000000000050e161d22272a2a2d2d2d2d2d2d2d2423201c171008000000000000000000000000000000000006131f2c3946525f6c7985929facada093877a72727272727272727272727273737576787a7d8184898e93999ea6ada8a19a938c81786d665c50493f342a1d140a0000000000000000000000000000000000000000000000000007121d2b37424d5764717d8a97a1aa9d908377818e9baaa79b8e8174685d5245392c2013040000000000000000000000000000000000000000000000000d19242f3a44505c666e7b86929aa4afaaa29792867e756e69615f575653514b4e4e4d4e4e4f4c5254545c60646c717a828e939ea6b0a89f948c7f72685e52443a3025190d010000121f2c3845525e6a757979797978706b605c544d4546464646434b515a61696e777979797976695f53463a2d211407000000000000000d1a2734404d5a6773808d9aa6b3a89b8e817568554b4035291d100400000000000000000000000000000000000000000005121e2b37424d57697683909ca9b2a5988c7f7265594c3f3226190c00000000000000000000000000000000010f1b26323c4753606d7985929faba99b8e8275685d525966737f8c99a4aca095897c6f63564c4135291d1104000000000000000000000000000000000e1a2734414d5a6774808d95999c9fa096918a847e756d675d554b40352921160b00000000000000000000000000000000060d14191c1f1f20202834414e5b6774818e9a8e81756c656364676d737a80868d92989c9e9f9e9c9691857c6f665c5044382b1f2020201e1b16100901000000000000000000000000000000000000000000040c13181e24292d3338393f4446484b4d4f515252535252514f4d4b4846443f3938332d29241e18120c0400000000000000000000000000000000000000000000000000000000000000000000000000040c13181e24292d3338393f4446484b4d4f515252535252514f4d4b4846443f3938332d29241e18120c04000000000000000000000000000000000000000000000000000000000000000000000000070e171d262d33373b4246484b4e505152535251504e4b4746423b383229241e160d05000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f141a1e2123292c2d303234363738393939383837363533302e2d2a25201f1c17110d0801000000000000000000000000000000000000000000000000000000000000000000050b10161c1f252a2d2e34383a3c3e414244454546464545444342403e3c3a38342e2c29241e1b150f0a04000000000000000000000000000000000000000008121a22282d3031393939393939393837332e2820180e0400000008121b242b31363839393939393939392e2d2a251e160e05000000040e1720272e3336373939393939393931302d28221a11080000000000000000000000000000000006131f2c3946525f6c7985929facb2a5988c7f7f7f7f7f7f7f7f7f7f7f7f7f7f80818385878a8d91969b9fa4ababa39f9691887f776d665c544a3f372d22180b0200000000000000000000000000000000000000000000000000000e1a26313c4653606d7984919eaba095887b85929faba095897c6f63564c4135291d110400000000000000000000000000000000000000000000000008131e28343f4a545f69717e88939fa3afa9a298928b827b746e696662605c545b5a5a5a5b5c565e6164666d71767e848f949ea5afaaa1968f82786c60564c4132281e130800000013202c3946535f6c7987868686847d736d665f575146413e454d555c606c717b83868686867b6e6155483b2e221508000000000000000c1825323f4b5865727e8b98abb5aa9d908477675d5145392c1f13060000000000000000000000000000000000000000000714212d3a46535f697885929fabb4aa968a7d7063574a3d3024170a00000000000000000000000000000000000a151f2c3945515d6774808d9aa6ac9f92867a6d6154606b7784919eabaa9d9084776b6054443a3024190d01000000000000000000000000000000000e1a2734414d5a67748087898c90949da09e96918a81796d675d51453d33271c10030000000000000000000000000000000002080d101213131825323f4b5865727e8b98938b7f75717071747a80858d92989fa2aaa4a3a5a8a1979083786d6053463a2f24190d13120f0a0500000000000000000000000000000000000000000000000001070d13191c22282b2d3337393b3e41434445464646454443413e3b3937332d2b28221c19130d070100000000000000000000000000000000000000000000000000000000000000000000000000000001070d13191c22282b2d3337393b3e41434445464646454443413e3b3937332d2b28221c19130d07010000000000000000000000000000000000000000000000000000000000000000000000000000050b141b22272b31363a3b3e4143444546454443413e3b3a36302c272119130c0400000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e1214181c1f20232527292a2b2c2c2c2c2b2a2a28262421211e1a1312100c060000000000000000000000000000000000000000000000000000000000000000000000000000050b1014191e2023282c2d2f3234353738383939393837373533312f2d2b2823201d19130f0a0400000000000000000000000000000000000000000005101a242c33393c3e4646464646464644433f39322a20160c0100040f19242d353d42454646464646464646463936302820160c0200000b16202932393f4344464646464646463d3c39332c231a100500000000000000000000000000000006131f2c3946525f6c7985929facb8a79c918c8b8b8b8b8b8b8b8b8b8b8b8c8c8d8e909297979a9ea1a8acaba39f99928d847d736c655c544a42382e241b100600000000000000000000000000000000000000000000000000000009141f2c3844505c6673808c99a4a79c8f828f97a2aa9d9084776b6054443a3024190d01000000000000000000000000000000000000000000000000010b17232e38424d57616c727f8c919fa3abaaa39f938f86817b76726f6d66696867676768686a686e7174797d838a91969fa6afa9a19891847a6d665b50443a3020160c020000000b1825323e4b5865717e8b9296918780786e69625b524c4550575f676d747e869095948d8074695f53463a2d211407000000000000000916232f3c4956626f7c8999a3afac9f92867a6d6053473a2d22170b0000000000000000000000000000000000000000000815222e3b4855616e7b8898a2aeaea298887b6e6155483b2e221508000000000000000000000000000000000004101d2935404b55626f7b88949faba3998b7e726557636f7c8996a0aca2988b7f7265594f4332281e130800000000000000000000000000000000000713202d3a4653606d787b7c7f838990959fa09d938e82796d60594f44382c1f1409000000000000000000000000000000000000000305060815222f3b4855626e7b88959b918b827e7d7e81858c92989fa2a29f9a9796989c9f9f958a7d7164554c4135291d110405020000000000000000000000000000000000000000000000000000000001080d11171c1f22272b2d2f323436373839393938373634322f2d2b27221f1c17110d08010000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080d11171c1f22272b2d2f323436373839393938373634322f2d2b27221f1c17110d08010000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171b1f262a2d2e31343738383939383734312e2d2a251f1b160d08010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000205070c10131416191b1c1e1f1f20201f1e1e1d1b19171514120e09060300000000000000000000000000000000000000000000000000000000000000000000000000000000000002090e1114171c1f20222527292a2b2c2c2c2c2b2b2a28262422201f1c1713110d080100000000000000000000000000000000000000000000000c17222c363e45494a53535353535353514f4b443c32281d1206000915202b353f474e5253535353535353535346413a32281e13080006111d27323b444a4f51535353535353534a49443e362c22170b00000000000000000000000000000006131f2c3946525f6c7985929facb8ada39c98989898989898989898989898999a9b9c9ea1a9a7aba9a8a19e99928e87817a706b605b534a423930261c12090000000000000000000000000000000000000000000000000000000003101c28343f4a54616e7b87939fac9e948f949ea9a3988b7f7265594f4332281e1308000000000000000000000000000000000000000000000000000006111c26303c45505a636d737f8b9299a1a8aea59e98928d87837f7c79777674747474747577787a7d81848a90949ea1a9afa8a19792867c6f685e544a3f32281e0e04000000000b1724313d4a56626d73808c9399938d837b726d615e56515a61696e79818a9298958f82786d60574d42372b1e1205000000000000000714202d3a4753606d7a86929facafa399897d7063544a3f33281c0f030000000000000000000000000000000000000004111d2935414c5665727e8b98aab3ab9f9285786c605346392d2013060000000000000000000000000000000000000c18242f3947535f6a7683909ca9ab9d908376695f6774818e9aa8ac9f92867a6d6054473d3221160c02000000000000000000000000000000000006121f2b3844505c666d6e6f72767c838f949fa59e948e81746b6054483b31251a0e020000000000000000000000000000000000000000000814212e3a47535f6a7784919d9b948f8b898a8d92989fa2a29f98928d8a898b90949c9c8f8276675d5145392c201306000000000000000000000000000000000000000000000000000000000000000000060b0f12171b1f20222527292b2c2c2d2c2c2b29272522201f1b17120f0b0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f12171b1f20222527292b2c2c2d2c2c2b29272522201f1b17120f0b0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f141a1e212225282a2b2c2c2c2b2a272521201e1a140f0b04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040607090c0e0f1112121313121211100e0c0a0807050200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000205060c10121316181a1c1d1e1f1f201f1f1e1d1c1a17151312100b06040100000000000000000000000000000000000000000000000004111c28333e48505557606060606060605e5c564e44392e23170b010e1a26313d4751595e5f606060606060605f524c443a3025190d010b17222e39444d555b5d60606060606060575550483e33281c1004000000000000000000000000000006131f2c3946525f6c7985929facacacada7a5a5a5a5a5a5a5a5a5a5a5a5a5a6a6a8a9a8a6aba39f9c9996918c87817b746d6761595049413930271e140a0000000000000000000000000000000000000000000000000000000000000c17232e3846535e6975828f9ca8a69e9c9ea6ac9f92867a6d6054473d3221160c020000000000000000000000000000000000000000000000000000000a141e2a333e48515b636d737f8791969fa4acaaa29f9a93908c898684828181808181828385878a8e91979c9fa6adaca59d9691857c6f6a60564c42382d20160c00000000000915212e3a45505a636e74818e939f9590867e756d68605c606c717b838e939f969083796d665c50453c31261a0e020000000000000006131f2c3945515d677783909daab5ab9a8d8073665b5044382b1f140a000000000000000000000000000000000000010c13202c3945525d6875828f9ba8b5a89b8f8275665b5044382b1f120600000000000000000000000000000000000007121d2b37434e5864717e8a97a1ab9f95887b6e616d7985929faba79b8e8174685d5245392c20130400000000000000000000000000000000000003101c28343f4a545c606162666b6f79828f97a1a69d93897d7063574d42362a1e120500000000000000000000000000000000000000000006121e2b37424e5765727e8b95a09e9c9896979a9fa2a39f98928c85817e7d7e838c929f92867a6d6054473a2d211407000000000000000000000000000000000000000000000000000000000000000000000003060b0f121315181a1c1e1f1f201f1f1e1c1a181513120f0b0603000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003060b0f121315181a1c1e1f1f201f1f1e1c1a181513120f0b0603000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e121415181b1d1e1f201f1e1d1b181414110e090200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030607090b0e0f1112121313121211100f0d0b09070603000000000000000000000000000000000000000000000000000000000814212d3945505a61646c6c6c6c6c6c6c6b6760564b3f33271b0e04111d2a36424e59636a6c6c6c6c6c6c6c6c6c5e564c41362a1d11050e1a27333f4a555f676a6c6c6c6c6c6c6c64615a5044392d201408000000000000000000000000000006131f2c3946525f6c7985929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa39f9f9e9d9c9b99979992908c89847f7b746e69605d554f443f382f271e150c0200000000000000000000000000000000000000000000000000000000000006111c2a36424d5763707d8a96a1acaaa8aab0a79b8e8174685d5245392c20130400000000000000000000000000000000000000000000000000000000020c18212c363f49515b636d727d848e939a9fa6acaca49f9d999992918f8e8d8d8d8e8f909298979a9ea1a9abaca7a09d938e847c6f6a60584e443a2f261c0e05000000000005111d29343f48525b606d78818f959f98928b827a706b676d747e8690959d9891847b6e675d544a3f332a1f1409000000000000000004101d2935404b556673808d99a9b3ab9e9184786c6053463d2f261c1106000000000000000000000000000000000008131e28343f4a54606d7a86929facb1a7988b7e7265544a3f33281c0f03000000000000000000000000000000000000010f1a26313c4653606d7985929eaca7998c7f7366717d8a98a2aca095897c6f63564c4135291d1104000000000000000000000000000000000000000b17232e38424a505354565960676d7a85919eaba59c8f8276695e53463a2d211407000000000000000000000000000000000000000000020e1a26313c4653606c78839097a1a8a4a3a4aaa29f98928d86807a74717072767f8c94998a7d7063574a3d3024170a0000000000000000000000000000000000000000000000000000000000000000000000000000030506080b0e1011121313131211100e0b080605030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030506080b0e1011121313131211100e0b0806050300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080b0e101112131211100e0b0807050200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001040613131313131313130d0c0a070200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1723303c4955616c71797979797979797772675c4f43372a1d1106121f2c3845525e6a75797979797979797976685e5246392d201307101d2a36434f5b67717779797979797979706c6155493c3023160a000000000000000000000000000006131f2c3946525f6c798592939393939393939393939393939393939398929291918f8e8d8b8886837f7c78736e69615f57514c433e332d261d150c0300000000000000000000000000000000000000000000000000000000000000000e1a25313b4653606c7884919e9f9f9f9f9fa095897c6f63564c4135291d11040000000000000000000000000000000000000000000000000000000000060f1a242d374049515b626b6f7a818790949b9fa3ababa9aba39f9d9c9b9a9a9a9b9b9d9fa2aaa7ababaca49f9c959189817a6e6a60584e463d32281d140a000000000000010c18222d364044505c666d79829095a09f938f857d746f79818a9298a09992867c6f695e554b42382e21180e030000000000000000000c18242f3c4956636f7c8997a1adada196897d7063584e42382d22170f06000000000000000000000000000000081119242f3844505c66727e8b98a3aeaca095877b6e6154483b2d22170b00000000000000000000000000000000000000000a151f2c3845515c6773808d9aa4aa9d9184776a75828e9baaaa9d9084776b6054443a3024190d010000000000000000000000000000000000000006111c2630383f444647494f555e68727f8c99a3ab9f94877b6e6154483b2e2115080000000000000000000000000000000000000000000009151f2b3844505b666f7c8591969c9f9f9e9c98928d86807a736d686463656d76828f998d8073665a4d4033271a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d111320202020202020201a1917130e0700000000000000000000000000000000000000000000000000000000000000000000000000000000000002080c101212131313131313131306040000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717e8686868686868684776b5e5144382b1e110613202c3946535f6c7987868686868686867a6d6154473a2e211407111e2a3744515d6a7783868686868686867e7064574a3d3124170a000000000000000000000000000006131f2c3946525f6c798686868686868686868686868686868686868686858585848381807e7c7976736f6c65615e57534d45413a3127221b140b0300000000000000000000000000000000000000000000000000000000000000000009141f2b3844505b66737f8c999393939393939084776b6054443a3024190d0100000000000000000000000000000000000000000000000000000000000008121c252e374048515960686d757c83898e92999b9fa2a9a6a8a9a9a7a7a7a7a7a8aaa9a8a6aaa29f9c9a938f89847d746d685f584e463d342b20160b020000000000000006111b2428343f4a545d676d7a839196a19e979188807b838e929fa29f93877d706a5f574d433a30261c0f06000000000000000000000713202d3a4653606d7985919eabb2a89c8f82766a60544a3f3328211810080200000000000000000000000309111a232935414c56606d7884919eaab3a99d908377695e53463a2d1c1106000000000000000000000000000000000000000004101c2834404b55616e7b87939faca095887b6f7985929faca3988b7f7265594f4332281e13080000000000000000000000000000000000000000000a141e262e34383a3b3d434c56606d7a86929faca6978a7e7164574b3e3124180b00000000000000000000000000000000000000000000030f1c28333f4a545f6a6f7c848c909292918f8b86807b746e68605d56565b64707d8a998f8275685c4f4235291c0f0200000000000000000000000000050a0d0f10101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010100f0d0a05000000000000000000000000000000000000000000000105090b0b131313131309090703000000000000000003070b0d0e1313131311100e0a0600000306080913131313100f0d09040004090e111213131313130a090704000000000000000000000000000000000003080b0d0e13131313070604000000000000000005090d0f1013131312110f0c07010000000000000000000000000000000000000000000000000000000000000000040c13181d202d2d2d2d2d2d2d2d2626231f19120a01000000000000000000000000000000000000000000000000000000000000000000000000000000060d13181c1e1f202020202020202013100c07010000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a93939393939184776b5e5144382b1e110613202c3946535f6c7986929393939393877a6d6154473a2e211407111e2a3744515d6a77849093939393938a7d7064574a3d3124170a000000000000000000000000000005121f2b3844515d6974797979797979797979797979797979797979797979787877767573716f6d666662605b53534d47423c352f281f17110a0200000000000000000000000000000000000000000000000000000000000000000000030f1c28333f4a54616e7a8786868686868686867f7265594f4332281e130800000000000000000000000000000000000000000000000000000000000000000a131c252e363f474f565d606a6f767c81868b8e929797999b9c9e9e9f9f9f9e9e9d9d9b999798928f8b87827d78706b605d564e463c342b22190e05000000000000000000091217232e38424b555d686e7b849197a2a19a938d8890959da59d928b7f726b61584e453b31281e140a000000000000000000000006121f2b3844505c6673808d99a4afaa9f94897c6f665b50443d332a2219140e09060400000100000406090e151a232b353d45525d68717e8b96a0acada1978b7e7165574d42362a1e0a000000000000000000000000000000000000000000000c18232e3946535f6976828f9ca9a7998c7f737d8a98a2ac9f92867a6d6054473d3221160c02000000000000000000000000000000000000000000020c141c23282b2d2e313a45525d687783909daaa6998d8073665a4d4033271a0d00000000000000000000000000000000000000000000000b17222d38424e585f6a6f797f83858684827f7a736e69615e56524c4a54606d7987868683776a5e5144372b1e11040000000000000000000000030a1016191c1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1c1916100a0300000000000000000000000000000000000000060c1115171820202020201615130f0a040000000001080e13171a1a202020201e1d1a16110b0a0f131516202020201c1b1915100a0f151a1d1f2020202020171614100b050000000000000000000000000001080e14171a1b202020201413100c0701000000020a1015191c1c2020201f1e1b18130c05000000000000000000000000000000000000000000000000000000000000040d161d24292c393939393939393933322f2a241c130a00000000000000000000000000000000000000000000000000000000000000000000000000000710181f24282b2c2d2d2d2d2d2d2d2d1f1c18120b0300000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a979f9f9f9e9184776b5e5144382b1e110613202c3946535f6c7986929f9f9f9f94877a6d6154473a2e211407111e2a3744515d6a7784909d9f9f9f978a7d7064574a3d3124170a000000000000000000000000000003101c2935414d5862696c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b6a6968666462605c545653504946423b373129241e160d06000000000000000000000000000000000000000000000000000000000000000000000000000b17222d3846525e686e797979797979797979726d6256473d3220160c020000000000000000000000000000000000000000000000000000000000000000010a131c242d353d444c525860626a6f757a7e8285888a8d8e909192929292929191908e8c8a8985827f7b75706c656059524c433c332b22191007000000000000000000000006111c263039434c565e696f7c859299a3a49f9a959da0a79e948d80746d62594f463c33291f160c02000000000000000000000003101c28343f4a54616e7b87939fabb0a69d9083786c60594f453c342a251f1a1312100c070e070c1013131a1f262b353d47505a606d7a84919ea8b2a99e9285796d6053473b31251a0e0000000000000000000000000000000000000000000007121d2b37424d5764717d8a97a1aa9d908377818e9baaa79b8e8174685d5245392c2013040000000000000000000000000000000000000000000000020a11171c1f20212935414c566774818e9aa7a79a8d8174675a4e4134271b0e010000000000000000000000000000000000000000000006111c262f3c464e585f676d727678797876726d68615e56524c454145515d67757979797771675b4f43362a1d100400000000000000000000040d151c21262929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292926211c150d0400000000000000000000000000000000000911181d2124252d2d2d2d2d23221f1b160f070000020b12191f2326272d2d2d2d2a2927221c15151b1f22232d2d2d2d292825211b141920262a2c2c2d2d2d2d2423201c1610080000000000000000000000020b131a1f2426272d2d2d2c201f1d18120b0300040c141b212528292d2d2d2b2a28231e170f0600000000000000000000000000000000000000000000000000000000010c161f282f35394646464646464646403f3b352e261c120700000000000000000000000000000000000000000000000000000000000000000000000006101922293035383939393939393939392c29231d150d03000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4acaa9e9184776b5e5144382b1e110613202c3946535f6c7986929facaca094877a6d6154473a2e211407111e2a3744515d6a7784909daaaca3978a7d7064574a3d3124170a0000000000000000000000000000000d1925303b4650585d5f606060606060606060606060606060606060605f5f5e5e5c5b5a585553514b4946443f3836312b261f19130c04000000000000000000000000000000000000000000000000000000000000000000000000000006111c2a36414d565e616c6c6c6c6c6c6c6c6c65625b5146342b210e0400000000000000000000000000000000000000000000000000000000000000000000010a121b232b323a41454e54586062686d7175797b7e80818384858586858584848381807e7c7975726e6963605b534f45413a312a21191007000000000000000000000000000a141e27313a444d575f6a707d879299a49f9f9f9fa9a0958f82786d605b51473e342a21170d04000000000000000000000000000b17232e3846535e6975818e99a3aeab9f958b7f726b60574e463e36302a25201f1c181b1a1b181c1f20262b31373f474f59626c74818e97a1adada1978d8073675c514538291f140900000000000000000000000000000000000000000000000e1a26313c4653606d7984919eaba095887b85929faba095897c6f63564c4135291d110400000000000000000000000000000000000000000000000000060b10121319242f404d5a6673808d99a6a79b8e8174685b4e4135281b0e0200000000000000000000000000000000000000000000000a141d2a343c464e555d6065696c6c6b6965615e56524d46413b35414b555d6b6c6c6c6a675f564b3f33271b0e02000000000000000000030d161f262d3235363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363635322d261f160d0300000000000000000000000000000009121b22292e31323939393939302f2c2721191007010b141d242b303334393939393736332e271f20272b2e2f393939393635312c261e242b3136383939393939302f2c28211a1108000000000000000000010b141d242b303334393939392d2c29241d150d030c161e262d3235363939393837342f2921180f0000000000000000000000000000000000000000000000000000000007131d28313a404553535353535353534d4b4740382e24190e0200000000000000000000000000000000000000000000000000000000000000000000020d18222b343b414445464646464646464638342f271f150b010000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4b0aa9e9184776b5e5144382b1e110613202c3946535f6c7986929facada094877a6d6154473a2e211407111e2a3744515d6a7784909daab0a3978a7d7064574a3d3124170a00000000000000000000000000000008141f2a343e464d51525353535353535353535353535353535353535352525251504e4d4b494645403c3937332d2a251f1a150d0801000000000000000000000000000000000000000000000000000000000000000000000000000000000e1925303b444d52545f6060606060606060585651493f3422190f00000000000000000000000000000000000000000000000000000000000000000000000000091119202830353d43474e54565e6164656c6e717375767778797979787877767573716f6d6665615f57535049413d352f281f180f070000000000000000000000000000020c151f28323b454e58606b717e8793939393939393969083796d665c50493f352c22190f05000000000000000000000000000006111c2a36424d57616e7b86929fa8b1a79f92877d6f6a5f585046413b36312d2c282327272723282c2d31373c42475159606b717e8b939da9b1a79e92857a6d61554b4034291c1004000000000000000000000000000000000000000000000009141f2c3844505c6673808c99a4a79c8f828f97a2aa9d9084776b6054443a3024190d010000000000000000000000000000000000000000000000000000000306081926323f4c5965727f8c98a5a79b8e8174685b4e4135281b0e020000000000000000000000000000000000000000000000020b18222a343c434b5154595d5f5f5e5c5854524c46423b36302f3a434b515e6060605e5b564d44392e22170b000000000000000000000a151f2831383e424343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343423e3831281f150a000000000000000000000000000006111b242d343a3d3e46464646463c3b38322b23190f08121d262f363c3f414646464644423f3931292b32373b3c4646464643413d3830282d353d424546464646463d3c38332c231a1005000000000000000008131d262f363c4041464646463a39352f271f150b141e2830383e41434646464544403a332a210f050000000000000000000000000000000000000000000000000000010d18242f3a434b515f606060606060605957524a40352a1f13070000000000000000000000000000000000000000000000000000000000000000000008131f29343d464c5152535353535353535345403931271d12070000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4acaa9e9184776b5e5144382b1e110613202c3946535f6c7986929facaca094877a6d6154473a2e211407111e2a3744515d6a7784909daaaca3978a7d7064574a3d3124170a000000000000000000000000000000020d18222c343b41444646464646464646464646464646464646464646464545444342403e3c3a38342e2d2b27221b1a140e090300000000000000000000000000000000000000000000000000000000000000000000000000000000000008141f29323b4146475353535353535353534c4a463f372d2310070000000000000000000000000000000000000000000000000000000000000000000000000000070e161e242932373d43484c5254535b6062646668696b6b6c6c6c6b6b6a6a68666462605c5455534d46443f382f29241e160d0600000000000000000000000000000000030d162029333c464f59616c727f8686868686868686847b6e675d544a3f372d231a1007000000000000000000000000000000000e1a25313b46535f6973808d96a0abaea39991857c6f6a615a524d46423c3a38342e3434342e34383a3c42474d535b626b707d86929fa5afaa9f958b7e71685e5243392f23180c00000000000000000000000000000000000000000000000003101c28343f4a54616e7b87939fac9e948f949ea9a3988b7f7265594f4332281e13080000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e02000000000000000000000000000000000000000000000000061018222a313a4145474c50525352504c4746413a36302a2528313a414547535353514f4b443b32281d110600000000000000000005101c26313a42494e50505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050504e49423a31261c1005000000000000000000000000010c18222d363f454a4b53535353534948433d352b21160e19242f3840474c4d53535353514f4a433b31343d434749535353534f4e49423a30353f474e5253535353534a48443e352c21160b00000000000000030e1a242f3841474c4e535353534745403931271d121b26303a42494e4f53535352504c453c3321170d030000000000000000000000000000000000000000000000000004111d2935404b555d6c6c6c6c6c6c6c6c66635c52473b2f23170a000000000000000000000000000000000000000000000000000000000000000000000c1824303b464f575d5f606060606060605f514b43392f23180c0000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a979f9f9f9e9184776b5e5144382b1e110613202c3946535f6c7986929f9f9f9f94877a6d6154473a2e211407111e2a3744515d6a7784909d9f9f9f978a7d7064574a3d3124170a0000000000000000000000000000000006101a222a303538393939393939393939393939393939393939393939393837363533312f2d2c2823201f1b17110e09030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020d1720293036393b4646464646464646463f3e3a342d251b1100000000000000000000000000000000000000000000000000000000000000000000000000000000040c131920272b32383a41464749505355575a5b5d5e5f5f5f5f5f5e5e5d5b59575653514a4846423b37332d261d19130c04000000000000000000000000000000000000040e17212a343d47505a626d727979797979797979786e695e554b42382e251b1108000000000000000000000000000000000009141f2a36424d57606d79849199a3afaba19791857c716c615e56534d494644404141414141404546494e53575f616d727d869298a3aeaba2989083776c60564c4131271d1207000000000000000000000000000000000000000000000000000c17232e3846535e6975828f9ca8a69e9c9ea6ac9f92867a6d6054473d3221160c020000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e02000000000000000000000000000000000000000000000000000610181f282f35393a3f43454645433f3a3936302a251f191f282f35393a46464644433f39322920160b000000000000000000000a16212d38424c545a5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5a544c42382d21160a00000000000000000000000005111d29343f48505658606060606056544f473d32271b131f2b36404a52585a606060605d5b554d43393d464e5456606060605c5a544c42333d4751595e5f6060606057554f473e33281c100400000000000008141f2b36414a52585a6060605f5e514b43392f2418212d38424c545a5c6060605e5c574f4533291f1409000000000000000000000000000000000000000000000000000613202c3945515d677679797979797979736e63574b3f3226190c00000000000000000000000000000000000000000000000000000000000000000003101c2835414c5761696c6c6c6c6c6c6c6c6c5c554b4034291c100400000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a93939393939184776b5e5144382b1e110613202c3946535f6c7986929393939393877a6d6154473a2e211407111e2a3744515d6a77849093939393938a7d7064574a3d3124170a00000000000000000000000000000000000810181f25292b2c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2c2b2b2928272522201f1c1813120f0b06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e171f252a2d2e39393939393939393932312e29231b1309000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d151b21272c3035393a3f4446484b4d4e505152525352525151504e4d4b494644403b3a36312b27221b140b08010000000000000000000000000000000000000000050f18222b353e48515b62656c6c6c6c6c6c6c6c6b615e574d433a30261c1309000000000000000000000000000000000000030e1a26313b45515d676f7c87929fa4aea9a19791867e756e68615e575653514a4e4e4d4e4e4b515356575f62696e767f879298a2aaafa39992857c6e655b50443a301f150b010000000000000000000000000000000000000000000000000006111c2a36424d5763707d8a96a1acaaa8aab0a79b8e8174685d5245392c201304000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e020000000000000000000000000000000000000000000000000000060d161d24292c2d323639393836322e2d2a251e19140d161d24292c2d3939393736332e2820170e04000000000000000000000d1926323e49545e666969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969665e54493e3226190d0000000000000000000000000915212e3a45505a62656c6c6c6c6c6360594f43382c1f1723303c47525c64676c6c6c6c6a675f554a3f434e5860626c6c6c6c69655e54453b424e59636a6c6c6c6c6c6361594f44382c2014070000000000000b1724303c47525c64676c6c6c6c6a5d554b4035291d25323e49545e66696c6c6c6b686157453b31251a0e020000000000000000000000000000000000000000000000000714202d3a4753606d7986868686868686807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000005121e2b3844515d6973787979797979797976675c5145382c1f130600000000000000000000000000000000000000000000000000000000000b1724313e4a5764717e8686868686868684776b5e5144382b1e110613202c3946535f6c7987868686868686867a6d6154473a2e211407111e2a3744515d6a7783868686868686867e7064574a3d3124170a000000000000000000000000000000000000060d14191c1f1f202020202020202020202020202020202020201f1f1f1e1d1b1a18161313100c070503000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d14191e20212c2d2d2d2d2d2d2d2d2524221e1811090100000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f161b1e25292d2d3337393b3e40424344454646464545444342403e3c3a38342e2d2a261f1b17110a020000000000000000000000000000000000000000000000061019232c363f4951565860606060606060605e54524d453b31281e140a010000000000000000000000000000000000000009141f2935404b55606a717e8b929ca4afa9a198928a817b746e696562605c545b5a5a5a5b545c6063666a6e747b828b9299a2aaaca49f92877d706a5f53493f32281e0d030000000000000000000000000000000000000000000000000003090e1a25313b4653606c7884919e9f9f9f9f9fa095897c6f63564c4135291d1109030000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e02000000000000000000000000000000000000000000000000000000040c13181d2021262a2c2c2b292521201d19130e09040c13181d20212d2d2d2b2a27221d160e0500000000000000000000000f1c2935424e5a6670767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767670665a4e4235291c0f0000000000000000000000000b1724313d4a56626c7179797979796f6b6054483b2f221a26333f4c58646e74797979797771675b4f424754606a6f79797979767065574d4245525e6a757979797979706b6155483c2f2316090000000000000d1a2633404c58646e747979797975675d5145392c1f2835414e5a667076797979787368574d42362a1e12050000000000000000000000000000000000000000000000000714202d3a4753606d7a8693939393938c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c788586868686868686796d6053473a2d20140700000000000000000000000000000000000000000000000000000000000a1723303c4955616c71797979797979797772675c4f43372a1d1106121f2c3845525e6a75797979797979797976685e5246392d201307101d2a36434f5b67717779797979797979706c6155493c3023160a0000000000000000000000000000000000000002080d1012131313131313131313131313131313131313131313121211100f0d0b09070604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080e111414202020202020202020191816120d060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f13191d2022272b2d2f313335363838393939383837373533312f2d2c2823211e1a140f0b06000000000000000000000000000000000000000000000000000007111a242d373f464a4c5353535353535353524846423b33291f160c020000000000000000000000000000000000000000030c18242f39434e58626d73808d929fa4acaaa29f938e86807b76726f6d6669686767676869666d6f72777b81868f949fa3ababa39a938c7f726b61584e41382d20160c00000000000000000000000000000000000000000000000000050d141a1e212b3844505b66737f8c999393939393939084776b6054443a30241e1a140d0500000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e020000000000000000000000000000000000000000000000000000000001070d111314191d1f201f1d191413110d0802000001070d1113142020201e1d1b17110b04000000000000000000000000101d293643505c6976828383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838276695c504336291d100000000000000000000000000b1825323e4b5865717e86868686867d6f6356493c30231a2734414d5a6774808686868683776a5d51404b55626f7c868686868276695e534646535f6c7987868686867d7063574a3d3024170a0000000000010e1b2734414e5a67748086868687796d6053473a2d202936434f5c6976828686868578695e53463a2d2114070000000000000000000000000000000000000000000000000714202d3a4753606d7a86939f9f9f998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929393939393867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000814212d3945505a61646c6c6c6c6c6c6c6b6760564b3f33271b0e04111d2a36424e59636a6c6c6c6c6c6c6c6c6c5e564c41362a1d11050e1a27333f4a555f676a6c6c6c6c6c6c6c64615a5044392d201408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507081313131313131313130c0b090601000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d1113171b1f20222427282a2b2c2c2c2c2c2b2b2a28262423201f1c1814120e0903000000000000000000000000000000000000000000000000000000000008121b252d343a3e3f4646464646464646453b3a36302921170d040000000000000000000000000000000000000000000007121d27313d46505a636e73808c939aa1a9aea59e98928d87837f7c79777674747474747677797c7f83888e92999fa6afa8a09992887f726d62594f463c2f261b0e04000000000000000000000000000000000000000000000000050f171f252a2d2e333f4a54616e7a8786868686868686867f7265594f43322e2d2a251f170f05000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e02000000000000000000000000000000000000000000000000000000000000010406070c10121312100c070705010000000000000104060713131311100e0b06000000000000000000000000000013202d394653606c79868f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f86796c605346392d20130000000000000000000000000b1825323e4b5865717e8b939393897c6f6356493c30231a2734414d5a6774808d93939084776a5d5145515d6774818e939393877b6e61544a3f535f6c79869293938a7d7063574a3d3024170a0000000000000b1825313e4b5864717e8b9399897c6f6356493c30232633404d596673808c9397877b6e6154483b2e2115070000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0aca6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929f9f9f9f93867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000004111c28333e48505557606060606060605e5c564e44392e23170b010e1a26313d4751595e5f606060606060605f524c443a3025190d010b17222e39444d555b5d60606060606060575550483e33281c1004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105060b0f121315181a1b1d1e1f1f201f1f1e1e1d1b1a18161312100c070502000000000000000000000000000000000000000000000000000000000000000009131b23292e31323939393939393939382e2d2a251f170f050000000000000000000000000000000000000000000000010b151f2b343f48525c646e737f8892979ea5acaaa29f9a93908c898684828181808181828486898c90959b9fa3ababa39f9691877e726d635b51473e332a1d140a000000000000000000000000000000000000000000000000030d17212931363a3b464646525e686e797979797979797979726d62564746463b3a36312921170d030000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013202d394653606c7986939c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9386796c605346392d20130000000000000000000000000b1825323e4b5865717e8b989f96897c6f6356493c30231a2734414d5a6774808d9a9d9084776a5d514753606d7a85929fa4998c8073665c5044535f6c7986929f968a7d7063574a3d3024170a0000000000000915222f3c4855626f7b8898988c7f7265594c3f302424303d4a5763707d8a96978a7e7164574a3e2e23180c0000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabaca093867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000c17222c363e45494a53535353535353514f4b443c32281d1206000915202b353f474e5253535353535353535346413a32281e13080006111d27323b444a4f51535353535353534a49443e362c22170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003060809131313131312070705010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105090b0b1313131313130d0d0b07070b0d0d1313131313130b0b09050100000000000000000000000000000000000000000000000000000000000000000000030506080b0d0f101112131313121211100f0d0b09070604000000000000000000000000000000000000000000000000000000000000000000000000010911181e2224252d2d2d2d2d2d2d2d2b21201e1a140d0500000000000000000000000000000000000000000000000000030d19222d36404a525c646d727d858f939da0a7acaca49f9c989892918f8e8d8d8d8e8f919299999da0a7acaca49f99928d847d716c635b51493f352c21180b0200000000000000000000000000000000000000000000000009141f29333b4246485353534d565e616c6c6c6c6c6c6c6c6c65625b515353534846423b33291f14090000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e02000000000000000000000000000000000000000000000000000000000000000003070b0d0e13131313131312100d0a06050300000000000000000000000000000000000000000000000000000013202d394653606c7986939f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9386796c605346392d20130000000000000000000000000b1825323e4b5865717e8b98a296897c6f6356493c30231a2734414d5a6774808d9a9d9084776a5d514e5764717e8b98a2ab9e9184796d605346535f6c7986929f968a7d7063574a3d3024170a0000000000000613202d394653606c7985929b8e817568564c413529212e3a4754616d7a87969a8d807467544b4034281c100400000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000005101a242c33393c3e4646464646464644433f39322a20160c0100040f19242d353d42454646464646464646463936302820160c0200000b16202932393f4344464646464646463d3c39332c231a100500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f12151520202020201f1413110d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c111517182020202020201a1917131317191a202020202020181715110c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060d1216181920202020202020201f1514120e090200000000000000000000000000000000000000000000000000000007101b242e38404a525b636b707a828990959c9fa4abaca9aaa39f9d9c9b9a9a9a9b9c9d9fa3abaaababa39f9a938f8780796f6b615a51493f372d231a0f06000000000000000000000000000000000000000000000000020e1a25313b454d535f6060606060605d5f60606060606060605c6060606060605f534d453b31251a0e0200000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e0200000000000000000000000000000000000000000000000000000000000001080e13171a1a20202020201f1e1d1a1613120f0b060000000000000000000000000000000000000000000000000013202d394653606c798693939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939386796c605346392d20130000000000000000000000000b1825323e4b5865717e8b98a296897c6f6356493c30231a2734414d5a6774808d9a9d9084776a5d51535f6a7683909caaa9a1978a7d7064574d535f6c7986929f968a7d7063574a3d3024170a00000000000006121f2b3844505b6676838f9c918477685d5246392d202d3946525e687884919d908376665c5145382c1f130600000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000008121a22282d3031393939393939393837332e2820180e0400000008121b242b31363839393939393939392e2d2a251e160e05000000040e1720272e3336373939393939393931302d28221a110800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060e151b1f21222c2d2d2d2d2c21201d19130c04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000911181d2124252d2d2d2d2d2d2726231f1f2326272d2d2d2d2d2d2524211d1811090000000000000000000000000000000000000000000000020608080b0e1011121313131312100f0d0a0706040100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000106090b0c1313131313131313120807050200000000000000000000000000000000000000000000000000000000000009121c262e384049515961686e757d83898f93999c9fa2aaa7a8aaa9a7a7a7a7a7a9a9a8a6a9a19e9b99928e87827c736d67605950483f372d251b11080000000000000000000000000000000000000000000000000005121e2a36424d575e6c6c6c6c6c6c6c6a665f55535353545e66696c6c6c6c6c6c6c5e574d42362a1e120500000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e020000000000000000000000000000000000000000000000000000000000020b12191f2326272d2d2d2d2d2c2b2a2723201f1b17110a02000000000000000000000000000000000000000000000013202d394653606c798686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686796c605346392d20130000000000000000000000000b1825323e4b5865717e8b98a296897c6f6356493c30231a2734414d5a6774808d9a9d9084776a5d4a54626e7b88949f9f9c9f9c8f8276695e53535f6c7986929f968a7d7063574a3d3024170a000000000000030f1c28333f4a546773808d9a96877a6d6154473a2e212a36414c566875818e9b9286796d6053463a2d20130700000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000810171c2123242d2d2d2d2d2d2d2b2a27231d160e06000000000009121920262a2c2c2d2d2d2d2d2d2d21201d19130c050000000000050e161d22272a2a2d2d2d2d2d2d2d2423201c1710080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006101820262b2e2f3939393939382e2d29251e160e04000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b22292e313239393939393934332f2b2b2f333439393939393932312e29221b1209000000000000000000000000000000000000000306090f121415181a1c1e1f1f20201f1e1d1c19171413100d0704000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141c262e373f474f565e616b70777d82878b8f9298989a9b9d9e9e9f9f9f9e9d9d9b999797928e8a86817b756f6a605d554f473e362d251c130900000000000000000000000000000000000000000000000000000714212d3a46535e69767979797979797771665b4f464e5a66707679797979797976695e53463a2d21140700000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e0200000000000000000000000000000000000000000000000000000000010b141d242b303334393939393939383734302d2b27221b140b080000000000000000000000000000000000000000000013202d3946535f6c767979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979766c5f5346392d20130000000000000000000000000b1825323e4b5865717e8b98a296897c6f6356493c30231a2734414d5a6774808d9a9d9084776a5d515c6673808d9a9f948f949f93877b6e61544a5f6c7986929f968a7d7063574a3d3024170a000000000000000b17222d3e4a5764717d8a9796897d7063564a3d302325303f4c5965727f8c9898897c6f6256493c2f23160800000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000050c11141717202020202020201e1d1b17120c0400000000000000080f151a1d1f20202020202020201413110d080200000000000000040b11171a1d1e20202020202020171614100b0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040e18222a31373a3c4646464646453a3935302820160c0200000000000000000000000000000000000000000000000000000000000000000000000000000006111b242d343a3d3e464646464646403f3b36363b3f404646464646463e3d3a342d241b110600000000000000000000000000000000040a0f13151a1f21222527292a2c2c2d2c2c2b2a28262320201d1813100c0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070a0d0f11121313131212100e0c0906060300000000000000000000000000000000000000000000000000000000000000020a141c252e353d444c525960636b70757b7e8285888b8d8f9091929292929191908e8c8a8885817d7a746e6a626058514b433d352c241c130a0100000000000000000000000000000000000000000000000000000815212e3b4854616e7b86868686868683776a5d50444f5c6976828686868686867b6e6154483b2e21150800000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0e020000000000000000000000000000000000000000000000000000000008121d262f363c3f414646464646464543403d3937332d261d1a110a010000000000000000000000000000000000000000121e2b37434f5a646c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c645a4f43372b1e120000000000000000000000000b1825323e4b5865717e8b98a296897c6f6356493c30231a2734414d5a6774808d9a9d9084776a5d53606d7985929e978f828f99998c8073665c505f6c7986929f968a7d7063574a3d3024170a000000000000000615212e3b4854616e7b8797998c7f7366594c40302523303c4956636f7c8999988b7f7265584c3f3025190d01060606000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000004080a0b1313131313131311110e0b060100000000000000000004090e11121313131313131313070705010000000000000000000000060b0e1011131313131313130a0a08040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a15202a343c4347485353535353524746413a32281e13080000000000000000000000000000000000000000000000000000000000000000000000000000010c18222d363f454a4b5353535353534d4c474040474c4d5353535353534b4a453f362d22180c0100000000000000000000000000040a0f151b1f21262b2e2f32343637383939393938373533302d2c29241f1c18120c0700000000000000000000000000000000000000000000000000000000000000000000000000000001070c10131416191c1d1f1f20201f1e1d1b191613120f0b06000000000000000000000000000000000000000000000000000000000000020a131c232c323b41464f54596063686e7276797c7e808283848585868585848382807d7b7974716d68625f58544e454039312b231a120a010000000000000000000000000000000000000000000000000000000815212e3b4854616e7b87939393939083776a5d50444f5c6976828f93939393877b6e6154483b2e21150800000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5a79b8e8174685b4e4135281b0709080603000000000000000000000000000000000000000000000000030e19242f3840474c4d53535353535251504d4946443f382f2b231c130a01000000000000000000000000000000000000000f1b27333e49525a5f60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060605f5a52493e33271b0f0000000000000000000000000b1825323e4b5865717e8b98a296897c6f6356493c30231a2734414d5a6774808d9a9d9084776a5d5764707d8a979e92857a86929e9184796d60535f6c7986929f968a7d7063574a3d3024170a000000000000030714212d3a46535e697885929b8f827568574d42362a202d3a4753606d7a86929b8e817568564c41362a1d11131313130b0b09050100000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b26313c464e53555f606060605f54524c443a3025190c030000000000000000000000000000000000000000000000000000000000000000000000000005111d29343f485056586060606060605a58524a4a52585a606060606060585650483f34291d1105000000000000000000000001070d161b20262b2e31373a3b3e4143444546464646454342403d3a39352f2c28231d18120b030000000000000000000000000000000000000000000000000000000000000000000000040a0f12181c1f202326282a2b2c2c2c2c2b2a282523201f1c17110f0a0300000000000000000000000000000000000000000000000000000000010a111a202930363d44484f54565e6165666d6f7174757778787979787877767573716f6d6664605d56534e47433c352f271f19110800000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b87949f9f9d9083776a5d50444f5c6976828f9c9f9f94877b6e6154483b2e21150800000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5a89b8e8275685b4f422f2418191615130f0a040000000000000000000000000000000000000000000007131f2b36404a52585a60606060605f5e5d5a56535049413d352e251c130a000000000000000000000000000000000000000a16212c3740494f535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353534f4940372c21160a0000000000000000000000000b1825323e4b5865717e8b98a296897c6f6356493c30231a2734414d5a6774808d9a9d9084776a5d5e6975828f9c9a8d8075828f9b978a7d7064575f6c7986929f968a7d7063574a3d3024170a0000000001090f14181e2a36424d576975828f9c918578695e52463a2d202c3845515d677783909d918477685e5246392d202020202020181715110c06000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0e1111131313131313131308070502000000000000000000000105090b0c13131313131313130f0e0c08040000000000000000000000000000000000000000000000000004090c0e0f131313131313130c0b09060100000000000000000000000000000004090c0e0f1313131313131310060503000000000000000006121f2b37434e585f626c6c6c6c6c6b615e564c4135291e150b000000000000000000000000000000000000000000000000000000000000000000000000000915212e3a45505a62656c6c6c6c6c6c67645c52525c64676c6c6c6c6c6c65625a50453a2e21150900000000000000000000040c131820272b32373b3c4347484b4d4f51525253535251504f4c4a4745403a38342e28231c150c070000000000000000000000000000000000000000000000000000000000000000040a0f161b1d23292c2d303335373839393939383635322f2d2b28221c1b150e090300000000000000000000000000000000000000000000000000000000080e171e252a32383d44484d5254545c60626567686a6b6b6c6c6c6b6a6a68666462605c5454524c47433c373229241d150d070000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b8794a1aa9d9083776a5d50444f5c6976828f9ca9a194877b6e6154483b2e21150800000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5a99c8f827669554b403529252522221f1b150e070000000000000000000000000000000000000000000b1723303c47525c64676c6c6c6c6c6c6b6a6763605b534f473f372e251c100700000000000000000000000000000000000005101b252e373e4346464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646433e372e251b10050000000000000000000000000b1825323e4b5865717e8b98a296897c6f6356493c30231a2734414d5a6774808d9a9d9084776a53616e7b87939f95887c707d8a979c8f8276695e5f6c7986929f968a7d7063574a3d3024170a000000030b131a2024272531404c5966737f8c9997877b6e6154483b2e2d2935404b556774818d9a96877a6d6154473a2e2d2d2d2d2d2d2524211d1811090000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000000040b12171b1d1e20202020202020201514120e090300000000000000060c1115171820202020202020201b1b18140f090100000000000000000000000000000000000000000002091015191b1c20202020202020191816120d0700000000000000000000000002091015191b1c202020202020201c13120f0b060000000000000815212e3a47535f6a6f7979797979786d685e52463d30271c12070000000000000000000000000000000000000000000000000000000000000000000000000b1724313d4a56626c71797979797979736e645858646e73797979797979716c62564a3d3124170b000000000000000000060d161d242932383c4347494e5355585a5c5d5f5f605f5f5e5d5b595653514b46454039342e271e191009010000000000000000000000000000000000000000000000000000000000060b151b21272c2f34383a3d40424445464646454543413f3c3938332d2b26201a150b0600000000000000000000000000000000000000000000000000000000050d141921272c33383b4146474a505355585a5c5d5e5f5f5f5f5e5e5d5b59575553504a4745413a37312b272018120b03000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b8794a1a99d9083776a5d50444f5c6976828f9ca9a194877b6e6154483b2e21150800000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4aa9e918477675d5145392f32322f2e2b262019100700000000000000000000000000000000000000000d1a26333f4c58646e74797979797979787673706c656059514940372e22190f0400000000000000000000000000000000000009131c252c33373939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393937332c251c1309000000000000000000000000000b1825323e4b5865717e8b98a296897c6f6356493c30231a2734414d5a6774808d9a9d9084776a5b65737f8c999d9083766d7985919e93877b6e615f6c7986929f968a7d7063574a3d3024170a0000010b151d252b303435393d4a5763707d8a96978a7d7064574a3d2d39392f3e4b5864717e8b97968a7d7063574a3d2d39393939393932312e29221b120900000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000060e161d23272a2b2d2d2d2d2d2d2d2d22211e1a140e0600000000000911181d2224252d2d2d2d2d2d2d2d282724201a130b0300000000000000000000000000000000000000030c141b212528292d2d2d2d2d2d2d2625221e18110901000000000000000000030c141b212528292d2d2d2d2d2d2d29201f1b17110a02000000000915222f3c4855626f7c8786868686857a6d61594f42392e23180c0300000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8686868686868073675a5a6773808686868686867e7165584b3e3225180b0000000000000000060f181f282f353d43474e5355585f626567696a6b6c6c6c6c6b6a686663605d5553514b444039302b221b130b020000000000000000000000000000000000000000000000000000020a111720262b323839404547494c4f50525253535251504e4c4946443f3837312b262017110a0200000000000000000000000000000000000000000000000000000002080e161c21272c3036393b3f4446494b4d4f5051525253525251504f4d4a4846443f3a39352f2b26201b150c070100000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b87949c9c9c9083776a5d50444f5c6976828f9c9c9c94877b6e6154483b2e21150800000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a97acac9f93867a6d605347403f3f3f3c3b37322a22190e04000000000000000000000000000000000000000e1a2734414d5a6774808686868686858483807d78706b635b514940342b20160a000000000000000000000000000000000000010a131b21272b2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2b27211b130a01000000000000000000000000000b1825323e4b5865717e8b98a296897c6f6356493c30231a2734414d5a6774808d9a9d9084776a606c7884919e988b7e716673808d9a998c8073665c6c7986929f968a7d7063574a3d3024170a000009131d272f373c404146464754616d7a8796998d80736653493f46464646464855626e7b8898998c807366544a3f464646464646463e3d3a342d241b1106000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000000000e1820282e33363839393939393939392e2d2b261f180f0600000009121b23292e313239393939393939393534312c251d150b000000000000000000000000000000000000020c151e252c3134353939393939393932312e29231b13090000000000000000000c151e262c31343539393939393939362d2b27221b140b020000000815212e3a47535f6a73808d9693978e81746b60544a4034281f140900000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b939393938d8073675a5a6773808d939393938b7e7165584b3e3225180b00000000000000061018212a313a40454e54585f62676a6e71747677787979797978767573706d6764605c54514a423d342d251d140b01000000000000000000000000000000000000000000000000040b141c222832373d43484b515356595b5d5e5f5f5f5f5e5d5b585653504a47433c373127221b140b0300000000000000000000000000000000000000000000000000000000050b10161c1f252a2d2e34383a3c3e414244454546464545444342403e3c3a38342e2c29241e1a150f0a04000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b878f8f8f8f8f83776a5d50444f5c6976828f8f8f8f8f877b6e6154483b2e21150800000000000000000000000000000000000000000000000000000a1623303d495663707c899aa4afa4998a7e71645b514b4c4c4c4947433c342a20150a000000000000000000000000000000000000000e1a2734414d5a6774808d939393989291908d89837d726d635b51463d32271b0f04000000000000000000000000000000000000010910161b1e202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020201e1b1610090100000000000000000000000000000b1825323e4b5865717e8b98a296897c6f6356493c30231a2734414d5a6774808d9a9d9084776a63707d89969f92857a6d626f7b88959e9184796d606c7986929f968a7d7063574a3d3024170a00030f1a252f3941484d4e535353525e687884919c8f8276655b505353535353535353606c7985929c8f8276665b5053535353535353534b4a453f362d22180c010000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000000060f202a32393f434446464646464646463b3a37312a21180e030006111b242d343a3d3f464646464646464642403d372f271d0b02000000000000000000000000000000000009141e2730373d4142464646464646463f3e3a352d251b0f060000000000000008121e2730373d414246464646464646433937332d261d140a00000006121f2b37434e58606d7984919e9f93887d6f665c51443b31261a0d04000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b989f9f9a8d8073675a5a6773808d9a9f9f988b7e7165584b3e3225180b000000000000050e18222a333c434b515860626a6f74787b7e80828485858686858483827f7d7a76716d66605c544e463f372e261d130a0000000000000000000000000000000000000000000000040d161d262d333c43474f54555c606366686a6b6c6c6c6c6b69686562605b54534e47423c332d261d150d030000000000000000000000000000000000000000000000000000000000050b1014191e2023282c2d2f3234353738383939393837373533312f2d2b2823201d19130f0a030000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8283838383828074675a4e414d5a6673808283838383827a6e6154473b2e21140800000000000000000000000000000000000000000000000000000714212d3a4754606d7a86939facab9c9083766d605d5559585855544e463c32261b0f030000000000000000000000000000000000000e1a2734414d5a6774808d9a9f9fa29f9e9d9a9590887f726d63584e43372b20150a0000000000000000000000000000000000000000050a0f1213131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313120f0a05000000000000000000000000000000000b1825323e4b5865717e8b98a296897c6f6356493c30231a2734414d5a6774808d9a9d9084776a6875818e9b9a8e8174675f6a7683909d978a7d70646c7986929f968a7d7063574a3d3024170a000814202b37414b53595b60606060566875828e9b9285796c606060606060606060605b6576838f9c9285796c60606060606060606060585650483f34291d11050000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000030d1821323c444b4f5153535353535353534846423c332a1f1409010c18232d363f454a4b53535353535353534e4d4841392f1d140a0000000000000000000000000000000004101b25303942494d4f535353535353534c4a463f372d21180b020000000000050e1a24303942494d4f535353535353534f46443f382f261b11060000030f1b26313c45515d67707d8a939e9a9183786d60574d42362a1f160c010000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b0000000000020b17202a343c454d555d606a6f767c8084888b8d8f90929293929291908e8c8986827e79726d666058514940382e251c1108000000000000000000000000000000000000000000030c161f282f383f444e54596063676d707375777879797978787674726f6c66625f58534d443f382f271f150d0300000000000000000000000000000000000000000000000000000000000002080e1114171c1f20222527292a2b2c2c2c2c2b2b2a28262422201f1c1713110d080100000000000000000000000000000000000000000000000000000000000000000000000000000714202d3946525e686e767676767676746e64584c404b58636e737676767676766e685e5246392d20140700000000000000000000000000000000000000000000000000000713202c3945525d687784919dabab9f948b7f736d6766656565625f584e43372b1f13060000000000000000000000000000000000000e1a2734414d5a6774808d98989a9c9fa3aba7a09a938c7f726a6054473d32271b0f0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a296897c6f6356493c30231a2734414d5a6774808d9a9d9084776a6d7a86929f95897c6f635865727e8b989c8f8276696c7986929f968a7d7063574a3d3024170a000c1824303c48535d64686c6c6c6c6c6c727f8c9897887b6e6c6c6c6c6c6c6c6c6c6c6c6c73808d9998887b6f6c6c6c6c6c6c6c6c6c6c65625a50453a2e2115090000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000009141f2933444e565c5e606060606060606055534d453c31261a0e05111d29343f4851565860606060606060605b59534b412f261b11060000000000000000000000000000000915212c37424b53595c60606060606060595651493f332a1d140a00000000020d17202c36424b54595c606060606060605c53504941382d22170b0000000a15202935404b55616b75818e98a0958c7f72695f53463e31281e13080000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b00000000000a141d29333c464e575f676d747c82888d9196989a9c9d9e9f9f9f9f9e9d9b9999928f8a847f786f6a625b524a40372e231a0e0500000000000000000000000000000000000000000b151e283139424a50585f626b6f75797d7f828385858686858483817f7c79746f6a625f575049413931271f150b01000000000000000000000000000000000000000000000000000000000000000205060c10121316181a1c1d1e1f1f201f1f1e1d1c1a17151312100b0604010000000000000000000000000000000000000000000000000000000000000000000000000000000005111e2a36414c565e6169696969696967645c52473c47525c6366696969696969615e564c41362a1e1105000000000000000000000000000000000000000000000000000004111d2935414c566673808d99a3afa69f9388807a75737272726f6a5f54473b2e2215080000000000000000000000000000000000000e1a2734414d5a6774808b8b8c8d9092999ea5aca49f92877c6f62584e43372b1f130600000000000000000000000000000000000000000000000000000000000000000000000000000000060b0e101113131313131313110605030000000000000000000000000000000000000000000000000000000000000000000000000001040707131313131313131308070502000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a296897c6f6356493c30231a2734414d5a6774808d9a9d9084776a727f8b989d9184776b6054606d7a86929f93877b6e6c7986929f968a7d7063574a3d3024170a000e1a2734404d59646f74797979797979797d8996978a7e79797979797979797979797979797e8a97988b7e7979797979797979797979716c62564a3d3124170b0000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000020e1a26313b455660676b6c6c6c6c6c6c6c6c6c5f574d42372b1e120915222e3a45515b62656c6c6c6c6c6c6c6c68655d5341382d22170b0000000000000000000000000000000c1925313d49535d65686c6c6c6c6c6c6c65625b51453c2f261c110600000008141e29323e48545d65686c6c6c6c6c6c6c69605b53493f33271b0f030000040c18242f39434f59616e7b85929f9f92867b6e615a50433a2f24190c0200000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b0000000006111b262f3b454e585f696e7981878f949a9ea1a8a7a9aaaaaaa9a9aaaba9a8aba39f9c97918c847c726d645c524940362c20170c0200000000000000000000000000000000000007121d273039434b545b606a6f767c8185898c8e90919292929291908e8b8985817c756e69605b534b433931271d12070000000000000000000000000000000000000000000000000000000000000000000000030607090b0e0f1112121313121211100f0d0b090706030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d1925303b444c52545c5c5c5c5c5c5a58524a4136404a52585a5c5c5c5c5c5c54524c443b3025190d010000000000000000000000000000000000000000000000000000010d1924303b4854616e7b87929fa7afa49a938d8582807f7f7f7c6f6255493c2f221609000000000000000000000000000000000000091623303c4956636f7d7f7f7f8083868f939ea5afa3999083766a6054473b2e2215070000000000000000000000000000000000000000000000000000000000000000000000000000040b11171b1d1e202020202020201e13120f0b0600000000000000000000000000000000000000000000000000000000000000000002080d11131420202020202020201514120e090300000000000000000000000000000000000000000b1825323e4b5865717e8b98a296897c6f6356493c30231a2734414d5a6774808d9a9d9084776a7783909d998c7f726559515d6774818e9a998c8073667986929f968a7d7063574a3d3024170a000e1b2835414e5b68748186868686868686898f999a908a86868686868686868686868686868a909a9b908b86868686868686868686867e7165584b3e3225180b0000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d57677277797979797979797976695f53463a2d21140b1724313d4a56626d727979797979797979756f6553493f33271b0f0300000000000000000000000000020e1b2834414d59656f7579797979797979726d62574d42382d22170b0200050e1925303b44505a656f7579797979797979766c655b5044372b1f120500000007121d27313e46525e69727f8b959f988f82756c61554c4135291e140a00000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000000000b17222d38414d575f6a6f7b848e939a9fa6abacaaaaa39f9e9d9c9c9d9ea1a9a7acaca9a19e9691877f746e645b52483e32291e13080000000000000000000000000000000000040d18232e39434b555d666c737c83898e9298999b9d9e9f9f9f9f9e9c9b9897918d88827b736c655d554b43392f24180e0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008141e29323b4146475050505050504e4c4741382f3840474b4d5050505050504746413b32291e1408000000000000000000000000000000000000000000000000000000000814212d3a46535e6974808d959fa7aca49f98928f8d8c8b8b7f7266594c3f3326190c0000000000000000000000000000000000000915222f3b4854606b6f72727273767b818e939ea9ab9f95897c6f6256493c2e23180c00000000000000000000000000000000000000000000000000000000000000000000000000050e161d22272a2b2d2d2d2d2d2d2d2b201f1b17110a02000000000000000000000000000000000000000000000000000000000000040c13191d20212d2d2d2d2d2d2d2d22211e1a140e06000000000000000000000000000000000000020b1825323e4b5865717e8b98a296897c6f6356493c30231a2734414d5a6774808d9a9d9084776f7c88959f92867a6d61544b55626f7c89959e9184796d7986929f968a7d7063574a3d3024170a000e1b2835414e5b6874818e9393939393939699a1a29a979393939393939393939393939393979aa2a29b98939393939393939393938b7e7165584b3e3225180b0000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000714212d3a46535f69778486868686868686867b6e6155483b2e2215091825323f4b5865727f86868686868686868175655b5044372b1f120500000000000000000000000000020f1c2935424f5c687582868686868686867f72695f544a3f33281d140a020c17202a36414c56616c75818686868686868682796c605346392d201306000000010b151f2a36424d56606c788390999e948a7e71675d51453c30261c1106000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000000030f1b27333f49535e696f7c8591969fa4acaca7a09d98989291908f90909197979b9fa2aaada8a099928c80746e635a50443a3025190d03000000000000000000000000000000010c161f2834404b555d676d78808790949b9fa2a9a29e9c9b9a9a9b9d9fa3a9a19e9a948f877f776d675d554b40352920170d02000000000000000000000000000000000000000000000000000000000000000000030607090b0d0f1111121313121211100f0d0a08070502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020d1720293036393b43434343434341403c362f262e353b3f404343434343433b3936302920170d020000000000000000000000000000000000000000000000000000000005121e2a36424d57606d798390959fa2aaaaa29f9b9998988c7f7266594c3f3326190c00000000000000000000000000000000000007131f2c38434f59606365656567696e78818e97a1ada79a8d807467554b4034281c10040000000000000000000000000000000000000000000000000000000000000000000000000e1720282e33363739393939393939382d2b27221b140b0200000000000000000000000000000000000000000000000000000000040e161e24292c3939393939393939392e2d2b261f180f0600000000000000000000000000010507070f0f1825323e4b5865717e8b98a296897c6f6356493c30231a2734414d5a6774808d9a9d90847774808d9a9b8e8275685e524754606a7783909d978a7d707986929f968a7d7063574a3d3024170a000e1b2835414e5b6874818e9b9f9f9f9f9f9fa0acafa6a49f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa0a3a8a6a49f9f9f9f9f9f9f9f9f988b7e7165584b3e3225180b0000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000121f2c3945525f6c7885929fabada093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b88969393939393938b7e7165584b3e31261a121e2a36424d576875818e9393939393939285786c605346392d20130800000000000000000000000000000714212e3a4754616d7a85919393939392867b6e665b50443c2f261c1108131e29323a46525e68717e8a939393939392857a6e655b5044372b1f120500000000030d1925303b44505b666f7c87929f9e91847a6d60584e42382e23170b020000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b00000005121f2b3744505b656e7b849197a0a8afa7a09d95908b8885848383838485878a8e92989fa3ababa39f928c80736c61564c41362a1f140900000000000000000000000000000008131e28313a45515c676d79828d92999fa6a39f9a97928f8e8d8e8e9092989b9fa3a69e99928c82796d675d51453f32291e140800000000000000000000000000000000000000000000000000000000000104060b10121315171a1c1d1e1f1f201f1f1e1d1b19171514120e09060300000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e171e252a2d2e3636363636363433302b241d242a2f32333636363636362e2d2a251e170e050000000000000000000000000000000000000000000000000000000000020e1a25313b45515c676d7a838c92989b9d9e9fa39f9f998c7f7266594c3f3326190c000000000000000000000000000000000000030f1b27323d474f5456585859575e666d7a85929eabaa9d908377675c5145382c1f130600000000000000000000000000000000000000000000000000000000000000000000000711202932393f434446464646464646443937332d261d140a000000000000000000000000000000000000000000000000000000020c1620283035394646464646464646463b3a37312a21180e030000000000000000000002080d1113141c1c1c25323e4b5865717e8b98a296897c6f6356493c30231c2734414d5a6774808d9a9d9084777985929e96897d7063564c434e5865727e8b989c8f82767986929f968a7d7063574a3d3024170a000e1b2835414e5b6874818e93939393939393939fa3a59d9b939393939393939393939393939394979ea49d9a9393939393939393938b7e7165584b3e3225180b0000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d000000000000000000000000000000000000000000000000000000000000000000030d152c3945525f6c7885929fabada093867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a5465727e8b98a89f9f9f9f9b8e817568574d42372b1e14212d3a46535f697884919e9f9f9f9fa197887c6f6255493c2f24190d01000000000000000000000000000713202d3946525e68707d8a929da8a2989083786c60574d42382d22170e1925303a44505a616e7a85929ea5a89d938a7d70685e53493f33271b0f03000000000009141f28333f4a545f6a74808d96a1978d80746a60544a3f34281f14090000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000004101c2834404a54606c77828f96a1a9aea49d959189837f7c797777767677787a7d81868c9299a0a8afa49c928a7e70685e52463b31251a0e0000000000000000000000000000010d19242f3a43505a606d79828f949fa3a7a099928e898583818181828386898e92999fa7a39f948f82796d605b51443b3025190e02000000000000000000000000000000000000000000000000000001070d1113171c1f20222426292a2b2b2c2c2c2b2b2a28262422211e1a1312100c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d14191e20212929292929292726241f1a13191f23262729292929292921201e19140d050000000000000000000000000000000000000000000000000000000000000009141f2934404b555e686d7980858b8e909192999393938c7f7266594c3f3326190c000000000000000000000000000000000000000a16212b353d4348494c4c4c4d545d6873808c99abac9f9286796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000050f1923323b444b4f51535353535353535146443f382f261b1106000000000000000000000000000000000000000000000000000008131e28323a41455353535353535353534846423c332a1f1409000000000000000000040c13191d202128282828323e4b5865717e8b98a296897c6f6356493c3028282834414d5a6774808d9a9d9084777d8a979e9184786c6053463d4754606d7a86929f93877b7986929f968a7d7063574a3d3024170a000e1b2835414e5b68748186868686868686868692999d938e8686868686868686868686868686878c979d928d868686868686868686867e7165584b3e3225180b0000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000010b151f2935414c566c7885929fabada093867a6d6053473a2d20160c0200000000000000000000000000000000000000000000000000000000000000000006121f2c3844505c6675828f9ba8acabacab9e918578695f53473a2e2115222e3b4855616e7b8896a1adacaaaca9998c7f7366564c4135291d11040000000000000000000000000005111d2a36414c56616b74808d96a0aa9f948b7f72695f544a3f33281d16202a36414c56616c75818f97a1aba0968e81746c61564d41382d22170b000000000000020b17222d38424e58606d7984919e9f93877c6f665c50443b30251a0d0300000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000006121f2c3844515c66717e8b949fa9afa59d928d837d77726f6d666a69696a696e70747a80879196a0a8aea49e92857a6d61574d42362a1c11060000000000000000000000000004111d2935414c56616c74818e949ea6a69f959087817c79767474747577797d818790959ea5a69e948e81756d62564c41362a1e140800000000000000000000000000000000000000000000000003090e13181d2023282b2d2f3133353737383939393837373533312e2d2a26201f1c17110d08020000000000000000000000000000000000000000000000000000000000000000000000000000000002080d1114141d1d1d1d1d1d1b1a17140e080e1317191a1d1d1d1d1d1d1414110d08020000000000000000000000000000000000000000000000000000000000000000030c18232f39434c565e676d737a7e8184858686868686867f7266594c3f3326190c00000000000000000000000000000000000000040f19232b32383b3c3f3f3f424c56626f7c8899a3aea399877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000000b16212b35444d565b5e606060606060605e53504941382d22170b00000000000000000000000000000000000000000000000000010d1924303a444c525f606060606060606055534d453c31261a0e0200000000000000040e161e24292d2e35353535353e4b5865717e8b98a296897c6f6356493c3535353535414d5a6774808d9a9d908477828e9b9a8c8073665b50443945515d6774818e9a998d807986929f968a7d7063574a3d3024170a000e1a2734404d59646f7479797979797979797987929b8e8179797979797979797979797979797a87969a8d8079797979797979797979716c62564a3d3124170b0000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d000000000000000000000000000000000000000000000000000000000000000007121d27313945525d687885929fabada093867a6d6053473e32281e13080000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7985929fa8a19ea1a8a197887b6e6255483b2f221825313e4b5864717e8b97a8a8a09ea0a89c908376685d5245392c20130700000000000000000000000000010d1925303a444f59606d79849199a3a69f92867b6e665b50443c2f261e28323a46525e68717e8a939ea9a3999184796d605a50443b2f261b11060000000000000006111c262f3c45515d67707d8a949e999083786d60574d42362a1f150b01000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b00000713202d3a4653606d7984919ea6b0a79d938d8079706b6562605c545c5d565e6164686d737c849196a0aaada2978e8174695e5346382e23170b000000000000000000000000000613202c3945525d68717e8a939da6a89f948f837c746f6c6668676768666d70757c838f939ea7a69e938b7f72685e52463b3025190d01000000000000000000000000000000000000000000040a0f151a1d24292c2e34383a3c3e404244444546464545444342403d3b3a36312d2c28231c19130d080200000000000000000000000000000000000000000000000000000000000000000000000000000000010507081010101010100e0d0b08030002070a0c0d10101010101008070501000000000000000000000000000000000000000000000000000000000000000000000007121d27313a444c555d60686d71747778797979797979726d63574b3e3225180c000000000000000000000000000000000000000007101921272c2f3032322f3a4653606d7986929facab95887b6f6255483c2f22150900000000000000000000000000000000000000000000000000000000000000000004101c27323d47565f676a6c6c6c6c6c6c6c6b605b53493f33271b0f0300000000000000000000000000000000000000000000000004111d2935414c565d6c6c6c6c6c6c6c6c6c6c5f574d42372b1e1205000000000000020c1620283035393a4242424242424b5865717e8b98a296897c6f635649424242424242414d5a6774808d9a9d90837a86929f93877b6e61544a3f35414c55626f7c89959e91847886929f968a7d7063574a3d3024170a000c1824303c48535d64686c6c6c6c6c6c6c677783909d918477686c6c6c6c6c6c6c6c6c6c6c687784919d908377676c6c6c6c6c6c6c6c65625a50453a2e2115090000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000030c18242f39434f59606d7a86929facaea194877b6e615a50443a3024190d030000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8998a2a1969196a1a9988b7e7265584b3f31261e2a36424d576874818e9ba9a0969196a09f92867a6d6054473a2d21140a000000000000000000000000000008131e28323e45515d676f7c87929fa6a2989083786c60574d42382d25303a44505a616d7a85929ea5a69f92877c6f675d51483e32291d140a0000000000000000000a141d2935414b55616c75828f98a0958b7f72695e52463e31271d1207000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b00030f1c28333f4a5464717d8a96a1acaca0958e81746d6760595553514a50504d5254565d606a6f7b849198a2aea99f92867b6e61544a3f34281c1003000000000000000000000004111d2935414c55606d7a85929ea5aca0968f82796e6a62605b545a5b545c60636a6e78818f959faba59f92857a6e61564c41362a1e11050000000000000000000000000000000000000000070c151b20262b2f35393a3f4446484a4d4f5051525253525251504e4c4a4846423d3a38342e29251e19140d05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b151f29323a434b51565d6064686a6b6c6c6c6c6c6c66635b51463a2f22160a000000000000000000000000000000000000000000070f161b1f222325252c3844515c667784919daaa296897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000713202c38444f5967717779797979797979776c655b5044372b1f14090000000000000000000000000000000000000000000000000713202c3945525d6876797979797979797976695f53463a2d21140700000000000008131e28323a4146474f4f4f4f4f4f4f5865717e8b98a296897c6f63564f4f4f4f4f4f4f484d5a6774808d9a9d90837e8b989c8f8276695e5342382f3a4754606a7783909d978a7d86929f968a7d7063574a3d3024170a000814202b37414b53595b606060606060556774818d9a96877a6d61606060606060606060566875818e9b9286796d6060606060606060585650483f34291d11050000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d000000000000000000000000000000000000000000000000000000000000000a151e2935404b55606b74818e98a3aeb5a89c8f82756c61564c4135291f150b0100000000000000000000000000000000000000000000000000000000000005111d2935414c566673808c99aa9e9184919eaa9b8e817568584e43372b202d3a46525e697784919ea1979184919ea3998a7d7164574a3e31261b0f0300000000000000000000000000020c16202935404b55606a737f8c949faa9f948b7f72695f544a3f332935414c56616c75818e97a1aa9f948c7f736a60554b40362c20170b02000000000000000000020b18242f3a43505a616e7b86929f9f92867b6e61594f43392f24180b020000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b0006121f2b3844505b6675828f9ba8b1a89d9083786d605c554f4946444043434246474c52585f696e7b86929fa8afa3998d8073665c5044382b1f120600000000000000000000000613202c3945515d6773808d97a1ada69e91847a6d675f5853504a4e4e4b5153585f666d79839099a3ada2978d8174685e5246392d201409000000000000000000000000000000000000030b121820262b31373a4145474a50535557595c5d5e5e5f5f5f5e5e5d5b595755534d4946443f3835302a251e170e080200000000000000000000000000000000000000000000000000000000000000000000000000000000000002080c1012121313131313131313060400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d172029313940454c5254585b5d5e5f6060606060595751493f352a1e120600000000000000000000000000000000000000000000040a0f131516191c2834404a546a7683909da9a296897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000916222f3b4854606b77838686868686868684776c6053463b30251a0e0000000000000000000000000000000000000000000000000714212d3a4754606d7a86868686868686867b6e6155483b2e2215080000000000010d1924303a444c52545b5b5b5b5b5b5b5b65717e8b98a296897c6f635b5b5b5b5b5b5b5b54535a6774808d9a9d918483909c978a7e7164574d422f2b37434e5865727f8b989b8e8187929f968a7d7063574a3d3024170a00030f1a252f3941484d4e5353535353535864717e8b97968a7d70635753535353535353535865727f8b9899897c6f63565353535353534b4a453f362d22180c010000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000006111c26303845515d67707d89939daab4b9aa9e948a7e71685d52463d31271d12070000000000000000000000000000000000000000000000000000000000000713202d3946525d687683909da8988c7f8c98a29e9185786a5f53473a2e212e3b4754616e7b8796a09e9285808c99ab9a8e817467584e43372b1f12060000000000000000000000000000050e18242f39434e58606d78839098a2a69f92867b6e665b50443c323a46525e68707e8a939ea9a2989083786d60584e43392f231a0e05000000000000000000000007131d28313e46535e69727f8c95a0988e81756b61554b4035291d140a0000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000613202d394653606c7985929fabaca095897d70665c514b433d3a38342e30363a3b41454e565e69727f8b96a0acab9e9185796d6053463a2d20130700000000000000000000000714212d3a4754606d7a85929fa9aa9e94897d70685d554e46443f41414045464e545c676f7c87929faca99f92867a6e6154473c31261a0e0200000000000000000000000000000000070c151d232831373c42474b5154545c60626466686a6a6b6c6c6c6b6a6a686664615f575653504a46413a3630292019130d0500000000000000000000000000000000000000000000000000000000000000000000000000000000060d13181c1e1f202020202020202013100c07010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e171f272f353a4145474b4e51525353535353534c4b463f372e23180d02000000000000000000000000000000000000000000000000030709090c18232e43505c6976838f9ca9a296897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000005111e2a36414c5663707d8995939393939396897d7063574d42362a1c110600000000000000000000000000000000000000000000000714202d3a4753606d7a86939393939393877b6e6154483b2e211508000000000005111d2935414c565d61686868686868686868717e8b98a296897c6f686868686868686868615e576774808d9a9f928690949e9285796d6053463b3127323d4754606d7a86929f928588939f968a7d7063574a3d3024170a000009131d272f373c404146464646464855626e7b8897998d807366544a3f46464646464956626f7c8998988c7f7265594c46464646463e3d3a342d241b1106000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000020b17232e38424e58606d7984919ea5afafacafa69e92857a6d61594f43392f24180c0300000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a86939fa096877a85929fa197887b6e6255483b2d22313e4b5764717e8a97a89b8f827d8a96a89e9184786a5f53473a2e21150700000000000000000000000000000007121d27313c44505c666e7b86929fa5a2989083786c60574d423a44505a616d7a85919ea5a59f92867b6e665c50463d31281d1108000000000000000000000000010c161f2a36424d57606d788390999e938a7d70675d51453c2f261b110600000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000815222f3b4855626e7b8897a2adaa9d9184776b60544a4039312d2c2823252a2d30353c444d57606c7884919eaaada197897c6f6356493c302316090000000000000000000005111e2a36424d5765727f8b98a2aea99c8f82756b60564c433c38332d2e34383c424b555f6a74818e9ba8aea3988c7f7266574d42372b1e12050000000000000000000000000000000810191e272e343c43474d53555d6064666d6f7173757777787979787877767573706e696763605c54524c46413b322a251e170e0600000000000000000000000000000000000000000000000000000000000000000000000000000710181f24282b2c2d2d2d2d2d2d2d2d1f1c18120b030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d151d24293035393a3e4144454646464646463f3e3a352e251c12070000000000000000000000000000000000000000000000000000000000071d293643505c6976838f9ca9a296897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000713202d3946525e6875818e9ba89f9f9fa89b8f8275695e5246382e23170b00000000000000000000000000000000000000000000000713202d3a4653606d79869aa49f9f9f94877a6e6154473b2e21140800000000000713202d3946525d686d757575757575757575757e8b98a296897c757575757575757575756e695e6774808d9aa29892989f9a8d8074665c51453829202c3945525d6874818e9b9892939aa4968a7d7063574a3d3024170a0000010b151d252b30343539393939394653606c7985929c8f8376665c5044383939393a4653606d7986929b8e827568574d423639393932312e29221b120900000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000a141d28343f4a54606a73808d96a0acaca49fa4aca1978e81746b60554b4035291e150a00000000000000000000000000000000000000000000000000000000000b1724313e4a5764717e8a99a49e918477828f9ca9988b7e726553493f332a36414c566774818d9aaa988b7f7a8796a0a196887c6f6255483c2f24180d010000000000000000000000000000010b151f28343f4a545f69717e8b939ea99f948b7f72695f544a414c56616c75818e97a1a89e938b7e71695f544a3f342b1f160c0000000000000000000000000000040d1a25313b44505c666f7c87939f9e9184796d60584e41382d22170b02000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000a1724303d4a5763707d8a96a9b3a69a8d807367594f42382f27201f1c18191e202429323b44505b65737f8c99a9a6a9998c807366594d4033261a0d000000000000000000000714202d3a46525e697683909daaada196897d7063594f433a312b282223282c3039434e58626f7c8895a0acaa9d908477695f53463a2d211407000000000000000000000000000009111a222a303940454e53575f62676d7175797b7d8082838485858685858483817f7d7b7874706d66615e56524c443e36302920180f0700000000000000000000000000000000000000000000000000000000000000000000000006101922293035383939393939393939392c29231d150d030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181e24292c2d3135373839393939393933322f2a231c130a000000000000000000000000000000000000000000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000030f1c28333f4a54616d7a86929facacacacac9f92877b6e61544a3f34281c10030000000000000000000000000000000000000000000006121f2c3844515c667986939facaca094877a6d6154473a2e21140700000000000714212e3a4754616d7a8182828282828282828183909da99c8f82828282828282828282817b6e616774808d9aaaa29fa29f95887b6f62544b4034281d2935414c56626f7c8995a09f9fa4ac968a7d7063574a3d3024170a000000030b131a202427282d2d2d2b3744505b6576828f9c9285796d6053463a2d2d2c3844515c667683909c918478695e52463a2d2d2d2524211d1811090000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d0707040100000000000000000000000000000000000000000000000006111b262f3844505c666f7c87929fa8a69f9a939aa4a99d93897d70675d51453c30261c110600000000000000000000000000000000000000000000000000000006121f2b37434e586774818e9aab9b8e81757f8c99a99b8e8275655b5044372d3946525e687784919da298887c7784919ea9998c7f7266554b4035291d1104000000000000000000000000000000030d17232e38424d57626c75828f97a1a69f92867b6e665b5045525d68707d8a939ea9a1968e81756c62574d42382e22190d0400000000000000000000000000000009141f28343f4a54606a74808d97a1968d80736a5f53493f33271e1308000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000b1825323e4b5865717e8b98a4b1a4978a7e7164574b3e30261d1512100c0e1114192027333f4953616e7b88979a9998978f8276695c4f4336291c10030000000000000000000814212e3b4754616e7b87959fabab9e9184786c6053463d31281f1c17181c1f27313c47535f6a7784919daaaca095887b6e6155483b2e2215060000000000000000000000000009121b232c343c424b51585f62696e747a7d8185888a8c8f9091919292929191908e8c8a8884807d79736d68615e565046413a322a2119100700000000000000000000000000000000000000000000000000000000000000000000020d18222b343b414445464646464646464638342f271f150b01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c13191d202125282a2b2c2d2d2d2d2d2625221e18120a01000000000000000000000000000000000000000000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000006121f2b3844505b66727f8c99a3aeaaa8aaafa3998c7f73665c5044382b1f14090000000000000000000000000000000000000000000004101c2834404a5f6c7986929facada093867a6d6053473a2d20140700000000000815212e3b4854616e7b878e8e8e8e8e8e8e8e8e90959fab9f948f8e8e8e8e8e8e8e8e8e887c6f626774808d9aa7aeacaa9d9083766a5f5342392e2319242f3a4754606a7783909daaacafa3968a7d7063574a3d3024170a0000000001090f14181a1b20201b27333f495366737f8c9998887c6f6255493c2f222834404a546773808d9a96877b6e6154473b2e212020201b1a17140e08010000000000000000060c1114202d3a4753606d7a8693a0ada6998c807366594d4033261a1a1413110d0801000000000000000000000000000000000000000000000b17222d38414d57606d78839099a3ab9f948f87939fa8a59e9184796d60584e42382e23170c0300000000000000000000000000000000000000000000000000000814212e3a47535f6a7884919eab988c7f727c8897a29e9285796c605346392e3a4754616d7a8795a09f92857974818e9ba79c8f8376675d5145392c2013060000000000000000000000000000000006111c26303b45505a616d7a85919ea4a2989083786c60574f59606d7a84919ea5a49a91847a6d615a50453b30261c100700000000000000000000000000000000030c17232e38424e58606d7a85919e9f92877c6f655b50443a3025190c030000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000c1925323f4c5865727f8b98a5afa396897c706356493d3023140b0604000205080e17222d3846535f6978858e8d8c8c8b8a85786b5e5245382b1f12050000000000000000000b1824313e4b5764717e8a97a7b1a79a8e8174665b5044382b1f160f0b0c10151f2b37434e586773808d9aa6b1a7988b7e7165584b3e2d22170b00000000000000000000000009121b242d353e464e545c606a6f757b81868a8e929797999b9d9d9e9f9f9f9e9d9d9b999796918d8985807a746e68615a524c443c332b2219100700000000000000000000000000000000000000000000000000000000000000000008131f29343d464c5152535353535353535345403931271d12070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d111314181b1e1f202020202020191816120d070000000000000000000000000000000000000000000000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000613202d394653606c7884919eaba69e9c9ea6ab9e9184786d6053463b31261a0e00000000000000000000000000000000000000000000000c18232e46525f6c7985929facaca09386796d6053463a2d20130700000000000815212e3b4854616e7b87949b9b9b9b9b9b9b9b9d9fa79fa69f9c9b9b9b9b9b9b9b9b95887c6f626774808d9a9f9f9fa2988b7e7165584e4330271d131e2b38434e5865727f8b98a29f9f9f968a7d7063574a3d3024170a0000000000010911181e2225252d222d3d4a5663707d899a988b7f7265584c3f3025232e3e4a5764717d8a97978a7d7164574a3e2e232d2d2d2726241f1a130b020000000000000910171d21202d3a4753606d7a8693a0ada6998c807366594d403326262621201d19130c040000000000000000000000000000000000000000040f1b27333f49535f69727f8c95a0aba3998f82808c96a0aca0968d80736a5f544a3f34281f140900000000000000000000000000000000000000000000000000000815222f3b4855626e7b8896a1a399897c6f7985929fa197887b6f6255483c2d3e4a5764717d8a97a89c8f8276717e8b98a89f92867a6d6053473a2d20140900000000000000000000000000000000000a141e29333f46525e68707d8a929da89f948b7f72695f56616b74818e97a1a79f93887d70685d52483e33291e140a00000000000000000000000000000000000006111c26303d45525d68717e8a949f999083776c60564c41362a1e150b0000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000c1825323f4b5865727e8b98a5afa295897c6f6256493c2f23160600000000000006111b2a36424d576673808180807f7e7d7d706356493d3023160a000000000000000000010e1b2834414e5b6774818e9aa7b4aa978a7e7164544a3f3328190d040000040d1b26323d4a5764707d8a97aab4a79b8e81746853493f33271b0f030000000000000000000007101b242d363e474f585f666d737c82878e92989b9ea2a9a6a8aaa8a7a6a6a6a7a8a9a8a6a8a19e9a97928c86807a716c615e564d453c342b22190e0500000000000000000000000000000000000000000000000000000000000000000c1824303b464f575d5f606060606060605f514b43392f23180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010407070b0e11121313131313130c0c0a0602000000000000000000000000000000000000000000000000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000005121e2a36424d5763707d8a96a0ab9e948f949eaaa1968a7d7064574d42362a1c120700000000000000000000000000000000000000000000071f2c3845525f6b7885929eabaea3998679665c5145382c1f130600000000000815212e3b4854616e7b8793939393939393939393939393939393939393939393939393887c6f626774808d939393939392857a6d6054473c3121150f1b27323d4754606d7a869293939393938a7d7063574a3d3024170a000000000009131b23292e31323939393a4754606d7a86939b8e817568564d42363939393b4854616e7b87969a8d807367544a3f34393939393433302b241d140b010000000009121b22282d30313a4753606d7a8693a0ada6998c807366594d40333333332d2c29241e160d04000000000000000000000000000000000000040e1a242b3744505b656e7b86929fa7a89f92867c7984919ea5a89f92877c6f665c50443c31261a0e0500000000000000000000000000000000000000000000000004101c2934404b5565727f8c98a89f9286796d75828f9ba9988b7f726553493f35414c566774808d9aaa998c7f726e7b8896a1a3998a7d7064574a3d31261a0e0200000000000000000000000000000000020c18212a36414c56616b74818d96a0a69f92867b6e665d68707d8a939ea9a0958d80736b60564c41362d21180c02000000000000000000000000000000000000000a151e2935414c56616c76828f989f948b7e71685e52463d30271d120700000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000b1724313e4a5764717d8a97a4b0a396897d7063564a3d2d22170b010000000000000e1a26313b4b58636e73757473727170706b6054483b2f22160900000000000000000005111e2a36414c566a7683909da9aea298887b6e6155483b2d221708000000000a15212e3b4854616e7b8798a2aeaa9d908377655b5044372b1f1205000000000000000000050e19222d363e485059616a6f7980878f93999fa3aaabaaaaa29f9d9b9a9a999a9a9b9d9fa2aaa9aba9a19e98928d857e756d685f574e463c342a20170c0300000000000000000000000000000000000000000000000000000000000003101c2835414c5761696c6c6c6c6c6c6c6c6c5c554b4034291c1004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000714202d3a46525e6975828f9ba8a3998f828f98a2a89c8f8276695f5346392e23180c00000000000000000000000000000000000000000005121f2b3845525e6b7885919eabac9f9286796c5f4b4034281c100400000000000815212e3b4854616e7b8686868686868686868686868686868686868686868686868686867c6f62677480868686868686868174675d5145392c20130a16202c3945525d687481868686868686867d7063574a3d3024170a0000000007111b252d343a3e3f4646464645525d687784919d918478695e5246464646464646525e697884919c908376665c50444646464646413f3c362f261d130800000006101b242c34393d3e404753606d7a8693a0ada6998c807366594d40404040403a39352f2820160c0100000000000000000000000000000000020c16202a36424d56606c77828f98a3aca0968c8073707d8a939eaaa3999083786d60574d42372b20170d02000000000000000000000000000000000000000000000006131f2c3845515c6776828f9ca99c90837667727f8b98a99b8f8275655b50443945525d687783909da298897c6f697884919eab9a8d817467574e42372b1e12060000000000000000000000000000000000060f1925303a444f59606d79849199a3a2989083786c606d7a84919ea5a3989083796d60594f443a30241b0f060000000000000000000000000000000000000000030c19242f3a43505a616e7b86929f9e92857a6d61594f42392e23180c03000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000a1623303d495663707c8996a8b1a4978b7e7164544a3f33281d120700000000000009141f2f3b47525c63666867666564646360594f44382c2013070000000000000000000713202d3946525e687885929fabac9f9285796c605346392d201306000000000714212d3a46535e697985929facac9f9285796c605346392d2013060000000000000000020d17202b343e48505a616b707c838c92999fa4abaca7a09d999892908f8d8d8d8d8d8f909298989c9fa4abaaa29f97928a827a6e6960584e463c32291e150b00000000000000000000000000000000000000000000000000000000000005121e2b3844515d6973787979797979797976675c5145382c1f1306000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003060809131313131313060400000000000000000000000000000000000000000000000000000000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000003101c28343f4a54616e7b87929fac9f92877a85929fab9f93877b6e61544a4034281c1004000000000000000000000000000000000000000005121e2b3845515e6b7884919eabac9f9285796c5f52462e23180c0000000000000714202d3a46525e6976797979797979797979797979797979797979797979797979797979766a5f646e7479797979797979746f64554b4135291d1104111d2935414c56646f7479797979797979706b6155483c2f231609000000010d18232d373f464a4c53535353534c566774818e9a96877b6e6154535353535353534d576875828f9b9285796d60535353535353534e4c4741382f241a0e0300000c17222c363e45494b4d4d53606d7a8693a0ada6998c807366594d4d4d4d4d4d4745413a32281e13080000000000000000000000000000000008131e28323a46525e69717e8b949faaa59e9184796d6b75818e98a2aba0958c7f72695f53463f32291e140800000000000000000000000000000000000000000000000714202d3a4753606d7986929fab998d8073666f7b8897a19e9285796c6053463a4754606d7a86939f9f9286796d6875818e9ba89e9184786a5f53473a2e21140700000000000000000000000000000000000008131e28323e45515d676f7c87929fa79f948b7f726b74818e96a1a69f92867c6f675c51473d32281e12090000000000000000000000000000000000000000000008131e28313e46535f69727f8c95a0978e81746b60544b4034281f1409000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000814212e3b4754616e7a8795a0aca79a8e8174665b5044392f2318110a020000000003131f2a35404a52585a5b5a5959585756544f473d32271b10040000000000000000000714212e3a4754616d7a8798a2aeaa9d918477665b5044382b1f12060000000005121e2a36424d576a7784919daaaea298877a6e6154473b2e211408000000000000000009141f29323d46505a626c717d8690959fa3ababa49f9b95908c898584828180808081828385888b8f93999fa2aaa9a19e938f847b6f6a60584e443b30271d1207000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c788586868686868686796d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0f12151520202020202013100c070100000000000000000000000000000000000000000000000000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000006121f2c3844505c6673808c99a3ab9c8f8276818e9ba9a4998d8073665c5144382c1f1509000000000000000000000000000000000000000005111e2b3844515e6b7784919eaaab9f9285786c5f5245392c1f0700000000000005121e2a36424d575e6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c625f585c64676c6c6c6c6c6c6c67645d53433a2f24180d010d19242f3a43535d64686c6c6c6c6c6c6c6361594f44382c20140700000006121e29343f495156586060606060606065717e8b98978a7d71646060606060606060606065727f8c9898887c6f62606060606060605a58524a41362b1f14080005111d28343e48505557595959606d7a8693a0ada6998c8073665959595959595954524c443a2f24190d010000000000000000000000000000030d1924303a44505a616e7b85929fa6a99e93897d7067616e7b86929fa7a79f92867b6e615a50443b3025190d04000000000000000000000000000000000000000000000a1723303d4a5663707d8998a2a3998a7d70636a7885919ea297887c6f6255483d4a5763707d8a99a49c8f82766665717e8b98a8a196887b6e6255483b2f24180c000000000000000000000000000000000000020c16202935404b55606a737f8c959fa69f92867b707d89939da89f948b7f726a5f554b40352b20160c0000000000000000000000000000000000000000000000010c161f2a36424d57606d7883919a9e93897d70665c51453c31261a0d040000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000714202d3a46525e697784919dacab9e9184786c60554b403429221c140b05000000020e19242e3840474b4d4e4d4d4c4b4a4948443d352b21160b000000000000000000000915222f3c4855626f7b8895aab4a99c8f837669544a3f33281c0f0300000000020e1a2531434f5c6976828f9ca9b4aa95887b6f6255483c2f22150900000000000000030d1925303b444e58626c717e879298a0a7afa79f99938e88837f7c79777574737373747577797c7f83878d92989ea5ada59e9691857c6f6a5f564c42392e23180c030000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929393939393867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060e151b1f21222d2d2d2d2d2d1f1c18120b03000000000000000000000000000000000000000000000000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000713202d3a4653606d7984919eaba3998b7e717d8a97a2ab9e9285796d6053463c31261a0e010000000000000000000000000000000000000004111e2b3744515e6a7784919daaab9e9185786b5e5245382b1f12050000000000020e1a25303b454d525f60606060606060606060606060606060606060606060606060606055534e52585a606060606060605b59534b4131281d13070008131e2831414b53595b6060606060606057554f473e33281c10040000000916222e3a46515b62656c6c6c6c6c6c6c6c6f7b88989a8d80736c6c6c6c6c6c6c6c6c6c6c6c6f7c8999988b7e726c6c6c6c6c6c6c6c67645c52473c3024170b000815212d3945505a6164666666666d7a8693a0ada6998c80736666666666666666605d564c4135291d110400000000000000000000000000010b151f2935414c56616c75828f97a2ada2978e81756b605e69727f8c95a0aca2988f82766c62564c41362a1f160c01000000000000000000000000000000000000000005111e2a36414d566773808d9aaa9f92867a6d606875818e9ba9988b7f7265544a404b556773808d9aaa998c7f7366616e7b8896a1a8988b7f7265554b4035291d1004000000000000000000000000000000000000050e18242f39434e58606d78839098a2a29890827a84919ea5a2978f82776c60584e43392e23190e04000000000000000000000000000000000000000000000000040d1a26313b44515c666f7d88939f9d9184796d60574d42372b20160c0100000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b0005111e2a36424d566774808d9aa4ada1968a7e71675c51453f332d261d170e0600000008121c262e353b3f404241403f3e3d3d3b38322b23190f04000000000000000000000a1723303d4a5663707d8996a3b0a89b8e8275685b4f422d22170b000000000000091c2835424f5b6875828e9ba8b0a396897d7063564a3d3023170a000000000000010b151f2a36424d56606a717e889299a2aaafa49c959087817c77726f6d6668676766676768666c6f72767b80868e939fa3aaa8a09792867c6f685e544b4034282015090000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929f9f9f9f93867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006101820262b2e2f3939393939392c29231d150d030000000000000000000000000000000000000000000000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c302316090000000000000000000000000000000000000000000000000000000005121e2a36424d5764707d8a96a1ac9f92867a6d7985929faba1978a7e7164574d42372b1d12070000000000000000000000000000000000000004111d2a3744505d6a7783909daaab9e9184786b5e5145382b1e120500000000000009141f29333b424648535353535353535353535353535353535353535353535353535353494743474c4d535353535353534e4c4841382f1f160c0100010c161f2f3941484d4e535353535353534a48443e352c21160b000000000b1825313e4a56626d727979797979797979797885929d908379797979797979797979797979797986929b8e81797979797979797979746e64584c3f33261a0d000a1724303d4955616c7173737373737a8693a0ada6998c807373737373737373736d685d5245392c2013070000000000000000000000000007121d27313945525d68717e8a939ea9a69f92857a6d615957606d7883909aa4aa9f948b7e71685e52463e31281e130800000000000000000000000000000000000000000714202d3946525e687784909daa9d908377675d65717e8b98a89b8f8275665b5045515d677683909da298897c6f635f697884919ea99c8f8276675d5145382c1f13060000000000000000000000000000000000000007121d27313d44505c666e7b86929fa69f9490849196a1a59e92857b6e655b50463c30271d1108000000000000000000000000000000000000000000000000000009141f2834404a54606b74818e97a0968c7f73695f53463e32281e130800000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b00020e1925303b4855626e7b87939faaa99e9184796d605a50443f382f292017110a0300000a141c242a2f3233353433323131302f2c272119110700000000000000000000000a1724313d4a5764707d8a97a3b0a79a8e8174675b4e4134281b060000000000010e1b2834414e5b6774818e9aa7b0a3978a7d7064574a3d3124170a00000000000007121d27313946525e696f7c86929aa3ababa39f928d837c756f6a6662605c545a5a5a5a5a545b606265696e747b818a9298a2a9a9a19891847a6e665c51453c31261a0e0500000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabaca093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030e18222a31373a3c46464646464638342f271f150b0100000000000000000000000000000000000000000000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000714212d3a46535f6976828f9ca8ab9c8f82766874818e9ba9a99c8f8276695f5347392f23180c0000000000000000000000000000000000000004101d2a3743505d6a7683909da9aa9e9184776b5e5144382b1e1105000000000000020d17212930363a3b4646464646464646464646464646464646464646464646464646463c3b373c3f414646464646464641403c362f261d0d04000000040d1d272f373c4041464646464646463d3c38332c231a1005000000000c1925323f4c5865727f868686868686868686868a989f95908686868686868686868686868686868b999e938e8686868686868686868074675a4e4134271b0e000b1824313e4b5764717e8080808080808d99a6b3a99c90828080808080808080807a6d6054473a2d211407000000000000000000000000030c18242f39434f59606d7a85919ea5ab9f948b7e71685e52505c666f7c87939fa9a69f92857a6e61594f433a2f24190c03000000000000000000000000000000000000000814212e3b4754616e7a8795a0ac9a8d80736755616e7b8796a19f9285796c60534753606d7a86929f9f9285796d60576874818e9ba79f9286796d6053473a2d20140900000000000000000000000000000000000000010b151f28343f4a545f69717e8b939ea69f969196a0a89d938a7e71695e53493f342a1e150b000000000000000000000000000000000000000000000000000000030c18232e39424f59616d7a85929e9f92867b6e615a50443a2f24190c02000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b00000914212e3a47535f6a75828f98a3aca0968d80746c625a504a423b3228231c150c0500020a12191f2326272827262625242322201b160f070000000000000000000000000b1824313e4b5764717e8a97a4b1a79a8d8174675a4e4134271b0e0100000000010e1b2734414e5a6774818d9aa7b0a4978a7d7164574a3e3124170b0000000000000c18232f3943505a616e7b859198a3acaca399928b80786f6a625f585653504a4e4d4d4d4e4a505355575e61696e757e869297a2aaaaa1969082786d60574e42372b21170b00000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a15202a343c43474853535353535345403931271d120700000000000000000000000000000000000000000000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c3023160900000000000000000000000000000000000000000000000000000004101c2834404b54616e7b87939faca3998b7e7165707d8a97a2ab9f94887b6e62554b4034291c100400000000000000000000000000000000000003101d2a3643505d697683909ca9aa9d9184776a5e5144372b1e110400000000000000050f171f252a2d2e3939393939393939393939393939393939393939393939393939392f2e2b303334393939393939393433302b251d140b00000000000b151d252b30343539393939393939302f2c28211a110800000000000c1925323f4c5865727f8b93939393939393939394a2a79f9d9393939393939393939393939393939fa3a59e9b93939393939393938d8174675a4e4134271b0e00101c2936434f5c6976828c8c8c8c8c8d929ca8b4ab9f94908c8c8c8c8c8c8c8c877b6e6154483b2e2115080000000000000000000000000a151e2935404b55606b74818e97a1ada3999083776c60564c4a54606b74818e97a1ada2978e81756c61554c4135291e150b000000000000000000000000000000000000030f1b27333f495364717e8b97a7a49a8a7d7064575e697884919ea297887c6f62554a5663707d8999a39c8f8276665c5864717e8b97a8a3988a7d7063574a3d31261a0e0200000000000000000000000000000000000000030d17232e38424d57626c75828f97a1a8a09ea0a8a0968e81746c61564d41382d22180c030000000000000000000000000000000000000000000000000000000007121c27303d46525d68717e8b949f988f82766c61564c4135291e140a000000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000006121f2b37434e58626f7c86929fa6a89d928b7e716c605b544d443d342e261e170e070000080e1317191a1b1a1a191817161613100b04000000000000000000000000000b1825313e4b5864717e8b97a4b1a79a8d8074675a4d4134271a0e0100000000010e1a2734414d5a6774808d9aa7b1a4978b7e7164584b3e3125180b000000000004101c2934404b55616c76828f97a1aaafa49a92877e736d665f58534e4946443f41404040413f4446484d53565e616c717c859298a2aca89f948d80736a5f53473e33281c1004000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b26313c464e535560606060605f514b43392f23180c00000000000000000000000000000000000000000000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c3023160900000000000000000000000000000000000000000000000000000006131f2c3845515c6673808d9aa4ac9f92867a6d606d7985929faba69a8d8073675c5145382c1f150a00000000000000000000000000000000000003101d293643505c6976838f9ca9aa9d9084776a5d5144372a1e11040000000000000000050d141a1e20212d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d22211f2326272d2d2d2d2d2d2d282724201a130b020000000000030b131a202427282d2d2d2d2d2d2d2423201c1610080000000000000c1925323f4c5865727f8b989f9f9f9f9f9f9f9f9faaacaba99f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9faaacaaa89f9f9f9f9f9f9f9a8d8174675a4e4134271b0e00101c2936434f5c6976828f99999999999ca4aeb9b0a69f9c9999999999999994877b6e6154483b2e211508000000000000000000000006111c26303845515d67707d89939da9a89f92877c6f655b5044424f59616d7a85929ea6a99e938a7d70675d51453d30271d1207000000000000000000000000000000000005121f2b3744505b6575818e9ba89f93867a6d6154576774818e9aa9988b7f7265544b556673808c99aa998c7f72665454616e7b8796a1aa9a8d807467574d42362a1e1205000000000000000000000000000000000000000006111c26303c45505a616d7a85929eabacaaaca3999184796d605a50443b2f261b10060000000000000000000000000000000000000000000000000000000000000b151e2935414c56626c76828f989f948a7e71685d52453d30261c11060000000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b0000020f1a26313c47535f6a727f8c949fa7a49f93877e736c665e564f443f38302920191109000002070a0c0d0f0e0d0c0b0a0a0907040000000000000000000000000000000b1824313e4b5764717e8a97a4b1a79a8d8174675a4e4134271b0e0100000000010e1b2734414e5a6774818d9aa7b1a4978a7e7164574b3e3124180b000000000006131f2c3845515c67707d8a949fa9b0a69f93887e716c605c544e47433c3a38342e3433342d3338393c42464d525a616a6f7c86929aa4afa69f92877b6e62594f44392d20150a000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b37434e585f626c6c6c6c6c6c5c554b4034291c1004000000000000000000000000000000000000000000000000000000000003101d293643505c6976838f9ca9a396897d7063564a3d302317080806020000000000000000000000000000000000000000000000000713202d3a4653606d7985929eacaa9c8f8275685d6674818e9ba9ab9e9285796d6053473c31261b0f01000000000000000000000000000000000003101c2936434f5c6976828f9ca9a99d9083766a5d5043372a1d100400000000000000000002090e121415202020202020202020202020202020202020202020202020202020161513171a1a202020202020201b1a18140f08010000000000000001090f14181a1b20202020202020171614100b05000000000000000c1925323f4c5865727f8b939393939393939393939da0a7a09393939393939393939393939393939393a0a79f9d939393939393938d8174675a4e4134271b0e00101c2936434f5c6976828f9c9f9f9fa0a2a7afb9b6aea8a69f9f9f9f9f9f9f94877b6e6154483b2e21150800000000000000000000020b17232e38424e58606d7984919ea5aca1968d80736a5f53493f3d46525e68717e8b949faba59e91847a6d60594f43392e23180b02000000000000000000000000000000000613202d394653606c7885929eaa9d908477685d525764717e8a97a79b8f8275665b515c677683909ca298897c6f6356535e697884919eaa9d918477695f53463a2d2114070000000000000000000000000000000000000000000a141e2a333f46525e68707d8a99a3aeb7ac9f92877c6f675d51483e32291d140a00000000000000000000000000000000000000000000000000000000000000030c1924303a44505a626e7b86929f9e91857a6d60584e42382e23170b0300000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b0000000a15202b37434e58606c78828f959fa6a499938b80786e686159504a423b322b231b1209000000000000020100000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a3b0a79a8e8174675b4e4134281b0e0100000000010e1b2834414e5b6774818e9aa7b0a3978a7d7064574a3d3124170a0000000003101c28343f4a54606d7984919ea6b0aa9e948c7f736c625a504a423c37322d2c282327272722282b2d31363b42465058606a707e88939fa8aea3998f82766c6155493c31261b0f000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000000000003060b0f15212e3a47535f6a76797979797976675c5145382c1f130e090603000000000000000000000000000000000000000000000000000003101c2936434f5c6976828f9ca9a4978a7d7164574a3e2f24191514120e090300000000000000000000000000000000000000000006121f2b37434e5864717e8a97a1ada3988b7e71645663707d8a97a1ada2978b7e7164584e43372b1d13070000000000000000000000000000000000020f1c2935424f5c6875828f9ba8a99c908376695d5043362a1d10030000000000000000000000020507081313131313131313131313131313131313131313131313131313130908060b0d0e131313131313130e0e0b0803000000000000000000000003080c0e0e131313131313130a0907040000000000000000000c1925323f4c5865727f86868686868686868686868995a0958986868686868686868686868686868689959f958986868686868686868074675a4e4134271b0e00101c2936434f5c6976828f9393939393969da7b2aea49c999393939393939393877b6e6154483b2e211508000000000000000000000a141d28343f4a54606a73808d96a0aca59e9184796d60584e413835414c56606c77829099a3ada1968d80746b60554b4034281d140a000000000000000000000000000000000916222f3c4955626f7c8897a1a79a8d817467564c54616e7a8795a09f9285796c6053606d7986929f9f9285796d60534d576874818e9ba7a096887b6e6155483b2e23180c00000000000000000000000000000000000000000008131e28323a45515c666e7b86929facb7ab9e91847a6d605a50443b2f261b1106000000000000000000000000000000000000000000000000000000000000000008131e28323e47535f6973808c96a0978d80746a60544a3f34281f140900000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000000030f1a26313c44505b666d79838f949da5a49f928d827a706b605c544d443d352d241b12090000000000000000000000000000000000000000000000000000000000000a1723303d4a5663707d8996a3b0a89b8e8175685b4e4235281b090000000000020f1b2835424e5b6875818e9ba8b0a3968a7d7063574a3d3024170a0000000006121f2b3844505c66727f8c96a0acaea2988f82776c605a50443f38302b26201f1c171a1a1a171c1f20252a30363e464e58616c73808d96a1acab9f948a7d7064584e43372b1d12070000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000000060b1012171b1f222f3c4855626f7c8686868686796d6053473a2d201e1a15130f0a04000000000000000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8a6998c7f7366554b4135292422211e1a150e0600000000000000000000000000000000000000000814212e3a47535f6a7683909ca9ac9f92867a6d6054606d7985929eaba99d9083766a5f53473a2f24180d0100000000000000000000000000000000020f1c2835424f5b6875828e9ba8a99c8f8376695c504336291d10030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4a56626d72797979797979797979797983909d918479797979797979797979797979797983909d90837979797979797979746e64584c3f33261a0d00101c2936434f5c6976828686868686868b96a2aea89c928c8686868686868686867b6e6154483b2e21150800000000000000000006111b262f3844505c666f7c87929fa8aa9e938a7d70675d51463c2f303a44505b656f7c87929fa8a89f93887d6f675c51453c2f261c1106000000000000000000000000000004111d2935404b5566727f8c99a9a8978a7d7164574a525e687784919da297887c6f625663707c8998a39c8f8276665c514b5864717e8b97a8a8988b7e7265544b4034281c100400000000000000000000000000000000000000050f19242f3a444f59606d79839099a3acaaaca1968e81746c61564d41382d22170c0300000000000000000000000000000000000000000000000000000000000000020c16202b37424d57606d7984919e9f93877c6f665c50443b30251a0d04000000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000000000a152028333f4a545d676d79828e939fa3a49c948f857d736d665e564f473e362d241b110800000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895aab4a99c8f8276695c4f4330251a0e0200000000030f1c2936424f5c6975828f9ca8b5ab95897c6f6256493c2f231609000000000713202d3a4653606d7884919ea8b2a99f92867b6e655b50483e342e261e1b1312100c060d060b0f12131a1f252a343d46505a606d7984919ea8b0a69c8f83766a5f5347392e23180c0000000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000001080d11171c1f22272b2d2f3c4855626f7b88939393867a6d6053473a2e2d2a25211f1b15100b0500000000000000000000000000000000000000000000010e1b2734414e5a6774818d9aa7a89b8f8275675d51453c352f2f2e2b2620180f0600000000000000000000000000000000000004101d2935404b55626e7b88949faba89b8e8175685d525c6674808d9aa7ab9f95887c6f62554b4035291d110400000000000000000000000000000000020f1b2835424e5b6875818e9ba8a99c8f8276695c4f4336291c100300000000000000060b0e10111313131313130f0e0c0904000000000000000000000003070b0d0e13131313131312110f0c0701000000000000000000000004080a0b1313131313131308070502000000000000000000000000000000000000000916222e3a46515b62656c6c6c6c6c6c6c6c6c6c74818d9a93867a6d6c6c6c6c6c6c6c6c6c6c6c6c74818e9a9286796d6c6c6c6c6c6c67645c52473c3024170b000f1c2835414e5a6670767979797979798693a0ada6998c8079797979797979797976695e53463a2d2114070000000000000000000b17222d38414d57606d78839099a3aea2988e81756b61554b40342a27333f49535f6a73808d96a1ada49a9184796d60584e42382d22170b03000000000000000000000000000613202c3945515d6776838f9ca9a096877a6e6154474c566774808d9aa9988b7f72655466737f8c99aa998c7f7266544a4854616e7b8796a0a89c8f8275665c5145382c1f1306000000000000000000000000000000000000020b17212935414c56606b73808d95a0a7a09da0a79d938a7e70685e53493f33271e150b0000000000000000000000000000000000000000000000000000000000000000040e1a26313c45515c67707d89939e999083786d60574d42362a1f160c010000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b00000000030b17222d38424b555d676d78818b9298a0a69f97928880786e69605950483f362d231a0e04000000000000000000000000000000000000000000000000000000000814212e3b4754616e7b8798a3aeaa9d9084776a574d42362a1e12050000000005111d2935414c566a7783909daaafa399877b6e6154483b2e21150800000005111e2a36414c5664707d8a96a1adada1978c7f72695e53493f3628231c140c0a060300000000000306090e1419222b343e45515d67717e8a96a0acab9f94887c6f62544b4034281c100400000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000060b13191c23282b2d3337393b3e4855626f7b88959f93867a6d6053473e3b3a36312e2b26201c170e09030000000000000000000000000000000000000000000c1825323f4b5865727e8b98a6ac9f92857a6d60574d45413f3b3a37312a21180e03000000000000000000000000000000000006131f2c3945515d6774808d9aa6aca096897d7063564c54626f7b88959faba79a8d8174675d5145392c20150a00000000000000000000000000000000020e1b2835414e5b6874818e9ba7a89c8f8275695c4f4236291c0f030000000000040b12171b1d1e2020202020201c1b19150f09020000000000000001080e13171a1a2020202020201f1e1b18130c050000000000000000050c11141717202020202020201514120e0903000000000000000000000000000000000006121e29343f4951565860606060606060606064717e8b979a897d70636060606060606060606065717e8b9899897c6f6360606060605a58524a41362b1f1408000d1925323d49545e66696c6c6c6c6d7a8693a0ada6998c80736c6c6c6c6c6c6c6c6c5e574d42362a1e12050000000000000000040f1b27333f49535f69727f8c95a0aba79f92857b6e61594f43392f22222d38414e58606d7984919ea6aca0958c80736a5f544a3f33281f1409000000000000000000000000000714202d3a4753606d7a86929faa9d918477685e52464a5764707d8a99a49b8f8275655c6676828f9ca298897c6f62564946525e697784919eaa9f9285796d6053463a2d2013090000000000000000000000000000000000000a141d29333b45525d68707d87939fa69f959095a0a59e92857a6e655b50443c30271d120700000000000000000000000000000000000000000000000000000000000000000915202834404b55606b75818e97a0958c7f72695e52463e31281d12070000000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000000000006111c262f3a434b555d666d747f8691969ea5a19a938d827b706b615a50483f352b20160c020000000000000000000000000000000000000000000000000000000713202d3a4653606d7986929facab9f928578695e52463a2d201407000000000713202d3946525d687885929eabac9f9286796d6053463a2d2013070000000714202d3946525e6876828f9ca8b2ab9e9185796d60574d41382d2417110a02000000000000000000000002091019222935404b55606c7884919dabb0a69a8e8174665c5145382c1f130600000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000020a11171e24292e34383a3f4446484b4d55626f7b8895a093867a6d60534d4a4846423c3b37322d28221a150e0600000000000000000000000000000000000000000815222f3b4855626e7b88949faba2988b7f72695f57514c4c4847423c332a20150900000000000000000000000000000000000714202d3a4753606d7985929fabab9e9184786c605346535f6a7683909daaab9f92857a6d6053473d32271b0f01000000000000000000000000000000010e1b2834414e5b6774818e9aa7a89b8e8275685b4f4235281c0f0200000000050e161d23272a2b2d2d2d2d2d2d282825201b140c030000000000020b12191f2326272d2d2d2d2d2d2b2b28241e170f060000000000000810171c2123242d2d2d2d2d2d2d22211e1a140e0600000000000000000000000000000000010d18232d373f464a4c535353535353535355626e7b8897998c7f736659535353535353535355626f7b8898988c7f726559535353534e4c4741382f241a0e03000915212c38424c545a5c606060606d7a8693a0ada6998c807366606060606060605f534d453b31251a0e0200000000000000040e1a242b3744505b656e7b86929fa7ab9f958b7f72695e52473e31271d1b262f3c45515d67707d8a949eaaa89f92877c6f665b50443b31251a0e040000000000000000000000000a1724303d4a5763707d8a99a3a79a8e817467564c414754606d7a86939f9e9285796c606d7985929f9f9285796d605346424d576774818e9aa7a298897d706356493d30251a0e020000000000000000000000000000000006111c262f3b45505a606d7a849199a49f9490849096a1a1978f82776c60584e43392e23180e0400000000000000000000000000000000000000000000000000000000000000030c18232e39434f59616d7a85929f9f92867b6e61594f43392f24180b0200000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b0000000000000a141d28313a434b545c606d727c848e939fa2a49f9490857d716c625a50473d32281e130800000000000000000000000000000000000000000000000000000006121f2b3844505c667784909daaaea298877b6e6154483b2e21150a000000000714212e3a4754616d7a8797a1adaa9e918477665c5145382c1f13060000000814212e3b4754616e7a87939facafa3998c7f72675d51453b2f261b1206000000000000000000000000000000071018242f3944505b66727e8b99a3aeac9f9285796d6053463a2d20130800000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000040b141b22272f35383f444649505355585a5c626f7b8895a093867a6d605b5a5754534d4947433c39332b261f180f09000000000000000000000000000000000000000814212e3a47535f697683909ca5aa9f92857b6e69605d555855534d453c31261a0e0200000000000000000000000000000006131f2b37434e5865717e8b97a2ada3998c7f72655b50444e5865717e8b98a2aea2988b7e7165584e43372b1e1308000000000000000000000000000000010e1a2734414d5a6774808d9aa7a89b8e8175685b4e4235281b0f02000000040e1720282e3336373939393939393534312c251e150c02000000010b141d242b3033343939393939393837342f2921180f050000000008121a22282d3031393939393939392e2d2b261f180f060000000000000000000000000000000007111b252d343a3e3f4646464646464647535f697885929c8f827569574d4246464646464653606c7985929b8e827568564d424646413f3c362f261d1308000005101b26303a42494e4f535353606d7a8693a0ada6998c807366595353535353534846423b33291f140900000000000000020c16202a36424d57606c77829098a3aea3999083786c60564d42352c1f15141d2935404b55616c75828f98a2aea3999083786c60574d42362a20160c020000000000000000000005121e2a36424d576774808d9aaba8978a7e7164574b3e45525d687783909da297887c6f626f7c8998a29c8f8276665c50443e4b5764717e8a97a8aa9a8d807367574d42362a1e1205000000000000000000000000000000030d17222d38424d57616c75818e96a1a39890827a84919ea59f948b7f726a5f554b40342820160c020000000000000000000000000000000000000000000000000000000000000007121d27303d46525e68717e8b949f988f82756c61554b4035291d140a00000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000000000000020b161f28313a424a515b626a6f7a818b9298a0a69f9792877e716c62594f443a3025190d03000000000000000000000000000000000000000000000000000003101c28343f4a546875818e9ba8b3aa978a7d7064574a3d32271b0d04000001081623303d495663707c8996a9b3a89c8f827569544b4034281c10040000030f1b27333f495364717e8b9aa4afac9f92867a6e61554b4033291d140a000000000000000000000000000000000007121d28333f4a54616d7a86929facaea298897d706356493d2f24190d01000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000050d161d262d333a41454a5053535b60626467686a6f7b8895a093867a6d6a686664615e5755534e49443e37312a211a120a01000000000000000000000000000000000006121e2b37424d5763707d89939ea6a29891847b736d676665625f574d42372b1e12060000000000000000000000000000000815212e3b47535f6a7683909da9ac9f92867b6e6153493f4753606d7a85929facaa9d9083776a6054473a2f24190d010000000000000000000000000000010d1a2734404d5a6773808d9aa6a79b8e8174685b4e4135281b0e020000000b16202932393f434446464646464642413d3730271e140900000008121d262f363c3f414646464646464544403a332b21170c01000005101a242c33393c3e464646464646463b3a37312a21180e030000000000000000000000000000000009131b23292e313239393939393937424d576975828f9c928578695f53473a3939393844505b6676838f9c918478695e52463a393433302b241d140b010000000a141e2830383d4143464753606d7a8693aab4a6998d8073665a4d46464646463b3a36312921170d030000000000000008131e28323a46525e69727e8b949faaa89f92877c6f665b50443b30231a0d0b18242f3943505a616e7b86929fa8ab9f958b7f72695e53463e32281e1308000000000000000000000714212d3a46535e697784919eaaa196877b6e6154483b414c566673808d99a9988b7f7266727f8c99aa998c7f7266544a3f3b4754616e7b8796a0aa9d908477695e52463a2d2014060000000000000000000000000000010b151f28333f4a545e69717e8a939ea79f92867b707d89939ea69f92867c6f675c51453d32281e130800000000000000000000000000000000000000000000000000000000000000000b151e2a36414c56606c778390999e938a7d70675d51453c2f261b1106000000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b00000000000000040d161f2830394044515860676d757e8691969fa7a19992887e716b60564c4135291f15090000000000000000000000000000000000000000000000000000000b17232e3f4b5865727e8b98a8b2a69a8d807367584e43372b1f15100c090e131e2a36414c5666727f8c99a5b3aa998c7f7366594c402e23180c00000005121f2b3744505b6575818e9bacb6a99c8f8276685e5243392f21170b020000000000000000000000000000000000010b17222d3846525d6875828f9ca8b4aa9a8d807367564c4135291d1104000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000050e171f282f383f444c51545c6063656c6e71747576787c8895a093867978777573716e6967625f58555047423c332c241c130a0000000000000000000000000000000000020e1a26313c4854606b74818e949da5a09691857f7a7673726e695f53473a2e211408000000000000000000000000000004111d2935414c55626f7c88959faba99b8f8275685e52413845515d6774818e9ba7aca095897c6f62564c4135291d11040000000000000000000000000000000d1a2733404d5a6673808d99a6a79a8e8174675b4e4134281b0e01000006121d28323b444b4f515353535353534f4d48423930251b0f0400030e19242f3840474c4d53535353535352504c453d33291e130700000c17222c363e45494a535353535353534846423c332a1f140900000000000000000000000000000000010911181e2225252d2d2d2d2d2631404c5966737f8c9997887b6e6255483b2f2d28333f4a546673808d9996877a6e6154473b2e2726241f1a130b0200000000020c161e262c3235363a4653606d798698a3aea79a8d81746753493f36393a3c3a38342f271f150b01000000000000030d1924303a44505a616e7b85929fa6ada1968d80746a5f544a3f32291f110807121d28313e46535f69737f8c95a0aca79f92867b6e615a50443a3025190d040000000000000000000815212e3b4854616e7b8796a0ab9e918478695e53463a3d4a5663707d8999a39b8e82756675828f9ca298897c6f6256493c3a46525e697784919daaa095877b6e6154483b2e23170c000000000000000000000000000007121d27313944505b666e7b85929fa5a0958c7f726b75818e97a1a3989083796d60594f443a3025190f0600000000000000000000000000000000000000000000000000000000000000030c1925303a44505b656f7c87929f9e9184796d60584e41382d22170b020000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b0000000000000000040d161e272e343f464e555d606c717c8490959fa7a39a92877d70685e52463c31261a0e0000000000000000000000000000000000000000000000000000000615222f3c4855626f7b8896a0acaa9d9184776a6054473c31271f1c181b1a1e242d3946525e6876838f9ca9aea298897c706356493d302316070000000613202d394653606c7885929eabb3a9988b7f7265564c4131271d0f050000000000000000000000000000000000000006111c2935414c5665727f8b98aab4aa9d918477685d5245392c201306000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000040e172029313a414950555d60666d7075797b7e8082838486929fac9f9286858382807d7b77736f6a64615a534d453e362d251c120900000000000000000000000000000000000915202c38444f59606d79828e939c9fa097928c8683807f7b6e6255483b2f22150800000000000000000000000000000613202c3945515d6774818e9aa7ada1968a7d7063564d4135404b55636f7c8995a0aca79b8e8174685d5245392c20160a0000000000000000000000000000000d1a2633404d596673808c99a6a79a8d8074675a4d4134271a0e0100000b17232e39444d565b5e6060606060605b59534b42372c2015090007131f2b36404a52585a6060606060605e5c574f453a2f24180c0004111c28333e485055576060606060606055534d453c31261a0e020000000000000000000000000000000000070d12161819202020202023303d4a5663707d8999978b7e7164584b3e2f24222d3d4a5764707d8a97978a7d7064574a3d2e231717140e0801000000000000040c141b2125282c3845515c667986929faca89b8f8275655b5046424547484745403931271d12070000000000010b151f2935414c56616c75828f98a2aea69e9184796d60584e42382d20170d00010c161f2a36424d57606d7984919da5aea2988f82756c61564c4135291f160c010000000000000003101c28343f4a5465727e8b98a8a79b8e817468574d42363a4753606d7a86929f9e9285786c7985929f9f9285796d6053463a36424d566774818e9aa7a7988b7e7165544a3f34281c1003000000000000000000000000050e18242f39434e58606c78829097a2a3999083786d616d7a85929ea6a0958d80736b60564c41352921180c030000000000000000000000000000000000000000000000000000000000000008131e27333f49535f6a73808d96a0968d80736a5f53493f33271e14080000000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000000000000000000040c151c2328343c434c515a626a6f7a839095a0a9a39992857a6d61574d42372b1b110600000000000000000000000000000000000000000000000000000815212e3a47535f6a7784919eabaca095887c6f62584e4339312c282327262b2f35414c56616d7a86929facab9f9285796d6053463a2d2013070000000815222e3b4855616e7b8897a1adada197887b6e6255483b3022150b0000000000000000000000000000000000000000000d1924303c4855626f7b8898a2aeaca095877a6d6054473a2d211407000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000020b162029323b434b535b60676d73797d8285888b8d8f90919298a3aea3989291908e8d8a8784807c76706c625f5750483f372d241b10060000000000000000000000000000000003101c27333d45515c676d7981898f939aa29f9992908d8b7f7265584c3f3225190c00000000000000000000000000000714212d3a4754606d7a85929facac9e9184796d6053463b303a4854606b7784919dabac9f92867a6d6054473d32271b0f0200000000000000000000000000000c1926333f4c5966727f8c99a5a69a8d8073675a4d4034271a0d0100020e1b27333f4b565f676a6c6c6c6c6c6c68655d53483d3125190c000b1723303c47525c64676c6c6c6c6c6c6b6861574c4034281b0f030814212d3945505a61646c6c6c6c6c6c6c6c5f574d42372b1e12050000000000000000000000000000000000000106090b0c1313131314212d3a4754606d7a86939a8d817467554b403529212e3a4754616d7a8796998d807366544a3f34281c100303000000000000000000020a1015191c2834404b546b7885929eabab9e9184786c6056534d51545553514b43392f23180c000000000007121d27313945525d68717e8a939eaaaa9e948a7d70675d51463c2f261c0e050000040d1a26313b45515c66707d89939ea9aa9e948a7e71685e52463d31281d12070000000000000006121f2c3844505c6675828f9ba8a9988b7e7165584b3e313945515d677683909ca197887b6f7b8897a29c8f8276665c504438303e4b5764717e8a97a8a89b8e8275665c5044382c1f12060000000000000000000000020c17202935404b555f6a727f8c949fa89f92877c6f665e68717e8a949ea79f93887d70685e52463f332a1e150a00000000000000000000000000000000000000000000000000000000000000020b17222d38414e58606d7984919e9f92877c6f655b50443b3025190c0300000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b00000000000000000000030b1218222b313a414550585f686d79839097a1aba1978e8174695f5347382d22170b000000000000000000000000000000000000000000000000000006121f2b37434e586673808d99a3afa89b8e81756a5f554b433c38342e3431373a4145525d68737f8c99a3afa79b8e8175675c5145382c1f13060000000a1724303d4a5763707d8a96a9b3ab9e928578695f53473a2e2114030000000000000000000000000000000000000000000813202d394653606c7985929facb1a795897c6f6256493c2f231609000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000a141d28323b444d555d656c717a80858a8e9297979a9b9d9e9fa3aab4aaa39f9e9d9b999796918d88837d766e69615a51493f362d22180b02000000000000000000000000000000000b16212834404b555d676d747d82889297a2a39f9c988b7f7265584c3f3225190c0000000000000000000000000007131f2c38434f5965727e8b98a2aea49a8d8073665c5044382c38434f5965727f8c99a3aea2988b7f7265594f44382c1e130800000000000000000000000000000c1926323f4c5965727f8c98a5a6998d8073665a4d4033271a0d000004101d2a36434f5b677177797979797979756f65594d4134281b0e020d1a26333f4c58646e747979797979797873685c5044372b1e11050a1723303c4955616c717979797979797976695f53463a2d21140700000000000000000000000000000000000000000000000606060613202c3945515d677784909d908377675d5145382c202d3946525e687884919c908376665c5044382c1f120600000000000000000000000005090c18232e43505d6a7683909da9ada196897d7068615f575d6062605c554b4034291c1004000000030c18242f39434f59606d7a85919ea6aea2988f82756c61554b40342a1d140a0000000009141f2834404b54606b75818e97a2ada69e92857a6d61594f43392f24180c030000000000000713202d3a4653606d7985929faba197887b6e6155483b2e35404b556673808c99a9978b7e717e8b97a9998c7f7266544a3f342e3b4754616e7a8795a0ab9f9285796d6053463a2d201308000000000000000000000008131e29323a45515d676f7c87929fa6a0968d80736a5f56616c75828f98a2a49a91857a6d615a50453c30261c11060000000000000000000000000000000000000000000000000000000000000006111b262f3c45515d67707d8a939e999083776c60564c41362a1e150b00000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b0000000000000000000000000710191f282f353f464e565d676e7a85929ea6a99f93877b6e6253493f33271b0f0300000000000000000000000000000000000000000000000000030f1a26313c4854616e7b87929faaac9f92877c6f675d554e46454041414142474c515b606d7a85929eabaca095897d7063554b4034281c10040000000c1926323f4c5965727f8c98a5b2a99c8f837669574d42372b1e120600000000000000000000000000000000000000000006121f2b3844505b667783909daab1a4978b7e7164584b3e3125180b000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000006111b262f3a444d565e676d777e858d91979b9ea2a9a7a8a5a4a4a6acb3aba5a3a4a5a7a6a8a09d9a95908a827b716c635b51483f342a1d140a0000000000000000000000000000000006111c262f3b444d575e666d72797e85929faba8a5988b7f7265584c3f3225190c000000000000000000000000000a15222f3b4854606b7783909daaac9f93877b6e61544a3f3428323d4754616d7a86929facaa9d9184776b6054483a3025190d00000000000000000000000000000c1925323f4c5865727f8b98a5a6998c807366594d4033261a0d000004111e2b3744515e6a77848686868686868175685b4f4235281c0f020e1a2734414d5a67748086868686868685786b5e5245382b1f12050b1724313e4a5764717e868686868686867b6e6155483b2e221508000000000000000000000000000000000000000000000000000004111d2935414c556774818e9a92867a6d6053473a2d202a36414c566875818e9b9285796d6053463a2d2013070000000000000000000000000000071a2734414d5a6774808d9aa9b2a89d91837a726e696c676d6f6d675c5145382c1f13060000000b151e2935404b55606b74818e97a1ada79f92867b6e615a50433a2f22190b0200000000030c18232e39424f59616e7a85929fa7ada1978e81746b60554b4035291e150a000000000000091623303c4956636f7c8997a2ab9e918578695f53463a2d2f3c4956636f7c8998a29a8e8174818d9aa298897c6f6256493c2e2d3946525e687784919daaa297897c6f6356493c3025190d01000000000000000000060f1925303a444f59606d79839199a3a49a9184796d6058505a616e7b86929fa7a1978f81756c62574d42382e23170d04000000000000000000000000000000000000000000000000000000000000000a141d2935404b55616b75818e989f958b7e72685e52463d30271d1207000000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b00000000000000000000000000070d161e2429343c444c555e68707d8a949faba49a8d8174655b5044372b1f120500000000000000000000000000000000000000000000000000000a15212d3a46535e6975818e98a3aea3999083796d675f5853514b4e4e4e4d53555d606d74818e97a1ada69d9083776b605443392e23180c000000000e1b2834414e5b6774818e9aa7b3a79a8d8074675a4d4131261a0e02000000000000000000000000000000000000000000030f1c28333f4a546875818e9ba8b3a6998d8073665a4d4033271a0d000000000000000000000000000000000000000000000006121f2c3945525f6c7885929fabada093867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000b17222d38414c565e696e79828b91979ea1a9aba8a19e9b9997989ba2aba1999697989b9ea0a8aaa79f9d948f867e726d635a50463c2f261b11060000000000000000000000000000000b17222d38424d565e696e787f858b9297a29f9c98958b7f7265584c3f3225190c00000000000000000000000006111b2935414c56636f7c8995a0aca99c8f8276695f5342382e232d3946525e6875828e9ba8aca095897c6f63564c41362a1b1106000000000000000000000000000c1825323f4b5865727e8b98a5a6998c7f7366594c403326190d000004111e2b3744515e6a778491939393938e8275685b4f4235281c0f020e1a2734414d5a6774808d939393939185786b5e5245382b1f12050b1724313e4a5764717d8a9393939393887b6e6155483b2e2215080000000000000000000000000000000000000000000000000000010d19242f3e4b5865717e8b9899897c6f6356493c302325303f4c5865727f8b9898887c6f6255493c2f22160800000000000000000000000000000b1724313e4a5764717d8a97a1adaca09591847f7b7978797a7c796d6053473a2d201407000007121c27303945515d67707d89939da9aba0958c7f72695e53483e31281d100700000000000007121d27303d46525e68727f8b959faba99e93897d70675d51453d30261c11060000000005111d2935414c566673808c99a9a89b8e817568574d42372b2d3a4653606d7985929f9d90847783909d9f9285796d6053463a2d2a36414c566774818d9aa7a9998d807366564c41362a1e11050000000000000000030c18212a36414c56616b74808d95a0a89f93887d6f675c5146535e69727f8b959fa99e938b7e71695f544a3f34281f160c01000000000000000000000000000000000000000000000000000000000000020b18242f39434f59616e7b85929f9f92857a6e61594f43392e23180c030000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b0000000000000000000000000000040c1319222a323a434d56616c7683909cabac9e9285786c605346392d201306000000000000000000000000000000000000000000000000000005121e2a36424d57616e7b86929fa6aba0958f82796f6a63605c555b5a5b575f62676d747f8c939ea9a99f948a7d7064594f4430271d120700000000101c2936434f5c6976828f9ca9b2a5998c7f7266594c3f3326190900000000000000000000000000000000000000000000000b17222d404d5a6773808d9aa6b3a89b8e8175685b4f4235281c0f000000000000000000000000000000000000000000000000121f2c3945525f6c7885929fabada093867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000030f1b27333f49535d686e7b838f949ea1a9a9a19e9996918e8c8b8b909ba5998f898a8c8e9196999ea1a9a69f98928a7f726c62584e41382d22170b0000000000000000000000000000030f1c28333f4a545e696e7b838c92979f9f99938f8b88877f7265584c3f3225190c0000000000000000000000000b17222d3946525d6875818e9ba7ada1978a7e7164574d4230261c2a36414c5663707d8996a1ada79b8e8175685e5246382d22170b000000000000000000000000000b1825323e4b5865717e8b98a4a5988c7f7265594c3f3226190c000004111e2b3744515e6a7784919d9f9f9b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9a9f9f9e9185786b5e5245382b1f12050b1724313e4a5764717d8a979f9f9f94887b6e6155483b2e2215080000000000000000000000000000000000000000000000000000000815222f3b4855626e7b8897988c7f7265594c3f3025232f3c4956626f7c8998988b7e7265584b3f3024190d01000000000000000000000000000713202d3a4653606d7985929ea6b0a7a096918b8886858687877b6e6154483b2e21150800000c18232e39424e58606d7984919ea5afa4999083786d60574d42362c1f160c00000000000000000b151e2a36414c56606c78839099a4afa59e9184796d60584e42382e23170c000000000713202d3946525d687683909da9a9988b7e7265584b3f31262c3844515c6676828f9c9f93867a86929f9c8f8275665c5044382b25303e4a5764717d8a97a7aa9d908377685e5246392d20140600000000000000000b151e2a333c46525e68707d8a929da8a1968d80746b60554b424d57606c78839099a3a59f92867b6e665c50443d31281e13080000000000000000000000000000000000000000000000000000000000000007121d27313e46525e68727f8b959f978e81756b60554b4034281f15090000000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000000000000000000000000000000010810182028313b44505a64717e8a99a3ada197887c6f6255493c2f2216090000000000000000000000000000000000000000000000000000020e1a25313b46535f69737f8c949fa7a79f948f837c75706d676867676869696e737a818c919ca5aaa1978f82766c6155473d331e150b0000000000101d2a3643505d697683909ca9b1a4978a7e7164574b3e3124180b0000000000000000000000000000000000000000000000061926323f4c5965727f8c98a5b2a89c8f8275695c4f4236291c0f0000000000000000000000000000000000000000000000030d152c3945525f6c7885929fabada093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000010c161f2b3744505b656d7a8490959fa6aaa29f96918c8884817f7e7e8b98a396897d7d7f8184888c91979fa3aaa29f918b7e716a5f53493f33271b0f030000000000000000000000000006121f2b3844505b666e7b8490959ea19d948f87827e7c7a786c605346392d2013060000000000000000000000030f1b27333f4953616d7a86929facab9e9285796d6053463b31201925303a4653606c7884919eabac9f92867a6d6153493f33271b0f030000000000000000000000000b1824313e4b5764717e8a97a4a5988b7f7265584c3f3225190c000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aca194887b6e6155483b2e2215080000000000000000000000000000000000000000000000000000000613202d394653606c7985929b8e827568574d42362a202d3a4653606d7986929b8e817468564c4135291d11040000000000000000000000000006131f2c3845515c67737f8c949fa6ada8a19e989992929299877b6e6154483b2e2115080004101c2834404a54606a73808d96a09fa99f93877c6f665c50453b31241a0d040000000000000000030c1925303b44505b666f7c87939fa99fa1968d80736a60544a3f34281c10030000000714212e3a4754616d7a86939faca197887b6f6255483c2f222834404a5466727f8c99a4998c7f8c99a3998c7f7266544a3f3428212e3a4754616d7a8795a0ac9f93877a6e6154473b2d22170b0000000000000007121c27303c45515b616d7a85919ea4a59e9184796d60594f433b44505b666f7c86929fa7a2989083786d60594f433a2f24190f05000000000000000000000000000000000000000000000000000000000000010b151f2a36414d56606c788390999e93897d70675c51453c31261a0e0400000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b0000000000000000000000000000000000060e161f29323e4753606d7a86929f9fa9988b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000009141f2a36424d57606d78828f959fa7a69f959087817d79777574747476787b80858e939ca3aaa29892857b6e615a5044352b210c030000000000111e2a3744515d6a7783909daab0a3968a7d7063574a3d3024170a00000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4b1a99c908376695d5043362a1d1000000000000000000000000000000000000000000000010b151f2935414c566c7885929fabada093867a6d6053473a2d20160c0200000000000000000000000000000000000000000000000008131e2935414c56606c77828f96a0a7a8a198928c84807b787572717b8895a0938679717274777b80848d9299a2aaa39f92867c6f655b5044372b1f130800000000000000000000000003101c28343f4a54606c788390969fa79d938e827b75726f6e6c665b5044382b1f1206000000000000000000000005121f2b3744505b65727f8c98a3aea79a8d8074675c5145382c1f131f2b3844505b6673808c99a4aea3988c7f72655b5044372b1f14080000000000000000000000000b1724313e4a5764717d8a97a4a5988b7e7265584b3f3225180c000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e22150800000000000000000000000000000000000000000000000000000005121f2b3744505b6576828f9c918478695e52463a2d202c3845515c667683909d918477685d5245392c2013070000000000000000000000000004101c2834404b55606d78828f949ea1a8a9aaaba39f9f9f94877b6e6154483b2e2115080006121f2c3844515c666f7c879293939393978d80746a60544a3f33291f11080000000000000000000008141e28333f4a54606a74808d979393939392877c6f665c5044382c1f12060000000b1724313e4a5764717d8a99a4ab9e9285796c605346392d20232e3c4955626f7c8897a29e9184919ea298897c6f6256493c2e23202d3946525e687784909daaa49a8b7e7164544a3f33281c0f030000000000040d18232e39424d57626d75828f97a1a99e938a7d70675d51473d333f4a545f6a73808c95a0aa9f958c80736b60554c41352921170b02000000000000000000000000000000000000000000000000000000000000030d1925303b44505b666f7c87929f9e9184796d60574d42372b20160c02000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000000000000000000000000000000000000040d17202c3945515d67778490939393938c807366594d4033261a0d000000000000000000000000000000000000000000000000000000030e1a26313b44505c666d7a8390959da5a7a099938e898683828181818385888c92979da5a7a09892867d70695e52483e3323190f000000000000111e2b3844515e6b7784919eaaafa396897c706356493d3023160a00000000000000000000000000000000000000000000000b1824313e4b5764717e8a97a4b1aa9d9083776a5d5044372a1d110000000000000000000000000000000000000000000007121d27313945525d687885929fabada093867a6d6053473e32281e13080000000000000000000000000000000000000000000000010d19242f3946525e68727f8c949ea8a8a19691867f79736e6968666f7b8895a093867a6d6568696e737980879298a2aea3999083786c6053463a2f24190d01000000000000000000000006121f2b3844505c66727f8b959fa89f958e81786e69656261605b544a3f33281c0f0300000000000000000000000613202d394653606c7884919daaab9f95887c6f62554b4034281c101c28333f4a54616e7b87939facaa9e9184786c6053463b3025190e0000000000000000000000000a1724313d4a5764707d8a97a3a4988b7e7165584b3e3225180b000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000030f1b27333f49536673808c9396877b6e6154483b2e212834404b546774808d9393867a6d6054473a2d21140700000000000000000000000000000c18232e3944505c666d7a828c91969a9c9e9f9f9f9f9e94877b6e6154483b2e211508000713202d3a4653606d798386868686868686857a6d60584e42382e21170d0000000000000000000000020b17222d38424e58606d7a858686868686868683796d6053463a2d201307000006121f2b37434e586774818e9aaba89b8f8275655b5044372b1f202d394653606c7985929fa1969196a19f9285796d6053463a2d201e2a36414c566774818d9aacac9b8e8175665b5044382b1f120600000000010c161f2834404a545f69727e8b949ea9a1978e81756b61554b41352d38424e58606d79839199a4a79f92877d6f675d51453e33291d140a0000000000000000000000000000000000000000000000000000000000000008141f28333f4a545f6a73808d96a0968c8073695f53473e32281e1308000000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b0000000000000000000000000000000000000005111d2935404b556976828686868686868174675b4e4134281b0e0100000000000000000000000000000000000000000000000000000009141f28343f4a545e686d7a838e929d9fa7a49f9b9892908e8e8d8e8f9197999ea1a9a29e9590867d706b60574d42362c221108000000000000121f2b3845525e6b7885919eabafa296897c6f6356493c3023160900000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a3b0aa9e9184776b5e5144382b1e11000000000000000000000000000000000000000000030c18242f39434f59606d7a86929facaea194877b6e615a50443a3024190d030000000000000000000000000000000000000000000004111d2935414c55616d7a86929fa6aba19691847c726d66615f57626f7b8895a093867a6d60575f61676d737d86929fa5ab9f958a7d7064554c4135291d110400000000000000000000000713202d3a4653606d7884919ea7a89d9083786d665f57555453504a42382d22170b000000000000000000000005111e2a36414c5663707d8996a0acaa9d9083766a5f5343392e23180c17222d3846535e6976828f9ca9aca096897d7063564d41362a1c110600000000000000000000000a1724303d4a5763707d8a96a3a4978b7e7164584b3e3125180b000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000b17222d3d4a5763707d868686867d7164574a3e3124232e3e4b5764717e868686867d7063564a3d3023170a000000000000000000000000000007121d28343f4a545e686d787f848a8d9091929292929190877b6e6154483b2e2115080006121f2c3844515c666d7779797979797979786d685d52463d30261c0f0500000000000000000000000006111c262f3c45525d686d7879797979797979776d665c5044382c1f120600000814212e3a47535f6a7884919eaba9988b7f726553493f33271b1f2b3844505b6675828f9ba8a19ea1a89c8f8275665c5044382b1f1925303e4a5764717d8a9aa4ab9e9285796c605346392d2013080000000008131e28313a44515c666e7b86929fa6a69e92857a6d61594f433a2f262f3c45515c666f7c87939fa8a39991847a6d605a50453b2f261c1106000000000000000000000000000000000000000000000000000000000000020b17222d38424e58606d7984919e9f92867b6e625a50443a3024190c030000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b00000000000000000000000000000000000000010d18242f3a4e5a667076797979797979746f64584c4033271a0d01000000000000000000000000000000000000000000000000000000030b17232e38424c565e686d79818990959b9fa2aaa39f9d9b9a9a9b9c9ea1a9a49f9c97928c837b706b60594f453b30241a1000000000000000121f2b3845525e6b7884919eabafa296897c6f6356493c3023160900000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4b0aa9d9184776a5e5144372b1e110000000000000000000000000000000000000000000a151e2935404b55606b74818e98a3aeb5a89c8f82756c61564c4135291f150b010000000000000000000000000000000000000000000613202c3945515d6773808d98a2aea49991847b6e6a605c545355626f7b8895a093867a6d605353555d606b707d8a939ea9a79c8f8276675d5145392c20130600000000000000000000000a1623303d495663707c8996a1aca096897d70665c544d494746443f382f261c110600000000000000000000000714202d3946525e6875828e9ba8aea2988b7e7165584e4330271d1207111c2a36424d5764717e8a97a1ada89b8f8275685e5246382e23170b00000000000000000000000a1723303d4a5663707d8996a3a4978a7d7164574a3e3124170b000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000616232f3c4855616b7079797979716c6155493c302323303d4955616c7179797979706b6055483c2f2316090000000000000000000000000000000c17232e38424c565e666c72797d808384858686858483817a6d6054473a2d2114070004101c2834404a545c606a6c6c6c6c6c6c6c6b605d564c41342b1e150a00000000000000000000000000000a141d2935414c565d606b6c6c6c6c6c6c6c6a605c544a3f34281c100300000815222f3b4855626e7b8896a1ada297887c6f6255493c2d22171c28333f4a5465727f8b98a9acabaca9988c7f7265544a3f34281c14212e3a4754616d7a86939faca197897c6f6256493c3024190d010000010d19242f3a434f59606d78839098a2a99e948a7e71685e52473e31281d2834404b54606b74808d96a1aba0968e81746c61574d42382d22170b0000000000000000000000000000000000000000000000000000000000000006111c262f3c45515d67707d8a939e988f82766c61564c4135291e150a0000000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000000000000000000000000000000000000000007131d323e49545e66696c6c6c6c6c6c67645c53483c3024180b000000000000000000000000000000000000000000000000000000000006111c26303a444c565e676d747c83898e9298999b9d9e9f9f9f9f9e9d9b999993908b857f786e6960594f473d33291f120800000000000000111e2b3844515e6b7784919eaab0a396897d7063564a3d3023170a00000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a99d9083766a5d5043372a1d10000000000000000000000000000000000000000006111c26303845515d67707d89939daab4b9aa9e948a7e71685d52463d31271d12070000000000000000000000000000000000000000000714212d3a4754606d7a85929faaab9f93877d6f695f58514b4855626f7b8895a093867a6d6053474b5159616b74818e9ba8ac9f92867a6d6054473a2d21140700000000000000000000000d192633404c5966737f8c99a8aa9d9184776b60544a423c3b3938332d261d140a0000000000000000000000030f1c28333f4a54616e7a86929facac9f92857a6d6053473c3120150b000e1a25313b4653606d7985929eabac9f92867b6e61544a3f34281c100300000000000000000000091623303c4956636f7c8996a2a3978a7d7064574a3d3124170a000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000714202c38444f5961636c6c6c6c64615a5044392d21212d3945505a61646c6c6c6c6360594f44382c20140700000000000000000000000000000006111c26303a444c545b60666d70737677787979787876746d685d5245392c20130700000c18232e39424a51535d606060606060605e54524c433a2f22190c030000000000000000000000000000020b19242f3a434c52545e606060606060605d53504a42382e23170c000004101c2834404b5565727f8b98a89f9f9285796c605346392d201317222d3b4855626e7b8897a19f9f9fa297887c6f6255493c2e231713202d3946525e687784909d9fa9998c7f7366564c4135291d1105000004111d2935414c55606b73808d959f9fa2978f82756c61564c41352c1f18232e39424f59606d7984919ea5a89e938a7e71695e544a3f33281c0f03000000000000000000000000000000000000000000000000000000000000000a141d2935404b55616c75828f989f948a7e71685d52453d30261c110600000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b00000000000000000000000000000000000000000115212d38424c545a5c6060606060605b58534a41362b2014080000000000000000000000000000000000000000000000000000000000000a141e28323a444c555c606b6f777d8185898c8e90919292929291908f8d8a86837e79726d665f574f473d352b20170d0000000000000000111e2a3744515d6a7784909daab0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000c1825323f4b5865727e8b98a5b1a99c8f8276695c504336291d1000000000000000000000000000000000000000020b17232e38424e58606d7984919ea5afafacafa69e92857a6d61594f43392f24180c0300000000000000000000000000000000000000030f1b27333f495364717e8a98a2aca3998d80746b60574e45404855626f7b8895a093867a6d60534740454f59626f7c8896a0aca3998a7d7063574a3d3024170a00000000000000000000020f1b2835424e5b6875818e9ba8a79a8e817467594f4239302e2d2b28221c140b02000000000000000000000006121f2b3844505b66737f8c99a3aea79a8e8174675d5145392c2013030009141f2c3845515c6674808d9aa7afa3998c7f73665c5044382b1f1409000000000000000000000916232f3c4956626f7c8995a2a3968a7d7063574a3d3024170a000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e2215080000000000000000000000000000000000000000000000000000000004101c28333e474f555760606060575550483e33281c1d28333e485055576060606056554f473d33271c1004000000000000000000000000000000000a151e29323a424a50545c606467696b6c6c6c6c6b6967605d564c4135291d1104000007121c2730394044465153535353535353524745413a31281e10070000000000000000000000000000000008131e28313a41454752535353535353535146443f3830261c1106000006131f2c3845515c6775828f939393938f8275665b5044382b1f1214212e3a47535f6a78859193939393939285796d6053463a2d2013111d2935414c566774808d93939393908376685d5246392d20130700000613202c3945515d676f7d87939393939392857b6e615a50443a30231a121d27303d45515d67707d8a939393939392857b6e665b5044382b1f120600000000000000000000000000000000000000000000000000000000000000020b18242f3a43505a616e7b86929f9e92857a6d60594f42382e23170c03000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b00000000000000000000000000000000000000000a15202a343c4347495353535353535353534f4940372c21160a000000000000000000000000000000000000000000000000000000000000020c162029323a434b515960636b7075797c7f82838485868685858382807d7a76726d67605c544d453d352b23190e050000000000000000101d2a3643505d697683909ca9b1a5988b7e7265584b3f3225180700000000000000000000000000000000000000000000000d1a2633404d596673808c99a6b3a89b8f8275685c4f4235291c0f000000000000000000000000000000000000000a141d28343f4a54606a73808d96a0acaca49fa4aca1978e81746b60554b4035291e150a0000000000000000000000000000000000000005121f2b3744505b6574818e9b9ea09f92867b6e61594f453c3c4855626f7b8895a093867a6d6053473a3e47535f6a7784919eaaab988c7f7265594c3f3226190c00000000000000000000030f1c2936424f5c6975828f9ca8a4988b7e7165584b3e302721201f1c17110a020000000000000000000000000613202d394653606c7884919eabaca095897c6f62554b4035291d11040004101c2834404b54626f7c88959fabab9e9184786d6053463b31251a0e000000000000000000000916222f3c4955626f7c8895a2a396897d7063564a3d3023170a000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e22150800000000000000000000000000000000000000000000000000000000000b16212c353e44484a535353534a49443e362c221717222c363e45494b535353534a48443d352c21160b0000000000000000000000000000000000030c1720292f383f444a5053575a5d5e5f5f5f5f5e5d5b54524c443a2f24190d010000000b151e272e34383a4446464646464646453a39352f281f160c0000000000000000000000000000000000010c161f282f35393a4546464646464646443a38342e261e150a0000000713202d3a4653606d79868686868686867f7266544a3f33281c0f121f2b37434e58687581868686868686868275665c5044382b1f120d1925303d4a5764707e868686868686877a6d6154473a2e21140700000714212d3a4754606d7a84868686868686867f71695e52483e32281e110b151e2935414b55616b75818686868686868682796c605346392d201306000000000000000000000000000000000000000000000000000000000000000007131d28313e46525e69727f8c95a0978e81746b60544a3f34281f1409000000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b00000000000000000000000000000000000000030f1b26323c464e535560606060606060605f5a52493e33271b0f02000000000000000000000000000000000000000000000000000000000000050e172029313940454f54596063676d70727576787879797878777573706d6865605d55504a423c332b231911070000000000000000000f1c2835424f5b6875818e9ba8b3a6998c807366594d402f23180c00000000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7b4a79a8e8174675b4e4134281b0e00000000000000000000000000000000000006111b262f3844505c666f7c87929fa8a69f9a939aa4a99d93897d70675d51453c30261c11060000000000000000000000000000000000000613202d394653606c78858b8e9196968f8275695e53473d333c4855626f7b8895a093867a6d6053473a37434e586976828f9ca9a69a8d8073675a4d4034271a0d0000000000000000000003101d293643505c6976838f9ca9a3978a7d7064574a3d31241513120f0b060000000000000000000000000005121e2a36424d5763707d8a96a1acaa9d9083776a6054433a2f24180d0100000c18232e3947535f6a7683909daaada1968a7d7063574d42362a1c12070000000000000000000915222f3c4855626f7b8895a2a396897c706356493d3023160a000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000005101a232c33383c3d464646463e3c39332c241a10101a242c33393d3e464646463d3c38332c231a0f05000000000000000000000000000000000000050e171d262d33383f44464a4d50515253535251504e4745413a32281e130800000000030c151c23282c2d3739393939393939382d2c29241e160d04000000000000000000000000000000000000040d161e24292c2d3839393939393939372d2c28231c150c0300000006131f2c3845515c676d79797979797979726d635742382d22170b0f1a26313c4d59656f7579797979797979757065544a3f34281c10081623303c4955616c707979797979797975685d5246392d20130700000613202c3945515d676d7879797979797979716d62574d42362c20160c030c18242f3a434f59656f7579797979797979766c665b5044382b1f12060000000000000000000000000000000000000000000000000000000000000000010c161f2a36424d57606d788390999f93887c6f665c50443b31251a0d040000000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b0000000000000000000000000000000000000006131f2b37434e585f626c6c6c6c6c6c6c6c6c645a4f43372b1e120500000000000000000000000000000000000000000000000000000000000000050e171f272f343d43484f54555c606366686a6b6c6c6c6c6b6a686664615e5653514b4c4841382f21191108000000000000000000000d1a2734404d5a6773808d9aa6b3a89b8e817568554b4034291c100400000000000000000000000000000000000000000005121e2a36424d576976838f9ca9b2a5988c7f7265594c3f3226190c0000000000000000000000000000000000000b17222d38414d57606d78839099a3ab9f948f87939fa8a59e9184796d60584e42382e23170c0300000000000000000000000000000000000613202d394653606c777c7e8184878a8b7e7165574d42352f3c4855626f7b8895a093867a6d6053473a32414e5b6874818e9ba7a79a8d8174675a4e4134271b0e0000000000000000000003101d293643505c6976838f9ca9a396897c706356493d3023160a06030000000000000000000000000000000714202d3a46525e6975828f9ca8aea3988b7f7265584e4331281d130700000007121d2b37434e5865717e8b98a2aea89c8f8275695e5346392e23180c0000000000000000000815222f3b4855626e7b8895a1a295897c6f6256493c2f231609000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e22150800000000000000000000000000000000000000000000000000000000000008111a21282c2f303939393931302d28221a120808121a22282d303139393939302f2c27211a11080000000000000000000000000000000000000000050b141c22282e34383a3d404344454646454543413a39352f2820160c010000000000030b12181c1f202a2d2d2d2d2d2d2d2b21201d19130c040000000000000000000000000000000000000000040c13191d20212b2d2d2d2d2d2d2d2a201f1c17110a030000000004101c2834404b555c606c6c6c6c6c6c6c66635b51462f261c11060a1520313d48535d65686c6c6c6c6c6c6c69655d5442382e23170b0814202d3944505a61646c6c6c6c6c6c6c6b5d564c4135291d1105000004111d2935414c555d606b6c6c6c6c6c6c6c65625a50453b30241a0e040007131d28313e47535d65686c6c6c6c6c6c6c69605b544a3f33281c0f03000000000000000000000000000000000000000000000000000000000000000000040d1a25303b44505c666f7c87939f9a9083786d60574d42362a1f160c0100000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000000000000000000000000000000000000000815212e3b47535f6a767979797979797979766c5f5346392d2013060000000000000000000000000000000000000000000000000000000000000000050d1925303b444c525f6060606060605d5d5e5f5f5f5f5e5d5c5a6060606060605a58534a41362b201408000000000000000000000c1925323f4c5865727f8b98abb5aa9d908477675c5145382c1f13060000000000000000000000000000000000000000000714212d3a46535f697885929fabb4aa968a7d7063574a3d3024170a0000000000000000000000000000000000040f1b27333f49535f69727f8c95a0aba3998f82808c96a0aca0968d80736a5f544a3f34281f1409000000000000000000000000000000000005121f2b3744505b656c6f7274777a7d807a6e6154473b312f3c4855626f7b8895a093867a6d6053473a35414b556875828e9ba8a69a8d8073675a4d4034271a0d0000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c302316090000000000000000000000000000000003101c28343f4a54616e7b87929facac9f92867a6d6154473d3221160c01000000000f1b26313c4754606d7a85929facac9f93877b6e61544a4034281c100400000000000000000815212e3b4854616e7b87949f9f95887c6f6255493c2f221609000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000000000810161c2023242d2d2d2d2423211c17100800000810171d2123242d2d2d2d2323201c160f0800000000000000000000000000000000000000000000020a11171c23282c2d31343638393939393836342d2c29241e160d040000000000000000070c1012131e202020202020201f1413110d08010000000000000000000000000000000000000000000001080d1113141f202020202020201e1312100c06000000000000000c18232e39434b51535f606060606060595751493f351d140a000314202c37414b53595b606060606060605c5a544b4230261c110604101c28333e485055576060606060606054524c443a3024190d010000010d19242f3a434c51545e60606060606060585650483f33291f12080000010c161f2c35414b53595b606060606060605c53504a42382d22170b000000000000000000000000000000000000000000000000000000000000000000000009141f28343f4a54606a74808d97a0958c7f72695e53463e31281d130700000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000000000000000000000000000000000000000916222f3c4955626f7c8686868686868686796c605346392d201306000000000000000000000000000000000000000000000000000000000000000005111e2a36414c565e6c6c6c6c6c6c6c6a675f555353524f5960636c6c6c6c6c6c67645c53483c3024180b00000000000000000000091623303c4956636f7c8999a4afac9f9286796d6053473a2d22170b0000000000000000000000000000000000000000000815222e3b4855616e7b8897a2adaea298887b6e6155483b2e22150800000000000000000000000000000000040e1a242b3744505b656e7b86929fa7a89f92867c7984919ea5a89f92877c6f665c50443c31261a0e0500000000000000000000000000000000030f1b27333f49535b60626568686d70736e685e524639292f3c4855626f7b8895a093867a6d6053473a3a45515d677683909da9a5998c7f7266594c3f3326190c0000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c302316090000000000000000000000000000000006121f2c3844505c6673808c99a3afa89b8e8175685e5246392d20130400000000000a15202c3945515d6774818e9ba7afa4998d8073665c5144382c1f150900000000000000000814212e3b4754616e7a8793939393887b6f6255483c2f221509000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e2215080000000000000000000000000000000000000000000000000000000000000000050b1014161720202020171614100b0500000000060c1114171820202020171614100b0500000000000000000000000000000000000000000000000000060b11171c1f2024272a2b2c2c2c2c2b2a2821201d19130c0400000000000000000000000406071113131313131313120706040100000000000000000000000000000000000000000000000000000104060712131313131313131107060300000000000000000007121d273039404546525353535353534c4a463f372d230b0200040f1a252f3941484d4e535353535353534f4d494239301e140a00000b17222c363e44494a535353535353534746413a32281e13080000000008131e28313a41454751535353535353534b4a453f362d20170d00000000040d1a232f3941484d4e535353535353535046443f382f261c11060000000000000000000000000000000000000000000000000000000000000000000000030b17232e38424e58606d7a84919e9f92867b6e615a50433a2f24180d01000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000000000000000000000000000000000000000916222f3c4955626f7c8893939393939386796c605346392d20130600000000000000000000000000000000000000000000000000000000000000000714202d3946525e68767979797979797771675b4f464854606b70797979797979746e64584c4033271a0d010000000000000000000714202d3a4753606d7a86939facaea399897d706353493f33271b0f030000000000000000000000000000000000000004111d2935414c5565717e8b98a9b3ac9f9285786d6053463a2d201307000000000000000000000000000000020c16202a36424d56606c77828f98a3aca0968c8073707d8a939eaaa3999083786d60574d42372b20170d02000000000000000000000000000000000b17222d38414950535558565d616366615e564c41362a2f3c4855626f7b8895a093867a6d6053473e444d57606d7a86929faca9988b7e7165584b3e3225180b0000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c30231609000000000000000000000000000000000713202d3a4653606d7984919eabaca096897d7063564c4135291d1105000000000004111d2935414b55636f7c8995a0acab9e9185796d6053463c31261a0e00000000000000000714212e3a4754616d7a8686868686867b6e6255483b2f221508000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000000000000000407090a131313130b0a0804000000000000000005080a0b131313130a0907040000000000000000000000000000000000000000000000000000000000060c101213171a1d1e1f20201f1e1d1b1413110d080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b151e272e34383a464646464646463f3e3a352d251c1100000009131d272f373d40424646464646464642413d3730271e0c02000005101a242c33393c3d464646464646463a3935302820160c0200000000010c161f282f35393a45464646464646463e3d3a342d241b0e05000000000008111d272f373d404246464646464646433938332d261d140a0000000000000000000000000000000000000000000000000000000000000000000000000006111c26303d45515d67717e8a949e988f82756c61554b4035291d1104000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000000000000000000000000000000000000000916222f3c4955626f7c88959f9f9f9f9386796c605346392d20130600000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a86868686868683776a5d5144495663707d8686868686868074675a4e4134271b0e010000000000000000000613202c3945515d677784909daab4ab9a8d8073655b5044372b1f140a000000000000000000000000000000000000010c13202c3945515d6775828e9ba8b5a89c8f8275665c5044382b1f120600000000000000000000000000000008131e28323a46525e69717e8b949faaa59e9184796d6b75818e98a2aba0958c7f72695f53463f32291e14080000000000000000000000000000000006111b262f383f4446494b4c5254575954524c443b30252f3c4855626f7b8895a093867a6d605347464f565f69727f8b98a3ada197887c6f6255493c2f2216090000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c3023160900000000000000000000000000000005121e2b37424d5764717d8a97a1adab9e9184786c6053463a3025190d010000000000010d18242f3a4854606b7784919dabada1978a7d7164574d42372b1d1207000000000000000713202d3946525e687679797979797976695f53473a2e211408000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306070a0d10111213131212100e0707040100000000000000000000000000000000000000000000000001040707131313131313130d0c0a0702000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c151d23282c2d3939393939393933312e2a231c130a000000020b151d252c313435393939393939393634312c261e150c0000000008111a22282d3031393939393939392e2d29241e160e04000000000000040d161e24292c2d383939393939393932312e29221b1209000000000000000b151d252c31343539393939393939362d2b28221c140b0200000000000000000000000000000000000000000000000000000000000000000000000000000a141e2935414c55616c75828f9893948a7d70675d5145392c201306000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000000000000000000000000000000000000000916222f3c4955626f7c8895a2acac9f9386796c605346392d20130600000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a87939393939084776a5d5144495663707c89939393938d8174675a4e4134271b0e0100000000000000000004101d2935404b556773808d9aa9b3ab9e9184786c6053463c2f261b1106000000000000000000000000000000000007131d28333f4a54606d7a86929facb1a7988b7f7265544a3f34281c10030000000000000000000000000000030d1924303a44505a616e7b85929fa6a99e93897d7067616e7b86929fa7a79f92867b6e615a50443b3025190d04000000000000000000000000000000000a141d262d3337393c3f4146474a4d4746413b3229222f3c4855626f7b8895a093867a6d605350535961686e7b85929eaaac9e9285786c605346392d2013060000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c302316090000000000000000000000000000000714212d3a46535f6976828f9ca9afa3998c7f73655b504437281e13080000000000000007131d2c38434f5965727f8c99a3aea99c8f8276695f5347392e23180c0000000000000005111d2a36414c565e6c6c6c6c6c6c6c6c5f574d42372b1e1206000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e221508000000000002080d10121313131313131313070704010000000000000000000000000000000000000000000000000002070b0d0d13131313131313130f0e0c090400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080d111314202020202020201a1916130d07000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181c1f202c2d2d2d2d2d2d2625221e18110a0100000000030b131a202527282d2d2d2d2d2d2d292825211b140c0300000000000810171c2023242d2d2d2d2d2d2d21201d19130c040000000000000000040c13191d20212b2d2d2d2d2d2d2d2524211d1811090000000000000000030b131a202527282d2d2d2d2d2d2d29201f1c17110a02000000000000000000000000000000000000000000000000000000000000000000000000000000020c19242f3a43505a616e7b8686868686847a6d6053473a2d201407000b1825323e4b5865717e8b98a4a69a8d8073675a5a6773808d9aa6a4988b7e7165584b3e3225180b000000000000000000000000000000000000000916222f3c4955626f7c8895a2acac9f9386796c605346392d20130600000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a87949f9f9d9084776a5d5144495663707c89969f9f9a8d8174675a4e4134271b0e01000000000000000000010d18242f3d495663707c8997a1adaca196897d7063584e41382d22170f06000000000000000000000000000000071118242f3844505b66717e8b98a2aeaca095887b6e6155483b2e23170b0000000000000000000000000000010b151f2935414c56616c75828f97a2ada2978e81756b605e69727f8c95a0aca2988f82766c62564c41362a1f160c01000000000000000000000000000000020b141b22272b2d2f3035393a3d403b3936302920232f3c4855626f7b8895a093867a6d60545c60636b707a839197a1ada49a8e8175655b5044372b1f12050000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c30231609000000000000000000000000000004101c2834404b55616e7b87939facac9f92867b6e6153493f3327160c0200000000000000010f1b27323d4754616d7a86929facac9f93877b6e61554b4034281c1004000000000000010d1925303a444c525f60606060606055534d453c31261a0e02000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e22150800000000060d14191c1f1f202020202020201413110d080100000000000000000000000000000000000000000001080e1317191a20202020202020201c1b191510090200000000000000000000000000000000000000000000000000010507070b0e101212131312110f0d0a07060400000000000000000000000000000000000000000000000000040c13191d202d2d2d2d2d2d2d2d2625231e19120a01000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c1013131f202020202020191816120d070000000000000002090f14181b1b202020202020201c1b191510090200000000000000050b10141617202020202020201413110d08020000000000000000000001080d1113141e20202020202020181715110c060000000000000000000002090f14181b1b202020202020201d13120f0b0600000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e28313e46535f696e7979797979786d675d5145392c201306000b1825323e4b5865717e8b989f9f9a8d8073675a5a6773808d9a9f9f988b7e7165584b3e3225180b000000000000000000000000000000000000000916222f3c4955626f7c88959f9f9f9f9386796c605346392d20130600000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794a1aa9d9084776a5d5144495663707c8996a3a79a8d8174675a4e4134271b0e01000000000000000000000713202d3a4653606d7985929eacb2a89c8f82756a5f53493f332721180f0802000000000000000000000003091119232935404b55606c7884919daab3a99d908477695f53463a2d1c1106000000000000000000000000000007121d27313945525d68717e8a939ea9a69f92857a6d615957606d7883909aa4aa9f948b7e71685e52463e31281e130800000000000000000000000000000000020a11171b1f202224292d2e30332e2d2a25292c2e343c4855626f7b8895a093867a6d6063666d70767d859195a0a9a89f93877c6f6253493f33271b0f030000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c30231609000000000000000000000000000006131f2c3845515c6773808d9aa4afa99c8f8275695e5241382d2217040000000000000000000a16202d3946525e6875828e9ba8afa49a8d8073675c5145382c1f150a0000000000000008131e28323a4146535353535353534847423c332b23190f04000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e2215080000000810181f25292b2c2d2d2d2d2d2d2d2d201d19130c0400000000000000000000000000000000000000020a12191f2326272d2d2d2d2d2d2d2d292825211b140c030000000000000000000000000000000000000000000003080d111314181b1d1e1f20201f1e1c1a171413100c0701000000000000000000000000000000000000000000040d161e24292c393939393939393933322f2a241c130a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040607131313131313130c0c0906010000000000000000000004080c0e0f131313131313130f0f0c0904000000000000000000000004080a0a131313131313130707050100000000000000000000000000000104060712131313131313130b0b0905010000000000000000000000000004080c0e0f13131313131313100606030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f2a36424d575f616c6c6c6c6c6b605d554b4035291d1104000b1825323e4b5865717e8b939393938d8073675a5a6773808d939393938b7e7165584b3e3225180b000000000000000000000000000000000000000916222f3c4955626f7c8893939393939386796c605346392d20130600000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794a1a99d9084776a5d5144495663707c8996a3a79a8d8174675a4e4134271b0e010000000000000000000006121f2c3844505c6673808d9aa4afaa9e94887c6f655b50443d332a2219140e09060400000100000406090e141a232b353d45515d67717e8a95a0acada2978b7e7265574d42362a1e0a0000000000000000000000000000030c18242f39434f59606d7a85919ea5ab9f948b7e71685e52505c666f7c87939fa9a69f92857a6e61594f433a2f24190c030000000000000000000000000000000000060b0f121316191d2021242621272c2f35393a3f444855626f7b8895a093867a6d6d7074797d828a9297a0a7aaa1968e81756a5f5341382d22170b000000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c3023160900000000000000000000000000000713202d3a4653606d7985929eacada1978a7d7064564d422f261b110600000000000000000005111d2a36414c5663707d8a96a1adac9e9285796d6053463c31261b0f01000000000007131e29333d454c5052535353535353534948443d352b21160b000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e221508000006101a222a3035383939393939393939392c29241e160d040000000000000000000000000000000000000a141c242b2f333439393939393939393534312c261e150c0200000000000000000000000000000000000000060b0f13191d20212427292b2c2c2c2c2b292724201f1d18120f0a04000000000000000000000000000000000000010c1620282f35394646464646464646403f3b352e251c1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d1a26313b454d53555f606060605e53514b433a2f24180d01000b1825323e4b5865717e8686868686868073675a5a6773808686868686867e7165584b3e3225180b000000000000000000000000000000000000000916222f3c4955626f7c8686868686868686796c605346392d20130600000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a87949c9c9c9084776a5d5144495663707c89969c9c9a8d8174675a4e4134271b0e010000000000000000000003101c28343f4a54616e7b87939fabb0a69c9083776c60584e453c342a251e1a1312100c070e070c1013131a1f262a353d47505a606d7984919ea7b1a99f9285796d6053473b31261a0e00000000000000000000000000000a151e2935404b55606b74818e97a1ada3999083776c60564c4a54606b74818e97a1ada2978e81756c61554c4135291e150b00000000000000000000000000000000000000030506080d11131821272c33383a4145474a505356626f7b8895a093867976797d81858a8f949ea1a9a9a29891847a6e61584e432f261b1106000000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c302316090000000000000000000000000006121f2b37434e5864717e8a97a1adac9e9184796d6053463b3020140a00000000000000000000010d1925303a4653606c7884919eacada1978a7e7164584e43372b1d120700000000000c18242f3a454f575c5e6060606060606056544f473d32271b10040004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e22150800020d18222c343b414446464646464646464639352f2820160c010000000000000000000000000000000006101c262e363b3f40464646464646464642413d3730271e14090000000000000000000000000000000000020a11171b1f252a2d2e3134363839393938383633302d2c29241d1b150e09030000000000000000000000000000000008131e28323a414553535353535353534d4b4740372e24190d0200000000000000000000000000000000000000000000000000000000000000000000000000000002080d10121313131313131313131313131313131313131313131313121211100e0b090706040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306131313131313131308070502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141f29333b4246485253535353514745403a31281d130700000b1724313d4a56626c71797979797979736e645858646e73797979797979716c62564a3d3124170b000000000000000000000000000000000000000815212e3b47535f6a767979797979797979766c5f5346392d20130600000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a878f8f8f8f8f84776a5d5144495663707c898f8f8f8f8d8174675a4e4134271b0e0100000000000000000000000c17232e3846535f6975828e99a3afab9f948b7f726a60574e463e36302a25201f1c181b1a1b181c1f20262b31363f474f59616c74808d96a1adada2978d8073675d5145392a1f14090000000000000000000000000006111c26303845515d67707d89939da9a89f92877c6f655b5044424f59616d7a85929ea6a99e938a7d70675d51453d30271d1207000000000000000000000000000000000000000000050d161d242932383d44484c5154545c6063666f7b8895a2998c7f8285898d91979c9fa6aca69f9792867c6f685e52463c311d140a00000000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c30231609000000000000000000000000000815212e3a47535f6a7683909ca9afa49a8d8073665c5044382c1f1202000000000000000000000008131f2b3844505b6673808c9aa4afa99c9083766a5f5347392f24180d01000000030f1b2834404c5761686b6c6c6c6c6c6c6c6360594f44382c2013070004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e2215080008141f2a343e464d5152535353535353535345413a32281e1308000000000000000000000000000000020b18222e3840474c4d53535353535353534f4d49423930261b1004000000000000000000000000000000060b141b22272b3036393a3e414345454646454442403d3a38352f2b27201a140d050000000000000000000000000000010d19242f3a444c525f606060606060605957524940352a1e13070000000000000000000000000000000000000000000000000000000000000000000000000000060d14191c1f1f202020202020202020202020202020202020202020201f1e1e1c1a18161413100c070501000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c101220202020202020201514120e0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d17212931363a3b4646464646453a39352f281f160c0100000915212e3a45505a62656c6c6c6c6c6c67645c52525c64676c6c6c6c6c6c65625a50453a2e2115090000000000000000000000000000000000000006131f2b37434e585f626c6c6c6c6c6c6c6c6c645a4f43372b1e120500000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8283838383838174675b4e414855626f7c8283838383827f7265584c3f3225190c00000000000000000000000006111c2a36424d57626e7b87929fa8b0a69f92877c6f695f585046413b36312d2c282327272723282c2d31373b42465159606b717e8a929da8b1a79f92857a6d61554b4035291d1004000000000000000000000000020b17232e38424e58606d7984919ea5aca1968d80736a5f53493f3d46525e68717e8b949faba59e91847a6d60594f43392e23180b0200000000000000000000000000000000000000050f171f282f353d43484f54555d6064666d6f73767c8895a29c918c8f92989a9ea1a9aca8a09d948f857d6f6a60564c41342a200b0200000000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c3023160900000000000000000000000004101d2935404b55626f7c88949fabac9f93877b6e61544a3f34281c10030000000000000000000000030f1c28333f4a54616e7b87939facab9f94887c6f62554b4035291d100400000005111e2b3744505c68737879797979797979706b6054483b2f2216090004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e221508000d1925303b4650585d5f606060606060605f524c443a2f24190d0100000000000000000000000000000a141d2a34404a52585a60606060606060605c59544b42372c21150900000000000000000000000000020a11171d262d33373a4146474b4e505152535352514f4d4a4745403937322a251f170f080000000000000000000000000004111d2935414c565d6c6c6c6c6c6c6c6c66635b52473b2f23160a000000000000000000000000000000000000000000000000000000000000000000000000000810181f25292b2c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2c2b2a29272523201f1c1813110d08020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a11171c1f2d2d2d2d2d2d2d2d21211e1a140d05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060f171f262a2d2e3939393939382d2c29241d160d0400000005111d29343f485056586060606060605a58524a4a52585a606060606060585650483f34291d110500000000000000000000000000000000000000030f1b26323c464e535560606060606060605f5a52493e33271b0f0200000000000000000000000000000000000000000000000000000000000000000713202c3945525d686d767676767676746f64584c4047535f6a6f767676767676726d62564a3e3125180b000000000000000000000000000e1a26313b47535f6974808d96a0abaea39991857b6e6a615a524c46423c3a38342e3434342e34383a3c42474d535b626b707d86929fa4aeaaa0958b7f72685e5243392f24180d010000000000000000000000000a141d28343f4a54606a73808d96a0aca59e9184796d60584e413835414c56606c77829099a3ada1968d80746b60554b4034281d140a000000000000000000000000000000000000050e172129313940454f54596063676d7175797c808387929faca39c999c9fa2aaabaca49f9c96918a827b6f6b60584e443b3022180e0000000000000000000000000003101d293643505c6976838f9ca9a296897c6f6356493c302316090000000000000000000000000613202c3945515d6774808d9aa6b0a99c8f8276695f5342382e23170c000000000000000000000000000b17222d3846535e6976828f9ca9b0a69a8d8074675d5145392c20150a00000005121f2b3845525e6b7885868686868686867d706356493d3023160a0004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f07000b1724313e4a5764717d8a97a4aea194887b6e6155483b2e22150800101c2935414d5862696c6c6c6c6c6c6c6c6c5d564c4135291d11040000000000000000000000000006111c262f3c46525c64676c6c6c6c6c6c6c6c68655d54493d3125190c000000000000000000000000030b141b22272f383f44464c5254575a5c5e5f5f5f5f5e5c5a5753514b47433d363129211a120a0100000000000000000000000713202c3945525d687679797979797979736d63574b3f3225190c00000000000000000000000000000000000000000000000000000000000000000000000006101a222a30353839393939393939393939393939393939393939393939393838373634322f2d2c2923201d19130f0a030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c151c23282c39393939393939392e2d2a251f170f05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060d141a1e21222c2d2d2d2d2b20201d18130c0400000000010c18222d363f454a4b5353535353534d4c474040474c4d5353535353534b4a453f362d22180c0100000000000000000000000000000000000000000a15202a343c4347495353535353535353534f4940372c21160a00000000000000000000000000000000000000000000000000000000000000000004111d2935414c565d6069696969696967645c53483c434e585f6269696969696965625b51463a2e2216090000000000000000000000000009141f2b37424d57606d79849199a4afaba19791847c706c615e56534d494644404141414141404546494d53575f616d727d869298a2aeaca2989083786c60564c4131281d120700000000000000000000000006111b262f3844505c666f7c87929fa8aa9e938a7d70675d51463c2f303a44505b656f7c87929fa8a89f93887d6f675c51453c2f261c110600000000000000000000000000000000030c172029333b434b515960636b70757a7e8285898c909299a3afada7a5a9aaaba39f9c9a93908a847e766e6960594f463c32291e10060000000000000000000003070909101d293643505c6976838f9ca9a296897c6f6356493c302316090000000000000000000000000714202d3a4753606d7985929fabada2978a7e7164574d4230261c11060000000000000000000000000006111c2a36424d5764717e8a97a1adab9f9285796d6053473c32271b0f01000005121f2b3845525e6b7885919393939393897c706356493d3023160a0004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e52452f24180c000b1724313e4a5764717d8a97a4aea194887b6e6155483b2e22150800121f2b3844515d6974797979797979797976685d5245392c201307000000000000000000000000000b17222d38424e58646e737979797979797979756f65594d4134281b0e0200000000000000000000030c151d262d333d41495053565e616467696b6c6c6c6b6b696663605d55544e46423b332c241c130a01000000000000000000000714212d3a4754606d7a86868686868686807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000000020d18222c343b4144464646464646464646464646464646464646464646464645454443413e3c3a38342f2d29241e1a150f0a040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151e262e343846464646464646463b3a36312921170d0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e1214151f202020201e1413110d070100000000000006111b242d343a3d3e464646464646403f3b36363b3f404646464646463e3d3a342d241b1106000000000000000000000000000000000000000000040e18222a32373b3c464646464646464646433e372e251b1005000000000000000000000000000000000000000000000000000000000000000000010d1924303a444c52545c5c5c5c5c5c5b58534a41363c464e53555c5c5c5c5c5c585651493f34291e120600000000000000000000000000030e1a26313c45515d676f7d87939fa4aea9a19691867e756e68615e575653514a4e4e4d4e4e4b515356575f62696e767f879298a2aaafa49a92867c6f665b50443a301f160c010000000000000000000000000b17222d38414d57606d78839099a3aea2988e81756b61554b40342a27333f49535f6a73808d96a1ada49a9184796d60584e42382d22170b030000000000000000000000000000000b151e29333b454d555d606b6f767d81868a8e9298999d9fa3abb5aca6a8a09e9a9992908c87837e78716c615e574f473d342b20170d000000000000000000040a0f131516191c28333f4a546a7683909da9a296897c6f6356493c30231609000000000000000000000006131f2b37434e5865717e8b97a2adab9f9285796d6053473b3120150a0000000000000000000000000000000e1a25313b4653606d7985929eabaea2988b7e7165584e43372b1e1308000005121f2b3845525e6b7885919e9f9f9f96897c706356493d3023160a0004111e2b3744515e6a7784919daaa89b8f8275685c4f4235291c08000e1a2734414d5a6774808d9aa7ab9e9285786b554b4035291d10040b1724313e4a5764717d8a97a4aea194887b6e6155483b2e22150800131f2c3946525f6c7986868686868686867a6d6054473a2d211407000000000000000000000000030f1c28333f4a545f6a738086868686868686868275685c4f4235291c0f02000000000000000000020c151e272f383f444e535b6063686d7174767878797978777573706d67626058534d453e362e251c130a000000000000000000000714212d3a4754606d7a8793939393938c807366594d4033261a0d000000000000000000000000000000000000000000000000000000000000000000000008141f2a343e464d5152535353535353535353535353535353535353535353535251514f4d4b494745403a3935302b26201b150c070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c2630383f4453535353535353534846423b33291f14090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507081313131313120706040100000000000000000009121b22292e313239393939393934332f2b2b2f333439393939393932312e29221b1209000000000000000000000000000000000000000000000006101820262b2e2f39393939393939393937332c251c1309000000000000000000000000000000000000000000000000000000000000000000000008131e28323a4145475050505050504e4c4841382f343c4347485050505050504c4a463f372d23180d01000000000000000000000000000009151f2935404b55606b727f8b929da4ada9a198928a817a746e696562605c545b5a5a5a5b545c606266696e747b828b9299a2aaaea39f93887e706a5f544a3f32291e0d04000000000000000000000000040f1b27333f49535f69727f8c95a0aba79f92857b6e61594f43392f22222d38414e58606d7984919ea6aca0958c80736a5f544a3f33281f1409000000000000000000000000000007121c27303b454d575e676d747c83898e92989b9fa2aaa9a8aab0aca29a9796918e8a86837f7b76716d66615a524d453d352b22190e050000000000000000070f161b1f222325252b3844505b667784909daaa296897c6f6356493c3023160900000000000000000000000815222e3b4754606a7783909da9b1a79a8d8074675c5145382c1f130300000000000000000000000000000009141f2c3845515c6774808d9aa7b1aa9d9083776a6054473a2f24190d010005121f2b3845525e6b7885919eabaca396897c706356493d3023160a0004111e2b3744515e6a7784919daaa99c8f8376695c50433025190e020e1a2734414d5a6774808d9aa7ac9f928679675d5145392c1f13060b1724313e4a5764717d8a97a4aea194887b6e6155483b2e22150800131f2c3946525f6c7985929393939393877a6d6054473a2d2114070000000000000000000000030d1a232b3844505b666f7c8792939393939392857b6e6154473b2e211408000000000000000000000a141e2730394149505860656c70767a7e818384858686858482807d79746f6a615e57504840372e251c12090000000000000000000714212d3a4754606d7a87939f9f9f998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000000d1925303b4650585d5f6060606060606060606060606060606060606060605f5f5e5d5c5a585653514b4746413a37312b262018120b0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c17232e38424a505f606060606060605f534d453b31251a0e02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000911181d2124252d2d2d2d2d2d2726231f1f2326272d2d2d2d2d2d2524211d18110900000000000000000000000000000000000000000000000000060e151b1f21222d2d2d2d2d2d2d2d2d2b27211b130a010000000000000000000000000000000000000000000000000000000000000000000000020c1620283035393a43434343434341403c362f262a32373b3c4343434343433f3e3a342d251b1107000000000000000000000000000000030d18242f3a434f59626d74808d929ca3adaaa29f938e86807b76726f6d6669686767676869666d6f72777b81868f949fa3ababa39f918c7f726c61584e42382d20170d000000000000000000000000040e1a242b3744505b656e7b86929fa7ab9f958b7f72695e52473e31271d1b262f3c45515d67707d8a949eaaa89f92877c6f665b50443b31251a0e04000000000000000000000000000c18232e39424d575e696e79818990959b9fa3aaaaa8a19e9c9ea6a69a908a8784817d7a76726e6964605c545046423b332b23191007000000000000000007101921272c2f30323230394653606c7985929faca295887c6f6255493c2f2216090000000000000000000004111d2935414c56626f7c88959fabab9f95887c6f62554b4034291c100400000000000000000000000000000004101c2834404b55626f7c88959fabab9f95887c6f62564c4135291d11040005121f2b3845525e6b7885919eabaca396897c706356493d3023160a0004111e2b3744515e6a7784919daaaa9d9083776a564c41362a1e11050e1a2734414d5a6774808d9aa7afa399867a6d6053473a2d2014070b1724313e4a5764717d8a97a4aea194887b6e6155483b2e22150800131f2c3946525f6c7985929f9f9f9f93877a6d6054473a2d21140700000000000000000000010b151f2a36414c56606c78839099a39faa9e948b7e71685e5246392d20140700000000000000000006111c263039424a535b606a6f787d82868a8d8f9192929292918f8d8a86817c756e69615a524a40372e241b0f0600000000000000000714212d3a4754606d7a8793a0aca6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000000101c2935414d5862696c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b6b6a69676562605c5554524c47433c373228231d150c0700000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a545c6c6c6c6c6c6c6c6c6c5e574d42362a1e12050000000000000000000000000001070b0f111213131313131313080705020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c111517182020202020201a1917131317191a202020202020181715110c06000000000000000000000000000000000000000000000000000000040a0f1315162020202020202020201e1b1610090100000000000000000000000000000000000000000000000000000000000000000000000000040e161e24292c2d3636363636363433302b251d20262b2e2f36363636363632312e29231b1309000000000000000000000000000000000007131d28313d47515b606c77808c919ea1a9aea59e98928d87837f7c79777674747474747677797c7f83888e92999fa6aea8a199928b7f736d635a50463c2f261c0e050000000000000000000000020c16202a36424d57606c77829098a3aea3999083786c60564d42352c1f15141d2935404b55616c75828f98a2aea3999083786c60574d42362a20160c02000000000000000000000004101c2834404a545e696e7b838e939d9fa7aca7a09d9996918f949ea4978a7e7b7774716d6865615e5753504a423e363029211911070000000000000000040f19232b32383b3c3f3f3f424b55626e7b8898a2aea894877b6e6154483b2e211508000000000000000000000613202c3945525d6874818e9aa79faa9d9083766a5f5343392f23180c00000000000000000000000000000000000c18232e3947535f6a7683909daa9fa79a8e8174685d5245392c2013060005121f2b3845525e6b7885919e9f9f9f96897c706356493d3023160a0004111e2b3744515e6a7784919daaab9e918578685e5246392d2014070e1b2834414e5b6774818e9aa7b5ab94887b6e6155483b2e2215090b1825313e4b5864717e8b97a4aea194887b6e6155483b2e22150800131f2c3946525f6c7985929facaca093877a6d6054473a2d2114070000000000000000000007121d27313946525e68727f8b959fabaea2988f82766c62564d41362a1e11050000000000000000030d17232e38424a545c656c737c838a8f93999a9c9e9f9f9f9e9e9c9998928e89827b716c635c524940362d22180b02000000000000000714212d3a4754606d7a8793a0ada6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000000121f2b3844515d697479797979797979797979797979797979797979797979797878777674716f6d6764615d56534e47433c342e271e191008000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2c3844505c66767979797979797976695e53463a2d211407000000000000000000000000050c12171b1d1e202020202020201514120e0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105090b0b1313131313130d0d0b07070b0d0d1313131313130b0b09050100000000000000000000000000000000000000000000000000000000000003060809131313131313131313120f0a0500000000000000000000000000000000000000000000000000000000000000000000000000000000040c13191d2021292929292929282724201a13151b1f21222929292929292525221e181109010000000000000000000000000000000000010c161f2b353f44505b656c747f8a92979ea6acaaa29f9a93908c898684828181808181828486898c90959a9fa3ababa49f9691877e736d635b51473e342a1d140a00000000000000000000000008131e28323a46525e69727e8b949faaa89f92877c6f665b50443b30231a0d0b18242f3943505a616e7b86929fa8ab9f958b7f72695e53463e32281e1308000000000000000000000006121f2c3844515c666e7b8490959da5aba49f9b95908c8884828f9ca09386796e696764605d5654534d46443f38302a251f170f070000000000000000000a16212b353d4348494c4c4c4d525d67727f8c99aaaca096867a6d6053473a2d201407000000000000000000000714212d3a4754606d7a869293939393988b7e7165584e4331271d1207000000000000000000000000000000000007121d2b37434e5865717e8b989393939392867a6d6054473a2d2114070005121f2b3845525e6b7885919393939393897c706356493d3023160a0004111e2b3744515e6a7784919daaada197877a6e6154473b2e23180b0f1b2835424e5b6875818e9ba8b0a3978a7d7064574a3d31261a0d0c1825323f4b5865727e8b98a5aea194887b6e6155483b2e22150800131f2c3946525f6c7985929facada093877a6d6054473a2d211407000000000000000000020b18242f39434f59616e7a85929fa7b0a69f92867b6e615a50443b3025190e0200000000000000010b151f28343f4a545c666d77808890959c9fa4aba8a5a3a2a2a3a5a8aaa39f9b938f867e736e635b52483e342a1d140a000000000000000714212d3a4754606d7a8793a0ada6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000000131f2c3946525f6c79868686868686868686868686868686868686868686868685848482807e7c7975716d68625f58534e454039302a221a1109000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d78868686868686867b6e6154483b2e2115080000000000000000000000060f161d23272a2b2d2d2d2d2d2d2d22211e1a140e060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d1113141d1d1d1d1d1d1b1a18140f080a0f1215151d1d1d1d1d1d191816120d070000000000000000000000000000000000000000040d192327333f49535b606d737d858f949da0a7acaca49f9c989892918f8e8d8d8d8e8f919298999d9fa7acaca69f99938d847d716c635b51493f352c22180b020000000000000000000000030d1924303a44505a616e7b85929fa6ada1968d80746a5f544a3f32291f110807121d28313e46535f69737f8c95a0aca79f92867b6e615a50443a3025190d0400000000000000000005111e2a36414c56606d78829096a0a7a8a099938e88837f7b787c8895a093867a6d60565754524c4846423b38342e261e1a140d05020000000000000000030f1b27323d474f5456585859575e616d7984919eabaa9e918477675d5145392c201306000000000000000000000c1925323f4c5865727f8686868686868686796d6054473c3121150b010000000000000000000000000000000000000f1b26313c4754606d7986868686868686867f7265584b3f3225180c0005121f2b3845525e6b7885868686868686867d706356493d3023160a0004111e2b3744515e6a7784919daab3a9968a7d7063554b4034281d14111c2935424f5c6875828f9ba8b3a6998c807366584e43372b1f16111926323f4c5965727f8c98a5b5ab94877a6e6154473b2e21140800131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000a141d2935404b55606b75818e97a2adaa9f948b7e72695e52483e32291f1408000000000000000007121d27313944505c666d78818c939a9fa7a9a29f9b9896959596989b9fa2aaa59e98928a80736e635a50463c2f261b11060000000000000714212d3a4754606d7a8793a0ada6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000000131f2c3946525f6c7985929393939393939393939393939393939393939399929291908f8d8b8985827e7a756f6a625f58514b433c342c231b12090000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d79869393939393877b6e6154483b2e21150800000000000000000000050f1820282f333738393939393939392e2d2b261f180f06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020608080b0e1011121313121211100d0b0807050200000000000000000000000000000000000000000000000000000000000000000000000000000000010406070a0e10111213131212100e0b080806020000000000000000000000000000000000000000000000000000000000000000000000010407071010101010100e0d0b08030000030608091010101010100c0b09060100000000000000000000000000000000000000000000071017222d384149505b636b707b828990959c9fa4acaca9aaa39f9d9c9b9a9a9a9b9c9d9fa3aaaaababa39f9b948f878079706b625a514940372e231a10060000000000000000000000010b151f2935414c56616c75828f98a2aea69e9184796d60584e42382d20170d00010c161f2a36424d57606d7984919da5aea2988f82756c61564c4135291f160c0100000000000000000713202d3946525e6873808d949fa8a7a0969187817c77726e6f7b8895a093867a6d60534a4745413b3a36312b2823201f1b1714110e090200000000000007131f2c38434f59606365656667696e75808d96a1aca89b8e817568554b4035291d1104000000000000000000000b1824313e4a56626d7279797979797979796d675d5145392c201303000000000000000000000000000000000000000a15202c3945515d676d7979797979797979726d62564a3d3124180b0005111e2b3744505c68737879797979797979706b6054483b2f2216090004111e2b3744515e6a7784919daab4a79a8d8074675c51453a2f26201d1e2b37424d576a7783909daab6a99d9083766a5f53473c3128201e1d27333f49536774808d9aa7aea399877a6d6054473a2d21140700131f2c3946525f6c7985929facada093877a6d6054473a2d211407000000000000000006111b262f3845515d67707d89939ea9aea2988f82776c60574d42362d20170d0200000000000000000c18232f39434f59606d78818e939fa4aaa29f97928e8b898888898b8e92989fa3aaa29f928c80736c61584e41382d22170b0000000000000714212d3a4754606d7a8793a0ada6998c807366594d4033261a0d0604020000000000000000000000000000020506060503000000000000000000000000131f2c3946525f6c7985929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa39f9e9e9d9c9a9898928f8b86817c756f6a605c554e463e352d241b120900000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986939f9f9f94877b6e6154483b2e211508000000000000000000010c16202a323a3f4345464646464646463b3a37312a21180e0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000205090e121415181b1d1e1f20201f1f1e1c1a181514120e090502000000000000000000000000000000000000000000000000000000000000000000000001080d111314171a1c1e1f20201f1e1d1b181514120e09040100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b262f383f44515961696e757d83898f939a9c9fa2aaa7a8aaa9a7a7a7a7a7a9a9a8a6a9a29e9b99928e88827c746d676059504840372e251c110800000000000000000000000007121d27313945525d68717e8a939eaaaa9e948a7d70675d51463c2f261c0e050000040d1a26313b45515c66707d89939ea9aa9e948a7e71685e52463d31281d120700000000000000000714212e3a4754616d7a86929fa6aaa09590847c756f6a66626f7b8895a093867a6d6053473a3935302d2e3633312e2d2b2722201e19140d0500000000000915222f3b4854606b6f72727273767b818d929da8aca1968a7d7064574a3d2f24180d01000000000000000000000915222e3a46515b62656c6c6c6c6c6c6c6c605d554b4135291d11040000000000000000000000000000000000000004111d2935414b555d606c6c6c6c6c6c6c6c65625b51463a2e22150900030f1b2834404c5761686b6c6c6c6c6c6c6c6360594f44382c2013070004111e2b3744515e6a7784919daab7ab9f9285796d60564c42382f2c292a2d3a47535f697885929fabb8ab9f95887b6e62584e4339312d2a2a2d3744505b6576828f9ca9ac9f928679685d5245392c20130600131f2c3946525f6c7985929facada093877a6d6054473a2d21140700000000000000000b17222d38414e58606d7984919ea5afa79f92867b6e655b50453b30241b0e05000000000000000004101c2934404b55606b73808d939ea5a7a098928c85817e7c7c7c7d7f82868d9299a1a8a49c928b7e716a5f53493f33271c110600000000000714212d3a4754606d7a8793a0ada6998c807366594d4033261a1312110f0b0706040100000000000306070b0f11131312100d0a09070400000000000000131f2c3946525f6c7985929facacacada7a5a5a5a5a5a5a5a5a5a5a5a5a5a5a6a6a7aaa9a7aaa29f9b99928e87827c736d675f584f473f362d241b1007000000000000000000000000000000000000000606060606060606060606060606060606060713202d3a4653606d798693a0aca194877b6e6154483b2e21150800000000000000000007121d28323c444b5051535353535353534846423c332a1f140900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080e11151a1e21222528292b2c2c2c2c2b2b29272522211e1a14120e090200000000000000000000000000000000000000000000000000000000000000050b1013191d20212427292b2c2c2c2c2b2a282522211e1a15110d070100000000000000000000000000000000000000000000000000000000000000000000000406070a0d0f11121313131212100e0c09060603000000000000000000000000000000000000000000000000000000000000000a141d262d3340474f575e616b70777d82878b8f9298989a9b9d9e9e9f9f9f9e9d9d9b999797928e8a86817c766f6a605d554f473e362e251c130a000000000000000000000000030c18242f39434f59606d7a85919ea6aea2988f82756c61554b40342a1d140a0000000009141f2834404b54606b75818e97a2ada69e92857a6d61594f43392f24180c0300000000000004111d2935414c566673808c98a2aea29890837a6f6a625f58626f7b8895a093867a6d6053473a2d30363a3b43403e3b3937332d2d2a251f170e0500000000091623303c4956636f7d7f7f7f8083868e939da4aea59e9184786d6053463a2d201307000000000000000000000006121e29343f49515658606060606060605f54514b433a2f24180d0100000000000000000000000000000000000000010d18242f3a434b51545f60606060606060585651493f34291d120600000c18242f3a454f575c5e6060606060606056544f473d32271b10040004111e2b3744515e6a7784919daab7ada2978b7e71685e544a423c3935363a3f4a54616e7b8898a2aeb5afa79a8d80746a5f554b433d393636393d4653606c7985919eabaa9e9184776b564c4135291d110400131f2c3946525f6c7985929facada093877a6d6054473a2d21140700000000000000030f1b27333f49535f6a73808d96a0acaa9f958c7f72695f53493f33291f120900000000000000000006131f2c3845515c67707d88939fa5a7a09590857f797572706f6f7072757a80869196a1a9a49f92867c6e655b5044382e23170c00000000000714212d3a4754606d7a8793a0ada6998c807366594d4033261f201f1e1b181413110d080100060b101213171c1e1f201e1d1a171613100b050000000000131f2c3946525f6c7985929facb8ada39c9898989898989898989898989898999a9b9d9fa3aaaaacaba39f9a938f8780796f6a615950483f362d22190f050000000000000000000000000000000306071313131313131313131313131313131313131313202d3a4653606d798693a0aca194877b6e6154483b2e2115080906010000000000000b17232f3a444e565c5e6060606060606055534d453c31261a0e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d14191e20262b2e2f323436383939393938373634322e2d2b26201e1a140e0902000000000000000000000000000000000000000000000000000000040a0f161c1e24292c2d3134363839393939383634322e2d2b26201d18130c060000000000000000000000000000000000000000000000000000000000000001070c10131416191c1d1f1f20201f1e1d1b191613120f0b060000000000000000000000000000000000000000000000000000000000020b141b2227353e454d525960636b70757b7e8285888b8d8f9091929292929191908e8c8a8885817e7a746f6a626058514b433d352d241c130a010000000000000000000000000b151e2935404b55606b74818e97a1ada79f92867b6e615a50433a2f22190b0200000000030c18232e39424f59616e7a85929fa7ada1978e81746b60554b4035291e150a0000000000000713202c3945525d687783909daaab9f92857b6e6860585355626f7b8895a093867a6d6053473a333b4246474f4d4a4846443f3b3a36302920170d020000000e1a2734414d5a6774808b8b8c8d8f92999ea5aca59e938a7e71665c5044382b1f12060000000000000000000000010d18232d373f464a4c53535353535353524745413a31281d130700000000000000000000000000000000000000000007131d28313a41454752535353535353534b4a463f372d23180d01000007131e29333d454c5052535353535353534948443d352b21160b000004111e2b3744515e6a7784919daab1a7a09d92857a6d665b544e474541424648505b66727f8c98aab4aba49f9d92877c6f675d554f4746414146474e58626f7c8997a1ada99c8f8276695c4f432f24190d0100131f2c3946525f6c7985929facada093877a6d6054473a2d211407000000000000030c19232b3744505b656e7c87929fa8aea3989083786c60574d41382d21170d00000000000000000004111d2935414c55606d7984919aa4a9a09590837b726d67656362626365686d737c849197a1aba2989083786c60544a3f34281c1003000000000714212d3a4754606d7a8793a0ada6998c807366594d40332b2c2c2c2b282521201d19130d0a11171c1f2024282b2c2c2b2a272322201c160f0800000000131f2c3946525f6c7985929facb8a79c918c8b8b8b8b8b8b8b8b8b8b8b8b8b8c8d8e909298999da0a7aaaca49f99928d837c706b625a50483e342b21170d03000000000000000000000000060b1012132020202020202020202020202020202020202020202d3a4653606d798693a0aca194877b6e6154483b2e21191815120d0600000000000f1b27333f4b5660686b6c6c6c6c6c6c6c6c5f574d42372b1e12050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c13191f252a2d31373a3b3e41434445464645454443403e3b3a37312d2a251f1a140d0500000000000000000000000000000000000000000000000000060b151b21272c2f35393a3d414344454646454543413e3b3a37312c29241d17110a03000000000000000000000000000000000000000000000000000000040a0f12181c1f202326282a2b2c2c2c2c2b2a282523201f1c17110f0a03000000000000000000000000000000000000000000000000000000020a1117232c333b42464f54596063696e7276797c7e808283848585868585848382807d7b7975716d68625f58544e45403a312b231b120a0100000000000000000000000007121c27303945515d67707d89939da9aba0958c7f72695e53483e31281d100700060000000007121d27303d46525e68727f8b959faba99e93897d70675d51453d30261c110600000000000714212d3a4754606d7a86939facaa998c8073695e564e4855626f7b8895a093867a6d6053473a3b454d52545c5a57555350494746423b32291f14090000000e1a2734414d5a6774808d98999a9c9fa3aba8a19e938e81756c61544a3f34281c100300000000000000000000000006111b252d343a3e3f46464646464646463a39352f281f160c01000000000000000000000000000000000000000000010c161f282f35393a46464646464646463f3d3a342d251b1106000000010c17212b333a404445464646464646463d3b38322b23190f04000004111e2b3744515e6a7784919daaaca09590958e81786c665f5854524c4d53555a606c7883909daaafa4999390959083796d67605954524c4c525458606a74818e9aa9b3aa998d8073665a4d4033271a080000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000b151e2a36414c56606c77829099a3aea79f92867b6e665b50453b2f261b0f050000000000000000000613202c3945515d67737f8c96a1aca29790837a6e69605d5556555556565d606a6f7b859199a3aa9f948b7e71665c5044382c1f1509000000000714212d3a4754606d7a8793a0ada6998c807366594d4036383939393735322d2c29241e19141c23282b2d3135383939383633302f2c2721191108000000131f2c3946525f6c7985929facb2a5988c7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f80818386888c91959c9ea6acaba39f9591867d716c625a50463d33291f140900000000000000000000020a11171c1f202c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2d3a4653606d798693a0aca194877b6e6154483b2e2c2524221e18110901000000111d2a3743505c6872787979797979797976695f53463a2d21140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080e161e25293036393c4247484b4e50515253535252514f4d4b4846423c3a36302a251f170f0800000000000000000000000000000000000000000000020a111720262b33383a4145474a4d4f515253535251504e4b4847423c39352f28231c150c05000000000000000000000000000000000000000000000000040a0f161b1d23292c2d303335373839393939383635322f2d2b28221c1b150e090300000000000000000000000000000000000000000000000000000006111a202930363d44484f54565e6165666d6f7174757778787979787877767573716f6d6664605d56534e47433d352f281f19110900000000000000000000000000000c18232e39424e58606d7984919ea5afa4999083786d60574d42362c1f160c1313130c060603000b151e2a36414c56606c78839099a4afa59e9184796d60584e42382e23170c00000000000916232f3c4956626f7c8999a4aea298887b6e62574d444855626f7b8895a093867a6d6053473a424d575e6169666461605b5354524d443b3025190e0200000e1a2734414d5a6774808d9a9f9fa29f9e9d9a96918b81786d605a5042382e23170b000000000000000000000000000009131b23292e313239393939393939392d2c29241d160d040000000000000000000000000000000000000000000000040d161d24292c2d393939393939393932312e29231b13090000000000050f1821292f34373839393939393939302f2c272119110700000004111e2b3744515e6a7784919daaaa9d908490938e81786e6a64605d56575f61646c727f8b95a0acac9f93878390958f82796f6b64615e56565e61646a6f7c87929facaea298897d7063564a3d3023170a0000131f2c3946525f6c7985929facada093877a6d6054473a2d211407000000000007121d27303946525e68717e8b949fababa0958c7f726a5f544a3f332a1d140a000000000000000000000714212d3a4754606d7a85929fa8a89f92857b6e685e57514b4949494a4c52585f696f7d87929faaa69e9184786d6053463c31261a0e020000000714212d3a4754606d7a8793a0ada6998c807366594d40434445464544423e3a39352f2a251e262e34383a3e424446464543403d3c38332b23190f050000131f2c3946525f6c7985929facada093877a7272727272727272727272727273737477797c8084898f949da0a7afa7a09892877e716c61584e453b30251a0d040000000000000000020c141c23282b2d393939393939393939393939393939393939393939393a4653606d798693a0aca194877b6e6154483b393932312e29231b1309000000121e2b3845515e6b7884868686868686867b6e6155483b2e2215080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a121a202830353b4146474e5355585b5c5e5f5f5f5f5e5e5c5a5855534d4846423b363029211a120a0200000000000000000000000000000000000000030b141b222732373d44484c5254575a5c5e5f5f5f5f5e5d5b5855534d4745413a342e261e170f0700000000000000000000000000000000000000000000060b151b21272c2f34383a3d40424445464646454543413f3c3938332d2b26201a150b06000000000000000000000000000000000000000000000000000000080e171f252a33384851595e6060605c60626567686a6b6b6c6c6c6b6a6a68666462605c6060605f5c574f453a29241d160d07000000000000000000000000000004101c2834404a54606a73808d96a09fa99f93877c6f665c50453b31241a20202020201913120f0b060c1925303b44505b666f7c87939fa99fa1968d80736a60544a3f34281c1003000000000a1724303d4a5763707d8a96abab9f9285796c6053463c4855626f7b8895a093867a6d6053473a46525e696e7673716e6c6567615e564d42362a1e110500000e1a2734414d5a6774808d939393989291908d8a847e746d665c51483e30261c11060000000000000000000000000000010911181e2224252d2d2d2d2d2d2d2c21201d18130c0400000000000000000000000000000000000000000000000000040c13181d20212c2d2d2d2d2d2d2d2524221d18110901000000000000060f171e24282b2b2d2d2d2d2d2d2d2322201b160f070000000005111e2b3844515e6b7784919eaaa4978b7e8491938e827c75716d686b6b696e71767e87929fa7b1a79c8f827b8692948f837c75716e686b6b686d70757c859299a3afaa9f9285796d6053463a2d2013070000131f2c3946525f6c7985929facada093877a6d6054473a2d21140700000000000c18232e39424f59616d7a85929ea6aea3999083786d60574e42382d21180b0200000000000000000007131f2c38434f5965727f8c98a2aca0968b7f72695f564d45403d3c3c3d41454e57606b74808d98a2aca1968a7e7164574d42372b1e12060000000714212d3a4754606d7a8793a0ada6998c807366594d4c5051525352514e4b4745413a36302a30383f44464a4f51525351504d4a48443d352b21160b0000131f2c3946525f6c7985929facada093877a6d656565656565656565656565666768666d6f73777c828990959fa4acaaa299928b7e716a60574d42362a1f160c01000000000000000a141e262e34383a46464646464646464646464646464646464646464646464653606d798693a0aca194877b6e6154484646463f3e3a342d251b11060000121e2b3845515e6b7884919393939393887b6e6155483b2e22150800000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b141c242c323a41464d5254575f626567696b6c6c6c6c6b6a696765615f5754524d46423b332c241c140a020000000000000000000000000000000000030c151d262d333c43474f54565d606467696b6c6c6c6c6b696765615f5754514b443f3830292119100700000000000000000000000000000000000000020a111720262b323839404547494c4f50525253535251504e4c4946443f3837312b262017110a020000000000000000000000000000000000000000000000000000050d141a2136424e59636b6c6c6c6c6b64615a5c5d5e5f5f5f5f5e5e5d5b535b60656c6c6c6c6b6861574c403428130c0400000000000000000000000000000006121f2c3844515c666f7c879293939393978d80746a60544a3f33291f202c2d2d2d2c26201f1c17110a141e28333f4a54606a74808d979393939392877c6f665c5044382c1f1206000000000b1824313e4b5764717e8a97a4aa9e918477655b50443c4855626f7b8895a093867a6d6053473b4754616e7b82807d7b7976746e695e52463a2d20140700000e1a2734414d5a6774808686868686858483807d79716c605c544a40362c1e140a0000000000000000000000000000000000060d12151819202020202020201f1413110d070100000000000000000000000000000000000000000000000000000001070d1113141f20202020202020181815120d06000000000000000000050c13181b1e1f20202020202020161613100b04000000000005111e2b3844515e6b7784919eaaa3978a7d7d8992948f86817d7a797778797b7e838b9299a3afaba0958a7e737f8c94959087827e7a797878797a7d82889297a1abaea3988d8074665c5145382c1f13060000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000004101c2834404b54606b74818e97a1ada79f92877c6f665c50453c2f261c0f06000000000000000000000915222f3b4854606b7784919eaaab9e9184786d60574d443b352f2f2f30353c454f59616d7a86929faca89d908376695f53473a2d2114080000000714212d3a4754606d7a8793a0ada6998c8073665956595c5e5f5f5f5e5b5854524c46413a333c424a5053575b5e5f5f5e5d5a56544f473d33271c100400131f2c3946525f6c7985929facada093877a6d605858585858585858585858595a545c6062666b6f767c838d939aa3ababa39f92867c6f695e52463e31281d130700000000000006111c2630383f444653535353535353535353535353535353535353535353535353606d798693a0aca194877b6e6154535353534c4a463f372d23180d0100121e2b3845515e6b7884919e9f9f9f94887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b141d262e363e444c52565e61666a6e717476777879797878777673716e6966615e57524d453e362e261c140a00000000000000000000000000000000030c151e272f383f444e54596063686d7074767778797978787674716e6965605d55504a423b332b221910070000000000000000000000000000000000040b141c222832373d43484b515356595b5d5e5f5f5f5f5e5d5b585653504a47433c373127221b140b03000000000000000000000000000000000000000000000000000002091f2c3945525e6b757979797978706c615f57514b525352524b51575f656c71787979797873685c5044372b1e11000000000000000000000000000000000713202d3a4653606d798386868686868686857a6d60584e42382e282b383939393939332d2b28221c140b17222d38424e58606d7a858686868686868683796d6053463a2d201307000000000b1824313e4b5764717e8a97a4ab9e918578665c50443c4855626f7b8895a093867a6d605347424e5865717e8b8d8a888583807b6e6154473b2e21140800000d1a26333f4c58646e74797979797979787774706d66625a514a42392e241a0c020000000000000000000000000000000000000106090b0c131313131313131307060401000000000000000000000000000000000000000000000000000000000000000104060713131313131313130c0b090601000000000000000000000001070c0f1112131313131313130a0907040000000000000005121e2b3845515e6b7884919eaba3968a7d73808d9499928e8a8785848585888b90959fa3abaea3999183786d78828f959a938f8b8786848485878a8e939aa1a9afa59f92867b6e61544b4034281c10040000131f2c3946525f6c7985929facada093877a6d6054473a2d211407000000040e1a242c3845515c66707d89939ea9aba0958c80736a5f544a3f332a1d140a0000000000000000000000091623303c4956636f7c8996a0aca3998b7f72665c50453b32292422222429333d46525d6874808d9aa8ab9f95887b6e6155483b3025190d0100000714212d3a4754606d7a8793a0ada6998c807366606366696b6c6c6c6a6865605d56524c443e454d545c6064686b6c6c6b69666360594f44382c20130700131f2c3946525f6c7985929facada093877a6d60544c4c4c4c4c4c4c4c4c4c4c4d4a5053555960636a6f7980889299a3abaea39891857b6e615a50433a2f24180d0000000000000b17232e38424a50535f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f606d798693a0aca194877b6e615f5f5f5f5f585651493f34291e120600121e2b3845515e6b7884919eabaca194887b6e6155483b2e22150800000000000000000000000000000000000000000000000000000000000000000000000000000000000009131d262f38404850565e61686e73777b7e81838485868685858482807e7b77736e69615e57504840382e261c13090000000000000000000000000000000a151e273039414950585f626b70757a7d808284858686858483817e7b77726d67605c544d453d342b22190f05000000000000000000000000000000040d161d262d333c43474f54555c606366686a6b6c6c6c6c6b69686562605b54534e47423c332d261d150d03000000000000000000000000000000000000000000000000000613202d394653606c7987868686847d756e69605c554f46454f545c60696e777e8586868685786b5f5245382c1f120500000000000000000000000000000006121f2c3844515c666d7779797979797979786d685d52463d302e34384546464646463f3938332d261d18111c262f3c45525d686d7879797979797979776d665c5044382c1f1206000000000a1723303d4a5663707d8996a9ac9f9286796d6053463e4855626f7b8895a093867a6d6053474b54606a76838f9997989290857a6d6053473a2d20140700000b1723303c47525c64676c6c6c6c6c6c6b6a6764605c545044403930271c1208000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121f2b3845525e6b7885919eaba396897c7078828f949f9b97989291919298979d9fa7aeaaa29f92877d70666d7a8390959f9c97999291919298979b9fa4acaca49f938c7f72695e5342392e23180c000000131f2c3946525f6c7985929facada093877a6d6054473a2d21140b0b0b0b0c16202b37424d57606d7984919da5afa3999083796d60584e42382e21180b020000000000000000000005121e2a36424d576774808d9aa8ac9f92867a6d61544a3f33292018161619212935414c56626f7c8895a0aca7998c807366564c4135291d110500000714212d3a4754606d7a8793a0ada6998c8073656c6f7376777879787775716d68615e5650484d575f666d7175777979787673706b6054483c2f22160900131f2c3946525f6c7985929facada093877a6d6054473f3f3f3f3f3f3f3f3f40403f4446494f545860676d737e879299a3aeaaa1978f82766c61554b4135291d12070000000003101c28343f4a545c6a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6d798693a0aca194877b6e6c6c6c6c6c6c65625b51463a2e22150900121e2b3845515e6b7884919eabaea194887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000000000000000000000000000007101b252f38404a525a61686d747b8084888b8e8f919292929291918f8d8b8884807b746e69615a524a40382e251b0f060000000000000000000000000006111c263039424a535b606a6f767d82868a8d8f919292929291908e8b88847f7a726d665e574e463d342b21170b0200000000000000000000000000030c161f282f383f444e54596063676d707375777879797978787674726f6c66625f58534d443f382f271f150d03000000000000000000000000000000000000000000000000000b1825313e4b5864717e889396918a827b736d67615953525960666d737b828b929792877e7064574a3d3124170a0000000000000000000000000000000004101c2834404a545c606a6c6c6c6c6c6c6c6b605d564c413430383f445253535353534c46443f382f2a2119141d2935414c565d606b6c6c6c6c6c6c6c6a605c544a3f34281c1003000000000815222e3b4855616e7b8897a1ada399897d70635a50474855626f7b8895a093867a6d60534c535c666f7c89949faaa29b8e8175675d5145382c1f1306000007131f2b36404a52585a60606060605f5e5d5a5753514b423f342e271e150b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080a0d0e10111212131313131211100f0d0b090706040000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b556c7885929f9f9f95887c6f6d79828d939a9fa29f9e9e9fa3aaa9a9aba39f98928a7f726b60686d7a838d939a9fa39f9e9e9fa2aaa8a9aba49f9a938c81776c60574d4230271d1207000000131f2c3946525f6c7985929facada093877a6d6054473a2d211818181818181e28323a47535f69737f8c96a0aca89f92877c6f665c51463c30261c0f0600000000000000000000000714212d3a46535e697784919eaaa99c8f8276685e5242382e21170d07080f1924303a47535f6a7784919daaaa9d908377685e5246392d20130700000714212d3a4754606d7a8793a0ada6998c807370787c7f838485868584817e7a746d68615a51575f696e787e828485868483807d7063564a3d3023170a00131f2c3946525f6c7985929facada093877a6d6054473a3232323232323232332e34383a3d43484e555c606c717e87929fa5afa99f948a7e71675d5145392e23180c0000000006121f2b3844505c6674797979797979797979797979797979797979797979797979797979788693a0aca194877b79797979797979726d62564a3e3124180b00121e2b3845515e6b7884919eabaea194887b6e6155483b2e22150800000000000000000000000000000000000000000000000000000000000000000000000000000000030c19222d37404a525c636c717a81868c9196989a9c9e9f9f9f9f9e9d9c9a9895918d86817b716c645c524a40372d21180e030000000000000000000000040e17232e38424a545c656c727c82898f92999a9c9e9f9f9f9f9e9c9a9895908b857f786e6960584e463d33291d140a000000000000000000000000000b151e283139424a50585f626b6f75797d7f828385858686858483817f7c79746f6a625f575049413931271f150b010000000000000000000000000000000000000000000000000a1724303d4956626c717f8b919e948f868079706b615f5d606b6f797f868f949f93887e716c6155493c3023160a00000000000000000000000000000000000c18232e39424a51535d606060606060605e54524c433a2f38424a505e5f6060605f5953504a423b332a251f19242f3a434c52545e606060606060605d53504a42382e23170c00000000000613202d394653606c7985929eabab9b8f82756c615a544e55626f7b8895a093867a6d6053565d656d7983909da6aca0958a7d7064554b4035291d10040000030e19242f3840474c4d53535353535251504d4a464540393028231c150c03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406090e12141517191b1d1e1f1f2020201f1f1e1d1c1a18161312100c0705020000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d6779869293939393887b6e676d7880878f93999b9d9e9f9f9f9e9c9a99928e867e726d62595e686d7980878e92999a9c9e9f9f9f9e9d9a99938e877f746c655b50453b311e150b00000000131f2c3946525f6c7985929facada093877a6d6054473a2d2424242424242424303a44505a616e7b86929fa8aca0968d80736a60544b40342a1e150a0000000000000000000000000815212e3b4854616e7b8796a0acab988c7f7265564c4130261c0f06000008131e2b37434e586774808d9aa7ac9f93867a6d6154473a2e21140700000714212d3a4754606d7a8793a0ada6998c80747d83898c8f91929292918e8b86807a706c635b5e696e7b838a8e91929291908d86796c5f5346392c201300131f2c3946525f6c7985929facada093877a6d6054473a2d252525252525252623282c2d32383d434b515a616c727f8b939ea9b0a69e91847a6d60544b4034281c10040000000713202d3a4653606d78868686868686868686868686868686868686868686868686868686868a95a1b9ac9f9286868686868686867f7265584c3f3225190c00121e2b3845515e6b7884919eabaea194887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000000000000000000000000000a151e2b343f49525c646e737e858d92999da0a8a9a29f9d9c9b9c9d9fa2aaa7a09d99928e857e736e645c52493f332a1f140900000000000000000000020c162028343f4a545c666d777f8790949b9fa3aba7a3a2a1a1a2a4a8a7a7a09d97928b837b6f6a60584e453b2f261b1106000000000000000000000007121d273039434b545b606a6f767c8185898c8e90919292929291908e8b8985817c756e69605b534b433931271d12070000000000000000000000000000000000000000000000000815212d3945505a626d727f8b919c98928c847d756e69686d747c838c92989c918b7f726c625a5044392d201408000000000000000000000000000000000007121c2730394044465153535353535353524745413a31343f4a545c6a6c6c6c6c6c66605b544d453f363029201e28313a41454752535353535353535146443f3830261c1106000000000005121f2b3744505b6574818e9ba6aa9e938a7e716c62605857626f7b8895a093867a6d605c60686d77818e95a0aca79d9184786c605346392f24180c0000000008121d262f363c3f414646464646464544413d3a38342e271e18120b03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c1013141a1e2121242628292a2b2c2c2d2c2c2c2b2a29272522201f1c1814120e0903000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d79868686868686867a6d61666d737c82878b8e909192929291908d8a86817b716c625b51565e676d737c81868a8d909192929291908e8a87817c736d605b53493f33291f0c0300000000131f2c3946525f6c7985929facada093877a6d6054473a31313131313131313135414c56616c76828f98a3aea49a9184796d60584e42392e22180c030000000000000000000000000b1825313e4b5864717e8b97a8aea399887c6f6255493c3022140a000000020f1b26323d4a5763707d8a96a8afa4998a7d7064574a3d3124170700000714212d3a4754606d7a8793a0ada6998c80808a9095999c9e9f9f9f9d9b98928d857e736d63616e7b8590959b9e9f9f9e9c9286796c5f5346392c201300131f2c3946525f6c7985929facada093877a6d6054473a2d2119191919191919171c1f20272c30394045505a626d74818e97a1adada1968c7f73665c5145382c1f14090000000713202d3a4653606d798692929292929292929292929292929292929292929292929292929298a3aebaaea399929292929292928b7f7265584c3f3225190c00121e2b3845515e6b7884919eabaea194887b6e6155483b2e22150800000000000000000000000000000000000000000000000000000000000000000000000000000006111c26303d46515b646e74808a92979fa3a9a19e999792908f8f8f909298989d9fa7a39f97928a80736e635b51453b31261a0e0400000000000000000008131e28323a44505c666d78818c92999fa6a9a19e9a9795949596979b9fa2a9a9a29f9590857c6f6a60574d41382d22170b01000000000000000000040d18232e39434b555d666c737c83898e9298999b9d9e9f9f9f9f9e9c9b9897918d88827b736c655d554b43392f24180e05000000000000000000000000000000000000000000000005111d29343e48505a626d727f8c929c9f96918a827b73717a818891959f9d928c7f736d625a50483e33281c10040000000000000000000000000000000000000b151e272e34383a4446464646464646453a39352f2b3844505c66757979797979726c665f575146423b3229251f282f35393a4546464646464646443a38342e261e150a000000000000030f1b27333f4953626f7c89949ea9a59f92877e756f6a6764626f7b8895a093867a6d65676d717a818e939da7a99f958a7e71665b5044382b1d120700000000010b141d242b303334393939393939383734312d2c28231d150c07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e12181d1f20252a2d2e31333536373839393939393838373534322f2d2c2823211e1a140f0b0600000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d67767979797979797976685e5c606a6f757a7e8183858586858483817e7a746e69615a51494c555c606a6f757a7e8183848586858483817e7b756f6a635b504941382d21170d0000000000131f2c3946525f6c7985929facada093877a6d6054473e3e3e3e3e3e3e3e3e3e3e45525d68717e8a949faaa89f93887d6f675d51463d30271d1006000000000000000000000000010e1a2734414d5a6774808d9aa7ac9f9286796d6053463a2d201307000000000a14212e3b4754616e7a8796a1adab998d8073665a4d402f24180c00000714212d3a4754606d7a8793a0adab9f92858d929da0a7aaa39f9e9e9fa2a39f97928a7f736d6975828e97a0a7aaacaaa29f9286796c5f5346392c201300131f2c3946525f6c7985929facada093877a6d6054473a2d21140c0c0c0c0c060c1012131b1e272e343e47515b606d7985919ea7b1a99e9185796d6053463b31251a0e0200000713202d3a4653606d7986939f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa3aab4bfb4aba39f9f9f9f9f9f988b7f7265584c3f3225190c00121e2b3845515e6b7884919eabaea194887b6e6155483b2e2215080000000000000000000000000000000000000000000000000000000000000000000000000000000c17232e38424f59626d74808d929ea1a9a39f97918c8885838282838385888b90959ea1a8a29f928d80736d62574d42362a20160a0000000000000000010d1924303a44505a606d78818e939fa3a9a29f97918d8a888788898b8e92979fa2aaa79f9792867c6f695e53493f33271d12070000000000000000010c161f2834404b555d676d78808790949b9fa2a9a29e9c9b9a9a9b9d9fa3a9a19e9a948f877f776d675d554b40352920170d0200000000000000000000000000000000000000000000000c17222d363f48515b636d737f8c929ca09e948f867f7d848d939aa09d938d80736d635b51483e362c22170b00000000000000000000000000000000000000030c151c23282c2d3739393939393939382d2c29242d3a4653606d7987868686867f786e69625b524d443e3530282024292c2d3839393939393939372d2c28231c150c03000000000000000b17222d384854606a75828f97a2aaa399928b827c7773716e6f7b8895a093867a6f7175797e848e939da5aba2979083786c60544a3f33281c0b010000000000020b12191f2326272d2d2d2d2d2c2b2a2724201f1c18120b030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080e151a1d24292c2d31363a3b3d4041434445454646464645444342403e3c3a38342e2d2a261f1b17110a0200000000000000000000000000000000000000000000000000000000000000000004101d2935404b555d6c6c6c6c6c6c6c6c6c5e5651586062686d71747678797978787674716d67615e5750483f434b51585f62686d71747678787978777674716e69625f5851443f382f261b0f050000000000131f2c3946525f6c7985929facada093877a6d60544b4b4b4b4b4b4b4b4b4b4b4b4f59606d7a85929ea6aca1968d80746b60554b40342b1e150b0000000000000000000000000004111d2935414c55697683909ca9aa9d908377665c5144382c1f1206000000000714202d3946525e687884919eaba99c8f827669554b4035291d1004000714212d3a4754606d7a8793a0adada29792979da49f9c97989291919298969a9f9f918c7f726e7b87939fa9b1a7a09d98929286796c5f5346392c201300131f2c3946525f6c7985929facada093877a6d6054473a2d21140700000000000003060a0c151d2328353f45515d67717e8b95a0acada1978b7e7164574d42362a1e120500000713202d3a4653606d798693a0acacacaca49f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa0a1a6aeb8b1a9a3a19f9f9f9f9f988b7f7265584c3f3225190c00121e2b3845515e6b7884919eabaea194887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a54606b727f8c929ca4aaa299928c84807b787675757677797b7f838a91969fa6a49c928b7f72695f53463d32271b0f030000000000000005111d2935414c56616c74808d939ea5a7a097928b85807d7b7b7b7c7e81858c9298a0a7a9a29891857b6e655b5044392f24180c000000000000000008131e28313a45515c676d79828d92999fa6a39f9a97928f8e8d8e8e9092989b9fa3a69e99928c82796d675d51453f32291e1408000000000000000000000000000000000000000000000006101b242d363f49515b636d73808d929da49e98928c8a91969fa49e938e81746e645b51493f362d241a10050000000000000000000000000000000000000000030b12181c1f202a2d2d2d2d2d2d2d2b21201d1f2b3844505c66717e879399928c827b726d615e565046413a3229241d20212b2d2d2d2d2d2d2d2a201f1c17110a03000000000000000006111b2c38434e58616e7b859298a2a9a39f948f8984807e7b7a7c8895a194877a7c7e82858b91969ea5aaa29992857b6e665b5042382d22170b0000000000000001080e13171a1a20202020201f1e1d1a171313100c070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d14191f262b2f35383a3e4246484a4c4e50515252535353525251504f4d4b494644403b3a36312b27221b140b070100000000000000000000000000000000000000000000000000000000000000010d18242f39434b515f606060606060605f524c454e54565e6165686a6b6c6c6c6b696764605d55534d453e363940454e53565d606467696b6c6c6c6b6a6764615e57534e4640332d261d140a000000000000131f2c3946525f6c7985929facada093877a6d605757575757575757575757575754606b74818e97a1ada59e9184796d60594f43392f22190c04000000000000000000000000000613202c3945515d677885929eaba89b8e827568544a4034281c10040000000005111e2a36414c566976838f9ca9ab9e918578675d5145382c1f1306000714212d3a4754606d7a8793a0adb3a9a29fa2a19e948f8b8786858485878a8d92979f93887e727e8b99a4afaba0959088858686796c5f5346392c201300131f2c3946525f6c7985929facada093877a6d6054473a2d211407000000000000000000030b1218232935414b55606c7883909da9b3a99d908377695e53463a2d21140600000713202d3a4653606d798693a5afaca29a979393939393939393939393939393939393939393959ca6b1a99f97949393939393938b7f7265584c3f3225190c00121e2b3845515e6b7884919eabaea194887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000000000000000000000006121f2c3844505c666f7c87929fa4aba29892878079736f6a6a696869656c6e72777d848f949fa6a49f92867b6e61584e43382b1f1306000000000000000713202d3946525d68717e8a929da5a79f9590857f7974706f6e6e6f7175797f869195a0a7aaa1978f82776c60554b4035291d1004000000000000010d19242f3a43505a606d79828f949fa3a7a099928e898583818181828386898e92999fa7a39f948f82796d605b51443b3025190e02000000000000000000000000000000000000000000000009121b242d373f49525b636e74808d929da5a39f99979ea1a69e948e81786c605c524940372d241b11080000000000000000000000000000000000000000000000070c1012131e202020202020201f1413111c28343f4a54616c717e87939a9490867f766e69615a524c443e352f281f191f202020202020201e1312100c0600000000000000000000000f1b27323d46525e69707d8692979ea5a69e9c95918d8a888786929fac978d87898b8e92979ea1a8a8a09892877e70695f544a3f2f261c110600000000000000000003070b0d0e13131313131312110e0a070604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060e171e252a3137394045474a4d535457595b5c5d5e5f5f605f5f5f5e5d5c5a585553514a4846423b37332d261d18120c040000000000000000000000000000000000000000000000000000000000000007121d283139404553535353535353535346413c43474c5254585b5d5e5f5f5f5e5d5a5754514c46423b332c2e343c43474c5254575a5d5e5f5f5f5e5d5b5754524d47433c3427221b140b02000000000000131f2c3946525f6c7985929facada093877a6d646464646464646464646464646464666f7c88939fa9a89d93897d70675d51473d3129241e160e060000000000000000000000000714212d3a4754606d7a8797a2ada6998c807366594d402e23180c0000000000010d192530414e5a6774818d9aa7ada197867a6d6053473a2d201407000714212d3a4754606d7a8793a0adbcb3ada9a1979289827e7b797878797a7d81858d929992857b818e9babafa49990837c79797b6e6255483b2f22150800131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000071118242f3a44505b65717e8b97a2adab9f95877b6e6154483b2e23170c00000713202d3a4653606d7986939ea8a69a908a86868686868686868686868686868686868686868a95a1ada3978d87868686868686867f7265584c3f3225190c00121e2b3845515e6b7884919eabaea194887b6e6155483b2e2215080000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a54606d78839099a3afa39992867d736d67625f585c5c535b6061656c707a828f949fa9a2988f82766a6054473b2e22150800000000000005121e2a36424d57616d7a85929ea4a99f9590837b726d66646261626364676d727b839095a0aaa99f948b7e71675d5145382c1f140900000000000004111d2935414c56616c74818e949ea6a69f959087817c79767474747577797d818790959ea5a69e948e81756d62564c41362a1e140800000000000000000000000000000000000000000000000009121b252d374049525c646e74808d939da59f9f9f9fa79f948f82786d665b504a40372e251b1209000000000000000000000000000000000000000000000000000004060711131313131313131207060b17232e3842505a616c717e88939a98928b827b716c615e564f45413a312b22190f13131313131311070603000000000000000000000000000a16212a36424d57606b707d858e939d9fa7a7a09d9a9795989298a3ae9f979495989b9fa2a9aaa29f9691867d706c61574d42382d1d140a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a1117202930363c42474b515357575e61646668696a6b6c6c6c6c6c6b6b6a68676562605c5455534d46443f382f29241d160d05000000000000000000000000000000000000000000000000000000000000010c161f282f3539464646464646464646393632373a4146474b4e505252535251504e4b4745413a36312921232831373a4145474b4e505152535251504e4b4746423b37312a2217110a0200000000000000131f2c3946525f6c7985929facada093877a71717171717171717171717171717171717883909aa4ada1968e81746b60554e48443d35302820180f0600000000000000000000000915222f3c4855626f7c8895a9b3a4988b7e7165584b3e32251807000000000000081926333f4c5966727f8c99a5b2a995887b6e6255483b2f221508000714212d3a4754606d7a8793a0adbab9ada19792857d76716e696b6b676d70747a808792978e81828f9ca9ac9f93877b6f6a6c6e695f53473a2e21140800131f2c3946525f6c7985929facada093877a6d6054473a2d21140700000000000000000000000007131d27333f4953606d7985929fabb1a7988b7e7265544a3f34281c10030006121f2b3844505c6675818e96a1a4978a7e79797979797979797979797979797979797979788693a0aca194877b79797979797979726d62564a3e3125180b00121e2b3845515e6b7884919eabaea194887b6e6155483b2e2215080000000000000000000000000000000000000000000000000000000000000000000000000006121f2c3844505c66727f8b95a0aba89f92877d706b605d55534e4f4f495053555a61686d79829097a1a49f94897c6f6256493c2f2316090000000000000714212d3a46535e6974818d97a1ada19790837a6e69605c5455545556555c60696e7a839098a2aea69e9184796d6053473b31261a0e0200000000000613202c3945525d68717e8a939da6a89f948f837c746f6c6668676768666d70757c838f939ea7a69e938b7f72685e52463b3025190d0100000000000000000000000000000000000000000000000009131c252e37404a525c606c77818e93939393939393959082796d665c544a3f382e251c1309000000000000000000000000000000000000000000000000000000000000040606060606060605000006111c26303e48505a626c717f88939f9f948f857e756d686159514b433d342b21160a00060606060400000000000000000000000000000000040e1a25303b454f59606b707b818a90959a9ea1a8a6a4aaa39fa3aab4a8a3a1a2a4a8aba49f9c98928c847c706b615a50453b2f261c0b0200000000000000000000000306080909090909090909090909090909090909090909090909090909090909090909090909090909090909090806030000000000000000000000000000020b141c2228323b41464d53555d606468696e70737476777878797979797877767573716f6d6665615f57535049413d352f281f170f06000000000000000000000000000000000000000000000000000000000000040d161d24292c39393939393939392e2d2a272b3036393a3e4143454646454543413e3a39352f2a251f171820262b2f35393a3e4143454546454443413e3b3a36302b2620181006000000000000000000131f2c3946525f6c7985929facb1a4988b7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e808d95a0acab9e91847a6d67625f58544f45413a322a21181006000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000b1825313e4b5864717e8b97a4b0a3968a7d7063574a3d3024170a000714212d3a4754606d7a8793a0adbcb1a79e92857c706b64615e57555d6063686d747e8692938e86929faca99d908376695f60625f574d42372b1e120600131f2c3946525f6c7985929facada093877a6d6054473a2d211407000000000000000000000000010b17222d3845515d6774818e9aabb5a89c8f8275665c5044382c1f12060003101c28343f4a54606d7a84919ea59f92867b6e666c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6d798693a0aca194877b6e6c6c6c6c6c6c65625b51463a2e22160900121e2b3845515e6b7884919eabaea194887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7984919ea7ada1968d80736b6059514b474342423f44464850565d676d7a85929b9993908c8275685c4f4235291c0f020000000004101d2935404b55616e7b86929fa9a69e92857a6e685e57514b484848494b51575e686e7b86929fa9ada1968b7e7165574d42362a1e12050000000004111d2935414c55606d7a85929ea5aca0968f82796e6a62605b545a5b545c60636a6e78818f959faba59f92857a6e61564c41362a1e1105000000000000000000000000000000000000000000000000010a131c252e384044505b656c7881868686868686868683796d675d544a42382d261c130a010000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141e2c363e48505a626d727f8b919b9e97928a817a706b605d554e463d32271b0f030000000000000000000000000000000000000000000009141f29333d474f5960696e757d83888d9196979a9b9d9e9fa3aab4aaa29f9e9c9b9999938f8b857f796f6a615950483e33291d140a00000000000000000000040a0f121515161616161616161616161616161616161616161616161616161616161616161616161616161616161515120f0a030000000000000000000000020b141d262d333e444c52575f62676d7174787b7d7f81838485858686868585848382807e7c7976726e6964605b534f454039312921170f06000000000000000000000000000000000000000000000000000000000000040c12181d202d2d2d2d2d2d2d2d21201d1b1e252a2d2e32353738393939383634312d2c29241e1a140d0c151a1e24292c2d31343638393939383734312e2d2a251f1b150e0600000000000000000000131f2c3946525f6c7985929facb8a69b908b8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8d929da7b1a79a8e817b77746f6a636059524c443c332a22180f050000000000000000000b1825313e4b5864717e8b97a4afa295897c6f6256493c2f2316090000000000000a1723303d4a5663707d8996a3b0a4978b7e7164584b3e3125180b000714212d3a4754606d7a8793a0adb8ab9f958a7e716a605954524d4b5154565d616c707d8793989298a3aea79a8d817467575355534d453c31261a0e0200131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000006111b2935404b5564717d8a99a3afac9f9285796d6053463a2d20130700000b17232e3845525d68707d89939da2989083796d6059606060606060606060606060606d798693a0aca194877b6e616060606060585651493f34291e120600121e2b3845515e6b7884919eabaea194887b6e6155483b2e22150802020202020202020202020202020202020202020202020000000000000000000000000004101d2935404b5564717d8a96a1acaa9e9184796d60594f45403937312d3337393e444c555e68717e8b8e8a86837f7c6f6255483c2f221509000000000006131f2c3945515d6774818d99a3ab9f948a7e71685e564d45403c3b3b3c40454d565f69727f8b97a1ada99d908377695f53463a2d211407000000000613202c3945515d6773808d97a1ada69e91847a6d675f5853504a4e4e4b5153585f666d79839099a3ada2978d8174685e5246392d20140900000000000000000000000000000000000000000000000000010a131c2627333f49535b666c757979797979797979776d675d554b42392f261c140a0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c1a242d363f48505a626d727f8b919ba29f938e857d746d6760584e43382c1f130700000000000000000000000000000000000000000000030d17212b353d474f575e616b70767c8084878a8d8f90919298a3aea2989291908e8c8986837e79726d6660584f473e362c21170b02000000000000000000060e151b1f21222323232323232323232323232323232323232323232323232323232323232323232323232323232322211f1a150e06000000000000000000000a141d262f383f4450565e61696e74797d8184878a8c8e8f909192929392929291908f8d8b8886837f7b76706c656059514b433b332921170d0400000000000000000000000000000000000000000000000000000000000001070d101320202020202020201413110f13191e202125282a2b2c2c2c2b2a272421201d19130e0903030a0f13191d202124272a2b2c2c2c2b2a282421201e1a140f0a030000000000000000000000131f2c3946525f6c7985929facb8aca29b9897979797979797979797979797979797979a9da4aeb5a99d938e8784817c76706b605d564e463c342a21170b0200000000000000000c1926323f4c5965727f8c98a5aea195887b6e6255483b2f2215080000000000000916232f3c4956626f7c8995a2afa5988b7f7265584c3f3225190c000714212d3a4754606d7a8793a0adb6aa9d9083776c61584f4846424145474c525a616b73808d969fa3aab4a5998c7f7266594c4847423c332a2015090000131f2c3946525f6c7985929facada093877a6d6054473a2d21140700000000000000000000000000000c18242f3a4754606d7a86929facaea298887b6e6255483b2f221508000006111c2935414c56606b74818e96a1a0958d80746b60564c53535353535353535353606d798693a0aca194877b6e6154535353534c4a463f372d23180d0100121e2b3845515e6b7884919eabaea194887b6e6155483b2e22150f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0b0a08040000000000000000000613202c3945515d6775828f9ba8aea3988b7e71675d51473d352f2b2622272b2d323a434c56606d7883817e7a76736f6a5f53473b2e21150800000000000714202d3a4753606d7985929faba89c8f82766c61564c433b342e2e2f2f343b444d57606d7985919eababa095887b6e6155483b2e221508000000000714212d3a4754606d7a85929fa9aa9e94897d70685d554e46443f41414045464e545c676f7c87929faca99f92867a6e6154473c31261a0e0200000000000000000000000000000000000000000000000000010a1417222d38414a545b60686c6c6c6c6c6c6c6c6a605d554c433930271d140a0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008121b242d363f48515b626d727f8c919ca39e97918a81796f6a6054483b2e2215090000000000000000000000000000000000000000000000050f19232b353d454d525961636a6f74787b7d8082838486929fac9f92868483827f7c7a76716d67605c544e463e352c231a0f0600000000000000000006101820262b2e2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2e2b2620181006000000000000000006111b262f38424a505a61686e747b81858a8e919697999b9c9d9e9f9f9f9f9f9e9e9d9b9a9898928f8c87827d78706b605d554d453b33291f160c0100000000000000000000000000000000000000000000000000000000000000010406131313131313131307070502080d111314181b1d1f1f201f1e1d1b181413110d08010000000001080d111314181b1d1e1f201f1e1d1b181414110e090200000000000000000000000000131f2c3946525f6c7985929facb8b4aca6a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a7a9aeaeafafa59d9a96918d88837d746d685f584e463c33291d140a00000000000000000d1a2733404d5a6673808d99a6ada194877a6e6154473b2e2114080000000000000815222f3b4855626e7b8895a1aea6998c807366594d4033261a0d000714212d3a4754606d7a8793a0adb3a9988b7f72655a50463d3a3635393a41465059606d7984919eabb4b2a5988b7f7265584c3f3a37312a21180e030000131f2c3946525f6c7985929facada093877a6d6054473a2d21140700000000000000000000000000000713202c3945525d687783909daab4aa978a7d7064574a3d3124170a0000000d19242f3a444f59606d7984919aa49f93887d70685d5245464646464646464653606d798693a0aca194877b6e6154484646463f3e3a342d251b11070000121e2b3845515e6b7884919eabaea194887b6e6155483b2e221b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b171714110c05000000000000000714202d3a4753606d7a86929facac9f92867a6d60554b403529241d1a171b1f2028313a44515c666d7775716d6866625f584e43372b1f12060000000004101c2834404b5564717e8b98a2aca096897d70635a50443b31282321222329323c44515c6673808c99aab1a7988b7e7265584b3f3225180800000005111e2a36424d5765727f8b98a2aea99c8f82756b60564c433c38332d2e34383c424b555f6a74818e9ba8aea3988c7f7266574d42372b1e120500000000000000000000000000000000000000000000000000000006111b262f38424a50535b60606060606060605d54514c433a31271e150b02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b242d363f49515b626d727f8c9193939393938e847c6f6256493c2f231609000000000000000000000000000000000000000000000000071119232b333b42464f55585f6267696e71737576787c8895a093867977767572706d6764605d55514b423d342c231a1108000000000000000000040e18222a31373a3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3a37312a22180e03000000000000040d17222d38414a545b606c717a81878d92989b9ea1a8a6a7a8a7a5a4a3a3a3a3a4a5a6a8a6aaa39f9c9a938f8a837d746d675e574d453b31281d13070000000000000000000000000000000000000000000000000000000000000000000006060606060606060000000000010507070b0e101213131212100e0b070604010000000000000000010406070b0e101212131211100e0b08070502000000000000000000000000000000131f2c3946525f6c7985929facb8b0a8a2a09f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa0a1a2a5a7aba8a09e9a949089817a6e6a5f584e453b2f261c1106000000000000000e1a2734414d5a6774808d9aa7ada093877a6d6054473a2d2114070000000000000815212e3b4854616e7b8794a1aea69a8d8073675a4d4034271a0d000714212d3a4754606d7a8793a0adada197877a6e6154473e342d2a292c30353e45515c67727f8c99a3aeb2a5988b7f7265584c3f322b2620180f06000000131f2c3946525f6c7985929facada093877a6d6054473a2d211407000000000000000000000000000004111d2935414c566875818e9ba8b2a5998c7f7266594c3f3326190c00000008131e28323d45515d67707d88939fa49a91847a6d60594f443a303939393a4653606d798693a0aca194877b6e6154483b393932312e29231b1309000000121e2b3845515e6b7884919eabaea194887b6e6155483b2e28282828282828282828282828282828282828282828282828282423211c1710080000000000000a1723303d4a5663707d8998a3aea89b8e8275675d51433a2f23181d1d1d1d1d161f2834404a545c606a6864615e5655534e463c32261b0f030000000006131f2c3845515c6775828f9caaaa9d9184776b6054483e32291f18151518202834404a54626f7b8898a2aea89b8e8175685b4e423025190d0100000714202d3a46525e697683909daaada196897d7063594f433a312b282223282c3039434e58626f7c8895a0acaa9d908477695f53463a2d211407000000000000000000000000000000000000000000000000000000000a141d262f383f44464e5353535353535353504745413a31281f150c030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b242d373f49515b636d737f86868686868686868174675a4e4134271b0e01000000000000000000000000000000000000000000000000071119202930363e44484e5355575e616467686a6f7b8895a093867a6d69686663605d5553514b454039302b221a1108000000000000000000000a15202a343c434748494949494949494949494949494949494949494949494949494949494949494949494949494949494847433c342a20150a0000000000010c161f27333f49535b666c747e858e92999fa2aaaba9a8a19e9c9a9897979696979798999c9e9fa4acaca49f9c95908981796e695f574d433a2f24180d040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000131f2c3946525f6c7985929facb8a89e969393939393939393939393939393939393939393939495989b9ea1a9aaa69f9c938e847c6f6a5f574d42382d22170b000000000000000e1b2734414e5a6774818d9aa7ada093867a6d6053473a2d2014070000000000000814212e3b4754616e7a8794a1ada79a8d8174675a4e4134271b0e000714212d3a4754606d7a8793a0adab9e918578685e5246392c221e1d20242934404b55616e7a86929facb2a5988b7f7265584c3f32251a150e0600000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000000010d19242f404d596673808c99a6b3a79b8e8174685b4e4135281b0e000000010c16202935404b55606b74808d96a0a1968e81746b61564c4135292d2d3a4653606d798693a0aca194877b6e6154483b2e2d2525221e18110901000000121e2b3845515e6b7884919eabaea194887b6e6155483b35353535353535353535353535353535353535353535353535353531302d28221a120800000000000d1a2733404d5a6673808d99aab4aa978b7e7164554c4131282a2a2a2a2a2a2a2a2a232e39424a51535d5b5754524c4847433c342a20150a00000000000713202d3a4653606d7985929facab998c7f7366594f44362c20170d07070e18232e394653606c7985929fabaa9d9184776a564c41362a1d110500000814212e3b4754616e7b87959fabab9e9184786c6053463d31281f1c17181c1f27313c47535f6a7784919daaaca095887b6e6155483b2e22150600000000000000000000000000000000000000000000000000000000020b141d262d333839424646464646464646443a39352f281f160d0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b252d373f49515b636d737979797979797979746e64584c4033271a0d0100000000000000000000000000000000000000000000000000070e171f252a33383c4347484d5254575a5c626f7b8895a093867a6d605b595653514b47454039342e271e19100800000000000000000000030f1b26313c464e53555656565656565656565656565656565656565656565656565656565656565656565656565656565655534e463c31261a0f030000000007131d28313a44505b656c78808a92979fa3abaaa69f9c9896918f8d8b8a8a89898a8a8b8d8f91939a9c9fa4aca7a09d938e837b6e695f554b41352921160a000000000000000000050a0d0f101313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313100f0d0a050000000000000000000000000104060712131313130908060300000000000000000000000000131f2c3946525f6c7985929facb8a2968c87868686868686868686868686868686868686868787898b8e92979da0a7aba59d9691857c6f695e544a3f33281d12070000000000000e1b2834414e5b6774818e9aa7aca09386796d6053463a2d2013070000000000000714212e3a4754616d7a8794a0ada79a8e8174675b4e4134281b0e000714212d3a4754606d7a8793a0ada99c8f827669564d41362a1a12111319232f3946525e687683909da9b2a5988b7f7265584c3f32251909030000000000131f2c3946525f6c7985929facada093877a6d6054473a2d211407000000000000000000000000000000081824313e4b5764717e8a97a4b1a89c8f8275695c4f4236291c0f00000000040d18242f3a434f59606d79849199a39d938a7d70685e52463e32292d3a4653606d798693a0aca194877b6e6154483b2e21191816120d070000000000121e2b3845515e6b7884919eabaea194887b6e615548424242424242424242424242424242424242424242424242424242423e3c39332c241a100500000004101c2834404b546976828f9ca9aea398887b6f6255483c2f3737373737373737373737373039404446514e4b4746413c3b37322a261f180f06000000000a1723303d4a5663707d8998a2aea399897c706356493d32231a0e05000007121f2b3844505b6676838f9ca9ac9f928579685e5246392d20130700000b1824313e4b5764717e8a97a7b1a79a8e8174665b5044382b1f160f0b0c10151f2b37434e586773808d9aa6b1a7988b7e7165584b3e2d22170b0000000000000000000000000000000000000000000000000000000000020b141c22282b2d353939393939393939372d2c29241e160d04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009131b252d373f49515b63666c6c6c6c6c6c6c6c67645c53483c3024180b000000000000000000000000000000000000000000000000000000050d141a21282c31373a3c4246484a4d55626f7b88959f93867a6d60534c494745403a39352f28231d150c07000000000000000000000006121f2b37434e585f6262626262626262626262626262626262626262626262626262626262626262626262626262626262625f584e43372b1f1206000000010d18242f3a434f59606c77818d929fa2a9ada59e9b948f8b888482807f7e7d7d7d7d7e7e808284878b8f939a9ea6aca59d9590847b6e675d51453d32271b0f03000000000000030a1016191c1d20202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020201d1c1916100a03000000000000000001070d1113141f202020201515120f0a040000000000000000000000131f2c3946525f6c7985929facada093877a797979797979797979797979797979797979797a7b7c7e81858a90959fa3aba8a19792857b6e665b5044392e23180c0000000000000e1b2835414e5b6874818e9ba7aca09386796d6053463a2d2013070000000000000714212d3a4754606d7a8793a0ada79b8e8174685b4e4135281b0e000714212d3a4754606d7a8793a0ada89b8e8175685b4e423025190f0408121d2a36414c566774818d9aa7b2a5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000000000a1724303d4a5763707d8a96a3b0a99c908276695d5043362a1d10000000000007131d28313d45515d676f7c87929fa59e91857a6d615a50443b302d3a4653606d798693a0aca194877b6e6154483b2e211508090601000000000000121e2b3845515e6b7884919eabaea194887b6e61554e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4a49453e362c22170c00000006131f2c3845515c667884919eabac9f9286796d6053464444444444444444444444444444444444444444444444444444443b3a36312a21180e030000000d192633404c5966737f8c99aaac9f92867a6d6053473a2d201407000000030f1c28333f4a546874818e9ba7aea298877a6d6154473a2e21140700010e1b2834414e5b6774818e9aa7b4aa978a7e7164544a3f3328190d040000040d1b26323d4a5764707d8a97aab4a79b8e81746853493f33271b0f030000000000000000000000000000000000000000000000000000000000020a11171c1f20282d2d2d2d2d2d2d2d2a21201d19130c040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000109131b252e37404951575960606060606060605a58534a41362b2014080000000000000000000000000000000000000000000000000000000002090e161c20262b2e30363a3b3e4855626f7b88939393867a6d6053473d3a39352f2c29241d18120b030000000000000000000000000815212e3a47535f6a6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6a5f53473a2e21150800000004111d2935414b55616b73808d939da4ada9a29f938e88827e7b78757472717070707071727375777b7e82878f939fa2aaa7a0969183796d60594f43382c1f14090000000000040d151c212629292d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d292926211c150d04000000000000040c13181d20202b2d2d2d2d22211f1b150e0600000000000000000000131f2c3946525f6c7985929facada093877a6d6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c666c6d6e6f7274797e838c9299a3aba9a1978f82786c60554b4034281c100400000000000e1b2834414e5b6774818e9aa7aca09386796d6053463a2d2013070000000000000714212e3a4754616d7a8794a0ada79a8e8174675b4e4134281b0e000714212d3a4754606d7a8793a0ada79a8d8174675a4e4134271b0801010d1925303e4b5864717e8b97a4b1a5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000000000a1623303d495663707c8996a3afaa9d9083776a5d5044372a1d110000000000010c161f2935404b55606a73808d95a0a1978e81756c61564c41362d3a4653606d798693a0aca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e615b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b575550483e33281c110400000713202d3a4653606d7986939facaa9d908477665c50505050505050505050505050505050505050505050505050505050504846423b332a1f1409000004101d2935404b556975828f9ca8aa9d918477675d5145392c201306000000000b17222d414d5a6774808d9aa7b4aa94887b6e6155483b2e2215080005111e2a36414c566a7683909da9aea298887b6e6155483b2d221708000000000a15212e3b4854616e7b8798a2aeaa9d908377655b5044372b1f120500000000000000000000000000000000000000000000000000000000000000060b0f12131b20202020202020201d1413110d08010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a131c252e3740464b4c53535353535353534e4c4841382f251a0f03000000000000000000000000000000000000000000000000000000000000050b10151b1f21252a2d2f3c4855626f7c8686868686796d6053473a2d2c2924201d18120c0700000000000000000000000000000915222f3c4855626f7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c6f6255483c2f2215090000000613202c3945515d67707d8a929ca5aea9a197928a817c76726e69696765646463636464656669696e72767c828a9298a2aaa8a0958e81746b6054483c31261a0e02000000030d161f262d32353639393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393635322d261f160d0300000000040d161d24292c2d38393939392f2e2b2620181006000000000000000000131f2c3946525f6c7985929facada093877a6d606060606060606060606060606060605b6060616265666d71787f879299a3afa99f948b7f72675c5145382c1f130700000000000e1b2734414e5a6774818d9aa7ada093867a6d6053473a2d2014070000000000000814212e3b4754616e7a8794a1ada79a8d8174675a4e4134271b0e000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d0100081724303d4a5763707d8a96a3b0a5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000000000916222f3c4955626f7c8895a2afaa9e9184776b5e5144382b1e11000000000000040d18242f39434e58606d79839099a39e938a7e71685e52463e333a4653606d798693a0aca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e6868686868686868686868686868686868686868686868686868686868686864615a5045392d21140800000815212e3b4854616e7b879aa4afa99c90837669545d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d55534d453b31261a0e020006131f2c3845515d677884919eaba99d9083766a554b4035291d110400000000061a2633404d596673808c99a6aea295887b6f6255483c2f221509000713202d3946525e687885929fabac9f9285796c605346392d201306000000000714212d3a46535e697985929facac9f9285796c605346392d2013060000000000000000000000000000000000000000000000000000000000000000000306060f131313131313131311070604010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a131c252e353b3e40464646464646464641403c362f261d1308000000000000000000000000000000000000000000000000000000000000000000040a0f12151a1e212e3a47535f6a76797979797976675c5145382c201d1813100d0701000000000000000000000000000000111e2a3744515d6a77848989898989898989898989898989898989898989898989898989898989898989898989898989898983766a5d5043372a1d10000004101d2935404b55606d7984919ea4aeaaa19791857e756f6a65615f575a58575756565757585a565e61656a6f757e869298a2aea89e93897c6f63574d42372b1e12050000000a151f2831383e4243464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464643423e3831281f150a000000010c161f282f35393a45464646463c3b37322a22180e040000000000000000131f2c3946525f6c7985929facada093877a6d6054535353535353535353535353534a5053545456545c60666d737e87929fa7b0a69e9185796d6053463a2f24180d01000000000e1a2734414d5a6774808d9aa7ada093877a6d6054473a2d2114070000000000000815212e3b4854616e7b8794a1aea79a8d8074675a4d4134271a0e000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d0100091623303c4956636f7c8996a2afa5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000000000916222f3c4955626f7c8895a2afab9e9184786b5e5145382b1e120000000000000007121d27313d45515c666f7c87929fa59e92857a6e615a50453b3a4653606d798693a0aca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b7575757575757575757575757575757575757575757575757575757575757575716c6155493c3023170a00000916232f3c4956626f7c8995acb6a89c8f82756a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a615f574d42362a1e1205000714202d3a4753606d7a86939faca89c8f8275695c4f422f24180d01000000000d1a2733404d5a6673808d99a6afa295887c6f6255493c2f221609000714212e3a4754616d7a8798a2aeaa9d918477665b5044382b1f12060000000005121e2a36424d576a7784919daaaea298877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a131c232a2f323339393939393939393433302b251d140b0100000000000000000000000000000000000000000000000000000000000000000000000306090e121f2b37434e585f626c6c6c6c6c6c5c554b4034291c110d0704010000000000000000000000000000000000111e2a3744515d6a77849095959595959595959595959595959595959595959595959595959595959595959595959595959083766a5d5043372a1d10000006131f2c3945515d67737f8c96a1adaea29891857b716c625f5855534d4d4c4b4a4a4a4a4b4b4d4d5254585f626c707c86929fa7afa59c8f8276695f53463a2d211407000005101c26313a42494e505353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353504e49423a31261c1005000007131d28313a40454752535353534847433c342a20150a0000000000000000131f2c3946525f6c7985929facada093877a6d6054474646464646464646464646463f44464748494b51545c606c727e8b959fabada1978b7e7165554b4135291d1104000000000d1a2733404d5a6673808d99a6ada194877a6e6154473b2e2114080000000000000815222f3b4855626e7b8895a1aea6998d8073665a4d4033271a0d000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222f3b4855626e7b8895a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000000000916232f3c4956626f7c8995a2afaa9d9183776a5e5144372b1e1100000000000000010b151f2834404b545f6a737f8c959fa1978f82756c62574d423a4653606d798693a0aca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabb5a89b8f8281818181818181818181818181818181818181818181818181818181818181817e7164574a3e3124170b00000a1623303d495663707c8996a3afa89b8e8177777777777777777777777777777777777777777777777777777777777777776e695f53463a2d211407000915222f3c4855626f7b889aa4afa89b8e8275685b4f422d22170b00000000000e1b2834414e5b6774818e9aa7b4ab95887b6e6255483b2f221508000915222f3c4855626f7b8895aab4a99c8f837669544a3f33281c0f0300000000020e1a2531434f5c6976828f9ca9b4aa95887b6f6255483c2f2215090000000000000000000000000000000000000000000000000000000000030607090b0d0f1111121313121211100f0d0a080705020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a12191e2325262d2d2d2d2d2d2d2d272724201a130b02000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b26313c464e535560606060605f514b43392f23180c010000000000000000000000000000000000000000111e2a3744515d6a7784909da2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a29d9083766a5d5043372a1d1000000714202d3a4753606d7985929ea8b1a79f92867c6f69615a534e484642413f3e3d3d3d3d3e3f404246474e535a616a717e8b959fabac9f93877b6e6155483b2e22150800000a16212d38424c545a5c60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060605c5a544c42382d21160a00010d18242f3a434b51535e6060606055534e463c32261b0f0400000000000000131f2c3946525f6c7985929facada093877a6d6054473a393939393939393939392d3338393a3b3c40454a505a606c7883909da9b3a99d908376675d5145392c201306000000000c1926333f4c5966727f8c99a5aea195887b6e6255483b2f2215080000000000000916222f3c4955626f7c8895a2afa5988c7f7265594c3f3226190c000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000000000a1623303d495663707c8996a3afaa9d9083776a5d5044372a1d110000000000000000030d18232e39424e58606d78839098a39e948b7e71695e52463f4653606d798693a0aca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabb7aa9e938f8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8c807366594d4033261a0d00000a1724303d4a5763707d8a96a3b0ab9e928583838383838383838383838383838383838383838383838383838383838383837b6e6155483b2e221508000a1724303d4a5763707d8a96acb6a89c8f827569544a3f33281c0f0300000004111d2935414c566875828e9ba8aea399877a6e6154473b2e211408000a1723303d4a5663707d8996a3b0a89b8e8275685b4f422d22170b000000000000091c2835424f5b6875828e9ba8b0a396897d7063564a3d3023170a000000000000000000000000000000000000000000000000000104060b10121315171a1c1d1e1f1f201f1f1e1d1b19171514120e09060300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070d1216191920202020202020201b1a18140f080100000000000000000000000000000000000000000000000000000000000000000000000000000000000a15202a343c43474853535353535345403931271d1207000000000000000000000000000000000000000000111e2a3744515d6a7784909d9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9d9083766a5d5043372a1d100004101c2834404b5464717e8a97a2acaca0958b7e726a5f575047433c3a3631323131303031313230363a3c43475058616c7683909da9afa49a8c7f7265594c3f3226190700000d1926323e49545e66696c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c69665e54493e3226190d0004111d2935404b555d606b6c6c6c6c625f584e43372b20150a00000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2d2d2d2d2d2d2d2d2d22282b2d2d2e2e34383f44505b65707d8997a2adac9f92867a6d6054473a2d211407000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f2316090000000000000a1623303d495663707c8996a3afa4988b7e7165584b3e3225180b000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000000000b1824313e4b5764717e8a97a4b1a99c8f8276695c504336291d1000000000000000000007121d27303c44505c666f7c86929fa69f92857b6e615b51454653606d798693a0aca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabb7afa59e9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b998c807366594d4033261a0d00000a1724313d4a5764707d8a97a3b0ada1979290909090909090909090909090909090909090909090909090909090909090887b6e6255483b2f221508000b1825313e4b5864717e8b97a4b1a99d908376665b5044382b1f130a0603060a13202c3945525d687784919daaac9f9286796c605346392d201306000a1724313d4a5764707d8a97a3b0a79a8e8174675b4e4134281b060000000000010e1b2834414e5b6774818e9aa7b0a3978a7d7064574a3d3124170a000000000000000000000000000000000000000000000001070d1113171c1f20222426292a2b2b2c2c2c2b2b2a28262422211e1a1312100c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002060a0c0d13131313131313130e0d0b080300000000000000000000000000000000000000000000000000000000000000000000000000000000000000030e18222a31373a3c46464646464638342f271f150b01000000000000000000000000000000000000000000111e2a3744515d6a77839093939393939393939393939393939393939393939393939393939393939393939393939393939083766a5d5043372a1d100006131f2c3845515c6675828f9a9c9fa29d9083786d60584e453e37322d2a262524242323242425252a2d32373e46505a64717e8b97aab3ac9c8f8275695c4f422f24180c00000f1c2935424e5a66707679797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797670665a4e4235291c0f000613202c3945515d676d78797979796f6a5f53473d32271b0f00000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d212020202020202020171c1f20212123282e343f4953606d7985929eabafa3998a7d7063574a3d3024170a000000000b1724313e4a5764717d8a97a4b0a3968a7d7063574a3d3024170a0000000000000b1724313e4a5764717d8a97a4b0a3978a7d7064574a3d3124170a000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000000000c1926333f4c5966727f8c99a5b2a79b8e8174685b4e4135281b0e000000000000000000000b151e28343f4a545f6a727f8c949fa2978f82766d62574d4653606d798693a0aca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabb7b8afaaa8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a6998c807366594d4033261a0d00000a1724313d4a5764707d8a97a3b0b3a9a19e9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d94887b6e6155483b2e221508000c1926323f4c5965727f8c98a5b2ab9e9285796c6053463a30241b14121012141c26303a4754606d7a86939facaa9d918477655b5044372b1f1205000b1824313e4b5764717e8a97a4b1a79a8d8174675a4e4134271b0e0100000000010e1b2734414e5a6774818d9aa7b0a4978a7d7164574a3e3124170b00000000000000000000000000000000000000000003090e13181d2023282b2d2f3133353737383939393837373533312e2d2a26201f1c17110d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006101820262b2e2f3939393939392c29231d150d0300000000000000000000000000000000000000000000111e2a3744515d6a77838686868686868686868686868686868686868686868686868686868686868686868686868686868683766a5d5043372a1d10000713202d3a4653606d79868b8d909298988a7e71665c50463c332b26211e1a1918171717171818191e20262b343e4754616e7b8798a2aeaa9e9184776b554b4035291d100400101d293643505c69768386868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868276695c504336291d10000714202d3a4753606d7a85868686877c6f62584e43372b1d1207000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114131313131313130b0f12131415181c232d3844505c6675828e9ba8b5ab998c7f7266594c3f3326190c000000000916232f3c4956626f7c8995aab4a4978b7e7164584b3e3125180b0000000000000c1925323f4c5865727f8b98a5b4aa95887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d211407000000000000000000000000000004101c2934404b556774818e9aa7b3a6998c807366594d4033261a0d00000000000000000000030c17232e38424e58606c78839098a29f948b7f72695f544a53606d798693a0aca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabb7b1a9a3a19f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f998c807366594d4033261a0d00000a1723303d4a5663707d8996a3b0b8b0aba99f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa9aaaaaaaaaa94877a6e6154473b2e211408000d1a2733404d5a6673808d99a6b3ada297887c6f62564c41352d26201f1c1f20262e38424e5864707d8a9aa4afa89b8e81756853493f33271b0f03000b1825313e4b5864717e8b97a4b1a79a8d8074675a4d4134271a0e0100000000010e1a2734414d5a6774808d9aa7b1a4978b7e7164584b3e3125180b00000000000000000000000000000000000000040a0f151a1d24292c2e34383a3c3e404244444546464545444342403d3b3a36312d2c28231c19130d08020000000000000000000000000000000000000000000000000000000000000000000000000000000000040607090c0e1011121313131211100f0d0b0807050200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060e151b1f21222d2d2d2d2d2d1f1c18120b030000000000000000000000000000000000000000000000101d2936424f5b677177797979797979797979797979797979797979797979797979797979797979797979797979797979797671665b4e4236291c10000613202d394653606c777c7e808385888b867a6d60544a3f342a211b15120e090b0a0a0a0a0b090e11151b222d3a46525e697885929fabac9f928679675d5145392c1f130600101d293643505c6976838f9393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393938f8276695c504336291d10000613202c3945515d67717e8b959a8f82756a605447392e23180c000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070606060606000003060607070c111b28343f4a546673808d99a6b3a69a8d8073675a4d4034271a0d010000000814212e3b4754616e7a8798a3aea6998c7f7366594c40332619090000000000000d1a2733404d5a6673808d99a6aea298877a6d6154473a2e211407000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d211407000000000000000000000000000006131f2c3845515c677783909daab4aa988b7e7165584b3e3225180b000000000000000000000006111c26303c44505b666e7b86929fa69f92867b6e665b5053606d798693a0aca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabb7a99f9894939393939393939393939393939393939393939393939393939393939393938c807366594d4033261a0d0000091623303c4956636f7c8996a2afb0a69f9c9393939393939393939393939393939393939393939393939c9ea6b0aea398877a6d6054473a2d211407000e1a2734414d5a6774808d9aa7b3b3a9998c8073685d52463f382f2d2b282b2d30383f4a545f6a76828f9cacb0a6988b7e7265584b3f2d22170b00000b1824313e4b5764717e8a97a4b1a79a8d8174675a4e4134271b0e0100000000010e1b2734414e5a6774818d9aa7b1a4978a7e7164574b3e3124180b000000000000000000000000000000000000070c151b20262b2f35393a3f4446484a4d4f5051525253525251504e4c4a4846423d3a38342e29251e19140d050000000000000000000000000000000000000000000000000000000000000000000000000004070c10121316191b1d1e1f1f201f1f1e1d1b19171414110e0806030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0f12151520202020202013100c07010000000000000000000000000000000000000000000000000e1a27333f4a555f676a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6a665f554a3e32261a0d0005121f2b3744505b656c6f717476797b7e7e71675d5142382e22180f0a0502000000000000000002050b111e2a36424d566b7884919eabafa399867a6d6053473a2d20140700101d293643505c6976838f918b86868686868686868686868686868686868686868686868686868686868686868686868686868686868686868b918f8376695c504336291d100004111d2935404b55606d7883909d94897c6f62544b4034281c10040000000000131f2c3946525f6c7985929facada093877a6d6054473a2d211407000000000000000000000000000b17232e3f4c5965727f8c98a5b2a79a8e8174675b4e4134281b0e010000000613202d394653606c7985929faca79b8e8174685b4e4131261a0e020000000003101c28343f4a546875828e9ba8ac9f928579685e5246392d201307000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d21140700000000000000000000000000000714202d3a4753606d7986929facaea298887c6f6255493c2f2216090000000000000000000000000a151e28333f4a545f69727f8b949fa2989082786c605753606d798693a0aca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabb7a3988d888686868686868686868686868686868686868686868686868686868686868686807366594d4033261a0d00000815222f3b4855626e7b8895a9b3ab9f948f8686868686868686868686868686868686868686868686868f949eaaac9f928579675d5145392c201306000e1b2734414e5a6774818d9aa7b4b8ab9f92857a6d615b5049413c393834383a3d424a505c666e7c87939facab9f94877b6e6154483b2e21150600000a1724313d4a5764707d8a97a3b0a79a8e8174675b4e4134281b0e0100000000010e1b2834414e5b6774818e9aa7b0a3978a7d7064574a3d3124170a00000000000000000000000000000000030b121820262b31373a4145474a50535557595c5d5e5e5f5f5f5e5e5d5b595755534d4946443f3835302a251e170e0802000000000000000000000000000000000000000000000000000000000000000001070c1013181c1f20232527292b2b2c2d2c2c2b2a28262421201e1915120f0a0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306080913131313131306040000000000000000000000000000000000000000000000000000000a16222e39434d555b5d606060606060606060606060606060606060606060606060606060606060606060606060606060605d5b554d43382d22160a00030f1b27333f49535b60626467666c6e71716c62554b4030261c100600000000000000010507090e12161c222c3845515c677885919eabaea399877a6d6054473a2d21140700101d293643505c6976838f8b7f79797979797979797979797979797979797979797979797979797979797979797979797979797979797979797f8b8f8376695c504336291d1000010d18242f3a44505c66717e8a979a8e8174665c5145382c1f13060000000000131f2c3946525f6c7985929facada093877a6d6054473a2d21140700000000000000000000000104091925323f4c5865727f8b98a5b2a89b8e8175685b4e4235281b0f0200000005121f2b3744505b657783909daaa99c90837669574d42362a1e12050000000006121f2c3844505c667783909daaa99d9083766a564c4135291d1105000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000007101d2935404b5563707d8a99a3aeac9f9285796d6053463a2d201307000000000000000000000000030c17222d38424d57606c77828f98a29f948c7f726a5f54606d798693a0aca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b7979797979797979797979797979797979797979797979797979797979797979736e63574b3f3226190c00000714212d3a4754606d7a8797a2ada99c8f82797979797979797979797979797979797979797979797979828f9ca9ab9e9184786b554b4135291d1104000e1b2834414e5b6774818e9aa7b4b3ada2988d81746d605b534e4846443f4446484e545c606d7883909aa4afa79c8f8376695e52463a2d20140700000a1723303d4a5663707d8996a3b0a89b8e8175685b4e4235281b090000000000020f1b2835424e5b6875818e9ba8b0a3968a7d7063574a3d3024170a000000000000000000000000000000070c151d232831373c42474b5154545c60626466686a6a6b6c6c6c6b6a6a686664615f575653504a46413a3630292019130d05000000000000000000000000000000000000000000000000000000000003090e12181d1f23282c2d3032343638383939393838373533312e2d2a25211f1b150f0b0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c27313b434a4f5153535353535353535353535353535353535353535353535353535353535353535353535353535353504e4a433a31271c110500000b17222d38414950535558545b60626465625a50433a2f1e140a00000000020507080d1113141a1e21272c343c4653606d7986929facac9f928679675d5145392c20130600101d293643505c6976838f8b7f726c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c727f8b8f8376695c504336291d10000007131d28343f4a54606d7985929e9285796d6053463a2d2013070000000000131f2c3946525f6c7985929facada093877a6d6054473a2d21140c0c0c0c0c0c0c0c0c0c0c070d10151c28333f4a546673808c99a6b3a79a8e8174675b4e4134281b0e01000000030f1b27333f49536874818e9ba7ab9f928578695f53463a2d211407000000000713202d3a4653606d7986929faca79a8e8174675b4e413025190d01000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d211407000000000000000000000000050e19222c3945515d6774818e9aabb4a99c908376665c5044382c1f12060000000000000000000000000006111c262f3c44505b656e7b86929fa69f92867b6e665c606d798693a0aca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c66635c52473b2f23170a00000613202c3945515d677885929eabaa9d9184776c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c667784919eaaa99c8f8376695c50432f24180d01000e1b2834414e5b6774818e9aa7b3a9a19e9e928b7f726c655f585553504a5053555860666d74808d959facaba0958a7d7164574d42362a1e120500000916222f3c4955626f7c8895aab4a99c8f8276695c4f4330251a0e0200000000030f1c2936424f5c6975828f9ca8b5ab95897c6f6256493c2f23160900000000000000000000000000000810191e272e343c43474d53555d6064666d6f7173757777787979787877767573706e696763605c54524c46413b322a251e170e06000000000000000000000000000000000000000000000000000001070c141a1d24292c2e34383a3c3f4143444546464645444342403e3b3936302e2b261f1c17110a020000000000000000000000000000000000000000000000000000000000000000000000000000040607090c0e1011121313131211100f0d0b0807050200000000000000000000000000000000000000000000000000000b151f2931393f42444646464646464646464646464646464646464646464646464646464646464646464646464646464643423e3831281f150a00000006111b262f383f4446484b4a50535558585650483f31281d0c02030506090e121415191d2021262b2d33383e464e58636f7c8999a3afab9e9185786b554b4135291d110400101d293643505c6976838f8b7f72656060606060606060606060606060606060606060606060606060606060606060606060606060606065727f8b8f8376695c504336291d100000010b17232e3845515c6673808d99978a7d7063574a3d302417070000000000131f2c3946525f6c7985929facada093877a6d6054473a2d211919191919191919191919191a181d20262b3844505b6674818e9ba7b3a6998d8073665a4d4033271a0d00000000000b17222d3f4c5965727f8c98aaada297887b6e6155483b2e23180c000000000915222f3c4855626f7b8898a3aea9988b7e7265584b3f3225180800000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000060e17202935404b55606d7985929fabb1a7988c7f7265544a3f34281c100300000000000000000000000000000a141d27333f49535e69717e8b949ea3989083786d60606d798693a0aca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e616060606060606060606060606060606060606060606060606060606060605957524a40352a1f1307000004111d2935414c55697683909ca9ab9f928578695f606060606060606060606060606060606060606d7986929faca79a8d8174675a4e4134271b0700000e1b2734414e5a6774818d9aa7ada19792919692877f776f6a6562605b545c6062656a6f78808d929ca7afa4999083786c6053463b30251a0e0200000814212e3b4754616e7b8798a3aeaa9d9084776a574d42362a1e12050000000005111d2935414c566a7783909daaafa399877b6e6154483b2e2115080000000000000000000000000009111a222a303940454e53575f62676d7175797b7d8082838485858685858483817f7d7b7874706d66615e56524c443e36302920180f07000000000000000000000000000000000000000000000000030b12181f252a2f35393a404446494c4e5051525253525251504e4c4a4746413c3a37312b28221c140b070000000000000000000000000000000000000000000000000000000000000000000004070c10121316191b1d1e1f1f201f1f1e1d1b19171414110e0806030000000000000000000000000000000000000000000000040d171f272e333637393939393939393939393939393939393939393939393939393939393939393939393939393939393736322d271f160d03000000000a141d262d3337393c3e3f4446484b4b4a453f362d1f160c0b0f1213151a1e2121252a2d2e31373a3d44485058606a74818e9babb5a99d9083766a5d50432f24180d0100101d293643505c6976838f8b7f72655853535353535353535353535353535353535353535353535353535353535353535353535353535865727f8b8f8376695c504336291d1000000006111c2834404b54626f7c88979a8d8073675a4d402e23180c0000000000131f2c3946525f6c7985929facada093877a6d6054473a2d252525252525252525252525262624292c31373f4a54606c7985919eabb3a9988b7e7165584b3e3225180b00000000000616232f3c4956626f7c8998a2aea9978b7e7164544b4034281c1004000004101d2935404b5565727e8b98aaada197887c6f6255483c2f22150900000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d211407000000000000000000030a0f182029323b45515d67727e8b97a2adab9f95887b6e6155483b2e23170c000000000000000000000000000000020b17222d38414d57626c75828f97a29f958c7f736a606d798693a0aca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e615553535353535353535353535353535353535353535353535353535353534d4b4740382e24190e020000010d19242f414d5a6774808d9aabaea298887b6e61555353535353535353535353535353535355626f7c8899a3afa9988b7e7265584b3f3225180c00000e1a2734414d5a6774808d9aa7ab9e9285849199928c827c76726e6c666b666d6e72767c828d929ca4aea69f93877c6f655b504437291f14090000000713202d3a4653606d7986929facab9f928578695e52463a2d201407000000000713202d3946525d687885929eabac9f9286796d6053463a2d20130700000000000000000000000009121b232c343c424b51585f62696e747a7d8185888a8c8f9091919292929191908e8c8a8884807d79736d68615e565046413a322a2119100700000000000000000000000000000000000000000000060d151d24293136394045474a515356585a5c5e5e5f605f5f5e5d5b595754524c4847433c38332d261d18120b03000000000000000000000000000000000000000000000000000000000001070c1013181c1f20232527292b2b2c2d2c2c2b2a28262421201e1915120f0a0300000000000000000000000000000000000000000000050d151c2227292a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2a2926221c150d040000000000020b141b22272b2d2f2d3338393b3e3e3d3a342d241b1114171b1f2022252a2d2e3036393a3d4246484f545a616a6f7c87939facb2a8998d8073665a4d4033271a070000101d293643505c6976838f8b7f7265584c4646464646464646464646464646464646464646464646464646464646464646464646464c5865727f8b8f8376695c504336291d10000000000c18232e394653606c7985929c90837669544b4034281c100400000000131f2c3946525f6c7985929facada093877a6d6054473a3232323232323232323232323232332f35393c4347505b66707d8997a1adada297887c6f6255493c2f22160900000000000713202d3a4653606d7985929faba79b8e8174665c5145382c1f160c06060c141f2c3845515d6775828e9ba8ab9e9285786c605346392d20130600000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d21140700000000000205060b0f151a212a323b444e58606d7984919ea9b2a89d908376695f53463a2d1c11060000000000000000000000000000000006111b262f3b45505a616e7b85929fa59f92877c6f666d798693a0aca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e61554846464646464646464646464646464646464646464646464646464646403f3b352e261c120700000000081724313e4a5764717d8a99a3afaa988b7e7165574d42464646464646464646464646424d5765727f8c98abada297887b6f6255483c2f22150900000d1a2734404d5a6773808d9aa6ab9e92857d89929f948f88827e7b79787778797b7f828990949da4aea69e938d80736b6053493f3327170d0300000006121f2b3844505c667784909daaaea298877b6e6154483b2e21150a000000000714212e3a4754616d7a8797a1adaa9e918477665c5145382c1f1306000000000000000000000009121b242d353e464e545c606a6f757b81868a8e929797999b9d9d9e9f9f9f9e9d9d9b999796918d8985807a746e68615a524c443c332b2219100700000000000000000000000000000000000000000910181f272f353b42464b5153545c60636567696b6b6c6c6c6b6b6a686664615e5655534e46443f382f28231d150c05000000000000000000000000000000000000000000000000000003090e12181d1f23282c2d3032343638383939393838373533312e2d2a25211f1b150f0b06000000000000000000000000000000000000000000040b11161a1d1e202020202020202020202020202020202020202020202020202020202020202020202020202020201d1c1a16110a0300000000000000020a11171b1f202222282b2d2f3132312e29221b191e2022272b2d2f31363a3b3e4146474a4d53555960636c717c859199a4afaca096897d706356493d3023160a0000101d293643505c6976838f8b7f7265584c3f393939393939393939393939393939393939393939393939393939393939393939393f4c5865727f8b8f8376695c504336291d1000000915202b353f4744505b6575828f9b918578665c5145382c1f130600000000131f2c3946525f6c7985929facada093877a6d6054473f3f3f3f3f3f3f3f3f3f3f3f3f3f3f40414045474e535b606c7883909da9b3ac9e9285796c605346392d201306000000000006121f2b3844505c6675828f9caaab9e9285796d6053463d31281e171515171e28313a4753606d7985929facaa9b8e8175655b5044372b1f120500000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d21140c0c0c0c0d090e1114171b1f262b333b444c56606a73808c96a1adada1968a7e7164574d42362a1e0a0000000000000000000000000000000000000a141d29333f46525e69717e8a939ea3999083796d6d798693a0aca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e6155483b39393939393939393939393939393939393939393939393939393933322f2a241c130a00000000000714212e3a4754616d7a86929faca89b8e8275695e53463d313939393939393939303946525e6976828f9ca9ab9e9285786c605346392d20130600000d192633404c5966737f8c99a6ab9f928578808d939f9c948f8b888685848586888b8f949c9fa6aca49d948f81786c60594f41382d2217050000000003101c28343f4a546875818e9ba8b3aa978a7d7064574a3d32271b0d04000001081623303d495663707c8996a9b3a89c8f827569544b4034281c10040000000000000000000007101b242d363e474f585f666d737c82878e92989b9ea2a9a6a8aaa8a7a6a6a6a7a8a9a8a6a8a19e9a97928c86807a716c615e564d453c342b22190e0500000000000000000000000000000000000009121b222a313940454d53555d6065666d6f72747677787979797877767573716e6867625f5853504a423d342e271e170e05000000000000000000000000000000000000000000000001070c141a1d24292c2e34383a3c3f4143444546464645444342403e3b3936302e2b261f1c17110a0200000000000000000000000000000000000000060e151b1f21222323232323232323232323232323232323232323232323232323232323232323232323232323232322211f1a150e06000000000000000000060b0f121315171c1f2022252524211d1d20252a2d2d3337393c3f4246484b4c525457575f61656b70767e859197a1abb1a79d9184786c605346392d2013060000101d293643505c6976838f8b7f7265584c3f322d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d323f4c5865727f8b8f8376695c504336291d1000010e1a26313d4751595e5f6673808c999786796d6053463a2d20130700000000131f2c3946525f6c7985929facada093877a6d60544c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4d4d4b5153585f626d737f8c959fabafa49a8d8174665b5044382b1f1206000000000003101c28343f4a5464717e8b98a3ada2978a7d7064594f433a30282322222227303a434f5964717e8a98a2aea2988a7d706453493f33271b0f0300000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d211919191919191a191e2022272b31373e454d565e686f7c87929fa8b1a79e9184786d6053463b31261a0e000000000000000000000000000000000000020b17212a36424d56616c75818f97a1a0958c80736d798693a0aca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e6155483b2e2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2626231f19120a0100000000000713202d3946525d6876828f9ca9ac9f92867b6e61584e433b322c292424292c3139424d57616e7b86929faca89b8e8174655b5044372b1f120500000c1825323f4b5865727e8b98a5ac9f92867977818c939a9f9c989993929192939a989c9fa6aba8a09d928d82796d665b50463d2f261b110600000000000b17232e3f4b5865727e8b98a8b2a69a8d807367584e43372b1f15100c090e131e2a36414c5666727f8c99a5b3aa998c7f7366594c402e23180c00000000000000000000050e19222d363e485059616a6f7980878f93999fa3aaabaaaaa29f9d9b9a9a999a9a9b9d9fa2aaa9aba9a19e98928d857e756d685f574e463c342a20170c030000000000000000000000000000000009121b242c343c434b51575e61676d7175797c7f81838485858685858483817f7d7a77736f6a64605b544f454039302920170f05000000000000000000000000000000000000000000030b12181f252a2f35393a404446494c4e5051525253525251504e4c4a4746413c3a37312b28221c140b07000000000000000000000000000000000006101820262b2e2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2e2b262018100600000000000000000000030506060b0f12131518181b1e25292d3036393b3f4446484b4d535457565e616467696e72777d828a9297a1a9b3aa9f958b7e71665b5044382b1f12060000101d293643505c6976838f8b7f7265584c3f322520202020202020202020202020202020202020202020202020202020202025323f4c5865727f8b8f8376695c504336291d100004111d2a36424e59636a6c6c727f8b9894877a6e6154473b2e21140800000000131f2c3946525f6c7985929facada093877a6d605858585858585858585858585858585859595a555d60646a6e767f8c919ca7b1a99f93877c6f62544a3f33281c0f030000000000000b17232e3a4754606d7a86929faca99c9083766b60554b423a342e2f2e2d333a424b55616b7683909daaab9f9285796d6053473a2d22170b0000000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2525252525262627252a2d2d33373c434750575f686e7a849199a3afaa9f958b7e71665c504438291f140900000000000000000000000000000000000000050f1925303b44505a616d7a85929ea59f92877c6f798693a0aca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e6155483b2e22202020202020202020202020202020202020202020202020201a1917130e070000000000000005111d2935414c5664717e8b96a1ada3998d80746a60564d443e39352f2f35383c434b545e6973808d99a3aca096897d706353493f33271b0f0300000b1824313e4b5764717e8a97a4aea399867a6d74808891969d9fa49f9e9e9e9fa4aca9a7a79f9d95918980786d675c544a3f342b1d140a0000000000000615222f3c4855626f7b8896a0acaa9d9184776a6054473c31271f1c181b1a1e242d3946525e6876838f9ca9aea298897c706356493d30231607000000000000000000020d17202b343e48505a616b707c838c92999fa4abaca7a09d999892908f8d8d8d8d8d8f909298989c9fa4abaaa29f97928a827a6e6960584e463c32291e150b00000000000000000000000000000008121b242d363e464e555d60696e74797e8285898b8d8f91919293929291908e8c8a8784807c76716c666059514b433b332921170e0500000000000000000000000000000000000000060d151d24293136394045474a515356585a5c5e5e5f605f5f5e5d5b595754524c4847433c38332d261d18120b030000000000000000000000000000040e18222a31373a3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3a37312a22180e03000000000000000000000000000003060b141a20262b3035393b4146474950535558575e616467686d7074777b7f84898f949fa2a9b2aaa2989083786d60544a3f33281c0f030000101d293643505c6976838f8b7f7265584c3f322519131313131313131313131313131313131313131313131313131313131925323f4c5865727f8b8f8376695c504336291d100006121f2c3845525e6a757979797e8a9795887b6e6255483b2f22150800000000131f2c3946525f6c7985929facada093877a6d656565656565656565656565656565656565666768676d71757b828c919ca4adaba2978e81756a5f5342382d22170b000000000000000613202c3945515d6775818e9ba6ab9f94897d70675d544c443f3c3b3b3c3f444b545d67707d89959faba4998d8174675c5145382c1b11060000000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473a32323232323232333430363a3b3f44464e535a61696e7a839096a1abaea3989083786c60544a3f34281c1003000000000000000000000000000000000000000009141f29323e46525e68707e8a939ea399908378798693a0aca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e6155483b2e22151313131313131313131313131313131313131313131313130d0c0a07020000000000000000010d1924303a4653606d7984919ea7ab9f92877c6f685e564f47454141414045474e555c666e7b86929faba89e9184786c605346392d22170b0000000a1623303d495663707c8996abb5ab94877b6e6e737d848a9095989b9d9e9f9f9f9e9c9a9895908a847d736d665c554b42382d22190b020000000000000815212e3a47535f6a7784919eabaca095887c6f62584e4339312c282327262b2f35414c56616d7a86929facab9f9285796d6053463a2d20130700000000000000000009141f29323d46505a626c717d8690959fa3ababa49f9b95908c898584828180808081828385888b8f93999fa2aaa9a19e938f847b6f6a60584e443b30271d12070000000000000000000000000006101a242d363f4850585f676d737b80858b8f9298989a9c9e9e9f9f9f9e9e9d9b999795908d88837e786f6b605c554d453b332920170c0300000000000000000000000000000000000910181f272f353b42464b5153545c60636567696b6b6c6c6c6b6b6a686664615e5655534e46443f382f28231d150c05000000000000000000000000000a15202a343c434748494949494949494949494949494949494949494949494949494949494949494949494949494949494847433c342a20150a00000000000000000000000000020a11171f262a32373a4146474c5254535b60626568696e7174777a7d8084888c91959c9fa6adafa9a19892867b6e665c5142382d22170b000000101d293643505c6976838f8b7f7265584c3f3225190c06060606060606060606060606060606060606060606060606060c1925323f4c5865727f8b8f8376695c504336291d10000613202c3946535f6c798786868a909a95887b6f6255483c2f22150900000000131f2c3946525f6c7985929facada093877a72727272727272727272727272727272727272737475777a7d82878f949ca3adaba39992857b6e61584e432f261c11060000000000000004111d2935414c55626f7c88949faba69e9184796d665d56504a494848494950555d666d7984919ea7aa9f93877b6e61554b4034291c0a000000000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6054473f3f3f3f3f3f3f3f404042424647495053585f626c717b839095a0a8afa59f92867c6f655b5042382e23170c000000000000000000000000000000000000000000020d17202a36414c56616c75818e96a1a0958b7e788693a0aca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e6155483b2e2215080606060606060606060606060606060606060606060606000000000000000000000000000008131f2c3845515c67727f8b95a0aba39991847a6e68615954514c4e4e4b5153575f676d78839098a2aca0968b7f72665b5044382b1b11060000000815222e3b4855616e7b8899a3afa295897c6f626b6f797e83888b8e909192929291908e8b87837e78706b605c544b43392f261c10070000000000000006121f2b37434e586673808d99a3afa89b8e81756a5f554b433c38342e3431373a4145525d68737f8c99a3afa79b8e8175675c5145382c1f13060000000000000000030d1925303b444e58626c717e879298a0a7afa79f99938e88837f7c79777574737373747577797c7f83878d92989ea5ada59e9691857c6f6a5f564c42392e23180c030000000000000000000000030c18222c363f48505a616a6f7980868d92979c9fa2aaa7a9a8a7a6a6a6a7a8a9a8a6a7a09d9a94908a837c746d675e574d453b32291e150a0000000000000000000000000000000009121b222a313940454d53555d6065666d6f72747677787979797877767573716e6867625f5853504a423d342e271e170e050000000000000000000000030f1b26313c464e53555656565656565656565656565656565656565656565656565656565656565656565656565656565655534e463c31261a0f030000000000000000000000040b141c222831363c43474c5254565e6164656c6f7275787b7e8184868a8d9196989da0a8abb0aba59e9791867d6f695f544a402f261c1106000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d10000613202c3946535f6c79869293979aa295887c6f6255493c2f22160900000000131f2c3946525f6c7985929facb2a5988c7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f80808284868a8f92999fa6adaaa29992877d70695e52463c321d140a0000000000000000010d19242f3a47535f6a76828f99a3aca0968f82786d68605c5456555555535b60676d78818f96a0aca2988e8175695f5343392f23180c000000000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d60544c4c4c4c4c4c4c4c4c4c4d4e4d5254535b60636a6e757e859195a0a7afa59d938b7f726a5f53493f30261c110600000000000000000000000000000000000000000000050e1925303a44505a606d7a84919ea59e91847a8793a0ada194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e6155483b2e2215080000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b55606d78839099a3aba09690837a706b64605d555b5b555d60636a6e79818e959faaa49a9184796d60544a3f33281c0a000000000713202d3a4653606d7986929faca4978a7d716460666d71777b7f8183858586858483817e7b76716d666059504a423930271d140a0000000000000000030f1a26313c4854616e7b87929faaac9f92877c6f675d554e46454041414142474c515b606d7a85929eabaca095897d7063554b4034281c100400000000000000010b151f2a36424d56606a717e889299a2aaafa49c959087817c77726f6d6668676766676768666c6f72767b80868e939fa3aaa8a09792867c6f685e544b40342820150900000000000000000000000b151e2a343e48505a626c717c848c92989fa2a9aca8a8a09e9c9a9a999a9a9b9d9fa3ababaaa69f9c95908781796e695e574d443b30261c1106000000000000000000000000000009121b242c343c434b51575e61676d7175797c7f81838485858685858483817f7d7a77736f6a64605b544f454039302920170f050000000000000000000006121f2b37434e585f6262626262626262626262626262626262626262626262626262626262626262626262626262626262625f584e43372b1f120600000000000000000000040d161d262d333b42464e53565e6165686e7175787c7e8184878a8e91939a9a9da0a8aaacaeaca69f9c938e857c6f6b60574d42392e1d140a00000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d10000613202c3946535f6c7986929fa4a6a295887c6f6255493c2f22160900000000131f2c3946525f6c7985929facb8a79c918c8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8c8c8d8e9193999c9fa3abaca69f9892877e716b61564d42342a200b0200000000000000000008131e2b37434e58626e7c87929fa7a89e948f827a716d66646262616264656c7079818f939ea8a69f92867b6e61574d4231271d1207000000000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d6058585858585858585859595a5b565e6164656c70757c828a9297a0a8afa59e938e81746d62584e41382d1e150a00000000000000000000000000000000000000000000000008131e29323e45525d68707d8a939da1978c808c99a6aea194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e6155483b2e22150801010101010101010101010101010101010101010101010100000000000000000000000000000c18232e3944515c666f7c87929fa4a8a09590847d76716d6769676869676d70757b838e939ea7a59f93887d70665c5142382d22170b0000000006121f2c3844505c667784919eaaa5998c7f7266545c6064696e72747778797979787674716e6964605c544f443f3830271e150b020000000000000000000a15212d3a46535e6975818e98a3aea3999083796d675f5853514b4e4e4e4d53555d606d74818e97a1ada69d9083776b605443392e23180c000000000000000007121d27313946525e696f7c86929aa3ababa39f928d837c756f6a6662605c545a5a5a5a5a545b606265696e747b818a9298a2a9a9a19891847a6e665c51453c31261a0e0500000000000000000007121d27303c46505a626c717e8691969fa2aaaba39f9b9796918f8e8d8d8d8d8f9092999a9ea1a9aba79f9a938d837b6e695e564c42382e23170c0400000000000000000000000008121b242d363e464e555d60696e74797e8285898b8d8f91919293929291908e8c8a8784807c76716c666059514b433b332921170e050000000000000000000815212e3a47535f6a6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6a5f53473a2e211508000000000000000000030c161f282f383f444d53585f62686d72767a7e8185888b8e9196979a9d9fa4acaaacafacaba39f9b948f89817a6f6a60594f453b30271c0b0200000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d10000613202c3946535f6c7986929facafa295887c6f6255493c2f22160900000000131f2c3946525f6c7985929facb8ada39c9898989898989898989898989898989898989898999a9b9d9fa4abacaba7a09d9490867e716c62594f443b3022180e00000000000000000000010f1b26323c47535f6a73808d959fa8a69e948f847e7974716f6e6e6f7173787d848f939ea5a79f948c7f72695e53453c311f150b01000000000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a6d656565656565656565656566676869696e7074787d81878f939ea1a9aca49f938e81786d605b51463c2f261b0c03000000000000000000000000000000000000000000000000020c17202935414c56616b74818e96a19f9285929fabaea194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e6155483b2e22150d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0a0907040000000000000000000007121d2834404a54606a727f8c929ca4a7a096918a827d7a7775747475767a7d818790959ea5a59e938d80736b60544b402f261c11060000000003101c28343f4a546875828f9ba8a89b8e817568565153575f6165686a6b6c6c6c6b696765615e5753504a423d342e261e150c070100000000000000000005121e2a36424d57616e7b86929fa6aba0958f82796f6a63605c555b5a5b575f62676d747f8c939ea9a99f948a7d7064594f4430271d120700000000000000000c18232f3943505a616e7b859198a3acaca399928b80786f6a625f585653504a4e4d4d4d4e4a505355575e61696e757e869297a2aaaaa1969082786d60574e42372b21170b0000000000000000000c18232e39424e58616c717f8a9298a0a8aba49f99928e8a8784828180808081828486898d92979ea1a8aca49f9590847b6e685e544a3f342820150a000000000000000000000006101a242d363f4850585f676d737b80858b8f9298989a9c9e9e9f9f9f9e9e9d9b999795908d88837e786f6b605c554d453b332920170c0300000000000000000915222f3c4855626f7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c6f6255483c2f2215090000000000000000000a151e283139424a50575f616a6f757a7f83868b8e9297989b9ea1a8a7aaacafacaaaba39f9c99928e89827c756d6860584f473d33291e150b0000000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d10000613202c3946535f6c7986929facaca295887c6f6255493c2f22160900000000131f2c3946525f6c7985929facacacada7a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a6a7a8aaa9a7a9a19e9a95908a837b706c625a50473e32291f100600000000000000000000000a15202b37434e58606d78839096a0a8a69e96918b85817e7c7b7b7c7e80848a91969ea5a7a0958f82776c60574d42332a1f0d0300000000000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facada093877a72727272727272727272727273737576787a7d8184898e93999ea6ada8a19a938c81786d665c50493f342a1d140a0000000000000000000000000000000000000000000000000000050e1924303a444f59606d7984919aa2989298a2aeaea194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e6155483b2e221a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a171614100b050000000000000000000c18232e39424e58626d73808c929ea1a8a19e948f8a8683828181828386898e93999fa7a39f938f81786d60594f42392e1d140a0000000000000c17232e404c5966737f8c99abaa9d908477685d52464d5355585b5d5e5f5f5f5e5d5b5854534d46443f3830282321201d18130c040000000000000000020e1a25313b46535f69737f8c949fa7a79f948f837c75706d676867676869696e737a818c919ca5aaa1978f82766c6155473d331e150b000000000000000004101c2934404b55616c76828f97a1aaafa49a92877e736d665f58534e4946443f41404040413f4446484d53565e616c717c859298a2aca89f948d80736a5f53473e33281c10040000000000000004101c2834404b545f6a717e87939fa2aaa9a199938e86827e7a777574737373747577797c80858b91969da5afa79f9691847a6e665c50443c32261b0f04000000000000000000030c18222c363f48505a616a6f7980868d92979c9fa2aaa7a9a8a7a6a6a6a7a8a9a8a6a7a09d9a94908a837c746d675e574d453b32291e150a0000000000000000111e2a3744515d6a77848989898989898989898989898989898989898989898989898989898989898989898989898989898983766a5d5043372a1d10000000000000000006111c263039434b545b60696e757c81868b9093999b9ea1a9a8abadafaca9a6a8a09d9a99928f8b86817c766f6b605d564e463d352b21180c030000000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d10000613202c3946535f6c7986929f9f9f9f95887c6f6255493c2f22160900000000131f2c3946525f6c7985929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa39f9f9e9d9c9a9897928e89837e766e69615a50483f352c20170d000000000000000000000000040f1a26313c44505c666e7b8491969ea6a9a19e97918e8b898888888a8d91969ea0a8a59e9590837a6d655b50453b3121180e0000000000000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facb2a5988c7f7f7f7f7f7f7f7f7f7f7f7f7f7f80818385878a8d91969b9fa4ababa39f9691887f776d665c544a3f372d22180b0200000000000000000000000000000000000000000000000000000008131e28323e45515d67707d88939fa29fa2aab4aea194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e6155483b2e2727272727272727272727272727272727272727272727272727272423201c161008000000000000000007121c27303d46515b646e73808a92979fa3a69f9c9992908f8e8e8f9092989b9fa4a69f99928c81786d665c50473d30271d0b02000000000000061724303d4a5763707d8a99a3ac9f93867a6d6054474246484c4e505252535251504e4b4846423c3b3937332d302d2c29241d160d04000000000000000009141f2a36424d57606d78828f959fa7a69f959087817d79777574747476787b80858e939ca3aaa29892857b6e615a5044352b210c03000000000000000006131f2c3845515c67707d8a949fa9b0a69f93887e716c605c544e47433c3a38342e3433342d3338393c42464d525a616a6f7c86929aa4afa69f92877b6e62594f44392d20150a0000000000000006131f2c3845515c666f7c869299a4aea8a0979187817b75716d6869676766676768676d7073797e848e939fa4aca8a0969083786d60584e43372b20150a0000000000000000000b151e2a343e48505a626c717c848c92989fa2a9aca8a8a09e9c9a9a999a9a9b9d9fa3ababaaa69f9c95908781796e695e574d443b30261c110600000000000000111e2a3744515d6a77849095959595959595959595959595959595959595959595959595959595959595959595959595959083766a5d5043372a1d1000000000000000020c17232e38424b555d666c727b82888e92999c9fa4ababadaeaca9aba39f9d9a9795918d8a86837e7a756f6b636059524c443c342b23190f06000000000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d10000613202c3946535f6c7986929393939393887c6f6255493c2f22160900000000131f2c3946525f6c7985929393939393939393939393939393939393939393939393939399929291908f8d8b8885817d77716c615f5750483f362d231a0e05000000000000000000000000000a152028343f4a545e696e7b848f939ea1a8a9a19e9a9795959495979a9ea0a8a8a19e938e837a6e685e53493f33291f0f060000000000000714212d3a4754606d7a8793a0ada69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aea5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facb8a79c918c8b8b8b8b8b8b8b8b8b8b8b8c8c8d8e909297979a9ea1a8acaba39f99928d847d736c655c544a42382e241b100600000000000000000000000000000000000000000000000000000000020c16202935414b55606b74808d96a0abaeb4bcaea194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e6155483b34343434343434343434343434343434343434343434343434343434302f2c28211a110800000000000000000b151e2b343f49525c646e737e858e92999ea1a8a39f9d9c9a9b9c9d9fa3a9a29f9b948f877f776d665c544a3f352c1e150b000000000000000714212d3a4754606d7a86929faca4998a7d7063544b403a3b3f4144454646464543413e3d4347494846443f3f3c3a39352f281f160c0100000000000000030e1a26313b44505c666d7a8390959da5a7a099938e898683828181818385888c92979da5a7a09892867d70695e52483e3323190f000000000000000003101c28343f4a54606d7984919ea6b0aa9e948c7f736c625a504a423c37322d2c282327272722282b2d31363b42465058606a707e88939fa8aea3998f82766c6155493c31261b0f00000000000004111d2935414b55606d79839098a3aba9a09691857d746e6964615d565b5a5a5a5a555c6063666d7179818b939aa4afa89f958c80736a5f54473d32271b0f010000000000000007121d27303c46505a626c717e8691969fa2aaaba39f9b9796918f8e8d8d8d8d8f9092999a9ea1a9aba79f9a938d837b6e695e564c42382e23170c04000000000000111e2a3744515d6a7784909da2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a29d9083766a5d5043372a1d10000000000000000a141e28343f4a545d676d787f868f939b9fa3abacafaca9aaa29f9c999992908d8a8784817d7a76726d68636059544f45413a322b2219110700000000000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d10000613202c3946535f6c7987868686868686867c6f6255493c2f22160900000000131f2c3946525f6c79868686868686868686868686868686868686868686868686868686868685858482807e7b7874706b64615a534d453e362d241b11080000000000000000000000000000030c17232e38424d565e696e7a828a91969d9fa7a7a7a4a2a1a1a2a4a6a7a7a09d96918a81796e685e564c41382d21170d000000000000000714212d3a4754606d7a8793a0aca69a8d8073675a4d4034271a0d01000815222e3b4855616e7b8894a1aca5988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facb8ada39c98989898989898989898989898999a9b9c9ea1a9a7aba9a8a19e99928e87817a706b605b534a423930261c1209000000000000000000000000000000000000000000000000000000000000040e18242f3a434f59606d79849199a4afbbb9aea194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e61554840404040404040404040404040404040404040404040404040404040403d3c38332c231a100500000000000000030c19222d37404a525c636c717a81868d9196989b9c9e9f9f9f9f9e9d9b9997928e89827c736c655c544b42382e231a0c03000000000000000613202c3945515d677683909ca9ab9a8e8174665c5145382e323537383939393836313d464e5456555350494b494745413a31281d1307000000000000000009141f28343f4a545e686d7a838e929d9fa7a49f9b9892908e8e8d8e8f9197999ea1a9a29e9590867d706b60574d42362c221108000000000000000006121f2b3844505c66727f8c96a0acaea2988f82776c605a50443f38302b26201f1c171a1a1a171c1f20252a30363e464e58616c73808d96a1acab9f948a7d7064584e43372b1d120700000000000613202c3945515d67737f8c95a0aaada19791847b706b615e5754524c4e4d4d4d4e4b5153545c60676d747f88939fa5afa79f92877c6f62584e43372b1d1207000000000000000c18232e39424e58616c717f8a9298a0a8aba49f99928e8a8784828180808081828486898d92979ea1a8aca49f9590847b6e685e544a3f342820150a000000000000111e2a3744515d6a7784909d9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9d9083766a5d5043372a1d1000000000000006111c26303844505c666d79828c92989ea5acaeabaca49f9d9998928f8c898683807d7a7774716d6865615e56544f48443d353028201910070000000000000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100006121f2c3845525e6a757979797979797979766a6054473b2e22150800000000121f2b3844515d697479797979797979797979797979797979797979797979797979797979797978777674716f6c65636059555046423c332c241b12090000000000000000000000000000000006111c26303b444d575e686d757e848b9095979a9c9e9e9f9f9f9e9c9a9895908b847e756d675e564c443a2f261b0f05000000000000000714212d3a4754606d7a87939f9f9f9a8d8073675a4d4034271a0d01000815222e3b4855616e7b88949f9f9f988b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929facacacada7a5a5a5a5a5a5a5a5a5a5a5a5a5a6a6a8a9a8a6aba39f9c9996918c87817b746d6761595049413930271e140a000000000000000000000000000000000000000000000000000000000000000007131d28313d45515d676f7c87939fa7b1acaca194877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e61554d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4a48443e352c21160b000000000000000007101b252e38404a525a61686d747b8084888b8e90919292929291908e8c8985817c766f6a605b534b423930261c1108000000000000000004111d2935414b5566737f8c99a7ab9e9285796d6053463e3128282a2b2c2c2c242f39434e58606261605b53585654514b433a2f24180d0100000000000000030b17232e38424c565e686d79818990959b9fa2aaa39f9d9b9a9a9b9c9ea1a9a49f9c97928c837b706b60594f453b30241a100000000000000000000713202d3a4653606d7884919ea8b2a99f92867b6e655b50483e342e261e1b1312100c060d060b0f12131a1f252a343d46505a606d7984919ea8b0a69c8f83766a5f5347392e23180c00000000000714212d3a4754606d7a85929fa7b0a69e92857b6e696059524d47464141404040414045464b51555d606d727f8b939ea9afa3998f82766a605447392f24180c00000000000004101c2834404b545f6a717e87939fa2aaa9a199938e86827e7a777574737373747577797c80858b91969da5afa79f9691847a6e665c50443c32261b0f040000000000111e2a3744515d6a77839093939393939393939393939393939393939393939393939393939393939393939393939393939083766a5d5043372a1d100000000000000b17232e38424f59606d78828f949fa3aaafaca7a09d9a93908c8985827f7c7a7673706d686764605d5654524c48433d383229241e160e07000000000000000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100004111d2a36424e59636a6c6c6c6c6c6c6c6c6260584e43372b1f130600000000101c2935414d5862696c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b6a69676562605b53544f49453e37312a211a12090000000000000000000000000000000000000a151e29323b454d565d606c71797e83878a8d8f9192929292918f8d8b87837e79716c605d554c443b32281d140a00000000000000000714212d3a4754606d7a8793939393938d8073675a4d4034271a0d01000815222e3b4855616e7b8893939393938b7f7265584c3f3225190c000000000000131f2c3946525f6c7985929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa39f9f9e9d9c9b99979992908c89847f7b746e69605d554f443f382f271e150c020000000000000000000000000000000000000000000000000000000000000000010c161f2935404b55606b73808d95a09f9f9f9f94877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e615a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a57554f473e33281c1004000000000000000009131c262e38404850565e61696e73787c7e818384858686858583817f7c79746f6a625f585049413930271e150a000000000000000000010d18242f3b4855616e7b88959faba1978a7e71645a50433a2f241d151f141c2935404b55606a6f6e6c65676563605d554b4135291d1104000000000000000006111c26303a444c565e676d747c83898e9298999b9d9e9f9f9f9f9e9d9b999993908b857f786e6960594f473d33291f1208000000000000000005111e2a36414c5664707d8a96a1adada1978c7f72695e53493f3628231c140c0a060300000000000306090e1419222b343e45515d67717e8a96a0acab9f94887c6f62544b4034281c100400000006131f2b37434e5866727f8c97a2adaa9e948a7d70695f574f46423b3935303433342e34383a40454b515b626d74818e97a1adab9e94897c6f62554b4035291d1004000000000006131f2c3845515c666f7c869299a4aea8a0979187817b75716d6869676766676768676d7073797e848e939fa4aca8a0969083786d60584e43372b20150a0000000000111e2a3744515d6a77838686868686868686868686868686868686868686868686868686868686868686868686868686868683766a5d5043372a1d10000000000003101c28343f4a54616b74818e949ea6aeafa7a09d95908b8783807c797673706d676764615e565754524c4746413a38322c272119130c0400000000000000000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d1000010e1a26313d4751595e5f6060606060606055544e463c32271b0f03000000000d1925303b4650585d5f6060606060606060606060606060606060606060606060606060605f5f5e5d5c5a585553504948443d39342b261f180f0800000000000000000000000000000000000000030c172029333b444c525a61676d71767a7e818284858686858483817e7b77716d67615a514b433b322920160b0200000000000000000714212d3a4754606d7a868686868686868073675a4d4034271a0d01000815222e3b4855616e7b868686868686867f7265584c3f3225190c000000000000131f2c3946525f6c798592939393939393939393939393939393939398929291918f8e8d8b8886837f7c78736e69615f57514c433e332d261d150c0300000000000000000000000000000000000000000000000000000000000000000000040d18242f39434f59606d798390999393939393877b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b6e67676767676767676767676767676767676767676767676767676767676767676361594f44382c2014070000000000000000010a141c262e363e444c52575e61666a6f7274767878797978787675726f6d66626058534e443f382f271e150c03000000000000000000000714212d3a46535f697683909da8a99d9083766c61554b40352e27222222262d3845515d676f7c7b797674726f6d675d5145392c2013060000000000000000000a141e28323a444c555c606b6f777d8185898c8e90919292929291908f8d8a86837e79726d665f574f473d352b20170d0000000000000000000714202d3946525e6876828f9ca8b2ab9e9185796d60574d41382d2417110a02000000000000000000000002091019222935404b55606c7884919dabb0a69a8e8174665c5145382c1f13060000000815222e3b4754606a7884919ea9b1a79c8f82756c61574d453d36302d292427272723282c2e343a4145515b606d7a85929eaab0a69b8e8275675d5145392c1f13060000000004111d2935414b55606d79839098a3aba9a09691857d746e6964615d565b5a5a5a5a555c6063666d7179818b939aa4afa89f958c80736a5f54473d32271b0f0100000000101d2936424f5b677177797979797979797979797979797979797979797979797979797979797979797979797979797979797671665b4e4236291c10000000000006121f2b3844505c66707d89939da6b0aca49f959089837f7b76736f6d666663605d555754524c4a4745413a3936302c27211b160d08020000000000000000000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d1000000915202b353f474e5253535353535353534947433c342b20150a000000000008141f2a343e464d5152535353535353535353535353535353535353535353535353535353535252514f4d4b4846443f3838332d28221a140e06000000000000000000000000000000000000000000050e172129323a414550555c6064686e7174767778797978787674716e6965605d555045403a312920170e040000000000000000000713202c3945525d687679797979797979736e64584c3f3326190d00000714212d3a46535f697679797979797979726d62564a3e3124180b000000000000131f2c3946525f6c798686868686868686868686868686868686868686858585848381807e7c7976736f6c65615e57534d45413a3127221b140b0300000000000000000000000000000000000000000000000000000000000000000000000007121d27313d45515c676f7c86868686868686867b6e6154483b2e211508000000000000000000121e2b3845515e6b7884919eabaea194887b737373737373737373737373737373737373737373737373737373737373737373706b6155483c2f231609000000000000000000020a131c242c323b41464d5254585f626568696b6c6c6c6c6b6a686663605c54544e4e4c4841382f1d150c03000000000000000000000005121e2a36424d5764717e8b96a1ab9f958a7d70675d51454039302f2e2f2f38404b55606d7986888583817e7c796d6054473a2d211407000000000000000000020c162029323a434b515960636b7075797c7f82838485868685858382807d7a76726d67605c544d453d352b23190e050000000000000000000814212e3b4754616e7a87939facafa3998c7f72675d51453b2f261b1206000000000000000000000000000000071018242f3944505b66727e8b99a3aeac9f9285796d6053463a2d2013080000000916222f3c4955626f7c8896a1acaca095897c6f625a50453b332a25201d191a1a1a181c1f23282f353f45515d67727f8b98a2aeac9f9286796d6053473a2d201406000000000613202c3945515d67737f8c95a0aaada19791847b706b615e5754524c4e4d4d4d4e4b5153545c60676d747f88939fa5afa79f92877c6f62584e43372b1d1207000000000e1a27333f4a555f676a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6a665f554a3e32261a0d00000000000713202d3a4653606d7883909da5afafa49a938c837d77726e686663605c545653514b4a4746413e3a3935302d2a251e1b17151312100b0600010000000000000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100000040f19242d353d424546464646464646463c3b37322b22190f040000000000020d18222c343b4144464646464646464646464646464646464646464646464646464646464646454443413e3c3937332d2c27211d170e09030000000000000000000000000000000000000000000000050f1720282f353e434b5153565e616467696b6b6c6c6c6b696765615e5753514b433e352f281f170e050000000000000000000004111d2935414c565d6c6c6c6c6c6c6c6c67645c52473b2f23170b000005121e2b37424d575f6c6c6c6c6c6c6c6c65625b51463a2e221509000000000000121f2b3844515d6974797979797979797979797979797979797979797979787877767573716f6d666662605b53534d47423c352f281f17110a0200000000000000000000000000000000000000000000000000000000000000000000000000010b151f2834404b55606a6f797979797979797976695e53463a2d211407000000000000000000121e2b3845515e6b7884919eabb4a79a8e818080808080808080808080808080808080808080808080808080808080808080807d7063574a3d3024170a00000000000000000000020e1925303b444c525f6060606060605d5d5e5f5f5f5f5e5d5b596060606060605a58534a41362b2014080000000000000000000000020e1a26313b4653606d7984919ea7a79e9184796d605b514b423d3c3b3c3d424a515d67717e8b9892908e8b897e7164574b3e3124180b00000000000000000000050e172029313940454f54596063676d70727576787879797878777573706d6865605d55504a423c332b23191107000000000000000000030f1b27333f495364717e8b9aa4afac9f92867a6e61554b4033291d140a000000000000000000000000000000000007121d28333f4a54616d7a86929facaea298897d706356493d2f24190d0100000d1a2633404d596673808c99a8b2aa9d9083776a6054483e332a211a14110d080d070c1013181d242935414c55606d7985929fabaea2988a7d7164574a3e2e23170b000000000714212d3a4754606d7a85929fa7b0a69e92857b6e696059524d47464141404040414045464b51555d606d727f8b939ea9afa3998f82766a605447392f24180c000000000a16222e39434d555b5d606060606060606060606060606060606060606060606060606060606060606060606060606060605d5b554d43382d22160a0000000003101c28343f4a5464717e8a95a0acaea49f93888078706b65615e565653514a494745403d3a3936302d2c292424242b29262422201f1c1711110c0600000000000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d1000000008121b242b31363839393939393939392f2e2b27201910070000000000000006101a222a30353839393939393939393939393939393939393939393939393939393939393938373634322f2d2b27221b1c16110c060000000000000000000000000000000000000000000000000000050d161e242931394045474c5254575a5c5e5f5f5f5f5e5c5a5854524d474540393129241d160d050000000000000000000000010d19242f3a444c525f606060606060605a58524a40362b1f13070000020e1a26313c454d535560606060606060585651493f34291e1206000000000000101c2935414d5862696c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b6a6968666462605c545653504946423b373129241e160d0600000000000000000000000000000000000000000000000000000000000000000000000000000000030d18232e39434e5860626c6c6c6c6c6c6c6c6c5e574d42362a1e1205000000000000000000121e2b3845515e6b7884919eabb7a99d938e8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8073665a4d4033271a0d0000000000000000000005111e2a36414c565e6c6c6c6c6c6c6c6a675f555353524f5960636c6c6c6c6c6c67645c53483c3024180b00000000000000000000000009141f2c3844515c66727f8b95a0aca1968e81756e605c544f4a4948494a4e545b606d7984919e9f9d9a92857a6d6053473a2d2014070000000000000000000000050e171f272f343d43484f54555c606366686a6b6c6c6c6c6b6a686664615e5653514b443f38302a211911080000000000000000000005121f2b3744505b6575818e9bacb6a99c8f8276685e5243392f21170b020000000000000000000000000000000000010b17222d3846525d6875828f9ca8b4aa9a8d807367564c4135291d11040005111e2a36424d576976838f9ca9b5ab998c7f7366584e43362c21180f0905010000000004070c1319242f3a45515d6774818e9aa7b4aa9b8e817468544a3f34281c1003000006131f2b37434e5866727f8c97a2adaa9e948a7d70695f574f46423b3935303433342e34383a40454b515b626d74818e97a1adab9e94897c6f62554b4035291d100400000006111c27313b434a4f5153535353535353535353535353535353535353535353535353535353535353535353535353535353504e4a433a31271c11050000000006121f2b3844505c6675828f9ca7b1aa9d928b7e736d66605954524d494644403d3a39352f2e2d2a252120282d3031383533312f2d2b28231c1d181109000000000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100000000009121920262a2c2c2d2d2d2d2d2d2d22221f1b150f070000000000000000000810181f25292b2c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2c2b2a29272522201f1b1711100b050000000000000000000000000000000000000000000000000000000000040c13191f272f34383b4146474b4e4f515253535251504e4b4846423b38352f271f18130c040000000000000000000000000008131e28323a414553535353535353534d4c4740382e24190e0200000009141f2a333c424648535353535353534c4a463f372d23180d010000000000000d1925303b4650585d5f606060606060606060606060606060606060605f5f5e5e5c5b5a585553514b4946443f3836312b261f19130c0400000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d27303c464e54555f606060606060605f534d453b31251a0e02000000000000000000121e2b3845515e6b7884919eabb7afa59d9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a998d8073665a4d4033271a0d000000000000000000000714202d3946525e68767979797979797771675b4f464854606b70797979797979746e64584c4033271a0d01000000000000000000000004101c2834404a54606d7883919aa4a89e938c80746d6660595755555556585f666c75818e96a1aca3998e8174675d5145392c201306000000000000000000000000050d151d232932383d44484b515356595b5d5e5f5f5f5f5e5d5c5a5754524c47454039342e261e180f0800000000000000000000000613202d394653606c7885929eabb3a9988b7f7265564c4131271d0f050000000000000000000000000000000000000006111c2935414c5665727f8b98aab4aa9d918477685d5245392c201306000714202d3a46525e697885929eabafa399897c6f6256493d32231a0f060000000000000000000108131e2935404b5564707d8a97a9b3aa9d908377665c5044382b1f120600000815222e3b4754606a7884919ea9b1a79c8f82756c61574d453d36302d292427272723282c2e343a4145515b606d7a85929eaab0a69b8e8275675d5145392c1f1306000000000b151f2931393f42444646464646464646464646464646464646464646464646464646464646464646464646464646464643423e3831281f150a00000000000713202d3a4653606d7985929facaea3988d80746c605c544f4746413c3a38342e2d2c292421201d19242c34393d3e4442403e3b3a38342e2e29231b12090000000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100000000000080f151a1d1f20202020202020201615130f0a040000000000000000000000060d14191c1f1f202020202020202020202020202020202020202020202020202020201f1f1e1c1a181513120f0b0600000000000000000000000000000000000000000000000000000000000000000001080d151d23292c3036393b3e414344454646454543413e3b3a36302c29241d150d07010000000000000000000000000000010c1620282f35394646464646464646403f3b362e261c120800000000030e18212a31373a3b464646464646463f3e3a342d251b11060000000000000008141f2a343e464d51525353535353535353535353535353535353535352525251504e4d4b494645403c3937332d2a251f1a150d080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b151e2b343c43474953535353535353534846423b33291f140900000000000000000000121e2b3845515e6b7884919eabacacafa9a7a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6998d8073665a4d4033271a0d000000000000000000000814212e3b4754616e7a86868686868683776a5d5144495663707d8686868686868074675a4e4134271b0e010000000000000000000000000c18232e3944515c66707d88939fa6a59c928c8079706b666462616263666a6f78808d939ea9a89f92877b6e62554b4035291d100400000000000000000000000000030b121821272c323839404546494c4f50515253535252504f4d4a4746413a39352f28231c150c060000000000000000000000000815222e3b4855616e7b8897a1adada197887b6e6255483b3022150b0000000000000000000000000000000000000000000d1924303c4855626f7b8898a2aeaca095877a6d6054473a2d211407000814212e3b4754616e7b8797a2adac9f92867a6d6053473a2d2014070000000000000000000000010d18242f3b4754616e7a8797a1adac9f9286796d6053463a2d20130700000916222f3c4955626f7c8896a1acaca095897c6f625a50453b332a25201d191a1a1a181c1f23282f353f45515d67727f8b98a2aeac9f9286796d6053473a2d20140600000000040d171f272e333637393939393939393939393939393939393939393939393939393939393939393939393939393939393736322d271f160d0300000000000815222f3b4855626e7b8898a2aeac9f92867a6d615a504a423d3936302d2c282320201d18141317222c363e45494b514f4d4a4846443f383a342d241b110600000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d1000000000000004090e1112131313131313131309080603000000000000000000000000000002080d10121313131313131313131313131313131313131313131313131313131313131211100e0b0906050300000000000000000000000000000000000000000000000000000000000000000000000000030b12181c1f252a2d2e3134363838393939383634322e2d2a251f1d18120b030000000000000000000000000000000000040d161e24292c393939393939393934332f2b241c140a010000000000060f181f262b2d2e3939393939393932312e29231b13090000000000000000020d18222c343b41444646464646464646464646464646464646464646464545444342403e3c3a38342e2d2b27221b1a140e090300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c19222b32373b3c46464646464646463b3a36312921170d0300000000000000000000121e2b3845515e6b7884919e9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f998d8073665a4d4033271a0d000000000000000000000814212e3b4754616e7a87939393939084776a5d5144495663707c89939393938d8174675a4e4134271b0e0100000000000000000000000007121c2834404a54606b73808d949fa7a49c928d837d7773706f6e6f7072767c828d929da5aaa1968d8174695f5343392f24180d01000000000000000000000000000001070c161b21272c2e34383a3d3f42434545464645454442403d3a3936302c29241d17110a03000000000000000000000000000a1724303d4a5763707d8a96a9b3ab9e928578695f53473a2e2114030000000000000000000000000000000000000000000813202d394653606c7985929facb1a795897c6f6256493c2f231609000916232f3c4956626f7c8995a9b3aa9e918477675d5145382c1f13060000000000000000000000000714202d3946525e687885919eabaea398887b6e6255483b2f22150800000d1a2633404d596673808c99a8b2aa9d9083776a6054483e332a211a14110d080d070c1013181d242935414c55606d7985929fabaea2988a7d7164574a3e2e23170b0000000000050d151c2227292a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2a2926221c150d040000000000000a1723303d4a5663707d8996aab4a89c8f8275685e52443f38302d2a25201f1c181413100d07111d28343e485055575e5c59575553504a4a453f362d23180c01000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d10000000000000000001040606060606060606060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c1014191e20212427292b2c2c2c2c2b29272521201e1a14100c070100000000000000000000000000000000000000040c13191d202d2d2d2d2d2d2d2d2726231f19120a0200000000000000060e141a1e21222d2d2d2d2d2d2d2524221e1811090100000000000000000006101a222a303538393939393939393939393939393939393939393939393837363533312f2d2c2823201f1b17110e09030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007101920272b2e2f39393939393939392e2d2a251f170f050000000000000000000000121e2b3845515e6b7884919393939393939393939393939393939393939393939393939393939393939393939393939393938d8073665a4d4033271a0d000000000000000000000814212e3b4754616e7a87949f9f9d9084776a5d5144495663707c89969f9f9a8d8174675a4e4134271b0e01000000000000000000000000000c18232e39424f59606d788290959fa7a49d95908984807d7c7b7c7d7f838890949da4aaa39891847a6d61574d4231281d12070000000000000000000000000000000000040a0f161b1d23282c2d30333537383939393938373533312e2d2a251f1d18120c060000000000000000000000000000000c1926323f4c5965727f8c98a5b2a99c8f837669574d42372b1e120600000000000000000000000000000000000000000006121f2b3844505b667783909daab1a4978b7e7164584b3e3125180b000a1723303d4a5663707d8996a3b0a99c90837669554b4035291d100400000000000000000000000005111e2a36414c566a7683909da9b4aa96897c6f6356493c302316090005111e2a36424d576976838f9ca9b5ab998c7f7366584e43362c21180f0905010000000004070c1319242f3a45515d6774818e9aa7b4aa9b8e817468544a3f34281c10030000000000040b11161a1d1e202020202020202020202020202020202020202020202020202020202020202020202020202020201d1c1a16110a03000000000000000b1724313e4a5764717d8a97a4b0a6998d807366564c41342e26201e191312100c070604010815212d3945505a61646b68666462605c545651483f34291d1105000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100000000000000000000000000000000000000000000000000000000000000000000004090e1112131313131313131313060400000000000000000000000000000000000000000000000004080a0a1313131313131313130e0e0b080300000000000000000000000000000000000000000000000000000000000004080e111414181b1c1e1f20201f1e1d1b181514120e0904000000000000000000000000000000000000000000000001080d111314202020202020201a1917130e080100000000000000000003090e12141520202020202020191815120d060000000000000000000000000810181f25292b2c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2c2b2b2928272522201f1c1813120f0b060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070e151b1f22222c2d2d2d2d2d2d2d21211e1a140d05000000000000000000000000121e2b3845515e6b788486868686868686868686868686868686868686868686868686868686868686868686868686868686868073665a4d4033271a0d000000000000000000000814212e3b4754616e7a8794a1aa9d9084776a5d5144495663707c8996a3a79a8d8174675a4e4134271b0e010000000000000000000000000007121c27303d44505c666d7a8390959da5a7a09d95918d8a888888898c90959c9fa6a9a19892867c6f685e52453c311f160c0100000000000000000000000000000000000000040b1012181c1f202326282a2b2c2c2c2c2b2a29272421201d1913100c0701000000000000000000000000000000000e1b2834414e5b6774818e9aa7b3a79a8d8074675a4d4131261a0e02000000000000000000000000000000000000000000030f1c28333f4a546875818e9ba8b3a6998d8073665a4d4033271a0d000b1724313e4a5764717d8a97a4b0a89b8f8275685c4f422f24180c00000000000000000000000000010d192530424f5c6875828f9ba8b0a3968a7d7063574a3d3024170a000714202d3a46525e697885929eabafa399897c6f6256493d32231a0f060000000000000000000108131e2935404b5564707d8a97a9b3aa9d908377665c5044382b1f120600000000000000060a0e10111313131313131313131313131313131313131313131313131313131313131313131313131313131310100d0a050000000000000000000b1724313e4a5764717d8a97a4b0a5998c7f7266594c3f30231c15110e080807070808090e131925303d4955616c71777573716e6d6665625b51453a2e221509000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d10000000000000000000000000000000000000000000000000000000000000000000080f151a1d1f20202020202020202013100c070100000000000000000000000000000000000000050b101416172020202020202020201b1a18140f0901000000000000000000000000000000000000000000000000000000000000020507080b0e10111213131212100e0b0807050200000000000000000000000000000000000000000000000000000001040707131313131313130d0d0b07020000000000000000000000000002050708131313131313130c0b0906010000000000000000000000000000060d14191c1f1f202020202020202020202020202020202020201f1f1f1e1d1b1a18161313100c0705030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f13151620202020202020201514120e090300000000000000000000000000111d2a3743505c6872787979797979797979797979797979797979797979797979797979797979797979797979797979797979736e63584b3f3226190c000000000000000000000814212e3b4754616e7a8794a1a99d9084776a5d5144495663707c8996a3a79a8d8174675a4e4134271b0e0100000000000000000000000000000b151e28343f4a545d686d7a838e939ea0a8a8a09d999795949596999d9fa7aba49f9792867e706a60564c41332a1f0d040000000000000000000000000000000000000000000000070c10131316191c1d1e1f20201f1f1d1c1a171413110d080400000000000000000000000000000000000000101c2936434f5c6976828f9ca9b2a5998c7f7266594c3f3326190900000000000000000000000000000000000000000000000b17222d404d5a6773808d9aa6b3a89b8e8175685b4f4235281c0f000b1825313e4b5864717e8b97a4b1a89b8e8275685b4f4235281c070000000000000000000000000000081b2835414e5b6874818e9ba7b0a4978a7d7164574a3e3124170b000814212e3b4754616e7b8797a2adac9f92867a6d6053473a2d2014070000000000000000000000010d18242f3b4754616e7a8797a1adac9f9286796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96abb5a69a8d807367544b403428201c1816151514141515171a1e242b37434e5864717e8482807d7b7977726d62564a3d3124170b000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d10000000000000000000000000000000000000000000000000000000000000000009121920262a2c2c2d2d2d2d2d2d2d2d1f1c18120b0300000000000000000000000000000000000810171c2023242d2d2d2d2d2d2d2d2d282724201a130b020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d1012131313131313131313131313131313131313131313121211100f0d0b090706040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030608091313131313131313080705020000000000000000000000000000000f1b27333f4b5660686b6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c66635c52473b2f23170a000000000000000000000814212e3b4754616e7a87949c9c9c9084776a5d5144495663707c89969c9c9a8d8174675a4e4134271b0e010000000000000000000000000000030c17232e38424c565e686d79818991969d9fa4aca6a3a2a1a2a3a5a8a9a29f99938e857c706c61584e443a3021180e00000000000000000000000000000000000000000000000000000406070a0c0f10121213131212110f0d0a07070501000000000000000000000000000000000000000000101d2a3643505d697683909ca9b1a4978a7e7164574b3e3124180b0000000000000000000000000000000000000000000000061926323f4c5965727f8c98a5b2a89c8f8275695c4f4236291c0f000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2834414e5b6774818e9aa7b1a4978b7e7164584b3e3125180b000916232f3c4956626f7c8995a9b3aa9e918477675d5145382c1f13060000000000000000000000000714202d3946525e687885919eabaea398887b6e6255483b2f221508000000000000000000000000000000000000000000000105090b0b1313131313131313120706030000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8899a4afa89b8e8275665c51453a322c29232322212121212223252a2f353f47535f6a76828f8f8c8a8886837e7265584b3f3225180c000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100000000000000000000000000000000000000000000000000000000000000008121b242b3136383939393939393939392c29231d150d0300000000000000000000000000000008121a22282d30313939393939393939393533302b251d140b010000000000000000000000000000000000000000000000000000000003090d1012131313131313131313060300000000000000000000000000000000000000000000000000000000000000000004080c0e0f13131313131313131313131313131313131313131313131313131313131313131313131313130f0e0c080400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17232f3a444e565c5e60606060606060606060606060606060606060606060606060606060606060606060606060606060605a58524a40362a1f1307000000000000000000000814212e3b4754616e7a878f8f8f8f8f84776a5d5144495663707c898f8f8f8f8d8174675a4e4134271b0e0100000000000000000000000000000006111c26303a444c565e676d747d848a90939a9a9c9e9f9f9f9e9d9b9997928d87817a6f6a615a50463c32281e0f060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111e2a3744515d6a7783909daab0a3968a7d7063574a3d3024170a00000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4b1a99c908376695d5043362a1d10000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000a1723303d4a5663707d8996a3b0a99c90837669554b4035291d100400000000000000000000000005111e2a36414c566a7683909da9b4aa96897c6f6356493c30231609000000000000000000000000000000000000000000060c1115171820202020202020201f1312100c06000000000000000000000000000000000000000000000000000714202d3a4753606d7a86939facab9f9285796d60564c443d38342f2f2f2e2d2e2e2f3031363a4145515b626f7c87939b999798928a7e7164574b3e3124180b000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d10000000000000000000000000000000000000000000000000000000000000040f19242d353d424546464646464646464638342f271f150b010000000000000000000000000006101a242c33393c3d46464646464646464641403c362f261d1309000000000000000000000000000000000000000000000000000000070e14191d1f20202020202020202012100c06000000000000000000000000000000000000000000000000000000000002090f14181b1c20202020202020202020202020202020202020202020202020202020202020202020202020201c1b18140f0902000000000000000000000000000000000000000000000000000000040607090c0e1011121313131211100f0d0b0807050200000000000000000000000000000000000000000000000000000000000000000000000000000000000000040607090c0e1011121313131211100e0b080705020000000000000000000000000000000000000000000000000007121d28323c444b505153535353535353535353535353535353535353535353535353535353535353535353535353535353534d4b4740382e24190e02000000000000000000000714212d3a4754606d7a8283838383838174675b4e414855626f7c8283838383827f7265584c3f3225190c00000000000000000000000000000000000a151e28323a444c555c606b70787e83878b8d909192929291908f8c8985817c746d68605850483e342b20160c000000000000000000000000000000000000000000000000000000000000000306060808080808080605030000000000000000000000000000000000000000000000000000111e2b3844515e6b7784919eaaafa396897c706356493d3023160a00000000000000000000000000000000000000000000000b1824313e4b5764717e8a97a4b1aa9d9083776a5d5044372a1d11000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1724313e4a5764717d8a97a4b0a89b8f8275685c4f422f24180c00000000000000000000000000010d192530424f5c6875828f9ba8b0a3968a7d7063574a3d3024170a00000000000000000000000000000000000000000911171d2124252d2d2d2d2d2d2d2d2b201f1c17110a03000000000000000000000000000000000000000000000006131f2c3945515d677683909dabada2978a7e71685e564f4745403e3c3b3b3a3a3b3b3d3f42464c515a626d76828f99a4a6aa9f92857a6d6053473a2d201407000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100000000000000000000000000000000000000000000000000000000000000915202b353f474e5253535353535353535345403931271d1207000000000000000000000000050e18222c363e44494a5353535353535353534e4c4841392f251a0f03000000000000000000000000000000000000000000000000000811191f25292b2c2d2d2d2d2d2d2d2d1f1c17110a030000000000000000000000000000000000000000000000000000030c131a202527282d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d282725201a130c03000000000000000000000000000000000000000000000004070c10121316191b1d1e1f1f201f1f1e1d1b19171414110e0806030000000000000000000000000000000000000000000000000000000000000000000000000003070c10131416191b1d1e1f1f201f1f1e1c1a181514120e09050200000000000000000000000000000000000000000000010c16202a323a3f43454646464646464646464646464646464646464646464646464646464646464646464646464646464646403f3b362e261c120800000000000000000000000713202c3945525d686d767676767676746f64584c4047535f6a6f767676767676726d62564a3e3125180b0000000000000000000000000000000000030c162029323a434b515960666d71767b7e8183848586858484827f7d79746f6a615e564e463e362c22190e050000000000000000000000000000000000000000000000000000000000060b0f121314141414141413120f0b06000000000000000000000000000000000000000000000000121f2b3845525e6b7885919eabafa296897c6f6356493c3023160900000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a3b0aa9e9184776b5e5144382b1e11000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8275685b4f4235281c070000000000000000000000000000081b2835414e5b6874818e9ba7b0a4978a7d7164574a3e3124170b0000000000000000000000000000000000000009121b22292e31323939393939393939382d2c28231c150c030000000000000000000000000000000000000000000004101d2935404b5566737f8c99a3aea99e91857a6d68605953514b4b494848474748484a4b4d53555d606c727f8c949fabaea3998d8074675d5145392c201306000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100000000000000000000000000000000000000000000000000000000000000e1a26313d4751595e5f606060606060605f514b43392f23180c0000000000000000000000030c17202a343e485055576060606060606060605b59534b41362b20140800000000000000000000000000000000000000000000000007111a232a3135383939393939393939392c28231c150c03000000000000000000000000000000000000000000000000020c151e252c31343539393939393939393939393939393939393939393939393939393939393939393939393939393534312c251e150c020000000000000000000000000000000000000001070c1013181c1f20232527292b2b2c2d2c2c2b2a28262421201e1915120f0a03000000000000000000000000000000000000000000000000000000000000000000060b1012181d1f202325282a2b2b2c2d2c2c2a29272521211e1a14110e0902000000000000000000000000000000000000000000050f1820282f333738393939393939393939393939393939393939393939393939393939393939393939393939393939393933322f2a241c140a00000000000000000000000004111d2935414c565d6069696969696967645c53483c434e585f6269696969696965625b51463a2e221609000000000000000000000000000000000000040d172029303940454f545c6064686e7174767878797878777573706d67625f58524c443d342c241a100700000000000000000000000000000000000000000000000000000000020a11171c1f20212121212121201f1b17110a0200000000000000000000000000000000000000000000121f2b3845525e6b7884919eabafa296897c6f6356493c3023160900000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4b0aa9d9184776a5e5144372b1e11000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2834414e5b6774818e9aa7b1a4978b7e7164584b3e3125180b00000000000000000000000000000000000006111b242d343a3d3e4646464646464646453a38342e261e150a00000000000000000000000000000000000000000000000c18242f3b4754616e7a86929fa8ada19790827a6f6b63605c5557565554545454555658575e61676d747e88939fa6b0a89f92867b6e61554b4035291d1004000000101d293643505c6976838f8b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d10000000000000000000000000000000000000000000000000000000000000111d2a36424e59636a6c6c6c6c6c6c6c6c6c5c554b4034291c1004000000000000000000000b151e29323c46505a61646c6c6c6c6c6c6c6c6c68645d53483c3024180b0000000000000000000000000000000000000000000000030e19232c353c414546464646464646464638342e261e150a00000000000000000000000000000000000000000000000009131e272f373d4042464646464646464646464646464646464646464646464646464646464646464646464646464642403d372f271e1309000000000000000000000000000000000003090e12181d1f23282c2d3032343638383939393838373533312e2d2a25211f1b150f0b060000000000000000000000000000000000000000000000000000000000020a11171c1f24292c2d30323437373839393938373634312e2d2a25201e19140e09020000000000000000000000000000000000000000060f161d23272a2b2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2726231f19120a02000000000000000000000000010d1924303a444c52545c5c5c5c5c5c5b58534a41363c464e53555c5c5c5c5c5c585651493f34291e120600000000000000000000000000000000000000050e171e272e343d424a5053565e616567696b6c6c6c6b6a686663605c55534e46413a322b221a110800000000000000000000000000000000000000000000000000000000020b141c22282b2d2e2e2e2e2e2e2d2b27221b140b02000000000000000000000000000000000000000000111e2b3844515e6b7784919eaab0a396897d7063564a3d3023170a00000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a99d9083766a5d5043372a1d10000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000000000000000000000000000000010c17222d363f454a4b53535353535353535246443f3830261c1106000000000000000000000000000000000000000000000714202d3946525e6874808d96a1aaa99f9490847c76706d67666462626160616162636567696e737a818b939aa4afaaa1968d8074695e5343392f24180d01000000101d293643505c6976838f8b7f7265584c3f3225190c06060606060606060606060606060606060606060606060606060c1925323f4c5865727f8b8f8376695c504336291d10000000000000000000000000000000000000000000000000000000000000121f2c3845525e6a75797979797979797976675c5145382c1f130600000000000000000007121c27303a444e58616c70797979797979797979746f64594c4033271a0e010000000000000000000000000000000000000000000009141f2a353e474d51535353535353535353443f3830261c110600000000000000000000000000000000000000000000040f1a252f3941484d4f53535353535353535353535353535353535353535353535353535353535353535353535353534f4d4841392f251a0f04000000000000000000000000000001070c141a1d24292c2e34383a3c3f4143444546464645444342403e3b3936302e2b261f1c17110a020000000000000000000000000000000000000000000000000003090c141c23282b2f35383a3c3f41434445464646454443413e3b3a36312d2a251f1a140d050000000000000000000000000000000000000000050c12171b1d1e20202020202020202020202020202020202020202020202020202020202020202020202020202020201a1917130e0800000000000000000000000000000008131e28323a4145475050505050504e4c4841382f343c4347485050505050504c4a463f372d23180d010000000000000000000000000000000000000000050c151d232830383f44464d5254585a5d5e5f5f5f5e5d5c595653514b47433c3630292019100800000000000000000000000000000000000000000000000000000000000a141d262d3338393b3b3b3b3b3b3937332d261d140a000000000000000000000000000000000000000000111e2a3744515d6a7784909daab0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000c1825323f4b5865727e8b98a5b1a99c8f8276695c504336291d10000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000000000000000000000000000000005111d29343f4850565860606060606060605e53504a42382e23170c0000000000000000000000000000000000000000000005111e2a36414c56606d7a849198a2aaa69f969189827d797573716f6e6e6d6d6e6e707274777b80858e939fa4acaba3989184796d60574d4231281d120700000000101d293643505c6976838f8b7f7265584c3f322519131313131313131313131313131313131313131313131313131313131925323f4c5865727f8b8f8376695c504336291d1000000000000000000104060606060606060606000000000000000000000013202c3946535f6c798786868686868686796d6053473a2d2014070000000000000000081118232e39424c565f6a707e8786868686868686868174685b4e4135281b0e02000000000000000000000000000000000000000000010d1925313c4750585e5f606060606060605f504a42382e23170c000000000000000000000000000000000000000000000814202c37414b53595b60606060606060606060606060606060606060606060606060606060606060606060606060605b59534b41372c20140800000000000000000000000000030b12181f252a2f35393a404446494c4e5051525253525251504e4c4a4746413c3a37312b28221c140b070000000000000000000000000000000000000000000000060d141a1e262e34383a404547494c4e50515252535252514f4d4b4846423b3a36302a251f170e07010000000000000000000000000000000000000001070b0f111213131313131313131313131313131313131313131313131313131313131313131313131313131313130d0c0a070200000000000000000000000000000000020c1620283035393a43434343434341403c362f262a32373b3c4343434343433f3e3a342d251b110700000000000000000000000000000000000000000000030b12181e262e34383b4146474b4e505152535251514f4c4a4645403937322a251e170e07000000000000000000000000000000000000000000000000000000000006111c262f383f444647474747474746443f382f261b11060000000000000000000000000000000000000000101d2a3643505d697683909ca9b1a5988b7e7265584b3f3225180700000000000000000000000000000000000000000000000d1a2633404d596673808c99a6b3a89b8f8275685c4f4235291c0f000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b00000000000000000000000000000000000915212e3a45505a62656c6c6c6c6c6c6c6c6b605c544a3f34281c1003000000000000000000000000000000000000000000020e1925303b45525d686f7c869298a0a8a8a09e948f8a8582807e7c7b7b7a7a7b7b7d7e8084878d92979da5afaaa29992867c6f675d51453b311f160c0100000000101d293643505c6976838f8b7f7265584c3f322520202020202020202020202020202020202020202020202020202020202025323f4c5865727f8b8f8376695c504336291d1000000000000004090e11121313131313131313090806030000000000000013202c3946535f6c7986929393939393867a6d6053473a2d20140700000000000000060f19232834404a545e686f7c86929a93939393968f82786d6053463a2d2013070000000000000000000000000000000000000000000004101d2935414d58626a6c6c6c6c6c6c6c6c6c5c544a3f34281c10030000000000000000000000000000000000000000000c1825313d48535d65686c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c68655d53483d3125180c000000000000000000000000060d151d24293136394045474a515356585a5c5e5e5f605f5f5e5d5b595754524c4847433c38332d261d18120b030000000000000000000000000000000000000000070f181f262a30383f44464b515356585b5d5e5e5f605f5f5d5c5a5854534d4746423b3630292018120b03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040e161e24292c2d3636363636363433302b251d20262b2e2f36363636363632312e29231b130900000000000000000000000000000000000000000000000000070c151c23282c3036393b3e414345454645454442403d3a38342e2b262019130d050000000000000000000000000000000000000000000000000000000000000b17222d38424a505354545454545453504941382d22170b00000000000000000000000000000000000000000f1c2835424f5b6875818e9ba8b3a6998c807366594d402f23180c00000000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7b4a79a8e8174675b4e4134281b0e000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b00000000000000000000000000000000000b1724313d4a56626c717979797979797979786d665c5044382c1f13080000000000000000000000000000000000000000000008141e2935414c56606a707d8691969fa3aba69f9c98928f8c8a89888787878788898b8d9195999fa2a9aba69f9892877e706a60554b4133291f0d040000000000101d293643505c6976838f8b7f7265584c3f322d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d323f4c5865727f8b8f8376695c504336291d100000000000080f151a1d1f20202020202020201615130f0a04000000000013202c3946535f6c7986929f9f9f9f93867a6d6053473a2d201407000000000000040d18212b353d44515c666d7a849198a29f9fa19791847a6d665c5144382c1f12060000000000000000000000000000000000000000000005121f2b3845515e6a74797979797979797976665c5044382c1f12060000000000000000000000000000000000000000000e1b2734404d59656f757979797979797979797979797979797979797979797979797979797979797979797979797979756f65594d4034271b0e00000000000000000000000910181f272f353b42464b5153545c60636567696b6b6c6c6c6b6b6a686664615e5655534e46443f382f28231d150c05000000000000000000000000000000000000081019212931363e424a5053555d606365676a6a6b6c6c6c6b6a696764615e5754524d46423b3329241d150d040000000000000000000000000000000000000000000000000000000000020608080b0e1011121313121211100d0b0807050200000000000000000000000000000000000000000000000000000000000000000000000000040c13191d2021292929292929282724201a13151b1f21222929292929292525221e181109010000000000000000000000000000000000000000000000000000030a11171c1f252a2d2e3234363839393938373533302d2c28231d1b150d0802000000000000000000000000000000000000000000000000000000000000030f1c28333f4a545b60616161616161605b53493f33271b0f03000000000000000000000000000000000000000d1a2734404d5a6773808d9aa6b3a89b8e817568554b4034291c100400000000000000000000000000000000000000000005121e2a36424d576976838f9ca9b2a5988c7f7265594c3f3226190c000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000000000000000000000000000005121e2a36424d5765717e868686868686868685786d6053463a3025190d01000000000000000000000000000000000000000000020d19242f3a434e58606b707c848d92999fa2aaaaa29f9c99979595949394949596989a9da0a8abaaa79f9d948f857d706c61584e433a2f21170d000000000000101d293643505c6976838f8b7f7265584c3f393939393939393939393939393939393939393939393939393939393939393939393f4c5865727f8b8f8376695c504336291d100000000009121920262a2c2c2d2d2d2d2d2d2d22221f1b150f070000000013202c3946535f6c7986929facaca093867a6d6053473a2d2014070000000000020b161f2a333d47515b606d78829096a1aaaea39992857b6e685d544a4034281c1004000000000000000000000000000000000000000000000613202c3946535f6c798686868686868686786d6053463a2d2013070000000000000000000000000000000000000000000f1c2835424f5b68758286868686868686868686868686868686868686868686868686868686868686868686868686868175685b4f4235281c0f0000000000000000000009121b222a313940454d53555d6065666d6f72747677787979797877767573716e6867625f5853504a423d342e271e170e050000000000000000000000000000000008111a222b333b424650545c6063676d6f727476777879797978777674716e6966615e56524d453f352f271f160d04000000000000000000000000000000000000000000000000000205090e121415181b1d1e1f20201f1f1e1c1a181514120e090502000000000000000000000000000000000000000000000000000000000000000000000002080d1113141d1d1d1d1d1d1b1a18140f080a0f1215151d1d1d1d1d1d191816120d07000000000000000000000000000000000000000000000000000000000000060c1014191e202125272a2b2c2c2c2b2a292623201f1c18120f0a04000000000000000000000000000000000000000000000000000000000000000006121f2b3844505b666c6e6e6e6e6e6e6c655b5044372b1f1205000000000000000000000000000000000000000c1925323f4c5865727f8b98abb5aa9d908477675c5145382c1f13060000000000000000000000000000000000000000000714212d3a46535f697885929fabb4aa968a7d7063574a3d3024170a000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000000000000000000000000000000714212d3a46535e69768390939393939393978a7d7063564c4135291d11050000000000000000000000000000000000000000000008131e28313c464f59606a6f7980878e92989b9fa2aaa6a6a4a2a1a1a0a0a1a1a3a5a7a7aca49f9d9995908a827b706b615a50463d31281d0f05000000000000101d293643505c6976838f8b7f7265584c4646464646464646464646464646464646464646464646464646464646464646464646464c5865727f8b8f8376695c504336291d1000000008121b242b31363839393939393939392f2e2b272019100700000013202c3946535f6c7986929facada093867a6d6053473a2d20140700000000000a141d28313c454f59626d74818e949fa8aea49f92877d6f695f564c42392e23180c00000000000000000000000000000000000000000000000613202c3946535f6c798692939393939386796d6053463a2d2013070000000000000000000000000000000000000000000f1c2835424f5b6875828e9393939393939393939393939393939393939393939393939393939393939393939393938e8175685b4f4235281c0f00000000000000000009121b242c343c434b51575e61676d7175797c7f81838485858685858483817f7d7a77736f6a64605b544f454039302920170f050000000000000000000000000000060f1a232c343d454d535a61666d7075797c7f81838485858685858482807e7b77736e69615e575145403931281f160c030000000000000000000000000000000000000000000002080e11151a1e21222528292b2c2c2c2c2b2b29272522211e1a14120e09020000000000000000000000000000000000000000000000000000000000000000000000010407071010101010100e0d0b08030000030608091010101010100c0b09060100000000000000000000000000000000000000000000000000000000000000000003080e111414181b1d1e1f201f1e1e1c19171313100c0700000000000000000000000000000000000000000000000000000000000000000000000613202d394653606c787a7a7a7a7a7a776c605346392d20130600000000000000000000000000000000000000091623303c4956636f7c8999a4afac9f9286796d6053473a2d22170b0000000000000000000000000000000000000000000815222e3b4855616e7b8897a2adaea298887b6e6155483b2e221508000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000000000000000000000000000000815212e3b4854616e7b87939f9f9f9f9fa99b8f8275685e5246392d20150a00000000000000000000000000000000000000000000010c161f2b343d474f585f676d737b81868b8f9298989a9b9d9e9f9f9f9f9f9f9e9d9c9a989a93908d88837d766e69615950483e342b1f160c00000000000000101d293643505c6976838f8b7f72655853535353535353535353535353535353535353535353535353535353535353535353535353535865727f8b8f8376695c504336291d100000040f19242d353d424546464646464646463c3b37322b22190f04000013202c3946535f6c7986929facada093867a6d6053473a2d2014070000000006111c262f3a434d57606b727f8b939da6afa59c928b7e716b60574d443a30271c120700000000000000000000000000000000000000000000000613202c3946535f6c7986929f9f9f9f9386796d6053463a2d2013070000000000000000000000000000000000000000000f1c2835424f5b6875828e9b9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9b8e8275685b4f4235281c0f000000000000000008121b242d363e464e555d60696e74797e8285898b8d8f91919293929291908e8c8a8784807c76716c666059514b433b332921170e05000000000000000000000000030d18212c353e464e575f616c70787d8185898b8e90919192939292908f8d8b87847f7b746e69625b514b433a31281e150b000000000000000000000000000000000000000002080d14191e20262b2e2f323436383939393938373634322e2d2b26201e1a140e090200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080b0e101212131212110f0d0a070604000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8787878787877a6d6154473a2e211407000000000000000000000000000000000000000714202d3a4753606d7a86939facaea399897d706353493f33271b0f030000000000000000000000000000000000000004111d2935414c5565717e8b98a9b3ac9f9285786d6053463a2d201307000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b00000000000000000000000000000007131f2c38434e5866737f8c9aa4afaca8aaac9f92867a6d6154473c32261b0f0000000000000000000000000000000000000000000000040d19222b353d464e555d60696e747a7e8285888b8d8f909192929292929291908f8d8c898683807c76706c615f574f473e362c22190d0400000000000000101d293643505c6976838f8b7f72656060606060606060606060606060606060606060606060606060606060606060606060606060606065727f8b8f8376695c504336291d1000000915202b353f474e5253535353535353534947433c342b20150a000013202c3946535f6c7986929facada093867a6d6053473a2d201407000000071017222d38424c555f69707d87929fa5afa79e938d80736c61594f453c32281e150b0000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d2013070000000000000000000000000000000000000000000f1c2835424f5b6875828e9ba8acacb2adaba5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a59b8e8275685b4f4235281c0f0000000000000006101a242d363f4850585f676d737b80858b8f9298989a9c9e9e9f9f9f9e9e9d9b999795908d88837e786f6b605c554d453b332920170c0300000000000000000000010b151f2a333e474f5860696e767d84898e9298989a9d9d9e9f9f9f9e9d9c9a9795918c86817b726d605d554b433a30271d1207000000000000000000000000000000000000040c13191f252a2d31373a3b3e41434445464645454443403e3b3a37312d2a251f1a140d05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010507070c0f0e0c0904000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794949494877a6d6154473a2e211407000000000000000000000000000000000000000613202c3945515d677784909daab4ab9a8d8073655b5044372b1f140a000000000000000000000000000000000000010c13202c3945515d6775828e9ba8b5a89c8f8275665c5044382b1f1206000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000000000000000000000000000915222e3b4854606a7784919eaca49f9b9ea5a3998b7f7265584e43372b1c12070000000000000000000000000000000000000000000000071019232b343c434b51575f61676d7175797c7e80828384858586868585848482817f7d7a77736f6a64615a534d453e352c241a10070000000000000000101d293643505c6976838f8b7f726c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c727f8b8f8376695c504336291d1000010e1a26313d4751595e5f6060606060606055544e463c32271b0f030013202c3946535f6c7986929facada093867a6d6053473a2d2014070000050e192228333f4a545d676e7b859299a3afa89f958e81776c605a50473d332a20160c030000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d2013070000000000000000000000000000000000000000000f1c2835424f5b6875818e9babb5b2a8a19e98989898989898989898989898989898989898989898989898989898988e8275685b4f4235281c0f000000000000030c18222c363f48505a616a6f7980868d92979c9fa2aaa7a9a8a7a6a6a6a7a8a9a8a6a7a09d9a94908a837c746d675e574d453b32291e150a0000000000000000000007121d27313c454f59616a6f7b828a91969b9fa2aaa7a7a5a3a2a2a3a4a5a8a7a7a09d99928e867f756d675d554b42392e23180c0300000000000000000000000000000000080e161e25293036393c4247484b4e50515253535252514f4d4b4846423c3a36302a251f170f0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d111314191c1b19150f090200000000000000000000000000000000000000030613131313131313130d0c0a07020000000000000000000000000003060809131313131313130b0b09050100000000000000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e2114070000000000000000000000000000000000000004101d2935404b556773808d9aa9b3ab9e9184786c6053463c2f261b1106000000000000000000000000000000000007131d28333f4a54606d7a86929facb1a7988b7f7265544a3f34281c1003000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000000000000000000000000004101c2834404b54626f7c8996a0a49a938e939eab9d9083776a5f5347392e23180c000000000000000000000000000000000000000000000000071119222a313940454d53555d6065666d6f71737576777879797979787877757472706d6866625f58555046423b332c231a1208000000000000000000101d293643505c6976838f8b7f79797979797979797979797979797979797979797979797979797979797979797979797979797979797979797f8b8f8376695c504336291d100004111d2a36424e59636a6c6c6c6c6c6c6c6c6260584e43372b1f13060013202c3946535f6c7986929facada093867a6d6053473a2d20140700030d17202b343d44505b666d79839197a2abaaa1969083796d655b50483e352b21180e04000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d2013070000000000000000000000000000000000000000000d1a2734404d5a6773808d99a3aeada196918b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8175685b4f4235281c0f0000000000000b151e2a343e48505a626c717c848c92989fa2a9aca8a8a09e9c9a9a999a9a9b9d9fa3ababaaa69f9c95908781796e695e574d443b30261c11060000000000000000000c18242f39434d57616b707c858f949ea0a8aca8a19e9a989695959697989c9fa2aaaba39f98928b81796d675d544b4034281e150b0000000000000000000000000000020a121a202830353b4146474e5355585b5c5e5f5f5f5f5e5e5c5a5855534d4846423b363029211a120a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f13191d202126292825201b140c0300000000000000000000000000000000060c101220202020202020201a1917130e0800000000000000000000040a0f13151620202020202020181715110c06000000000000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e21140700000000000000000000000000000000000000010d18242f3d495663707c8997a1adaca196897d7063584e41382d22170f06000000000000000000000000000000071118242f3844505b66717e8b98a2aeaca095887b6e6155483b2e23170b00000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000000000000000000000000006131f2c3845515c6674818d9aa89f9388828e9baaa095887c6f62544a4034281c10040000000000000000000000000000000000000000000000000710181f282f353b42464c5154545c60626567686a6b6c6c6c6c6c6c6b6a69676563605d5655534e49443e36312a211a110800000000000000000000101d293643505c6976838f918b86868686868686868686868686868686868686868686868686868686868686868686868686868686868686868b918f8376695c504336291d100006121f2c3845525e6a757979797979797979766a6054473b2e2215080013202c3946535f6c7986929facada093867a6d6053473a2d201407010b151f29333d46505a606c78828f95a0a9aba29891847a6e675c53493f362d23190f0600000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d2013070000000000000000000000000000000000000000000815212e3b4854616e7b86929faaab9e91847f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7d7063564a3d3023170a000000000007121d27303c46505a626c717e8691969fa2aaaba39f9b9796918f8e8d8d8d8d8f9092999a9ea1a9aba79f9a938d837b6e695e564c42382e23170c040000000000000004101d2935404b555f69707d8692979fa6aca69f9c96918e8b898988898a8c8f92989ea1a8aaa29f938f83796d665c51453d30271c1207000000000000000000000000020b141c242c323a41464d5254575f626567696b6c6c6c6c6b6a696765615f5754524d46423b332c241c140a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c10161b1e25292d2e333534312c251e150c0200000000000000000000000000030a11171c1f2d2d2d2d2d2d2d2d2726231f19120a0200000000000000070f161b1f22232d2d2d2d2d2d2d2524211d1811090000000000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e21140700000000000000000000000000000000000000000713202d3a4653606d7985929eacb2a89c8f82756a5f53493f332721180f0802000000000000000000000003091119232935404b55606c7884919daab3a99d908477695f53463a2d1c110600000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b00000000000000000000000000000713202d3a4653606d7985929eaa9d90837d8998a2a79a8d8074665c5144382c1f130800000000000000000000000000000000000000000000000000060d161d242931363a4145474a505355585a5c5d5e5f5f5f5f5f5f5e5d5c5a595654524c4847433c39332a261f180f080000000000000000000000101d293643505c6976828f9393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393938f8376695c504336291d10000613202c3946535f6c7987868686868686867c6f6255493c2f2216090013202c3946535f6c7986929facada093867a6d6053473a2d20140707121d27313b454e58616c73808d949ea7afa39992867c6f685e554b41382d241b11070000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d2013070000000000000000000000000000000000000000000714212d3a46535e6974818e98a2ada196887c7272727272727272727272727272727272727272727272727272727272706b6054483c2f22160900000000000c18232e39424e58616c717f8a9298a0a8aba49f99928e8a8784828180808081828486898d92979ea1a8aca49f9590847b6e685e544a3f342820150a0000000000000006131f2c3845515d676e7b869298a1a9aaa29f948f8984817e7d7c7c7c7d7f82868b91969da4aea59e958f82786d60594f42392e23180c0000000000000000000000010b141d262e363e444c52565e61666a6e717476777879797878777673716e6966615e57524d453e362e261c140a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e12181d1f272b3035393a3f42413d3730271e1409000000000000000000000000030c151c23282c393939393939393933322f2a241c140a00000000000007101920272b2e2f3939393939393932312e29221b120900000000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e211407000000000000000000000000000000000000000006121f2c3844505c6673808d9aa4afaa9e94887c6f655b50443d332a2219140e09060400000100000406090e141a232b353d45515d67717e8a95a0acada2978b7e7265574d42362a1e0a0000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000000000000000000000005111d2935414c5664707d8a97a2a9998c807885929fab9e9285796d6053463a3025190d0100000000000000000000000000000000000000000000000000040c12181f262a2f35393a3f4446494b4d4f505152525353525251514f4e4c4a4745413c3b37322d28221a140e06000000000000000000000000101d293643505c69768286868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868376695c504336291d10000613202c3946535f6c7986929393939393887c6f6255493c2f2216090013202c3946535f6c7986929facada093867a6d6053473a2d2014071118242f39434d57606a717e8b929ca6aea49f92877d706a5f564c43392f261b1209000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d20130700000000000000000000000000000000000000000005121e2a36424d57616e7b86929fa8a89c8f82766c6565656565656565656565656565656565656565656565656565656360594f44382c2014070000000004101c2834404b545f6a717e87939fa2aaa9a199938e86827e7a777574737373747577797c80858b91969da5afa79f9691847a6e665c50443c32261b0f04000000000004111d2935414b55606d79839098a2aaa9a198928a827c787472706f6f70717275797e848d929fa4aba79f948d80746b60544a4034281c10040000000000000000000009131d262f38404850565e61686e73777b7e81838485868685858482807e7b77736e69615e57504840382e261c13090000000000000000000000000000000000000000000000000000000000000000000000000000000000060c10151a1d24292c32383a4146474c4f4d49423930251b0f0400000000000000000000000a151e262e34384646464646464646403f3b362e261c120800000000040f19222b32383b3c464646464646463e3d3a342d241b1106000000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e211407000000000000000000000000000000000000000003101c28343f4a54616e7b87939fabb0a69c9083776c60584e453c342a251e1a1312100c070e070c1013131a1f262a353d47505a606d7984919ea7b1a99f9285796d6053473b31261a0e0000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000000000000000000000000713202d3946525e6875828f9ba9a197897c75828e9baba1978a7d7064564c41362a1e1105000000000000000000000000000000000000000000000000000001070d141a1e24292c2e34383a3c3e40424344454646464645454442413f3d3a3935302e2b26201c170e0903000000000000000000000000000f1c2935424e5a66707679797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797670665a4e4235291c0f000613202c3946535f6c7986929f9f9f9f95887c6f6255493c2f2216090013202c3946535f6c7986929facada093867a6d6053473a2d2014101a232935404b555e696f7c86929fa4aea69d928b7f726b61584e443b31271d140a00000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d201307000000000000000000000000000000000000000000020e1a25313b46525e6973808c96a0ac9f948b7e716a5f5658585858585858585858585858585858585858585858585856544f473d33271c10040000000006131f2c3845515c666f7c869299a4aea8a0979187817b75716d6869676766676768676d7073797e848e939fa4aca8a0969083786d60584e43372b20150a00000000000613202c3945515d67737f8c95a0aaaba19792867e766f6c6565636262636465676d7279808b9399a4afa69d92897d70665c5144382c1f150a00000000000000000007101b252f38404a525a61686d747b8084888b8e8f919292929291918f8d8b8884807b746e69615a524a40382e251b0f060000000000000000000000000000000000000000000000000000000000000000000000000002090e11171c1f262b2f35393d43474c5254595c59534b42372c2015090000000000000000000006111c2630383f4453535353535353534d4b4740382e24190e020000000a16202b343d434749535353535353534b4a453f362d22180c010000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e2114070000000000000000000000000000000000000000000c17232e3846535f6975828e99a3afab9f948b7f726a60574e463e36302a25201f1c181b1a1b181c1f20262b31363f474f59616c74808d96a1adada2978d8073675d5145392a1f14090000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000000000000000000000000714212e3a4754616d7a86929fab9e928579717e8b99a3a99b8f8275685e5246392d20150a0000000000000000000000000000000000000000000000000000000003090e13191d2023282c2d2f32343537383939393939393837363432302d2c2924211f1b15100b050000000000000000000000000000000d1926323e49545e66696c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c69665e54493e3226190d000613202c3946535f6c7986929facaca295887c6f6255493c2f2216090013202c3946535f6c7986929facada093867a6d6053473a2d201418222c353e45515d676e7b859198a3aea79e948d80746d62594f463c32291f150b0200000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d2013070000000000000000000000000000000000000000000009141f2a36424d57606d7984919aa4a69f92867c6e685d554b4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4a48443d352b21160b0000000004111d2935414b55606d79839098a3aba9a09691857d746e6964615d565b5a5a5a5a555c6063666d7179818b939aa4afa89f958c80736a5f54473d32271b0f01000000000714212d3a4754606d7a85929fa7afa49992857c716c63605b535656555657555c60676d747f87939fa6aea49d9184796d6053463c31261b0f0300000000000000030c19222d37404a525c636c717a81868c9196989a9c9e9f9f9f9f9e9d9c9a9895918d86817b716c645c524a40372d21180e0300000000000000000000000000000000000000000000000000000000000000000001040b1014191c23282c3137394045474e54565e616668655d53493d3125190c000000000000000000000c17232e38424a505f606060606060605a58524a40362a1f13070000030f1b27323d464e545660606060606060585650483f34291d11050000000000000002050708080808080808080814212e3b4754616e7a8794a1a094877a6d6154473a2e21140808080808080808080705020000000000000000000006111c2a36424d57626e7b87929fa8b0a69f92877c6f695f585046413b36312d2c282327272723282c2d31373b42465159606b717e8a929da8b1a79f92857a6d61554b4035291d10040000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b00000000000000000000000006121e2b37424d5765727f8b99a3ab9b8e81756d7a86929fac9f92867a6d6154473c32271b0f00000000000000000000000000000000000000000000000000000000000001080d1113171c1f20222527292a2b2c2c2c2c2c2c2b2a2927262321201d1915120f0a0400000000000000000000000000000000000a16212d38424c545a5c60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060605c5a544c42382d21160a000613202c3946535f6c7986929facaca295887c6f6255493c2f2216090013202c3946535f6c7986929facada093867a6d6053473a2d2016202a343e47515b606d79839097a1aaa9a0958f82786d605b51473d342a20170d030000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d20130700000000000000000000000000000000000000000000030e1a25303b45515d67707d88939fa6a29891847a6d675c544b423f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3d3c38332b231a0f05000000000613202c3945515d67737f8c95a0aaada19791847b706b615e5754524c4e4d4d4d4e4b5153545c60676d747f88939fa5afa79f92877c6f62584e43372b1d120700000005111e2a36424d5766727f8c97a2adaa9f93877d706a615a5350494a4949494a4b51555c606d73808c949fabaca0958b7e7164584e43372b1f1206000000000000000a151e2b343f49525c646e737e858d92999da0a8a9a29f9d9c9b9c9d9fa2aaa7a09d99928e857e736e645c52493f332a1f14090000000000000000000000000000000000000000000000000000000000000001080d11161c1f252a2e34383c42474b5153586062686d72756f65594d4134281b0e00000000000000000003101c28343f4a545c6c6c6c6c6c6c6c6c66635c52473b2f23170a000006131f2b38434e5860626c6c6c6c6c6c6c65625a50453a2e211509000000000002090e121415151515151515151515212e3b4754616e7a8794a1a094877a6d6154473a2e211515151515151515151514120e09020000000000000000000e1a26313b47535f6974808d96a0abaea39991857b6e6a615a524c46423c3a38342e3434342e34383a3c42474d535b626b707d86929fa4aeaaa0958b7f72685e5243392f24180d010000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000000000000000000000814212e3a47535f697683909daba3998a7e716875828f9caba3998c7f7265584e43372b1d1207000000000000000000000000000000000000000000000000000000000000000104060c10121316181a1c1d1e1f1f20201f1f1e1e1c1b19171413110d0806030000000000000000000000000000000000000005101c26313a42494e505353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353504e49423a31261c1005000613202c3946535f6c7986929f9f9f9f95887c6f6255493c2f2216090013202c3946535f6c7986929facada093867a6d6053473a2d201e28323c464f59636d75818e959fa9aaa1979083796d665c50493f352c22180e05000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d201307000000000000000000000000000000000000000000000009141f2935404b55606b73808d949fa8a0968f82796d665c544b433a323232323232323232323232323232323232302f2c27211a110800000000000714212d3a4754606d7a85929fa7b0a69e92857b6e696059524d47464141404040414045464b51555d606d727f8b939ea9afa3998f82766a605447392f24180c0000000714202d3a46525e697784909da9a8a2988d80746b60585046443f3d3c3c3d3e40454b515b606d7882909ca6b0a89d9083776a5f53473a2e21150600000000000006111c26303d46515b646e74808a92979fa3a9a19e999792908f8f8f909298989d9fa7a39f97928a80736e635b51453b31261a0e0400000000000000000000000000000000000000000000000000000000040a0f13191d20272c3036383f44464e53555d60656a6f747a7f8175685c4f4235291c0f00000000000000000006121f2c3844505c667679797979797979736e63584b3f3226190c00000815222e3b4754606a6f79797979797979716c62564a3d3124170b00000000050d141a1e2021212121212121212121212e3b4754616e7a8794a1a094877a6d6154473a2e2121212121212121212121201e1a140d05000000000000000009141f2b37424d57606d79849199a4afaba19791847c706c615e56534d494644404141414141404546494d53575f616d727d869298a2aeaca2989083786c60564c4131281d1207000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000000000000000000030f1b27333f4953626e7b88959fac9f92867a6d64717e8b99a3ab9d9083776a605447392e23180c0000000000000000000000000000000000000000000000000000000000000000000000030607090b0d0f101112131313131212110f0e0c0a0707040100000000000000000000000000000000000000000000000a151f2831383e4243464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464643423e3831281f150a00000613202c3946535f6c7986929393939393887c6f6255493c2f2216090013202c3946535f6c7986929facada093867a6d6053473a2d2026303a444e58616b727f8c939ea7aca29891857b6e675d544a3f372d231a100600000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d2013070000000000000000000000000000000000000000000000020c18242f39434f59606d78829096a0a89f948f82786d665d554c443b332b2525252525252525252525252525252322201c160f08000000000006131f2b37434e5866727f8c97a2adaa9e948a7d70695f574f46423b3935303433342e34383a40454b515b626d74818e97a1adab9e94897c6f62554b4035291d100400000814212e3b4754616e7b8795989a9b9c92857a6d61594f463e37332d2f2f302e34394045505c666f7c88949fabaca095887b6f6255483c2d22170b0000000000000c17232e38424f59626d74808d929ea1a9a39f97918c8885838282838385888b90959ea1a8a29f928d80736d62574d42362a20160a0000000000000000000000000000000000000000000000000001070c10151b1e24292c33383b42464a5053575f62676d71777c81868c83776a5d5144372a1e110000000000000000000713202d3a4653606d78868686868686868073665a4d4033271a0d00000916232f3c4956626f7c868686868686867e7165584b3e3225180b000000050f171f252a2d2e2e2e2e2e2e2e2e2e2e2e2e3b4754616e7a8794a1a094877a6d6154473a2e2e2e2e2e2e2e2e2e2e2e2e2d2a251f170f0500000000000000030e1a26313c45515d676f7d87939fa4aea9a19691867e756e68615e575653514a4e4e4d4e4e4b515356575f62696e767f879298a2aaafa49a92867c6f665b50443a301f160c01000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000000000000000000005121f2b3744505b6573808d99a7ac9c8f837668606d7a86929faca095887c6f62554b4034281c100400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d161f262d32353639393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393635322d261f160d0300000613202c3946535f6c7987868686868686867c6f6255493c2f2216090013202c3946535f6c7986929facada093867a6d6053473a2d232e38424c565f6a707d87939fa5afa49a92867c6f695e554b42382e251b11080000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d20130700000000000000000000000000000000000000000000000007121d27313d44505c666d7a849197a1a69e948f81786d675d564d453d3528231c141919191919191919191919171614100b050000000000000815222e3b4754606a7884919ea9b1a79c8f82756c61574d453d36302d292427272723282c2e343a4145515b606d7a85929eaab0a69b8e8275675d5145392c1f130600000b1825323e4b5865717e888a8b8d8e908e8174685e52473d342b272223222323282f343f4a545f6a76828f9cacb1a7998c7f736653493f33271b0f030000000003101c28343f4a54606b727f8c929ca4aaa299928c84807b787675757677797b7f838a91969fa6a49c928b7f72695f53463d32271b0f030000000000000000000000000000000000000000000003090e12181c1f262b2f35393d44484d52545c60646a6e74797e83898e929084776a5d5144372a1e110000000000000000000713202d3a4653606d798693939393938d8073665a4d4033271a0d00000916232f3c4956626f7c8993939393938b7e7165584b3e3225180b0000020d17212930363a3b3b3b3b3b3b3b3b3b3b3b3b3b4754616e7a8794a1a094877a6d6154473b3b3b3b3b3b3b3b3b3b3b3b3b3a36302921170d020000000000000009151f2935404b55606b727f8b929da4ada9a198928a817a746e696562605c545b5a5a5a5b545c606266696e747b828b9299a2aaaea39f93887e706a5f544a3f32291e0d0400000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b00000000000000000000000613202d394653606c7884919eaba49a8b7f72655d6875828f9caaa79a8d8074675c5145382c1f14080000000000000000000000000000000000020507080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0b0906010000000000000000040d151c212629292d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d292926211c150d0400000006121f2c3845525e6a757979797979797979766a6054473b2e2215080013202c3946535f6c7986929facada093867a6d6053473a2d28343f4a545e686f7c869299a4afa59f93887e706a60574d433a30261c1309000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d201307000000000000000000000000000000000000000000000000010b151f28343f4a545e686e7b859298a2a69e938f82796d685f574f473e342e261e160d0c0c0c0c0c0c0c0c0c0a09070400000000000000000916222f3c4955626f7c8896a1acaca095897c6f625a50453b332a25201d191a1a1a181c1f23282f353f45515d67727f8b98a2aeac9f9286796d6053473a2d20140600000714212d3a4754606d797c7d7f808183847d7063564c41352b221b17161616181d232e38424e5864717d8a9aa4afa99c8f8276655b5044372b1f12050000000006121f2c3844505c666f7c87929fa4aba29892878079736f6a6a696869656c6e72777d848f949fa6a49f92867b6e61584e43382b1f13060000000000000000000000000000000000000000060b0f141a1d23292c32373a4145474f54565e61666d71767b80858b90959b9d9084776a5d5144372a1e110000000000000000000713202d3a4653606d7986939f9f9f998d8073665a4d4033271a0d00000916232f3c4956626f7c89959f9f9f988b7e7165584b3e3225180b000009141f29333b4246484848484848484848484848484854616e7a8794a1a094877a6d6154484848484848484848484848484846423b33291f140900000000000000030d18242f3a434f59626d74808d929ca3adaaa29f938e86807b76726f6d6669686767676869666d6f72777b81868f949fa3ababa39f918c7f726c61584e42382d20170d0000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000000000000000004101d2935404b5563707d8996a1ac9f93877b6e615664717e8a98a2ab9e9285796d6053463b3025190e02000000000000000000000000000003090e12141519191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191816120d070000000000000000030a1016191c1d20202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020201d1c1916100a030000000004111d2a36424e59636a6c6c6c6c6c6c6c6c6260584e43372b1f13060013202c3946535f6c7986929facada093867a6d6053473a2d353d44505c666d7a849198a2aba69d938c7f726c61584e453b31281e140a01000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d20130700000000000000000000000000000000000000000000000000030d17232e38424c565f696f7c869299a3a59e948f827a6e69605950443f38302820180f07000000000000000000000000000000000000000d1a2633404d596673808c99a8b2aa9d9083776a6054483e332a211a14110d080d070c1013181d242935414c55606d7985929fabaea2988a7d7164574a3e2e23170b00000613202c3945515d676d6f707273757678706b6054443a30231a0f0b0609070c121c26303c4754616d7a86939facab9f9285796c605346392d20130600000003101c28343f4a54606d78839099a3afa39992867d736d67625f585c5c535b6061656c707a828f949fa9a2988f82766a6054473b2e221508000000000000000000000000000000000002080d11171c1f262a2f34383c43474c5254596063696e73797d82888d92979da0a79d9084776a5d5144372a1e110000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2aca4988b7e7165584b3e3225180b00020e1a25303b454d52545454545454545454545454545454616e7a8794a1a094877a6d61545454545454545454545454545454524d453b30251a0e020000000000000007131d28313d47515b606c77808c919ea1a9aea59e98928d87837f7c79777674747474747677797c7f83888e92999fa6aea8a199928b7f736d635a50463c2f261c0e050000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000000000000000006131f2c3945515d6774818e9ba8ab9c908376695e53606d7a86929faca2978a7d7164564d41362a1e110500000000000000000000000000060d141a1e2122262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262525221e181109010000000000000000050a0d0f101313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313100f0d0a05000000000000010e1a26313d4751595e5f6060606060606055544e463c32271b0f030013202c3946535f6c7986929facada093867a6d6053473f383d47515b606d78828f96a0aaa89f948e81746d635a50463c33291f160c0200000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d201307000000000000000000000000000000000000000000000000000006111c26303a444d57606a707d879298a2a69e9490847b6f6b625a504a423a322a21191106000000000000000000000000000000000005111e2a36424d576976838f9ca9b5ab998c7f7366584e43362c21180f0905010000000004070c1319242f3a45515d6774818e9aa7b4aa9b8e817468544a3f34281c10030004111d2935414c555d606264656768696b6360594f4432291e110800000000010a14202d3946525e687784919daaaea298877a6e6154473b2e21140800000006121f2c3844505c66727f8b95a0aba89f92877d706b605d55534e4f4f495053555a61686d79829097a1a49f94897c6f6256493c2f231609000000000000000000000000000001040a0f13191c22282b3136394045474e53565d60656b70757b80848a8f949a9fa2a7a09d979083776a5d5144372a1e110000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0005121e2a36424d575e616161616161616161616161616161616e7a8794a1a094877a6d616161616161616161616161616161615e574d42362a1e120500000000000000010c161f2b353f44505b656c747f8a92979ea6acaaa29f9a93908c898684828181808181828486898c90959a9fa3ababa49f9691877e736d635b51473e342a1d140a000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000000000000000000714202d3a4753606d7985929faba3998b7f726557515d6775818e9ba9a99c8f8275685e5246392d20160a000000000000000000000000060f181f262a2d2e3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232312e29231b13090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915202b353f474e5253535353535353534947433c342b20150a000013202c3946535f6c7986929facada093867a6d6059504a42454f59626d74808d949fa8a9a0968f82786d605b51483e342b21170d040000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d2013070000000000000000000000000000000000000000000000000000000a151e29323c454e58616b707d869298a2a69f9691857d716c605c544c443c332b2317110a020000000000000000000000000000000714202d3a46525e697885929eabafa399897c6f6256493d32231a0f060000000000000000000108131e2935404b5564707d8a97a9b3aa9d908377665c5044382b1f120600010d19242f3a434c51545557585a5b5d5e56544f473d3320170d00000000000005111d2a36414c566875828e9ba8b3aa95897c6f6256493c2f2316090000000713202d3a4653606d7984919ea7ada1968d80736b6059514b474342423f44464850565d676d7a85929b9993908c8275685c4f4235291c0f02000000000000000000000001070d11161b1e252a2d33383b42464b5153585f62686d72777d82868c91969c9fa6a39f9b95908b857f7366594c403326190d0000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000714202d3a46525e696e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e7a8794a1a094877a6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e695e52463a2d2014070000000000000000040d192327333f49535b606d737d858f949da0a7acaca49f9c989892918f8e8d8d8d8e8f919298999d9fa7acaca69f99938d847d716c635b51493f352c22180b02000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b00000000000000000005111e2a36414d5664717e8a98a2ac9f92867a6e61544b5563707d8a97a1ac9f92867b6e6154473d32271b0f0100000000000000000000030d18212931363a3b3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3e3a342d251b110700000000000000000000000000000000000000000000000000000000050a0d0f101313131313130f0f0d0904000000000000000000000000000000000000000000000000000000000000040f19242d353d424546464646464646463c3b37322b22190f04000013202c3946535f6c7986929facaea194887b706b605b544c4d57606b727f8b929da6aba19791847a6d665c51493f362c22190f05000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d201307000000000000000000000000000000000000000000000000000000030c17202a333d464f59616b707d869298a1a8a09792877e746d665d564d453d3527221b140b0300000000000000000000000000000814212e3b4754616e7b8797a2adac9f92867a6d6053473a2d2014070000000000000000000000010d18242f3b4754616e7a8797a1adac9f9286796d6053463a2d201307000008131e28313a414547494a4c4d4e50514948443d352b210e05000000000000010d192530414e5b6774818e9aa7b0a3968a7d7063574a3d3024170a000004101d2935404b5564717d8a96a1acaa9e9184796d60594f45403937312d3337393e444c555e68717e8b8e8a86837f7c6f6255483c2f22150900000000000000000000040a0f13181d20272c3036383f44464d53555c60646a6f747a7f84898f92999ea1a9a19e99928e89837e79736d63574b3e3225180c0000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000815212e3b4854616e7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7c8995a2a295887c7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b6e6154483b2e211508000000000000000000071017222d384149505b636b707b828990959c9fa4acaca9aaa39f9d9c9b9a9a9a9b9c9d9fa3aaaaababa39f9b948f878079706b625a514940372e231a100600000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000000000000000714202d3946525e6876828f9caaab9c8f8276685e524653606d7985929eaba3998c7f7266584e43372b1d12070000000000000000000009141f29333b4246484c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4a463f372d23180d0100000000000000000000000000000000000000000000000000030a11161a1c1d2020202020201c1b1915100902000000000000000000000000000000000000000000000000000000000008121b242b31363839393939393939392f2e2b272019100700000013202c3946535f6c7986929facb8ab9e92857d736c665e56555f69707d87929fa4aea39992857b6e685d544a40372e241a100700000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000050e18212b343e474f59616b707d8691969fa7a199928b80786d685f574f473f332d261d150c03000000000000000000000000000916232f3c4956626f7c8995a9b3aa9e918477675d5145382c1f13060000000000000000000000000714202d3946525e687885919eabaea398887b6e6255483b2f2215080000010c161f282f35393a3c3d3f404243453d3b38332b23190f0000000000000000081a2733404d5a6673808d99a6b0a4978a7d7164574a3e3124170b00000613202c3945515d6775828f9ba8aea3988b7e71675d51473d352f2b2622272b2d323a434c56606d7883817e7a76736f6a5f53473b2e2115080000000000000000070c10151b1d24292c32383a41464a5053575f61676d71767c81868b91959b9fa3a69f9c96918c86817c77716d67635b51463b2f22160a0000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00121f2b3845525e6b788487878787878787878787878787878787898e99a4a4988e888787878787878787878787878787878784786b5e5245382b1f120000000000000000000006111b262f383f44515961696e757d83898f939a9c9fa2aaa7a8aaa9a7a7a7a7a7a9a9a8a6a9a29e9b99928e88827c746d676059504840372e251c11080000000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000000000000000814212e3b4754616e7b86929faca3998b7e7165564c44515c6674818d9aa8ab9d9184776a605447392f23180c000000000000000000020e1a26313b454d535559595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959585651493f34291e1206000000000000000000000000000000000000000000000000040d151c2226292a2d2d2d2d2d2d292825211b140c03000000000000000000000000000000000000000000000000000000000009121920262a2c2c2d2d2d2d2d2d2d22221f1b150f070000000013202c3946535f6c7986929facb9ada197928780786d68605d676e7b859299a3aea49f92877d6f695f564c42392e251c12080000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000060f19222c353e474f59606b6f7c8490959ea5a39f928d827a6e69605950443f382f271e150d040000000000000000000000000a1723303d4a5663707d8996a3b0a99c90837669554b4035291d100400000000000000000000000005111e2a36414c566a7683909da9b4aa96897c6f6356493c30231609000000040d161e24292c2d2f313234353638302f2c272119110700000000000000000d1a2633404d596673808c99a6b1a4978a7e7164574b3e3124180b00000714202d3a4753606d7a86929facac9f92867a6d60554b403529241d1a171b1f2028313a44515c666d7775716d6866625f584e43372b1f1206000000000000030b12181c1f262b2f35393d43484c52545b6063696e73797e83888e92989da0a8a29f9a94908a847f7a756f6b65605d55514940352a1e12060000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00121f2b3845525e6b7885919494949494949494949494949494949599a0aaaaa098959494949494949494949494949494949184786b5e5245382b1f1200000000000000000000000a141d262d3340474f575e616b70777d82878b8f9298989a9b9d9e9e9f9f9f9e9d9d9b999797928e8a86817c766f6a605d554f473e362e251c130a000000000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000000000000006131f2b37434e5865727f8c99a3ac9f92867a6d615447404a54636f7c8996a1aca095897c6f62554b4034291c1004000000000000000005121e2a36424d575f616565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565625b51463a2e2216090000000000000000000000000000000000000000000000030d161f272d3235363939393939393635312c261e150c020000000000000000000000000000000000000000000000000000000000080f151a1d1f20202020202020201615130f0a04000000000013202c3946535f6c7986929facb9b3a9a199938c827a6f6a656d79839097a1aba59c928b7e716b60574d443a30271c130a000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000007101a232c353e474f59606a6f7a838f939fa4a49d948f847b706b625a5049413930271f160d0400000000000000000000000b1724313e4a5764717d8a97a4b0a89b8f8275685c4f422f24180c00000000000000000000000000010d192530424f5c6875828f9ba8b0a3968a7d7063574a3d3024170a00000000040c13191d202122242527282a2b252423211c170d0801000000000000000e1b2734414e5a6774818d9aa7b0a4978a7d7164574a3e3124170b00000a1723303d4a5663707d8998a3aea89b8e8275675d51433a2f23181d1d1d1d1d161f2834404a545c606a6864615e5655534e463c32261b0f030000000000030c151c23282c31373a4045474f54565e61666c70767b80858b90959a9fa2a8a09e98928e88837e79736e6863605953514b4340372e23190d020000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00121f2b3845525e6b7885919ea1a1a1a1a1a1a1a1a1a1a1a1a1a1a2a4aab2b2aaa4a2a1a1a1a1a1a1a1a1a1a1a1a1a1a19e9185786b5e5245382b1f120000000000000000000000020b141b2227353e454d525960636b70757b7e8285888b8d8f9091929292929191908e8c8a8885817e7a746f6a626058514b433d352d241c130a01000000000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b00000000000000000815212e3b47535f6a7783909dabaa9c8f8275685e5246394653606c7884919eaba89a8d8174675c5145382c1f140900000000000000000714212d3a46535f696e72727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272726d62564a3e3125180b00000000000000000000000000000000000000000000000a151f2831383e424346464646464642413d3730271e140900000000000000000000000000000000000000000000000000000000000004090e11121313131313131313090806030000000000000013202c3946535f6c7986929facb9bab2aba49f948f847c726c77818f95a0a9a79e938c80736c61594f453c32281e150b01000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000008111a232c353d474f585f686e79818c939aa2a69f9691857d716c605b534a423931281f160d04000000000000000000000b1825313e4b5864717e8b97a4b1a89b8e8275685b4f4235281c070000000000000000000000000000081b2835414e5b6874818e9ba7b0a4978a7d7164574a3e3124170b000000000008121a22282d303132323232323231302d282219130c04000000000006121e2b37424d576875828f9ba8b4aa96897d7063564a3d3023170a00000d1a2733404d5a6673808d99aab4aa978b7e7164554c4131282a2a2a2a2a2a2a2a2a232e39424a51535d5b5754524c4847433c342a20150a0000000000000b151e272e34383c43474b5153596063686d72787d82878d92979d9fa7a49f9c96918b86817c76716d66615e56544f47454039312e251c1207000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00121f2b3845525e6b7885919e9f9f9f9f9f9f9f9f9f9f9f9f9f9fa1a3a8b0b0a8a3a09f9f9f9f9f9f9f9f9f9f9f9f9f9f9e9185786b5e5245382b1f12000000000000000000000000020a1117232c333b42464f54596063696e7276797c7e808283848585868585848382807d7b7975716d68625f58544e45403a312b231b120a0100000000000000000000000b1825313e4b5864717e8b97a4aca89b8e8175685b4e4235281b0f08040000000000000000000003050e1b2734414e5a6774818d9aa7aca4978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000000000003101c28343f4a54626f7c8895a0aca3988b7e7164564c413744505b6573808d9aa7ab9f9285796d6053473b30251a0e02000000000000000815222e3b4855616e7b7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7265584c3f3225190c0000000000000000000000000000000000000000000005111c27313a434a4e505353535353534f4d49423930261b1004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facb9b2a8a09da09f9691877f76808c939ea7a89f958e81776c605a50473d332a20160c0300000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000008111a232b353d464e565e676d7780889298a0a8a09792877e736c655c544b433a31281f160c030000000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2834414e5b6774818e9aa7b1a4978b7e7164584b3e3125180b0000000005101a242c33393c3e3f3f3f3f3f3f3e3c393329241e16100c0709060b1117232d3a47535f697884919eabaea398887b6e6155483b2e2215080004101c2834404b546976828f9ca9aea398887b6f6255483c2f3737373737373737373737373039404446514e4b4746413c3b37322a261f180f060000000007121c2730394044464e53555d60656b6f757a7f848a8f939a9ea1a9a29e99938f89847f7a746f6a64605c54524c48433d39352f271f1c130a00000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00121f2b3845525e6b78849193939393939393939393939393939394979ea8a89e97949393939393939393939393939393939185786b5e5245382b1f12000000000000000000000000000006111a202930363d44484f54565e6165666d6f7174757778787979787877767573716f6d6664605d56534e47433d352f281f191109000000000000000000000000000b1825313e4b5864717e8b979f9f9f9b8e8175685b4e4235281b1614100b05000000000000060b0f12131b2734414e5a6774818d9a9f9f9f978b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000000000006121f2b3844505c6673808d9aa7ac9f92867a6d6054473a333f4953626f7c8895a0aca2978a7e7164574d42362a1e1205000000000000000a1724303d4a5763707d8a8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c86796c5f5346392c2013000000000000000000000000000000000000000000000a16222d38434c545a5d6060606060605c5a544c42372c2115090000000000000000000000000000000000000000000000000000000105090b0b13131313070604000000000000000000000000000013202c3946535f6c7986929facb9aca0969196a0a199928c838c929ca5aaa1969083796d655b50483e352b21180e040000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000081119232b343c444d555d656c737e8691969fa6a299928b80776d665d554b433a31281e150a0000000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000000b17222c363e44494a4b4b4b4b4b4b4a49453e352f281f1c18171616171b222935404b55616e7b8896a1acac9f9286796d6053463a2d2013070006131f2c3845515c667884919eabac9f9286796d6053464444444444444444444444444444444444444444444444444444443b3a36312a21180e030000000c18232e39424a5153585f62676d72777c81868c91969c9fa4a7a09d97928d87827d78726d68625f5853504a46413b38322c29241d150d0a0100000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00121f2b3845525e6b788486868686868686868686868686868686878c97a3a3978c878686868686868686868686868686868684786b5e5245382b1f12000000000000000000000000000000080e171f2f3a454f575c5e60605f545c60626567686a6b6b6c6c6c6b6a6a68666462605c5454524c47433c383229241d160d0700000000000000000000000000000b1825313e4b5864717e8b93939393938e8175685b4e42352b2423201c170e09030000020a11171b1f20252c34414e5a6774818d93939393938b7e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000000000000713202d3a4653606d7985919eabaa9b8f8275675d5145392d3847535f6a7784909daaa99c8f8276695e52463a2d20160a000000000000000a1724303d4a5763707d8a96989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989286796c5f5346392c2013000000000000000000000000000000000000000000010d1a26323e4a545e66696c6c6c6c6c6c69655e54493d3125190d0000000000000000000000000000000000000000000000000000060c111517182020201f1413100c0701000000000000000000000013202c3946535f6c7986929facb7aa9d91849196a0a39f9490949ca4aba29891847a6d675c53493f362d23190f06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000071019222a323b434b535b606c707c848f949da4a39f928d81786d675d554b433a30261c110600000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b00000004101c28333e4850555758585858585857555045413a312c282323222322282d333d45515d67727f8c99a8b2a99d908376665c5144382c1f1206000713202d3a4653606d7986939facaa9d908477665c50505050505050505050505050505050505050505050505050505050504846423b332a1f1409000004101c2834404a545c60646a6f747a7e83898e92999ea1a8a39f9b95908b85807b75706c65605d56534e46443f3836302c271f1d18120b03000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00111e2a3743505c687278797979797979797979797979797979797a8794a1a094877a797979797979797979797979797979797872685c5043372a1e11000000000000000000000000000000000f1b2834404c5761686b6c6c6c605c5455585a5c5d5e5f5f565d6065696b6c6b6965605c554e463c37312b272018130c040000000000000000000000000000000b1825313e4b5864717e868686868686868175685b4e42393831302d28221a140c07070b141b22272b2d323939414e5a677480868686868686867e7164584b3e3125180b000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f06060403010000000000000203060e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b00000000000004111d2935414c5563707d8a97a1ada2988a7e7164554c41352b37434e5866737f8c99a7ac9f93877b6e6154483d32271b0f010000000000000a1724303d4a5763707d8a969f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9286796c5f5346392c2013000000000000000000000000000000000000000000030f1c2935424e5a6670767979797979797570655a4d4135281b0f020000000000000000000000000000000000000000000000000911181d2124252d2d2d2c201f1c18120b030000000000000000000013202c3946535f6c7986929facaea194877b849196a1a69f9c9fa6afa39992867c6f685e554b41382d241b110700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000000000000071018202931394149505a616a6f7a828d929fa4a49c938e82796d675d554b42382e23171006000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000814212d3944505a616465656565656564615a514c433e38342e302f302d33383f44505a606d7985929eabb1a7998c807366544a4034281c1004000815212e3b4854616e7b879aa4afa99c90837669545d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d55534d453b31261a0e020006121f2c3844515c666d71767c81858b90959b9fa3a8a19e99928e89837e79736e6963605b53524c47433c38342e2a251e1b16100c070100000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000f1b2834404b5660686b6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6e7a8794a1a094877a6d6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b6860564b4034281b0f00000000000000000000000000000005111e2a3744505c6873787979796d665c504b4d4f4c52565e61686d727678797876726d675f584e463c30261c160d0701000000000000000000000000000000000a1724303d4956626c7179797979797979756f65594d4646453d3c39332a261f181212181d262d3337393e4546464c58646e7479797979797979716c6256493d3024170a000b1825313e4b5864717e8b97a4aca89b8e8175685b4e4235281b13131311100e0a050005090d0f1013131b2734414e5a6774818d9aa7aca4978b7e7164584b3e3125180b0000000000000613202c3945515d6775818e9ba9ac9f92867a6d6053473a2f26323c4855616e7b88959faba4998c7f7266594f43382c1d12070000000000000a1724303d4a5763707d8a93939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939286796c5f5346392c201300000000000000000000000000000000000000000003101d2a3643505d6976828686868686868275695c4f4236291c0f03000000000000000000000000000000000000000000000009121b22292e3132393939392d2c29231d150d0300000000000000000013202c3946535f6c7986929facada09386797b849197a1a9a9abb0a89f92877d706a5f564c43392f261b12090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000060e171f282f383f4450585f686d78808b9399a3a59e948f82796d675d544a3f342822180b020000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000a1623303c4955616c71727272727272716c605d554f4645403e3d3c3c3d3f44495059616c73808d97a1adab9f95887c6f6255483c2e23180c00000916232f3c4956626f7c8995acb6a89c8f82756a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a615f574d42362a1e1205000713202d3a4653606d787e83888d92989da0a7a69f9c96918c86817c77716d67615f5753504945413a37312c28231c19140f0a0400000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000b17232f3a454e565c5e6060606060606060606060606060616e7a8794a1a094877a6d6160606060606060606060606060605e5c564e453a2f23170b00000000000000000000000000000005121f2b3845525e6b7885868686786d60534a4c51565e61686d737a7f82858685837f796f6a5f584e42382e23170b0000000000000000000000000000000000000815212d3945505a62646c6c6c6c6c6c6c68655d53535353514a49443e363129231d1d23282f383f44464b52535353535c64676c6c6c6c6c6c6c64625a5045392d211508000b1825313e4b5864717e8b979f9f9f9b8e8175685b4e423528202020201d1d1a16110b1015191c1c2020202734414e5a6774818d9a9f9f9f978b7e7164584b3e3125180b0000000000000714212d3a4754606d7a86929facaa9b8e8175675d5145392c212d3a46535f697683909dabab9e9184776b605448392f24180c0000000000000a1724303d4a5763707d8686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686796c5f5346392c201300000000000000000000000000000000000000000003101d2a3643505d69768390939393938f8275695c4f4236291c0f030000000000000000000000000000000000000000000006111b242d343a3d3e464646463a38342f271f150b01000000000000000013202c3946535f6c7986929facada093867a6e7b859197a1a9b3aca1968b7f726b60584e443a31271d140a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000050d161d262d333e464e565d666d747f879298a2a69e949082796d665c50443f342a1d140a0000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000b1724313e4a5764717e7e7e7e7e7e7e7d756d67615953514b4b4a49494a4a50535b606b707e88939fa9b0a69d9083766a5f53473b2e1c120700000a1623303d495663707c8996a3afa89b8e8177777777777777777777777777777777777777777777777777777777777777776e695f53463a2d21140700101d293643505c6976828a90949a9fa2aaa29f9a948f8a847f7a756f6a64605d55534d46443f38352f2b261f1c17110e0802000000000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0007121e28333c454b50525353535353535353535353535354616e7a8794a1a094877a6d61545353535353535353535353535352504b453c33281e120700000000000000000000000000000003101d2a3643505d6976839098897c6f635a56555d60686d737a80858b8f9192928f8b847c6f6a5f544a3f34281c1003000000000000000000000000000000000005111d29343e48505658606060606060605b595e606060605e57555046423b342f27272e343c41495053585f6060605f5c585a60606060606060585650483e34291d1105000b1825313e4b5864717e8b93939393938e8175685b4e42352d2d2d2d2d2a2926221c151b212528292d2d2d2d34414e5a6774818d93939393938b7e7164584b3e3125180b000000000005121e2a36424d5765717e8b98a2aea2988a7d7064554b4035291e2a36424d5765727f8b99a3aca096897c6f63554b4035291d100400000000000916232f3c4855616b707979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979746a5e5145382b1f1200000000000000000000000000000000000000000003101d2a3643505d697683909c9f9f9c8f8275695c4f4236291c0f03000000000000000000000000000000000000000000010c18222d363f454a4b535353524745403931271d1207000000000000000013202c3946535f6c7986929facada093867a6d6f7c859297a2aaab9e91847a6d675c554b423930261e140b020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000000000000000000040b141b2227343c444c545c606d727e869298a2a69f958f82786d605a50463c2f261c110600000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000003101d2a3643505d6976838b8b8b8b8b8b8a817a706b64605c545756555657545b60656c727d86929aa4afaa9f948a7d7064584e43372b1f0b0000000a1724303d4a5763707d8a96a3b0ab9e928583838383838383838383838383838383838383838383838383838383838383837b6e6155483b2e22150800101d2a3743505d6a7683909c9fa6a8a09d98928d88837d78736d6862605853514b46423b37332d29241e1b15100c06000000000000000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00010c17212a333a4043454646464646464646464646464754616e7a8794a1a094877a6d6154474646464646464646464646464543403a332a21170c01000000000000000000000000000000010e1b2834414e5b6774818e9a8e81756c656364676d737a80868d92989c9e9f9e9c9691857c6f665c5044382b1f13080000000000000000000000000000000000000c17222d363e45494b5353535353535359636b6c6c6c6c6b64615a534d45403931303940454d535b60656c6c6c6c6b686157535353535353534b49453e362d22170c00000b1825313e4b5864717e868686868686868175685b4e423939393939393736322d271f262c3235363939393939414e5a677480868686868686867e7164584b3e3125180b00000000000714212d3a46535e697683909caaab9f9285796d6053463a2f241a26313b4754616d7a86929faca89a8e8174675d5145392c1f140900000000000714202c38444f5961636c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6a62584d4135291d100000000000000000000000000407090a0b0b0b0b0b0b101d2a3643505d697683909ca9a89c8f8275695c4f4236291c0f0b0b0b0b0b0b0a09070400000000000000000000000005111d29343f485056586060605f53514b43392f23180c000000000000000013202c3946535f6c7986929facada093867a6d6a6f7c859298a2aaa1968f82796d675c544a423830261d140b0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000020a1117222a323a424a505b626c717d869298a2a79f948e81746d62584e42382d22170b00000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000030f1c2936424f5c6975828f9898989898938e847d76706d6666646362636465666c71787f879298a2acaca2988f82766c6155463c32261b0f0000000a1724313d4a5764707d8a97a3b0ada1979290909090909090909090909090909090909090909090909090909090909090887b6e6255483b2f22150800101d2a3743505d6a7683909da9a49c96918b85817c76716d66615e56544e4745403936312b27221b19130f0a030000000000000000000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000050f1821282f34373839393939393939393939393b4754616e7a8794a1a094877a6d6154473a39393939393939393939393837342f2821180f0500000000000000000000000000000000000c1825323f4b5865727e8b98938b7f75717071747a80858d92989fa2aaa4a3a5a8a1979083786d6053463a2f24190d01000000000000000000000000000000000006111b242d34393d3e464646464646525e6b757979797978706c615f57514b433e3d424b51575f656c71787979797873685c504646464646463e3d39342d241b110600000a1724303d4956626c7179797979797979756f65594d3b46464646464644423e39312930383d41434646464646464c58646e7479797979797979716c6256493d3024170a00000000000815212e3b4854616e7b87939faca99b8e8174675c5145382c1d14202d3946525e6876828f9caaab9f9285796d6053473b31251a0e00000000000714212d3a46535f696e72727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272726d62564a3e3125180b00000000000000000000040b10131616171717171717171d2a3643505d697683909ca9a89c8f8275695c4f4236291c17171717171717161613100b05000000000000000000000915212e3a45505a62656c6c6c6c605c554b4034291c10040000000000000013202c3946535f6c7986929facada093867a6d606a6f7d869298a3a89f948f82796d665c544a42382f261d140b02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000000000000000000000000061018202830383f44515a616b707d869299a4a69d938b7e716a5f544a3f33281d1207000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000020e1b2835414e5b6874818e9ba5a5a5a59e96918a837d79767271706f6f707275787d838b9299a2aaafa49a92867b6e61594f44342a20150a0000000a1724313d4a5764707d8a97a3b0b3a9a19e9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d94887b6e6155483b2e22150800101d2a3743505d6a7683909da99c928d847f7a746f6a64605c54524c48433d38352f2a261f1b17110d080100000000000000000000000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000060f171e23282a2b2d2d2d2d2d2d2d2d2d2d2e3b4754616e7a8794a1a094877a6d6154473a2e2d2d2d2d2d2d2d2d2d2d2b2a28231e170f060000000000000000000000000000000000000815222f3b4855626e7b88959b918b827e7d7e81858c92989fa2a29f9a9796989c9f9f958a7d7164554c4135291d110400000000000000000000000000000000000009121b22292d303139393939394653606c7987868686847d756e69605c554f46454f545c60696e777e8586868685786b5f5245393939393931302d29221b12090000000815212d3945505a62646c6c6c6c6c6c6c68655d534648535353535353504f4a433b313a42494e4f53535353535348535c64676c6c6c6c6c6c6c64625a5045392d2115080000000007131f2c38434e5866737f8c9aa4ada2978a7d7063554b4034281c111d2a36414c5664717e8b98a2aea2988b7e7164574d42362a1b1106000000000815222e3b4855616e7b7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7265584c3f3225190c000000000000000000070f161b20222324242424242424242a3643505d697683909ca9a89c8f8275695c4f42362924242424242424242322201c160f070000000000000000000b1724313d4a56626c71797979796d675c5145382c1f13060000000000000013202c3946535f6c7986929facada093867a6d60606a707d869299a3a69f948f82786d665c544a42382f261d140a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000060e161e262e343f485059606b707e87939fa6a59f92867c6f665b5044392e23180c000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000010e1a2734414d5a6774808d9aa7b1b4aea8a19e94908a85827f7e7d7c7c7d7f82858a90959fa3ababa39f93887e71695f53473e3322180e040000000a1723303d4a5663707d8996a3b0b8b0aba99f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa9aaaaaaaaaa94877a6e6154473b2e21140800101d2a3743505d6a7683909da69a8d8079726d68625f5853504a46413b38322c29241d1a150f0b0600000000000000000000000000000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000000050c12171b1e1f202020202020202020212e3b4754616e7a8794a1a094877a6d6154473a2e212020202020202020201f1e1b17120c05000000000000000000000000000000000000000814212e3a47535f6a7784919d9b948f8b898a8d92989fa2a29f98928d8a898b90949c9c8f8276675d5145392c201306000000000000000000000000000000000000000911171d2124252d2d2d2d313e4b5864717e889396918a827b736d67615953525960666d737b828b929792877e7064574a3d312d2d2d2d2524211d1711090000000005111d29343e48505658606060606060605b59534d535f6060606060605d5b554d4339424c545a5c6060606060605f5353585a60606060606060585650483e34291d1105000000000915222e3b4854606a7784919eacab9e9285796d6053463a2e23180d1925303a4754606d7a86929facaa9c8f8276695e5346382d22170b000000000a1724303d4a5763707d8a8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c86796c5f5346392c2013000000000000000007111921272c2f303131313131313131313643505d697683909ca9a89c8f8275695c4f4236313131313131313131302f2c272119110700000000000000000b1825323e4b5865717e86868686796d6053473a2d20140a0000000000000013202c3946535f6c7986929facada093867a6d6058606b707d879299a3a69e948f81786d665c544a41382f261b11060000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000010000040607080707050100040c141c2328363e474f59616c727f8c949faaa3989083786c60554b4034281c10040000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000d1a2633404d596673808c99a6b4aaa29f9a9f9f9c98928f8c8a8988898a8b8e92979da0a7aea8a199928b7f726c61574d42352c21100600000000091623303c4956636f7c8996a2afb0a69f9c9393939393939393939393939393939393939393939393939c9ea6b0aea398877a6d6054473a2d21140700101d2a3743505d6a7683909da99c928d847f7a746f6a64605c54524d48443d39352f2b261f1c17110d080200000000000000000000000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000001070b0f1112131313131313131314212e3b4754616e7a8794a1a094877a6d6154473a2e2114131313131313131312110f0b0701000000000000000000000000000000000000000006121e2b37424e5765727e8b95a09e9c9896979a9fa2a39f98928c85817e7d7e838c929f92867a6d6054473a2d2114070000000000000000000000000000000000000000060c1115171820202024303d4956626c717f8b919e948f868079706b615f5d606b6f797f868f949f93887e716c6155493c3023202020181715110c060000000000000c17222d363e45494b535353535353534e4d4d575e6c6c6c6c6c6c6c6a665f554a3e49545e66696c6c6c6c6c6c6c5e574d4e535353535353534b49453e362d22170c0000000004101c2834404b54626f7c8996a0aca99a8e8174665c5144382c1d120813202c3945515d6775818e9ba9ac9f93877b6e6153493f33271b0f030000000a1724303d4a5763707d8a96989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989286796c5f5346392c201300000000000000040f19232b32383b3d3e3e3e3e3e3e3e3e3e3e43505d697683909ca9a89c8f8275695c4f423e3e3e3e3e3e3e3e3e3e3d3b38332b23190f05000000000000000a1723303d4a5663707d8993988a7d7063574a3d31261b0f0300000000000013202c3946535f6c7986929facada093867a6d605359616b717e87929aa4a69e938e81786d665b534941382d2217140a01000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d201307000000000000000000000000000000000000000000000000000000020608080e070c101313151413110d0802020a1117242c353d47505a606c77828f98a2aa9f958b7e71675c5145382c1f14080000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000c1926323f4c5965727f8c98a5aea298928d939aa0a29f9c999796959697989b9ea1a9acaba39f9691877f726d625a50453c31231a1000000000000815222f3b4855626e7b8895a9b3ab9f948f8686868686868686868686868686868686868686868686868f949eaaac9f928579675d5145392c20130600101d2a3743505d6a7683909da9a49c96918b86817c76716d66615e56544f4745403937312b28221c19130f0a040000000000000000000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000000020405060606060606060814212e3b4754616e7a8794a1a094877a6d6154473a2e211407060606060606060504020000000000000000000000000000000000000000000000020e1a26313c4653606c78839097a1a8a4a3a4aaa29f98928d86807a74717072767f8c94998a7d7063574a3d3024170a0000000000000000000000000000000000000000000005080a0b131315212d3945505a626d727f8b919c98928c847d756e69686d747c838c92989c918b7f726c625a5044392d201413130b0a0805000000000000000006111b242d34393d3e464646464646464246535e69767979797979797771665b4f424e5a66707679797979797976695e5346464646464646463e3d39342d241b11060000000006131f2c3845515c6674818d9aa8ada197897d7063544a4034281c0b04111d2935414b5564707d8a97a2ada49a8c7f73655b5044372b1f13070000000a1724303d4a5763707d8a969f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9286796c5f5346392c2013000000000000000b16212b353d4448494a4a4a4a4a4a4a4a4a4a4a505d697683909ca9a89c8f8275695c4f4a4a4a4a4a4a4a4a4a4a4a4948443d352b21160b000000000000000815222f3b4855626e7b88959a8d817467584e43372b1f120600000000000013202c3946535f6c7986929facada093867a6d60534f59616c717e88939fa3a59e938e81786c655b53493f3327261c130a010000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d2013070000000000000000000000000000000000000000000000000003090e1214151a1c181c1f202121201d19130c050006121a232b353e44505b656e7b86929faaa79e9184796d6053463b3025190d0100000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000b1825313e4b5864717e8b97a4ab9f9286818890959b9fa3aba4a3a2a2a3a5a8a9a7a8a19e99928d847d716d625b51483e332a1f110800000000000714212d3a4754606d7a8797a2ada99c8f82797979797979797979797979797979797979797979797979828f9ca9ab9e9184786b554b4135291d110400101d2a3743505d6a7683909c9fa6a8a09d98928d88837e79736e6863605953514b47423c38332d2a251e1b15100c07010000000000000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e2114070000000000000000000000000000000000000000000000000000000000000000000009151f2b3844505b666f7c8591969c9f9f9e9c98928d86807a736d686463656d76828f998d8073665a4d4033271a0d00000000000000000000000000000000000000000000000000000605111d29343e48505a626d727f8c929c9f96918a827b73717a818891959f9d928c7f736d625a50483e33281c1004060000000000000000000000000009121b22292d3031393939393939393b4854616e7b86868686868683776a5d50444f5c6976828686868686867b6e6154483b39393939393931302d29221b120900000000000713202d3a4653606d7985929eabab9e9185796d6053463a2e23180c010d18242f3a4653606d7985929fabac9e9184786c6053463a2f24180d0100000a1724303d4a5763707d8a93939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939286796c5f5346392c201300000000000004101b27323d474f54565757575757575757575757575d697683909ca9a89c8f8275695c57575757575757575757575756544f473d33271c10040000000000000714202d3a4753606d7a86979e9184786a5f53473a2e21150800000000000013202c3946535f6c7986929facada093867a6d605347505a616c727f8b919ba4a59e938e81776c655b504440382e261c130a0100000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d201307000000000000000000000000000000000000000000000000060e151a1e2122272823282c2d2e2e2d2a251e160e05000811192327333f49535e69737f8c98a2ada1968b7e7164564c41362a1e110500000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000a1724313d4a5764707d8a97a3ac9f9286797c83898e9299999c9d9e9f9f9f9e9d9b9896918c86807a706b625a51493f362c21180e0000000000000613202c3945515d677885929eabaa9d9184776c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c667784919eaaa99c8f8376695c50432f24180d0100101c2936434f5c6976828a8f949a9fa2a9a29f9a94908a84807b756f6b65605d55534d46443f3836302b271f1c18120e0903000000000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e21140700000000000000000000000000000000000000000000000000000000000000000000030f1c28333f4a545f6a6f7c848c909292918f8b86807b746e68605d56565b64707d8a998f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000c17222d363f48515b636d737f8c929ca09e948f867f7d848d939aa09d938d80736d635b51483e362c22170b000000000000000000000000000000000911171d2124252d2d2d2d2d2d2e3b4854616e7b87939393939083776a5d50444f5c6976828f93939393877b6e6154483b2e2d2d2d2d2d2524211d171109000000000005111d2935414c5664707d8a97a2ada89a8d8074665c5044382b1c12070007131f2c3845515c6674818e9aa8aca096897c7063554b4035291d110400000a1724303d4a5763707d8686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686796c5f5346392c20130000000000000713202c38444f59606364646464646464646464646464697683909ca9a89c8f827569646464646464646464646464646360594f44382c20130700000000000006131f2c3945515d677885929e96887b6f6255483c3025190d01000000000013202c3946535f6c7986929facada093867a6d60534748505a626d727f8c929ca4a59d938e80776c605c524a40382e251c130a01000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d2013070000000000000000000000000000000000000000000000060f181f262b2d2e34352e34383a3b3a3936302820160c0200071117222d38414d57606d7a86929faca89c908376685e5246392d20140700000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000a1623303d495663707c8996a3afa399867a6f787d82868a8c8f909192929291908e8b8884807b736d68605950483f372d241a0f0600000000000004111d2935414c55697683909ca9ab9f928578695f606060606060606060606060606060606060606d7986929faca79a8d8174675a4e4134271b0700000713202d3a4653606d787d82888d92979da0a7a69f9c97918c86817c77726d67625f5753504a46413a37322c29231d1a140f0b0600000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e21140700000000000000000000000000000000000000000000000000000000000000000000000b17222d38424e585f6a6f797f83858684827f7a736e69615e56524c4a54606d7987868683776a5e5144372b1e110400000000000000000000000000000000000000000000000000000006101b242d363f49515b636d73808d929da49e98928c8a91969fa49e938e81746e645b51493f362d241a10050000000000000000000000000000000000060c111517182020202020212e3b4854616e7b87949f9f9d9083776a5d50444f5c6976828f9c9f9f94877b6e6154483b2e2120202020181715110c060000000000000713202d3946525e6875828f9ba9ada196897c6f63544a3f34281c0b000004101c2834404b5463707c8996a1ada89b8e8174675d5145392c20140900000916232f3c4855616b707979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979746a5e5145382b1f120000000000000916222f3b4854606b7071717171717171717171717171717683909ca9a89c8f82757171717171717171717171717171706b6054483b2f22160900000000000004101d2935404b556a7783909d998c7f7266564c41362a1d1105000000000013202c3946535f6c7986929facada093867a6d6053473e48515b626d737f8c929ca4a59d938d80746e645c524a40372e251c1309010000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d20130700000000000000000000000000000000000000000000030e18212a31373a3b414243404546484746413a32281e1308000006111b262f3b45525d6875828e9ba8ac9f93877a6e6154473b2e21140800000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000916222f3c4955626f7c8895a2b5ab94877b6e6c70757a7d808284848586858583817f7c78736e68605d564f473f362d251b120800000000000000010d19242f414d5a6774808d9aabaea298887b6e61555353535353535353535353535353535355626f7c8899a3afa9988b7e7265584b3f3225180c000006121f2c3844505c666d71767b80858b90959b9fa3a9a19e99928e89837e79746e6964605b54524c47433d38342f2a251f1b17110d080100000000000000000000000000000713202d3a4653606d798693a0aca69a8d8073675a4d4034271a0700000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e211407000000000000000000000000000000000000000000000000000000000000000000000006111c262f3c464e585f676d727678797876726d68615e56524c454145515d67757979797771675b4f43362a1d10040000000000000000000000000000000000000000000000000000000009121b242d373f49525b636e74808d929da5a39f99979ea1a69e948e81786c605c524940372d241b1108000000000000000000000000000000000000000005080a0b1313131315212e3b4854616e7b8794a1aa9d9083776a5d50444f5c6976828f9ca9a194877b6e6154483b2e21151313130b0a080500000000000000000714212e3a4754616d7a86929facab9e9184786c605346392e23170b0000000c18232e394653606c7884919eabac9f92857a6d6053473b31261a0e02000714202c38444f5961636c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6a62584d4135291d100000000000000a1623303d495663707d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7e83919daaaa9d90837e7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d706356493d3023160a000000000000000c18242f424f5c6875828f9b9c908376685e5246392d201307000000000013202c3946535f6c7986929facada093867a6d6053473a3f49515b636d73808d929da5a59d928d80746e635c524940372e251b13090000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d2013070000000000000000000000000000000000000000000009151f2a333c4247484d4f504b51535454524c443a3025190d0100000a141d2935414c5664717e8b97a4afa49a8a7e7164574b3e3124180b00000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000815212e3b4854616e7b8794abb5a295887b6f6263686d7073767778797978787674726f6a66615e56524c433d352d241b1309000000000000000000081724313e4a5764717d8a99a3afaa988b7e7165574d42464646464646464646464646424d5765727f8c98abada297887b6f6255483c2f221509000003101c28343f4a545c60646a6e74797e83898e92989ea0a8a39f9b95908b85807b76706c66615e56544e4745403936312b27221b19130c04000000000000000000000000000713202d3a4653606d798693a0aca79a8e8174675b4e412e23180c00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e2114070000000000000000000000000000000000000000000000000000000000000000000000000a141d2a343c464e555d6065696c6c6b6965615e56524d46413b35414b555d6b6c6c6c6a675f564b3f33271b0e02000000000000000000000000000000000000000000000000000000000009121b252d374049525c646e74808d939da59f9f9f9fa79f948f82786d665b504a40372e251b1209000000000000000000000000000000000000000000000000000606060815212e3b4854616e7b8794a1a99d9083776a5d50444f5c6976828f9ca9a194877b6e6154483b2e2115080606000000000000000000000006121e2b37424d5765727f8b99a3aea89a8d8073655b5044372b1c110600000007121f2b3844505b6673808d9aa8aea2988b7e7164574d42362a1e12050004101c28333e474f5557606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060605f5e5850473c3125190d000000000003101d2a3643505d6976838a8a8a8a8a8a8a8a8a8a8a8a8a8a8a9195a0acab9f95908a8a8a8a8a8a8a8a8a8a8a8a8a8a8a83776a5d5044372a1d1104000000000000071a2734414d5a6774808d9a9f93867a6d6154473a2e23180c000000000013202c3946535f6c7986929facada093867a6d6053473a373f49525b636e74808d939da5a49d928d80736e635b51493f372d251b120900000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaca09386796d6053463a2d201307000000000000000000000000000000000000000000020e1a26313c454d53555a5b5c555c6061615e564c41362a1d11050000020b19242f3c4955626f7c8895a2b6ac998d8073665a4d4033271a0d00000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000714212d3a4754606d7a8799a4afa296897c6f63565d606366696a6b6c6c6c6b6a6865625f5854524d45413a312b231b1209010000000000000000000714212e3a4754616d7a86929faca89b8e8275695e53463d313939393939393939303946525e6976828f9ca9ab9e9285786c605346392d2013060000000c17232e38424a5053575f62676d71777c81868c91969c9fa4a7a09d97928d87827d78726d6862605853514b46423b37332d29241e160d0a0100000000000000000000000713202d3a4653606d798693a0aca89b8f827568544b4034281c1004000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000000000000000000000000000814212e3b4754616e7a87949f9f94877a6d6154473a2e211407000000000000000000000000000000000000000000000000000000000000000000000000020b18222a343c434b5154595d5f5f5e5c5854524c46423b36302f3a434b515e6060605e5b564d44392e22170b0000000000000000000000000000000000000000000000000000000000000009131c252e37404a525c606c77818e93939393939393959082796d665c544a3f382e251c130900000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b87949c9c9c9083776a5d50444f5c6976828f9c9c9c94877b6e6154483b2e211508000000000000000000000000000814212e3a47535f697683909d9f9fa096897c6f6253493f33271b0a00000000030f1c28333f4a54626f7c8895a09faa9c908376695f53463a2d21140700000b16212c353e44484a5353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353514d473e352a1f1409000000000003101d2a3643505d6976839097979797979797979797979797979da0a8b1b1a79f9d97979797979797979797979797979083776a5d5044372a1d11040000000000000c1926323f4c5965727f8c98a4998b7e7164544a4034281c10040000000013202c3946535f6c7986929facada093867a6d6053473a2d374049525c606c77818e939ea6a49c928c80736d635b51493f372d241b1209000000000000000000000000000000000000000000000000010101010101010101010613202c3946535f6c7986929facaca09386796d6053463a2d20130701010101010101010101000000000000000000000006121e2b37424d575f616768696a676d6e6d685e5246392d2013080000000814212e3b4754616e7a8794a1ada89b8e8175685b4e4235281b0f02000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0000000613202d394653606c7986939faca3968a7d706357525457595c5d5e5f5f5f5e5d5b5855534e4746413b352f281f19110900000000000000000000000713202d3946525d6876828f9ca9ac9f92867b6e61584e433b322c292424292c3139424d57616e7b86929faca89b8e8174655b5044372b1f120500000006111c2630383f44464e53555d60656a6f747a7f848a8f93999ea1a9a29f9a938f8a847f7a746f6a64605c55534d46443f38352f28201c140a00000000000000000000000713202d3a4653606d798693a0aca99d908376665c5145382c1f130700091623303c4956636f7c8996a2afa4988b7e7165584b3e3225180b0000000000000000000000000000000000000814212e3b4754616e7a8792929292877a6d6154473a2e21140700000000000000000000000000000000000000000000000000000000000000000000000000061018222a313a4145474c50525352504c4746413a36302a2528313a414547535353514f4b443b32281d110600000000000000000000000000000000000000000000000000000000000000010a131c252e384044505b656c7881868686868686868683796d675d544a42382d261c130a0100000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b878f8f8f8f8f83776a5d50444f5c6976828f8f8f8f8f877b6e6154483b2e211508000000000000000000000000000815222f3b4855626e7b8895939393939184776a605441382d22170b00000000000b17222d3847545f6a7784919393939394887b6e6155483b2e221508000005101a232c33383c3d464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464645413c352c23190e03000000000003101d2a3643505d697683909c9f9f9f9f9f9f9f9f9f9f9f9f9fa9abb0b8b8b0aaa89f9f9f9f9f9f9f9f9f9f9f9f9f9d9083776a5d5044372a1d11040000000000000b1724313e4a5764717d8a97ab9b8e8275665c5144382c1f12060000000013202c3946535f6c7986929facada093867a6d6053473a2d2e374044505b656d78818e949ea6a49c928c7f736d635b51493f362d241b120900000000000000000000000000000000000000010406070d0d0d0d0d0d0d0d0d0d0d13202c3946535f6c7986929facaca09386796d6053463a2d20130d0d0d0d0d0d0d0d0d0d0d07060400000000000000000814212d3a47535f696e7475767778797b7a6d6154473a2f24190d0100000714202d3a4753606d7a8693a0ada89c8f8275695c4f4236291c0f03000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b00000005121f2b3744505b657885929faba4978b7e7164584b474a4d4f515152535252504e4c4947433c39363029241e160d0700000000000000000000000005111d2935414c5664717e8b96a1ada3998d80746a60564d443e39352f2f35383c434b545e6973808d99a3aca096897d706353493f33271b0f03000000000a151e262e34383c42474b5153586062686d72787d82878d92979c9fa6a49f9c96918c86817c76716d67615e5753504945413a322e261c1207000000000000000000000713202d3a4653606d798693a0acac9f9286796d6053463a2e23180d060a1723303d4a5663707d8996a3b0a4978b7e7164584b3e3125180b0000000000000000000000000000000000000814212e3b4754616e7a8786868686877a6d6154473a2e21140700000000000000000000000000000000000000000000000000000000000000000000000000000610181f282f35393a3f43454645433f3a3936302a251f191f282f35393a46464644433f39322920160b000000000000000000000000000000000000000000000000000000000000000000010a131c2627333f49535b666c757979797979797979776d675d554b42392f261c140a010000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8283838383828074675a4e414d5a6673808283838383827a6e6154473b2e211408000000000000000000000000000d1a2733404d5a66738086868686868686807366584e432f261b1106000000000006111c2b37434e5866737f86868686868686807366594d4033261a0d00000008111a21282c2f3039393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393835312a231a110700000000000003101d2a3643505d6976839093939393939393939393939393939c9fa6b0b0a69e9c93939393939393939393939393939083776a5d5044372a1d11040000000000000916232f3c4956626f7c8995ab9f9285796d6053463a2d2013090000000013202c3946535f6c7986929facada093867a6d6053473a2d2027333f49535c666d78828f949fa6a49c918c7f726d625b51483f362d241b12080000000000000000000000000000000001070d1113141a1a1a1a1a1a1a1a1a1a1a1a202c3946535f6c7986929facaca09386796d6053463a2d201a1a1a1a1a1a1a1a1a1a1a1a1313100c070000000000000815222e3b4855616e7b80828384858687807367554c4135291d120c070a0a15212e3b4854616e7b8794a1aea89c8f8275695c4f4236291c0f03000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000030f1b27333f495e6b7884919eaba5988b7f7265584c3f3d404344454646454543413f3c3b37322d2a251f19130c0400000000000000000000000000010d1924303a4653606d7984919ea7ab9f92877c6f685e564f47454141414045474e555c666e7b86929faba89e9184786c605346392d22170b0000000000030c151c23282c3137394045474e54565e61666c70757b80858a90949a9fa2a8a19e98928e89837e79736e6963605b53524c4440382e24190e020000000000000000000713202d3a4653606d798693a0acaea398897c6f62544b4034281f1612101824313e4b5764717e8a97a4b1a4978a7e7164574b3e3124180b0000000000000000000000000000000000000714202d3946525e687579797979797975685e5246392d201307000000000000000000000000000000000000000000000000000000000000000000000000000000060d161d24292c2d323639393836322e2d2a251e19140d161d24292c2d3939393736332e2820170e0400000000000000000000000000000000000000000000000000000000000000000000010a1417222d38414a545b60686c6c6c6c6c6c6c6c6a605d554c433930271d140a02000000000000000000000000000000000000000000000000000000000000000714202d3946525e686e767676767676746e64584c404b58636e737676767676766e685e5246392d201407000000000000000000000000000c1926323f4b57636e7379797979797979736e6358463d321d140a000000000000000f1b26323c4b57636d7379797979797979736e63574b3f3226190c000000000810161c2023242d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2b29251f1911080000000000000003101d2a3643505d69768286868686868686868686868686868690949fabaa9e948f86868686868686868686868686868683776a5d5044372a1d11040000000000000814212e3b4754616e7a8799a3a297897c706356493d31261a0e0200000013202c3946535f6c7986929facada093867a6d6053473a2d20222d38414a545c666d79828f949fa7a49c918c7f726d625b51483f362c241a12080000000000000000000000000000040c13181d2021272727272727272727272727272c3946535f6c7986929facaca09386796d6053463a2d27272727272727272727272727201f1c18120b03000000000915222f3c4855626f7b888e8f9192978f8276675d5145392f241d181616141b222f3c4955626f7c8895a2afa89b8e8275685b4f4235281c0f02000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000000b17222d44505d6a7783909daaa6998c7f7366594c403333363738393939383735322f2e2b26201e19140d080b09050100000000000000000000000008131f2c3845515c67727f8b95a0aba39991847a6e68615954514c4e4e4b5153575f676d78839098a2aca0968b7f72665b5044382b1b1106000000000000030a11171c1f262b2f35393d43474c52545b6063696e73797e83888e92989da0a7a39f9b95908b85807b75706c65605d56524a40352a1f13070000000000000000000713202d3a4653606d798693a0acb4aa998d8073665c51453b3128201f1c1e26323f4c5965727f8c98a5b0a3968a7d7063574a3d3024170a00000000000000000000000000000000000005111e2a36414c565e616c6c6c6c6c6c615e564c4135291d110500000000000000000000000000000000000000000000000000000000000000000000000000000000040c13181d2021262a2c2c2b292521201d19130e09040c13181d20212d2d2d2b2a27221d160e050000000000000000000000000000000000000000000000000000000000000000000000000006111b262f38424a50535b60606060606060605d54514c433a31271e150b02000000000000000000000000000000000000000000000000000000000000000005111e2a36414c565e6169696969696967645c52473c47525c6366696969696969615e564c41362a1e1105000000000000000000000000000a17232f3b47525c63666c6c6c6c6c6c6c66635c5247342b200b02000000000000000a15202f3b46515b63666c6c6c6c6c6c6c66635c52473b2f23170a0000000000050b1014161720202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020201f1d19140e070000000000000000030f1c2935424e5a66707679797979797979797979797979797982909ca9a89c8f827979797979797979797979797979797771665b4f4236291d10030000000000000613202d394653606c7986929fa99a8d807367574d42372b1e120600000013202c3946535f6c7986929facada093867a6d6053473a2d201b262f38424a545c676d798290959fa7a39b918b7f726d625a50483e362c241a1108000000000000000000000000040d161d24292c2d34343434343434343434343434343946535f6c7986929facaca09386796d6053463a34343434343434343434343434342d2c28231d150c030000000713202d3a4653606d7985929c9d9f9f92867a6d60554b40352f2923232324262d36424d5765717e8b98a4b1a69a8d8073675a4d4034271a0d01000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b00000000061d293643505c6976838f9ca9a69a8d8073675a4d403427292a2b2c2c2c2b2a282522211f1b1919191919181715110c06000000000000000000000004101c2834404b55606d78839099a3aba09690837a706b64605d555b5b555d60636a6e79818e959faaa49a9184796d60544a3f33281c0a000000000000000000060c10151a1d24292c32383a41464a5053575e61666d71767c81868b91959b9fa3a79f9d97928d87827d78726d68635c52473b2f23170a0000000000000000000713202d3a4653606d798693a0acb8ab9e9285796d60574d433a322d2c282a2d36424d576774818e9aa7b3a995897c6f6256493c2f231609000000000000000000000000000000000000010d1925303b444c52545f5f5f5f5f5f54524c443a3025190d01000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d111314191d1f201f1d191413110d0802000001070d1113142020201e1d1b17110b040000000000000000000000000000000000000000000000000000000000000000000000000000000a141d262f383f44464e5353535353535353504745413a31281f150c03000000000000000000000000000000000000000000000000000000000000000000010d1925303b444c52545c5c5c5c5c5c5a58524a4136404a52585a5c5c5c5c5c5c54524c443b3025190d010000000000000000000000000007131f2a35404a52575a606060606060605a58524a403522190f000000000000000004121e2a354049515759606060606060605957524a40352a1f1307000000000000000407090a131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131312100d0903000000000000000000010d1a26323e4a545e66696c6c6c6c6c6c6c6c6c6c6c6c6c6c76838f9ca9a89c8f82756c6c6c6c6c6c6c6c6c6c6c6c6c6c6a665f554a3e32261a0e0100000000000005121f2b3744505b657784919eaa9d918477695f53473a2d21140800000013202c3946535f6c7986929facada093867a6d6053473a2d20141d263039424b555d676d79839095a0a8a39f93887f726c625a50483e362c231a110800000000000000000000010c161f282f35393a40404040404040404040404040404046535f6c7986929facaca09386796d6053464040404040404040404040404040403a38342e271e150b00000006121f2c3844515c6676828f9caaaba2988b7e72675d51454039342f3030312f383f46525e6975818e9ba8b3a9988b7e7265584b3f3225180c00000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000020f1c2935424f5c6875828f9ba8a79a8e8174675b4e413428252525252525252525252525252525252525252524211d17110900000000000000000000000c18232e3944515c666f7c87929fa4a8a09590847d76716d6769676869676d70757b838e939ea7a59f93887d70665c5142382d22170b000000000000000000000003090e12181d1f272b3036383f44464d53545c60646a6f747a7f84898e92999ea1a8a19e99938f89847f7a736e63574b3f3226190c0000000000000000000713202d3a4653606d798693a0acb9ada1978b7e71695e554c443e3a3834363a3d46535e697784909daaada297877a6e6154473b2e2114080000000000000000000000000000000000000008141e29323b4146475353535353534746413a32281e13080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010406070c10121312100c070705010000000000000104060713131311100e0b060000000000000000000000000000000000000000000000000000000000000000000000000000000000020b141d262d333839424646464646464646443a39352f281f160d03000000000000000000000000000000000000000000000000000000000000000000000008141e29323b4146475050505050504e4c4741382f3840474b4d5050505050504746413b32291e14080000000000000000000000000000020e19242e3840474b4d535353535353534d4b4740382e2410070000000000000000020d19232e3740464b4c535353535353534d4b4740372e24190e02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a16222d38434c545a5d606060606060606060606060606976838f9ca9a89c8f827569606060606060606060606060605d5b554d43392d22160a00000000000000030f1b27333f49536976838f9ca9a096887b6e6155483b2f24190d01000013202c3946535f6c7986929facada093867a6d6053473a2d2014141e273039434b555d676d7a839096a0a8a49a93887e716c615a50483e352c231a110800000000000000000007131d28313a4145474d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d535f6c7986929facaca09386796d60534d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4645403930271d1207000004101c2834404a5465727e8b98a2aeaa9e9184796d605b514b45403e3d3d3d3f4149505b616e7b86929facada197887c6f6255493c2f22160900000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000020e1b2835414e5b6874818e9ba7a89b8f8275685c4f4235323232323232323232323232323232323232323232312e29221b12090000000000000000000007121d2834404a54606a727f8c929ca4a7a096918a827d7a7775747475767a7d818790959ea5a59e938d80736b60544b402f261c11060000000000000000000000000001070c10161b1e252a2d33383b42464b5153585f62676d72777c82868c91969c9fa4a49f9c96918b868073665a4d4033271a0d0000000000000000000713202d3a4653606d798693a0acb1a7a09d92857b6e675d56504846443f4246474f58616e7b8795a0acab9f928578685e5246392d20140700000000000000000000000000000000000000020d1720293036393b4646464646463a3935302820160c020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b141c22282b2d353939393939393939372d2c29241e160d04000000000000000000000000000000000000000000000000000000000000000000000000020d1720293036393b43434343434341403c362f262e353b3f404343434343433b3936302920170d0200000000000000000000000000000007121c262e353b3f4046464646464646403f3b352e261c120000000000000000000007121c252e353b3e4046464646464646403f3b352e251c12070000000000000000000000000000000000000000000000000000000000000000000004090d0f101313131313130e0d0b0803000000000000000000000000000000000000000000000000000000030f1b26323c464e53555656565656565656565656565c6976828f9ca9a89c8f8275695c56565656565656565656565655544e463c32271b0f0300000000000000000b17222d414e5b6874818e9ba7a8988c7f7265554c4135291d1104000013202c3946535f6c7986929facada093867a6d6053473a2d20140c151e273039434c555d686e7a849196a1a9a49a93877e716c615a50473e352c231a110700000000000000010d18242f3a434b51545a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5f6c7986929facaca09386796d605a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a53514b42392e23180c0000000c18232e3a4754616d7a86929fa9aca1968d80746d605d55514b4a49494a4b4f535b606d74818e98a3aeab9e9285796d6053463a2d20130700000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000010d1a2734404d5a6773808d9aa6a99c8f8376695c50433f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3e3d3a342d241b1106000000000000000000000c18232e39424e58626d73808c929ea1a8a19e948f8a8683828181828386898e93999fa7a39f938f81786d60594f42392e1d140a0000000000000000000000000000000000040a0f13191c22282b3136394045464e53555d60656b70757b7f848a8f939a9fa2a8a09e989083776a5d5144372a1e110000000000000000000713202d3a4653606d798693a0acaca09590959082796d68615a5553504a4d525459606a74808d9aa7b1a99c8f827669564d41362a1e11050000000000000000000000000000000000000000050e171e252a2d2e3939393939392e2d29251e160e04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030607090b0d0f1111121313121211100f0d0a080705020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171c1f20282d2d2d2d2d2d2d2d2a21201d19130c040000000000000000000000000000000000000000000000000000000000000000000000000000050e171e252a2d2e3636363636363433302b241d242a2f32333636363636362e2d2a251e170e0500000000000000000000000000000000000a141c242a2f32333939393939393933322f2a241c140a00000000000000000000000a131c232a2f32333939393939393933322f2a241c130a000000000000000000000000000000000000000000000000000000000000000000020a1015191b1c2020202020201b1a17140e08010000000000000000000000000000000000000000000000000006131f2b37434e585f62636363636363636363636363636976828f9ca9a89c8f827569636363636363636363636363636260584e43372b1f13060000000000000000061a2633404d596673808c99a6a99c8f8276675d5145392c201306000013202c3946535f6c7986929facada093867a6d6053473a2d2014070c151e27313a434c565e686e7b849196a1a9a49992877e716c61594f473e352b23190f0400000000000004111d2935414b555d606767676767676767676767676767676767676c7986929facaca09386796d676767676767676767676767676767676767605c544b4034281c100400000713202d3946525e6874808d97a2ada89d928c7f746d67605c5557565657585960656c727f8b939daaafa4998d8074665c5044382b1f120600000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000000d192633404c5966737f8c99a6aa9d9083776a5d504c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4b4a453f362d22170c0100000000000000000007121c27303d46515b646e73808a92979fa3a69f9c9992908f8e8e8f9092989b9fa4a69f99928c81786d665c50473d30271d0b020000000000000000000000000000000000000002080d11171c1f252a2e34383c43474c5154596063686e73797d82878d92979da0a79d9084776a5d5144372a1e110000000000000000000713202d3a4653606d798693a0acaa9d9084909490827a716c6562605c54565e61646b707c87929facb0a6998c7f7266594c3f3025190e02000000000000000000000000000000000000000000050d14191e20212c2c2c2c2c2c21201d19130c040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000104060b10121315171a1c1d1e1f1f201f1f1e1d1b19171514120e09060300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f12131b20202020202020201d1413110d080100000000000000000000000000000000000000000000000000000000000000000000000000000000050d14191e20212929292929292726241f1a13191f23262729292929292921201e19140d05000000000000000000000000000000000000020a12191f2326272d2d2d2d2d2d2d2726231f19120a020000000000000000000000010a12191e2325262d2d2d2d2d2d2d2626231f19120a010000000000000000000000000000000000000000000000000000000000000000040c141b212528292d2d2d2d2d2d2726241f1a130b020000000000000000000000000000000000000000000000000815212e3b47535f6a6f707070707070707070707070707075828f9ca8a89c8f827570707070707070707070707070706f6a6054473b2e22150800000000000000000b1825323e4b5865717e8b98a4ac9f92867a6d6054473a2d22170b000013202c3946535f6c7986929facada093867a6d6053473a2d201407030c151f28313a444c565e696e7b849197a1a9a39992877e706c61594f473d352b21160b0000000000000613202c3945515d676d737373737373737373737373737373737373737986929facaca0938678737373737373737373737373737373737373736d665c5145382c1f1306000005111d2935414c56616d7a85929fa5aea49b918c8079716d67656463636465686b70787f87929fa5afa89f93877b6e61544a3f34281c100300000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000000c1925323f4c5865727f8b98a5aa9e9184776b5e5858585858585858585858585858585858585858585858585650483f34291d1105000000000000000000000b151e2b343f49525c646e737e858e92999ea1a8a39f9d9c9a9b9c9d9fa3a9a29f9b948f877f776d665c544a3f352c1e150b0000000000000000000000000000000000000000000000060b0f141a1d23282c32373a4145474f54565e61666d70767b80858b90959b9d9084776a5d5144372a1e110000000000000000000713202d3a4653606d798693a0aca396897d85929490847d76726e6d666b6b696e71757d859299a3afab9f94887b6e6155483b2e221508000000000000000000000000000000000000000000000002080d1114142020202020201413110d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d1113171c1f20222426292a2b2b2c2c2c2b2b2a28262422211e1a1312100c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306060f131313131313131311070604010000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d1114141d1d1d1d1d1d1b1a17140e080e1317191a1d1d1d1d1d1d1414110d0802000000000000000000000000000000000000000000070e1317191a202020202020201a1917130e08000000000000000000000000000000070d12161919202020202020201a1917130e07000000000000000000000000000000000000000000000000000000000000000000020c161e262c3135363939393939393433302b241d140b0100000000000000000000000000000000000000000000000916222f3c4955626f7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7d82909ca9a99d90837d7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c6f6255493c2f22160900000000000000000a1723303d4a5663707d8996a3aea3998a7d7164544a3f33281c0f030013202c3946535f6c7986929facaca093867a6d6053473a2d20140700030d161f28323b444d575f696e7c859297a2aaa39992877e706b61594f473d32271b100400000000000714212d3a4754606d79808080808080808080808080808080808080808087929facb3a69a8d8080808080808080808080808080808080808080796d6053463a2d2013070000010d1925303a46525e68717e8b939da5ada39b928d847e797572717070707274777d828c9299a3afaaa1968e8174695f5342382e23170b0000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000000b1825313e4b5864717e8b97a4ab9f9285786565656565656565656565656565656565656565656565656565625a50453a2e21150900000000000000000000030c19222d37404a525c636c717a81868d9196989b9c9e9f9f9f9f9e9d9b9997928e89827c736c655c544b42382e231a0c030000000000000000000000000000000000000000000000000003090e12181c1f262b2f35393d44484d52545c6064696e74797e83898e929084776a5d5144372a1e110000000000000000000714202d3a4753606d7a8693a0ada194887b7e8b9296918a837f7b79787778797a7d82889297a1abafa4998f8276695f53473a2d211408000000000000000000000000000000000000000000000000000105070813131313131307070501000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e13181d2023282b2d2f3133353737383939393837373533312e2d2a26201f1c17110d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010507081010101010100e0d0b08030002070a0c0d1010101010100807050100000000000000000000000000000000000000000000000002070a0c0d131313131313130d0c0a0702000000000000000000000000000000000002060a0c0d131313131313130d0c0a0702000000000000000000000000000000000000000000000000000000000000000000000a141e2830383d414346464646464641403c362f261d13080000000000000000000000000000000000000000000003101d2a3643505d69768289898989898989898989898989898990949fabab9f959089898989898989898989898989898983776a5d5044372a1d1104000000000000000815222f3b4855626e7b8895a99f9f9b8e8174665b5044382b1f12060013202c3946535f6c7986929f9f9f9f93867a6d6053473a2d2014070000040d162029323b454d575f6a6f7c859298a29fa39992877d706b60594f44382c20130700000000000814212e3b4754616e7a878d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d9299a3afb5a89d928d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d867a6d6053473a2d20140700000008131e2a36414c56626c74818e939da4aea49d96918b85827f7d7c7c7d7e8184898f949fa3abaaa29891847a6d60574d4230261c11060000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000000a1724313d4a5764707d8a97a3ac9f93867872727272727272727272727272727272727272727272727272716c62564a3d3124170b000000000000000000000007101b252e38404a525a61686d747b8084888b8e90919292929291908e8c8985817c766f6a605b534b423930261c11080000000000000000000000000000000000000000000000000000000000070c10151b1e24292c32383b41464a5053575f62676d71777c81868c83776a5d5144372a1e110000000000000000000714212d3a4754606d7a8793a0ada194877b74818e949e95908c888685848585878a8f939aa1a9afa59f93877c6f62574d42372b1e1206000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f151a1d24292c2e34383a3c3e404244444546464545444342403d3b3a36312d2c28231c19130d08020000000000000000000000000000000000000000000000000000000000000000000000000000000000040607090c0e1011121313131211100f0d0b08070502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101b26303a42494e4f5353535353534e4c4741382f241a0e0300000000000000000000000000000000000000000003101d2a3643505d6976839096969696969696969696969696969c9fa6b0b1a79f9d96969696969696969696969696969083776a5d5044372a1d1104000000000000000714202d3a4753606d7a8697939393939285796c605346392d2013060013202c3946535f6c7986929393939393867a6d6053473a2d201407000000040e172029333b454e585f6a6f7c8692989393939992867d706b6054483b2f22160900000000000814212e3b4754616e7a87949a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9fa3abb5b9aea49d9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a93867a6d6053473a2d201407000000020d1925303a44505a606d78818d929fa2aaa8a09e97928f8c8a89898a8b8e91969c9fa6ada7a09892867c6f685d52453c311e140a000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b00000000091623303c4956636f7c8996a2afa4998c7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7e7165584b3e3225180b00000000000000000000000009131c262e38404850565e61696e73787c7e818384858686858583817f7c79746f6a625f585049413930271e150a0000000000000000000000000000000000000000000000000000000000000000040a0f13191d20272c3036383f44464d53555d60656a6f747a7f8175685b4f4235281c0f0000000000000000000714212e3a4754616d7a8794a0b4ab94877a6d78828f939f9d989a939291919298979b9fa4acaba39f938d80736a6054453c31261a0e020000000000000004080c0e0f0c07070501000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c151b20262b2f35393a3f4446484a4d4f5051525253525251504e4c4a4846423d3a38342e29251e19140d050000000000000000000000000000000000000000000000000000000000000000000000000004070c10121316191b1d1e1f1f201f1f1e1d1b19171414110e0806030000000000000000000000000000000000000000000000000004090e1112131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313130b0a08040000000000000000000000000004080a0b1313131313131313131313131313131311100e0b06000000000000000000000005090d0f101313100f0d090500000000000000000000000000000000000000000000000000000000000000000000000000000915212c38424c545a5c6060606060605a58524a41362b1f140800000000000000000000000000000000000000000003101d2a3643505d697683909c9f9f9f9f9f9f9f9f9f9fa3a3a3a9abb0b9b9b1aba9a3a3a39f9f9f9f9f9f9f9f9f9f9d9083776a5d5044372a1d11040000000000000006131f2c3945515d677885868686868686867c6f6256493c2f2316090013202c3946535f6c798786868686868686796d6053473a2d20140700000000050e172129333c464e58606a707d8686868686868686867c706356493d3023160a00000000000814212e3b4754616e7a8794a1a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6acafb5acacacaea8a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a093867a6d6053473a2d2014070000000008131e29323f44505c666d78808b92989fa3aba9a29e9b9897969697989b9ea0a8aca9a19e9590867d6f6a60564c41332a1f0c02000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000000915222f3c4855626f7b8895a2b5ab9b918c8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b85786b5f5245382c1f12050000000000000000000000010a141c262e363e444c52575e61666a6f7274767878797978787675726f6d66626058534e443f382f271e150c030000000000000000000000000000000000000000000000000000000000000000000001080d11161b1f252a2e34383c42474b5153586062686d72756f65594d4134281b0e0000000000000000000814212e3b4754616e7a87949f9fa39986796d6d79818c92989fa29f9e9e9e9fa2aaa8a9aaa29f99928b81786d60584e43332a1f150900000000000002090f14181b1b191413110d08020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b121820262b31373a4145474a50535557595c5d5e5e5f5f5f5e5e5d5b595755534d4946443f3835302a251e170e0802000000000000000000000000000000000000000000000000000000000000000001070c1013181c1f20232527292b2b2c2d2c2c2b2a28262421201e1915120f0a0300000000000000000000000000000000000000000000080f151a1d1f20202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020171714110c05000000000000000000050c11141717202020202020202020202020202020201e1d1b17120b0400000000000000020a1015191c1c20201c1c1915100a020000000000000000000000000000000000000000000000000000000000000000000000000d1925313d49545e65696c6c6c6c6c6c67645c52473c3024170b00000000000000000000000000000000000000000003101d2a3643505d6976839093939393939393939393939b9ea5afb7b7b6b7b9b8afa59d9b93939393939393939393939083776a5d5044372a1d11040000000000000004101d2935404b55687378797979797979796f6a6054483b2e22150900121f2c3845525e6a75797979797979797976675c5145382c1f13060000000000050f18212a333c464e58606b70797979797979797979706b6054483b2f22160900000000000814212e3b4754616e7a87949f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f93867a6d6053473a2d20140700000000020d172028343f4a545c666d747e858e92999ea1a8a7a8a5a4a3a3a3a5a7a8aca49f9d97928c837b6f6b60584e443a3021180e00000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b000000000815212e3b4854616e7b8794abb5ada39b989898989898989898989898989898989898989898989898989285786b5f5245382c1f1205000000000000000000000000020a131c242c323a41464d5254585f626568696b6c6c6c6c6b6a686663605c54544e47433c332d261d150c030000000000000000000000000000000000000000000000000000000000000000000000000001040b1014191c23282c3137394045474e54565e616568655d53483d3125190c0000000000000000000815222e3b4855616e7b889393939392867966676d787f868d92989a9c9e9e9f9f9e9d9c9998928d877f746d665c50463d3221180e030000000000030b131a202527282621201d19130f0a040100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c151d232831373c42474b5154545c60626466686a6a6b6c6c6c6b6a6a686664615f575653504a46413a3630292019130d05000000000000000000000000000000000000000000000000000000000003090e12181d1f23282c2d3032343638383939393838373533312e2d2a25211f1b150f0b060000000000000000000000000000000000000009121920262a2c2c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2423211c171008000000000000000810171c2123242d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2b2a27231d160e050000000000040c141b212528292d2d292825211b140c0400000000000000000000000000000000000000000000000000000000000000000000020f1b2835414e5a657076797979797979746e64584c4033261a0d00000000000000000000000000000000000000000003101d2a3643505d6976828686868686868686868686868e939ea9b0aba9abacb2a99d938e86868686868686868686868683776a5d5044372a1d110400000000000000000c18242f39435761686b6c6c6c6c6c6c6c6260584e43382c1f130700111d2a36424e59636a6c6c6c6c6c6c6c6c6c5c554b4034291c1004000000000000060f18212a343d464f5960636c6c6c6c6c6c6c6c6c6360594f44382c20130700000000000814212e3b4754616e7a8793939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393867a6d6053473a2d2014070000000000050e17232e38424a545c606c717a81868d9196989a9c9e9f9f9f9f9e9d9c999a93908b857f786e6960594f463c32281e0f0600000000000b1825313e4b5864717e8b97a4aca89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7aca4978b7e7164584b3e3125180b000000000714212d3a4754606d7a8799a3afacada7a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a59e9285786b5f5245382c1f120500000000000000000000000000010a121a202830363b4246484e5355585b5d5e5f5f5f5f5e5d5b595653514a47433d373127221b140b03000000000000000000000000000000000000000000000000000000000000000000000000000000000002080e11171c1f262b2f35393d43474c5254595b59534b42372c2015090000000000000000000916232f3c4956626f7c86868686868685786b5c666c727b80858a8d8f9192929291908f8c8a86807b726d605c544a3f342b200f060000000000020b151d252c313435332e2d2a251e1b16110d0701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000810191e272e343c43474d53555d6064666d6f7173757777787979787877767573706e696763605c54524c46413b322a251e170e06000000000000000000000000000000000000000000000000000001070c141a1d24292c2e34383a3c3f4143444546464645444342403e3b3936302e2b261f1c17110a020000000000000000000000000000000008121b242b3136383939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393931302d28221a1208000000000008121a22282d3031393939393939393939393939393939393736332e2820170e04000000020c161e262c32353639393635322c261e160c0200000000000000000000000000000000000000000000000000000000000000000003101c2936434f5c6976828686868686868074675a4e4134271b0e010000000000000000000000000000000000000000030f1c2935424e5a667076797979797979797979797979818e9ba7a69f9c9ea1a8a79b8e817979797979797979797979797771665b4f4236291d1003000000000000000007121d2731454f575d5f6060606060606056544e463d32271b0f03000e1a26313d4751595e5f606060606060605f514b43392f23180c0000000000000000060f18222b343d474f54565f606060606060605f56544f473d32271b100400000000000814212e3b4754616e7a868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686796d6053473a2d20140700000000000006111c263038424a505a61686e747b8084888b8e90919292929291908f8d8a87837e79726d665f574f473d342b20160c0000000000000b1825313e4b5864717e8b979f9f9f9b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9a9f9f9f978b7e7164584b3e3125180b000000000613202c3945515d677986929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9e9285786b5f5245382c1f1205000000000000000000000000000000080e161e252a30363a3c4347484b4e50515253535252504e4c494644403937322b262017110a02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c10151a1d24292c32373a4146474c4f4d48423930251b0f040000000000000000000815222e3b4754606a6f797979797979787368545b60696e74797d808284858685858482807d7a746e69625b504a42382e22190f00000000000009131d272f373d40423f3a3936302c27201d18130f0a040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009111a222a303940454e53575f62676d7175797b7d8082838485858685858483817f7d7b7874706d66615e56524c443e36302920180f07000000000000000000000000000000000000000000000000030b12181f252a2f35393a404446494c4e5051525253525251504e4c4a4746413c3a37312b28221c140b070000000000000000000000000000040f19242d353d4245464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646463e3c39332c241a100500000005101a242c33393c3e4646464646464646464646464646464644433f39322920160b0000000a141e2830383d4143464643413d3830281e140a000000000000000000000000000000000000000000000000000000000000000000020f1c2835424f5b6875828e939393938d8073675a4d4034271a0d010000000000000000000000000000000000000000010d1a26323e4a545e66696c6c6c6c6c6c6c6c6c66707d89939eab9f94909196a1ac9f93887c6f666c6c6c6c6c6c6c6c6c6a665f554a3e32261a0e010000000000000000010b151f333d454c5052535353535353534948433d342b21160a00000915202b353f474e5253535353535353535345403931271d1207000000000000000000061019222b353d4448495253535353535353524948443d352b21160b0000000000000714202d3946525e687679797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797976675d5145392c201306000000000000000a141e2630383f4450565e61696e73787b7e81838485868685858482807d7a76726d67605c544d453d352b22190e040000000000000b1825313e4b5864717e8b93939393938e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d93939393938b7e7164584b3e3125180b0000000004111d2935414b556b7885929393939393939393939393939393939393939393939393939393939393939285786b5f5245382c1f120500000000000000000000000000000000050c13191f252a2d32373b3c3f414345454646454543423f3c3a38342e2b27201b150b060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e12181d1f272b3035393a3f42413d3730271e14090000000000000000000006131f2b37434e5860626c6c6c6c6c6c6b68615750575e61676d7073767778797978777673706d67615e5751443f3830261c10070000000000040f1a252f3941484d4e4c4746413a38322c29241d1a15100c070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b232c343c424b51585f62696e747a7d8185888a8c8f9091919292929191908e8c8a8884807d79736d68615e565046413a322a2119100700000000000000000000000000000000000000000000060d151d24293136394045474a515356585a5c5e5e5f605f5f5e5d5b595754524c4847433c38332d261d18120b030000000000000000000000000915202b353f474e52535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353534a49453e362c22170c0000000c17222c363e45494a53535353535353535353535353535353514f4b443b32281d12060005101b26303a42494e4f53534f4e49423a30261b10050000000000000000000000000000000000000000000000000000000000000000020e1b2835414e5b6874818e9b9f9f998c807366594d4033261a0d000000000000000000000000000000000000000000000a16222d38434c545a5d6060606060606057606d7883919da5a499908384919ea6a49a9083786d6057606060606060605d5b554d43392d22160a00000000000000000000030d212b333b404445464646464646463c3b38322b22190f040000040f19242d353d424546464646464646464638342f271f150b0100000000000000000000071019232b32383b3d4646464646464646463d3b38322b23190f0400000000000005111e2a36414c565e6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c5d554b4035291d110400000000000000020c141e262e343e444c52575e61666a6f727476777879797978777573716d6865605d55504a423c332b23191007000000000000000b1825313e4b5864717e868686868686868175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a677480868686868686867e7164584b3e3125180b00000000010d18242f44515e6b7784868686868686868686868686868686868686868686868686868686868686868685786b5f5245382c1f1205000000000000000000000000000000000002080d141a1e20262b2e2f323536383939393938373533302d2c28231c1b150f0a030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c10161b1e25292d2e323534312c251e150c0200000000000000000000030f1b27323d464e545660606060606060595751444d53555c606367696b6b6c6c6b6a696663605d55534d453f342e261e140a0000000000000814202c37414b53595b5954524c48433d39352f2b261f1c18120e090300000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b242d353e464e545c606a6f757b81868a8e929797999b9d9d9e9f9f9f9e9d9d9b999796918d8985807a746e68615a524c443c332b2219100700000000000000000000000000000000000000000910181f272f353b42464b5153545c60636567696b6b6c6c6c6b6b6a686664615e5655534e46443f382f28231d150c0500000000000000000000000e1a26313d4751595e5f606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060575550483e33281c11040004111c28333e48505557606060606060606060606060606060605e5b564d44392e23170b000915212c38424c545a5c60605c5a544c42382c2115090000000000000000000000000000000000000000000000000000000000000000010e1b2734414e5a6774818d9aa7a5998c7f7266594c3f3326190c0000000000000000000000000000000000000000000005111c27313a434a4e50535353535353535e69727f8c95a0a99f93877c7e8a949faba0958c7f72695e53535353535353504f4a433b31271c110500000000000000000000000f1921292f343738393939393939392f2e2c27211910070000000008121b242b3136383939393939393939392c29231d150d0300000000000000000000000007111921272c2f30393939393939393939302f2c272119110700000000000000020e1925303b444c525f6060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060605f514b433a2f24180d010000000000000000020c141c2328323b41464d5354585f626567696b6c6c6c6c6b6a696664615e5653514b443f38302a2119110700000000000000000a1724303d4956626c7179797979797979756f65594d4034271b0e01000000000000000000000000010d1a2733404c58646e7479797979797979716c6256493d3024170a0000000000071d2a37434f5c67727779797979797979797979797979797979797979797979797979797979797979797873685d5044372b1e11050000000000000000000000000000000000000003090e12151b1f212225282a2b2c2c2c2c2b2a282623201f1c18120f0a04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f13191d202126282825201b140c030000000000000000000000000a16202b343d434749535761686b6c6c66635b5146464b515357565e61666a6c6c6a66605d56514c46423b3328231c140c020000000000000c1825313d48535d656866615e56544f4745403a37312c28231c1a140f0b0600000000000000000000000000000000000000000000000000000000000000000000000000000007101b242d363e474f585f666d737c82878e92989b9ea2a9a6a8aaa8a7a6a6a6a7a8a9a8a6a8a19e9a97928c86807a716c615e564d453c342b22190e0500000000000000000000000000000000000009121b222a313940454d53555d6065666d6f72747677787979797877767573716e6867625f5853504a423d342e271e170e0500000000000000000000111d2a36424e59636a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c64615a5045392d211408000814212d3945505a61646c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6a675f564b3f33271b0e000d1925323d49545e66696c6c69665e54493d3225190d0000000000000000000000000000000000000000000000000000000000000000010d1a2734404d5a6773808d9aa6a5988b7e7265584b3f3225180c00000000000000000000000000000000000000000000000a151f2831383e42434646464643505a616e7b86929fa7a2978d817476828f99a3a79f92867b6e61594f434646464644423e3931291f150b000000000000000000000000070f171e24282b2c2d2d2d2d2d2d2d23221f1b160f0700000000000009121920262a2c2c2d2d2d2d2d2d2d2d1f1c18120b030000000000000000000000000000070f161b2022232c2d2d2d2d2d2d2d2c2322201b160f0700000000000000000008141e29323b4146535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535345403a31281d130700000000000000000000020a1117202930363b4246484e5355585b5d5e5f5f5f5f5e5d5c5a5754524c47454039342e261e180f070000000000000000000815212d3945505a62646c6c6c6c6c6c6c68655d53483d3124180c00000000000000000000000000000b1824303c48535c64676c6c6c6c6c6c6c64625a5045392d21150800000000020f1b27333f4b5660676b6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b6861574c4034281c0f0300000000000000000000000000000000000000000002050a0f121515181b1d1e1f20201f1f1d1b19161312100c07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d111314191c1b19150f090200000000000000000000000000040f19222b32373b3c505c6873787979736d63574b434750555d60686d7276787977736d685f584e443b31292117110a02000000000000000e1b2734404d59656f75726d6863605953514b47433c38342e2a251f1b17110d08020000000000000000000000000000000000000000000000000000000000000000000000050e19222d363e485059616a6f7980878f93999fa3aaabaaaaa29f9d9b9a9a999a9a9b9d9fa2aaa9aba9a19e98928d857e756d685f574e463c342a20170c030000000000000000000000000000000009121b242c343c434b51575e61676d7175797c7f81838485858685858483817f7d7a77736f6a64605b544f454039302920170f05000000000000000000121f2c3845525e6a7579797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979716c6155493c3023170a000a1723303c4955616c71797979797979797979797979797979797771675b4f43362a1d10000f1c2835414e5a66707679797670665a4e4135281c0f0200000000000000000000000000000000000000000000000000000006050403020d1a2633404d596673808c99a6a4978b7e7164584b3e3125180b0203040506000000000000000000000000000000000000030d161f272d323536393935404b55616c75828f98a2a79f92857a6d6e7c87929fa9a2988f82756c61554b403539393736322d271f170d0300000000000000000000000000060d13181c1e1f202020202020201615130f0a040000000000000000080f151a1d1f20202020202020202013100c070100000000000000000000000000000000040b101316161f202020202020201f161613100b0400000000000000000000020d1720293036393b4646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464639352f281f160c01000000000000000000000000060e171e252a31363a3c4347484b4e50515253535252514f4d4a4746413a39352f28231c150c060000000000000000000005111d29343e48505658606060606060605b59534b41372c20140800000000000000000000000000000814202b36414a53585a60606060606060585650483e34291d110500000000000b17232e3a444e565c5e60606060606060606060606060606060606060606060606060606060606060605f5d574f453b2f24180c00000000000000000000000000000000000000000000000000030608090c0e10121213131212100f0c09070604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010507070c0f0e0c09040000000000000000000000000000000007101920272b3845525f6b788586867f7366574d4e535a61676d727a7f83858584807a6f6a5f564d42362a1f14080000000000000000000f1b2835424e5b6875817f7a756f6b65605d55534e4644403936302b27221b19130f0a040000000000000000000000000000000000000000000000000000000000000000020d17202b343e48505a616b707c838c92999fa4abaca7a09d999892908f8d8d8d8d8d8f909298989c9fa4abaaa29f97928a827a6e6960584e463c32291e150b00000000000000000000000000000008121b242d363e464e555d60696e74797e8285898b8d8f91919293929291908e8c8a8784807c76716c666059514b433b332921170e05000000000000000013202c3946535f6c79878686868686868686868686868686868686868686868686868686868686868686868686868686868686868686867e7164574a3e3124170b000b1724313e4a5764717d8686868686868686868686868686868684776a5e5144372b1e1100101c2936434f5c69768286868276695c4f4336291c10030000000000000000000000000000000000000000000000030608091211100f0e0d1926333f4c5966727f8c99a5a4978a7d7164574a3e3124170d0e1011121307060401000000000000000000000000000000040d151c2226292a2d2c3945515d67707d8a949eaaa0958b7f72686a73808d97a1aa9e938a7d70675d51453c31262a2926221c150d0500000000000000000000000000000002070c0f11121313131313131309090703000000000000000000000004090e111213131313131313131306040000000000000000000000000000000000000000000307090a1313131313131313130a09070400000000000000000000000000050e171e252a2d2e393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939392c29241d160d040000000000000000000000000000050d14191f252a2d31373a3c3f41434445464646454442403e3a3936302c29241d17110a030000000000000000000000000c17222d363e45494b535353535353534e4d4841392f251a0f040000000000000000000000000000030f1a252f3841484c4e535353535353534b49453e362d22170c00000000000006121d28323c444b4f51535353535353535353535353535353535353535353535353535353535353535352504c453d33291e1307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070f161b2a3743505d6a7683908f8276695e54585f626c71797f858c909292908c857c6f695e52463b3025190e020000000000000000101d2a3743505d6a76838c86817c77726d67625f5853514a46423b37332d29241e1b15100c0701000000000000000000000000000000000000000000000000000000000009141f29323d46505a626c717d8690959fa3ababa49f9b95908c898584828180808081828385888b8f93999fa2aaa9a19e938f847b6f6a60584e443b30271d12070000000000000000000000000006101a242d363f4850585f676d737b80858b8f9298989a9c9e9e9f9f9f9e9e9d9b999795908d88837e786f6b605c554d453b332920170c030000000000000013202c3946535f6c798692939393939393939393939393939393939393939393939393939393939393939393939393939393939393938a7e7164574a3e3124170b000b1724313e4a5764717d8a93939393939393939393939393939184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c1003000000000000000000000000000000000000000000040a0f1315161f1e1d1c1b1a1925323f4c5865727f8b98a5a3968a7d7063574a3d3024191a1b1c1d1e1f1413110d08010000000000000000000000000000030a11161a16202b37434e58606d7984919ea6a59d9083786d60606d7a85919ea6a59e9184796d60584e43372b20161a16110b0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d14191e20212d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d201d18130c040000000000000000000000000000000002080d141a1e21262b2e2f323436383939393938373633312e2d2a25201d18120c06000000000000000000000000000006111b242d34393d3e4646464646464642403d372f271d13090000000000000000000000000000000008131d262f363c4041464646464646463e3d39342d241b1106000000000000010c16202a323a3f434446464646464646464646464646464646464646464646464646464646464646464544403b332b21170d0200000000000000000000000000000000000000000000000000000000000000000000020608080c0f111213131312100e0c08070502000000020404060606060606000000000000000000000000000000000001040707131313131313130d0c0a07020000000000000000000000000002060808131313131313131310060603000000000000000000000000040a1b2835424e5b6875818e92877b6e6663646a6f767e848c92989d9f9f9d9791857b6e61564d41362a1e11050000000000000000101d2a3743505d6a768390928e89837e7a746f6a64605c54524d46443f3835302b271f1d18120e09030000000000000000000000000000000000000000000000000000030d1925303b444e58626c717e879298a0a7afa79f99938e88837f7c79777574737373747577797c7f83878d92989ea5ada59e9691857c6f6a5f564c42392e23180c030000000000000000000000030c18222c363f48505a616a6f7980868d92979c9fa2aaa7a9a8a7a6a6a6a7a8a9a8a6a7a09d9a94908a837c746d675e574d453b32291e150a0000000000000013202c3946535f6c7986929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f978a7d7164574a3e3124170b000b1724313e4a5764717d8a979f9f9f9f9f9f9f9f9f9f9f9f9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c10030000000000000000000000000000000000000000070f161b1f22232c2b2a2928272625323e4b5865717e8b98a4a396897c706356493d3025262728292a2b2c21201d19130c040000000000000000000000000000000508131e28323a47535f6a73808d96a1aa9e93897d70665c5d67717e8b949faba1968d80736a5f53473e32281e13080500000000000000000000000000000000000407090a13131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313130a0907040000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080e1114142020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202013110d07010000000000000000000000000000000000000003090e12151a1f212225282a2b2c2c2c2c2b2a29272421201e1913100d07010000000000000000000000000000000009121b22292d3031393939393939393534312c251d150b0100000000000000000000000000000000010b141d252b3033343939393939393931302d29221b12090000000000000000040e1820282e33373839393939393939393939393939393939393939393939393939393939393939393837342f2921190f0600000000000000000000000000000000000000000000000000000000000000000003090e121415191b1d1f1f201f1f1d1b191514120e09030b0e10111313131313130b0b0905010000000000000000000001080d111314202020202020201a1916130d0700000000000000000000030a0f1214151f202020202020201c13120f0b0600000000000000000000000c1926333f4c5966727f8c998f8279727071757c838a91969fa2aaa3a3a9a1978e8174685e5246392d2014060000000000000000101d2a3743505d6a7683909d9b95908b85807b76716d66615e5753504945413a37322c29241d1a15100b060000000000000000000000000000000000000000000000010b151f2a36424d56606a717e889299a2aaafa49c959087817c77726f6d6668676766676768666c6f72767b80868e939fa3aaa8a09792867c6f685e544b40342820150900000000000000000000000b151e2a343e48505a626c717c848c92989fa2a9aca8a8a09e9c9a9a999a9a9b9d9fa3ababaaa69f9c95908781796e695e574d443b30261c110600000000000013202c3946535f6c7986929facacacaea9a7a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a4978a7d7164574a3e3124170b000b1724313e4a5764717d8a97989898989898989b9ea6b0aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c10030000000000000000000000000000000000000007101920272b2e2f3938373635343331313e4a5764717d8a97a4a295897c6f6256493c3132333435363738392d2c29241e160d040000000000000000000000000000020c1924303a44505a626e7c87929fa8a2988e81756b605455606c78839099a4a89f92877c6f625a50443a3024190c03000000000000000000000000000000040b101316162020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020171614100b05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000205070813131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313060401000000000000000000000000000000000000000000000002050a0f121515181b1d1e1f20201f1f1e1c1a171413110d080401000000000000000000000000000000000000000911171d2124252d2d2d2d2d2d2d282724201a130b03000000000000000000000000000000000000020b131a202427272d2d2d2d2d2d2d2524211d17110900000000000000000000060e161d23272a2b2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2b28241e170f070000000000000000000000000000000000000000000000000000000000000000060b0f151a1e212225282a2c2c2d2c2b2a282522211e1a1410171b1d1e202020202020181715110c060000000000000000040c13191d202d2d2d2d2d2d2d2d2625231e19120a0100000000000000060e151a1f21222c2d2d2d2d2d2d2d29201f1c17110a020000000000000000000a1623303d495663707c8998948f837e7d7e828790949ea1a19e9996979a9f9f92877b6e6154473b2d22170b0000000000000000101d2a3743505d6a7683909da7a09d98928d88837e79736e6963605b53524c47433c38352f2b261f1c17110e0802000000000000000000000000000000000000000007121d27313946525e696f7c86929aa3ababa39f928d837c756f6a6662605c545a5a5a5a5a545b606265696e747b818a9298a2a9a9a19891847a6e665c51453c31261a0e0500000000000000000007121d27303c46505a626c717e8691969fa2aaaba39f9b9796918f8e8d8d8d8d8f9092999a9ea1a9aba79f9a938d837b6e695e564c42382e23170c04000000000013202c3946535f6c7986929facb9aea49d9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a978a7d7164574a3e3124170b000b1724313e4a5764717d8a8b8b8b8b8b8b8b8b8f939eaaaa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c1003000000000000000000000000000000000000040f19222b32373b3c4544434241403f3e3d3d4a5763707d8a96a3a295887b6f6255483c3d3e3f4041434445463a39352f281f160c01000000000000000000000000000a141e2935414c56616c76828f99a3a89f92867b6e61594f505b656f7c87939fa9a3999082766c62564c4135291e150a0000000000000000000000000000070f161b2022232d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2323201c16100800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030608090c0e10111213131312110f0d0b070705010000000000000000000000000000000000000000000000060c11151718202020202020201b1b18140f0901000000000000000000000000000000000000000001080f14181a1b20202020202020181715110c06000000000000000000000000040c12171b1d1e20202020202020202020202020202020202020202020202020202020202020201f1e1c18130d0600000000000000000000000000000000000000000000000000000000000000020a11171b1f262b2e2f32353738393939383735322e2d2b261f1c23272a2b2d2d2d2d2d2d2524211d181109000000000000040d161e24292c393939393939393933322f2a241c130a000000000000060f1820262b2e2f3939393939393939362d2b28221c140b0200000000000000000713202d3a4653606d7985929f95908b898b8f93999fa39f97918c8a8a8e9299998c7f7265544a3f33281c0f0300000000000000101d2a3743505d6a768390979d9fa7a29f9a94908a85807b75706c65605d56544e4745403937312b28231c1914100b040100000000000000000000000000000000000c18232f3943505a616e7b859198a3acaca399928b80786f6a625f585653504a4e4d4d4d4e4a505355575e61696e757e869297a2aaaaa1969082786d60574e42372b21170b0000000000000000000c18232e39424e58616c717f8a9298a0a8aba49f99928e8a8784828180808081828486898d92979ea1a8aca49f9590847b6e685e544a3f342820150a000000000013202c3946535f6c7986929facb9a99d928d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8a7e7164574a3e3124170b000815222e3b4855616e7b7f7f7f7f7f7f7f7f7f818f9ba8aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c10030000000000000000000000000000000000000a16202b343d4347495251504f4e4d4c4b4a49495663707c8996a3a194887b6e615548494a4b4c4d4e4f5051524745413a31281e130800000000000000000000000006111c26303845525d68717e8b949faba1968c8073695e534749535f6a74818d97a2ab9f948b7e71685d52463d30261c110600000000000000000000000007111921272c2f303939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939302f2c27211a11080000000000000002080d101213131313131313130707040100000000000000000000000000000000000000000000000000030613131313131313131313120f0a05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005080a0b131313131313130f0e0c080400000000000000000000000000000000000000000000000003080b0d0e131313131313130b0a080500000000000000000000000000000001060b0f1111131313131313131313131313131313131313131313131313131313131313131312110f0c070200000000000000000000000000000000000000000000000000000000000000060b141b22272b31373a3b3f4244454646464543413f3b3a37312c282e33363739393939393932312e29221b120900000000010c1620282f35394646464646464646403f3b352e251c120700000000040d18222a31373a3b4646464646464646433938332d261d140a000000000000000006131f2c3845515c6774818d98a09d9896979b9fa49f99928d85807d7d818792998f8276665b5044382b1f1206000000000000000c1926323f4c5965727f858b90959b9fa3a69f9c97918c87827d78726d6862605853514b47423c38342e2a251e1b16110d0801000000000000000000000000000004101c2934404b55616c76828f97a1aaafa49a92877e736d665f58534e4946443f41404040413f4446484d53565e616c717c859298a2aca89f948d80736a5f53473e33281c10040000000000000004101c2834404b545f6a717e87939fa2aaa9a199938e86827e7a777574737373747577797c80858b91969da5afa79f9691847a6e665c50443c32261b0f040000000013202c3946535f6c7986929facb3a79a8d80808080808080808080808080808080808080808080808080808080808080808080808080807c6f6255483c2f221509000714212d3a46535f696e7272727272727272727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c10030000000000000000000000000000000000030f1b27323d464e54565f5e5d5c5b5a595857565556626f7c8995a2a194877a6e615455565758595a5b5c5d5e5f54524c433a2f24190d0100000000000000000000000b17232e38424e58606d7a85929ea6a69e9184796d60574d42414e58616d7a85929ea7a69e92857a6d61584e42382e23170c0200000000000000000000040f19232b32383b3d46464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646463d3c38332c231a10050000000000060d14191c1f1f202020202020201413110d0801000000000000000000000000000000000000000000060c1012202020202020202020201e1b161009010000000000000002080d101213131313131313090806030000000000000000000000000000000000000000000000010407071213131313131313131313120f0a050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080f181d262d33373c4247484c4e505252535252504e4c4846423c3834393f43444646464646463e3d3a342d241b110600000008131e28323a414553535353535353534d4b4740372e24190d020000010c161f2a343c43474852535353535353534f46443f382f261c11060000000000000004101c2834404b55616e7b86929fa4a5a3a4a7a09d948f868079737070747d87939285796c605346392d201306000000000000000b1825313e4a57626d72797e83898e92999ea1a8a19e99928f89847f7a746f6a65605d55534d46443f3836302c27201d19130f0a0400000000000000000000000006131f2c3845515c67707d8a949fa9b0a69f93887e716c605c544e47433c3a38342e3433342d3338393c42464d525a616a6f7c86929aa4afa69f92877b6e62594f44392d20150a0000000000000006131f2c3845515c666f7c869299a4aea8a0979187817b75716d6869676766676768676d7073797e848e939fa4aca8a0969083786d60584e43372b20150a0000000013202c3946535f6c7986929facada0938679737373737373737373737373737373737373737373737373737373737373737373737373736f6a5f53473a2e2115080005121e2a36424d575f616565656565656566727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c1003000000000000000000000000000000000006131f2b37434e5860626c6b6a696867666463626160626f7b8895a2aa93867a6d606162636465666768696a6b6c605d564c4135291d11040000000000000000000003101c28343f4a54606a74818d97a1ab9f948a7e71675d51453b3c46525e68727e8b95a0aca1978e81746a60544a3f34281f1409000000000000000000000b16212b353d44484953535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353534a48443d352c21160b000000000810181f25292b2c2d2d2d2d2d2d2d2d201d19130c04000000000000000000000000000000000000030a11171c1f2d2d2d2d2d2d2d2d2d2d2b27211b130a010000000000060d14191c1f1f2020202020201515120f0a030000000000000000000000000000000000000001080d1113141f202020202020202020201e1b161009010000000000000004090e1112131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313130b0a0804000000000000000000000001060b0f111113131313131207060300000000000000000000000000000000000000000000000000000000000000000000060606060606060503000000020608080c0f111213131312100e0b08070502000000000000000000000000000000000000000000000000000008111a212a2f383f44464d5355585b5d5f5f605f5e5d5b5855534d46443f444b4f515353535353534b4a453f362d22180c0100010d19242f3a444c525f606060606060605957524940352a1e1307000007131d28313c464e53555f606060606060605c53504a42382d22170b00000000000000000c18232e3946525e69727f8b929b9e9f9e9b959089827b736d6763646b74818e98887b6e6255483b2f221508000000000000000916222e3a46515b62676d71777c81868c91969c9fa6a39f9b96918c86817c77716d67615f5753504a46413b38322c29241e1b15100c0700000000000000000003101c28343f4a54606d7984919ea6b0aa9e948c7f736c625a504a423c37322d2c282327272722282b2d31363b42465058606a707e88939fa8aea3998f82766c6155493c31261b0f00000000000004111d2935414b55606d79839098a3aba9a09691857d746e6964615d565b5a5a5a5a555c6063666d7179818b939aa4afa89f958c80736a5f54473d32271b0f0100000013202c3946535f6c7986929facada093867a6d676767676767676767676767676767676767676767676767676767676767676767676767625f584e43372b1f120600020e1a26313b454d53555858585858585966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c100300000000000000000000000000000000000815222e3b4754606a6f7877767574737271706f6e6d686e7b8894a1a39886796c6c6d6e6f7071727374767778796d685d5245392c201306000000000000000000030c19232b3844505c666f7c87939fa9a3998f82766c61554b403335414c56606c7883909aa4a99f93887c6f665c50443b30251a0d03000000000000000004101b27323d474f5456606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606056554f473d33271c1004000006101a222a3035383939393939393939392c29241e160d0400000000000000000000000000000000030c151c23282c3939393939393939393937332c251c1309000000000810181f25292b2c2d2d2d2d2d2d22211f1b150e060000000000000000000000000000000000040c13191d20212b2d2d2d2d2d2d2d2d2d2d2b27211b130a010000000000080f151a1d1f20202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020171714110c050000000000000000040c12171b1d1e20202020201f1312100c060000000000000000000000000000000000000000000000000000000105090b0b13131313131312120f0c04090e121415191b1d1f1f201f1f1d1b181414110e0802000000000000000000000000000000000000000000000008111a232c333c41495053575f6265686a6b6c6c6c6b6a6865615f5753504a4e565b5e606060606060585650483f34291d11050004111d2935414c565d6c6c6c6c6c6c6c6c66635b52473b2f23160a00071018242f3a434e585f626c6c6c6c6c6c6c6c69605b544a3f33281c0f030000000000000007121d2a36424d56626d7380898f9292918f8a837d766e69605d5559626f7c89988a7d7063574a3d3024170a0000000000000006121e29353f4951555c60646a6f757a7f848a8f949a9fa2a8a09e98928e88837e79736e6964605c54524c48443d39352f2b261f1c18120b030000000000000006121f2b3844505c66727f8c96a0acaea2988f82776c605a50443f38302b26201f1c171a1a1a171c1f20252a30363e464e58616c73808d96a1acab9f948a7d7064584e43372b1d120700000000000613202c3945515d67737f8c95a0aaada19791847b706b615e5754524c4e4d4d4d4e4b5153545c60676d747f88939fa5afa79f92877c6f62584e43372b1d120700000013202c3946535f6c7986929facada093867a6d605a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a55534e463c31261b0f03000009141f2a333b4246484c4c4c4c4c4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c100300000000000000000000000000000000000916232f3c4956626f7c8584838281807f7e7d7c7b7a79787a8794a19f92867978797a7b7c7d7e7f8081828384867a6d6054473a2d2114070000000000000000000b151e2a36414d56606d78839099a4a99f92877c6f625a5043392f303a44505b666f7c87939faaa49a9083786d60574d42362a1f150b01000000000000000713202c38444f5960636c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6361594f44382c20140700020d18222c343b414446464646464646464639352f2820160c010000000000000000000000000000000a151e262e343846464646464646464646433e372e251b1005000006101a222a303538393939393939392f2e2b2620181006000000000000000000000000000000040d161e24292c2d383939393939393939393937332c251c13090000000009121920262a2c2c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2423211c171008000000000000060e161d23272a2b2d2d2d2d2d2c201f1c17110a03000000000000000000000000000000000000000000000000060c111517182020202020201f1e1c1810151a1e212225282a2b2c2d2c2b2a282521201e19140f0a040000000000000000000000000000000000000000060f1a232c353e454d535b6064696e72757778797979787674726e6964605c545660676a6c6c6c6c6c6c65625a50453a2e211509000713202c3945525d687679797979797979736d63574b3f3225190c050e19222935404b555f6a6e7979797979797979766c665b5044382b1f120600000000000000000e1925303b44515b636e737d82858684827d78706b625f57514b53606d788686867f7265584c3f3225190c00000000000000010d18232d373f434b5153586062686d73787d82888d92989da0a8a29f9b95908b85807b76706d66615e56544f4745413a37312c28231d150c030000000000000713202d3a4653606d7884919ea8b2a99f92867b6e655b50483e342e261e1b1312100c060d060b0f12131a1f252a343d46505a606d7984919ea8b0a69c8f83766a5f5347392e23180c00000000000714212d3a4754606d7a85929fa7b0a69e92857b6e696059524d47464141404040414045464b51555d606d727f8b939ea9afa3998f82766a605447392f24180c00000013202c3946535f6c7986929facada093867a6d60534d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4847433c342a20150a000000030e18212a31363a3b3f3f3f3f3f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c100300000000000000000000000000000000000916232f3c4956626f7c8991908f8e8d8c8b8a898887868583919daa9f92878385868788898a8b8c8d8e8f9091877a6d6054473a2d211407000000000000000007121d27303946525e68727f8b95a0aba1978d80746a5f53483e312728333f4a54606b74818e98a2aca0958c7f72695e52463e31271d1207000000000000000916222f3b4854606b707979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979706b6155483c2f2316090008141f2a343e464d5152535353535353535345413a32281e1308000000000000000000000000000006111c2630383f44535353535353535353534f4940372c21160a00020d18222c343b4144464646464646463c3a37312a22180e0300000000000000000000000000010c1620282f35393a4546464646464646464646433e372e251b1005000008121b242b3136383939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393931302d28221a120800000000040e1820282e3337383939393939392d2c28231c150c03000000000000000000000000000000000000000000000911181d2124252d2d2d2d2d2d2c2b28241c1f262b2e2f32353738393939383735312e2d2a251f1b150d07010000000000000000000000000000000000020b18212c353e474f575f656c71767b7f8183858586858583817f7b77716d665f58677277797979797979716c62564a3d3124170b000714212d3a4754606d7a86868686868686807366594d4033261a0d0b16202b343d45515d676e7c868686868686868682796c605346392d201306000000000000000009141f29323f49525c636b707578797875706c656059534d4544505c6674797979726d62564a3e3124180b000000000000000007111b252d31394045474e54565e61666d70767b81858b91959b9fa3a79f9d97928d87827d78736e6863605954514c47433c38342e271e150b000000000005111e2a36414c5664707d8a96a1adada1978c7f72695e53493f3628231c140c0a060300000000000306090e1419222b343e45515d67717e8a96a0acab9f94887c6f62544b4034281c100400000006131f2b37434e5866727f8c97a2adaa9e948a7d70695f574f46423b3935303433342e34383a40454b515b626d74818e97a1adab9e94897c6f62554b4035291d1004000013202c3946535f6c7986929facada093867a6d6053474040404040404040404040404040404040404040404040404040404040404040403c3a37312a22180e0400000000060f181f262a2d2e323232333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c100300000000000000000000000000000000000916232f3c4956626f7c89959d9c9b9a99979695949992919195a0aca399929091929995969798999a9b9c9d93877a6d6054473a2d21140700000000000000000c18232e39424f59616e7b85929fa7a79e92857a6d60584e43362c1f222d38424f59616e7a86929fa7a79f92867b6e61594f43392f24180c030000000000000a1623303d495663707d86868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686867d7063564a3d3023170a000d1925303b4650585d5f606060606060605f524c443a2f24190d01000000000000000000000000000c17232e38424a505f60606060606060605f5a52493e33271b0f0008141f2a343e464d51525353535353534847433c342a20150a0000000000000000000000000008131e28323a41454752535353535353535353534f4940372c21160a00040f19242d353d4245464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646463e3c39332c241a10050000010c16202a323a3f43444646464646453a38342e261e150a00000000000000000000000000000000000000000009121b22292e313239393939393939373430282c31373a3b3f4244454646464543413e3b3936302b272018130c04000000000000000000000000000000000a141d2a333e474f5961696e787e83888b8e909292939291908e8b88837e786f6a606a77848686868686867e7165584b3e3225180b000714212d3a4754606d7a8793939393938c807366594d4033261a0a141d28323d46515b606d798391989393939991847a6d665b5044382b1f12060000000000000000020d17202d37404952596063686b6c6b6864605b534f47423c3f4a545c6a6c6c6c65625b51463a2e2215090000000000000000000a131b1f272f34383d43474c52545c60646a6e747a7f84898f92999ea1a9a29f9a938f8a847f7a75706b65605d55534e4645403930271d1207000000000714202d3946525e6876828f9ca8b2ab9e9185796d60574d41382d2417110a02000000000000000000000002091019222935404b55606c7884919dabb0a69a8e8174665c5145382c1f13060000000815222e3b4754606a7884919ea9b1a79c8f82756c61574d453d36302d292427272723282c2e343a4145515b606d7a85929eaab0a69b8e8275675d5145392c1f1306000013202c3946535f6c7986929facada093867a6d6053473a34343434343434343434343434343434343434343434343434343434343434342f2e2b2620181006000000000000060e141a1e2122252526333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c100300000000000000000000000000000000000916232f3c4956626f7c8995a2a7a6a5a4a3a2a1aaa29f9e9da0a7b1aba39f9d9e9fa2aaa2a3a4a4a5a6a7a093877a6d6054473a2d2114070000000000000004101c2834404b54606b75818e98a2aca0958b7e72685d52463c31241a1c262f3d46525e68727f8c95a0aca2988e81756b61554b4035292015090000000000000a1623303d495663707c89939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393897d7063564a3d3023170a00101c2935414d5862696c6c6c6c6c6c6c6c6c5d564c4135291d110400000000000000000000000003101c28343f4a545c6c6c6c6c6c6c6c6c6c6c645a4f43372b1e12000d1925303b4650585d5f60606060606055534e463c31261b0f030000000000000000000000030c19242f3a444c52545e6060606060606060605f5a52493e33271b0f000915202b353f474e52535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353534a49453e362c22170c000006121d28323c444b4f5153535353535246443f3830261c11060000000000000000000000000000000000000006111b242d343a3d3e4646464646464544403b34383c4247484c4e505252535252504e4b4746413b373229241d160d05000000000000000000000000000006111b262f3c454f59616b707b838a9095989b9d9e9f9f9f9e9d9b9895908b837c706b67798592939393938a7d7164574a3e3124170b000714212d3a4754606d7a87939f9f9f998c807366594d4033261a111c262f3a444e58626d75818e95a0aaa59f92877c6f685e544a3f33281c0f03000000000000000000050e1b252e3740474f54565c5f5f5e5c57535049413d373138424a50535f6060585651493f34291e1206000000000000000000010a0d151d23292c32383a41464a5053585f62676d72777d82878d92979d9fa7a49f9c96918c86827c77726d67625f5853514b42392e23180c000000000814212e3b4754616e7a87939facafa3998c7f72675d51453b2f261b1206000000000000000000000000000000071018242f3944505b66727e8b99a3aeac9f9285796d6053463a2d2013080000000916222f3c4955626f7c8896a1acaca095897c6f625a50453b332a25201d191a1a1a181c1f23282f353f45515d67727f8b98a2aeac9f9286796d6053473a2d201406000013202c3946535f6c7986929facada093867a6d6053473a2d2727272727272727272727272727272727272727272727272727272727272722211f1b150e06000000000000000003090e121415191926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c100300000000000000000000000000000000000916232f3c4956626f7c89959b9a999998979695949892919095a0aba39992909192989495969798999a9b9c93877a6d6054473a2d211407000000000000040d1a242c3845515c66707d89939eaaa59d9083786c60564c41342a2012141d2a36414c56606d7883919da5aa9e938a7d70675d51453c31261a0d0400000000000a1623303d495663707c89969f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f96897d7063564a3d3023170a00121f2b3844515d6974797979797979797976685d5245392c20130700000000000000000000000006121f2c3844505c66767979797979797979766c5f5346392d201300101c2935414d5862696c6c6c6c6c6c6c625f584e43372b1f120600000000000000000000000b151e2935414c565d606b6c6c6c6c6c6c6c6c6c6c645a4f43372b1e12000e1a26313d4751595e5f606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060575550483e33281c1104000b17232e3a444e565c5e60606060605f53504a42382e23170c000000000000000000000000000000000000010c18222d363f454a4b53535353535352504c454044464e5355585b5d5e5f605f5e5d5b5854524d47433d352f281f170f05000000000000000000000000000b17222d38414d57616b707d8690959d9fa7a8aaaaa39f9e9e9e9fa3a09d9590867d706d798698a29f9f96897d7063564a3d3023170a000714212d3a4754606d7a8793a0aca6998c807366594d4033261a17222d38424c56606a727f8b939ea8a79e938b7f726a60564c42382d22170b000000000000000000000009131c252e353d4448494f5253514f4a46443f382f2b2630383f44465353534c4a463f372d23180d010000000000000000000000030b12181c1f272b3036383f44464e53555d60656b70757b80858b90959b9fa3a8a19e99928e89847f7a746f6a64605c544b4034281c10040000030f1b27333f495364717e8b9aa4afac9f92867a6e61554b4033291d140a000000000000000000000000000000000007121d28333f4a54616d7a86929facaea298897d706356493d2f24190d0100000d1a2633404d596673808c99a8b2aa9d9083776a6054483e332a211a14110d080d070c1013181d242935414c55606d7985929fabaea2988a7d7164574a3e2e23170b000013202c3946535f6c7986929facada093867a6d6053473a2d201a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1515120f0a040000000000000000000000020507080c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c100300000000000000000000000000000000000916232f3c4956626f7c89908f8e8d8c8b8a898887868584839099a49f9287838485868788898a8b8c8d8e8f90877a6d6054473a2d2114070000000000010c161f2a36424d57606d7984919da5aa9e93897c6f665b50443a3022180e0b1925303b44515c66707d89939eaaa59e9184796d60574e42372b20160c01000000000a1623303d495663707c8996a3acacacb5afaca7a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a396897d7063564a3d3023170a00131f2c3946525f6c7986868686868686867a6d6054473a2d2114070000000000000000000000000713202d3a4653606d788686868686868686796c605346392d201300121f2b3844515d697479797979797979766a5f53473a2e2115080000000000000000000007121d27303945525d686d78797979797979797979766c5f5346392d201300111d2a36424e59636a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c64615a5045392d211408000f1b27333f4b5660676b6c6c6c6c6c6c605c544a3f34281c1003000000000000000000000000000000000005111d29343f485056586060606060605f5d574f4a5153575f6265686a6b6c6c6c6b6a6864615e56544e45413a312921170f050000000000000000000000030f1b27333f49535f69707d8792989fa7aba7a09d9898929191919299989d9f9892877d707a8794aab4a396897c706356493d3023160a000714212d3a4754606d7a8793a0ada6998c807366594d403326172128333f4a545e686f7c87929fa5aaa0958e81756d62584e443a2f261c11060000000000000000000000010a131c232b33383c3d42454645423d3937332d261d1e262e34383a4646463f3e3a342d251b11060000000000000000000000000001070c10161b1e252a2e34383c43474b5154596063696e73797e83888e92989ea1a8a39f9b95918b85817c76716d665c5145382c1f1306000005121f2b3744505b6575818e9bacb6a99c8f8276685e5243392f21170b020000000000000000000000000000000000010b17222d3846525d6875828f9ca8b4aa9a8d807367564c4135291d11040005111e2a36424d576976838f9ca9b5ab998c7f7366584e43362c21180f0905010000000004070c1319242f3a45515d6774818e9aa7b4aa9b8e817468544a3f34281c10030013202c3946535f6c7986929facada093867a6d6053473a2d20140d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0908060300000000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c100300000000000000000000000000000000000916222f3c4955626f7c83838281807f7e7d7c7b7a7978777887939f9e9184787879797a7b7c7d7e7f80818283847a6d6054473a2d211407000000000007131d28313a46535f69737f8c96a0aca2988e81756b60544a3f32281e100608141e2834404a54606b75828f98a2aca0968c80736a5f53473e32281e1308000000000a1623303d495663707c8996a7b1bbb5aba39f9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a96897d7063564a3d3023170a00131f2c3946525f6c7985929393939393877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693939393939386796c605346392d201300131f2c3946525f6c79868686868686867c6f6255483c2f221509000000000000000000000c18232e39424f59606d7a85868686868686868686796c605346392d201300121f2c3845525e6a7579797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979716c6155493c3023170a00111d2a37434f5c6772777979797979786d665c5044382c1f120600000000000000000000000000000000000915212e3a45505a62656c6c6c6c6c6c6c696157545c60646a6e72757778797979787674716e68626058514b433b332921170d030000000000000000000005121f2b3744505b656e7b859299a2aaaaa39f95918b888584848586888b90959e9992857b7b8894a1aea295897c6f6256493c2f231609000714212d3a4754606d7a8793a0ada6998c807366594d4033261e29333b44505b666d7a849199a3aea2989083796d605b51463d32281d140a00000000000000000000000000010a111921272c2f303538393835312d2b27221b14151c23282c2d39393932312e29231b13090000000000000000000000000000000000040a0f13191c23282b31373a4145474f54575e61676d71767c81868c91969c9fa4a7a09d98928e88837e796d6053463a2d20130700000613202d394653606c7885929eabb3a9988b7f7265564c4131271d0f050000000000000000000000000000000000000006111c2935414c5665727f8b98aab4aa9d918477685d5245392c201306000714202d3a46525e697885929eabafa399897c6f6256493d32231a0f060000000000000000000108131e2935404b5564707d8a97a9b3aa9d908377665c5044382b1f12060013202c3946535f6c7986929facada093867a6d6053473a2d201407010101010101010101010101010101010101010101010101010101010000000000000000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c100300000000000000000000000000000000000815212e3b47535f6a6f77767574737271706f6e6e6d66667885929e9d9083766b676d6e6f7071717273747576776d675d5145392c20130600000000020b18242f3a43505a616e7b86929fa8a89f92867b6e61594f42382d20160c00020c18232e39424f59616e7b86929fa8a89f92867b6e625a50443a2f24190c020000000a1623303d495663707c8995a0a9b3afa399928d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d897d7063564a3d3023170a00131f2c3946525f6c7985929f9f9f9f93877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d7986939f9f9f9f9386796c605346392d201300131f2c3946525f6c79859293939393887b6f6255483c2f22150900000000000000000005101c2834404b54606b74818e979393939393939386796c605346392d20130013202c3946535f6c79878686868686868686868686868686868686868686868686868686868686868686868686868686868686868686867e7164574a3e3124170b00111e2b3844515e6b7784868686868686786d6053463a2d20130800000000000000000000000000000000000b1724313d4a56626c71797979797979787369585f666d71777b7f8183858586858583817e7b756f6a605d554d453b33291f150b010000000000000000030f1b27333f4953606c77829097a2abaaa398928b837f7b79787778797b7f83899196978f827c8895a2aea295897c6f6256493c2f231609000714212d3a4754606d7a8793a0ada6998c807366594d40332627303b454f59606c78828f96a1aba49f92857b6e675d51493f342b20160b02000000000000000000000000000000070f161c202223292c2c2b2924201f1b17110a0a11171c1f202c2d2d2524221e181109010000000000000000000000000000000000000002080d11171c1f262b2f35393d44484d53555c60646a6f747a7f848a8f939a9fa2aaa29f9a94908a8376695d5043362a1d1000000815222e3b4855616e7b8897a1adada197887b6e6255483b3022150b0000000000000000000000000000000000000000000d1924303c4855626f7b8898a2aeaca095877a6d6054473a2d211407000814212e3b4754616e7b8797a2adac9f92867a6d6053473a2d2014070000000000000000000000010d18242f3b4754616e7a8797a1adac9f9286796d6053463a2d2013070013202c3946535f6c7986929facada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c1003000000000000000000000000000000000006131f2b37434e585f626a69686766666564636261605c6a7784919d9c8f8275695c60616263646566676869696a605d554c4135291d1104000000000a141d2935404b55616c75828f98a3aca0968c7f73695e52473d2f261c0e04000007121c27303d46535e69737f8c96a0aca3998f82766c61564c4135291e140a0000000714202d3a4753606d79839097a2acac9f928780808080808080808080808080808080808080808080808080808080808080808080808080807b6e6255483b2f22150800131f2c3946525f6c7985929facaca093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929f9f9f95887b6f6255483c2f2215090000000000000000050e1b242c3845515c666f7c88939fa99f9f9f9f9f9386796c605346392d20130013202c3946535f6c798692939393939393939393939393939393939393939393939393939393939393939393939393939393939393938a7e7164574a3e3124170b000e1b2734414e5a6774818d93939398897c6f6356493c2f24190d01000000000000000000000000000000000b1825323e4b5865717e868686868686857866616a6f787e83888b8e909192939291908e8b86827c746d675e574d453b31271d1207000000000000000005121f2b3744505b65717e8a949fa9aea39892867f78726e6c656b666d6e72767d849094948c7f8c99a5afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d4033232e39424d57616b73808c949fa8a69d928a7e71695f554b40372d22190e050000000000000000000000000000000000050b101316161c1f201e1c1713120f0b060000060c101213202020191815120d06000000000000000000000000000000000000000000000000060b10151a1d24292c33383b42464b5153586062686d72787d82878d92989da0a7a69f9c9084776a5d5144372a1e1100000a1724303d4a5763707d8a96a9b3ab9e928578695f53473a2e2114030000000000000000000000000000000000000000000813202d394653606c7985929facb1a795897c6f6256493c2f231609000916232f3c4956626f7c8995a9b3aa9e918477675d5145382c1f13060000000000000000000000000714202d3946525e687885919eabaea398887b6e6255483b2f2215080013202c3946535f6c7986929facada093867a6d6053473a2d20140c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c070604010000000000000000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c10030000000000000000000000000000000000030f1b26323c464e53555e5d5c5b5a595857565554535d697683909c9b8e8174685b535455565758595a5b5c5d5e54514c433a2f24190d0100000006111b262f3845515d67717e8a949eaaa69e9184796d60574d42352b1d140a000000000b151e2a36424d57606d7984919ea6ab9f948a7e71685d52453d30261c1106000006131f2c3945515d676e7b85929aa4afa3998e81747373737373737373737373737373737373737373737373737373737373737373737373736e695f53473a2e21140800131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f22150900000000000000020c16202b37424d57606d7983919aa4afacacacac9f9386796c605346392d20130013202c3946535f6c7986929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f978a7d7164574a3e3124170b000a1724313d4a5764707d8a99a3aa998c807366564c4135291d1104000000000000000000000000000000000b1724313e4a5764717d8a939393939786796d6c707c838b9095989b9d9e9f9f9f9e9d9b99928f8781796e695e574d43392f24180c03000000000000000613202d394653606c7883909da6b0a79f92867d726c6662605b545c6062656b707a8290959286929facafa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d40332834404b545e69707d88939fa6a99f948d80736c61574d43392f251b100700000000000000000000000000000000000000000407090a0f1213120f0a0605030000000000000306071313130c0b090601000000000000000000000000000000000000000000000000000000030a0f13181d20272c3136394045464e54565e61666c70767b80858b90959ca4aa9d9084776a5d5144372a1e1100000c1926323f4c5965727f8c98a5b2a99c8f837669574d42372b1e120600000000000000000000000000000000000000000006121f2b3844505b667783909daab1a4978b7e7164584b3e3125180b000a1723303d4a5663707d8996a3b0a99c90837669554b4035291d100400000000000000000000000005111e2a36414c566a7683909da9b4aa96897c6f6356493c302316090013202c3946535f6c7986929facada093867a6d6053473a2d2019191919191919191919191919191919191919191919191919191413110d0701000000000000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c10030000000000000000000000000000000000000a15202a343c43474951504f4e4d4c4b4a4948474f5b6875828e9b9a8d8073675a4d4748494a4b4c4d4e4f50514745413a31281e1308000000000b17222d38414e58606d7984919ea6ab9f948a7d70675c51453b3023190b0200000000030c1a25313b45515c67707d8a949eaba69e91857a6d60584e42382e23170b000004101d2935404b555f69707d88939fa6ab9d938b7e716a67676767676767676767676767676767676767676767676767676767676767676767625f574d42372b1e120600131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f2215090000000000000008131e28323a47535f69737f8c95a0acb6b8b9beac9f9386796c605346392d20130013202c3946535f6c7986929facacacaea9a7a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a4978a7d7164574a3e3124170b000714212d3a4754606d7a86929fa99d908376685d5245392c201307000000000000000000000000000000000a1723303d4a5663707d89969f9fa994877a6d707e8690959da09e9c9b9a9b9c9ea1a9aba39f9a938e847b6e695e554b403529201509000000000000030f1c28333f4a5463707d8995a0acab9f958b7e716b605b5453504a5053555961686d798391999299a3aeafa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d4033343c45515c666e7b85929aa4aba1979082786d605a50453c31271d1309000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d11161c1f252a2e34383c43474c52545b6064696e747a7e838c929caa9d9084776a5d5144372a1e1100000e1b2834414e5b6774818e9aa7b3a79a8d8074675a4d4131261a0e02000000000000000000000000000000000000000000030f1c28333f4a546875818e9ba8b3a6998d8073665a4d4033271a0d000b1724313e4a5764717d8a97a4b0a89b8f8275685c4f422f24180c00000000000000000000000000010d192530424f5c6875828f9ba8b0a3968a7d7063574a3d3024170a0013202c3946535f6c7986929facada093867a6d6053473a2d26262626262626262626262626262626262626262626262626262621201d18130c040000000000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c1003000000000000000000000000000000000000040e18222a32373b3c44434241403f3e3d3c3b414e5a6774818d9a988c7f7265594c3f3c3d3e3e3f40414243443a39352f281f160c01000000030f1b27333f49535f6a73808d96a19fa3998f82766c61554b4033291f100700000000000009141f2934404b55616c76828f99a39fa1978d80746a60544a3f34281c100300000c18242f39434d57616b73808c949ea8a59f92867c6f685d545a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a55534d453c31261a0e0200131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f221509000000000000030d1925303a44505a616e7b86929fa7afacabadb3ac9f9386796c605346392d20130013202c3946535f6c7986929facb9aea49d9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a978a7d7164574a3e3124170b000613202c3945515d677683909ca99f92867a6d6054473a2d211409000000000000000000000000000000000a1623303d495663707c8996a3aca195887b707e8792989e9896918f8e8d8e8f91979b9fa4aca49f9691847b6e675d51453c31261a0f02000000000006121f2b3844505b6674818e9ba7b1a99d9083766d6259504a46443f4446484f565d676f7c87929fa3abb4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d40313c46505a606d78839097a2aca39991857a6e665c50483e332a1f150b00000000000000000000000000000000000000000000000000000000000004080a0a1313131312110f0b070100000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f141a1d24292c32383a41464a5053585f62676d7279808c99a69d9084776a5d5144372a1e110000101c2936434f5c6976828f9ca9b2a5998c7f7266594c3f3326190900000000000000000000000000000000000000000000000b17222d404d5a6773808d9aa6b3a89b8e8175685b4f4235281c0f000b1825313e4b5864717e8b97a4b1a89b8e8275685b4f4235281c070000000000000000000000000000081b2835414e5b6874818e9ba7b0a4978a7d7164574a3e3124170b0013202c3946535f6c7986929facada093867a6d6053473a333333333333333333333333333333333333333333333333333333332d2c29241d160d0400000000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c10030000000000000000000000000000000000000007101820262b2e2f37363534333332313033404d596673808c99978b7e7164584b3e313031323334353636372d2c29241e160d040000000005121f2b3744505b656f7c87929393939392877c6e625a5043392e21170d00000000000000030c18232f3943505a616e7b86929393939393877c6f665c5044382b1f1206000007121d27313b454f59606c78828f96a0aaa39891847a6d665b504d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4847423c332a2015090000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f2215090000000000010b151f2a36414c56626c76828f98a3aca49f9ea1a9b39f9386796c605346392d20130013202c3946535f6c7986929facb9a99d928d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8a7e7164574a3e3124170b0004111d2935414c5566737f8c99a9a3998a7d7164574a3e31261a0e02000000000000000000000000000000091623303c4956636f7c8996a2afa295897c7c86929996918c8784828181818285888e939aa1a9a8a0969083796d60584e43372b1f140900000000000613202d394653606c7985929eabada1978a7d70645a50443f393734383a3d444c555f6a74818e9aa7b1bdafa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d403a434e58616c74808d959fa9a59f92877d6f685e544a3f362c21180d0300000000000000000000000000000000000000000000000000000000050b10141617202020201f1e1b17120c0500000000000000000000000000000000000000000000000000000000000000000000000002080d11171c1f262a2f35383d43484c52545c60646a6e747a7e838c929caa9d9084776a5d5144372a1e110000101d2a3643505d697683909ca9b1a4978a7e7164574b3e3124180b0000000000000000000000000000000000000000000000061926323f4c5965727f8c98a5b2a89c8f8275695c4f4236291c0f000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2834414e5b6774818e9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6053473f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3a39352f281f160c01000000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c10030000000000000000000000000000000000000000070e151b1f21222b2a29282726252425323f4c5865727f8b98968a7d7063574a3d30242425262728292a2b21201d19130c0400000000000613202d394653606c79838686868686868680736a5f53473e30271d0f05000000000000000007121d27313e47535f6973808686868686868683796d6053463a2d2013070000010b151f2a333e44505b666d7a849198a2aaa1968f82786c60594f45404040404040404040404040404040404040404040404040404040403b3a37312a21180e030000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f221509000000000007121d27313946525e68717e8b949faaa49a939297a1ad9f9386796c605346392d20130013202c3946535f6c7986929facb3a79a8d80808080808080808080808080808080808080808080808080808080808080808080808080807c6f6255483c2f22150900010d19242f3c4956626f7c8997a2ab9a8e817467574d42372b1e12050000000000000000000000000000000916232f3c4956626f7c8995a2afa396897d839098938d847f7b777574747476787c81889197a1a9a8a0958d80736a5f53473b30251a0e02000000000916232f3c4956626f7c8997a2adab9e9285796d6053463f332d2b282c2d323a434e58626e7b88959fabb8afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d40414b555f6a717e8a929da7a89e938c7f726b60564c42382e241a0f06000000000000000000000000000000000000000000000000000000000810171c2023242d2d2d2d2b2a28231e170f06000000000000000000000000000000000000000000000000000000000000000000040a0f13191c22282b3136394045474e54565e61666d70767b80858b90959ca4aa9d9084776a5d5144372a1e110000111e2a3744515d6a7783909daab0a3968a7d7063574a3d3024170a00000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4b1a99c908376695d5043362a1d10000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d60534c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4745413a31281d1307000000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c1003000000000000000000000000000000000000000000040a0f1315161e1d1c1b1a19181724313e4a5764717d8a9795897c6f6256493c2f231718191a1b1c1d1e1413110d080100000000000005121f2b3744505b656c7679797979797979736e64584e43352c1e150b000000000000000000010b151f2b37424d57636e7379797979797979776d665c5044382b1f1206000000030d182128333f4a545d686f7c86929fa4a89f948c80736b61574d43392f343434343434343434343434343434343434343434343434342f2e2b2620180f06000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f22150900000000020b18232f39434f59616d7a85929ea6a99f938785929eab9f9386796c605346392d20130013202c3946535f6c7986929facada0938679737373737373737373737373737373737373737373737373737373737373737373737373736f6a5f53473a2e21150800000813202d394653606c7985929eab9e918478695f53463a2d2114060000000000000000000000000000000916222f3c4955626f7c8895a2afa89c8f828f9593888079726e6969686768696a6f747d859197a2ada79f92877c6e62574d42362a1e1205000000000c1926323f4c5965727f8c98a9b3a79b8e8174665c50443828221f1c1f2028313c47535f6a7683909da9b6afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d3f45515d676f7c86929fa4aaa0968f81756d62594f443b30261c12080000000000000000000000000000000000000000000000000000000008111a22282d3031393939393837342f2821180f05000000000000000000000000000000000000000000000000000000000000070c10151b1e24292d33383b42464b5153586062686d73787d82888d92989da0a7a69f9c9084776a5d5144372a1e110000111e2b3844515e6b7784919eaaafa396897c706356493d3023160a00000000000000000000000000000000000000000000000b1824313e4b5764717e8a97a4b1aa9d9083776a5d5044372a1d11000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d605959595959595959595959595959595959595959595959595959595959595954514b433a2f24180d010000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c100300000000000000000000000000000000000000000000000306080911100f0e0d0c0b1623303d495663707c899694877b6e6154483b2e21150b0c0d0e0f1011070604010000000000000000030f1b27333f49535b60696c6c6c6c6c6c6c67645c52463c31231a0c0300000000000000000000030d1a26313c45525c63666c6c6c6c6c6c6c6a605c544a3f34281c100300000000060f17222d38424c565f6a717e8b929da7a69f93887d70695f554b40352927272727272727272727272727272727272727272727272722211e1a150e0600000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f221509000000000a141d2934404b55606b74818e97a1ada1978e8183909da99f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d676767676767676767676767676767676767676767676767676767676767676767676767625f584e43372b1f1206000006121f2b3844505b6675828e9ba8a196887b6e6155483b2e23170c0000000000000000000000000000000916222f3c4955626f7c8895a2afaa9e948f9493887e736d67615e575b5a5b5860626b6f7c85929ea6afa3998e8175695e52463a2d201408000000020f1b2835424e5b6875818e9ba8b5ab988b7e7165544a3f342817121012161f2b37434e5866727f8c99abb5afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366595049515b606d79849198a2aea29891847a6d605b51473d32291e150a0000000000000000000000000000000000000000000000000000000005101a232c33393c3d464646464543403a332a21170c01000000000000000000000000000000000000000000000000000003090e12181c1f262b3035383f44464d53555d60656a6f757a7f848a8f949a9fa2aaa29f9a948f8a8276695d5043362a1d100000121f2b3845525e6b7885919eabafa296897c6f6356493c3023160900000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a3b0aa9e9184776b5e5144382b1e11000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6666666666666666666666666666666666666666666666666666666666666666605d554b4135291d11040000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c10030000000000000000000000000000000000000000000000000000000403020100000915222f3c4855626f7b889598867a6d6053473a2d201407000102030304000000000000000000000000000b17222d38414950535d606060606060605a58524a40332a20110800000000000000000000000009151f2a33404a52585a606060606060605d53504a42382e23170b00000000000006111c262f3a444e58616c74808d959fa9a49a92857b6e675d51453f342b20171a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1514120e09030000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f22150900000006111b262f3845515c67707d89939ea9a69e91857a84919daa9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d605a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a55534e463c31261b0f030000030f1c28333f4a5465717e8b98a8a8988b7e7265544a3f34281c100300000000000000000000000000000916222f3c4955626f7c8895a2afb0a69e9c958c80736c605c55524d4e4e4e4e5459606a717e8a949fabab9f92877b6e6154483b3025190e02000005111d2a36414c566a7784909daaafa499887b6f6255483c2e23170603060d1a26313c4956626f7c8999a3afafa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c80736b605b5358626d75818e96a0aaa49f92867c6f675d51493f352b20170c03000000000000000000000000000000000000000000000000000000000b17222c363e44494a5353535352504b453c33281e1207000000000000000000000000000000000000000000000001040b10141a1d23282c32373a41464a5053575f61676d71777c81868c91969c9fa6a7a09d98928d88837e786d6053463a2d2013070000121f2b3845525e6b7884919eabafa296897c6f6356493c3023160900000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4b0aa9d9184776a5e5144372b1e11000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada09386797272727272727272727272727272727272727272727272727272727272727272726d675d5145392c2013060000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c10030000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a879a928579675d5145392c2013060000000000000000000000000000000000000006111b262f383f444650535353535353534d4c4740382e21180e00000000000000000000000000030e18212e3840474b4d535353535353535046443f3830261c1106000000000000000a141d28323c46505a606d78839097a1aba2979083796d605b51463d32291e140a0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0808060200000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f2215090000000b17222d38414e58606d7984919ea5aa9e948a7e7885919eab9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d60534d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4847433c342a20150a000000000b17222d3b4854616e7b8795a0a89b8f8275665c5044382c1f120600000000000000000000000000000916222f3c4955626f7c8895a2afb8b0a89d9083786d605a514b464241414143474f58616c76828f9ca9afa3998c7f7266564c41362a1e110500000713202d3946525e687985929facac9f9386796d6053463a2d20130600000913202d3a4653606d7986929facafa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0adab9e91847d726c655d606a727f8b939ea8a79d928a7e716a5f554c41372d23190e050000000000000000000000000000000000000000000000000000000004101c28333e48505557606060605e5c564e453a2f23170b00000000000000000000000000000000000000000001080d11161c1f252a2e34383c43474c52545b6063696e73797e83898e92999ea1a8a39f9b95908b85807b76716d665c5144382c1f12060000111e2b3844515e6b7784919eaab0a396897d7063564a3d3023170a00000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a99d9083766a5d5043372a1d10000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facb2a6998c7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f796d6054473a2d2114070000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c10030000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986939184786b554b4035291d100400000000000000000000000000000000000000000a141d262d3337394346464646464646403f3c362e261c0f060000000000000000000000000000060f1c262e363b3f4046464646464646443a38342e261e140a0000000000000000020b16202a343e44515c666e7b859199a3a9a0958e81756d62584e443a30261c11060001010101010101010101010101010101010000000000000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f2215090000040f1b27333f49535f6a73808c96a0aca2988f82757985929fac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6053474040404040404040404040404040404040404040404040404040404040404040403c3a37312a22180e04000000000614202d3a46525e697784919daa9f9285796d6053463a2d20130800000000000000000000000000000916222f3c4955626f7c8895a2afb9ada1968a7d71665c5045403936303432373d46505a63707d8a97a1adab9d908377685e5246392d20140700000714212e3a4754616d7a8798a2aeab9e918478675c5145382c1f1306000006131f2c3845515c667784919daaafa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0adada19691877f776d68686f7c87929fa5a99f958d80746c61584e433a2f251b110700000000000000000000000000000000000000000000000000000000000814202d3944505a61646c6c6c6c6b6860564b4034281b0f0200000000000000000000000000000000000000040c13191d20272c3036394045464e54565d61666c70757b80858b90959b9fa3a8a19e99928e89837e7a746e6a64605c544a4034281c10040000111e2a3744515d6a7784909daab0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000c1825323f4b5865727e8b98a5b1a99c8f8276695c504336291d10000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facb9a89c918c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c877b6e6154483b2e2115080000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c10030000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d79869a9184786b554b4135291d11040000000000000000000000000000000000000000020b141b22272b2d36393939393939393433302b241c140b000000000000000000000000000000000a141c242a2f323339393939393939372d2b28231c140c02000000000000000000040e18222834404a545e69707d87929fa5a79e938b7f726a60564c42382e23170f0600000000000000000000000000000000000000000000000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f22150900040d1a232b3744505b656f7c87929fa8a79f92867b6e7986939fac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6053473a34343434343434343434343434343434343434343434343434343434343434342f2e2b2620181006000000000005121e2a36424d576774808d9aaaa298897c6f6356493c2f24190d01000000000000000000000000000916222f3c4955626f7c8895a2afb8ab9e9184786c60544a3f342f2a2527272b333e4653606c7885929eabaca095877a6e6154473b2e21140800000915222f3c4855626f7b8895aab4a99d9083766a554b4034281c1004000004101c2834404b546975828f9ca8afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0adb2a9a199928c827a6f6d7a849199a3aba1979083786d605a50463c31281e130a000000000000000000000000000000000000000000000000000000000000061623303c4955616c70797979797872685c5043372a1e07000000000000000000000000000000000000010a0d161e24292c33383b42464b5153585f62686d72787d82878d92979da0a7a49f9c96918c86817c77726d67625f5853514a42392e23180c000000101d2a3643505d697683909ca9b1a5988b7e7265584b3f3225180700000000000000000000000000000000000000000000000d1a2633404d596673808c99a6b3a89b8f8275685c4f4235291c0f000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facb9ada39c999999999999999999999999999999999999999999999999999999999999999994877b6e6154483b2e2115080000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c10030000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794928679675d5145392c201306000000000000000000000000000000000000000000020a11171b1f202a2d2d2d2d2d2d2d2726231f19120b0200000000000000000000000000000000020a12191f2326272d2d2d2d2d2d2d2a201f1c17110a020000000000000000000000061018232e39424d57606b727f8c939ea7a59f92877c6f685e544a3f342821180d04000000000000000000000000000000000000000000000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f221509010c161f2a36414c56606c77839099a3aba0958c7f726d7a879aa4af9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6053473a2d2727272727272727272727272727272727272727272727272727272727272722211f1b150e06000000000000020e1a25303d4a5763707d8a98a3aa998c807366564c4135291d1104000000000000000000000000000916222f3c4955626f7c8895a2afb6ac9a8d8074665b5042382e231d1a1b1b212b3844505b6674818e9ba7b1a7978a7e7164574b3e3124180700000a1623303d495663707c8996a3afa89c8f8275695c4f422e23180c000000000c18232e414e5a6774818d9aa7afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0adbbb2aba39f948f847c78828f96a1aba49992857b6e665c51483e342a1f160c0100000000000000000000000000000000000000000000000000000002080e111724313d4a5764707d8686868684786b5e5245382b18120e09030000000000000000000000000000000a131c1f282f35393d44484d52545c60646a6f747a7f848a8f939a9fa2a9a19e9a938f8a847f7a756f6b65605d55534e4644403930271c12070000000f1c2835424f5b6875818e9ba8b3a6998c807366594d402f23180c00000000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7b4a79a8e8174675b4e4134281b0e000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facb9b5ada8a6a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a194877b6e6154483b2e2115080000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c10030000000000000000000000000000000000000000000000000000000403020101000915222f3c4855626f7b889598877a6d6054473a2d2114070001020303040000000000000000000000000000000000060b0f12131d202020202020201a1917130e080100000000000000000000000000000000000000080e1317191a202020202020201d1312100b06000000000000000000000000000007121c27303b454f59626d75818e95a0aaa39991847a6d665c50443e332a1f160c010000000000000000000000000000000000000000000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f22150907121d28313946525e68727e8b949faba3999083786d6e7a8794a1b69f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6053473a2d201a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1515120f0a0400000000000000000914202d3a4753606d7a86929fa99d908376685d5245392c201307000000000000000000000000000916222f3c4955626f7c8895a2afafa49a897d7063544a3f30261c120e0a0f1c28333f4a5465717e8b98abb5a69a8d8073675a4d402e23180c00000a1724313d4a5764707d8a97a3b0a89b8e8175685b4e4235281b0700000000071a2633404d596673808c99a6afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0adb8b0aaa9a69e969186828f949fa8a69f93877d70695e544b40362c22180d04000000000000000000000000000000000000000000000000000001070c14191b2227313d4a5764707d8a93939185786b5e52453828231c1a140d070100000000000000000000000007121c252e313a4145474f54575e61666d71767c81868c91969c9fa4a79f9d97928d87827d78726d6863605953514b47433c38342e271e150b000000000d1a2734404d5a6773808d9aa6b3a89b8e817568554b4034291c100400000000000000000000000000000000000000000005121e2a36424d576976838f9ca9b2a5988c7f7265594c3f3226190c000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facb9afa7a2a09f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f94877b6e6154483b2e2115080000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c100300000000000000000000000000000000000000000000000206080811100f0e0d0c0b1623303d495663707c899694887b6e6155483b2e22150b0c0d0e0f10110707050100000000000000000000000000000003050610131313131313130d0d0b07030000000000000000000000000000000000000000000002070a0c0d131313131313131107060300000000000000000000000000000000000b151e29333d47515b606d79839098a2aba1968f82786d605a50453c31281d13070000000000000000000000000000000000000000000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070303030303030303030303030713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f2215090b18242f39434f59616e7a85929fa6a89f92877c6f666e7b8894a1ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6053473a2d20140d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d090806030000000000000000000006131f2c3945515d6776838f9ca99f92867a6d6054473a2d211409000000000000000000000000000916222f3c4955626f7c8895a2afac9f93867a6d6054473a2d21150a01000b17222d3c4855626f7b8899a4afa99c8f837669554b4034281c1004000b1724313e4a5764717d8a97a4b0a79a8d8174675a4e4134271b0e010000000c1926323f4c5965727f8c98a5afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0adb0a69e9c9fa2a199928f949ea6a89e948c7f736b60574d42392e241b10060000000000000000000000000000000000000000000000000000030b12181e252a2d33373d4a5764707d8a979e9185786b5e524538342e2a251f18120c0400000000000000000000020d19232e3740434c5154596063696e73797e83888e92989ea0a8a29f9a95908b85807b76706c66615e56544f4745403a37312c28231c150c03000000000c1925323f4c5865727f8b98abb5aa9d908477675c5145382c1f13060000000000000000000000000000000000000000000714212d3a46535f697885929fabb4aa968a7d7063574a3d3024170a000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facb9a79d95939393939393939393939393939393939393939393939393939393939393939393877b6e6154483b2e2115080000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c1003000000000000000000000000000000000000000000030a0f1214151e1d1c1b1a19181824313e4b5764717e8a9795897c6f6256493c2f231718191a1b1c1d1e1413110d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c17202b353f45515d676e7b86929aa4a89f948d80736c61574e433a2f2418110700000000000000000000000000000000000000000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114101010101010101010101010101013202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f22150a141d2935404b55616b75818e97a2aca1968d80746a626f7b8895a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6053473a2d20140701010101010101010101010101010101010101010101010101010101000000000000000000000000000004101d2935404b5566727f8c99a9a3998a7d7164574a3e31261a0e020000000000000000000000000916222f3c4955626f7c8895a2afaa9e918477675d5145392c20130300000613202d3a4653606d7986939facab9e918478675c5145382c1f1306000b1824313e4b5764717e8a97a4b1a79a8d8174675a4e4134271b0e010000000c1825323f4b5865727e8b98a5afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0adaa9e948f9298a2a39f9c9ea6aaa1968f82776c60594f453b30271d12090000000000000000000000000000000000000000000000000000060d151d23293036383f44464a5764707d8a979e9185786b5e5246444039363029241d160d0600000000000000000006121e2a35404951555d60656b70757b80858a90959a9fa2a8a09d98928e88837e79736e6963605b54524c48433d39352f2b261f1c18120b030000000000091623303c4956636f7c8999a4afac9f9286796d6053473a2d22170b0000000000000000000000000000000000000000000815222e3b4855616e7b8897a2adaea298887b6e6155483b2e221508000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facb9a2958b868686868686868686868686868686868686868686868686868686868686868686867b6e6154483b2e2115080000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c10030000000000000000000000000000000000000000060e151a1f21222b2a29282726252425323f4c5865727f8b98968a7d7063574a3d30242425262728292a2b21201d19130c0500000000000000000000000305060e101010101010090806030000000000000000010304060606060504030100000000000000000000000000000000000000000000000000000000000000000000000000000000050e19232935404b555f69707e88939fa6a69d928a7e716a5f554b40352923190e05000000000000000000000000000000000000000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d211c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f2215111c262f3845515d67707d8a939ea9a59e9184796d60626f7c8895a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18242f3c4955626f7c8897a1ab9a8d817467574d42372b1e12050000000000000000000000000916222f3c4955626f7c8895a2afa89c8f827569554b4135291d1104000006131f2c3845515c677884919eabac9f9386796d6053463a2d201307000b1825313e4b5864717e8b97a4b1a79a8d8074675a4d4134271a0e010000000b1825323e4b5865717e8b98a4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada99c8f82869298a3aba9aaaea39891847a6d655b50473d33291e150b0000000000000000000000000000000000000000000000000000070f181f272f343b4146495053565964707d8a979e9185786b5e5753514a46423b352f281f180f0700000000000000000a16232f3b46515b63676d72777d82878d92979d9fa7a39f9b96918b86817c76716d67615f5753504a46413a38322c29241d1a15100c07000000000000000714202d3a4753606d7a86939facaea399897d706353493f33271b0f030000000000000000000000000000000000000004111d2935414c5565717e8b98a9b3ac9f9285786d6053463a2d201307000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867979797979797979797979797979797979797979797979797979797979797979797976695e52463a2d2014070000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c100300000000000000000000000000000000000000060f1820262b2e2f37363534343332313033404d596673808c99978b7e7164584b3e313031323334353636372e2d2a251e170e050000000000000000060b0f12131b1d1d1d1d1d1d1615130f0a0400020507080b0e1011121313131211100e0b08070502000000000000000000000000000000000000000000000000000000000000000000000000071118242f39434d57616c73808d949fa8a49f92867c6e675d51453f352b20170c030000000000000000000000000000000000000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2929292929292929292929292929292929292d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f221517222d38424e58606d7984919ea5a99e938a7d70675d626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6053473a2d20140c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c070604010000000000000000000000000000000713202d394653606c7885919eaa9e918477695f53463a2d2114060000000000000000000000000916222f3c4955626f7c8895a2afa79a8d8174675a4e412f24180d01000004101c2834404b556a7683909da9afa49a887b6e6155483b2e221508000b1824313e4b5764717e8a97a4b1a79a8d8074675a4d4134271a0e010000000b1825323e4b5865717e8b98a4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807d869299a3abb5ac9f92867c6f685d53493f352b21170c0300000000000000000000000000000000000000000000000000071019212a313940454c52535b60636669707d8a979e9185786b6763605c54524d454039312921191007000000000000000c1925323e4b57636d737a7f84898f92999ea1a9a19e99928f89847f7a746f6a64605c55534d46443f3836302c27201d18130f0a040000000000000000000613202c3945515d677784909daab4ab9a8d8073655b5044372b1f140a000000000000000000000000000000000000010c13202c3945515d6775828e9ba8b5a89c8f8275665c5044382b1f1206000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c5e574d42362a1e12050000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c1003000000000000000000000000000000000000030e18222a31373a3b44434241403f3e3d3c3b414e5a6774818d9a998c7f7266594c3f3c3d3d3e3f40414243443a3936302920170c020000000000020a11171b1f202729292929292922221f1b150e090e111414181a1c1e1f20201f1f1e1c1a181514120e0904010000000000000000000000000000000000000000000000000000000000000000000007121d28313c45505a606c78828f96a1aaa2989183796d605b51473d33291e150b0000000000000000000000000000000000000000000000131f2c3946525f6c7985929facada093877a6d6054473a36363636363636363636363636363636363636363a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f22151c28333f4a545f6a73808d96a1aca2978e81756b6155626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6053473a2d2019191919191919191919191919191919191919191919191919191413110d07010000000000000000000000000005121f2b3744505b6575818e9baca096887b6e6155483b2e23170c0000000000000000000000000916222f3c4955626f7c8895a2afa6998c807366594d4033261a07000000000c18232e424f5c6975828f9ca8b6ac95897c6f6256493c2f231609000b1724313e4a5764717d8a97a4b0a79a8d8174675a4e4134271b0e010000000c1825323f4b5865727e8b98a5afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c80737d879299a4aca6998c80736a60584e453c332a21170f05000000000000000000000000000000000000000000000000060f19222b333c434b51565e61656c6f7375777e8a979e9184787674706d66615e57514b433b332b22190f060000000000000d192633404c5966737f868b91959b9fa3a69f9c97918c86827d78726d68625f5853514b46423b38332d2a251e1b16110d0701000000000000000000000004101d2935404b556773808d9aa9b3ab9e9184786c6053463c2f261b1106000000000000000000000000000000000007131d28333f4a54606d7a86929facb1a7988b7f7265544a3f34281c1003000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d60606060606060606060606060606060606060606060606060606060606060605f524d453b30251a0e020000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c10030000000000000000000000000000000000000a15202a343c43474851504f4e4d4c4b4a4948474f5b6875828e9b9a8d8073675a4d4748494a4b4c4d4e4f50514746413a32291e130800000000020b141b22272b2d343636363636362f2e2b262019141a1e20212527292b2c2c2d2c2c2b29272421211e1a14110d08020000000000000000000000000000000000000000000000000000000000000000010c161f2a333e44505b666d7a849198a3aaa0958e81756d62594f453b30271c120700000000000000000000000000000000000000000000131f2c3946525f6c7985929facada093877a6d605447434343434343434343434343434343434343434343434653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f221a242b3844505b666f7c87929fa8a69f92857a6e615956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6053473a2d26262626262626262626262626262626262626262626262626262621201d18130c04000000000000000000000000030f1b27333f495364717e8b9aa4a8988b7e7265544a3f34281c100300000000000000000000000916222f3c4955626f7c8895a2afa5988b7f7265584c3f3225190c00000000071b2835424e5b6875818e9ba8b0a396897d7063564a3d3023170a000a1724303d4a5763707d8a96a3b0a89b8e8175685b4e4235281b07000000000c1926323f4c5965727f8c98a5afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c8073717e87939aa4ab9e92857c6f6a5f574d453b332921170e0500000000000000000000000000000000000000000000040d18212b343c454d555c60686e73787c7f828486929fa196898482807d79746e69605d554d453d342b21180d030000000000101d2a3743505d6a768390989da0a8a29f9a948f8a84807b75706c65605d56544e4745403936312b28221c19130f0a040100000000000000000000000000010d18242f3d495663707c8997a1adaca196897d7063584e41382d22170f06000000000000000000000000000000071118242f3844505b66717e8b98a2aeaca095887b6e6155483b2e23170b00000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d60535353535353535353535353535353535353535353535353535353535353534846423b33291f1409000000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c10030000000000000000000000000000000000020f1a26313c464e53555e5d5c5b5a595857565554535d697683909c9b8e8174685b535455565758595a5b5c5d5e54524c443a3025190d010000000a141d262d333739414343434343433c3b37322a2220252a2d2e313436373939393938373634312e2d2a25201d19130d070100000000000000000000000000000000000000000000000000000000000000040d182128333f4a545e686f7c86929fa5a79e938c7f726b60574d42392e23181006000000000000000000000000000000000000000000131f2c3946525f6c7985929facada093877a6d60544f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f53606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f221f2a36424d57606c78839099a3ab9f948b7e71685e5256626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6053473a333333333333333333333333333333333333333333333333333333332d2c29241d160d040000000000000000000000000b17222d3b4754616e7a87939fa89b8f8275665c5044382c1f120600000000000000000000000916222f3c4955626f7c8895a2afa5988b7e7265584b3f3225180c000000010e1b2834414e5b6774818e9aa7b0a3978a7d7064574a3d3124170a000916232f3c4956626f7c8995acb6a89b8f8275685c4f422e23180c000000000d1a2633404d596673808c99a6afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c80736c717e88939fa3a19792857c6e695f574d453b332920170e050000000000000000000000000000000000000000010c161f2a333c464e575f676d737a8084898c8f919298a3a8a197918f8d8a85817b736d675f574e463d332a1f150b0100000000101d2a3743505d6a7683909da7a09d98928d88837d79736e6963605b53524c47433c38342f2a261f1c17110d080200000000000000000000000000000000000713202d3a4653606d7985929eacb2a89c8f82756a5f53493f332721180f0802000000000000000000000003091119232935404b55606c7884919daab3a99d908477695f53463a2d1c110600000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d60534746464646464646464646464646464646464646464646464646464646463b3a36302921170d02000000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c1003000000000000000000000000000000000006121f2b37434e585f626a69686767666564636261605c6a7784919d9c8f8275695c60616263646566676869696a615e564c41362a1d1105000006111b262f383f44464e5050505050504947433c34292c30363a3b3e41434445464646454443413e3b3a36312c29241e18130c0400000000000000000000000000000000000000000000000000000000000000060f17222d38424c56606a717e8b939da7a59f92877d70695e544a40342822180d040000000000000000000000000000000000000000131f2c3946525f6c7985929facada093877a6d605c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f2228313a46525e69727f8b959faba3999082776c60564c56626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6053473f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3a39352f281f160c0100000000000000000000000614202d3946525e687783909daa9f9285796d6053463a2d20130800000000000000000000000916222f3c4955626f7c8895a2afa4988b7e7165584b3e3225180b000000010e1b2734414e5a6774818d9aa7b1a4978a7e7164574b3e3124180b000815222e3b4855616e7b889aa4afa99d9083766a544b4034281c10040000010e1b2734414e5a6774818d9aa7afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c8073666c727f8b919ca4a19791857b6e695f574d453b322920170e050000000000000000000000000000000000000008131e28313c464e5860696e7980868d9196999c9d9fa3aaaba9a19e9c9a97928d8680796e6960584e453b31271d120700000000101d2a3743505d6a7683909d9b95908b85807b76716d66615e5753504945413a37322c29231d1a140f0b06000000000000000000000000000000000000000006121f2c3844505c6673808d9aa4afaa9e94887c6f655b50443d332a2219140e09060400000100000406090e141a232b353d45515d67717e8a95a0acada2978b7e7265574d42362a1e0a0000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6053473a393939393939393939393939393939393939393939393939393939392e2d2a251f170f0500000000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c100300000000000000000000000000000000000814212e3a47535f6a6e77767574737271706f6e6d6d66667885929e9d9083766b666d6e6f7070717273747576776d685e5246392d20130700000b17222d38414950535a5c5c5c5c5c5c55544e463c35393b4246474b4d4f515253535252514f4d4b4846423b39353029241d160d070000000000000000000000000000000000000000000000000000000000000006111c262f3a444e58626c74818e959fa9a39991857b6e665c51443e342a20160b0200000000000000000000000000000000000000131f2c3946525f6c7985929facada093877a6d696969696969696969696969696969696969696969696969696969696d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f242f3a43505a616e7b86929fa7a89f92867c6e655b504956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d60534c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4745413a31281d1307000000000000000000000005111e2a36414c566773808d9aaaa298897c6f6356493c2f24190d01000000000000000000000916222f3c4955626f7c8895a2afa4988b7e7165584b3e3225180b000000010e1a2734414d5a6774808d9aa7b1a4978b7e7164584b3e3125180b000714202d3a4753606d7a86939facab9e918478665c5145382c1f1306000004111d2935404b556976828f9ca9afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366626d727f8c929ca4a19791847b6e695e574d443b322920160e040000000000000000000000000000000000010d19242f3a434e58606a6f7b838c92989ea1a9a8aaa39f9e9e9fa3aaa8a9a29f98928d837b6f6a60574d43392f24180c03000000101d2a3743505d6a768390928e89837e79746e6a64605c54524d46443f38352f2b261f1c18120e09030000000000000000000000000000000000000000000003101c28343f4a54616e7b87939fabb0a69c9083776c60584e453c342a251e1a1312100c070e070c1013131a1f262a353d47505a606d7984919ea7b1a99f9285796d6053473b31261a0e0000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6053473a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d21201e1a140d050000000000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c100300000000000000000000000000000000000815222f3b4855626e7c83838281807f7e7d7c7b7a7978777887939f9e9184787778797a7b7c7d7e7f80818283847a6d6154473a2e21140700030f1b27333f49535b6067696969696969625f584e454045474d5254585a5c5e5f5f605f5f5e5c5a5754534d4745413a352f281f191109010000000000000000000000000000000000000000000000000000000000000a141d28323c46505a606d79839097a1aba1979083786d605a50463c32281d140a00000000000000000000000000000000000000131f2c3946525f6c7985929facada093877a767676767676767676767676767676767676767676767676767676767676788693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f2935414c55616c75828f98a2aca0968c80736a5f53494956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d605959595959595959595959595959595959595959595959595959595959595954514b433a2f24180d0100000000000000000000010d1925303d495663707d8998a2aa998c807366564c4135291d1104000000000000000000000916222f3c4955626f7c8895a2afa4988b7e7165584b3e3225180b000000010e1b2734414e5a6774818d9aa7b1a4978a7e7164574b3e3124180b0006131f2c3845515c677885919eabac9f9286796d6053463a2d20130600000613202c3945515d677784919eaaafa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c8073665b636d73808d929da5a19691847b6e695e564d443a322820160d040000000000000000000000000000000004111d2935414c555f6a6f7c8590959fa2aaa69f9c98989291919298979c9fa4aaa39f9590857c6f695f554b4035291f1509000000101d2a3743505d6a76838c86817c77716d67625f5853504a46423b37332d29241e1b15100c0701000000000000000000000000000000000000000000000000000c17232e3846535f6975828e99a3afab9f948b7f726a60574e463e36302a25201f1c181b1a1b181c1f20262b31363f474f59616c74808d96a1adada2978d8073675d5145392a1f14090000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6053473a2d2020202020202020202020202020202020202020202020202020201514120e0902000000000000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c100300000000000000000000000000000000000916222f3c4955626f7c88908f8e8d8c8b8a898887868584839099a49f9287838485868788898a8b8c8d8e8f90877a6e6154473b2e2114080005121f2b3744505b656c747676767676766f6a5f574d4b5153575e616467696a6c6c6c6c6b6a696764615e5754524c45403a312b231b130a010000000000000000000000000000000000000000000000000000000000020b16202b343f45515c676e7b859299a3a99f958d80746c61584e443a2f261b1106000000000000000000000000000000000000131f2c3946525f6c7985929facb6a99c8f82828282828282828282828282828282828282828282828282828282828282828f9ca9b5ac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2f303845515d67707d8a939eaaa49a9184796d60584e414956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6666666666666666666666666666666666666666666666666666666666666666605d554b4135291d110400000000000000000000000813202d3a4653606d7985929fa99d908376685d5245392c201307000000000000000000000916222f3c4955626f7c8895a2afa5988b7f7265584c3f3225190c000000010e1b2834414e5b6774818e9aa7b0a4978a7d7164574a3e3124170b0004101c2934404b55697683909ca9afa399887b6f6255483c2d22170b00010714202d3a4753606d7a86939facafa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366595b636e74808d939da5a19691847b6e685e564c443a32281f160d040000000000000000000000000000030e18222c3945515d676e7c859297a0a7a8a09e94908b8886858586878a8f93999fa7a7a09792857b6e675d51453c31261a0e0000000f1b2835424e5b6875817f7a756f6b65605d55534e46443f3836302b27221b19130f0a040000000000000000000000000000000000000000000000000000000006111c2a36424d57626e7b87929fa8b0a69f92877c6f695f585046413b36312d2c282327272723282c2d31373b42465159606b717e8a929da8b1a79f92857a6d61554b4035291d10040000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6053473a2d201413131313131313131313131313131313131313131313131313080705020000000000000000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c100704000000000000000000000000000000000916222f3c4955626f7c88959b9a9a99989796959a93929190959faba39992909192989495969798999a9b9c94877a6e6154473b2e211408000613202d394653606c79808283838383837c6f695e56555d6065696e717476777879797978777674716e6966605d56514b433d352d251c130a000000000000000000000000000000000000000000000000000000000000040e19222834404b555e69707d87929fa5a79d928a7e716a5f564c41382d22170f050000000000000000000000000000000000131f2c3946525f6c7985929facb8ab9f948f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f949fabb7ac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c2e38424e58606d7a84919ea6a99f93887d70675c51463c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada09386797272727272727272727272727272727272727272727272727272727272727272726d675d5145392c201306000000000000000000000006131f2c3845515c6775828f9ca89f92867a6d6054473a2d211409000000000000000000000916222f3c4955626f7c8895a2afa6998c7f7366594c4033261906000000020f1b2835424e5b6875818e9ba8b0a3968a7d7063574a3d3024170a00000c18232f414d5a6774808d9aa7b5ab978b7e716453493f33271b0f0b0e121c28333f4a5463707d899aa4afafa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c80736659525c606c77818e939ea6a09691847a6e685e564c443a31281f160d04000000000000000000000000000a15202b37434e58606d7a849197a2a9a79f969189837e7b797878797b7e828790959ea5a9a1979184796d60574d42372b1d120700000e1b2734404d59656f75726d6863605953514b47433c38342e2a251f1b17110d0801000000000000000000000000000000000000000000000000000000000000000e1a26313b47535f6974808d96a0abaea39991857b6e6a615a524c46423c3a38342e3434342e34383a3c42474d535b626b707d86929fa4aeaaa0958b7f72685e5243392f24180d010000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6053473a2d20140d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0b0a0805000000000000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336291c1614100b0500000000000000000000000000000916222f3c4955626f7c8895a2a7a6a5a4a3a2aca49f9f9e9d9fa7b1aba39f9d9e9fa2aaa2a3a3a4a5a6a7a194877a6e6154473b2e2114080005121f2b3744505b656e7b858f8f8f8f8f857b6e685d60676d72777b7e80828485868685858482807e7b77726d68605d554f473f372e251c1209000000000000000000000000000000000000000000000000000000000000071018232e39434d57606b727f8c939ea8a49f92867c6f685d53493f332721170c0300000000000000000000000000000000131f2c3946525f6c7985929facb8b0a69f9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9fa6b0bbac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c343f4a54606a74808d96a1ada1978e81746b60554b403c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facb2a6998c7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f796d6054473a2d211407000000000000000000000004101c2834404b5565727f8b98a8a3998a7d7064574a3d31261a0e020000000000000000000916222f3c4955626f7c8895a2afa79a8d8074675a4d412e23170c000000030f1c2936424f5c6975828f9ca8afa296897c6f6356493c302316090000071824313e4b5764717e8a97a7b1a79a8e8174655b5044372b211b171a1d242b3844505b6673808d9aacb6afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d505b656c78818e949ea6a09691837a6d685e564c433a31281f160d030000000000000000000000020f1a26313b4754606a74818e96a0a9a89f9590847d76716e6c656b696e71757c838e939ea6a9a0968d8073695f5347392e23180c00000c1825313d48535d656866615e56544f4745403937312c28231c1a140f0b060000000000000000000000000000000000000000000000000000000000000000000009141f2b37424d57606d79849199a4afaba19791847c706c615e56534d494644404141414141404546494d53575f616d727d869298a2aeaca2989083786c60564c4131281d1207000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6053473a2d201a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a171714110c0500000000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f4336292423201c171008000000000000000000000000000916222f3c4955626f7c88959d9c9b9a98979695949992919095a0aca399929091929994969798999a9b9c9d94877a6e6154473b2e21140800030f1b27333f49535e696f7c8692999c9790837a6d666d72797f83878b8d8f919292939292918f8d8a87837f7a736d676059514940372e241b0f0600000000000000000000000000000000000000000000000000000000000007121d27303b454f59636d75818f95a0aaa29891847a6d655b50443d33291e150b00000000000000000000000000000000131f2c3946525f6c7985929facb8b8b0aba9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9abb0b8b9ac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c3844505c666f7c87939fa9a69e92857a6d60594f43393c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facb9a89c918c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c877b6e6154483b2e2115080000000000000000000000000c18232e3b4855626e7b8896a1ab9a8d817467574d42372b1e12050000000000000000000916222f3c4955626f7c8895a2afa89b8f827568544a3f34281c1003000004101d2935404b556a7683909da9b4aa95887b6e6255483b2f22150800000814212e3b4754616e7b8795a0acab9e9184786c6053463e332b2722252a2f35404a54606c7884919eabb8afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d49535b666d78828f949fa6a09590837a6d685d564c433a31281f150c030000000000000000000006121f2b37434e58626f7c89939da8aca09690837a706b6561605b575e61646a6f78818e949faaa89f92867b6e62554b4034281c1004000814202c37414b53595b5954524c48433d39352f2b261f1c17110e0903000000000000000000000000000000000000000000000000000000000000000000000000030e1a26313c45515d676f7d87939fa4aea9a19691867e756e68615e575653514a4e4e4d4e4e4b515356575f62696e767f879298a2aaafa49a92867c6f665b50443a301f160c01000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6053473a2d27272727272727272727272727272727272727272727272727272727272423211c171008000000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f433633302f2c28211a11080000000000000000000000000916222f3c4955626f7c8891908f8e8d8c8b8a898887868583909daa9f92878385868788898a8b8c8d8e8f9091877a6e6154473b2e21140800000b17222d38414d57606a707e87939fa0958f82786e787f858b9095979a9c9d9f9f9f9f9e9d9c9a9795908c868079706b625b514940362c21180e030000000000000000000000000000000000000000000000000000000000000b151e29333d47515b606d79839198a2aaa0968f82776c60594f453b30271d1207000000000000000000000000000000131f2c3946525f6c7985929facb8b0a8a2a09f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa0a1a6aeb8ac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c424d57606d78839099a4aa9e948a7e71685d52473d303c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facb9ada39c999999999999999999999999999999999999999999999999999999999999999994877b6e6154483b2e2115080000000000000000000000000714212e3a47535f6a7884919eaa9e918477695f53463a2d2114060000000000000000000916222f3c4955626f7c8895a2afaa9d908377665c5044382c1f1206000006131f2c3845515d677885919eabaea298877a6d6154473a2e21140700000714202d3a46525e697784909dabada197897d70635a50453d37332d3136394045515c66717d8a96a1adb9afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d414a545c666d79828f949fa7a09590837a6d685d554b433931271e150c030000000000000000000814212e3a47535f6a76828f9ca5afa49a91847a6d6860595553504d5254585f666d78828f98a3aea3998d8074675c5145382c1f130600040f1a252f3941484d4e4c4746413a38322c29241d1a15100c060000000000000000000000000000000000000000000000000000000000000000000000000000000009151f2935404b55606b727f8b929da4ada9a198928a817a746e696562605c545b5a5a5a5b545c606266696e747b828b9299a2aaaea39f93887e706a5f544a3f32291e0d0400000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6053473a34343434343434343434343434343434343434343434343434343434343431302d28221a12080000000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f433e3f3d3c38332c231a110800000000000000000000000915222f3c4855626f7c8584838281807f7e7d7c7b7a79787a8794a19f92867978797a7b7c7d7e7f8081828384867a6e6154473b2e211408000006111b262f3b454e58616c727f8b929d9f948e817b838c92979d9fa7a8a09e9c9b9a9b9c9d9fa4a7a09d98928d847d726d635b51483e332a201509000000000000000000000000000000000000000000000000000000000000030c17212b353f45515d676e7c86929fa4a89e948c7f736b60574d43392e231810070000000000000000000000000000131f2c3946525f6c7985929facb8a89e969393939393939393939393939393939393939393939393939393939393939393959ca6b1ac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255483c46535f69727f8c95a0aba2988f82766c61564c41352f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facb9b5ada8a6a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a194877b6e6154483b2e21150800000000000000000000000006121f2b37434e586774818e9aaba096887b6e6155483b2e23170c0000000000000000000916222f3c4955626f7c8895a2afac9f9286796d6053463a2d20130900000714202d3a4753606d7a86939facab9f928578685e5246392d201307000005111e2a36424d5666737f8c99a3afa99c8f82766c61574f46443f414142464b515a606d7883919da8b0b8afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d40424a545c676d79829095a0a7a09590837a6d675d554b433930271e150c0300000000000000000815222f3b4855626e7b88949fabac9f93877d6f685d564f4846444246484e545c666e7b86929facab9f9285796d6053463a2d201307000009131d272f373d40423f3a3936302c27201d18120f0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d18242f3a434f59626d74808d929ca3adaaa29f938e86807b76726f6d6669686767676869666d6f72777b81868f949fa3ababa39f918c7f726c61584e42382d20170d0000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d605347404040404040404040404040404040404040404040404040404040404040403e3c39332c241a100500000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f464a4c4a48443e352c231a1108000000000000000000000815212e3b47535f6a6f7877767574737271706f6e6d676e7b8894a1a39886796c6c6d6e6f7071727374757677796e685e5246392d2014070000000a141d29333c464f59626d74808d939e9d938e8690959ea2a8a19e9896918f8e8d8e8f91939a9d9fa7a29f9691877f736d635a50453c31261a0e05000000000000000000000000000000000000000000000000000000000000050f19232935414b555f6a717e8a929da6a69f93877d70695e554b40342822190e0400000000000000000000000000131f2c3946525f6c7985929facb8a2968c87868686868686868686868686868686868686868686868686868686868686868a95a1adac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f62554844505a616e7b86929fa7a79f92867b6e615a50443a302f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facb9afa7a2a09f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f94877b6e6154483b2e211508000000000000000000000000020f1a26313e4a5764717d8a99a4a8988b7e7265544a3f34281c100300000000000000000916222f3c4955626f7c8895a2afaea398887c6f6255493c31251a0d06030615222f3c4855626f7c889aa4afaa9d9083776a564c4135291d11050000020e1925303b4854616e7b87929fabab9f948a7d706a60595350494e4e4d53555d606c73808c959c9ea6b0afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d4038424b555d676d7a839095a0a79f959082796d675d554b433930271e150c0200000000000006121f2b37434e586774808d9aa6b0a89b8e82756b60564c443d3937363a3c424a545f6975818e9baba7a2978a7d7064574a3d3124170a0000020b151d252c313435332e2d2a251e1b16100d070100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007131d28313d47515b606c77808c919ea1a9aea59e98928d87837f7c79777674747474747677797c7f83888e92999fa6aea8a199928b7f736d635a50463c2f261c0e050000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d60534d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4a49453e362c22170c00000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c4f51575957554f473e352c231a110800000000000000000006121f2b37434e585f626c6b6a696867656463626160626f7b8895a2aa93867a6d606061636465666768696a6b6c615e564c41362a1e1105000000020b17212b343e47515b606c78818f959f9d999299a0a7a49f96918b8884828181818284878b90959ea2a8a199928c7f736c61574e42372b22170b00000000000000000000000000000000000000000000000000000000000000071118242f3a434e58616c73808d949fa8a49992857b6e675c51453f342b20160b02000000000000000000000000131f2c3946525f6c7985929facada093877a797979797979797979797979797979797979797979797979797979797979788693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6255484c56616c76828f98a2aba0958c7f72695e53483e32282f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facb9a79d95939393939393939393939393939393939393939393939393939393939393939393877b6e6154483b2e211508000000000000000000000000000a14212e3a4754616d7a86939fa89b8f8275665c5044382c1f120600000000000000000916222f3c4955626f7c8895a2afb4aa988b7f7265574d42362a1f161210121c2834404a5465717e8b98acb6a79b8e8174685b4e413025190d010000000914202d3a46525e6975818e99a3afa69e92857c6f6b62605b535a5b575e61676d737e8893948f949eaaafa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d403039434b555d686d7a839096a0a79f959082796d675d554b423930261e140b0200000000000815212e3b47535f6a7884919eabaca096897c6f62594f443a322d2b2a2d3038424d5763707d89999b9a99988d8073665a4d4033271a0d000000030b131a202527282621201d19130f0a04010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f2b353f44505b656c747f8a92979ea6acaaa29f9a93908c898684828181808181828486898c90959a9fa3ababa49f9691877e736d635b51473e342a1d140a000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d605a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a575550483e33281c1105000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c515b63666361594f473e352c231a11080000000000000000030f1b26323c464e53555f5e5d5c5b5a595857565556626f7c8995a2a194877a6e615455565758595a5b5c5d5e5f54524c443b3025190d0100000000050f19222c353f44505b666d79839096a1a39fa3aba49a938c847f7b777675747475777a7e838a9297a1a8a39f918a7e716a5f53473e33281c10040000000000000000000000000000000000000000000000000000000000000007131d28313c46505a606d78828f96a1aba1979083796d605a50463c32281d140a000000000000000000000000131f2c3946525f6c7985929facada093877a6d6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f625548525d68717e8a949faaa4999083786d60574d42362c232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facb9a2958b868686868686868686868686868686868686868686868686868686868686868686867b6e6154483b2e211508000000000000000000000000000713202d3946525d687683909da99f9285796d6053463a2d20130800000000000000000916222f3c4955626f7c8895a2afb6a99c8f8376695e53463c3128201f1c1f232c3844515c6675818e9ba8b3a9988b7f7265584c3f322519080000000005121e2a36424d57626e7c87929fa7ada19791857d746f6c6568676869696e7279808893958f828f9ca8afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d40333039434c565e686e7a849196a1a79f948f82796d675c544b423830261d140a00000000000915222f3c4855626f7c8896a1adaa9e9184776a6054473d3228201f1e2026303c4753606d79868f8e8d8c8b8b8276695c504336291d100000000002090f14181b1b191413110d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d192327333f49535b606d737d858f949da0a7acaca49f9c989892918f8e8d8d8d8e8f919298999d9fa7acaca69f99938d847d716c635b51493f352c22180b02000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6767676767676767676767676767676767676767676767676767676767676767676764615a5045392d211408000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695c5b636d72706b61594f473e352c231a110800000000000000000a15202a343c4347485251504f4e4d4c4b4a49495663707c8996a3a194887b6e615548494a4b4c4d4e4f5051524746413b32291e140800000000000007101a2328333f4a545d676e7a84919eabacafa49a93888079726e696968676869686d71767e859196a1aaa39f92867c6e625a5044392d20150a00000000000000000000000000000000000000000000000000000000000000010c161f2a333e44505c666d7a849199a3a99f958e81746c62584e443a2f261c11060000000000000000000000131f2c3946525f6c7985929facada093877a6d606060606060606060606060606060606060606060606060606060606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f62554f59606d7a85929ea6a89f93877c6f665c50453b3124232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867979797979797979797979797979797979797979797979797979797979797979797976695e52463a2d2014070000000000000000000000000005111d2935414c566673808c99aaa298897c6f6356493c2f24190d01000000000000000916222f3c4955626f7c8895a2afb9ac9f93877b6e61584e433a312d2c282b2e343f4953606d7985929eabada197887c6f6255493c2f22160900000000020e1a25303b47535f6a73808d95a0a8a9a1979188817c797674747476787b7f848d939890837e8a97a3afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d403328313a434c565e686e7b849197a1a69f948f82796d665c544a42382f261c1106000000000c1925323f4c5865727f8b98a8b2a79a8d807467584e43352b20161212151f2c3845515c677481828180807f7e7d7063564a3d3023170a00000000000004080c0e0f0c07070501000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071017222d384149505b636b707b828990959c9fa4acaca9aaa39f9d9c9b9a9a9a9b9c9d9fa3aaaaababa39f9b948f878079706b625a514940372e231a100600000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada09386797373737373737373737373737373737373737373737373737373737373737373737373716c6155493c3023170a000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f82766958636d727f7d706b61594f473e352c231a110800000000000000040e18222a32373b3c4544434241403f3e3d3d4a5763707d8a96a3a295887b6f6255483c3d3e3f4041424344463b3936302920170d0200000000000000081117222d38424b555e6873808c99a6b3ac9f93887e736d67615f575b5a5b565e61656c717b849198a2aea2988f82766c6155493c32271b0f0300000000000000000000000000000000000000000000000000000000000000040d182128343f4a545e686f7c87929fa5a79d938b7e716a60564c42382d22170f0600000000000000000000131f2c3946525f6c7985929facada093877a6d605453535353535353535353535353535353535353535353535353606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f625554606b74818e97a1ada1968d80746a60544a3f33291f232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c5e574d42362a1e120500000000000000000000000000010d1924303c4956636f7c8998a2aa998c807366564c4135291d1104000000000000000916222f3c4955626f7c8895a2afbbafa4998d80746a5f554c433d3a383438393f44505b65717d8a97a2adab9e9285786c605346392d201306000000000009141f2b37434e58606d79839096a0a8a9a19a938e8985828181818284878c91969992867c7d8a97a4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d40332628313a444c565e696e7b859197a1a69f948f82786d665c544a42382d22170b000000030f1b27333f49536875818e9ba8b4aa978a7d7064574a3d3224190d0505101c2934404b55646f74757474737271706b6054483c2f221609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b262f383f44515961696e757d83898f939a9c9fa2aaa7a8aaa9a7a7a7a7a7a9a9a8a6a9a29e9b99928e88827c746d676059504840372e251c11080000000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facb3a79a8d8080808080808080808080808080808080808080808080808080808080808080808080807e7164574a3e3124170b000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695f6a727f8c867d706b61594f473e352c231a11080000000000000006101820262b2e2f3938373635343231313e4a5764717d8a97a4a295897c6f6256493c3132333435363738392e2d2a251e170e0500000000000000000006111c28343f4a54606d7a85929eabb7aa9d91847a6d665d55534d4e4e4e4c52545a61696f7c86929fa8aa9f948a7d7064584e43372b1f13060000000000000000000000000000000000000000000000000000000000000000060f17232e38424c56606a727f8b939da7a59f92867c6f685e544a3f332821180d03000000000000000000131f2c3946525f6c7985929facada093877a6d605447464646464646464646464646464646464646464646464653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f62555c666f7d88939fa9a59e9184796d60584e42382e2117232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d60606060606060606060606060606060606060606060606060606060606060605f524d453b30251a0e0200000000000000000000000000000813202d3a4653606d7985929fa99d908376685d5245392c201307000000000000000916222f3c4955626f7c8895a2afb4aba39f92877c6e675d554f4846443f44464a5059606c7883909da9b1a79a8e8174655b5044372b1f12050000000000030f1a26313c45515c676e7b8491969fa4aca49f9b97928f8e8d8e8f9196999e9892877e717e8a97a4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d4033261f28323b444d575f696f7c859298a2a69e948f81786d665c544a3f33281c0f03000005121f2b3744505b657784909daaaea298877b6e6154483b2e21150800000c18232f3943535d64686968676665646360594f44382c2014070000000000000000000000000000000000000000000406071013131313131310100d0a050000000003060809121313131313130d0c0a0702000000000000000000000000000000000a141d262d3340474f575e616b70777d82878b8f9298989a9b9d9e9e9f9f9f9e9d9d9b999797928e8a86817c766f6a605d554f473e362e251c130a000000000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facb9a99d928d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8174675b4e4134281b0e010000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f827669626e7b869292877d706b61594f473e352c231a110800000000000000060e151b1f21222c2b2a2928272625323e4b5865717e8b98a4a396897c706356493d3025262728292a2b2c21201e19140d050000000000000000000006121f2b3844505c66727f8c97a1adb8aca0968f81786c605b514842414141464750575f6a727f8c96a1ada69d9083766a6054473b2e22150900000000000000000000000000000000000000000101010101010101010101010006111c26303a444e58626d74818e95a0a9a39891847a6d665b50443e332a1f150b010000000000000000131f2c3946525f6c7985929facada093877a6d6054473a39393939393939393939393939393939393939393a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca295887b6f6257606d7984919aa4a99e938a7d70675d51463c30261c16232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d60535353535353535353535353535353535353535353535353535353535353534846423b33291f140900000000000000000000000000000006121f2c3844505c6675828f9ba89f92867a6d6054473a2d211409000000000000000916222f3c4955626f7c8895a2afaea39992999083796d6760595553504a5053545c606b727f8b959fabaca095897c6f6353493f33271b0f030000000000000a15202934404b555e696e7b848e939a9fa3aba9a19e9c9b9a9b9c9e9f9d9590867e70717e8b97a4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d403326162029323b454d575f6a6f7c869298939393938e81786d665b5044382b1f120600000613202d394653606c7985929facab9f928578695e52463a2d201407000007121d2731414b53595b5c5b5a59585856544f473d33271c100400000000000000000000000000000000000001070c1013141d2020202020201d1c1a16110a03040a0f1215151f2020202020201a1916130d07000000000000000000000000000000020b141b2227353e454d525960636b70757b7e8285888b8d8f9091929292929191908e8c8a8885817e7a746f6a626058514b433d352d241c130a01000000000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000060606060e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facb9aea49d9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a8e8174675b4e4134281b0e010000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276695f6a707e869292877d706b61594f473e352c231a0e0400000000000000040a0f1215151f1e1d1c1b1a1925323f4c5865727f8b98a5a3968a7d7063574a3d3024191a1b1c1d1e1f1414110d080200000000000000000000000713202d3a4653606d7985919ea9b3b2aca89e938d80746d625a50463d3336393e454e58606d7984919eabab9f95887c6f6255493c31251a0e02000000000000000000000000000000010507070d0d0d0d0d0d0d0d0d0d0d0d0d0d0a141e29323d46515b606d79839097a1aaa1968f82786c60594f453c31271d12070000000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca195887b6e625f69737f8c95a0aca2978e81756b61554b40342b1e1516232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d60534746464646464646464646464646464646464646464646464646464646463b3a36302921170d0200000000000000000000000000000003101c28343f4a5465727e8b98a8a3998a7d7064574a3d31261a0e020000000000000916222f3c4955626f7c8895a2afac9f928692958f827a706b6562605c545b6062666d727d86929fa7b0a69d9083776b605441382d22170b00000000000000030c18232f39434d575e696e7981878f92999b9d9e9f9f9f9e9d9b9895908a837c706c717e8b97a4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d4033261a172029333c454e58606a6f7d868686868686868681796c605346392d20130600000714212e3a4754616d7a8798a2aeaa9d9084776a574d42362a1e12050000010b151f2f3941484c4e4f4e4d4d4c4b4a48443d352b21160b000000000000000000000000000000000000030b12181d1f202a2d2d2d2d2d2d2a2926221c150d0e151b1f21222c2d2d2d2d2d2d2625231e19120a010000000000000000000000000000020a1117232c333b42464f54596063696e7276797c7e808283848585868585848382807d7b7975716d68625f58544e45403a312b231b120a0100000000000000000000000b1825313e4b5864717e8b97a4aca89b8e8175685b4e4235281b0f0200000000000306060c13131313131b2734414e5a6774818d9aa7aca4978b7e7164584b3e3125180b0013202c3946535f6c7986929facacacaea9a7a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a69a8e8174675b4e4134281b0e010000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f82766958616c707d869292877d706b61594f473e352c20160c020000000000000000030608091211100f0e0d1926333f4c5966727f8c99a5a4978a7d7164574a3e3124170d0e0f1011130807050100000000000000000000000000091623303c4956636f7c8997a1adb2a8a19ea19d928b7f726c61584e453c322d333c44515c66727f8c99a7b1a79a8d807367574d42362a1e12050000000000000000000000000002080d1113141a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a17202b343f45515c676e7b859299a4a89f948d80736c61574d43392f2418100700000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2120202020202020202020202020202020202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca194887b6e61626e7b86929fa8a69f92857b6e61594f433a2f22190c16232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6053473a393939393939393939393939393939393939393939393939393939392e2d2a251f170f0500000000000000000000000000000000000c17232e3b4855616e7b8896a0ab9a8d817467574d42362a1e12050000000000000916222f3c4955626f7c8895a2afa6998c7f8c94948f847d76726f6d666b666c6e72787f879298a3aea99f948a7e7164594f442f261b1106000000000000000007121d27313b454d575e676d747c82868b8e909192929291908e8b88837e786f6a64717e8b97a4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d4033261a0e17212a333c464e58606b6f7979797979797979756c665b5044382b1f120600000815222f3b4855626e7b8895aab4a99c8f8276695c4f4330251a0e02000000030d1d262f363c4041424141403f3e3d3c38332b231a0f050000000000000000000000000000000000030d151d24292c2d363939393939393736322d271f161820262b2e2f3939393939393933322f2a241c130a0000000000000000000000000000000006111a202930363d44484f54565e6165666d6f7174757778787979787877767573716f6d6664605d56534e47433d352f281f191109000000000000000000000000000b1825313e4b5864717e8b979f9f9f9b8e8175685b4e4235281b0f02000000060b0f12131920202020201b2734414e5a6774818d9a9f9f9f978b7e7164584b3e3125180b0013202c3946535f6c7986929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9a8e8174675b4e4134281b0e010000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276696464646b707d859292867d706b61594f473d32281e130800000000000000000000000006050403020d1a2633404d596673808c99a6a4978b7e7164584b3e3125180b02030405060000000000000000000000000000000005111d2935414c566773808d9aa9b2a8a0969196a19f93877e706a60574d443a312834404a54616e7b8795a0acaa9e918477695e53463a2d211407000000000000000000000000050c13191d2021272727272727272727272727272727272727272934404b555e69707d87939fa6a69f93887d70695f554b40352922190e05000000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114131313131313131313131313131313202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca194877a6e616c76828f98a3ab9f948b7e72685e52473e31281d100916232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6053473a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d21201e1a140d050000000000000000000000000000000000000614212d3a46535f697784919eaa9e918477695f53463a2d2114060000000000000916222f3c4955626f7c8895a2afa396897d828f97969189837f7b79787778797b7f848b9299a3aaaaa2978f82766c6155473d321d140a000000000000000000010b151f29333b454d555d606a6f757a7e8183858586858583817f7b77716d665f64717e8b97a4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d4033261a0d0f18212a343c464f5960636c6c6c6c6c6c6c6c68605b544a3f33281c0f030000091623303c4956636f7c8996a2afa89b8e8275685b4f4235281c0900000000000b141d252b303335363534333231302f2c27211a11080000000000000000000000000000000000020c151f272f35383a4346464646464643423e3831281f222a31373a3c45464646464646403f3b352e251c120700000000000000000000000000000000080e171f252a33383d44484d5254545c60626567686a6b6b6c6c6c6b6a6a68666462605c5454524c47433c383229241d160d0700000000000000000000000000000b1825313e4b5864717e8b93939393938e8175685b4e4235281b0f0200020a11171c1f20262c2d2d2d2c202734414e5a6774818d93939393938b7e7164584b3e3125180b0013202c3946535f6c79869293939393939393939393939393939393939393939393939393939393939393939393939393939393938e8174675b4e4134281b0e010000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f8f8276717171717171717c859292867d706b61594f443a3024190d01000000000000000000000000000000010d1a2734404d5a6773808d9aa6a5988b7e7265584b3f3225180c0000000000000000000000000000000000000000000713202d3946525d687784919daaaca09691849197a19992867c6f695f564c43392f2e3946535e697784919daaaca096877b6e6154483b2e2115080000000000000000000000050e171e252a2d2e34343434343434343434343434343434343434342f39434d57606b737f8c939ea8a49a92857b6e675d51453f342b20170c030000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070606060606060606060606060713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca094877a6d68717e8b949faaa3999083776c60564d41352c1f160c0916232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6053473a2d2020202020202020202020202020202020202020202020202020201514120e09020000000000000000000000000000000000000005121e2a36424d576774818d9aaba096887b6e6155483b2e23170b0000000000000916222f3c4955626f7c8895a2afa3968a7d7b8592999e95908b888685848486888c91959fa3abaaa29892857b6e615a5045352b210b0200000000000000000000030d172129333b434b51586062686e71747678797978787674726e6964605c5464717e8b97a4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d4033261a0d060f18222b343d474f54565f606060606060605b53504a42382d22170b0000000a1723303d4a5663707d8996a3b0a79a8e8174675b4e4134281b0e0100000000020b131a202427282928272625252322201c160f080000000000000000000000000000000000000a141e27313940454750535353535353504e4a433a31212a343c434748525353535353534d4b4740372e24190d0200000000000000000000000000000000050d141a21272c33383b4246474a505355585a5c5d5e5f5f5b60666c6c6c6c6c6a5c544a4745413a37312b272018130c040000000000000000000000000000000b1825313e4b5864717e868686868686868175685b4e4235281b0f00060b141c22282b2d333939393939382b34414e5a677480868686868686867e7164584b3e3125180b0013202c3946535f6c7987868686868686868686868686868686868686868686868686868686868686868686868686868686868686868174675b4e4134281b0e010000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f90837e7d7d7d7d7d7d7d7e7f869392867d706b61564c4135291d1105000000000000000000000000000000010e1b2734414e5a6774818d9aa7a5998c7f7266594c3f3326190c0000000000000000000000000000000000000000000714212e3a4754616d7a8796a0acaa9e91847b859298a29892857b6e685e554b42382d36424d576774818d9aa7b2a8978a7e7164574b3e3124180b00000000000000000000020c1720293036393a4040404040404040404040404040404040404040404040454f59606c77828f96a0aaa2979083796d605b51463d32291e150a0000000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca093867a6d6d7a85929ea6a89f92867c6e655b50443b30231a0d040916232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6053473a2d20141313131313131313131313131313131313131313131313131308070502000000000000000000000000000000000000000000020e1a26313d4a5764707d8a99a3a8988b7e7265544a3f34281c100300000000000916222f3c4955626f7c8895a2afa4978a7d717d8792989f9d9899929191919298989da0a8aba79f9892867d70695f53483e3323190f000000000000000000000000050f172129313a40454e54565e6164686a6b6c6c6c6b6a6865615f5753505864717e8b97a4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d4033261a0d00061019222b353d43484952535353535353534e46443f382f261c11060000000a1724303d4a5763707d8a96a3b0a79a8d8174675a4e4134271b0e01000000000001090f14181a1b1c1b1a1a1918171614100b0500000000000000000000000000000000000006111c263039434b51535d6060606060605d5b554d433829333c464e53555f6060606060605957524940352a1e1307000000000000000000000000000000000002090e161c21272c30363a3b3f4446494b4d4f5051575f666c72797979797975665c504439352f2b26201b160d0701000000000000000000000000000000000a1724303d4956626c7179797979797979756f65594d4034271b0e090f181d262d3338393f4646464646453834404c58646e7479797979797979716c6256493d3024170a00121f2c3845525e6a757979797979797979797979797979797979797979797979797979797979797979797979797979797979797979746f64594c4033271a0d010000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f95908a8a8a8a8a8a8a8a8a8c93999892867d70685d5246392d201307000000000000000000000000000000020e1b2835414e5b6874818e9b9f9f998c807366594d4033261a0d000000000000000000000000000000000000000000091623303c4956636f7c8996a8b2a89b8e81757c869299a19791847a6d675c544a3f33313e4b5865717e8b98a4b1a6998d8073665a4d4033271a060000000000000000000008131e29323a4146474d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d505b656d7a849198a2a9a0958e81756d62594f443b30261c110600000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca39986796d75818e97a2aca0968c80736a5f53493f32291f1108000916232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6053473a2d20140d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0b0a080500000000000000000000000000000000000000000914212d3a4754606d7a86929fa89b8f8275665c5044382b1f120600000000000916222f3c4955626f7c8895a2afa4978a7e71707d8690959d9fa39f9e9e9e9fa3aaa9a8a79f9d9590867d706b60574d42362c22110700000000000000000000000000050f171f282f353d43474c5254585b5d5e5f5f5f5e5d5b5855534d464b5864717e8b97a4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d4033261a0d0000071019232b32383b3c4646464646464646423938332d261d140a000000000a1724303d4a5763707d8a96a3b0a79a8d8174675a4e4134271b0e010000000000000003070909131211100f0e0d0a09070400000000000000000000000000000000000000091317232e38424b555d60696c6c6c6c6c6c6a665f554a3e323b454e585f626c6c6c6c6c6c6c66635b52473b2f23160a00000000000000000000000000000000000000050b10161c1f252a2d2e34383a3c3e444d525b62696e787f8686868687796d6053463a2d241e1b150f0a040000000000000000000000000000000000000815212d3945505a62646c6c6c6c6c6c6c68655d53483d3124180d1419212a2f383f44464c535353535352443f3848535c64676c6c6c6c6c6c6c64625a5045392d21150800111d2a36424e59636a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c67645d53483c3024180b000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828f9393939393939393939393979fa4a39892857a6d6154473a2e211407000000000000000000000000000000020f1c2835424f5b6875828e939393938d8073675a4d4034271a0d0100000000000000000000000000000000000000000b1825323e4b5865717e8b98a4b1a6998c7f73707e87939fa0969083796d665b50443f363c4956636f7c8996abb5a89c8f8275695c4f422e23170b000000000000000000010d1925303a444c52545a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a535d686f7c86929fa4a79e938b7f726b60564c42382e23170c00000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929fac9f928679707d89939ea9a59d9184796d60584e41382d20170d00000916232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6053473a2d201a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a171714110c050000000000000000000000000000000000000613202c3945515d677683909ca99f9285796d6053463a2d20130800000000000916222f3c4955626f7c8895a2afa4978a7e716b707c838a9095989b9d9e9f9f9f9e9d9b9895908a837b706b60594f453b31241a10000000000000000000000000000000050d161d242932373b4146474b4e505252535252504e4c4846423e4b5864717e8b97a4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d4033261a0d00000007101921272c2f303939393939393939352d2b28221c140b02000000000a1723303d4a5663707d8996a3b0a79a8e8174675b4e4134281b0e010000000000040a0f131516201f1e1d1c1b1a171614100b050000000000000000000000000000000009121b2528343f4a545d676d767979797979797671665b4e423b444d575f6a6f78797979797979736d63574b3f3225190c000000000000000000000000000000000000000000050b1014191e202429323a414650565e616d727b828c929992877e71665c5044382b1f130f0a04000000000000000000000000000000000000000005111d29343e48505658606060606060605b59534b41372c200e171f252a333b424a5053595f6060605f5e504a42414a53585a60606060606060585650483e34291d1105000e1a26313d4751595e5f606060606060606060606060606060606060606060606060606060606060606060606060606060606060605b59534a41362b201408000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100101c2936434f5c6976828686868686868686868686868b93999992877e70685d5246392d20130700000000000000000000000000000003101c2936434f5c6976828686868686868074675a4e4134271b0e0100000000000000000000000000000000000000010e1a2734414d5a6774808d9aa7b1a4978a7e716c727f8b929d9f958f81786c605b51483e3b4754616e7a8799a4afaa9d9084776a544a3f34281c1003000000000000000005111d2a36414c565e6167676767676767676767676767676767676767676767676767676767676a717e8a929daba59f92877d6f685e544a3f34281c1003000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929fac9f9285797984919ea5a99d93897d70675c51463c2f261b0e0500000916232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6053473a2d27272727272727272727272727272727272727272727272727272727272423211c171008000000000000000000000000000000000004111d2935414c5566737f8c99a9a297897c6f6356493c2f24190d01000000000916222f3c4955626f7c8895a2afa4978b7e71646a6f787e83888b8e909192929291908e8b88837e766e6960594f473d33291f120800000000000000000000000000000000040c131820272b3036393b3e4143454646454543413f3b3a363e4b5864717e8b97a4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d4033261a0d00000000070f161b1f22232c2d2d2d2d2d2d2d28201f1c17110a020000000000091623303c4956636f7c8996a2afa79b8e8174685b4e4135281b060000000000070f161b1f22232c2b2a292827262322201c160f08000000000000000000000000000008111b242d373f44505c666d798286868686868683766a5d5043434c565f696f7c85868686868686807366594d4033261a0d00000000000000000000000000000000000000000000000710191f282f353e444c525a61696e767f8690949a93877e716c61544a3f34281c100100000000000000000000000000000000000000000000000c17222d363e45494b535353535353534e4d4841392f251a19202930363f454d545b60666c6c6c6c6c6a5c544a3f41484c4e535353535353534b49453e362d22170c00000915202b353f474e5253535353535359636b6c6c6c6c6b64615a534d53535353535353534d535b60656c6c6c6c6b686157535353534e4c4841382f251a0f03000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e11000f1c2835414e5a6670767979797979797979797979797e869392877e706c61564c4135291d1105000000000000000000000000000000020f1b2835414e5a657076797979797979746e64584c4033261a0d0000000000000000000000000000000000000000020f1c2835424f5b6875828e9ba8afa396897c70636d74808d939e9e938d80746d625a50463d4653606c7986939facab9e928578665c5044382b1f120600000000000000000713202d3946525e686d7373737373737373737373737373737373737373737373737373737373737374808d99a3aea39991847a6e665c5044382c1f1206000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929fab9e918578808d96a0aca1978e81746b60554b40342a1d140a0000000916232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6053473a34343434343434343434343434343434343434343434343434343434343431302d28221a120800000000000000000000000000000000010d19242f3c4956626f7c8997a2a9998c807366564c4135291d1104000000000916222f3c4955626f7c8895a2afa4978b7e71645f666d71777b7e8183858586858583817e7b76716c615f574f473d352b21180d00000000000000000000000000000000000001070d151b1e252a2d2e31353738393939383735322e2d313e4b5864717e8b97a4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d4033261a0d0000000000040a0f1315161f202020202020201b13120f0b06000000000000000915222f3c4855626f7b8895aab4a89b8f8275685c4f422d22170b0000000007101921272c2f3039383736353433302f2c27211a110800000000000000000000000007101a232d363f49525c606d78828f94939393938c807366594d434c565e686e7b85919793939992877d706356493d3023160a00000000000000000000000000000000000000000000040f19222b313a41454f565e616c717b828b92989a93887e716c615a5042382e23170b00000000000000000000000000000000000000000000000006111b242d34393d3e4646464646464642403d372f271d1e2529323b424651575f666c72797979797975665c5044383c4041464646464646463e3d39342d241b11060000040f19242d353d42454646464646525e6b757979797978706c615f57514b434646424b51575f656c71787979797873685c5046464641403c362f261d130800000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e11000d1925323d49545e66696c6c6c6c6c6c6c6c6c6c717e879392877e716c615a50443a3024190d01000000000000000000000000000000000d1925313d49545e65696c6c6c6c6c6c67645c52473c3024170b000000000000000000000000000000000000000003101c2936434f5c6976828f9ca9aea295887b6f62606c78818f959f9d928b7f726c61584e4544505b667885929fabac9f9386796d6053463a2d20130700000000000000000714212e3a4754616d7a80808080808080808080808080808080808080808080808080808080808080808086929facaba1969082786d6053463a2d201307000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faa9d91847b87929fa8a69e92857a6d61594f43392e22180b020000000916232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d605347404040404040404040404040404040404040404040404040404040404040403e3c39332c241a1005000000000000000000000000000000000813202d394653606c7985929ea99d908376685d5245392c201306000000000916222f3c4955626f7c8895a2afa4978b7e7164545c6064696e72747678787979787675726e6964615a534d453d352b23190f060000000000000000000000000000000000000000040a0f14191e202125282a2b2c2c2c2b2a28252225313e4b5864717e8b97a4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d4033261a0d000000000000000307090913131313131313130f0606030000000000000000000714212e3a4754616d7a8798a2aea99c8f837669544a3f33281c0f030000040f19222b32383b3c464544434241403d3c38332b231a0f0500000000000000000000060f19222c353e48515b636e74818e949ea69e948e81746e63574b4b555d686e7a849197a1a49f93877e716b6054483b2f221609000000000000000000000000000000000000000000000a16212b343d434b515961686d757e858f949f9f93887f716c625a50483e30261c11060000000000000000000000000000000000000000000000000009121b22292d3031393939393939393534312c2518202830353e444d525b62696e787f8686868687796d6053463a2d33343939393939393931302d29221b12090000000008121b242b313638393939394653606c7987868686847d756e69605c554f46454f545c60696e777e8586868685786b5f524539393433302b251d140b0100000000000000000000000000000c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e11000915212c38424c545a5c6060606060605a626c717e879392877e716c615a50483e32281e130800000000000000000000000000000000000915212c38424c545a5c6060606060605a58524a41362b1f1408000000000000000000000000000000000000000003101d2a3643505d697683909ca9aea194877b6e615b666d79839096a09f93877e706a60574d444a546b7884919eabafa49a867a6d6053473a2d20140700000000000000000815222f3b4855626e7b888d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d9299a3aeb2a99f94897d7063564a3d3023170a000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faa9d9083839099a3aa9f948a7e71685d52473d30271d0f06000000000916232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d60534d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4a49453e362c22170c0000000000000000000000000000000006121f2b3844505b6675828e9ba89f92867a6d6054473a2d211409000000000916222f3c4955626f7c8895a2afa4978b7e7164585053575f6165686a6b6c6c6c6b6a6865615f57555046423b332b231a1108000000000000000000000000000000000000000000000002080e111414181b1d1f1f201f1f1d1b191825313e4b5864717e8b97a4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d4033261a0d00000000000000000000000606060606060606020000000000000000000000000613202d394653606c7985929facaa9e918477665b5044382b1f120600000a16212b343d434849535251504f4e4d4a48443d352b21160b000000000000000000050f18222b343e47505a626d73808d939da69f948f82786d605c524a545c676d7a839096a0a49c918b7f726c61594f44382c201307000000000000000000000000000000000000000000030f1b27323d464e555d606b707a818a92979f9b918b7f726d625a50483e362c1e140a0000000000000000000000000000000000000000000000000000000911171d2124252d2d2d2d2d2d2d282724201d2429323a414650565e616d727b828c929992877e71665c5044382b27272d2d2d2d2d2d2d2524211d17110900000000000009121920262a2c2c2d2d313e4b5864717e889396918a827b736d67615953525960666d737b828b929792877e7064574a3d312d282724201a130b020000000000000000000000020507080c1926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e110005101b26303a42494e4f535353534e58626c717e879393877e716c615a50483e362c20160c02000000000000000000000000000000000004101b26303a42494e4f5353535353534e4c4741382f241a0e03000000000000000000000000000000000000000004111d2a3744505d6a7783909daaada194877a6e61545d676d7a849197a19992867c6f695f564c515e6b7784919eaab6a094877a6d6154473a2e21140700000000000000000815222f3b4855626e7b88959a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9fa3abb5bbb0a6968a7d7063574a3d3024170a000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929fac9f928790959faba2988f82766c61564c41352b1e150b00000000000916232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d605a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a575550483e33281c1105000000000000000000000000000000030f1c28333f4a5465717e8b98a7a3998a7d7064574a3d31261a0e020000000916222f3c4955626f7c8895a2afa4978b7e7164584b464d5355585b5d5e5f5f5f5e5d5b5855534d49453e36312a211a11080000000000000000000000000000000000000000000000000000020507080b0e101213131212100e0c1825313e4b5864717e8b97a4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d4033261a0d000000000000000000000000000000000000000000000000000000000000000005121f2b3744505b657784909daaac9f9285796c605346392d20130600030f1b27323d464f54565f5e5d5c5b5a5956544f473d33271c100400000000000000040e17212a343d464f59616c727f8c929ca5a0959082796d665c5044505c666d79829095a0a59d928c7f736d625a50473d32271b100400000000000000000000000000000000000000000007131f2c38434e5860676d747d858e939fa29b918b7f726d625a50483f362d241a0c0200000000000000000000000000000000000000000000000000000000060c11151718202020202020201b1b191f282f353e444c525a61696e767f8690949a93877e716c61544a3f34281c1b20202020202020181715110c060000000000000000080f151a1d1f202024303d4956626c717f8b919e948f868079706b615f5d606b6f797f868f949f93887e716c6155493c30231b1a18140f08010000000000000000000003090e121415191926333f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100000a141e2830383d414346464647535f6a717e879393877e716c615a50483e362c231a0e04000000000000000000000000000000000000000a141e2830383d414346464646464641403c362f261d130800000000000000000000000000000000000000000004111e2b3744515e6a7784919daaada094877a6d6154555e686e7b859298a29892857b6e685e554b5e6a7784919daaada194877a6e6154473b2e21140800000000000000000815222f3b4855626e7b8895a1a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a7acaeb5acacaca3968a7d7063574a3d3024170a000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929faca39992999fa7a79f92867b6e615a50443a3023190c0300000000000916232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada093867a6d6767676767676767676767676767676767676767676767676767676767676767676764615a5045392d211408000000000000000000000000000000000b17222d3b4854616e7b8795a0ab9a8d817467574d42362a1e12050000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e4246484b4e505252535252504e4b4847423c39332a261f180f0800000000000000000000000000000000000000000000000000000000000000000204050606060504020b1825313e4b5864717e8b97a4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000030f1b27333f49536875818e9ba8aea398887b6e6255483b2d22170b0407131f2c38434f5960636c6b6a696867666360594f44382c201407000000000000040d162029333c464e58616b717e88939fa4a19690837a6d675d544a525c606d78818f949fa69e938d80746d635b51483e352b21160b000000000000000000000000000000000000000000000915222e3b4854606a6f79818a91979ea39c918c7f726d625b51483f362d241b12080000000000000000000000000000000000000000000000000000000000000005080a0b131313131313130f19222b313a41454f565e616c717b828b92989a93887e716c615a5042382e23170b131313131313130b0a0805000000000000000000000004090e11121315212d3945505a626d727f8b919c98928c847d756e69686d747c838c92989c918b7f726c625a5044392d20140d0b08030000000000000000000000060e141a1e2122252526333f4c5966727f8c99a5aa9d9184776a5e5144372b1e110000020c161e262c32353639393c4855626f7b869393887e716c615a50483e362c241a11080000000000000000000000000000000000000000020c161e262c3135363939393939393433302b241d140b0100000000000000000000000000000000000000000004111e2b3744515e6a7784919daaada194877a6e61544c565f696f7c869299a19791847a6d675c545e6b7784919eaaada094877a6d6154473a2e21140700000000000000000815222f3b4855626e7b88959f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f968a7d7063574a3d3024170a000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929facaba39fa3ababa0958c7f72695f53483e32281e11070000000000000916232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facada09386797373737373737373737373737373737373737373737373737373737373737373737373716c6155493c3023170a000000000000000000000000000000000614202d3a46525e697784919daa9e918477695f53463a2d2114060000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e363a3b3f4143454546464543423f3b3a37312d28221a140e060000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0ada6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000b17222d3f4c5865727f8b98a8b2aa978a7e7164544a3f33281b13101014222f3b4854606b6f79787776757473706b6054483c2f2216090000000000030c161f28323b454e58606a707d87929aa4a19791847b6e685d554b515b636e74818e939ea69e948e81776c605b51493f362c23190f04000000000000000000000000000000000000000000000916232f3c4956626f7c848e9393939393918c7f726d625b51493f362d241b12090000000000000000000000000000000000000000000000000000000000000000000000000606060606000a16212b343d434b515961686d757e858f949f9f93887f716c625a50483e30261c110600060606060606000000000000000000000000000000000001040605111d29343e48505a626d727f8c929c9f96918a827b73717a818891959f9d928c7f736d625a50483e33281c100400000000000000000000000000060f181f262a2d2e323232333f4c5966727f8c99a5aa9d9184776a5e5144372b1e11000000040c141b212528292d2e3a47535f6a73808c887e716c625a50483e362c241a120800000000000000000000000000000000000000000000040c141b212528292d2d2d2d2d2d2726241f1a130b020000000000000000000000000000000000000000000004111d2a3744505d6a7783909daaaea194877b6e6154484d57606a707e87939fa0969082796d665b5e6b7884919eabb4aa93877a6d6054473a2d21140700000000000000000815222f3b4855626e7b88939393939393939393939393939393939393939393939393939393939393939393939393939393938a7d7063574a3d3024170a000000131f2c3946525f6c7985929facada093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929facb5afacafafa4999083786d60574d42362c20160c000000000000000916232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facb3a79a8d8080808080808080808080808080808080808080808080808080808080808080808080807e7164574a3e3124170b0000000000000000000000000000000005121e2a36424d576774808d9aaaa096887b6e6155483b2e23170b0000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e312d2e32353738393939383735322e2d2b261f1c170e0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4afa295887c6f6255493c2f221609000714212d3a4754606d7a8793a0aca6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000616222f3c4955626f7c8896a1ada79a8e8174665b5044382d241f1c1d1f27303c4956636f7d868584838281807d7063564a3d3023170a00000000020b151e28313a444d575f6a6f7c869299a3a29892857b6e695e564c505a626d73808d939da59f948f82786d655b504940372d241a110700000000000000000000000000000000000000000000010e1b2734414e5a67748186868686868686867f736d635b51493f372d241b1209000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27323d464e555d606b707a818a92979f9b918b7f726d625a50483e362c1e140a00000000000000000000000000000000000000000000000000000000000c17222d363f48515b636d737f8c929ca09e948f867f7d848d939aa09d938d80736d635b51483e362c22170b00000000000000000000000000030e18212a31363a3b3f3f3f3f3f4c5966727f8c99a5aa9d9184776a5e5144372b1e1100000000020a1015191c1c1f2b37434e58636d73807e716c625a50483e362c241a1208000000000000000000000000000000000000000000000000020a1015191b1c2020202020201b1a17140e0801000000000000000000000000000000000000000000000003101d2a3643505d697683909ca9aea295887b6f625548454e58616c727f8c929d9f948e81786c605b657885929eabaea29886796d6053463a2d20130700000000000000000815222f3b4855626e7b8686868686868686868686868686868686868686868686868686868686868686868686868686868686867d7063574a3d3024170a000000131f2c3946525f6c7985929facaca093877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693a0acac9f9386796c605346392d201300131f2c3946525f6c7985929facb8bbb9b2a89f93877c6f665c50453b31241a0e04000000000000000916232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facb9a99d928d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8174675b4e4134281b0e01000000000000000000000000000000020e1a25303d4a5763707d8a98a3a8988b7e7265544a3f34281c100300000916222f3c4955626f7c8895a2afa4978b7e7164584b3e31252225282a2b2c2c2c2b2a282522211e1a15110c050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4aca295887c6f6255493c2f221609000714212d3a4754606d7a87939f9f9f998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000815212e3b47535f6a7884919eabab9e9185786c6053493f352f2c28292c2f39424f5966727f8c91908f8e8d8b7e7265584b3f3225180c000000000a141d273039434c565e696e7c859298a2a39992867c6f695f564d4f59626c727f8c929ca5a0959082796d665c53493f372e251b12080000000000000000000000000000000000000000000000010d1a2733404c58646e747979797979797979736d635b51493f372d251b12090000000000000000000000000000000000000000000000000000000000000000000000000000000000000007131f2c38434e5860676d747d858e939fa29b918b7f726d625a50483f362d241a0c02000000000000000000000000000000000000000000000000000000000006101b242d363f49515b636d73808d929da49e98928c8a91969fa49e938e81746e645b51493f362d241a10050000000000000000000000000009141f2a333b4246484c4c4c4c4c4c5966727f8c99a5aa9d9184776a5e5144372b1e1100000000000005090d0f0f1a26313c46525b646e73716d625a50483e362d241a120800000000000000000000000000000000000000000000000000000004090d0f101313131313130e0d0b080300000000000000000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8afa296897c6f6356493d46505a626d74808d939e9e938d80736d606c7986929facab9f928578665c5044382c1f120600000000000000000814212e3a47535f6a76797979797979797979797979797979797979797979797979797979797979797979797979797979797979706b6155483c2f231609000000131f2c3946525f6c7985929f9f9f9f93877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d7986939f9f9f9f9386796c605346392d201300131f2c3946525f6c7985929facacacacada1968d80746a60544a3f33291f120900000000000000000916232f3c4956626f7c8995a2ac9f9386796c605346392d20130013202c3946535f6c7986929facb9aea49d9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a8e8174675b4e4134281b0e01000000000000000000000000000000000914202d3a4753606d7a86929fa89b8f8275665c5044382b1f120600000916222f3c4955626f7c8895a2afa4978b7e7164584b3e312518181b1d1f1f201f1f1d1b181514120e090300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b979f9f9f95887c6f6255493c2f221609000714212d3a4754606d7a8793939393938c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000006131f2b37434e586774808d9aa6ada1978a7d70655b5045413a383435393b424b54606b7783909d9d9c9b95887b6e6155483b2e22150800000006111b262f39424b555e686e7b849197a2a49a92877d706a60574d4f59616c717e88939fa4a19690837a6d675d544a41382d251c1309000000000000000000000000000000000000000000000000000b1824303c48535c64676c6c6c6c6c6c6c6c66635b51493f372d251b130900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915222e3b4854606a6f79818a91979ea39c918c7f726d625b51483f362d241b12080000000000000000000000000000000000000000000000000000000000000009121b242d373f49525b636e74808d929da5a39f99979ea1a69e948e81786c605c524940372d241b110800000000000000000000000000020e1a26313b454d53555858585858585966727f8c99a5aa9d9184776a5e5144372b1e11000000000000000000000a15202a344049525c646765625a50483f362d241b1209000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978a7e7164574b3e3e48515b606c78818f959f9d928b7f726c6d7a8799a3afaa9e9184776b544a3f34281c1003000000000000000006121e2b37424e575f6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6361594f44382c201407000000131f2c3946525f6c7986929393939393877a6d6054473a2d2114070000000000000000000000000713202d3a4653606d798693939393939386796c605346392d201300131f2c3946525f6c7985929f9f9f9f9fa59e9184796d60584e42382e21170d0000000000000000000916232f3c4956626f7c89959f9f9f9386796c605346392d20130013202c3946535f6c7986929facacacaea9a7a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a69a8e8174675b4e4134281b0e010000000000000000000000000000000006131f2c3945515d6776828f9ca99f9285796d6053463a2d20130800000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180c0e101212131312100f0c08080602000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b9393939393887c6f6255493c2f221609000714212d3a4754606d7a86868686868686807366594d4033261a0d000000000000000000000000000000000000000000000000000000000000000000030f1b26323c4855626e7b88949eaca99d9083786c605a524c4645404045474c545c66707d8995a0aaa99d918477695f53463a2d2114070000000b17222d38414a545d676d7a839196a1a49f93887e716b60584e4e58606b707e87929aa4a19791847b6e685d554b42392f261b130a00000000000000000000000000000000000000000000000000000814202b36414a53585a60606060606060605957514940372e251b13090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916232f3c4956626f7c848e9393939393918c7f726d625b51493f362d241b120900000000000000000000000000000000000000000000000000000000000000000009121b252d374049525c646e74808d939da59f9f9f9fa79f948f82786d665b504a40372e251b1209000000000000000000000000000005121e2a36424d575f616565656565656566727f8c99a5aa9d9184776a5e5144372b1e1100000000000000000000030e18222e37404a52585a585650483f362d241b120900000000000000000000000000000000000000000000000000000000000000000000000000010507071313131313131313080705020000000000000000000000000000000000000c1926333f4c5966727f8c99a5b2a5998c7f7266594c3f363f44505b666d79839096a09f93877e706f7c8995abb5a99c8f8376695c50432e23170c000000000000000000020e1a26313c454e535560606060606060606060606060606060606060606060606060606060606060606060606060606060606057554f473e33281c1004000000131f2c3946525f6c7986868686868686867a6d6054473a2d2114070000000000000000000000000713202d3a4653606d788686868686868686796c605346392d201300131f2c3946525f6c798692939393939393938a7d70675d51463d30261c0f060000000000000000000916232f3c4956626f7c89939393939386796c605346392d20130013202c3946535f6c7986929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9a8e8174675b4e4134281b0e010000000000000000000000000000000004101d2935404b5566727f8c99a9a297897c6f6356493c2f24190d01000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180b0204050606060504020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e868686868686867c6f6255493c2f221609000713202c3945525d687679797979797979736d63574b3f3225190c000000000000000000000000000000000000000000000000000000000000000000000a15212e3a47535f6a76828f9aa4ab9f958c7f726c605d5653514b4b5153565e666d7983909da7ada2978b7f7265574d42372b1e12050000030f1b27333f49535c666d79839095a0a59c928b7f726c61594f4d575f6a6f7d869299a3a29892857b6e695e564c433930271d140a010000000000000000000000000000000000000000000000000000030f1a252f3841484c4e53535353535353534c4b4640372e251c1309010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010e1b2734414e5a67748186868686868686867f736d635b51493f372d241b1209000000000000000000000000000000000000000000000000000000000000000000000009131c252e37404a525c606c77818e93939393939393959082796d665c544a3f382e251c13090000000000000000000000000000000714212d3a46535f696e7272727272727272727f8c99a5aa9d9184776a5e5144372b1e11000000000000000000000006101c252e3840474c4d4b4a453f362d241b120900000000000000000000000000000000000000000000000000000000000000000000000002080d11131420202020202020201514120e0902000000000000000000000000000000000a1724313d4a5764707d8a97a9b2a89b8e817568564c4136333f4a545d676d7a849197a19992867c717e8a97a4b1a79a8e8174675b4e4134281b06000000000000000000000915202a333c4247485353535353535353535353535353535353535353535353535353535353535353535353535353535353534a48443e352c21160b00000000121f2b3844515d6974797979797979797976685d5245392c20130700000000000000000000000006121f2c3844505c66767979797979797979766c5f5346392d201300131f2c3946525f6c7986868686868686868681756c61554b40342b1e150a000000000000000000000916232f3c4956626f7c86868686868686796c605346392d20130013202c3946535f6c79869293939393939393939393939393939393939393939393939393939393939393939393939393939393938e8174675b4e4134281b0e0100000000000000000000000000000000000c18242f3c4955626f7c8897a1a9998c807366564c4135291d1104000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4956626c7179797979797979766a5f53473b2e2115080004111d2935414c565d6c6c6c6c6c6c6c6c66635b52473b2f23160a0000000000000000000000000000000000000000000000000000000000000000000006121f2b37434e58626f7c87939fa8a79f93887e746d6863605c54555d6063686e78818e95a0aca69f9285796d6053473c31261a0e02000005121f2b3744505b656d78828f959fa59d938c80736d625a504c565f696f7c859298a3a39892867c6f695f564d443a31271e150b020000000000000000000000000000000000000000000000000000000008131d262f363c40414646464646464646403e3b352e251c130a01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d1a2733404c58646e747979797979797979736d635b51493f372d251b1209000000000000000000000000000000000000000000000000000000000000000000000000010a131c252e384044505b656c7881868686868686868683796d675d544a42382d261c130a010000000000000000000000000000000815222e3b4855616e7b7f7f7f7f7f7f7f7f7f818f9ba8aa9d9184776a5e5144372b1e110000000000000000000000000a131c262e363c3f403e3d3a342d241b1209000000000000000000000000000000000000000000000000000000000000000000000000050c13191d20212d2d2d2d2d2d2d2d21201e1a140d050000000000000000000000000000000815222e3b4855616e7b8896a1adaa9d908477685e5246392d38424b555e686e7b859298a29892857b808d9aa6b4aa988b7f7265584c3f3225190c00000000000000000000030e18212a31373a3b4646464646464646464646464646464646464646464646464646464646464646464646464646464646463d3c38332c231a100500000000101c2935414d5862696c6c6c6c6c6c6c6c6c5d564c4135291d110400000000000000000000000003101c28343f4a545c6c6c6c6c6c6c6c6c6c6c645a4f43372b1e1200121f2b3844515d6974797979797979797979756f65594f433a2f22190c03000000000000000000000815222e3b4754606a6f79797979797979766c5f5346392d20130013202c3946535f6c7987868686868686868686868686868686868686868686868686868686868686868686868686868686868686868174675b4e4134281b0e0100000000000000000000000000000000000713202d394653606c7885919ea99c908376685d5245392c201306000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212d3945505a62646c6c6c6c6c6c6c625f584e43372b1f130600010d19242f3a444c525f606060606060605957524940352a1e130700000000000000000000000000000000000000000000000000000000000000000000020f1a26313c4754606a74818e96a0a9a49a9387807a74706d666a6a676d70747a828e939ea7a89f948b7e72675d5145392a1f140900000815212d3945505a606c77818e949fa69e938e81746e635b5146525e686e7b859197a2a39992867d706a5f574d443b32281f150c030000000000000000000000000000000000000000000000000000000000010b141d252b303334393939393939393933322f2a231c130a0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824303c48535c64676c6c6c6c6c6c6c6c66635b51493f372d251b13090000000000000000000000000000000000000000000000000000000000000000000000000000010a131c2627333f49535b666c757979797979797979776d675d554b42392f261c140a01000000000000000000000000000000000b1724313e4a5764717d8a8b8b8b8b8b8b8b8b8f939eaaaa9d9184776a5e5144372b1e11000000000000000000000000010b141c242b30333432312e29221b1209000000000000000000000000000000000000000000000000000000000000000000000000050e161e252a2d2e39393939393939392e2d2a251f170f0500000000000000000000000000000714212d3a46535f697884919eabac9f93877a6d6154473c322f39434c565f696f7d86929aa197918483909daaaea298897c6f6356493c302316090000000000000000000000060f1820262b2e2f393939393939393939393939393939393939393939393939393939393939393939393939393939393939302f2c28211a110800000000000d1925303b4650585d5f606060606060605f524c443a2f24190d01000000000000000000000000000c17232e38424a505f60606060606060605f5a52493e33271b0f00101c2935414d5862696c6c6c6c6c6c6c6c6c68655d53473e31281d1007000000000000000000000006131f2b38434e5860626c6c6c6c6c6c6c6c645a4f43372b1e1200121f2c3845525e6a757979797979797979797979797979797979797979797979797979797979797979797979797979797979797979746f64594c4033271a0d01000000000000000000000000000000000005121f2b3744505b6575818e9bac9f92867a6d6054473a2d211407000916222f3c4955626f7c8895a2aca4978b7e7164584b3e3125180b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111d29343e485056586060606060606055534e463c32261b0f03000008131e28323a414553535353535353534d4b4740372e24190d0200000000000000000000000000000000000000000000000000000000000000000000000a15202b37434e58606d7a849197a2a9a499938d85807d79787777787a7c81868f949ea5a9a1969082776c60554b403529180e0300000a1724303d4956626c74808d939ea69f948f81786d605c52494754616e7a849197a1a49a92877e706b60584e453c322920160d0300000000000000000000000000000000000000000000000000000000000000020b131a202427272d2d2d2d2d2d2d2d2625231e19120a010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814202b36414a53585a60606060606060605957514940372e251b130900000000000000000000000000000000000000000000000000000000000000000000000000000000010a1417222d38414a545b60686c6c6c6c6c6c6c6c6a605d554c433930271d140a0200000000000000000000000000000000000b1724313e4a5764717d8a97989898989898989b9ea6b0aa9d9184776a5e5144372b1e1100000000000000000000000000020b12191f2326272524211d181109000000000000000000000000000000000000000000000000000000000000000000000000020c1620283036394646464646464646463b3a36302921170d020000000000000000000000000005121e2a36424d576875818e9baaafa49a8b7e7164584e43372b313a444d57606b717e88939fa096919095a0abac9f9285796d6053463a2d201307000000000000000000000000060e151a1e21222d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2423201c16100800000000000008141f2a343e464d5152535353535353535345413a32281e1308000000000000000000000000000006111c2630383f44535353535353535353534f4940372c21160a000d1925303b4650585d5f60606060606060605b59534b42352c1f160c000000000000000000000000030f1b27323d464e5456606060606060605f5a52493e33271b0f00111d2a36424e59636a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c67645d53483c3024180b000000000000000000000000000000000000030f1b27333f495364717e8a9aa4a3998a7d7064574a3d3124170a000916222f3c4955626f7c88959f9f9f978b7e7164584b3e3125180b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c17222d363e45494b535353535353534947433c342a20150a000000010c1620282f35394646464646464646403f3b352e251c1207000000000000000000000000000000000000000000000000000000000000000000000000030f1b27323c45515d676e7c859297a0a7a49f97928d89868584848586898d92989fa6a79f9791847b6e655b50433a2f2418060000000b1825313e4b5864717e8b929da5a0958f82796d665c504a43505d6a76839096a0a99f93887e716c61594f463c332a20170e0400000000000000000000000000000000000000000000000000000000000000000001080f14181a1b2020202020202020191916120d070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1a252f3841484c4e53535353535353534c4b4640372e251c13090100000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b262f38424a50535b60606060606060605d54514c433a31271e150b020000000000000000000000000000000000000b1724313e4a5764717d8a979f9f9f9f9f9f9f9f9f9f9f9f9d9184776a5e5144372b1e11000000000000000000000000000001080e1317191a181715110c060000000000000000000000000000000000000000000000000000000000000000000000000008131e28323a41465353535353535353534846423b33291f140900000000000000000000000000020e1a26313e4a5764717e8a98a2aeac9c8f82766a5f53473f352f323c454f59616c727f8c929da09d9da0a7b1aa9c8f8275665c5145382c1f13060000000000000000000000000003090e121415202020202020202020202020202020202020202020202020202020202020202020202020202020202020171614100b0500000000000000020d18222c343b414446464646464646464639352f2820160c010000000000000000000000000000000a151e262e343846464646464646464646433e372e251b10050008141f2a343e464d515253535353535353534f4d48423930231a0d04000000000000000000000000000a16202b343d43474953535353535353534f4940372c21160a000e1a26313d4751595e5f606060606060606060606060606060606060606060606060606060606060606060606060606060606060605b59534a41362b201408000000000000000000000000000000000000000b17222d3a4754616d7a87939393938d8174675a4e4134271b0e000916222f3c4955626f7c8893939393938b7e7164584b3e3125180b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b242d34393d3e464646464646463c3b37322a22180e0400000000040d161e24292c393939393939393933322f2a241c130a00000000000000000000000000000000000000000000000000000000000000000000000000000a15202935414c555f6a6f7c8590959fa3a9a19e9a96979291909192999a9fa2aaa29f9590857b6e695e53493f31281d13070000000d1a2633404d596673808c99a4aa9d91847a6d675c544a3f45525e6b7885919ea8a5998c7f726c625a50473d342a21180e0500000000000000000000000000000000000000000000000000000000000000000000000003080b0d0e13131313131313130d0c0a06020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131d262f363c40414646464646464646403e3b352e251c130a0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d262f383f44464e5353535353535353504745413a31281f150c03000000000000000000000000000000000000000b1724313e4a5764717e8a93939393939393939393939393939184776a5e5144372b1e110000000000000000000000000000000003070b0d0d0b0b09050100000000000000000000000000000000000000000000000000000000000000000000000000010d1925303a444c525f60606060606060605f524d453b30251a0e02000000000000000000000000000914202d3a4753606d7985929fabab9f94887c6f625b5145403937333d46505a626d74808d939ea7aaabb1aea2988b7e7164544b4034281c1004000000000000000000000000000000020608081313131313131313131313131313131313131313131313131313131313131313131313131313131313130a0907040000000000000000000006101a222a3035383939393939393939392c29241e160d0400000000000000000000000000000000030c151c23282c3939393939393939393937332c251c13090000020d18222c343b414446464646464646464642413d3730271e11080000000000000000000000000000040f19222b32383b3c4646464646464646433e372e251b1005000915202b353f474e5253535353535353535353535353535353535353535353535353535353535353535353535353535353535353534e4c4841382f251a0f03000000000000000000000000000000000000000613202d3946525e687783868686868684776b5e5144382b1e11000916222f3c4955626f7c868686868686867e7164584b3e3125180b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b22292d3031393939393939392f2e2b2620181006000000000000040c13191d202d2d2d2d2d2d2d2d2625231e19120a010000000000000000000000000000000000000000000000000000000000000000000000000000040d19242f3a434e58606a6f7b838c92989ea1a9a7a9a29f9d9d9e9fa3aba9a19e98928d837b6e695f574d41382d1f160c010000000d1a2633404d596673808c99a3ac9f92867c6f695f564c4345525e6b7885919ea6a89c8f82786d605c52493f362c2319100700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b141d252b303334393939393939393933322f2a231c130a01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b141d262d333839424646464646464646443a39352f281f160d0300000000000000000000000000000000000000000b1724313e4a5764717e8686868686868686868686868686868684776a5e5144372b1e1100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111d2a36414c565e6c6c6c6c6c6c6c6c6c6c5e574d42362a1e12050000000000000000000000000006131f2c3945515d6774818d99a3afa69c8f82766d625a514b474242414148515b606c78818f959fabb8b4aa9f92857a6d6054473a2e23180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000810181f25292b2c2d2d2d2d2d2d2d2d201d19130c04000000000000000000000000000000000000030a11171c1f2d2d2d2d2d2d2d2d2d2d2b27211b130a0100000006101a222a3035383939393939393939393534312c251e150c0000000000000000000000000000000007101920272b2e2f393939393939393937332c251c13090000040f19242d353d4245464646464646464646464646464646464646464646464646464646464646464646464646464646464646464641403c362f261d1308000000000000000000000000000000000000000005111e2a36414c5667717779797979797772675c4f43372a1d11000815212e3b47535f6a7679797979797979716c6256493d3024170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000911171d2124252d2d2d2d2d2d2d22211f1b150e06000000000000000001080d111314202020202020201a1916130d07000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e28313c464e5860696e7980868d9197999c9d9fa3aaaaa9a19e9c9a97928d8680796e695f574d453b2f261b0d04000000000a1623303d495663707d87929aa4a29891857b6e685e554b424e5b6874818e949fa79e948e81746e635b51483e352b22180f060000000000000000000000000000000000000000000000000000000000000000000000000000030607090b0d0f1111121313121211100f0d0a08070502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b131a202427272d2d2d2d2d2d2d2d2625231e19120a010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b141c22282b2d353939393939393939372d2c29241e160d040000000000000000000000000000000000000000000a1723303c4955616c71797979797979797979797979797979797771675b4f43362a1d10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050a0d0f1013130f0e0c09040000000000000713202d3946525e6876797979797979797976695e52463a2d2014070000000000000000000000000004101d2935404b55616e7b87929fa9ab9f948b7f726c605d55534d4e4e4e4b51535b666d7983909da9b6aea2988d8073675d5145392c1d1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060d14191c1f1f202020202020201413110d0801000000000000000000000000000000000000000000060c1012202020202020202020201e1b1610090100000000000810181f25292b2c2d2d2d2d2d2d2d2d282825201b140c030000000000000000000000000000000000070f161b1f22232d2d2d2d2d2d2d2d2b27211b130a0100000008121b242b31363839393939393939393939393939393939393939393939393939393939393939393939393939393939393939393433302b251d140b010000000000000000000000000000000000000000010d1925303a44555f676a6c6c6c6c6c6b6760564b3f33271b0e0006131f2b37434e585f626c6c6c6c6c6c6c64625a5045392d21150800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c11151718202020202020201615130f0a04000000000000000000000001040707131313131313130d0c0a0702000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f2a333d464e575f676d737b8085898c8f919298a3a8a196918f8d8985807b736d675e574d453c33291d140a00000000000916222f3b4854606b717e88939fa4a19791847a6d675d544a4653606d78828f959fa69d938d80736d625a50473d342a21180e050000000000000000000000000000000000000000000000000000000000000000000104060b10121315171a1c1d1e1f1f201f1f1e1d1b19171514120e0906030000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080f14181a1b2020202020202020191916120d070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171c1f20282d2d2d2d2d2d2d2d2a21201d19130c04000000000000000000000000000000000000000000000814212d3945505a61646c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6a675f564b3f33271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a11161a1c1d20201c1b1915100902000000000714212e3a4754616d7a86868686868686867b6e6154483b2e21150800000000000000000000000000000c18242f3946535f6974808d96a1aba69f92877e736d67615f575b5a5b555d60636a6f7a83909daab6ab9f92857a6d61554b42382d2217110800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d101213131313131313130707040100000000000000000000000000000000000000000000000000030613131313131313131313120f0a050000000000000000060d14191c1f1f20202020202020201c1b19150f090200000000000000000000000000000000000000040a0f13151620202020202020201e1b16100901000000000009121920262a2c2c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d282724201a130b020000000000000000000000000000000000000000000008131e2932434d555b5d60606060605e5c564e44392e23170b00030f1b26323c464e535560606060606060585650483e34291d110500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005080a0b1313131313131309080603000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d18212b343d454d555d60696e73787c7f828486929fa196898482807d79746e69605c554d453c332a21170b0200000000000713202c38444f59616c727f8c929da5a0969083796d665c5044515c666d79839096a0a59c928b7f726c61594f463c332920170d0400000000000000000000000000000000000000000000000000000000000001070d1113171c1f20222426292a2b2b2c2c2c2b2b2a28262422211e1a1312100c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000003080b0d0e13131313131313130d0c0a06020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f12131b20202020202020201d1413110d0801000000000000000000000000000000000000000000000004111c28333e48505557606060606060606060606060606060605e5b564d44392e23170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d151c2226292a2d2d292825211b140c030000000714212e3a4754616d7a87939393939393877b6e6154483b2e211508000000000000000000000000000007121d2a36424d57606d7a849199a3aba39992878079736e696968676869676d70757c8490959fabb3ab9e91847a6e675d544a3f3328231a100700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d10121313131313131313130f0e0c09040000000000000000000000000000000000000000000000030608091313131313131313120f0a050000000000000000080f151a1d1f20202020202020202020202020202020202020202020202020202020202020202020202020202020202020201b1a18140f08010000000000000000000000000000000000000000000000020d1720313b434a4f515353535353514f4b443c32281d120600000a15202a343c434749535353535353534b49453e362d22170c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010407070b0d0f111213131212100e0c080705020000000000000000000000000000000000000000000000000000000000060f19222b333c434b51565e61666c6f7375777e8a979e9184787673706d66615e56514b433b332a21180f0500000000000003101b27323d47505a626d73808d939ea69f958f82786d605b524a545d676d7a849197a1a49f93887e716b60584e453b32291f160c0300000000000000000000000000000000000000000000000000000003090e13181d2023282b2d2f3133353737383939393837373533312e2d2a26201f1c17110d080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306060f1313131313131313110706040100000000000000000000000000000000000000000000000000000c17222c363e45494a53535353535353535353535353535353514f4b443b32281d12060000000000000000000000000000000000000000000000000000000000000000000000000000000000030d161f272d32353639393534312c261e150c0200000714212e3a4754616d7a87949f9f9f9f94877b6e6154483b2e2115080000000000000000000000000000010e1a26313b45525d686f7d879299a3aaa399938d847f7b787675747475777a7d828991969fa7aca6a8a1969083796d665b50443f362c22190f05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080b0e111112131312110f0c0908060300000000000000000406070b0f1213131211100e0c0b0906010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004090e111213131313131313131313131313131313131313131313131313131313131313131313131313131313131313130e0d0b08030000000000000000000000000000000000000000000000000000050e1f2931393f4244464646464644433f39322a20160c010000040e18222a32373b3c464646464646463e3d39342d241b110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010406070a0d10111213131211100d0a07060400000000030505060606060606000000000000000000000000000000000000000000000000000002080d111314171a1c1e1f1f201f1f1d1b181514120e090400000000000000000000000000000000000000000000000000000000071019212a313940454d52545b60636669707d8a979e9185786b6763605c54524d454039302921180f0600000000000000000b16212b353e48515b606c77818e949fa79e948e81746d635a504b555e686e7b859198a2a49a92877d706a5f574d443a31281e150b02000000000000000000000000000000000000000000000000040a0f151a1d24292c2e34383a3c3e404244444546464545444342403d3b3a36312d2c28231c19130d08020000000000000000000000000000000000000000000000000000000000000000000000000000000000040607090c0e1011121313131211100f0d0b080705020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005101a242c33393c3e4646464646464646464646464646464644433f39322920160b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151f2831383e4243464642413d3730271e140900000714212e3a4754616d7a8794a0acaca194877b6e6154483b2e21150800000000000000000000000000000009141f2935414c56606b717e879298a0a8a49f97918c8885838181818283868a8f939da0a8a39f999b9e9f958f81786c605b51483e342b21170d0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e121415181b1d1e1f201f1f1d1b191515120f0a0401000000070c101313181c1e1f201f1e1d1b181815120d0600000000000000000004090e111213131313131313131313131313131313131313131313131313131211100e0c0a07060400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d171f272e33363739393939393837332e2820180e040000000006101820262b2e2f3939393939393931302d29221b120900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080d111314171a1d1e1f1f201f1e1c1a171413100c07010c0f1112131313131313090907030000000000000000000000000000000000000000050b1013191d20212427292b2b2c2c2c2b2a282522211e1a14100c07010000000000000000000000000000000000000000000000000000070f181f272f353b42464a5053565964707d8a979e9185786b5e5653504a46423b342e271e170f06000000000000000000040f19232c363f44505b656d78828f95a0a69d938c80736c62594f4c565f696f7c869299a3a39992867c6f695f564c433a30271d140a0000000000000000000000000000000000000000000000070c151b20262b2f35393a3f4446484a4d4f5051525253525251504e4c4a4846423d3a38342e29251e19140d050000000000000000000000000000000000000000000000000000000000000000000000000004070c10121316191b1d1e1f1f201f1f1e1d1b19171414110e0806030000000000000000000000000000000000000000000000000004090e1112131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313130b0a080400000000000000000008121a22282d3031393939393939393939393939393939393736332e2820170e04000000000000000000000000000000000000000000000000000000000000000000000000000000000005111c27313a434a4e5053534f4d49423930261b1004000714212e3a4754616d7a8794a0adaea194877b6e6154483b2e211508000000000000000000000000000000030d19242f3a444f59616c717e8691969fa2a9a19e9997918f8e8d8e8f9092999b9ea5a69f99928d8e939e9e938d80746d625a50463d33291f140900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f141a1e212125282a2b2c2c2c2b2a282622211f1b15110d08030b12181c1f2025292b2c2c2c2b2a272524221d18110901000000000000080f151a1d1f202020202020202020202020202020202020202020202020201f1f1e1d1b19161413100c07040100000000000000000000000000000000000000000000000407090a13131313131313131313131313131313131313131313131313131313131313131313131313131313130b0a080400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d151c2227292a2d2d2d2d2d2b2a27231d160e06000000000000060e151b1f21222d2d2d2d2d2d2d2524211d171109000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e13191d20212427292b2b2c2c2c2b292724201f1c18120e181c1e1f2020202020201615130f0a0400000000000000000000000000000000040a0f171c1e24292c2d3133363738393939383735322e2d2a261f1d18120b060000000000000000000000000000000000000000000000000000060d151d24293036383f44464a5764707d8a979e9185786b5e5246443f38363028231d150c05000000000000000000000007111a2427333f49535c666d79839096a1a59c928b7e716b61584e4d575f6a707d879299a4a29891857b6e685e554b42392f261b11060000000000000000000000000000000000000000030b121820262b31373a4145474a50535557595c5d5e5e5f5f5f5e5e5d5b595755534d4946443f3835302a251e170e0802000000000000000000000000000000000000000000000000000000000000000001070c1013181c1f20232527292b2b2c2d2c2c2b2a28262421201e1915120f0a0300000000000000000000000000000000000000000000080f151a1d1f20202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020171714110c0500000000000000000810171c2123242d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2b2a27231d160e050000000000000000000000000000000000000000000000000000000000000000000000000000000000000a16222d38434c545a5d60605c59544b42372c211509000714212e3a4754616d7a8794a0adaea194877b6e6154483b2e2115080000000000000000000000000000000008131e28323d47505a616c717c848c92989d9fa4a9a19e9c9b9a9b9c9d9fa3a9a29f9a94908780818e949f9d928b7f726c61584e453b31251a0e020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c161b1f252a2d2e31343738393939383735322f2e2b26201d19130c151d23282c2d32353839393838363432312e29231b1309000000000009121920262a2c2c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2c2c2b29282623201f1d1813110d080100000000000000000000000000000000000000050b101416172020202020202020202020202020202020202020202020202020202020202020202020202020202020171714110c05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040b11161a1d1e20202020201e1d1b17120c040000000000000000040a0f13151620202020202020181715110c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060e141a1e24292c2d3033363738393939383634302d2c29231d1a24282b2c2d2d2d2d2d2d23221f1b160f070000000000000000000000000000070f151b22282d3035393a3e404244454646454543413f3b3a36312c29241d17110a0200000000000000000000000000000000000000000000000000030b12181f252a2d33383d4a5764707d8a979e9185786b5e524538342e2a251f18120b0300000000000000000000000000091217222d38414b545d676e7a849197a1a49f92877d706a60574d4e58606b717e87939fa4a19791847a6d675d544a41382d22171209000000000000000000000000000000000000070c151d232831373c42474b5154545c60626466686a6a6b6c6c6c6b6a6a686664615f575653504a46413a3630292019130d05000000000000000000000000000000000000000000000000000000000003090e12181d1f23282c2d3032343638383939393838373533312e2d2a25211f1b150f0b060000000000000000000000000000000000000009121920262a2c2c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2423211c1710080000000000000000050c11141717202020202020202020202020202020201e1d1b17120b04000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d1a26323e4a545e66696c6c68655d54493d3125190c000714212e3a4754616d7a8794a0a2a2a194877b6e6154483b2e21150800000000000000000000000000000000010c16202b343e48505a616a6f797f858b90939a9a9c9d9e9f9f9f9e9d9c9a9897928d88837c7378828f95a09f93877e706a60574d42362a1e1205000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a111720272b31363a3b3e4144444546464544423f3c3b37322c29241e191e272e34383a3e42454646454443413f3d3a342d251b110600000008121b242b31363839393939393939393939393939393939393939393939393939393837363432302d2c2924201d19130e0902000000000000000000000000000000000810161c2023232d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2423211c17100800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060a0e1011131313131311110e0b0601000000000000000000000003060809131313131313130b0a0805000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070f181f262a2f35393a3d404344454646454443403d3a38342f2a252f3437383939393939392f2e2c272119100700000000000000000000000009101920272b33393a4145474a4d4f515252535252504e4b4846423b39352f27221b140b050000000000000000000000000000000000000000000000000001070c14191c2228313d4a5764707d8a93939185786b5e52453828231c19140c070000000000000000000000000000000006111b262f39424c555e686e7b859298a2a39992867c6f695f564c4f59616c727f8b929ca5a0969083796d665c53493f3327241a1007000000000000000000000000000000000810191e272e343c43474d53555d6064666d6f7173757777787979787877767573706e696763605c54524c46413b322a251e170e06000000000000000000000000000000000000000000000000000001070c141a1d24292c2e34383a3c3f4143444546464645444342403e3b3936302e2b261f1c17110a020000000000000000000000000000000008121b242b3136383939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393931302d28221a120800000000000000000004080a0b1313131313131313131313131313131311100e0b060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1c2935424e5a6670767979756f65594d4134281b0e000714212e3a4754616d7a87949595959594877b6e6154483b2e2115080000000000000000000000000000000000040d19222d363e48505860676d737a7f83878a8d8f90929292929190908e8b8885807c766f6a6d7a8390969a9992867c6f695e53463a2d2114070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c151c232832373b4246484b4e505152535252504e4c4847433c39352f28222b30394045464b4f5152535251504e4b4a463f372d23180d0100040f19242d353d42454646464646464646464646464646464646464646464646464646454443413f3d3a38352f2c29241e1a140c06000000000000000000000000000008111a21272c2f30393939393939393939393939393939393939393939393939393939393939393939393939393939393931302d28221a120800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b1218212a31363a4145474a4d505152525352514f4d4a4745403936313a4044454646464646463c3b38322b22190f04000000000000000000020a131b222b32373e44494c5254575a5c5e5e5f5f5f5e5d5b5855534d47454039332d261d170e06000000000000000000000000000000000000000000000000000002090e111724313d4a5764707d8686868684786b5e5245382b17110e09020000000000000000000000000000000000000a141d27303a434c565f696f7c869299a3a29892857b6e685e554b505a626d73808d939da69f958f82786d655b50443f362c22190f04000000000000000000000000000009111a222a303940454e53575f62676d7175797b7d8082838485858685858483817f7d7b7874706d66615e56524c443e36302920180f07000000000000000000000000000000000000000000000000030b12181f252a2f35393a404446494c4e5051525253525251504e4c4a4746413c3a37312b28221c140b070000000000000000000000000000040f19242d353d4245464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646463e3c39332c241a1005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d69768286868175685c4f4235291c0f000714212e3a4754616d7a87888888888888877b6e6154483b2e21150800000000000000000000000000000000000007101b242d363e464e555c60676d72767b7e80828485858685848483817e7c79746f6a625f686e7b848d8d8d8d8d857b6e6154483b2e21150800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d151e262e343d43474d5354585b5d5e5f5f5f5e5d5b5955534e4745413a3129343c424b5153585c5e5f5f5f5e5d5a585651493f34291d1206000915202b353f474e5253535353535353535353535353535353535353535353535353525251504e4c494745403a39352f2a251f17110a03000000000000000000000005101a232c33383c3d46464646464646464646464646464646464646464646464646464646464646464646464646464646463e3c39332c241a100500000000000004090e111213131313131313131306040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004090e111213131313131313131306040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c151c2328333b42464c5254575a5c5e5e5f5f5f5e5c5a5753514b46423b454c50525353535353534948433d342b21160a0000000000000000000a141c252d343d43475055565d606466696a6b6c6c6c6b6a6865615f5753514b443f382f292018100600000000000000000000000000000000000000000000000000000000061623303c4955616c70797979797872685c5043372a1e06000000000000000000000000000000000000000000020b151e28313b444d57606a707d87929fa3a19791847a6e675d544a515b636e74818e949ea79f948e81776c605b51483e342b21160a0000000000000000000000000009121b232c343c424b51585f62696e747a7d8185888a8c8f9091919292929191908e8c8a8884807d79736d68615e565046413a322a2119100700000000000000000000000000000000000000000000060d151d24293136394045474a515356585a5c5e5e5f605f5f5e5d5b595754524c4847433c38332d261d18120b030000000000000000000000000915202b353f474e52535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353534a49453e362c22170c00000000000000000000000000000000000000010406070a0c0e101112131313121211100e0c0a070604010000000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000713202d3a4653606d787c7c7c7c7c7c7c7c786d6053463a2d2013070000000000000000000000000000000000000009121b242d343d434b51555d6065696e717375777879797978777674716f6d66625f58565e696f7c8181818181807f7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b151f2730383f444e54575e6164676a6b6c6c6c6b6a6865625f5854524c433f353c464e545c6065686b6c6c6b6b696765625b51463a2e221509000e1a26313d4751595e5f60606060606060606060606060606060606060606060605f5f5f5e5c5b595653514b4745413a363028231c150c05000000000000000000000b16212c353d44484a53535353535353535353535353535353535353535353535353535353535353535353535353535353534a49453e362c22170c0000000000080f151a1d1f20202020202020202013100c0701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080f151a1d1f20202020202020202013100c070100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b151e272e343f454d53565d606366696a6b6c6c6c6b696763605c55534d444f575c5f60606060606056544e463d32271b0f030000000000000009121c262e373f464e545a6164686d7173757778797978787674726e6965605d555049413a322a221810060000000000000000000000000000000000000000000000000000000814202d3944505a61646c6c6c6c6b6860564b4034281b0f00000000000000000000000000000000000000000000030c161f29323c454e58616b717e8b919ca4a0969083796d665c5349525c606d78828f959fa69e938d80736d625a50473d32271b0f03000000000000000000000009121b242d353e464e545c606a6f757b81868a8e929797999b9d9d9e9f9f9f9e9d9d9b999796918d8985807a746e68615a524c443c332b2219100700000000000000000000000000000000000000000910181f272f353b42464b5153545c60636567696b6b6c6c6c6b6b6a686664615e5655534e46443f382f28231d150c0500000000000000000000000e1a26313d4751595e5f606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060575550483e33281c11040000000000000000000000000000000104080d11131417191b1d1e1f1f20201f1e1e1d1b19161413100d0704000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f0006121f2c3844505c666d6f6f6f6f6f6f6f6f6d665c5144382c1f1206000000000000000000000000000000000000000009121b222b313940454b5154575e616467696a6b6c6c6c6b6a69676562605c54534e4d575f6a6f747474747474726d62564a3d3124180b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d273139424a50586062696e71747777787979787775726f6a66605d56504540454e5860666d717578797978777674726d62564a3d3124180b00111d2a36424e59636a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b6a69676563605d5554524c46423b342e261e170f06000000000000000004101c27333d474f55566060606060606060606060606060606060606060606060606060606060606060606060606060606060575550483e33281c110400000009121920262a2c2c2d2d2d2d2d2d2d2d1f1c18120b030000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121920262a2c2c2d2d2d2d2d2d2d2d1f1c18120b0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121c273039404451575f61686d7073767778797978777673706d67615e57505761686b6c6c6c6c6c6c6260584e43382c1f130700000000000006101b242e384049515860626c70757a7d808284858586858583817e7b77726d67605b534c443c342a22180e05000000000000000000000000000000000000000000000000000004101c28333e48505557606060605e5c564e453a2f23170b0000000000000000000000000000000000000000000000040d17202a333d464f59626c737f8c929da5a0958f82786d655b5044505c666d79839095a0a59d928c7f726c61594f43382c1f13070000000000000000000007101b242d363e474f585f666d737c82878e92989b9ea2a9a6a8aaa8a7a6a6a6a7a8a9a8a6a8a19e9a97928c86807a716c615e564d453c342b22190e0500000000000000000000000000000000000009121b222a313940454d53555d6065666d6f72747677787979797877767573716e6867625f5853504a423d342e271e170e0500000000000000000000111d2a36424e59636a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c64615a5045392d2114080000000000000000000000000002080d1113191d2021232628292b2c2c2c2c2c2b2b2a28252320201d1813100c0700000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f0003101c28343f4a545c606262626262626262605c544a4034281c10040000000000000000000000000000000000000000000910191f272f343a4145474d5254575a5c5d5f5f5f5f5e5d5d5b585553514a4743454e585f6267676767676765625b51463a2e2215090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c18242f39434b545c606a6f757b7e8183848586858583817f7c78726d68625a514b4d57606a6f797e82848586858483817f7265584b3f3225180c00121f2c3845525e6a7579797979797979797979797979797979797979797979797979797877767472706d6765605d56524d443f38302921180f06000000000000000714202c38444f5961636c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c64615a5045392d211408000008121b242b3136383939393939393939392c29231d150d03000000000000000000000000000000000000000000000000000000000000000000000000000000000008121b242b3136383939393939393939392c29231d150d0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e39424a515b63696e747a7d808384858586858482807d79746e69605b536873787979797979796f6a6054483b2e2215090000000000030e18222d36404a525b626a6f767d82868a8d8f919192929291908e8b88847e79716c655e564e463c342a20170c0300000000000000000000000000000000000000000000000000000b17222c363e44494a5353535352504b453c33281e1207000000000000000000000000000000000000000000000000050e18212b343e47505a636d74808d939ea69f948e81776c6053464a545d676d7a839196a1a49f93887e716b6054483b2f221509000000000000000000050e19222d363e485059616a6f7980878f93999fa3aaabaaaaa29f9d9b9a9a999a9a9b9d9fa2aaa9aba9a19e98928d857e756d685f574e463c342a20170c030000000000000000000000000000000009121b242c343c434b51575e61676d7175797c7f81838485858685858483817f7d7a77736f6a64605b544f454039302920170f05000000000000000000121f2c3845525e6a7579797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979716c6155493c3023170a000000000000000000000001080d13191d2024292c2d303335363738393939393837363432302d2c29241f1c18120b060000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f00000c17232e38424a5053555555555555555553514a42392e23180c0000000000000000000000000000000000000000000000070d151d23292f35393b4246474a4d4f51525253525151504e4b4946444039373c464e53555a5a5a5a5a5a585651493f34291d120600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141e2935404b555d666d747c82878b8e909192929291908e8c88847f7a716d605d55535f696f7c848b8f9192929291908d86796c605346392d20130013202c3946535f6c798786868686868686868686868686868686868686868686868685858483817f7c7976726d68615e57504a423b332a22180f050000000000000916232f3c4855616b707979797979797979797979797979797979797979797979797979797979797979797979797979797979716c6155493c3023170a00040f19242d353d424546464646464646464638342f271f150b01000000000000000000000000000000000000000000000000000000000000000000000000000000040f19242d353d424546464646464646464638342f271f150b0100000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404a545c606d727b81868a8d8f9191929292918f8d8a85807b726c655c6b78858686868686867c6f6256493c2f23160900000000000a15202a343e48525c636d727c838a8f9299999c9d9e9f9f9f9e9d9b9895908b857e776d685f584e463c32291e150a000000000000000000000000000000000000000000000000000005101a232c33393c3d464646464543403a332a21170c0100000000000000000000000000000000000000000000000000060f19222c353f48515b606c78818f94939393938c7f7366594c424b555d686e7b84919793939a92867c6f6356493c302316090000000000000000020d17202b343e48505a616b707c838c92999fa4abaca7a09d999892908f8d8d8d8d8d8f909298989c9fa4abaaa29f97928a827a6e6960584e463c32291e150b00000000000000000000000000000008121b242d363e464e555d60696e74797e8285898b8d8f91919293929291908e8c8a8784807c76716c666059514b433b332921170e05000000000000000013202c3946535f6c79878686868686868686868686868686868686868686868686868686868686868686868686868686868686868686867e7164574a3e3124170b00000000000000000000040c13191e24292c2f35393a3d3f4143444546464645454443413f3d3a39352f2c28231d17110a02000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000006111c2630383f444649494949494949494644403930271c1207000000000000000000000000000000000000000000000000030b12181d24292c30363a3b3e40424445464646454443413e3c3a38342e2b343c4347484e4e4e4e4e4e4b4a463f372d23180c010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c26303845515d676d7880898f93999a9d9e9f9f9f9e9d9b9896918c857e756d675d58626e7b8691969b9e9f9f9e9e9c9386796c605346392d20130013202c3946535f6c79869293939393939393939393939393939393939393939399929292918f8e8c8986827e7a746e69605c544d453c342a21170c0200000000000a1723303d4a5663707d86868686868686868686868686868686868686868686868686868686868686868686868686868686867e7164574a3e3124170b000915202b353f474e5253535353535353535345403931271d12070000000000000000000000000000000000000000000000000000000000000000000000000000000915202b353f474e5253535353535353535345403931271d12070000000000000000000000000000000000000000000000000000000000000000000000000000000000030e18212c3844515c666d757f878d9298999c9d9e9f9f9f9e9c9a98928d867f776d666679869293939393887b6e6255483b2f22150800000000030f1b26313c46505a636e737f8790949c9fa3aba8a5a3a1a1a1a3a5a7a7a09d97928b827a6f6a5f584e443b30261c1106000000000000000000000000000000000000000000000000000008111a22282d3031393939393837342f2821180f0500000000000000000000000000000000000000000000000000000007101a232d364044505b666d79828686868686868275695c4f42434c565e696f7c858686868686867f7265584c3f3225190c000000000000000009141f29323d46505a626c717d8690959fa3ababa49f9b95908c898584828180808081828385888b8f93999fa2aaa9a19e938f847b6f6a60584e443b30271d12070000000000000000000000000006101a242d363f4850585f676d737b80858b8f9298989a9c9e9e9f9f9f9e9e9d9b999795908d88837e786f6b605c554d453b332920170c030000000000000013202c3946535f6c798692939393939393939393939393939393939393939393939393939393939393939393939393939393939393938a7e7164574a3e3124170b000000000000000000070d161e24293035393a4145474a4c4e505152525353525151504e4c494745403a38342e27221b140b060000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f00000c17232e38424a5053555555555555555553514a42392e23180c0000000000000000000000000000000000000000000000000001070c13181d20252a2d2e313436373839393938373634322f2d2c2823222a31373a3c4141414141413f3d3a342d251b110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17232e3842505a606d79828d929b9fa4ababa39f9d9c9b9c9d9fa19e97928b82796d685f6a76828f98a1a8aaa39f9995949386796c605346392d20130013202c3946535f6c7986929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa39f9f9e9d9c9a9899928f8b86817b736d665e574e463c33291e140a00000000000a1723303d4a5663707d899393939393939393939393939393939393939393939393939393939393939393939393939393938a7d7164574a3e3124170b000e1a26313d4751595e5f606060606060605f514b43392f23180c0000000000000000000000000000000000000000000000000000000000000000000000000000000e1a26313d4751595e5f606060606060605f514b43392f23180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000915202c38434f59606d78818c92999fa2aaa9a8aaa29f9e9e9e9fa29f98928c81786d6d798699a39f9f94877a6e6154473b2e2114080000000006121f2b37434e58626c73808b92999fa6aca49f9c989695949596989c9fa4a9a19e948f847c6f6a5f564d42382e23170c0300000000000000000000000000000000000000000000000000000810171c2023242d2d2d2d2b2a28231e170f06000000000000000000000000000000000000000000000000000000000008111b2428333f4a545c676d767979797979797570655a4d413a444d575f6a6f78797979797979726d62564a3e3124180b00000000000000030d1925303b444e58626c717e879298a0a7afa79f99938e88837f7c79777574737373747577797c7f83878d92989ea5ada59e9691857c6f6a5f564c42392e23180c030000000000000000000000030c18222c363f48505a616a6f7980868d92979c9fa2aaa7a9a8a7a6a6a6a7a8a9a8a6a7a09d9a94908a837c746d675e574d453b32291e150a0000000000000013202c3946535f6c7986929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f978a7d7164574a3e3124170b00000000000000000810181f282f353a4145474c525456595b5c5e5f5f5f5f5f5e5e5d5b585653514b46454039332d261d180f0700000000000000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f0003101c28343f4a545c606262626262626262605c544a4034281c1004000000000000000000000000000000000000000000000000000001070d11141a1e20212427292a2c2c2c2c2b2a2a282522201f1c181820262b2e2f34343434343432312e29231b1309000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a54616c74818e949da4aca7a09d9992908f8f8f9192999a9e9f948f837a6d666f7c88949faaaea398928c88878886796c605346392d20130013202c3946535f6c7986929facacacada7a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a6a7a8a9a7aba39f9c98928d867f786e695f584e453b30261c1106000000000a1723303d4a5663707d89969f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f978a7d7164574a3e3124170b00111d2a36424e59636a6c6c6c6c6c6c6c6c6c5c554b4034291c10040000000000000000000000000000000000000000000000000000000000000000000000000000111d2a36424e59636a6c6c6c6c6c6c6c6c6c5c554b4034291c1004000000000000000000000000000000000000000000000000000000000000000000000000000000020e1a26313b4854606b74808d939fa3ababa49f9b979892919192939a989d9f938f82786d7a8794abb4a094877a6d6154473a2e211407000000000815212e3a47535f6a717e8b929fa3aba69f9a938f8c89888788898c90939a9ea6a69f9691857c6f685e544a3f34281f1409000000000000000000000000000000000000000000000000000000050b10141617202020201f1e1b17120c0500000000000000000000000000000000000000000000000000000000000000091217222d38424b555c60696c6c6c6c6c6c69655e54493d323b454e585f626c6c6c6c6c6c6c65625b51463a2e221509000000000000010b151f2a36424d56606a717e889299a2aaafa49c959087817c77726f6d6668676766676768666c6f72767b80868e939fa3aaa8a09792867c6f685e544b40342820150900000000000000000000000b151e2a343e48505a626c717c848c92989fa2a9aca8a8a09e9c9a9a999a9a9b9d9fa3ababaaa69f9c95908781796e695e574d443b30261c110600000000000013202c3946535f6c7986929facacacaea9a7a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a4978a7d7164574a3e3124170b0000000000000008111a222a313a41454c5254565d60636668696a6b6c6c6c6c6b6a69676563605d5553514b443f382f2a21191107000000000000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f0006121f2c3844505c666d6f6f6f6f6f6f6f6f6d665c5144382c1f1206000000000000000000000000000000000000000000000000000000000104090e111414171a1c1e1f1f201f1e1e1d1b18161312100c0e151b1f21222727272727272524221d18110900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505c66717e8b939ea6aea59d95908a86838282838486898d92979f959083786d73808d99a6b0a89f9286807c7a7b7d7063574a3d3024170a0013202c3946535f6c7986929facb9ada39b9898989898989898989898989898989899999a9c9ea1a8a9acaaa29f98928c837b6e6a5f574d42382e23170b010000000a1723303d4a5663707d8996a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1978a7d7164574a3e3124170b00121f2c3845525e6a75797979797979797976675c5145382c1f13060000000000000000000000000000000000000000000000000000000000000000000000000000121f2c3845525e6a75797979797979797976675c5145382c1f130600000000000000000000000000000000000000000000000000000000000000000000000000000006121e2b37424e57636f7c87939fa5afa9a199938f8a878584848586888c90959e948d80747b8794a1ada093877a6d6054473a2d2114070000000713202c38444f59626f7c86929fa4afa49c948f87827f7c7b7a7b7c7f83878f949fa3a8a19791857a6e665c50443b31261a0e030000000000000000000000000000000000000000000000000000000004080a0a1313131312110f0b070100000000000000000000000000000000000000000000000000000000000000000006111c262f39434b51535d6060606060605c5a544c423729333c464e53555f606060606060585651493f34291e120600000000000007121d27313946525e696f7c86929aa3ababa39f928d837c756f6a6662605c545a5a5a5a5a545b606265696e747b818a9298a2a9a9a19891847a6e665c51453c31261a0e0500000000000000000007121d27303c46505a626c717e8691969fa2aaaba39f9b9796918f8e8d8d8d8d8f9092999a9ea1a9aba79f9a938d837b6e695e564c42382e23170c04000000000013202c3946535f6c7986929facb9aea49d9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a978a7d7164574a3e3124170b00000000000007101a242c343c434c51565d6065686d707274767778797979787877767472706d6764605c555049413c332b231910070000000000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000713202d3a4653606d787c7c7c7c7c7c7c7c786d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000020507080b0d0f11121313131211100e0b0907060400040a0f1215151b1b1b1b1b1b181815120c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7884919ea5afa69d938e837d797776757677797c80858c9298958e81747683909ca9aca0958a7e736f6e6e706b6155483c2f2316090013202c3946535f6c7986929facb9a79b918b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8c8d8d8f9196979c9fa3abaaa29f9590847c6e695e544a3f34281d13070000000a1723303d4a5663707d899494949494949494949494949494949494949494949494949494949494949494949494949494948a7d7164574a3e3124170b0013202c3946535f6c798786868686868686796d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c798786868686868686796d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3a47535f6a76828f9aa4afaba1979287827d7a79787778797b7f838a9196928a7e7b8895a1ada093867a6d6053473a2d2014070000000916222f3b4854606b76828f98a2aea49c928c827b7672706e6e6e7072767c828b9299a3a9a1979082786d60574d42362a20150a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d273139404547505353535353534f4d49423930212a343c434748525353535353534c4a463f372d23180d010000000000000c18232f3943505a616e7b859198a3acaca399928b80786f6a625f585653504a4e4d4d4d4e4a505355575e61696e757e869297a2aaaaa1969082786d60574e42372b21170b0000000000000000000c18232e39424e58616c717f8a9298a0a8aba49f99928e8a8784828180808081828486898d92979ea1a8aca49f9590847b6e685e544a3f342820150a000000000013202c3946535f6c7986929facb9a99d928d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8a7e7164574a3e3124170b0000000000040e19222c363e464e555d60686d72767a7d7f8183848585868685848483817f7c7a75706d67605b534e463d352b22190d0400000000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a87888888888888877b6e6154483b2e21150800000000000000000000000000000000000000000000000000000000000000000000000001030405060606050403010000000000000000030608090e0e0e0e0e0e0c0b09060100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a96a0acac9f948e8179716d67696869676d70747a7f869095938a7e7885929fabaa9d9184776c6261616361594f44382c2014070013202c3946535f6c7986929facb2a5988b7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f80808284878b8f92999fa7aea79f9691847b6e665c50443a2f24180d0100000a1723303d4a5663707d87878787878787878787878787878787878787878787878787878787878787878787878787878787877e7164574a3e3124170b0013202c3946535f6c7986929393939393867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929393939393867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000815222f3b4855626e7b88949facaea39992857d75716e686b6b666d6e72767d84909492857d8996a3aca09386796d6053463a2d201307000005111e2a36424d5663707d89949faaa79d928c80766e69656362616263656a6f767f879299a4a99f948c7f73695f53463c31261a0f010000000000000000000005080a0b1313131313131313131313131313131313131313131313131313131313131313131313130f0f0d09040000000000000000000000000000000000000000020b151f272f34383a4346464646464642413d3730271e222a31373a3c454646464646463f3e3a342d251b110600000000000004101c2934404b55616c76828f97a1aaafa49a92877e736d665f58534e4946443f41404040413f4446484d53565e616c717c859298a2aca89f948d80736a5f53473e33281c10040000000000000004101c2834404b545f6a717e87939fa2aaa9a199938e86827e7a777574737373747577797c80858b91969da5afa79f9691847a6e665c50443c32261b0f040000000013202c3946535f6c7986929facb3a79a8d80808080808080808080808080808080808080808080808080808080808080808080808080807c6f6255483c2f22150900000000020c16202b343e4850585f676d737a7f8386898c8e8f9192929292929191908e8b8986827d79716c655f584f473d342b20160c01000000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a87949595959594877b6e6154483b2e211508000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d576875818e9ba8afa49a8f82786d66605d555c555c6063676d727b838f9391857b8797a2ada79a8d8074675a545557554f473e33281c10040013202c3946535f6c7986929facada093867972727272727272727272727272727272737475787a7e828790959da4aea9a1969083786d60554b4135291d110400000713202d3a4653606d787a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a796d6053463a2d2013070013202c3946535f6c7986929f9f9f9f93867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929f9f9f9f93867a6d6053473a2d2014070606060606060606060504020000000000000000000000000000000000000000000000000000000d192633404c5966737f8c99a6b0ac9f92877c6f6b64615e56545c6062656c707a8290949083909daaaca09386796d6053463a2d20130700000714202d3a46525e6976828f9ca6aca0958d80736d625f575655545556585f626d727e87939fa6a69f92867b6e61584e43372b1e13080000000000000000060c111517182020202020202020202020202020202020202020202020202020202020202020202020201c1b191510090200000000000000000000000000000000000000030d151d23292c2d363939393939393635312c261e151820262b2e2f3939393939393932312e29231b13090000000000000006131f2c3845515c67707d8a949fa9b0a69f93887e716c605c544e47433c3a38342e3433342d3338393c42464d525a616a6f7c86929aa4afa69f92877b6e62594f44392d20150a0000000000000006131f2c3845515c666f7c869299a4aea8a0979187817b75716d6869676766676768676d7073797e848e939fa4aca8a0969083786d60584e43372b20150a0000000013202c3946535f6c7986929facada0938679737373737373737373737373737373737373737373737373737373737373737373737373736f6a5f53473a2e2115080000000008131e28323d46505a616a6f7a80868b909399999b9c9d9e9f9f9f9f9e9d9c9a9898928e8a847e786e6a60594f463d32281e1308000000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a8794a0a2a2a194877b6e6154483b2e2115080000000000000000000000000000000000000000000000000000000000020608080b0e10121213131211100e0b0807050200000000000000000000000000000000000000000000000000000000000000000000000000020507080a0d0f1111121313131211100e0c0906050300000000000000000000000000000000000000000714202d3a46525e697885919eabac9f93877c6f665c54514b4f4b5153555d60696e79818f949083909da9b3a4988b7e7165584b484a48443e352c21160b000013202c3946535f6c7986929facada093867a6d656565656565656565656565656566666769686d71767c838d929da5afa89f958c7f72675d5145392c201307000006131f2c3845515c666d6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6d675c5145382c1f13060013202c3946535f6c7986929facaca093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facaca093867a6d6053473a2d20141313131313131313131212110f0d0a07060401000000000000000000000000000000000000000005111e2a36424d576976838f9ca9b1a79a8d80736a605954524c4a5053555a61676d798290959095a0abaca09386796d6053463a2d20130700000814212e3b4754616e7b87939e9fa39d9083786d605b534d49484748494e535b626c727f8c949faba3988f82756a5f53473a2f24190d010000000000000911171d2124252d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d292825211b140c0300000000000000000000000000000000000000030b12181c1f202a2d2d2d2d2d2d292825211b140c0e151b1f21222c2d2d2d2d2d2d2524221e1811090100000000000003101c28343f4a54606d7984919ea6b0aa9e948c7f736c625a504a423c37322d2c282327272722282b2d31363b42465058606a707e88939fa8aea3998f82766c6155493c31261b0f00000000000004111d2935414b55606d79839098a3aba9a09691857d746e6964615d565b5a5a5a5a555c6063666d7179818b939aa4afa89f958c80736a5f54473d32271b0f0100000013202c3946535f6c7986929facada093867a6d676767676767676767676767676767676767676767676767676767676767676767676767625f584e43372b1f1206000000010d1924303a444e58616c707c848d92989c9fa4a49f9e9c9a9a99999a9a9b9d9fa3a29f9b96918b837c706b60584e443a2f24190d020000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a8794a0adaea194877b6e6154483b2e21150800000000000000000000000000000000000000000000000000000104090e121415181b1d1e1f20201f1e1d1a181514120e090401000000000000000000000000000000000000000000000000000000000000000105080e11141417191c1d1e1f20201f1f1e1c1b181513120f0b060000000000000000000000000000000000000815212e3b4854616e7b8797a1adaa9d9083776a5f544b4540424045474b51575f676d78828f9590959fabb0a3968a7d7063574a3d3d3c38332c231a1005000013202c3946535f6c7986929facada093867a6d6058585858585858585858585858595a5a565d60646a6f78808d939eaab1a79e92857a6d6054473a2f24180d010004101c2834404b545c606161616161616161616161616161616161616161616161616161616161616161616161616161616161605c554b4034281c10040013202c3946535f6c7986929facada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20202020202020202020201f1f1e1c1a171413110d08040000000000000000000000000000000000000714202d3a46525e697885929fabaca095877b6e61584f4746413f44464850555d676e7b85929da0a7b1aca09386796d6053463a2d20130700000c1926323f4c5965727f8c8f91929996897d70665c5047423d3b3b3b3d4347515a606c77828f99a3aa9f93877c6f62564c4135291d1104000000000009121b22292d30313939393939393939393939393939393939393939393939393939393939393939393939393635312c261e150c020000000000000000000000000000000000000001070c1013141d2020202020201c1b1915100902030a0f1215151f202020202020191815120d06000000000000000006121f2b3844505c66727f8c96a0acaea2988f82776c605a50443f38302b26201f1c171a1a1a171c1f20252a30363e464e58616c73808d96a1acab9f948a7d7064584e43372b1d120700000000000613202c3945515d67737f8c95a0aaada19791847b706b615e5754524c4e4d4d4d4e4b5153545c60676d747f88939fa5afa79f92877c6f62584e43372b1d120700000013202c3946535f6c7986929facada093867a6d605a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a55534e463c31261b0f0300000005111d2935414c56606a707e8691969fa2a49f9b9993918f8e8d8d8c8d8d8f9092989a9fa2a19e9590867d706a60564c4135291e13080000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a8794a0adaea194877b6e6154483b2e21150800000000000000000000000000000000000000000000000001080d11151a1e212225282a2b2c2c2c2b2b2a272421211e1a14100d070100000000000000000000000000000000000000000000000000000002080d1114191e20212426292a2b2c2c2d2c2c2b29272522201f1b17110f0a040000000000000000000000000000000916222f3c4955626f7c8895a9b3a79a8d817467584e4239352f34383a40454d555c666d7a85919d9fa7b1afa396897c706356493d302f2c28211a110800000013202c3946535f6c7986929facada093867a6d60534c4c4c4c4c4c4c4c4c4c4c4c4c4d4d4c5254585f666c78818e98a2aeada2978b7e7265554b4035291d100400000c18232e39424b51535454545454545454545454545454545454585c5c5c5c5c58545454545454545454545454545454545453514b43392e23180c000013202c3946535f6c7986929facada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d2d2d2d2d2d2d2d2d2d2d2d2c2b2a28262421201d1913100c07000000000000000000000000000000000814212e3b4754616e7b8798a2aeaa9d908377695e53463d393634383a3e434c555e69717e8b97a1adb9aca09386796d6053463a2d20130700000a1723303d4a5663707d80828486888a84776b60544a3f37312f2e2f31373f44505b656e7b87929faca49a8e8174685d5245392c2013080000000006111b242d34393d3e46464646464646464646464646464646464646464646464646464646464646464646464642413d3730271e140900000000000000000000000000000000000000000000040607101313131313130f0f0d09040000000003060809121313131313130c0b0906010000000000000000000713202d3a4653606d7884919ea8b2a99f92867b6e655b50483e342e261e1b1312100c060d060b0f12131a1f252a343d46505a606d7984919ea8b0a69c8f83766a5f5347392e23180c00000000000714212d3a4754606d7a85929fa7b0a69e92857b6e696059524d47464141404040414045464b51555d606d727f8b939ea9afa3998f82766a605447392f24180c00000013202c3946535f6c7986929facada093867a6d60534d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4847433c342a20150a000000000713202d3946525d686f7c869298a0a7a099938f8a868482818080808081828486898d92989da59f9892867c6f685d52453a3024190d0100000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a8794a0acaca194877b6e6154483b2e2115080000000000000000000000000000000000000000000000070c13191d20262b2e2f3234363839393938373634312e2d2a25201d18120c0400000000000000000000000000000000000000000000000002090e13191e20252a2d2e30333537383839393938373634322f2d2b27221b1b16100b04000000000000000000000000000a1723303d4a5663707d8996a3b0a6998c7f7366594c402f2924292c2f353b434b545d68707d8a959fabb7afa396897c706356493d3023201c1610080000000013202c3946535f6c7986929facada093867a6d6053473f3f3f3f3f3f3f3f3f3f3f3f40414145474e545b666d7a85929fabb3a99c908376675d5145392c201306000007121d2730394045464747474747474747474747474747505a6264686868686865625b5147474747474747474747474747474645403930271d1207000013202c3946535f6c7986929facada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a3939393939393939393939393938373533312d2c29241f1c18120c060000000000000000000000000000091623303c4956636f7c8996aab4a79a8e817467574d42342d2a282b2d313a434d57606d7985929eabb8aca09386796d6053463a2d20130700000916222f3c4854606b70737577797b7d7d7063594f42382e26222122262b333f49535f6974818e9aa6ac9f92867a6d6054473a2f24190d010000000c17222d363e45494b5353535353535353535353535353535353535353535353535353535353535353535353534f4d49423930261b10040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111e2a36414c5664707d8a96a1adada1978c7f72695e53493f3628231c140c0a060300000000000306090e1419222b343e45515d67717e8a96a0acab9f94887c6f62544b4034281c100400000006131f2b37434e5866727f8c97a2adaa9e948a7d70695f574f46423b3935303433342e34383a40454b515b626d74818e97a1adab9e94897c6f62554b4035291d1004000013202c3946535f6c7986929facada093867a6d6053474040404040404040404040404040404040404040404040404040404040404040403c3a37312a22180e0400000005121e2a36424d57616d7a859298a3a69f959087827d7a77767474737373747577797d80868e929ba3a29891847a6d60564c4135291d110400000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a87949f9f9f9f94877b6e6154483b2e211508000000000000000000000000000000000000000000030b12181e24292c31373a3b3e414345454646454443413e3b3a36312c29241d160d0802000000000000000000000000000000000000000000070c141a1e252a2d3036393b3d4042444445464646454443413f3c3937332d2b27201b160d070100000000000000000000000a1724313d4a5764707d8a97a3b0a5988c7f7265594c3f2e23181c1f24293139424c56616c7683909da9b3afa396897c706356493d302316100b05000000000013202c3946535f6c7986929facada093867a6d6053473a3232323232323232323233332f35393c424a545e68737f8c99a9b2ac9f9286796d6053473a2d2014070000000b151e272e34383a3b3b3b3b3b3b3b3b3b3b3b3b3b4956626c717575757575726d62564a3b3b3b3b3b3b3b3b3b3b3b3b3b3a38342e271e150b00000013202c3946535f6c7986929facada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053474646464646464646464646464645454442403d3a39352f2c28231d17110a030000000000000000000000000a1724313d4a5764707d8a97a3b0a5988c7f7265594c3f31261e1c1f2028313b45515c6673808d99aab4aca09386796d6053463a2d20130700000714202c38444f5960636669666d6f71706b6054473d30262c2c2c2b2a222d38414d57626e7b88949faba3988b7e7265554c4135291d1104000005111d29343e485056586060606060606060606060606060606060606060606060606060606060606060606060605c5a544c42372c21150900000000000002070a0c0d131313131313120908060300000000060b0e10111313131313130f07060300000000000000000000000000000000000000000000000714202d3946525e6876828f9ca8b2ab9e9185796d60574d41382d2417110a02000000000000000000000002091019222935404b55606c7884919dabb0a69a8e8174665c5145382c1f13060000000815222e3b4754606a7884919ea9b1a79c8f82756c61574d453d36302d292427272723282c2e343a4145515b606d7a85929eaab0a69b8e8275675d5145392c1f1306000013202c3946535f6c7986929facada093867a6d6053473a34343434343434343434343434343434343434343434343434343434343434342f2e2b2620181006000000000714212d3a46535f6974808d97a1a99f948f837c75706d686967676666676768666d70747a818b919ba5a1968d8074685d5245392c20130700000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a87939393939393877b6e6154483b2e2115080000000000000000000000000000000000000000060c151d23282f35393c4247484b4e50515253535251504d4b4846423b39352f281f19130c04000000000000000000000000000000000000030b12181f252a3036393b4146474a4c4f50515253535252514f4e4b4846443f3837322c272118130c04000000000000000000000a1723303d4a5663707d8996abb5a6998d807366544a403428211e1a181f27303a44505a64707d8a97a2adafa396897c706356493d3023160a0000000000000013202c3946535f6c7986929facada093867a6d6053473a2d252525252525252525262724292c2f38424c56626f7b8896a1adaea399897c6f6256493c2f231609000000030c151d23282c2d2e2e2e2e2e2e2e2e2e2e2e313e4b5864717e82828282827f7265584c3f322e2e2e2e2e2e2e2e2e2e2e2d2c28231d150c0300000013202c3946535f6c7986929facada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d605353535353535353535353535353535252514f4d4a4745413a38342e28231c150c0700000000000000000000000b1824313e4b5764717e8a97a4b0a4978a7d7164574a3e3124171012161f2834404b54626f7c8998a3aeaca09386796d6053463a2d201307000004101c27333d474f54565a545c6062646360594f44353638393939383734312f3c47535f6a76838f9ca9aa9c908376675d5145392c20130600000815212d3945505a62646c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c69655e54493d3125190d0000000000070d1316191a2020202020201f1515120f0a04040b11171a1d1e2020202020201c1312100b060000000000000000000000000000000000000000000814212e3b4754616e7a87939facafa3998c7f72675d51453b2f261b1206000000000000000000000000000000071018242f3944505b66727e8b99a3aeac9f9285796d6053463a2d2013080000000916222f3c4955626f7c8896a1acaca095897c6f625a50453b332a25201d191a1a1a181c1f23282f353f45515d67727f8b98a2aeac9f9286796d6053473a2d201406000013202c3946535f6c7986929facada093867a6d6053473a2d2727272727272727272727272727272727272727272727272727272727272722211f1b150e0600000000000815222e3b4855616e7b86929fa9a1978f82796e6a64615d565b5a5a595a5a545c6063686d747f8b939ea89f92867a6d6054473a2d21140700000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a86868686868686867b6e6154483b2e211508000000000000000000000000000000000000000810181e272e343a4145474d5355585b5d5e5f5f5f5e5e5d5a5754534d474540393129251e160e0500000000000000000000000000000000050c151c232830363a4146474d525457595c5d5e5f5f605f5f5e5c5a585553504947433d383229241d160d060000000000000000000915222f3c4855626f7b8899a3afa89b8f8275665c51443a322d2b2627272628323e4653606d7985929fabafa396897c706356493d3023160a0000000000000013202c3946535f6c7986929facada093867a6d6053473a2d201919191919191919191a191d20262f3a47535f6a7885919eabb5ab978b7e7164584b3e3125180b00000000030b12181c1f20212121212121212121212734404d5a6773808d8f8f8f8e8174685b4e41352821212121212121212121201f1c18120b030000000013202c3946535f6c7986929facada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d606060606060606060606060606060605f5e5d5b595754514c46454039342e261e191009000000000000000000000b1825313e4b5864717e8b97a4b0a396897d7063564a3d3023170a060d18232e3a4653606d7986929facaca09386796d6053463a2d2013070000000b16212b353d44484a4d4b5153555756544f473e4143454646464543413e3a39424e5765727e8b98a7ac9f92867a6d6054473a2d21140600000a1724303d4956626c717979797979797979797979797979797979797979797979797979797979797979797979797570655a4d4135281b0f000000010a12191e2325262d2d2d2d2d2d2c22211f1b150e0e161d22272a2a2d2d2d2d2d2d29201f1c17110a02000000000000000000000000000000000000030f1b27333f495364717e8b9aa4afac9f92867a6e61554b4033291d140a000000000000000000000000000000000007121d28333f4a54616d7a86929facaea298897d706356493d2f24190d0100000d1a2633404d596673808c99a8b2aa9d9083776a6054483e332a211a14110d080d070c1013181d242935414c55606d7985929fabaea2988a7d7164574a3e2e23170b000013202c3946535f6c7986929facada093867a6d6053473a2d201a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1515120f0a04000000000004101c2934404b556673808c99a2a99e91857a6d675f5854524c4e4d4d4d4d4e4b5153565d606d75818e9ba9a2988b7e7164584b3e3125180b00000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000713202d3946525e6876797979797979797976695e52463a2d20140700000000000000000000000000000000000009121a222a303940454c5254575f626567696b6c6c6c6b6a696764615e5753514b433e35302820170e050000000000000000000000000000050e171e272e343b42464c5254565e616366686a6b6b6c6c6c6b6a69676562605b53544e48443d352f281f180f0600000000000000000714202d3a4753606d7a86929facab9e9285796d60564c443d3a373134333332323845515c6675828f9ca8afa396897c706356493d3023160a0000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20140c0c0c0c0c0c0c0c080d11141d2b37434e58697683909ca9b2a5988c7f7265594c3f3226190c000000000000070c1013131414141414141414141a2734404d5a6773808d9a9b9b8e8174685b4e4135281b1414141414141414141313100c0700000000000013202c3946535f6c7986929facada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b6a686664605d5553514b443f38302b221b120a0100000000000000000b1825323e4b5865717e8b98a4afa296897c6f6356493c302316090007131f2c3845515c667683909da9aca09386796d6053463a2d201307000000050f1a232b33383c3d40404546484a494845474a4d505152535252504e4b4746414754616e7a8795a0aca3998a7d7064574a3d2e23170b00000b1825313e4b5864717e8686868686868686868686868686868686868686868686868686868686868686868686868275695c4f4236291c0f0000000a131c242a2f3233393939393939392f2e2b2620181720272e333637393939393939352d2b28231c140c02000000000000000000000000000000000005121f2b3744505b6575818e9bacb6a99c8f8276685e5243392f21170b020000000000000000000000000000000000010b17222d3846525d6875828f9ca8b4aa9a8d807367564c4135291d11040005111e2a36424d576976838f9ca9b5ab998c7f7366584e43362c21180f0905010000000004070c1319242f3a45515d6774818e9aa7b4aa9b8e817468544a3f34281c10030013202c3946535f6c7986929facada093867a6d6053473a2d20140d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d090806030000000000000006131f2c3845515c6777848f929797988b7f72685d554e4746414141404040414045464c525b626f7c8897a2aa9b8e8174685b4e4135281b0e02000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f0005111d2a36414c565e6c6c6c6c6c6c6c6c6c6c5e574d42362a1e1205000000000000000000000000000000000009121a242c343c434b51565d6066696e7174767878797978777674716e6965605d555046413a322920170e05000000000000000000000000050e172029303940444d52565e6165686e70737577777879797978777674726f6c65626058544f45413a312a21180f060000000000000006131f2c3945515d677783909dabada1978a7e71685e564f484742424140403f3f3f404b546673808c99a6afa396897c706356493d3023160a0000000000000013202c3946535f6c7986929facada093867a6d6053473a2d201407000000000000000001040b1b2631424f5c6875828f9ba8b2a6998c7f7366594c403326190d000000000000000004060708080808080808080d1a2734404d5a6773808d9aa69b8e8174685b4e4135281b0e0808080808080808070604000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867979797979797979797979797979797979797878777573706d6764605c54504a423d342d241c130a01000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f2316090004101c2834404b546875828f9ba8aca09386796d6053463a2d2013070000000008111a21272c2f302e34383a3c43474b5154575a5c5e5f5f5f5e5d5a5854524c48525e687784919daaab9a8d807467544a3f34281c1003000b1825313e4b5864717e8b939393939393939393939393939393939393939393939393939393939393939393938f8275695c4f4236291c0f000007121c252e353b3f40464646464646453c3a37312a22202932393f4344464646464646423a38342e261e140a00000000000000000000000000000000000613202d394653606c7885929eabb3a9988b7f7265564c4131271d0f050000000000000000000000000000000000000006111c2935414c5665727f8b98aab4aa9d918477685d5245392c201306000714202d3a46525e697885929eabafa399897c6f6256493d32231a0f060000000000000000000108131e2935404b5564707d8a97a9b3aa9d908377665c5044382b1f12060013202c3946535f6c7986929facada093867a6d6053473a2d2014070101010101010101010101010101010101010101010101010101010100000000000000000000000714202d3a4753606d79808285878a8c86796d60564c433c393530343333342e34383a4147535f6a7885929fa99d9083766a5d5043372a1d1004000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f00010d1925303a444c525f60606060606060605f524d453b30251a0e020000000000000000000000000000000007111a242c363e464e555c60686d72777b7e818384858686858483807e7b76716d67615a524c443b332920170b0200000000000000000000040d172029323b424a51575e61686d72777a7d7f82838485868685858482817e7b78746f6a636059514b433b332a21180d0400000000000004101d2935404b5566737f8c99a3aea99e91847a6d68615955534d4f4e4d4c4c4c4b4b4c5865727f8b98a5afa396897c706356493d3023160a0000000000000013202c3946535f6c7986929facada093867a6d6053473a2d201407000000000000000001040a1b2835424e5b6875818e9ba8b2a5988b7f7265584c3f3225190c000000000000000000000000000000000000010d1a2734404d5a6773808d9aa69b8e8174685b4e4135281b0e0200000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facb9a2958b86868686868686868686868686868686868685858482807d7a76716d66605c544e463f372e251c1309000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000c18232e414e5b6874818e9ba7aca09386796d6053463a2d2013070000000000080f161c2022232a313a41454e53555d606467696b6c6c6c6b6a6764615d56544f566774818d9aa7a99c908376665c5044382b1f1206000b1825313e4b5864717e8b979f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9c8f8275695c4f4236291c0f00020d19242e3740474b4d535353535353524847433c342a21323b444a4f515353535353534f46443f3830261c1106000000000000000000000000000000000815222e3b4855616e7b8897a1adada197887b6e6255483b3022150b0000000000000000000000000000000000000000000d1924303c4855626f7b8898a2aeaca095877a6d6054473a2d211407000814212e3b4754616e7b8797a2adac9f92867a6d6053473a2d2014070000000000000000000000010d18242f3b4754616e7a8797a1adac9f9286796d6053463a2d2013070013202c3946535f6c7986929facada093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c676d7376787b7d807f73675d51443a312d29242727262723282c3037434e586a7784919daa9e9184776b5e5144382b1e1105000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000008131e28323a41465353535353535353534846423b33291f140900000000000000000000000000000000050e19232c363e4850585f676d737a7f84888b8e90919292929191908d8a87837e79716c615e564d453b32291d140a000000000000000000010c161f29323b444c545c60696e757a7f83878a8c8f90919292939292918f8d8b8885817c76706b605d554d453c332a20160c010000000000000c18242f3b4854616e7b86929fa8ada19690827a706b65615f575c5a5a5959585858585865717e8b98a4afa396897c706356493d3023160a0000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20140a0a0a0a0a0a0a0b070d10141b2a36414c566976828f9ca9b4aa978a7e7164574b3e3124180b000000000000000000000000000000000000010d1a2734404d5a6773808d9aa69b8e8174685b4e4135281b0e0200000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20140b0b0b0b0b0b0b0b0b0a0a0907060401000000000000000000000000000000000000000000000013202c3946535f6c7986929facb9a79d959393939393939393939393939393939399939291908e8c8a86837e79726d666058514940372e251b10070000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f2316090000071a2734404d5a6773808d9aa6aca09386796d6053463a2d201307000000000000050b1019232b343c434c52585f62676d71747678797979787674716d686360595865717e8b98a4ac9f9285796d6053463a2d201307000b1825313e4b5864717e8b97a4a5a5a5a5a5a5a5a5a5a5a5a7a9aeacacacafa9a7a5a5a5a5a5a5a5a5a5a5a59c8f8275695c4f4236291c0f0007131e2a3540495257596060606060605f55534e463c332939444d555b5d6060606060605c53504a42382e2317130a0000000000000000000000000000000a1724303d4a5763707d8a96a9b3ab9e928578695f53473a2e2114030000000000000000000000000000000000000000000813202d394653606c7985929facb1a795897c6f6256493c2f231609000916232f3c4956626f7c8995a9b3aa9e918477675d5145382c1f13060000000000000000000000000714202d3946525e687885919eabaea398887b6e6255483b2f2215080013202c3946535f6c7986929facada093867a6d6053473a2d20140c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c07060401000000000000000000000004101c2934404b555c606769696e7073736d63554b403228201d191a1a1e21262b30363e46525e697885919eab9e9184786b5e5145382b1e1205000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f00000c17232e38424a5053555555555555555553514a42392e23180c000000000000000000000000000000020d17202b353e48505a616a6f797f868c9195989a9c9e9f9f9f9e9d9c9a9795908b857e766d685e574d443b2f261b1106000000000000000007121d28313b444d565e666d727b81868c909596999b9d9e9e9f9f9f9e9d9c9a9897918d89837d746d675f574d453c32281e13080000000000000714202d3a46525e6974808d96a1a9a89f9590847d77726e696a6867666665656565646465717e8b98a4afa396897c706356493d3023160a0000000000000013202c3946535f6c7986929facada093867a6d6053473a2d2016161616161616171718181d20262d3946525e687784909daaaea298897c6f6356493c30231609000000000000000000000000000000000000010d1a2734404d5a6773808d9aa69b8e8174685b4e4135281b0e0200000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20181818181818181818171716151413110d080705020000000000000000000000000000000000000013202c3946535f6c7986929facb9afa7a2a09f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa49f9f9e9d9b9999928f8b857f786f6a625b514940372d22190c0300000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000000000000050e19222b353d464e565d606a6f747a7d8083848586858583817e7a76706b625f626f7c8995aaaea298887b6e6255483b2f221508000b1825313e4b5864717e8b979898989898989898989898989a9da4aebaafa59d9a9898989898989898989898988f8275695c4f4236291c0f000a16232f3b47525b63666c6c6c6c6c6c6c625f584e453b323f4a555f676a6c6c6c6c6c6c68605c544a3f3428251c120900000000000000000000000000000c1926323f4c5965727f8c98a5b2a99c8f837669574d42372b1e120600000000000000000000000000000000000000000006121f2b3844505b667783909daab1a4978b7e7164584b3e3125180b000a1723303d4a5663707d8996a3b0a99c90837669554b4035291d100400000000000000000000000005111e2a36414c566a7683909da9b4aa96897c6f6356493c302316090013202c3946535f6c7986929facada093867a6d6053473a2d2019191919191919191919191919191919191919191919191919191413110d0701000000000000000000000c18232f39434b51535a575e61646666635b5143392f20191d2021262b2e31373a41464f59616e7b8796a1aa9d9083776a5d5044372a1d1104000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f0003101c28343f4a545c606262626262626262605c544a4034281c1004000000000000000000000000000008141e29323d47505a616c717c848c92989da0a7a7a7a4a3a2a1a2a4a6a7a79f9d97918a827a6e695e564c41382d22170b01000000000000010d18242f39434d565e686e787f868e92999da0a7a6a8a7a5a4a3a3a4a5a7a9a7a9a19e9a94908981796e695f574d443a2f24190d04000000000005121e2a36424d57606d79849197a1a9a79f969189837f7b78767574737372727271717171717e8b98a4afa396897c706356493d3023160a0000000000000013202c3946535f6c7986929facada093867a6d6053473a2d232323232323232324242524292c2f38404b55616e7a86939facac9f9285796d6053463a2d201307000000000000000004060708080808080808080d1a2734404d5a6773808d9aa69b8e8174685b4e4135281b0e0808080808080808070604000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d242424242424242424242424232221201d191514120e0903000000000000000000000000000000000013202c3946535f6c7986929facb9b3a9a19e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9fa2aaa2a5a8aba39f9c97928c837c726d635b51493f342b1e150b00000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070000000000020c17202b343d474f585f686d747c81868a8d8f9192929291908d8b86827d766f6a616d7a8798a2aeaa968a7d7063574a3d3024170a000b1825313e4b5864717e8b8b8b8b8b8b8b8b8b8b8b8b8b8b8d929da9b5a99d938e8b8b8b8b8b8b8b8b8b8b8b8b8b8275695c4f4236291c0f000c1925323f4b57636d73797979797979786f6a5f574d443a434f5b677177797979797979756d665c504440372d241b1108000000000000000000000000000e1b2834414e5b6774818e9aa7b3a79a8d8074675a4d4131261a0e02000000000000000000000000000000000000000000030f1c28333f4a546875818e9ba8b3a6998d8073665a4d4033271a0d000b1724313e4a5764717d8a97a4b0a89b8f8275685c4f422f24180c00000000000000000000000000010d192530424f5c6875828f9ba8b0a3968a7d7063574a3d3024170a0013202c3946535f6c7986929facada093867a6d6053473a2d26262626262626262626262626262626262626262626262626262621201d18130c0400000000000000000007121d2731394045474d4d535457595957514940312720252a2d2e31373a3c42464c5259616b73808d99a9aa9b8e8175685b4f4235281c0f02000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f0006121f2c3844505c666d6f6f6f6f6f6f6f6f6d665c5144382c1f120600000000000000000000000000020b1925303b444f59616c717e8691969fa2aaa9a19e9b9796959595979a9ea1a8a9a19e948f837b6e685e53493f33271e130800000000000004101d2935404b555e696e7a838c92989fa3ababa39f9d9a9897969697989a9d9fa3ababa69f9c938e847b6e695f564c41352921160a0000000000020e1a25303b45515d676f7c8591979ea5a8a09e95908b8885838281807f7f7f7e7e7e7e7d7d808d9aa7afa396897c706356493d3023160a0000000000000013202c3946535f6c7986929facada093867a6d6053473a3030303030303030303031312f35393c4149515d67727e8b99a4afa79c8f8275665c5145382c1f1306000000000000070c1013131414141414141414141a2734404d5a6773808d9aa69b8e8174685b4e4135281b1414141414141414141313100c0700000000000013202c3946535f6c7986929facada093867a6d6053473a31313131313131313131313131302f2d2c292422211e1a14100b0600000000000000000000000000000013202c3946535f6c7986929facb9ada1979292929292929292929292929292929292989495989b9fa3aaa9a19e9591877f736d635b51463c30271d1207000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000000000008131e29323d464f59606a6f7a81878e92989a9c9e9f9f9f9e9d9a99928f89837c726d687885929faba5988b7f7265584c3f3225190c000815222f3b4855626e7c7f7f7f7f7f7f7f7f7f7f7f7f7f7f808d9aa7b4a79a8e807f7f7f7f7f7f7f7f7f7f7f7f7f7d7063574a3d3024170a000d1a2633404d59667380868686868686857c6f695e564c4344515d6a778386868686868682786d605c52493f362d231a1107000000000000000000000000101c2936434f5c6976828f9ca9b2a5998c7f7266594c3f3326190900000000000000000000000000000000000000000000000b17222d404d5a6773808d9aa6b3a89b8e8175685b4f4235281c0f000b1825313e4b5864717e8b97a4b1a89b8e8275685b4f4235281c070000000000000000000000000000081b2835414e5b6874818e9ba7b0a4978a7d7164574a3e3124170b0013202c3946535f6c7986929facada093867a6d6053473a333333333333333333333333333333333333333333333333333333332d2c29241d160d040000000000000000010b151f272f34383a404246484a4d4c4b464037292c2d3036393a3e4247484d53565e616b707d87929faca2988b7e7265584b3f3225180c00000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000713202d3a4653606d787c7c7c7c7c7c7c7c786d6053463a2d201307000000000000000000000000000a141d2a36414c56606b717e879298a0a8a8a19e97928e8b898888898a8d91969ea1a8a69f9591847a6e655b50443a2f24190d0000000000050f1a232c3945515d676e7b8490959fa2aaa9a19e9992908d8b8a89898a8b8d9092999ea1a9aba59e9691847b6e685d52453d32271b0f03000000000009141f2935414b555f6a6f7c858f939c9fa4a79f9d989892908f8d8d8c8c8b8b8b8b8a8a8a8d929da9afa396897c706356493d3023160a0000000000000013202c3946535f6c7986929facada093867a6d6053473d3d3d3d3d3d3d3d3d3d3d3e3e3f4045474e535b606d7984919eababa0958a7d7164544b4034281c100400000000030b12181c1f20212121212121212121212734404d5a6773808d9aa69b8e8174685b4e41352821212121212121212121201f1c18120b030000000013202c3946535f6c7986929facada093867a6d6053473e3e3e3e3e3e3e3e3e3e3e3e3e3d3d3c3a39352f2e2d2a261f1c17110a020000000000000000000000000013202c3946535f6c7986929facb8ab9e9285858585858585858585858585858585858687898b8e92989fa2aaa7a099928b7f736d62584e43392e23180c000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000000010d1925303a444e58606b707c848e939a9fa2aaa9a8a4aba39fa3aba39f9c9490877f746d7784919daaa69a8d8073675a4d4034271a0d000814212e3a47535f6a6e72727272727272727272727272727d8a96a3b0a3978a7d72727272727272727272727272706b6155483c2f231609000a1623303d495663707d87929a93939791847b6e685e554b424d5a6774808d93939393938e81746e635b51483f352c231910060000000000000000000000101d2a3643505d697683909ca9b1a4978a7e7164574b3e3124180b0000000000000000000000000000000000000000000000061926323f4c5965727f8c98a5b2a89c8f8275695c4f4236291c0f000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2834414e5b6774818e9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6053473f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3a39352f281f160c010000000000000000030d151d23292c2d31363a3b3d40403e3b352f35393a3d4146474a4d5355575f61686d747d869299a3a79f92867a6d6154473a2e21140700000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a87888888888888877b6e6154483b2e21150800000000000000000000000006111b262f3846525e68707d879299a3aaa49d96918a85817e7d7b7b7c7d80848a91969fa7a7a0968f82776c60564c4135291c1106000000000b16212c38444f59606d798390969fa7aea59d97918c8683817e7d7d7d7d7e8083868c91979ea5ada8a09691847a6d60594f43382c1f14090000000000020d18242f3a434e585f6a6f7a82898f93999c9fa2aaa29f9d9b9a999998989898979797979a9da4aeafa396897c706356493d3023160a0000000000000013202c3946535f6c7986929facada093867a6d605349494949494949494949494a4a4b4c4b5153585f656c74808d96a1aca4999083786c605346392e23180c00000000030c151d23282c2d2e2e2e2e2e2e2e2e2e2e2e34404d5a6773808d9aa69b8e8174685b4e41352e2e2e2e2e2e2e2e2e2e2e2d2c28231d150c0300000013202c3946535f6c7986929facada093867a6d60534b4b4b4b4b4b4b4b4b4b4b4b4b4a4a49484745413f3b3a36312b28231c140c0701000000000000000000000013202c3946535f6c7986929facada093867978787878787878787878787878787878797a7c7f82868c92989fa7aba39f918b7f726a60554b4034281d12070000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070000000005111d2a36414c56606a707d8691969fa4acaaa29f9b979599929994979a9e9f99928c81787683909ca9a79b8e8174685b4e4135281b0e0006121e2b37424e575f6265656565656565656565656565707d8a96a3b0a3978a7d706565656565656565656565656361594f44382c201407000916222f3b4854606b717e88939fa4a19691847a6d675d544a4653606c78818e949fa69d938d80736d635a50473e352b22180f0600000000000000000000111e2a3744515d6a7783909daab0a3968a7d7063574a3d3024170a00000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4b1a99c908376695d5043362a1d10000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d60534c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4745413a31281d1307000000000000000000030b12181c1f20252a2d2e3133332f34383a4045474a4c525457575f6265696e737a81889298a2a8a0958d8073685d5246392d20130700000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a87949595959594877b6e6154483b2e2115080000000000000000000000000b17222d38414f59616e7a859299a3aba49c928d847e787471706f6e6f7173787d8490959fa8a89f948c7f72685d5245382d22170b00000004101c27333c4854606b74818e95a0a8ada39c938e857f7b777472717070717274777a7f858e939ca4ada9a0968e81746b6054483b31251a0e02000000000007131d28313c464e585f686d757c82878b8f929897999a9b9c9d9d9d9e9e9e9e9f9f9f9fa3abacb5afa396897c706356493d3023160a0000000000000013202c3946535f6c7986929facada093867a6d6056565656565656565656565657575859555d60646a6f77808d929da8a59f93877d70655b5044372b1d1207000000000b151e272e34383a3b3b3b3b3b3b3b3b3b3b3b3b404d5a6773808d9aa69b8e8174685b4e413b3b3b3b3b3b3b3b3b3b3b3b3a38342e271e150b00000013202c3946535f6c7986929facada093867a6d6057575757575757575757575757575757565554514c4c4846423b38342e261e18120b030000000000000000000013202c3946535f6c7986929facada093867a6d6b6b6b6b6b6b6b6b6b6b6b6b6b6b666d6d6f72757a808590959fa6aea49f92877c6f675c5145392e23180c0000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000000040f19232d3946525e686f7c869298a1a8aba39f98928e8a88878686888a8e92979f9f938d8075828f9ba8a89c8f8275695c4f4236291c0f00020e1a26313c454e535558585858585858585858585863707d8a96a3b0a3978a7d7064585858585858585858585857554f473e33281c1004000713202c38444f59616c727f8b929ca5a0969083796d665c5349505b666d78828f959fa59c928c7f726c625a50473d342a21180e05000000000000000000111e2b3844515e6b7784919eaaafa396897c706356493d3023160a00000000000000000000000000000000000000000000000b1824313e4b5764717e8a97a4b1aa9d9083776a5d5044372a1d11000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d605959595959595959595959595959595959595959595959595959595959595954514b433a2f24180d0100000000000000000001070c1013141a1e2124293036394045474b515357565e616467696e72767b80858d939aa2a79f969183796d60564c4135291d110500000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a8794a0a2a2a194877b6e6154483b2e2115080000000000000000000000030f1b27333f4953616b75828f97a1aba49c918c8079716c66646362626264666c707a839096a0aca69f92857a6d60544a3f33281c0f0300000714202c38444f5963707d89939ea7aea49c918c817a726e686765646363646567686e737a818c919ca5afa89e93897c6f63574d42362a1e12050000000000010c161f2a343c464e565e616b6f757b7f8285888a8c8d8f8f9090919191919292929292999ba3acafa396897c706356493d3023160a0000000000000013202c3946535f6c7986929facada093867a6d636363636363636363636363636364646668676d71757c828d929da4a49f938c7f726b6053493f33271b0b0000000007121d273039404546474747474747474747474747474d5a6773808d9aa69b8e8174685b4e474747474747474747474747474645403930271d1207000013202c3946535f6c7986929facada093867a6d64646464646464646464646464646464646362605d555855534d46443f383029231d150d0500000000000000000013202c3946535f6c7986929facada093867a6d605f5f5f5f5f5f5f5f5f5f5f5f5f5c60616265686d737b838f949fa7afa3999183796d60544b4034281c100400000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070000000a16212c38444f59616d7a849198a2aaaaa299928d85817d7b7a79797b7d81858b92979d928a7e818e9ba7a99d9083766a5d5043372a1d1000000915202a333c4247484c4c4c4c4c4c4c4c4c4c4c5763707d8a96a3b0a3978a7d7064574c4c4c4c4c4c4c4c4c4c4a48443e352c21160b000004101c27323d47505a626d73808c929da59f958f82786d655b504a545c666d79839096a0a49c918b7e716c61594f463c332a20170d040000000000000000121f2b3845525e6b7885919eabafa296897c6f6356493c3023160900000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a3b0aa9e9184776b5e5144382b1e11000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6666666666666666666666666666666666666666666666666666666666666666605d554b4135291d1104000000000000000000000000040610181f272f353b41464b5153555d606467686d7174777b7f83888d92989fa4a39f9590847b6e675d51443a3024190d0100000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a8794a0adaea194877b6e6154483b2e211508000000000000000000000005121f2b3744505b65707d8a939ea9a79d928c7f746d67605b5456555556545b60686d7984919da6aea2988c7f72665b5044382b1f120600000916222f3c4854606b7783909da5afa89d928c7f746d68615e56585756565758565e61686d747f8c939da9afa59c8f8276695e53463a2d211407000000000000040d18222a343c444c52596063696e7276797b7d7f81828383848484848585858585868b909ba7afa396897c706356493d3023160a0000000000000013202c3946535f6c7986929facada093867970707070707070707070707070707071717274767a7d82878f949da4a099938c80746d63594f41382d22170b000000000c18232e39424b515354545454545454545454545454545a6773808d9aa69b8e8174685b545454545454545454545454545453514b43392e23180c000013202c3946535f6c7986929facada0938679717171717171717171717171717171717170706f6d676865615f5753504a423d342f271f170e05000000000000000013202c3946535f6c7986929facada093867a6d605352525252525252525252524a50535456565e61696e78828f95a0acaba0958b7f72665c5145382c1f130600000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070000030f1b27323c4855606b75818e96a1aaaaa2989287807a75716e6d676d6e7074797f858f949e9185818e9ba8aa9d9084776a5d5144372a1e110000030e18212a31373a3b3f3f3f3f3f3f3f3f3f3f4a5763707d8a96a3b0a3978a7d7064574a3f3f3f3f3f3f3f3f3f3d3c38332c231a10050000000b16212b353e48515b636e74808e939ea69f948e81776c605b514b545d676d7a849196a1a39f92877e706b60584e453b322920160d0300000000000000121f2b3845525e6b7884919eabafa296897c6f6356493c3023160900000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4b0aa9d9184776a5e5144372b1e11000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada09386797272727272727272727272727272727272727272727272727272727272727272726d675d5145392c201306000000000000000000000000071019222a313940454d52555c6064676d7074777a7d8184888c90959a9fa2a39f98928c837b6e695e554b4032281e13080000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a8794a0adaea194877b6e6154483b2e21150800000000000000000000000613202d394653606c7883909da6aca0958d80736d605c55504a4a4848494a50565d676f7d89949facaa9e9185786c605346392d2013060004101c2834404b5463707d8995a0acaca0968d80736d605d56524d4b4a4a4a4a4b4c52565d606d74818e97a2adab9f94877b6e6154483b2e211507000000000000050e171e252a323a41464f54575e6165666d6f717374757676777777787878787879797e8b98a4afa396897c706356493d3023160a0000000000000013202c3946535f6c7986929facb0a396897d7c7c7c7c7c7c7c7c7c7c7c7c7c7c7d7d7e7f8183868a8e93999f9f9d9590877f746e645b51473d2f261b110600000004101c2834404b545c606161616161616161616161616161616773808d9aa69b8e817468616161616161616161616161616161605c554b4034281c10040013202c3946535f6c7986929facb1a4978b7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7d7d7c7b7a7875726e6964605c544f454039312920170e050000000000000013202c3946535f6c7986929facada093867a6d605347454545454545454545453f444647494c52575f666d7a83919da6b0a79e9184796d6053463a2d20130900000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000007131f2c38444f5963707d89939ea8aea29892867d746d686462605d606164676d727a828e93979185929facaa9e9184776b5e5144382b1e11000000060f1820262b2e2f3232323232323232323d4a5763707d8a96a3b0a3978a7d7064574a3d3232323232323232302f2c28211a110800000000050f19232c363f49525c606c78818f949fa69e938d80746d635a504b555e686e7b849197a2a39992867d706a5f574d443b32281f150c03000000000000111e2b3844515e6b7784919eaab0a396897d7063564a3d3023170a00000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a99d9083766a5d5043372a1d10000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facb2a6998c7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f796d6054473a2d2114070000000000000000000000061019232b343c434b51565e61676d71757a7d8084868a8d9196989d9fa7aba399928e867f796e695e574d43392f20160c020000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a8794a0acaca194877b6e6154483b2e2115080000000000000000000005111e2a36424d5763707d8a95a0aca69d9083786d605b514b443f3d3c3b3c3f444c55606b7683909c9f9e9d97897c6f6256493c2f2316090006131f2c3845515c6675818e9ba7b1a99e9184796d605b524c46413f3e3d3d3e3f41464c525b606d7a85929fabb0a6988c7f7265594c3f2f24180d0100000000020c1720293036393a3e3f44484d5354545c606264666768696a6a6a6b6b6b6b6c6c6c717e8b98a4afa396897c706356493d3023160a0000000000000013202c3946535f6c7986929facb9a5998f8989898989898989898989898989898a8a8b8c8e9092989b9e9c9995908a837d726d645c53493f352b1d140a0000000006131f2c3845515c666d6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e73808d9aa69b8e81746e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6d675c5145382c1f13060013202c3946535f6c7986929facb9a69a908b8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a89888784827f7b76716d666059514b433a322920160c0300000000000013202c3946535f6c7986929facada093867a6d6053473a38383838383838382e34383a3a3c41464d545d686f7c89949eaaada1968a7d7064574a3d31251a0e02000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000915222f3b4854606b7683909da5afa69f92867d706b605d565554515355555d60686d78818e94989298a2aeab9e9184786b5e5145382b1e1200000000060e151a1e21222525252525252525303d4a5763707d8a96a3b0a3978a7d7064574a3d31252525252525252423201c16100800000000000007111a242d374044505b666d79828f95a0a59d928c7f726c625a504c565e696e7c859298a2a39892867c6f695f564d443a31271e150b020000000000111e2a3744515d6a7784909daab0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000c1825323f4b5865727e8b98a5b1a99c8f8276695c504336291d10000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facb9a89c918c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c877b6e6154483b2e21150800000000000000000000030c18222b353d464e555d60686e73797e82868a8d90939a9a9ea0a8a9abb1ac9f9287817b736d665e574d453b31271d0e04000000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a87949f9f9f9f94877b6e6154483b2e211508000000000000000000000714202d3a46525e6976828f9ca7ab9f94897d70665c50454039332d2f2f2d333a434f5964717e8b989291908f8c7f7366594c403326190d000713202d3a4653606d7985929facada1978a7e71675d5145413a36303130303130363a4145525d68737f8c99a9b3a89c8f827569554b4035291d10040000000008131e29323a4146474b4c4d4e4f51524a50535557595a5c5c5d5d5e5e5e5e5f5f5f65717e8b98a4afa396897c706356493d3023160a0000000000000013202c3946535f6c7986929facb9aba199969696969696969696969696969696969797999b9d9f9e96918f8c88837e78706b625b534a41372e23190b02000000000713202d3a4653606d797a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a808d9aa79b8e817a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a796d6053463a2d2013070013202c3946535f6c7986929facb9aca29a97979797979797979797979797979797979797969596918f8b88837e78706b605c554c443a32281e150a00000000000013202c3946535f6c7986929facada093867a6d6053473a2d2c2c2c2c2c2c2c23282b2d2e30363b424c56606b75828f9cabb2a89b8e817568574d42362a1e1205000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700030f1c28333f4a54636f7c89959fabab9f948b7e716a6059524c48474546484b51565e666d788290989fa2aab4ab9e9185786b5e5245382b1f12000000000003090e1214151919191919191924303d4a5763707d8a96a3b0a3978a7d7064574a3d3124191919191919171614100b05000000000000000008121b2528333f4a545c676d79839096a0a49c918b7e716c61594f4d575f6a6f7d869299a3a29891857b6e685e564c433930261d140a0000000000101d2a3643505d697683909ca9b1a5988b7e7265584b3f3225180700000000000000000000000000000000000000000000000d1a2633404d596673808c99a6b3a89b8f8275685c4f4235291c0f000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facb9ada39c999999999999999999999999999999999999999999999999999999999999999994877b6e6154483b2e211508000000000000000000000b151e2a343d474f585f676d737b80858a8f92989a9d9fa4a39f9fa4aba4a7a79a8d807b756f6a605c544a42382e23170c03000000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a87939393939393877b6e6154483b2e211508000000000000000205070814212e3b4754616e7b87939facaa9c9083766b60544a3f342f282222222228313d4855616e7b878685848483817f7265584b3f3225180c00091623303c4956636f7c8998a2a5a69e9285796d60554b40352f2a2524232324252a2f35414c56626f7c8897a1adab9e918578675d5145392c201306000000010d1925303a444c525457595a5b5c5d5e5b5953484a4c4e4f5050515151515252525965727f8c98a5afa396897c706356493d3023160a0000000000000013202c3946535f6c7986929facb9b3aba5a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a4a4a5a7a99e948f84827f7b76716c656059514941382f251c110700000000000a1723303d4a5663707d87878787878787878787878787878787878d929da99e938e87878787878787878787878787878787877e7164574a3e3124170b0013202c3946535f6c7986929facb9b4aca6a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a3a3a8a19e9b9894908a847d746d675e564c443a30261c1106000000000013202c3946535f6c7986929facada093867a6d6053473a2d201f1f1f1f1f1f171c1f2021252a303a434f5964707d8a99a3afab9e928578695e53463a2d211407000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070006121f2b3844505b6674818e9ba7b1a79c8f82766c62584f45413b3a393a3b40454c545c666e7b86929facb4b7ab9e9184786b5e5145382b1e1200000000000000020608080c0c0c0c0c0c1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170c0c0c0c0c0a0907040000000000000000000000091317222d38424b555d676d7a849197a1a39f92877e706b60584e4e58606a707d87929aa4a19791847a6e685d554b42382f261b1106000000000f1c2835424f5b6875818e9ba8b3a6998c807366594d402f23180c00000000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7b4a79a8e8174675b4e4134281b0e000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facb9b5ada8a6a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a194877b6e6154483b2e21150800000000000000000007121c27303c464f59606a6f7980868d92979c9fa3a8a09e9a9992939995989b9f9d928d87827c736d665c544a3f34281e150a000000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a86868686868686867b6e6154483b2e211508000000000002080e1114141d2935404b5565727f8c99a4aea2988a7e7164594f42382e231d17191917212d3a46535f69767b7a7978777675726d62564a3d3124180b000c1926333f4c5966727f8c969798999a8d8174665c5143392f241e1917171717191e24303a4653606c7985929eabada197867a6d6053473a2d20140700000005111d2a36414c565e6164656768696a6b68655d534840414243434444444545454d596673808c99a6afa295897c6f6256493c2f2316090000000000000013202c3946535f6c7986929facb9afa7a2a09f9f9f9f9f9f9f9f9f9f9f9f9fa0a1a2a4a6aaa89c8f827e7a736e6964605b534f473f372f261d130a0000000000000a1723303d4a5663707d89949494949494949494949494949494949a9da4aea59e9b949494949494949494949494949494948a7d7164574a3e3124170b0013202c3946535f6c7986929facb9afa7a2a09f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa0a0a1a2a5a8aba8a69f9c95918981796d685e564c42382e23170c030000000013202c3946535f6c7986929facada093867a6d6053473a2d201412121212060b10121314191e28313d4754606d7a86929facada297877b6e6154483b2e211508000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000613202d394653606c7985929eabaca095897c6f635a50463d35302d2c2d2f353a424a545e6973808d9aa4afb7aa9e9184776b5e5144382b1e11000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a000000000000000000000000000000000000000006111c262f39434c555e686e7b859197a2a39992867d6f6a5f574d4e58616b717e88939fa4a09690837a6d675d544a41382d22170b060000000d1a2734404d5a6773808d9aa6b3a89b8e817568554b4034291c100400000000000000000000000000000000000000000005121e2a36424d576976838f9ca9b2a5988c7f7265594c3f3226190c000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facb9afa7a2a09f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f94877b6e6154483b2e2115080000000000000000000c18232e39424e58606b6f7c848c92989fa2a7a09d9996918d8a868687888b8e92989f9a948f8780786d665c50443e30261c11060000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000713202d3946525e6876797979797979797976695e52463a2d20140700000000050d14191e2021252c3845515d6776838f9cabac9f9285796d6053463d3026252525252525252a36424d575f696e6d676b6a696865625b51463a2e221509000e1b2835414e5b68748188898a8b8d8e8b7e7164544b4031271d130e080a0a080e131f2b3744505b657683909da9b3a994887b6e6155483b2e2215080000000713202d3946525e686d71727374767778756f65594d3d323536373737383835404b556774818e9aa7b2a995887b6e6255483b2f2215080000000000000013202c3946535f6c7986929facb9a79d95939393939393939393939393939393949597999d9f9e948f8a85807b726d605c544a42392e2318140b010000000000000a1723303d4a5663707d8996a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a7a9aeb6afaaa8a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1978a7d7164574a3e3124170b0013202c3946535f6c7986929facb9a79d959393939393939393939393939393939393949496989b9fa2a9aba7a09d938e837a6d685e544a3f342820150a0000000013202c3946535f6c7986929facada093867a6d6053473a2d2014070505050000030607080c16202c3945515d677783909daab3a9968a7d7063574a3d3024170a000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000916232f3c4956626f7c8997a2adaa9d9083776b6054483f34292421202024293039424d57616e7b87939facb7aa9d9184776a5e5144372b1e11000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000000000a141d27303a434c565f696f7c859298a3a39892857c6f695e564c4f59616c727f8b929ca5a0959082796d665c53493f332722170c0000000c1925323f4c5865727f8b98abb5aa9d908477675c5145382c1f13060000000000000000000000000000000000000000000714212d3a46535f697885929fabb4aa968a7d7063574a3d3024170a000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facb9a79d95939393939393939393939393939393939393939393939393939393939393939393877b6e6154483b2e211508000000000000000004101c2834404a545f6a6f7d8691969fa2a69e9c95908c8884807d7a797a7c7e81858c92989e99938c81786d605a5042382e23170c0000000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f0005111d2a36414c565e6c6c6c6c6c6c6c6c6c6c5e574d42362a1e1205000000050e171f252a2d2e32323a4753606d7986929faca89b8e8275675c51453832323232323232323230313b454d575e61605d555d5c5b585651493f34291d1206000714212d3a4754606d7a7b7c7d7f8081827b6e6155483b2e22150b0100000000030f1b27333f49536975828f9ca8aea295887b6f6255483c2f2215090000000714212e3a4754616d7a7e7f8081828485817568584e43372e2c2823282c2f3945515d677783909daaada196877a6d6054473a2d2114070000000000000013202c3946535f6c7986929facb9a2958b86868686868686868686868686868787888a8d90959a9f9c98928d867e756d665c544a40342820160a000000000000000a1723303d4a5663707d89969f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa6a8aeb6afa9a79f9f9f9f9f9f9f9f9f9f9f9f9f9f9f978a7d7164574a3e3124170b0013202c3946535f6c7986929facb9a2958b86868686868686868686868686868686868788898c8e92979da0a8aca59d9590837a6d665c50443c31261a0f0300000013202c3946535f6c7986929facada093867a6d6053473a2d20140700000000000000000004111d2935414c556975828f9ca8b1a4988b7e7165584b3e3225180b000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000c1925323f4c5865727f8b98a9b3ab998c7f7266594f43362d2219141313181e27303b46525e697683909da9b6aa9d9083776a5d5044372a1d11000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a000000000000000000000000000000000000000000020b151e28313a444d575f6a6f7d869299a3a29791847b6e685e554b505a626d73808d939da59f948f82786d655b50443e34281d11050000091623303c4956636f7c8999a4afac9f9286796d6053473a2d22170b0000000000000000000000000000000000000000000815222e3b4855616e7b8897a2adaea298887b6e6155483b2e221508000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facb9a2958b868686868686868686868686868686868686868686868686868686868686868686867b6e6154483b2e211508000000000000000006121f2c3844515c666f7c859298a0a8a19e948f89847f7b7774706d6c6d6f7174797f869195a09f938e81746c61544a3f34281c100300000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f00010d1925303a444c525f60606060606060605f524d453b30251a0e020000020d1720293036393b3f3f3f495663707c8998a3aeaa988b7e7265554b403f3f3f3f3f3f3f3f3f3f3d3c383b454d535453514b51504f4b4a463f372d23180d01000613202c3945515d676d6e7071727374756e695f53463a2d2114030101000205080f17222d424f5b6875828e9ba8b5ab95887b6e6255483b2f2215080000000815212e3b4854616e7b878c8d8e8f909184786a6054473f3a38342e34383a404b55606d7a86929facab9e918578675d5145392c2013060000000000000013202c3946535f6c7986929facada0938679797979797979797979797979797a7a7b7e8083888d9299a19f98928b81786d665c51443d32271b0f030000000000000a1723303d4a5663707d89939393939393939393939393939393939a9da4aea59d9b939393939393939393939393939393938a7d7164574a3e3124170b0013202c3946535f6c7986929facada0938679797979797979797979797979797979797a7b7c7f81858b91969fa4aca79f959082786d60584e43372b1f140900000013202c3946535f6c7986929facada093867a6d6053473a2d201407000000000000000000010d19242f414e5b6874818e9ba7b2a5988c7f7265594c3f3226190c000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000e1b2834414e5b6774818e9aa7afa399897c6f6356493d32231b100806070c151e2a36424d576774808d9aa7b3a99c8f8276695c4f4336291c10000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000030c161f29323b454e58606b707e87929fa3a19691847a6d675d5145515b636e74818e939ea69e948e81776c605a5045392d21150800000714202d3a4753606d7a86939facaea399897d706353493f33271b0f030000000000000000000000000000000000000004111d2935414c5565717e8b98a9b3ac9f9285786d6053463a2d201307000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867979797979797979797979797979797979797979797979797979797979797979797976695e52463a2d20140700000000000000000713202d3a4653606d78839197a2a8a097928a827c77726e6967636060616265676d727b839196a19d938a7d70665c5044382c1f120600000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000008131e28323a41465353535353535353534846423b33291f140900000008141f29323b4146474c4c4c4c5966727f8c99aaaea398887b6f62554c4c4c4c4c4c4c4c4c4c4c4c4948443d3b4246484745404443423f3d3a342d251b1106000004111d2935414c555d6062636465666869615f574d42362a1e120d0d0e090e121419212b37434e58697683909ca9aea399877a6d6154473a2e2114070000000714212d3a46535e697884919a9b9c9d96897c6f625a504a464440434044464b515c67717e8b98a3aeaa9b8f827568554b4135291d11040000000000000013202c3946535f6c7986929facada093867a6d6c6c6c6c6c6c6c6c6c6c666c6d6e6f7173777b80879196a1a29f938e81786d60584e43382b20150a0000000000000a1723303d4a5663707d86868686868686868686868686868686868d929da89d938e86868686868686868686868686868686867e7164574a3e3124170b0013202c3946535f6c7986929facada093867a6d6c6c6c6c6c6c6c6c6c6c6c6c6c666d6d6e6f7275797e848d939aa4afa79f948d80736a5f53473b31261a0e02000013202c3946535f6c7986929facada093867a6d6053473a2d20140700000000000000000000081b2734414e5a6774818d9aa7b2a6998c7f7366594c403326190d000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700101d293643505c6976838f9ca9ac9f92867a6d6053473a2d201407000000030c1a25303f4b5865727e8b98a5b1a89b8e8275685b4f4235281c0f000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000000000000040d172029333c464f59616c717e8b919ca4a0969083796d60534749525c606d78818f949fa69e938d80736c6156493d3024170a00000613202c3945515d677784909daab4ab9a8d8073655b5044372b1f140a000000000000000000000000000000000000010c13202c3945515d6775828e9ba8b5a89c8f8275665c5044382b1f1206000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c5e574d42362a1e12050000000000000006131f2b37434e5865727f8c95a0a9a09691857d766f6b66625f575753535455555d60696e7a84919ea59e9184786d6053463a2d20130800000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f000006111c2630383f444649494949494949494644403930271c12070000020e1925303b444d5254585858585b6875828e9ba8ac9f9286796d605858585858585858585858585856544f473d363a3b3a39352f363532312e29231b1309000000010d19242f3a434c5154555657585a5b5c55534d453b31261a1a1a1a1b1b1a1e21252a333b4754606a7884919eabac9f9286796c605346392d20130600000005121e2a36424d576774818e9aa6a9a89b8e81756c605c5453514a504a5153555d606d7983919daaaea2988b7e7165584b3e2f24180d010000000000000013202c3946535f6c7986929facada093867a6d606060606060606060605b606061626466696e747c849196a1a59e938d80736a6054473c31261a0f0200000000000916232f3c4855616b707979797979797979797979797979797979808d9aa69b8e817979797979797979797979797979797979716c6155493c3023170a0013202c3946535f6c7986929facada093867a6d606060606060606060606060605c6061616365676d71798088939fa5afa69f92877c6f62574d42362a1e1205000013202c3946535f6c7986929facada093867a6d6053473a2d20140700000000000000000004101c2834404a546875828e9ba8b2a5988c7f7265594c3f3226190c000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700111e2b3744515e6a7784919daaab9e918578675d5145392c1f130600000000091724313e4a5764717d8a97a4b0a79a8d8174675a4e4134271b0e000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a000000000000000000000000000000000000000000000000050e17212a343d474f59626c727f8c929da89f958e8175685b4e4244505c666d79828f95a0a59d928b7e7164584b3e3125180b000004101d2935404b556773808d9aa9b3ab9e9184786c6053463c2f261b1106000000000000000000000000000000000007131d28333f4a54606d7a86929facb1a7988b7f7265544a3f34281c1003000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d60606060606060606060606060606060606060606060606060606060606060605f524d453b30251a0e02000000000000000815222e3b47545f6a7784919ea7a39891847b706b63605955534d4a474647484b51575e68707d8a96a1a1968a7e7164574b3e2f24190d01000000000000000000000000000000000003101d2a3643505d697683908f8275685c4f4235291c0f00000c17232e38424a5053555555555555555553514a42392e23180c000005111e2a36414d565e6165656565656a7784909daaaa9d9083776665656565656565656565656565656360594f44382d2e2d2c292429282524221d181109010000000008131e28313a41454748494a4c4d4e4f4846423b332923272727272728252a2d30363c454e58626f7c8896a1adab9c908376655b5044372b1f1205000000020e1a25313c4855626f7c88949faaaa9e938a7e726d6662605c545d545c6062676d75808d95a0aca99f92867a6d6154473a2e211407000000000000000013202c3946535f6c7986929facada093867a6d6053535353535353534a505354545557575f616a6f7b84919ea7a59f92877c6f62584e43372b1f120600000000000714202c38444f5961636c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c73808d9aa69b8e81746c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c64615a5045392d2114080013202c3946535f6c7986929facada093867a6d6053535353535353535353534a5153545556555d60676d747f8c939daaaea3998e8275695f53463a2d211407000013202c3946535f6c7986929facada093867a6d6053473a2d2014070606000104060708090b141f2c3844515c667683909ca9b1a4988b7e7165584b3e3225180b000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700121f2b3845525e6b7885919eabaa9d9084776a554b4035291d1004000000000b1824313e4b5764717e8a97a4b1a5998c7f7266594c3f3326190c000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000000060f18222b353e47505a636d74808d9aa7a79d9083766a5d50433f4a545c676d7a84909daaa4998c807366594d4033261a0d0000010d18242f3d495663707c8997a1adaca196897d7063584e41382d22170f06000000000000000000000000000000071118242f3844505b66717e8b98a2aeaca095887b6e6155483b2e23170b00000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d60535353535353535353535353535353535353535353535353535353535353534846423b33291f140900000000000000000916222f3c4955626f7c8896a0ac9f92867c6e696159544f4847423d3a393a3c40454d56606c7884919ea89b8f827568554c4135291d1104000000000000000000000000000000000408101d2a3643505d697683908f8275685c4f4235291c0f0003101c28343f4a545c606262626262626262605c544a4034281c1004000714202d3946525e686e7272727272727985929faca89b8e8275727272727272727272727272727272706b6054483c3126201f1d181d1c181815120d06000000000000010c161f282f35393a3b3d3e3f4041423b3a36312c2f3034343434343531363a3b41464e57606a74808d9aa8aea3998c7f726653493f33271b0f03000000000915212e3b47535f6a76828f98a2aea59f92877f78726f6d666a696a666d6f7379818d929da7aca2978d8074685d5246392d201307000000000000000013202c3946535f6c7986929facada093867a6d6053474646464646463f44464747484b4d53585f69707d8a959faba3998f82766a5f53473a2e211408000000000004101c27333d474f55566060606060606060606060606060606773808d9aa69b8e817468606060606060606060606060606060575550483e33281c11040013202c3946535f6c7986929facada093867a6d6053474646464646464646464044464748494b51555d606d74818e98a2aeab9f93877b6e6155483b2f24180d010013202c3946535f6c7986929facada093867a6d6053473a2d2014131313070d10131414151a1d27303a4653606d7985929fabb2a896897c706356493d3023160a000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700121f2c3945525f6c7885929faba99c908376695d50432f24180c00000000000c1825323f4b5865727e8b98a5b5ab978a7e7164574a3e3124170b000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000000000000000007101a232d373f44505c666d7983909da9a59d9083766a5d5043434c565e696f7c85929faca3998c807366594d4033261a0d0000000713202d3a4653606d7985929eacb2a89c8f82756a5f53493f332721180f0802000000000000000000000003091119232935404b55606c7884919daab3a99d908477695f53463a2d1c110600000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d60534746464646464646464646464646464646464646464646464646464646463b3a36302921170d0200000000000000000b1825323e4b5865717e8b98a8a79a8d81746a5f574f48443d3a37312d2d2e2f353b44505b6574818e9ba79e928578675d5145392c2013060000000000000000000000000000050c1114171d2a3643505d697683908f8275685c4f4235291c0f0006121f2c3844505c666d6f6f6f6f6f6f6f6f6d665c5144382c1f1206000814212e3b4754616e7a7f7f7f7f7f7f7f8c98a2aea99c8f827f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7d7063574e42372b1e13100c070f0c0b0906010000000000000000040d161e24292c2d2f3031323335362e2d2a32383b3d404040404141424246484c525860696f7c87929faca99f92867b6e6155483b2d22170b000000000006121f2b37434e58626f7c86929fa4aca399928b837f7b797777767777797c80858e939da4aea49a92857a6d61564c4135291d1105000000000000000013202c3946535f6c7986929facada093867a6d6053473a393939392d3338393a3b3c3e42464e57616c7683909da9ab9f94887b6e6255483b2f2215060000000000000b16212c353d44484a53535353535353535353535353535a6773808d9aa69b8e8174685b53535353535353535353535353534a49453e362c22170c000013202c3946535f6c7986929facada093867a6d6053473a393939393939392e34383a3a3b3c40454b515b616d7a86929facafa4998c7f7366554b4035291d10040013202c3946535f6c7986929facada093867a6d6053473a2d202020202020181d20202122252a2f39434d57636f7c8998a2aeaca196877b6e6154473b2e211408000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700121f2c3945525f6c7885929faba99c908376695d50432f24180d01000000000c1926333f4c5966727f8c99a5afa399887c6f6255493c2f221609000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a000000000000000000000000000000000000000000000000060f19222c363f49525c606d78828f959fa69d938c807366594d424b555e686e7b859198a2a49a92867d706356493d3023160a00000006121f2c3844505c6673808d9aa4afaa9e94887c6f655b50443d332a2219140e09060400000100000406090e141a232b353d45515d67717e8a95a0acada2978b7e7265574d42362a1e0a0000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6053473a393939393939393939393939393939393939393939393939393939392e2d2a251f170f050000000000000000000d192633404c5966737f8c99a6a3968a7d7063584e453e38322e2b262020212429333f49536673808d99a6a197877a6d6054473a2d211407000000000000000000000000000810171c2123242a3643505d697683908f8275685c4f4235291c0f000713202d3a4653606d787c7c7c7c7c7c7c7c786d6053463a2d201307000714202d3a4753606d7a868b8b8b8b8b8c919caab4ab9f948f8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b84776a5f53473a2e2114080000020000000000000000000000000000040c13191d202122232425272829222b353d4448494d4d4d4d4e4e4f4d5354565e616a6f7b849199a3aba1978d8174695f53463a2d1b11060000000000030f1b26323c47535f6a717e8b939aa2aaa39f95918c8886848483838485898c92979ea5aaa39f93887d70685e52443a3024190d01000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d2d2d2d22282b2d2d2e2f31363c45505a65727f8c98a5b0a6998c7f7366594c402d22170b00000000000005101a232c33383c3d464646464646464646464646464d5a6773808d9aa69b8e8174685b4e464646464646464646464646463e3c39332c241a1005000013202c3946535f6c7986929facada093867a6d6053473a2d2d2d2d2d2d2d23282c2d2e2e2f35394046525e6873808d99a9b3ab9d908377675d5145392c2013060013202c3946535f6c7986929facada093867a6d6053473a2d2d2d2d2d2d2d24292c2d2e2f30363b424b555f6974818e9aaab4ab9e918478695e52463a2d201407000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700121f2b3845525e6b7885919eabaa9d9084776a554b4035291d1004000000030f1b27333f49536773808d9aa6ac9f92867a6d6053473a2d201407000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000000000000050e18212b343e48515b636e74818e949ea79e948e81746e63574b4a545d676d7a849197a1a49f93887e716b6054483b2f22160900000003101c28343f4a54616e7b87939fabb0a69c9083776c60584e453c342a251e1a1312100c070e070c1013131a1f262a353d47505a606d7984919ea7b1a99f9285796d6053473b31261a0e0000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6053473a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d21201e1a140d05000000000000000000000d1a2633404d596673808c99a6a295887c6f6255493c332c27211e1d2024292d333b434e586774818d9aa7a994887b6e6155483b2e22150800000000000000000000000008121a22282d3031323643505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a87888888888888877b6e6154483b2e211508000613202c3945515d6775828f98989898999ca3adbcb0a69f9c98989898989898989898989898989896887b6e6255483b3025190e02000000000000000000000000000000000001080d111314151617191a1b1c27323d474f54565a5a5a5a5a5b5c575e6164686d747c859196a0aaa39992857a6e61574d42362a1e0a000000000000000a15202b37434e58616c727f8892989fa3a7a09d99999291909090919298999ea2a9a69f98928b7f726c61564c4132281e130800000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d202020171c1f20212122262a333e4955626f7c8895a2afa99c8f82766953493f33271b0f0300000000000008111a21272c2f30393939393939393939393939404d5a6773808d9aa69b8e8174685b4e4139393939393939393939393931302d28221a120800000013202c3946535f6c7986929facada093867a6d6053473a2d202020202020181c1f20212224292f35414c56626f7c8897a2adac9f9286796d6053473a2d2014070013202c3946535f6c7986929facada093867a6d6053473a393939393939392f35393a3b3b3d42464d545c676e7b87929facb1a79a8d817467574d42362a1e1105000b1825323e4b5865717e8b98a4aca295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700111e2b3744515e6a7784919daaab9e918578675d5145392c20130600000005121f2b3744505b6576838f9ca9aa9d908477675c5145382c1f1306000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000040d17202a333d47505a626d73808c939da69f958f82786d605b5244505c666d79839096a0a59c928b7f726c61594f44382c201307000000000c17232e3846535f6975828e99a3afab9f948b7f726a60574e463e36302a25201f1c181b1a1b181c1f20262b31363f474f59616c74808d96a1adada2978d8073675d5145392a1f14090000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6053473a2d2020202020202020202020202020202020202020202020202020201514120e090200000000000000000000000c1925323f4c5865727f8b98a9a396897c706356493d332b262324292c2f35383f444d56606a7683909da9a399877a6e6154473b2e211408000000000000000000000008121a242c33393c3e3f3e43505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a87949595959594877b6e6154483b2e2115080004101d2935404b5565717e8b99a49f9fa5a7adb5bbb2aaa4a19f9f9f9f9f9f9f9f9f9f9f9f9f9fa8998c7f7266564d41362a1e11050000000000000000000000000000000000000001040607080a0b0c0d13202c38444f596063676767676768686a696e71757a81879197a0a8a19892877d6f685e52453b31261a0e00000000000000040f1a26313c46505a636d727e868e92999da0a8aba39f9e9d9c9d9e9fa2aaaaa29f9b948f867e726d62594f443a3020160c0200000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d2014130b0f12131414151a212e3b4754616e7a8794a1adab9e928578655b5044372b1f1205000000000000000810161c2023232d2d2d2d2d2d2d2d2d2d2d34404d5a6773808d9aa69b8e8174685b4e41352d2d2d2d2d2d2d2d2d2d2d2423211c1710080000000013202c3946535f6c7986929facada093867a6d6053473a2d2014131313130c1012131415181d25303a4653606c7985929fabafa399897c6f6256493c2f2316090013202c3946535f6c7986929facada093867a6d60534746464646464646464640454747484a4d52575e666d79829099a3afab9f95897c6f6356493c30251a0e02000b1825323e4b5865717e8b989f9f9f95897c6f6256493c2f23160900000d1a2733404d5a6673808d999f9f9f9386796d6053463a2d20130700101d293643505c6976838f9ca9ac9f92867a6d6053473a2d20140a0000000613202d394653606c7985929fabac9b8e817468554b4034291c1004000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a000000000000000000000000000000000000000000030c161f29323c464f59616c727f8b929ca5a0969083796d665c5049525c606d78828f959fa69e938d80736d625a50473d32271b10030000000006111c2a36424d57626e7b87929fa8b0a69f92877c6f695f585046413b36312d2c282327272723282c2d31373b42465159606b717e8a929da8b1a79f92857a6d61554b4035291d10040000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6053473a2d2014131313131313131313131313131313131313131313131313130807050200000000000000000000000000091623303c4956636f7c8997a1a5988b7e7265594f453d3731302f35393a40454950565e686f7c89959fac9f9286796d6053463a2d2013070000000000000000000008121a242c363e45494a4c4a46505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a8794a0a2a2a194877b6e6154483b2e21150800010d18242f3a4754616d7a86939393939a9da5afb5aaa0989593939393939393939393939393939393908376685e5246392d2014070000000000000000000000000000000000000000000000000000000916222f3b4854606b707373737374747576787b7e82868e9299a1a39f9791867e716b60564d4133291f140900000000000000000a15202a343e48515b636c717b81878c919597999c9d9e9e9f9f9f9e9d9b9998928e89827b716c625b51473e32281e0e040000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20140c0c0c0c0c0c090e13202d3a4653606d798693a0acac9f9286796c605346392d2013060000000000000000050b10141617202020202020202020202734404d5a6773808d9aa69b8e8174685b4e41352820202020202020202020171714110c05000000000013202c3946535f6c7986929facada093867a6d6053473a2d2014070606000004060707070c131f2b3844505b667683909ca9b5ab978a7e7164574b3e3124180b0013202c3946535f6c7986929facada093867a6d6053535353535353535353534b5153545557575e61696e78818e949fabafa59d9083776b6054483b2f1f140900000b1825323e4b5865717e8b9393939393897c6f6256493c2f23160900000d1a2733404d5a6673808d939393939386796d6053463a2d201307000e1b2834414e5b6774818e9aa7afa399897c706356493d30261c110a080a111c28343f4a54626f7c8898a2aea49a8a7e7164574b3e2f23180c00000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000000020b151e28313b444e58606b707e87929fa4a19791847a6d675d544a515b636e74818e949ea79e948e81776c605b51483e352b21160b0000000000000e1a26313b47535f6974808d96a0abaea39991857b6e6a615a524c46423c3a38342e3434342e34383a3c42474d535b626b707d86929fa4aeaaa0958b7f72685e5243392f24180d010000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6053473a2d20140d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0b0a080500000000000000000000000713202d3a4653606d7985929ea99c8f82766b60574f47433e3d3d4045474b51535b60686e7a84919ea7a99d908376665c5145382c1f130600000000000000000008121a242c363e48505557585651505d697683908f8275685c4f4235291c0f000714212e3a4754616d7a8794a0adaea194877b6e6154483b2e21150800000713202d3946525e687682868686868e929da9b0a4988e888686868686868686868686868686868686887b6e6154473b2e2114080000000000000000000000000000000000000000000000000000000a1623303d495663707d808080808181828385878b8f92999fa09e99928d857c716c61594f443b3021180d030000000000000000030e18222d363f49515a61696e747b8084888b8d8f90919292929291908e8c8985817c766e69615a51493f352c20160c000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20191919191919191a1a1c222d3a4754606d7a8793a0adafa399877a6d6054473a2d211407000000000000000000000407090a1313131313131313131a2734404d5a6773808d9aa69b8e8174685b4e4135281b1313131313131313130b0a08040000000000000013202c3946535f6c7986929facada093867a6d6053473a2d201407000000000000000000030f1c28333f4a546875828f9ba8b2a5988b7f7265584c3f3225190c0013202c3946535f6c7986929facada093867a6d606060606060606060606060555d6061626466696e737b828e939ea6b0a79e938a7d7063594f44382c200d0200000b1825323e4b5865717e868686868686867c6f6256493c2f23160b0301071a2733404d5a66738086868686868686786d6053463a2d201307000c1825323f4b5865727e8b98a9b2ab998c7f7266594f42382e231a1615141c232c3844505c6673808d9aaaac9f93877a6d6154473a2e21140700000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000a141d27303a434d565f6a6f7d869299a3a29892857b6e685e554b505a626d73808c939da69f958f82786d655b50493f362c23190f0400000000000009141f2b37424d57606d79849199a4afaba19791847c706c615e56534d494644404141414141404546494d53575f616d727d869298a2aeaca2989083786c60564c4131281d1207000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6053473a2d201a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a171714110c0500000000000000000006121f2b3844505c6673808c96a19f94897d70696059534e4b49494b5153555d60656c717a839096a0aca2978c7f7265544b4034281c1004000000000000000008121a242c363e48505a616465625b515d697683908f8275685c4f4235291c0f000714212e3a4754616d7a8794a0adaea194877b6e6154483b2e211508000005111e2a36414c5666707679797979818e9aa7aea195887c79797979797979797979797979797979797976685e5246392d2014070000000000000000000000000000000000000000000000000000000c1926333f4c5966727f8c8d8d8d8d8e8f909298979c9c9a9896918d86807a6f6a615a50473d32291f0f060000000000000000000006101b242e373f4850575e61696e73777b7e80828484858686858583827f7d79756f6b625f5750483f372d231a0e04000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d252525252525252626262b2d333c4855616e7b8894a1aeaea399867a6d6053473a2d201407000000000000000000000000000006060606060606060d1a2734404d5a6773808d9aa69b8e8174685b4e4135281b0e0606060606060606000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d201407000000000000000000000b17222d414e5b6774818e9aa7b2a5998c7f7266594c3f3326190c0013202c3946535f6c7986929facada093867a6d6c6c6c6c6c6c6c6c6c6c6c6c6c676d6e6e7073767b80858f949ea5afa8a0958e81756b6155473d32271b0f0000000b1724313d4a56626c71797979797979796f6a6054473b2e231c150c0b121826323f4b58636e737979797979797976665c5044382c1f1206000916222f3c4955626f7c8897a1adaa9d9184776b60544a3f342b26232222262e35414c56606d7985919eabaa9d908376685e5246392d20130700000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000006111c262f39434c565e696e7c859298a3a39992867c6f695f564c4f59616c727f8b929ca5a0969083796d665c53493f372d241a110700000000000000030e1a26313c45515d676f7d87939fa4aea9a19691867e756e68615e575653514a4e4e4d4e4e4b515356575f62696e767f879298a2aaafa49a92867c6f665b50443a301f160c01000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6053473a2d27272727272727272727272727272727272727272727272727272727272423211c171008000000000000000003101c28343f4a54606d7a849199a49e91847b6f6b625f58585656555d6064676d71787e859095a0a8a49e92857a6d6154473a2e23180c000000000000000008121a242c363e48505a616c71726d625b5d697683908f8275685c4f4235291c0f000714212e3a4754616d7a8794a0acaca194877b6e6154483b2e2115080000010d1925303a44545e66696c6c6c75818e9ba8ada194877a6e6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b5e564d41362a1e11050000000000000000000000000000000000000000000000000000000c1926333f4c5966727f8c999a9a9a9b9b9d9fa29f94908d8b8884807b746d68605850483e352b20170d00000000000000000000000915202b353f474e524d52575f62666a6e71737577787879797978777573706d67636059534d46423c332a1f140900000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a323232323232323233333137383f444f5964717e8b97a4b1ac9f928679675d5145392c1f1306000000000000000000000000000000000000000000010d1a2734404d5a6773808d9aa69b8e8174685b4e4135281b0e0200000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20140700000000000000000000061b2834414e5b6774818e9aa7b2a6998c7f7366594c403326190d0013202c3946535f6c7986929facada09386797979797979797979797979797979797a7a7b7d8082868c92979fa6afa79f969183796d60594f44352b21160b0000000915212e3a45505a62656c6c6c6c6c6c6c6260584e443d342e271e18151d2329333c47525c63666c6c6c6c6c6c6c6c5c544a3f34281c1003000613202d394653606c7884919eabaca095897d70665c50443f37312f2e2f30383f46525e68717e8b97a1ada3988b7e7265564c41362a1e110500000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a000000000000000000000000000000000000091217222d38424b555d686e7b849197a2a39f92877d706a60574d4e58606b707e87929fa4a19791847a6d675d544a41382d251b120800000000000000000009151f2935404b55606b727f8b929da4ada9a198928a817a746e696562605c545b5a5a5a5b545c606266696e747b828b9299a2aaaea39f93887e706a5f544a3f32291e0d0400000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6053473a34343434343434343434343434343434343434343434343434343434343431302d28221a120800000000000000000b17232e3845525d68707d87939aa19691847d746f6a6764636366676d70757a7e838b9297a0a7a49c928b7e71685d5246392d1d12070000000000000008121a242c363e48505a616c717e7f726d6257697683908f8275685c4f4235291c0f000714212e3a4754616d7a87949f9f9f9f94877b6e6154483b2e211508000008131e28323a4146545a5d60606875828f9ba8ada093877a6d606060606060606060606060606060606054524d443b3025190e020000000000000000000000000000000000000000000000000000000c1926333f4c5966727f8c99a5a6a7a7a8a9aba99c9083807e7c77736e69615e564e463e362c23190e0500000000000000000000010e1a26313d4751595e5f6060605e575f626466696a6b6b6c6c6c6b6a686663605d6060606055534d453c31261a0e02000000000000000000000013202c3946535f6c7986929facada093867a6d6053473f3f3f3f3f3f3f3f3f3f404142464a5057606b75828f9ca8b5aa9d9184776a554b4035291d1004000000000000000000000000000000000000000000010d1a2734404d5a6773808d9aa69b8e8174685b4e4135281b0e0200000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20140700000000000000000205101c2834404b556875828f9ba8b2a5988b7f7265584c3f3225190c0013202c3946535f6c7986929facb9a2958b868686868686868686868686868686868687888a8c8f92999fa2a9aba39f9590847b6e675d51473e3323190f0400000005111d29343f4850565860606060606060605e56544f444039302a211f272f343e454d53555d60606060606060605f504a42382e23170c000005121f2b3744505b6574808d9aa6b0a89d9083786d605a5047433d3c3b3c3d424a505b616d7a85929ea9ab9f92867a6d6154473a3025190d0100000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a000000000000000000000000000000000007101b2428333f4a545c676d7a839096a1a49c918b7e716b61584e4d565f6a6f7d869299a3a29891857b6e685e554b42382f261b130900000000000000000000030d18242f3a434f59626d74808d929ca3adaaa29f938e86807b76726f6d6669686767676869666d6f72777b81868f949fa3ababa39f918c7f726c61584e42382d20170d0000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d605347404040404040404040404040404040404040404040404040404040404040403e3c39332c241a10050000000000000006111c2935414c56606b717e8892989f969188817c777471707073767a7d81858b91959ea1a9a29f928d80736c61564c4135291d0b0000000000000008121a242c363e48505a616c717e878b7f72695e697683908f8275685c4f4235291c0f000714212e3a4754616d7a87939393939393877b6e6154483b2e21150800010d1925303a444c52545757575c6875828f9ba8aca09386796d60575757575757575757575757575755544e46413b32291f1408000000000000000000000000000000000000000000000000000000000c1926333f4c5966727f8c999f9fa0a1a2a4a6aa9e9185817e7a746e69605c554d443d342c241a1107000000000000000000000004111d2a36424e59636a6c6c6c6c6b636059585a5c5d5e5f5f5f5f5e5d5b575f626a6c6c6c6c6c5f574d42372b1e1205000000000000000000000013202c3946535f6c7986929facada093867a6d60534c4c4c4c4c4c4c4c4c4c4c4d4e4d53545b6069707d88939facb3a99b8e8174685b4e412f24180c00000000000000000000000000000000000000000000010d1a2734404d5a6773808d9aa69b8e8174685b4e4135281b0e0200000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20140c0c0c0c0c0c0c0c090e1116202c3845515c677683909ca9b6ac978b7e7164584b3e3125180b0013202c3946535f6c7986929facb9a79d959393939393939393939393939393939393949597999c9fa3abaca49f99928d837b6e695e554c41352c21110700000000010c18222d363f454a4b5359636a6c6c6c6c6b636059514a423c332a2a3139404550575f626a6c6c6c6c6c5f574d53443f3830261c11060000030f1b27333f4953626f7c88949eabab9f958c7f726c625a534e4a4948484a4e545c606d75818e97a1ada3998d8074685d524639291e13080000000000000000000002070a0c0d0908060a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000040f19222d363e44505b666d79828f95a0a59d928c7f726c62594f4c565e696e7c859298a2a39892867c6f695e564c433930261d140a01000000000000000000000007131d28313d47515b606c77808c919ea1a9aea59e98928d87837f7c79777674747474747677797c7f83888e92999fa6aea8a199928b7f736d635a50463c2f261c0e050000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d60534d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4a49453e362c22170c00000000000000000d19242f3a444f59626c717e868f949c9a938e8883807e7c7c7f83868a8e92989da0a7a39f97928a80736e645a50443a3024190d00000000000008121a242c363e48505a616c717e879292867b6e61697683908f8275685c4f4235291c0f000714212e3a4754616d7a86868686868686867b6e6154483b2e2115080005111d2a36414c565e61646464646875828e9ba8aca09386796d6464646464646464646464646464646260584e43372b20170d02000000000000000000000000000000000000000000000000000000000c1926333f4c5966727f8c939393939495979a9d9f97918e8b85817b736d675e564d453b30271d1207000000000000000000000006121f2c3845525e6a757979797978706b605c544d5151525353524b515a61696e777979797976695f53463a2d211407000000000000000000000013202c3946535f6c7986929facada093867a6d60585858585858585858585859595a575f61666c717b84919aa4afada2978a7e7164574b3e3124180700000000000000000000000000000000000000000000010d1a2734404d5a6773808d9aa69b8e8174685b4e4135281b0e0200000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d201919191919191919191a191e2028323a4653606d7986929facafa49a897c6f6356493c302316090013202c3946535f6c7986929facb9afa7a2a09f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa0a1a1a3a6a8a6a8a09e9a938f8780796e695e574d433a2f231a1000000000000006111b242d343a3d3e525e6a757979797978706b605c544d453f36333c434b515a61696e777979797976695f53463a342e261e150a000000000b17222d3847535f6a75828f99a3afa79f92877e716c625f5857565555575860666d737f8c939ea9a89f92867b6e61564c413529170d02000000000000000000070d131619191515120f1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a000000000000000000000000000000000a16212b343e48515b606c78818e949fa69e938d80746d635a504b555d686e7b849197a2a49992867d706a5f574d443a31281e150b02000000000000000000000000010c161f2b353f44505b656c747f8a92979ea6acaaa29f9a93908c898684828181808181828486898c90959a9fa3ababa49f9691877e736d635b51473e342a1d140a000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d605a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a575550483e33281c11050000000000000008131e28323d47505a626c717b82898f92999b95908d8b89898c8f92999b9fa2a9a29e99928e857e736e645c52483e32281e13080000000000050e1a242c363e48505a616c717e879292867d70695e697683908f8275685c4f4235291c0f000713202d3946525e6876797979797979797976695e52463a2d201407000713202d3946525e686d717171717174818e9ba7ada093877a717171717171717171717171717171716f6a6054473c31261a0e02000000000000000000000000000000000000000000000000000000000c1926333f4c5966727f868686868687888a8d90959a9e9b98928d8680796e695f574d43392e23180c03000000000000000000000613202c3946535f6c7987868686847d736d665f5751464146454d555c606c717b83868686867b6e6155483b2e221508000000000000000000000013202c3946535f6c7986929facada093867a6d65656565656565656565656566666769696e72787e859196a1acb1a79f9285796d6053473a2d20140700000000000000000000000000000000000000000000010d1a2734404d5a6773808d9a9a9a8e8174685b4e4135281b0e0200000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d2525252525252525252627252a2d323a444e5863707d8998a2aeac9f93867a6d6154473a2e2114070013202c3946535f6c7986929facb9afa7a2a09f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa39f9f9e9d9b999796918c87827c736d675e574d453b31281e11080000000000000009121b22292e3946535f6c7987868686847d736d665f575146413e454d555c606c717b83868686867b6e6155483b2e231c150c030000000006111b2b37434e58626f7c87929fa6aea39992877e766f6a666462616263666a6f78808c919ca5aaa0968c8073695e53443a302419050000000000000000010a12191e23252622211f1b1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a000000000000000000000000000000030f1b27323d47505a636d74808d939ea69f948e81786c605b514a545c676d7a839096a1a49f93877e716b60584e453b32281f160c030000000000000000000000000000040d192327333f49535b606d737d858f949da0a7acaca49f9c989892918f8e8d8d8d8e8f919298999d9fa7acaca69f99938d847d716c635b51493f352c22180b02000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada093867a6d6767676767676767676767676767676767676767676767676767676767676767676764615a5045392d21140800000000000000010c16202b353f48505a61696e767d8287929fa09d9a979696999c9fa3a9a29f9b97928d86817a716c635c524a40362d20160c0200000000020d17202c363e48505a616c717e879292867d706b6057697683908f8275685c4f4235291c0f0005111d2a36414c565e6c6c6c6c6c6c6c6c6c6c5e574d42362a1e1205000714212e3a4754616d7a7e7d7d7d7d7d828f9ca9b1a4988b7f7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7c6f62574d42372b1e1205000000000000000000000000000000000000000000000000000000000c1825323e4b57636d72797979797a7a7b7e8083888d9399a09f99928c837b6e695f554b4034281f140900000000000000000000000b1825323e4b5865717e8b9296918780786e69625b524c4550575f676d747e869095948d8074695f53463a2d211407000000000000000000000013202c3946535f6c7986929facada09386797272727272727272727272727272737476787b7f848a9297a1a8b2a9a0958c7f72675d5145382c1f130600000000000000000000000000000000000000000000010d1a2734404d5a6773808d8d8d8d8d8174685b4e4135281b0e0200000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a32323232323232323232333330363a3e444c565f6a75818e9baab4aa9d918477685d5246392d2013070013202c3946535f6c7986929facb9a79d959393939393939393939393939393939399929291908f8d8a8784807b756f6a605c554d453b33291f160c0000000000000000000911181d25323e4b5865717e8b9296918780786e69625b524c4550575f676d747e869095948d8074695f53463a2d21110a030000000000000f1b26313c47535f6a73808c949fa7aba399928b827c7773706f6e6f7073777c838d929ca3aba2989184796d60574d4232281e130800000000000000000a131c242a2f32332f2e2b262024303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000007131f2c38434f59616c727f8c929da5a0959082796d665b5044505b666d79828f95a0a59c928b7f726c61594f463c332920160d0400000000000000000000000000000000071017222d384149505b636b707b828990959c9fa4acaca9aaa39f9d9c9b9a9a9a9b9c9d9fa3aaaaababa39f9b948f878079706b625a514940372e231a100600000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facada09386797373737373737373737373737373737373737373737373737373737373737373737373716c6155493c3023170a0000000000000000040d19232d363f49515a61696e757b818e9aa7aaa7a4a3a3aba39f9c9997928e8a85807b746d68615a524a40382e241b0e04000000000008141f29323e48505a616c707e879291857c6f6b646464697683908f8275685c4f4235291c0f00010d1925303a444c525f60606060606060605f524d453b30251a0e02000714212d3a4754606d7a868a8a8a8a8a8f949fabb3a79b918b8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8377695f53463a2d211408000000000000000000000000000000000000000000000000000001020a16222f3a46515b63666c6c6c676d6e6f7173777c81879195a0a39f9590847b6e675c51453b30251a0e02000000000000000000000b1724313d4a56626d73808c9399938d837b726d615e56515a61696e79818a9298958f82786d60574d42372b1e1205000000000000000000000013202c3946535f6c7986929facb2a5988b7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f80818384888b91959fa2a9afa8a1979083796d60554b4035291d100400000000000000000000000000000000000000000000000a1724303d4a5763707d80808080807e7164574a3e3124170b0000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473f3f3f3f3f3f3f3f3f3f3f3f404142464750565d686f7c87939facb0a69a8d807367564c4135291d11050013202c3946535f6c7986929facb9a2958b86868686868686868686868686868686868685858382807e7b77736e69625f58514b433b332921170d0400000000000000000000060c1724313d4a56626d73808c9399938d837b726d615e56515a61696e79818a9298958f82786d60574d42372b1e1200000000000000000a15202b37434e58606d78828f959fa6aba39f948f8883807d7c7b7b7d7f838990959ca4aba39992867c6f675d51453b3120160c020000000000000007121c252e353b3e403c3b37322a24303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000915222f3b4854606b717e88939fa4a19690837a6d675c544a4653606c78818e949fa69d938c80736d625a50473d342a21170e0500000000000000000000000000000000000006111b262f383f44515961696e757d83898f939a9c9fa2aaa7a8aaa9a7a7a7a7a7a9a9a8a6a9a29e9b99928e88827c746d676059504840372e251c11080000000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facb3a79a8d8080808080808080808080808080808080808080808080808080808080808080808080807e7164574a3e3124170b00000000000000000915202a333f48515b636c717b81878e939da9acaba49f9d999992908c8985817d79746e69615e56504840382e261c12090000000000020e1925303b44505a616c707e879291847c717171717171717683908f8275685c4f4235291c0f000008131e28323a41465353535353535353534846423b33291f140900000613202c3945525d6876828f979797979c9fa6b0b7aca39b9897979797979797979797979797979795887b6e6155483b3025190e0200000000000000000000000000000000000000000407090a0d0e0f10121e2a353f495157596060555d60616264676a6f747c839095a0a7a0969083796d60574d42362a1e1205000000000000000000000915212e3a45505a636e74818e939f9590867e756d68605c606c717b838e939f969083796d665c50453c31261a0e02000000000000000000000013202c3946535f6c7986929facb9a79b918b8b8b8b8b8b8b8b8b8b8b8b8b8b8c8c8d8f9196989da0a7adaba59e9691857b6e675c5143392f24180c0000000000000000000000000000000000000000000000000916232f3c4855616b707373737373716c6155493d3023170a0000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d60534c4c4c4c4c4c4c4c4c4c4c4c4c4d4e4d52545a61686d7a83909aa4afac9f94887c6f6255493c3024190d010013202c3946535f6c7986929facada093867979797979797979797979797979797979797878777573716e6966625f57534e454039302920170f050000000000000000000000000915212e3a45505a636e74818e939f9590867e756d68605c606c717b838e939f969083796d665c50453c31261a0e0200000000000000030f1b26313c44505c666d7a8390949fa4aca69f9c95908c8a8988888a8c90959d9fa7a8a19992877e716a5f554b4033291f0e0400000000000000020d19242e3740464b4c4847433c3429303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a000000000000000000000000000000091623303c4956636f7c86929a93939791847b6e685d554b424d5a6673808d93939393948e81746e635b51483e352b22180f0500000000000000000000000000000000000000000a141d262d3340474f575e616b70777d82878b8f9298989a9b9d9e9e9f9f9f9e9d9d9b999797928e8a86817c766f6a605d554f473e362e251c130a000000000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f02000000000000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facb9a99d928d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8174675b4e4134281b0e01000000000000020e1a26313c45505a636d727e868e939a9da5a39f9c9993908c898683807c7975706d66615e57524c443e362e261c140a00000000000005111e2a36414d56616c707e879292867f7e7d7d7d7d7d7d7d7e83918f8275685c4f4235291c0f0000020c1620283036394646464646464646463b3a36302921170d02000004111d2935414c5665727e8b9aa49f9fa1a3a9b1bbb5aca7a49f9f9f9f9f9f9f9f9f9f9f9f9f9fa7988c7f7265564c41362a1e1105000200000000000000000000000000000000050b101416171a1b1c1d1e1f232e373f464b4c53534b5153545557585f626a6f7a839097a1a8a0958d8074695e52463a2d2014090000000000000000000005111d29343f48525b606d78818f959f98928b827a706b676d747e8690959d9891847b6e675d544a3f332a1f140900000000000000000000000013202c3946535f6c7986929facb9ada39b989898989898989898989898989899999a9c9ea1a8aaacaaa69f9c938e847c6f695f554b4031271d12070000000000000000000000000000000000000000000000000714202c38444f596163676767676764615a5045392d2114080000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6058585858585858585858585858595a5a565e61656c707a829095a0acafa49a8f82766a5f53473b2e1e1308000013202c3946535f6c7986929facada093867a6d6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b6a686664615e5755534d47433c342e271e170e050000000000000000000000000005111d29343f48525b606d78818f959f98928b827a706b676d747e8690959d9891847b6e675d544a3f332a1f14090000000000000000000a152028343f4a545d686d7a828d939a9fa6aba7a09d999795949596999d9fa7aba39f9691877e716c61584e43392f21170d000000000000000007131e2a35404952575955534e463f35303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000c1925323f4c5865727f868686868686857c6f695e564c4343505c69768286868686868682786d605c52493f362c23191006000000000000000000000000000000000000000000020b141b2227353e454d525960636b70757b7e8285888b8d8f9091929292929191908e8c8a8885817e7a746f6a626058514b433d352d241c130a01000000000000000000000b1825313e4b5864717e8b97a4b1a89b8e8175685b4e4235281b0f06060606060000000000000000010e1b2734414e5a6774818d9aa7b1a4978b7e7164584b3e3125180b0013202c3946535f6c7986929facb9aea49d9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a8e8174675b4e4134281b0e0100000000000006121e2b37424e57626d727f8a92989fa4a29f99928f8b8683807d797673706d6664605c54534d46413a322c241c140a020000000000000714202d3946525e68707e87929999928c8a8a8a8a8a8a8a8a8a91958f8275685c4f4235291c0f000000050e161e252a2d2e39393939393939392e2d2a251f170f05000000010d19242f3b4754616e7b879393939394979fa9bcaea49c9993939393939393939393939393939393908376685e5246392d20140c070f0b0a080500000000000000000000000810161c202324262728292a2b2c202e353a3e3f464640454747484b4e535860686d7a85929ea9a79f92877b6e6154483b31261a0e02000000000000000000010c18222d364044505c666d79829095a09f938f857d746f79818a9298a09992867c6f695e554b42382e21180e0300000000000000000000000013202c3946535f6c7986929facacacada7a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a6a7a9a9a7aca49f9d99948f89817a6f6a5f574d43392e1f150b0100000000000000000000000000000000000000000000000004101c28333e474f55575a5a5a5a5a575550483e33281d11050000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d656565656565656565656565656566666769696e72777d8590949fa7b1a79f93877c6f62584e43372b1f0c02000013202c3946535f6c7986929facada093867a6d6060606060606060606060606060605f5f5e5d5c5a5754524d4847423c373128231d150c050000000000000000000000000000010c18222d364044505c666d79829095a09f938f857d746f79818a9298a09992867c6f695e554b42382e21180e03000000000000000000030c17232e38424c565d686d78808790949b9fa2aaa8a6a3a2a1a2a3a6a8a9a29f99928d847d716c615a50463c31271d0f0500000000000000000a16232f3b46525b6366625f585146413a3d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000b1824313e4a56626d72797979797979786f6a5f574d443a414e5a667076797979797979756d665c504a40372d241a11070000000000000000000000000000000000000000000000020a1117232c333b42464f54596063696e7276797c7e808283848585868585848382807d7b7975716d68625f58544e45403a312b231b120a0100000000000000000000000b1825313e4b5864717e8b97a4aca89b8e8175685b4e4235281b0f13131313130c06060300000000010e1b2734414e5a6774818d9aa7aca4978b7e7164584b3e3125180b0013202c3946535f6c7986929facacacaea9a7a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a69a8e8174675b4e4134281b0e010000000000000814212e3a47535f6a717e8b919fa2a69f98928d87827e7a7673706d676663605c5453514b46423b363029201c17110a020000000000000814212e3b4754616e7b859299a3a39f9793939393939393939393938f8275685c4f4235291c0f00000000050c13191d20212d2d2d2d2d2d2d2d21201e1a140d0500000000000814202d3a46525e69768386868686878d97aab4a89c928c8686868686868686868686868686868686887a6e6154473b2e211c181c1b171714110c05000000000000000008111a21282c2f30333435363738392d2c282f3233392f35393a3b3c3e43474e565e68717e8b97a1ada3998d807367574d42362a1e12050000000000000000000006111b2428343f4a545d676d7a839196a19e979188807b838e929fa29f93877d706a5f574d433a30261c0f060000000000000000000000000013202c3946535f6c7986929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa49f9f9f9e9d9c9a999a93908d88827d756d685f584e453c30271d0d0300000000000000000000000000000000000000000000000000000b16212c353e44484a4d4d4d4d4d4a49453e362c22170c000000000000000000000000000000000000000013202c3946535f6c7986929facada093867972727272727272727272727272727272737475787b7f838a91979fa6b0a79f958d80746a6054463c32261b0f00000013202c3946535f6c7986929facada093867a6d605353535353535353535353535353535252504f4d4b4846423b3a37312b262018120b030000000000000000000000000000000006111b2428343f4a545d676d7a839196a19e979188807b838e929fa29f93877d706a5f574d433a30261c0f06000000000000000000000006111c26303a434c565d666d737c83898e9298999b9d9e9f9f9f9e9d9b9997928d87817a6f6b615a50483e342a1f150b0000000000000000000c1925323e4b57636d736f6a625b524c443d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000915222e3a46515b62656c6c6c6c6c6c6c625f584e453b323e49545e66696c6c6c6c6c6c69605c544a3f382e251b1208000000000000000000000000000000000000000000000000000006111a202930363d44484f54565e6165666d6f7174757778787979787877767573716f6d6664605d56534e47433d352f281f191109000000000000000000000000000b1825313e4b5864717e8b979f9f9f9b8e8175685b4e4235281b1320202020201913120f0b060000010e1b2734414e5a6774818d9a9f9f9f978b7e7164584b3e3125180b0013202c3946535f6c7986929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9a8e8174675b4e4134281b0e01000000000005111e2a36424d57626e7b86929fa3a59e949086807b75716d686663605d555653504a464540393631302e2d2b28231c140c0400000000000714202d3946525e68717e87929999928a8686868686868686868686868175685c4f4235291c0f000000000002080d11131420202020202020201514120e090200000000000005111e2a36424d56667176797979797b8798a3aea6998c8079797979797979797979797979797979797976685e5246392d2c292329282423211d17100800000000000005101a232c33383c3d404142434445453a38342e27262d24292c2d2e2f31373d444c56606c7885919eabab9e918478695f53463a2d2114070000000000000000000000091217232e38424b555d686e7b849197a2a19a938d8890959da59d928b7f726b61584e453b31281e140a000000000000000000000000000013202c3946535f6c7986929393939393939393939393939393939393939a93929291908f8e8c898683807b76706b615e564e463c332a1e150b00000000000000000000000000000000000000000000000000000005101a232c33383c3d40404040403e3d39332c241a1005000000000000000000000000000000000000000013202c3946535f6c7986929facb2a5988b7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f80818285878b90959ea1a9aea69f959083796d60584e43342a20150a00000013202c3946535f6c7986929facada093867a6d6053474646464646464646464646464645454442403e3b3a36302e2b261f1b150c0700000000000000000000000000000000000000091217232e38424b555d686e7b849197a2a19a938d8890959da59d928b7f726b61584e453b31281e140a000000000000000000000000000a151e28313a444c545c606a6f767c8185898c8e909192929292918f8c8985807b746d68605950483e362c22180d030000000000000000000d192633404c5966737f7c726d615d564f444a5763707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000006121e29343f495156586060606060605f55534e463c332938424c545a5c6060606060605c53504a42382e261c130900000000000000000000000000000000000000000000000000000000080e171f252a33383d44484d5254545c60626567686a6b6b6c6c6c6b6a6a68666462605c5454524c47433c383229241d160d0700000000000000000000000000000b1825313e4b5864717e8b93939393938e8175685b4e4235281f202c2d2d2d2c26201f1c17110a02000e1b2734414e5a6774818d93939393938b7e7164584b3e3125180b0013202c3946535f6c79869293939393939393939393939393939393939393939393939393939393939393939393939393939393938e8174675b4e4134281b0e0100000000000714202d3a46525e6975828e98a2a89e938e827b736e6964615e565653514b4946443f3a3e4041403e3d3b3a38342e261e160d040000000005111e2a36414d56616c717e879392867e797979797979797979797979756f65594d4134281b0e00000000000000010507071313131313131313080705020000000000000000020e1925303b44555f666a6c6c6c6c7985929faca89b8e81756c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b5e564c413b3a38342f363531302d28221a120800000000000b16212c353e44484a4d4e4f505152524644403930271c181d20202122262b323a44505b6674818e9aa7ada196887b6e6155483b2e22150800000000000000000000000006111c263039434c565e696f7c859299a3a49f9a959da0a79e948d80746d62594f463c33291f160c02000000000000000000000000000013202c3946535f6c79878686868686868686868686868686868686868686868685858483817f7d7a77736e6a636059524c443c342a21180c030000000000000000000000000000000000000000000000000000000008111a21282c2f30343434343431302d28221a120800000000000000000000000000000000000000000013202c3946535f6c7986929facb9a79b918b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8c8d8d8f9197989da0a7adaaa39f948f837a6d675c51463d3222180e0400000013202c3946535f6c7986929facada093867a6d6053473a3939393939393939393939393938373533312e2d2a25211e1a150f0a0400000000000000000000000000000000000000000006111c263039434c565e696f7c859299a3a49f9a959da0a79e948d80746d62594f463c33291f160c0200000000000000000000000000030c161f28323a424a515860626b6f75797c7f828385858685858482807c79746e6a615e564f473e362c241a1006000000000000000000020f1c2835424f5b687581867f756d686059504a5763707d8a96a3b0a3978a7d7064574a3d3124170a000000000000000000000000000000010d18232d373f464a4c535353535353524847433c342a21303a42494e505353535353534f46443f3830261c130a010000000000000000000000000000000000000000000000000000000000050d141a21272c33383b4246474a545c6a6c6c6c6c6c66605b5f5e5e5d5b59575553504a4745413a37312b272018130c040000000000000000000000000000000b1825313e4b5864717e868686868686868175685b4e4235282b383939393939332d2b28221c140b060e1b2734414e5a677480868686868686867e7164584b3e3125180b0013202c3946535f6c7987868686868686868686868686868686868686868686868686868686868686868686868686868686868686868174675b4e4134281b0e0100000000000814212e3b4754616e7b87939faaa0968e81786e69615e5754524c494745403d3a3840464b4c4e4c4b494846443f3830281f160c01000000020e1925303b44505a616c717e879392877e716c6c6c6c6c6c6c6c6c6c68655d54493d3125190c000000000000000000000000000000000000000000000000000000000000000009141f2932434d555b5d60605b667783909daaaa9d908377675c60606060606060606060606060606054524c4446484745404443423e3d39332c241a100500000004101c28333e474f5557595a5b5c5d5e5f53514a42392e231810131414151b2028333f4a5464717e8b97a4b2a8978a7e7164574b3e3124180b000000000000000000000000000a141e27313a444d575f6a707d879299a49f9f9f9fa9a0958f82786d605b51473e342a21170d04000000000000000000000000000000121f2c3845525e6a757979797979797979797979797979797979797979797979797877767472706d6866625f58544f46413a322a22180f060000000000000000000000000000000000000000000000000000000000000810161c20232427272727272423211d1710080000000000000000000000000000000000000000000013202c3946535f6c7986929facb9ada39b9898989898989898989898989898989899999a9c9ea1a9aaacaba39f98928c827a6d685e554b40342b2110060000000013202c3946535f6c7986929facada093867a6d6053473a2d2d2d2d2d2d2d2d2d2d2d2c2c2b2a29272421201e1a14120e09030000000000000000000000000000000000000000000000000a141e27313a444d575f6a707d879299a49f9f9f9fa9a0958f82786d605b51473e342a21170d04000000000000000000000000000000040d162028303940444e54596063666d707275767879797978777573706d66625f57524c443d342c241a120800000000000000000000020f1c2835424f5b6875828e8b827a6f6b605c545763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000006111b252d343a3e3f464646464646453c3a37312a221e2830383e4143464646464646423a38342e261e140a010000000000000000000000000000000000000000000000000000000000000002090e161c21272c30363a44505c66757979797979726c665f5751504f4d4a4846443f3a39352f2b26201b160d0701000000000000000000000000000000000a1724303d4956626c7179797979797979756f65594d402e34384546464646463f3938332d261d180f091a2733404c58646e7479797979797979716c6256493d3024170a00121f2c3845525e6a757979797979797979797979797979797979797979797979797979797979797979797979797979797979797979746f64594c4033271a0d0100000000000b1825313e4b5864717e8b99a4aa9d9184796d665f57524d4746413d3a38352f3040495157595b5958565453504a423a31281e13080000000008141f29323e48505a616c717e889392877e716c615a6060606060605c59544b42372c2115090000000000000000000000000000000000000000000000000000000000000000020d1720313b434a4e50534a546774818e9aa7ac9f9286796d6053535353535353535353535353535347464a51535453514b504f4e4a49453e362c22170c0000000714202c38444f596163666768696a6b6c605c544a4034281c100607080a0e17222d3d4a5763707d8a96a3b0a5988b7f7265584c3f3225190c00000000000000000000000000020c151f28323b454e58606b717e8793939393939393969083796d665c50493f352c22190f0500000000000000000000000000000000111d2a36424e59636a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b6a69676663615e5655534e48443d363028201810060000000000000000000000000000000000000000000000000000000000000000050b101416171a1a1a1a1a171714110c05000000000000000000000000000000000000000000000013202c3946535f6c7986929facacacada7a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a6a7a8aaa8a6a7a09d99928e867f786d685e564c43392e22190f000000000013202c3946535f6c7986929facaca093867a6d6053473a2d20202020202020202020201f1f1d1c1a181514120e0906020000000000000000000000000000000000000000000000000000020c151f28323b454e58606b717e8793939393939393969083796d665c50493f352c22190f050000000000000000000000000000000000040d161e272e343d43474f54545c606366686a6b6c6c6c6b6a686663605c54534e46413a322b221a12080000000000000000000000020f1c2835424f5b6875828e938f847d736d665e5763707d8a96a3b0a3978a7d7064574a3d3124170a000000000000000000000000000000000009131b23292e3132393939393939392f2e2b262018161e262d323536393939393939362d2b28231c140c0200000000000000000000000000000000000000000000000000000000000000000000050b10161c1f252d3a4653606d7987868686867f786e69625b524d443e3c3a38342e2c29241e1b150f0a040000000000000000000000000000000000000815212d3945505a62646c6c6c6c6c6c6c68655d53483d383f445253535353534c46443f382f2a2119141824303c48535c64676c6c6c6c6c6c6c64625a5045392d21150800111d2a36424e59636a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c67645d53483c3024180b0000000000010d1a2734404d5a6773808d9aaba4988b7e71675c544d46423b3935302d2c292e3842515b63666866646361605c544c433a2f24190d01000000020d17202c363e48505a626c717e889392877e716c61574d535353534f4d49423930261b1004000000000000000000000000000000000000000000000000000000000000000000050e1f2831383e4243464b5865717e8b98a8aea399897c7063564946464646464646464646464646404a545c6061605c555d5c5b575550483e33281d110500000916232f3c4855616b70737475767778786d665c5144382c1f12060000000616232f3c4956626f7c8995a2afa6998c807366594d4033261a0d0000000000000000000000000000030d162029333c464f59616c727f8686868686868686847b6e675d544a3f372d231a100700000000000000000000000000000000000e1a26313d4751595e5f6060606060606060606060606060606060606060605f5f5e5d5c5b595654524c4847433c38332a251e160e0600000000000000000000000000000000000000000000000000000000000000000000000407090a0d0d0d0d0d0b0a08050000000000000000000000000000000000000000000000000013202c3946535f6c7986929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa39f9f9e9d9b999795908c86817b736d665e564c443a30271d1007000000000013202c3946535f6c7986929f9f9f9f93867a6d6053473a2d20141313131313131313131212110f0d0b08070502000000000000000000000000000000000000000000000000000000000000030d162029333c464f59616c727f8686868686868686847b6e675d544a3f372d231a100700000000000000000000000000000000000000040c151c232832373d43484b515356595b5d5e5f5f5f5f5e5c595653514b47423c35302820191008000000000000000000000000020f1c2835424f5b6875828e9b96918780786e696163707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000010911181e2224252d2d2d2d2d2d2c22211f1a150e0c141b212628292d2d2d2d2d2d29201f1c17110a0200000000000000000000000000000000000000000000000000000000000000000000000000050b10141f2b3844505c66717e879399928c827b726d615e565046413a322924201d19130f0a04000000000000000000000000000000000000000005111d29343e48505658606060606060605b59534b4138424a505e5f6060605f5953504a423b332a251f17202b36414a53585a60606060606060585650483e34291d1105000e1a26313d4751595e5f606060606060606060606060606060606060606060606060606060606060606060606060606060606060605b59534a41362b2014080000000000020e1b2835414e5b6874818e9ba7a194887b6e61554b423b36302d292523282c343f4a54636d73747371706e6d665d564c4135291d110400000000050e1a242c363e48505a626c717f889392877e71695f534646464642413d3730271e140900000000000000000000000000000000000000000000000000000000000000000000000d161f272d3236373b4855616e7b8896a0acab998d807366594f4338393939393939393939393844515c666d6e6d676b6a696864615a5045392d21140800000a1724303d4a5763707d80818283848586786d6053463a2d20160d0909070c1724303d4a5763707d8a96a3b0a69a8d8073675a4d4034271a0d010000000000000000000000000000040e17212a343d47505a626d727979797979797979786e695e554b42382e251b11080000000000000000000000000000000000000915202b353f474e525353535353535353535353535353535353535353535353525251504e4c4a4746413b3a37312c272119130c05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929393939393939393939393939393939393939393939399929291908f8d8a87847f7b756e69605c544c443a32291e150b00000000000013202c3946535f6c7986929393939393867a6d6053473a2d20140706060606060606060605040200000000000000000000000000000000000000000000000000000000000000000000000000040e17212a343d47505a626d727979797979797979786e695e554b42382e251b1108000000000000000000000000000000000000000000030b121820272b323839404546494c4f505252535252514f4d4946454039373129251e160e0700000000000000000000000000020f1c2835424f5b6875828e9ba199928c827b706c63707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000060d121518192020202020201f1515120f0a03030a1015191c1d2020202020201c1312100b06000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a54616c717e87939a9490867f766e69615a524c443e352f281f19100700000000000000000000000000000000000000000000000c17222d363e45494b535353535353534e4d4841343f4a545c6a6c6c6c6c6c66605b544d453f3630292019252f3841484c4e535353535353534b49453e362d22170c00000915202b353f474e525353535353535353535353534a545c6a6c6c6c6c6c66605b544d5353535353535353535353535353535353534e4c4841382f251a0f030000000000020e1b2835414e5b6874818e9ba7a194877a6e6154473e39352f3333332e34383d44505c66737f817f7e7c7b786d685d5245392c201306000000000008121b242d363f48505a626d727f8b9192867b6e6155483b39393534312c261e150c020000000000000000000000000000000000000000000000000000000000000000000000040d151c2226292d3a46535f697784919eaaaa9d9184776b6054483d31282d2d2d2d2d2d2d2d3a4653606d787b7a7978777675716c6155493d3023170a00010e1a2734414d5a6774808c8d8e8f9091887c6f6255483e31281f1a171617181d27333f495364717e8b97a4b1a6998c807366594d4033261a0d00000000000000000000000000000000050f18222b353e48515b62656c6c6c6c6c6c6c6c6b615e574d433a30261c130900000000000000000000000000000000000000040f19242d353d4245464646464646464646464646464646464646464646464646454443413f3d3a3936302e2b26201c160d080200000000000000000000000000000000000000000000000000000000000000000000020608080b0e1011121313121211100d0b08070502000000000000000000000000000000000000000013202c3946535f6c79878686868686868686868686868686868686868686868686868685858382807d7a77736e69615f57504a423a322920170c0300000000000013202c3946535f6c798786868686868686796d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050f18222b353e48515b62656c6c6c6c6c6c6c6c6b615e574d433a30261c1309000000000000000000000000000000000000000000000000070c151b21272c2e34383a3d3f424345464646454442403d3a38342e2b262019130c040000000000000000000000000000020f1c2835424f5b6875818e969ea39f9490857d746d707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000106090b0c13131313131312090806030000000005090d0f101313131313130f07060300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17232e3842505a616c717e88939a98928b827b716c615e564f45413a312b22190f040000000000000000000000000000000000000000000006111b242d34393d3e4646464646464642403d373844505c66757979797979726c665f575146423b3229251e262f363c4041464646464646463e3d39342d241b11060000040f19242d353d4245464646464646464646464644505c66757979797979726c665f5751464246464646464646464646464646464641403c362f261d1308000000000000000d1a2733404d5a6673808d99aca295897c6f62585047454140403f40404045464f57606d78858e8c8b8987867a6d6054473a2d21140700000000000009121b242d363f48505a626d727f8b8c7f72695f53463a2d2d292825211b140c0300000000000000000000000000000000000000000000000000000000000000000000000000030a11161a1e2a36424d576773808d9aa7aca096897c6f63594f433a3129242322222429333f4a5463707d878685848382817e7164574a3e3124170b00000b1825323e4b5865717e8b989b9c9d988b7f7265594f433a312a2524232323282f3744505b6574818e9aa7b5ab988b7e7265584b3f3225180c0000000000000000000000000000000000061019232c363f4951565860606060606060605e54524d453b31281e140a01000000000000000000000000000000000000000008121b242b3136383939393939393939393939393939393939393939393939393837363433302e2d2a25211f1a15100b050000000000000000000000000000000000000000000000000000000000000000000205090e121415181b1d1e1f20201f1f1e1c1a181514120e0905020000000000000000000000000000000000121f2c3845525e6a7579797979797979797979797979797979797979797979797979797878777573716e6866615e57534d443f38302820170e0500000000000000121f2c3845525e6a75797979797979797976675c5145382c1f1306000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061019232c363f4951565860606060606060605e54524d453b31281e140a0100000000000000000000000000000000000000000000000000040a0f161b1d23282c2d303335373839393938373533302d2c28231d1a150d080200000000000000000000000000000000091623303c4956636f7d848e939fa29f97928a8079707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c26303e48505a626c717f88939f9f948f857e756d686159514b433d342b21160a000000000000000000000000000000000000000000000009121b22292d3031393939393939393534312d3a4653606d7987868686867f786e69625b524d443e35302820252b3033343939393939393931302d29221b12090000000008121b242b313638393939393939393939393a4653606d7987868686867f786e69625b524d443e353039393939393939393939393433302b251d140b01000000000000000b1824313e4b5764717e8a9aa4a69a8d80736a615a54524c4d4d4c4c4d4b515359606a717e8b979997968f8376685d5245392c2013060000000000000009121b242d363f48515b626d727f80736d63574d42362a1e1c1b191510090200000000000000000000000000000000000000000000000000000000000000000000000000000000050a0e1a26313c4855626f7c88959faba89b8f82756b60554b433b352f2f2f2f2f353b44505b6673808c989291908f8b7e7164584b3e3125180b00000815222e3b4855616e7b8896a0a9aa9d9083776b61554b433c36313030302e3439404b55606c7884919eaaafa499897d7063564a3d3023170a00000000000000000000000000000000000007111a242d373f464a4c5353535353535353524846423b33291f160c020000000000000000000000000000000000000000000009121920262a2c2c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2c2b2a2928262321201d1914120f090300000000000000000000000000000000000000000000000000000000000000000002080e11151a1e21222528292b2c2c2c2c2b2b29272522211e1a14120e0902000000000000000000000000000000111d2a36424e59636a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b6a686664615e5654534d46423c342e261e160e050000000000000000111d2a36424e59636a6c6c6c6c6c6c6c6c6c5c554b4034291c10040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007111a242d373f464a4c5353535353535353524846423b33291f160c0200000000000000000000000000000000000000000000000000000000040a0f12181c1f202326282a2b2c2c2c2c2b292623201f1c18120e09030000000000000000000000000000000000000915222f3b4854606b6f7a818a92989fa29e928d837b7d8a96a3b0a3978a7d7064574a3d3124170a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004080a0a131313131310100d0a050000000000000000000000000000000000000000000000000000000000000a141e2c363e48505a626d727f8b919b9e97928a817a706b605d554e463d32271b0f0300000000000000000000000000000000000000000000000911171d2124252d2d2d2d2d2d2d28271f2b3844505c66717e879399928c827b726d615e565046413a3229241d2427272d2d2d2d2d2d2d2524211d17110900000000000009121920262a2c2c2d2d2d2d2d2d2d2d2b3844505c66717e879399928c827b726d615e565046413a3229242d2d2d2d2d2d2d2d282724201a130b0200000000000000000814212e3b4754616e7b87939fac9f92867c706c64605d565a5959595a555c60636b707c85929fa9a1968b7e7265564c4135291d1104000000000000000009121b242d363f49515b626d72736e635b51453b31261a0e0e0c090400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915212e3a47535f6a7683909da7aa9e93897c6f675d554c45413d3c3b3c3c40454d57606c7884919e9f9e9d95877a6e6154473b2e21140800000814212d3a47535f697784919daaaca0958a7d70675d554d46423e3d3c3d3e40454b515c67707d8a96a0acac9f93867a6d6054473a2d2114070000000000000000000000000000000000000008121b252d343a3e3f4646464646464646453b3a36302921170d04000000000000000000000000000000000000000000000000080f151a1d1f20202020202020202020202020202020202020202020201f1f1e1d1b19171413110d08060200000000000000000000000000000000000000000000000000000000000000000002080d14191e20262b2e2f323436383939393938373634322e2d2b26201e1a140e0902000000000000000000000000000e1a26313d4751595e5f6060606060606060606060606060606060606060606060605f5f5e5d5c5a5754524c4846423b373128231c140c040000000000000000000e1a26313d4751595e5f606060606060605f514b43392f23180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008121b252d343a3e3f4646464646464646453b3a36302921170d040000000000000000000000000000000000000000000000000000000000000000070c10131316191c1d1f1f201f1f1e1c1a161313100c070000000000000000000000000000000000000000000713202c38444f5960686d757e8590949fa39d959086818e9ba8b0a3978a7d7064574a3d3124170a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b1014161720202020201d1c1a16110a0300000000000000000000000000000000000000000000000000000000020c1a242d363f48505a626d727f8b919ba29f938e857d746d6760584e43382c1f1307000000000000000000000000000000000000000000000000060c11151718202020202020201b1b1c28343f4a54616c717e87939a9490867f766e69615a524c443e352f281f191b20202020202020181715110c060000000000000000080f151a1d1f20202020202020201c28343f4a54616c717e87939a9490867f766e69615a524c443e352f281f1920202020201b1a18140f08010000000000000000000714202d3946525e6876828f9aa4a39892857d76716d6868676666666668676d70757d859197a2a49e9184796d6053463a2f24190d0100000000000000000009121b242d373f49515b626566635c52493f33291f140900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b37434e5864707d8a95a0aca59d9183796d675e56514b4a494848494b51575f69717e8b96a1aca89d908377685e5246392d201407000006121e2b37424d5766737f8c98a2aea79e9184796d675f57534d4b4a494a4b4b51555d606d7983909da8b2a99d908376685d5245392c201307000000000000000000000000000000000000000009131b23292e31323939393939393939382e2d2a251f170f05000000000000000000000000000000000000000000000000000004090e11121313131313131313131313131313131313131313131313131211100e0c0a070705010000000000000000000000000000000000000000000000000000000000000000000000040c13191f252a2d31373a3b3e41434445464645454443403e3b3a37312d2a251f1a140d050000000000000000000000000915202b353f474e5253535353535353535353535353535353535353535353535353535252504f4d4a4746413b3a36312b261f17110a02000000000000000000000915202b353f474e5253535353535353535345403931271d12070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009131b23292e31323939393939393939382e2d2a251f170f0500000000000000000000000000000000000000000000000000000000000000000000000406070a0c0f101213131312110f0d0a0706040000000000000000000000000000000000000000000000030f1b27323d474f565d606c717b828c9299a0a098928e939eaab0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000810171c2023242d2d2d2d2d2a2926221c150d040000000000000000000000000000000000000000000000000000000008121b242d363f48515b626d727f8c919ca39e97918a81796f6a6054483b2e221509000000000000000000000000000000000000000000000000000005080a0b131313131313130f0b17232e3842505a616c717e88939a98928b827b716c615e564f45413a312b22190f1313131313130b0a0805000000000000000000000004090e1112131313131313130b17232e3842505a616c717e88939a98928b827b716c615e564f45413a312b22190f1313130e0d0b0803000000000000000000000005111e2a36414d56626f7c87939fa5a297928a837d7a777573737273737476797d82889197a1a59d928a7e71675c514538281e1308000000000000000000000009121b252d373f495156585a57524a40372d21180d03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b26313c4653606c7883909aa4aca0958f82796e68605d555756555556555d60696e7b85929fa8aca1968a7e7164564d41362a1e11050000020e1a26313c4754616d7a86929fa8aca1969082796e69615e575857565657545c60676d75818e95a0acada2978b7f7265564c4135291d11040000000000000000000000000000000000000000010911181e2224252d2d2d2d2d2d2d2d2b21201e1a140d0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080e161e25293036393c4247484b4e50515253535252514f4d4b4846423c3a36302a251f170f080000000000000000000000040f19242d353d4245464646464646464646464646464646464646464646464646464645454442403e3b3936302d2a251f1a140b06000000000000000000000000040f19242d353d424546464646464646464638342f271f150b0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010911181e2224252d2d2d2d2d2d2d2d2b21201e1a140d05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b16212b353d444c525a61696e787f8791969da29f9b9ea5afb0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008111a22282d303139393939393736322d271f160d030000000000000000000000000000000000000000000000000000000009121b242d363f49515b626d727f8c9193939393938e847c6f6256493c2f231609000000000000000000000000000000000000000000000000000000000000060606060606060006111c26303e48505a626c717f88939f9f948f857e756d686159514b433d342b21160a000606060600000000000000000000000000000000000104060606060606060006111c26303e48505a626c717f88939f9f948f857e756d686159514b433d342b21160a000601010000000000000000000000000000020e1925303b4754606a73808d939fa4a29f94908a86848280807f7f80818385898f939aa1a49f938d80746c61554b403428160c0100000000000000000000000009121b252d373f464a4c4d4b4740382e251c0f0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151f2b3744505b656f7c88939fa7a89e948f837a736d6765636262626365676d727b849197a2ada59e9184786d6053463b3025190e020000000915202d3946525e6873808c95a0aaa89f9490837b736e6967646363636465666d7179818e939da7b0a69e92857a6d6054473a2f24190d0100000000000000000000000000000000000000000000060d1216181920202020202020201f1514120e09020000000000000000000000000000000000000000000000000000000000000000000104060606060606060601000000000000000000040607090c0e0f11121213131211100e0b0808060200000000000000000000000000000000000000000000000000020a121a202830353b4146474e5355585b5c5e5f5f5f5f5e5e5c5a5855534d4846423b363029211a120a020000000000000000000008121b242b31363839393939393939393939393939393939393939393939393939393938373533312e2d2a25211e1a140e0903000000000000000000000000000008121b242b3136383939393939393939392c29231d150d0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060d1216181920202020202020201f1514120e090200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003070909131313131313130b0a08040000000000000000000000000000000000040f19232b323a414550575e666c727c848d929ea1a9aaafb7b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005101a232c33393c3d464646464643423e3831281f150a000000000000000000000000000000000000000000000000000000000009121b242d373f49515b636d737f86868686868686868174675a4e4134271b0e0100000000000000000000000000000000000000000000000000000000000000000000000000000a141e2c363e48505a626d727f8b919b9e97928a817a706b605d554e463d32271b0f0300000000000000000000000000000000000000000000000000000000000000000a141e2c363e48505a626d727f8b919b9e97928a817a706b605d554e463d32271b0f0300000000000000000000000000000000000008141f2b37434e58606d78818d939a9fa69f9c9992908f8d8c8c8c8d8e9092989c9fa49f99938c81786d605a5043392e231804000000000000000000000000000009131b252d343a3e3f403f3b352e261c130a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27333f4953606b74808d959fa8a69e959086807a7672706f6e6f6f7274797f869196a1a9a79d938a7e71665c504438291f14080000000005111d2935414c56606d79849198a2aaa69f959086807b767371706f70717275797e848e939da5afa89f948b7f72675d5145392c1e13080000000000000000000000000000000000000000000000000106090b0c1313131313131313120807050200000000000000000000000000000000000000000000000000000000000000000004090e1112131313131313130e0d0b0703000104070c10131316191b1c1e1f1f20201f1e1d1b181514120f0a0400000000000000000000000000000000000000000000020b141c242c323a41464d5254575f626567696b6c6c6c6c6b6a696765615f5754524d46423b332c241c140a020000000000000000000009121920262a2c2c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2c2b2a29272421201e1914120e0903000000000000000000000000000000000009121920262a2c2c2d2d2d2d2d2d2d2d1f1c18120b030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000106090b0c13131313131313131208070502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f13151620202020202020171714110c0500000000000000000000000000000000071119202830353e454d545b606a6f79808a92979ea6aeb4aca3978a7d7064574a3d3124170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222c363e44494a5353535353504e4a433a31271c1105000000000000000000000000000000000000000000000000000000000009121b252d373f49515b636d737979797979797979746e64584c4033271a0d010000000000000000000000000000000000000000000000000000000000000000000000000000020c1a242d363f48505a626d727f8b919ba29f938e857d746d6760584e43382c1f13070000000000000000000000000000000000000000000000000000000000000000020c1a242d363f48505a626d727f8b919ba29f938e857d746d6760584e43382c1f1307000000000000000000000000000000000000020f1b27323d44505c666d78808890959b9fa2a39f9d9b9a999999999b9d9fa2a29e9b948f877f776d665c50483e30271d120700000000000000000000000000000109131b23292e313233322f2a241c140a01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d38414f59606d788390959fa7a79f98928c86827f7d7c7b7b7c7e81858b9298a1a8a69f958e81746c61544a3f3428170d0200000000010d1925303a45515c676f7c869298a1a9a79f98928d8783807e7d7c7d7e7f82858b91969ea5afa7a0969082786c60554b4135291d0c010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080f151a1d1f202020202020201a1a17130e070d1113181c1f20232527292a2b2c2c2c2c2b2a282522211f1a15100c0701000000000000000000000000000000000000010b141d262e363e444c52565e61666a6e717476777879797878777673716e6966615e57524d453e362e261c140a0000000000000000000000080f151a1d1f20202020202020202020202020202020202020202020202020201f1f1d1c1a171414110e0805020000000000000000000000000000000000000000080f151a1d1f20202020202020202013100c0701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070f161b1f22232d2d2d2d2d2d2d2423211c17100800000000000000000000000000000000070e161e2429333b424a505860676d747d858f949fa29f9f9f978a7d7064574a3d3124170a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c28333e4850555760606060605d5b554d43382d22160a00000000000000000000000000000000000000000000000000000000000009131b252d373f49515b63666c6c6c6c6c6c6c6c67645c53483c3024180b0000000000000000000000000000000000000000000000000000000000000000000000000000000008121b242d363f48515b626d727f8c919ca39e97918a81796f6a6054483b2e22150900000000000000000000000000000000000000000000000000000000000000000008121b242d363f48515b626d727f8c919ca39e97918a81796f6a6054483b2e221509000000000000000000000000000000000000000a152028343f4a545c666c737c83898e9298989b9c9e9e9f9f9f9e9e9d9a9897928e89827c736c655c544a3f362c1e150b00000000000000000000000000000000010911181e2225252726231f19120a02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b262f3d45515c666d7a8390959fa4aaa29f98928f8c8a898888898b8e92979fa2aaa59e949083796d605a5042382e23170500000000000008131e2934404b555f6a707d8692979fa6aaa39f9993908d8b8a89898a8c8f92979da0a8aca59e9590847a6d665b50433a2f24180d00000000000000000000000000000000000000000000000000000000000000020608080b0e1011121313121211100d0b080705020000000000000000000000000000000000000000000009121920262a2c2c2d2d2d2d2d2d2726231f1913181d2023282c2d2f323436373839393938383734322f2e2b261f1c18120b03000000000000000000000000000000000009131d262f38404850565e61686e73777b7e81838485868685858482807e7b77736e69615e57504840382e261c1309000000000000000000000004090e111213131313131313131313131313131313131313131313131313131212110f0d0b0807050200000000000000000000000000000000000000000000000004090e1112131313131313131313060400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000407090a131313131313130a09070400000000000000000007101921272c2f303939393939393931302d28221a120800000000000000000000000000000000040c131921292f383f444e555d606b707a828b9298939393938a7d7064574a3d3124170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814202d3944505a61646c6c6c6c6c6a665f554a3e32261a0d0000000000000000000000000000000000000000000000000000000000000109131b252e37404951575960606060606060605a58534a41362b201408000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b242d363f49515b626d727f8c9193939393938e847c6f6256493c2f2316090000000000000000000000000000000000000000000000000000000000000000000009121b242d363f49515b626d727f8c9193939393938e847c6f6256493c2f23160900000000000000000000000000000000000000040b17232e38424a545b606b6f767d8185898c8e9091929293929291908e8c8985817c766f6a605b534a42382e241a0c03000000000000000000000000000000000000070d121618191a1917130e0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d2834404b545e686d7a838d939a9fa7aaa29f9c989695959596989b9fa2a9a8a09e938e827a6d675d51483e30261c1106000000000000020c18232f39434e58606b707d858f949ea0a8aba49f9c9a9796969697989b9ea1a9aca7a09d938e837b6e685e544a3f31281d1307000000000000000000000000000000000000000000000000000000000205090e121415181b1d1e1f20201f1f1e1c1a181514120e09050200000000000000000000000000000000000008121b242b313638393939393939393433302b241d24292c2e34383a3c3f41424445454646454443413e3b3a37312c29231d150d0700000000000000000000000000000007101b252f38404a525a61686d747b8084888b8e8f919292929291918f8d8b8884807b746e69615a524a40382e251b0f0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b1014161720202020202020171614100b05000000000000040f19232b32383b3c464646464646463e3c39332c241a10050000000000000000000000000000000002080f171d262d333c434b515961686d757e858686868686867d7064574a3d3124170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1623303c4955616c7079797979797671665b4e4236291c1000000000000000000000000000000000000000000000000000000000000000010a131c252e3740464b4c53535353535353534e4c4841382f251a0f0300000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b242d373f49515b636d737f86868686868686868174675a4e4134271b0e010000000000000000000000000000000000000000000000000000000000000000000009121b242d373f49515b636d737f86868686868686868174675a4e4134271b0e010000000000000000000000000000000000000006111c263038424a505960636b7075797c7f81838485858685858483817f7c79746f6b6260585049413830261c120900000000000000000000000000000000000000000106090b0c0d0c0a0702000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b18232e39424c565e686d79808790959b9fa2aaa8a5a3a2a1a2a2a5a7aba49f9c96918981796d685d554b40362c1e150a000000000000000007121d27313c464f59606a6f7b828a91969c9fa3aba8a6a4a3a2a3a4a5a8a8aaa29f9b95908981796e695e564c42382d1f160c01000000000000000000000000000000000000000000000000000002080e11151a1e21222528292b2c2c2c2c2b2b29272522211e1a14120e0902000000000000000000000000000000040f19242d353d424546464646464646413f3c362f282f35393a404546494c4e4f51525253535251504e4b4847433c38342f271f19100a01000000000000000000000000030c19222d37404a525c636c717a81868c9196989a9c9e9f9f9f9f9e9d9c9a9895918d86817b716c645c524a40372d21180e030000000000000000000000020507081313131313131313131313131313131313131313131313131313131313131211100c09060503000000000000000000000000000000000000000000000000000000000000020507080b0e111112131312110f0c0908060300000000000000000406070b0f1213131211100e0c0b0906010000000000000000000000000000000000000000000000010406070a0d10111213131312100e0b070705010000000000000000000000000000000000000000000810161c2023232d2d2d2d2d2d2d2323201c16100800000000000a16212b353d434849535353535353534a49453e362c22170c000000000000000000000000000000000000050b141c2228313940454f565e616d7279797979797979706c6155493c3023160a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d868686868683766a5d5043372a1d100000000000000000000000000000000000000000000000000000000000000000010a131c252e353b3e40464646464646464641403c362f261d1308000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b252d373f49515b636d737979797979797979746e64584c4033271a0d01000000000000000000000000000000000000000000000000000000000000000000000009121b252d373f49515b636d737979797979797979746e64584c4033271a0d0100000000000000000000000000000000000000000a141e262f383f444f54596063666d6f72747677787979797877767472706d66636059544e443f382f261e140a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d27303a444c565e676d747c83898e9298999b9d9e9f9f9f9e9d9c9999938f8a847d756d675d564c433a2f241a0c030000000000000000010b151f2a343d474f5860696e767e848a8f9299999b9d9e9f9f9f9f9e9d9b9998928e89837d756d675e564d443a2f261c0d040000000000000000000000000000000000000000000000000002080d14191e20262b2e2f323436383939393938373634322e2d2b26201e1a140e0902000000000000000000000000000915202b353f474e52535353535353534d4c474038313a4045474b515356585a5c5d5e5f5f5f5f5e5d5b5855534e47454039312b221b130a0000000000000000000000000a151e2b343f49525c646e737e858d92999da0a8a9a29f9d9c9b9c9d9fa2aaa7a09d99928e857e736e645c52493f332a1f140900000000000000000002080e1114142020202020202020202020202020202020202020202020202020202020201f1e1c191613120f0b06000000000000000000000000000000000000000000000000000003090e121415181b1d1e1f201f1f1d1b191515120f0a0401000000070c101313181c1e1f201f1e1d1b181815120d06000000000000000000000000000000000000000001070d111314171a1c1e1e1f201f1e1d1b181413110d080200000000000000000000000000000000000008111a21272c2f3039393939393939302f2c27211a1108000000030f1b27323d474f545660606060606060575550483e33281c1104000000000000000000000000000000000000020a11171f272f353e444c525b62656c6c6c6c6c6c6c64615a5044392d20140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a9393939083766a5d5043372a1d10000000000000000000000000000000000000000000000000000000000000000000010a131c232a2f323339393939393939393433302b251d140b0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009131b252d373f49515b63666c6c6c6c6c6c6c6c67645c53483c3024180b0000000000000000000000000000000000000000000000000000000000000000000000000009131b252d373f49515b63666c6c6c6c6c6c6c6c67645c53483c3024180b000000000000000000000000000000000000000000020c141d262d333d43484f54545c60636568696b6b6c6c6c6b6b6a676563605c54544f47433d332d261d140c020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b151e28323a444c555c606b6f767c8185898c8e909192929291908f8d8a86827d79706b605d554c443a31281d120800000000000000000000030d18222b353d464e575e616c71787d82868a8c8f90919293929291908e8c8985817d77706b605d554d443b32281d140a00000000000000000000000000000000000000000000000000040c13191f252a2d31373a3b3e41434445464645454443403e3b3a37312d2a251f1a140d050000000000000000000000000e1a26313d4751595e5f6060606060605a58524a403a434b5153545c60626567696a6b6c6c6c6b6b6a6765625f5853514b433d342d251b12090000000000000000000006111c26303d46515b646e74808a92979fa3a9a19e999792908f8f8f909298989d9fa7a39f97928a80736e635b51453b31261a0e0400000000000000050d14191e20212d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2c2b292623201f1b17110c0600000000000000000000000000000000000000000000040a0f141a1e212125282a2b2c2c2c2b2a282622211f1b15110d08030b12181c1f2025292b2c2c2c2b2a272524221d1811090100000000000000000000000000000000040a0f13181d20202326292a2b2c2c2c2b2a272521201e1913100b0500000000000000000000000000000005101a232c33383c3d464646464646463d3c38332c231a1005000007131f2c38434f5960636c6c6c6c6c6c6c64615a5045392d2114080000000000000000000000000000000000000000060d151d2429323a41465156585f606060606060575550483e33281c100400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a979f9d9083766a5d5043372a1d1000000000000000000000000000000000000000000000000000000000000000000000010a12191e2325262d2d2d2d2d2d2d2d272724201a130b02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000109131b252e37404951575960606060606060605a58534a41362b201408000000000000000000000000000000000000000000000000000000000000000000000000000109131b252e37404951575960606060606060605a58534a41362b20140800000000000000000000000000000000000000000000020b141c222832383d44484a515356595b5d5e5f5f605f5f5e5d5b595653504a48443d383227221b140b0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c162028323a434b515960636b6f75797d7f828385858685858482807d7a76716d666059514b433a32281f160c000000000000000000000000061019232b343d454d525a61666c70757a7d80828385858686858483817f7c7975706b636059514b433b322920160b02000000000000000000000000000000000000000000000000080e161e25293036393c4247484b4e50515253535252514f4d4b4846423c3a36302a251f170f080000000000000000000000111d2a36424e59636a6c6c6c6c6c6c6c67645c5247404b555d6064666d6f727475777878797978777674716e6a64605c554e463f372d251b11070000000000000000000c17232e38424f59626d74808d929ea1a9a39f97918c8885838282838385888b90959ea1a8a29f928d80736d62574d42362a20160a000000000000050e171e252a2d2e39393939393939393939393939393939393939393939393939393939393938373633302d2b27221b17110a0300000000000000000000000000000000000000060c161b1f252a2d2e31343738393939383735322f2e2b26201d19130c151d23282c2d32353839393838363432312e29231b1309000000000000000000000000000002080d151b1d24292c2d3033363738393939383634312e2d2a251e1c160f0a04000000000000000000000000000b16212c353d44484a535353535353534a48443d352c21160b00000915222f3b4854606b6f79797979797979716c6155493c3023170a000000000000000000000000000000000000000000030b1218202930363f454a4b525353535353534a49443e362c22170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a39d9083766a5d5043372a1d10000000000000000000000000000000000000000000000000000000000000000000000000070d1216191920202020202020201b1a18140f0801000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a131c252e3740464b4c53535353535353534e4c4841382f251a0f030000000000000000000000000000000000000000000000000000000000000000000000000000010a131c252e3740464b4c53535353535353534e4c4841382f251a0f030000000000000000000000000000000000000000000000020a111721272c333839404446494c4e5051525253525251504e4c4946443f3838322b272017110a02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040e162028313940454f54596063676d707375777879797978777673716e6864605c544f454039312820160d0400000000000000000000000000071119222b333b424650545b6064676d707375777879797978787675726f6d67636059544f45403a312920170e050000000000000000000000000000000000000000000000020a121a202830353b4146474e5355585b5c5e5f5f5f5f5e5e5c5a5855534d4846423b363029211a120a02000000000000000000121f2c3845525e6a7579797979797979746e64584c45515d676d7176797c7f81828485858686858483817e7b77716d67605851493f372d23190b020000000000000003101c28343f4a54606b727f8c929ca4aaa299928c84807b787675757677797b7f838a91969fa6a49c928b7f72695f53463d32271b0f0300000000020d1720293036393b4646464646464646464646464646464646464646464646464646464646464544433f3c3937332d28231c150c0500000000000000000000000000000000030a111720272b31363a3b3e4144444546464544423f3c3b37322c29241e191e272e34383a3e42454646454443413f3d3a342d251b1106000000000000000000000000050d131920262b2f35393a3d404344454646464543413e3a3936302c28211b150e06000000000000000000000004101c27333d474f55566060606060606056554f473d33271c100400091623303c4956636f7d868686868686867e7164574a3e3124170b0000000000000000000000000000000000000000000001070e171e252a343a3d3f464646464646463d3c39332c231a10050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a39d9083766a5d5043372a1d100000000000000000000000000000000000000000000000000000000000000000000000000002060a0c0d13131313131313130e0d0b0803000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a131c252e353b3e40464646464646464641403c362f261d130800000000000000000000000000000000000000000000000000000000000000000000000000000000010a131c252e353b3e40464646464646464641403c362f261d13080000000000000000000000000000000000000000000000000000060b161b21272c2e34383a3c3f41434445464646454443413f3d3a38342e2c27211b160b06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e161f272f343d43484f54555c606366686a6b6c6c6c6b6a696664615e5653514a423d352f271f160d04000000000000000000000000000000071019202930363e424a5053555d606366686a6b6c6c6c6c6b6a686663605c55554f48443d352f281f170e050000000000000000000000000000000000000000000000020b141c242c323a41464d5254575f626567696b6c6c6c6c6b6a696765615f5754524d46423b332c241c140a02000000000000000013202c3946535f6c79878686868686868074675a4d4753606d797e8286898b8d8f90919292929291908e8b88837e796f6a625b51493f352b1d140a0000000000000006121f2c3844505c666f7c87929fa4aba29892878079736f6a6a696869656c6e72777d848f949fa6a49f92867b6e61584e43382b1f13060000000008141e29323b41465353535353535353535353535353535353535353535353535353535353535352514f4c4946443f38342e261e170f070000000000000000000000000000030c151c232832373b4246484b4e505152535252504e4c4847433c39352f28222b30394045464b4f5152535251504e4b4a463f372d23180d0100000000000000000000080e171e252a31373a4045474a4d4f515152535251504e4b4746413a38332b2620181009000000000000000000000714202c38444f5961636c6c6c6c6c6c6c6361594f44382c20140700091623303c4956636f7c8993939393938a7d7164574a3e3124170b000000000000000000000000000000000000000000000000050d131923292e31323939393939393931302d28221a1108000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a39d9083766a5d5043372a1d100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a131c232a2f323339393939393939393433302b251d140b010000000000000000000000000000000000000000000000000000000000000000000000000000000000010a131c232a2f323339393939393939393433302b251d140b01000000000000000000000000000000000000000000000000000000040a0f161c1c23282c2d3032353638383939393838373432302d2c28231c1b160f0a040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d151d232932383d44484b515356595b5d5e5f5f5f5e5d5c5a5754524d464440393029241d150d040000000000000000000000000000000000070e171f252a2f383f44464b515457595c5d5e5f605f5f5e5d5b595653514b48443d383329241d160d050000000000000000000000000000000000000000000000010b141d262e363e444c52565e61666a6e717476777879797878777673716e6966615e57524d453e362e261c140a000000000000000013202c3946535f6c798692939393938d8074675a4d4f5c6875828b8f9298989a9c9d9e9f9f9f9e9e9d9a9895908b847c726d625b51473d2f261c1106000000000003101c28343f4a54606d78839099a3afa39992867d736d67625f585c5c535b6061656c707a828f949fa9a2988f82766a6054473b2e221508000000020e1925303b444c525f60606060606060606060606060606060606060606060606060606060605f5f5e5c5956535049443f38302921191007000000000000000000000000030d151e262e343d43474d5354585b5d5e5f5f5f5e5d5b5955534e4745413a3129343c424b5153585c5e5f5f5f5e5d5a585651493f34291d120600000000000000000008111a202930363c43474b515356595c5d5e5f5f5f5e5d5a5854524c48443e37312a221b120a0100000000000000000916232f3c4855616b7079797979797979706b6155483c2f23160900091623303c4956636f7c89969f9f9f978a7d7164574a3e3124170b0000000000000000000000000000000000000000000000000002080d181d2224252c2d2d2d2d2d2d2423201c17100800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a39d9083766a5d5043372a1d100000000000000000000000000000000000000000000000000000000000060a0e1011121313131212100e0b0707050100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a12191e2325262d2d2d2d2d2d2d2d272724201a130b0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a12191e2325262d2d2d2d2d2d2d2d272724201a130b02000000000000000000000000000000000000000000000000000000000000050b1012181c1f202326282a2b2c2c2d2c2c2b2a282623201f1c17110f0b040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b121821272c3238394045464a4c4f505252535252514f4d4a4746413b38342e271e18120b0300000000000000000000000000000000000000050d141a1d262d33383a4145474a4d4f50525253535251504e4c494645403938332c272118130c0400000000000000000000000000000000000000000000000009131d262f38404850565e61686e73777b7e81838485868685858482807e7b77736e69615e57504840382e261c13090000000000000013202c3946535f6c7986929f9f9f9a8d8074675a4d4f5c6975828f9c9fa3aaa7a7a4a2a1a1a0a1a3a6a7a79f9d9691877f726d62594f42382d22170b000000000006121f2c3844505c66727f8b95a0aba89f92877d706b605d55534e4f4f495053555a61686d79829097a1a49f94897c6f6256493c2f23160900000005111e2a36414c565e6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b6a696663605b53504a423b332b23190f0600000000000000000000010b151f2730383f444e54575e6164676a6b6c6c6c6b6a6865625f5854524c433f353c464e545c6065686b6c6c6b6b696765625b51463a2e221509000000000000000008121a232c323a41464e53555d606366696a6b6c6c6c6b696764615e56554f47433c342d241c130a01000000000000000a1723303d4a5663707d868686868686867d7063564a3d3023170a00091623303c4956636f7c8996a2aca4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000060c111517181f202020202020171614100b050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a39d9083766a5d5043372a1d10000000000000000000000000000000000000000000000000000000040b11161a1d1e1f2020201f1e1d1b181413110d080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070d1216191920202020202020201b1a18140f080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070d1216191920202020202020201b1a18140f080100000000000000000000000000000000000000000000000000000000000000000000070c10121316191b1d1e1f1f201f1f1e1d1b19161312100c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c161b21272c2e34383a3d40424445464646454443403e3b3936302c28231c150c070100000000000000000000000000000000000000000002090b141c22282b2f35393a3d40424445464646454543423f3c3a38342e2c27211c160d070100000000000000000000000000000000000000000000000007101b252f38404a525a61686d747b8084888b8e8f919292929291918f8d8b8884807b746e69615a524a40382e251b0f0600000000000013202c3946535f6c7986929faca79a8d8074675a4d4f5c6976828f9caaa29f9c9a97969594939496999ea0a8a8a099928b7f726b60544a3f33281c0f03000000000713202d3a4653606d7984919ea7ada1968d80736b6059514b474342423f44464850565d676d7a85929b9993908c8275685c4f4235291c0f0200000714202d3946525e6876797979797979797979797979797979797979797979797979797979797979787776726f6c65605c544d453d352b22180d0300000000000000000007121d273139424a50586062696e71747777787979787775726f6a66605d56504540454e5860666d717578797978777674726d62564a3d3124180b0000000000000008111a242c353e444c52585f62676d7073767778797979787674716d68636159534e463f362e251c1309000000000000000a1723303d4a5663707d899393939393897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000105090b0c131313131313130a0a080400000000000000000000000000000000000000000000000000000002050708080808080808080808080808080808080808080808080808080a1724313d4a5764707d8a97a39d9083766a5d5043372a1d100000000000000000000000000000000000000000000000000000050e161c2227292a2c2c2d2c2c2b29282521201d19130f0a0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002060a0c0d13131313131313130e0d0b08030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002060a0c0d13131313131313130e0d0b08030000000000000000000000000000000000000000000000000000000000000000000000000000040607090c0e1011121313131211100e0c0a07060300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f161b1d23282c2d303335373839393938373633312e2d2a251f1c18120b0300000000000000000000000000000000000000000000000000020a11171c1f24292c2d30333537383939393938373533302d2c28231d1c16100b0500000000000000000000000000000000000000000000000000030c19222d37404a525c636c717a81868c9196989a9c9e9f9f9f9f9e9d9c9a9895918d86817b716c645c524a40372d21180e03000000000013202c3946535f6c7986929faca79a8d8074675a4d4f5c6976828f9c9a9892908d8b8988878787898c91969fa2aaa39f93877d70665b5044382b1f120700000004101d2935404b5564717d8a96a1acaa9e9184796d60594f45403937312d3337393e444c555e68717e8b8e8a86837f7c6f6255483c2f2215090000000814212e3b4754616e7a8686868686868686868686868686868686868686868686868686868686868584827f7c78716d665e574f473d342a1f150b0100000000000000020c18242f39434b545c606a6f757b7e8183848586858583817f7c78726d68625a514b4d57606a6f797e82848586858483817f7265584b3f3225180c000000000000050f1a232c363e474f565e616a6f747a7d808284848586858483817e7a76706b625f58514840372e251b11070000000000000a1723303d4a5663707d89969f9f9f96897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002090e11141415151515151515151515151515151515151515151515151515151724313d4a5764707d8a97a39d9083766a5d5043372a1d1000000000000000000000000000000000000000000000000000040e1720272e3336373939393939383634312e2d2a251e1a150e060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040b0f12181c1f202326282a2b2c2c2c2b2a29272421201e1914100c070000000000000000000000000000000000000000000000000000000000060b0f13181d20212426292a2b2c2d2c2c2b2a282623201f1c1812100b050000000000000000000000000000000000000000000000000000000a151e2b343f49525c646e737e858d92999da0a8a9a29f9d9c9b9c9d9fa2aaa7a09d99928e857e736e645c52493f332a1f1409000000000013202c3946535f6c7986929faca79a8d8074675a4d505c6976838f918d898583807e7c7b7a7a7b7d7f848b9298a2aba4999083786c605346392e23180c0000000613202c3945515d6775828f9ba8aea3988b7e71675d51473d352f2b2622272b2d323a434c56606d7883817e7a76736f6a5f53473b2e2115080000000814212e3b4754616e7a87939393939393939393939393939393939393939393939393939393999292918f8c89837e786e6960594f463c31271d1207000000000000000a141e2935404b555d666d747c82878b8e909192929291908e8c88847f7a716d605d55535f696f7c848b8f9192929291908d86796c605346392d20130000000000020d17212c353e48505961686d757c8186898c8f909192929291908d8b86827d766f6a625b524940372d23190d0300000000000a1723303d4a5663707d8996a3aca396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b0000000000000000000000000000000000000000010507080b0e10111213131211100e0b0807050100000000000000000000000000000000000000000000000000000000050d14191e202121212121212121212121212121212121212121212121212121212124313d4a5764707d8a97a39d9083766a5d5043372a1d10000000000000000000000000000000000000000000000000000b16202932393f434445464646454543413e3a3936302b2620180f0900000000000000000000000000000000000000000000000000000004090e1112131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313130b0a0804000000000000000000000004090e1112131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313130b0a0804000000000000000000000000000000000000000000040613131313131313131312110e090400000000000000000000000000000000000000000000000000000000020507080b0e111112131312110f0c0908060300000000000000000406070b0f1213131211100e0c0b0906010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c10131317191c1d1f1f201f1f1e1c1a171414110e080400000000000000000000000000000000000000000000000000000000000000000003070d111314171a1c1d1f1f20201f1e1d1b19161313100c07000000000000000000000000000000000000000000000000000000000006111c26303d46515b646e74808a92979fa3a9a19e999792908f8f8f909298989d9fa7a39f97928a80736e635b51453b31261a0e040000000013202c3946535f6c7986929faca79a8d8074675a4d505c6976838a85807c797674716f6e6e6d6e7073787e869299a3aba0958a7e7164544b4034281c100400000714202d3a4753606d7a86929facac9f92867a6d60554b403529241d1a171b1f2028313a44515c666d7775716d6866625f584e43372b1f12060000000814212e3b4754616e7a87949f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa39f9e9d9c9995908b837b6f6b60584e43392f23180c02000000000006111c26303845515d676d7880898f93999a9d9e9f9f9f9e9d9b9896918c857e756d675d58626e7b8691969b9e9f9f9e9e9c9386796c605346392d2013000000000009141f29333d47505a616b707a82888e9298999c9d9e9f9f9f9e9c9a99938f8a837c726d635c52493f352b1f150b01000000000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b00000000000000000000000000000000000003080d111414171a1c1e1f20201f1e1d1a171414110d080300000000000000000000000000000000000000000000000000050e171f252a2d2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e313d4a5764707d8a97a39d9083766a5d5043372a1d1000000000000000000000000000000000000000000000000006111c27323b434a4f51525353535251504e4b4746413a37312a221b120900000000000000000000000000000000000000000000000000080f151a1d1f20202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020171714110c050000000000000000080f151a1d1f20202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020171714110c050000000000000000000000000000000001070c10132020202020202020201f1d1a150f080000000000000000000000000000000000000000000000000003090e121415181b1d1e1f201f1f1d1b191515120f0a0401000000070c101313181c1e1f201f1e1d1b181815120d060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070a0d0f11121313131211100d0b0807050200000000000000000000000000000000000000000000000000000000000000000000000000010406070a0d0f11121313131212100f0c09070604000000000000000000000000000000000000000000000000000000000000000c17232e38424f59626d74808d929ea1a9a39f97918c8885838282838385888b90959ea1a8a29f928d80736d62574d42362a20160a0000000013202c3946535f6c7986929faca79a8d8074675a4d4e5a6774807d7974706d666764636261606163656c727d87929faca79b8f8275665c5145382c1f130600000a1723303d4a5663707d8998a3aea89b8e8275675d51433a2f23181d1d1d1d1d161f2834404a545c606a6864615e5655534e463c32261b0f030000000814212e3b4754616e7a8794a1acacb4aeaca6a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a6a8aaa9a7a09d9590857d6f6a5f554b4034291e130800000000000b17232e3842505a606d79828d929b9fa4ababa39f9d9c9b9c9d9fa19e97928b82796d685f6a76828f98a1a8aaa39f9995949386796c605346392d201300000000020e1a25303b454f59616c717d858f939a9fa3aaa9aaa8a7a6a7a9a9aba49f9c9490867f736e635b51473d31271d1207000000000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b00000000000000000000000000000000060b1014191e20212427292b2c2c2c2c2b2a272421201e19140f0b0600000000000000000000000000000000000000000000020d17202930363a3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3d4a5764707d8a97a39d9083766a5d5043372a1d100000000000000000000000000000000000000000000000000a16222e39434d555b5d5f5f605f5f5e5c5b5854524c47433c342d241b1108000000000000000000000000000000000000000000000009121920262a2c2c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2423211c17100800000000000009121920262a2c2c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2423211c1710080000000000000000000000000000030b12181c1f2d2d2d2d2d2d2d2d2c2c2a262019120900000000000000000000000000000000000000000000040a0f141a1e212125282a2b2c2c2c2b2a282622211f1b15110d08030b12181c1f2025292b2c2c2c2b2a272524221d181109010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a54606b727f8c929ca4aaa299928c84807b787675757677797b7f838a91969fa6a49c928b7f72695f53463d32271b0f0300000013202c3946535f6c7986929faca79a8d8074675a4d4c58646e74716d6663605c54585655545454535b606b74818d9aa9ac9f9285796d6053463a2d20130700000d1a2733404d5a6673808d99aab4aa978b7e7164554c4131282a2a2a2a2a2a2a2a2a232e39424a51535d5b5754524c4847433c342a20150a000000000814212e3b4754616e7a8794a7afb4aba39f9a9898989898989898989898989898989898989898999b9ea1a9aca79f9792857c6e675c51453a3025190d0100000003101c28343f4a54616c74818e949da4aca7a09d9992908f8f8f9192999a9e9f948f837a6d666f7c88949faaaea398928c88878886796c605346392d20130000000005121e2a36424d57606b717e8791979ea5acaba9a19e9b9a9a9b9d9fa4abaca69f98928b80736d62594f43392f23180c000000000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b0000000000000000000000000000020a11171c1f252a2d2e3134363839393938373634312e2d2a251f1b17110a02000000000000000000000000000000000000000009141f29323b4246474848484848484848484848484848484848484848484848484848484848484a5764707d8a97a39d9083766a5d5043372a1d100000000000000000000000000000000000000000000000020e1a27333f4a555f676a6c6c6c6c6c6b696764615e56534e463e362d23190b0200000000000000000000000000000000000000000008121b242b3136383939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393931302d28221a12080000000008121b242b3136383939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393931302d28221a1208000000000000000000000000030d151d23292c3939393939393939393836312b241b12080000000000000000000000000000000000000000060c161b1f252a2d2e31343738393939383735322f2e2b26201d19130c151d23282c2d32353839393838363432312e29231b13090000000000000000000000000000000000020507080b0e111112131312110f0c0908060300000000000000000406070b0f1213131211100e0c0b09060100000000000000000000000000000000000000050a0d0f101313100f0d0a050000000000000000000000000000000000000000000000000000000000000000060a0e1011121313131212100e0b0707050100000000000000000000000000000000000000000000000006121f2c3844505c666f7c87929fa4aba29892878079736f6a6a696869656c6e72777d848f949fa6a49f92867b6e61584e43382b1f130600000013202c3946535f6c7986929faca79a8d8074675a4d47525c646764605c5453514b4b4948474748495059626e7b8897a1ada298887c6f6255493c2f2216090004101c2834404b546976828f9ca9aea398887b6f6255483c2f3737373737373737373737373039404446514e4b4746413c3b37322a261f180f060000000814212e3b4754616e7a87959fa3aba399928d8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8c8c8f92979ea1a9a9a2979184796d60564c41362a1d110500000006121f2b3844505c66717e8b939ea6aea59d95908a86838282838486898d92979f959083786d73808d99a6b0a89f9286807c7a7b7d7063574a3d3024170a000000030e18212d3a46525e69707d879299a1a9ada79f9d97928f8d8d8e9093999fa2aaaaa39f928b7f726b60554b4034291c12070000000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b00000000000000000000000001070c141c23282b3036393b3e414344454646454443413e3b3936302b27221b140b07000000000000000000000000000000000000020e1925303b444d5254545454545454545454545454545454545454545454545454545454545454545764707d8a97a39d9083766a5d5043372a1d10000000000000000000000000000000000000000000000003101d2936434f5b6771777879797978787674716d68625f5850483e352b1d140a0000000000000000000000000000000000000000040f19242d353d4245464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646463e3c39332c241a10050000040f19242d353d4245464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646463e3c39332c241a100500000000000000000000010b151f272f343846464646464646464645423d352d24190f040000000000000000000000000000000000030a111720272b31363a3b3e4144444546464544423f3c3b37322c29241e191e272e34383a3e42454646454443413f3d3a342d251b1106000000000000000000000000000003090e121415181b1d1e1f201f1f1d1b191515120f0a0401000000070c101313181c1e1f201f1e1d1b181815120d0600000000000000000000000000000000030a11161a1c1d20201d1c1a16110a0300000000000000000000000000000000000000000000000000000000040b11161a1d1e1f2020201f1e1d1b181413110d080200000000000000000000000000000000000000000003101c28343f4a54606d78839099a3afa39992867d736d67625f585c5c535b6061656c707a828f949fa9a2988f82766a6054473b2e22150800000013202c3946535f6c7986929faca79a8d8074675a4d414a52585a5753504a4645403e3c3b3b3a3b3f47535f6a7885929eabaa968a7d7063574a3d3024170a0006131f2c3845515c667884919eabac9f9286796d6053464444444444444444444444444444444444444444444444444444443b3a36312a21180e0300000714202d3a4753606d79838c9299a29f9286807f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f8082858a91969fa7a9a0968c7f73685e5246392d2013080000000713202d3a4653606d7884919ea5afa69d938e837d797776757677797c80858c9298958e81747683909ca9aca0958a7e736f6e6e706b6155483c2f2316090000000915202c38444f59616e7b869299a3abada49c959089858281808183878c9298a0a8aea49f93877d6f675c5145392e23180c0000000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b0000000000000000000000030b12181e262e34383b4146474a4d4f515253535251504d4a4746413b37332d261d18120b030000000000000000000000000000000005111e2a36424d565e61616161616161616161616161616161616161616161616161616161616161616164707d8a97a39d9083766a5d5043372a1d10000000000000000000000000000000000000000000000004111e2a3744515d6a778385868686858483817e7a756e6a615a50473d2f261b1106000000000000000000000000000000000000000915202b353f474e52535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353534a49453e362c22170c00000915202b353f474e52535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353534a49453e362c22170c0000000000000000000007121d2731394045535353535353535353524e473f352b20150900000000000000000000000000000000030c151c232832373b4246484b4e505152535252504e4c4847433c39352f28222b30394045464b4f5152535251504e4b4a463f372d23180d010000000000000000000000040a0f141a1e212125282a2b2c2c2c2b2a282622211f1b15110d08030b12181c1f2025292b2c2c2c2b2a272524221d1811090100000000000000000000000000040d151c2226292a2d2d2a2926221c150d040000000000000000000000000000000000000000000000000000050e161c2227292a2c2c2d2c2c2b29282521201d19130f0a030000000000000000000000000000000000000006121f2c3844505c66727f8b95a0aba89f92877d706b605d55534e4f4f495053555a61686d79829097a1a49f94897c6f6256493c2f23160900000013202c3946535f6c7986929faca79a8d8074675a4d4141474c4e4a46443f3a38342e302f2e2d2d37434e586a7784909daaa4978b7e7164584b3e3125180b000713202d3a4653606d7986939facaa9d908477665c50505050505050505050505050505050505050505050505050505050504846423b332a1f140900000613202c3945515d676d787f879297a29992867e727272727272727272727272727272727272727375797e8490959fa9a89f92867a6d6154473a2f24190d0100000b1824313e4b5764717e8a96a0acac9f948e8179716d67696869676d70747a7f869095938a7e7885929fabaa9d9184776c6261616361594f44382c2014070000020f1a26313c4855616b75828f98a2abada39b928c837d7975747374767a7f869196a0a8afa4999184796d60544a4034281c100400000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b00000000000000000000050d151d242930383f44464c5254575a5c5e5f5f5f5f5e5d5a5754524c46443f382f28231c150c030000000000000000000000000000000714202d3a46525e696e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e707d8a97a39d9083766a5d5043372a1d10000000000000000000000000000000000000000000000006121f2c3945525f6c78859292999292918f8e8b87827c716c61594f41382d22170b000000000000000000000000000000000000000e1a26313d4751595e5f606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060575550483e33281c1104000e1a26313d4751595e5f606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060575550483e33281c11040000000000000000000c18232f39434b515f606060606060605f5e5951473d31261a0e010000000000000000000000000000030d151e262e343d43474d5354585b5d5e5f5f5f5e5d5b5955534e4745413a3129343c424b5153585c5e5f5f5f5e5d5a585651493f34291d120600000000000000000000060c161b1f252a2d2e31343738393939383735322f2e2b26201d19130c151d23282c2d32353839393838363432312e29231b1309000000000000000000000000030d161f272d32353639393635322d271f160d03000000000000000000000000000000000000000000000000040e1720272e3336373939393939383634312e2d2a251e1a150e060000000000000000000000000000000000000713202d3a4653606d7984919ea7ada1968d80736b6059514b474342423f44464850565d676d7a85929b9993908c8275685c4f4235291c0f02000013202c3946535f6c7986929faca79a8d8074675a4d41363c3f413e3a38342e2c2823232221212c3844505c667784919daaa5988b7f7265584b3f3225180c000815212e3b4854616e7b879aa4afa99c90837669545d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d55534d453b31261a0e020004101d2935404b555d666d727d859298a29892877f716b6565656565656565656565656565656566666d717a839097a1ada2988b7f7265564c4135291d11040005121e2a36424d576875818e9ba8afa49a8f82786d66605d555c555c6063676d727b838f9391857b8797a2ada79a8d8074675a545557554f473e33281c1004000006121f2b37434e5863707d8a939eaaafa59b918b8078706c66676768686d737b849196a0acaba0968c7f72665c5144382c1f120600000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000000000000000000050e161f272f353e424a5053565e616467696b6c6c6c6b6a696764615e56535049413d342e271e150c0300000000000000000000000000000814212e3b4754616e7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7f8b98a49d9083766a5d5043372a1d10000000000000000000000000000000000000000000000006121f2c3945525f6c7885929493939496999a99938e867e716b6053493f33271b0f03000000000000000000000000000000000000111d2a36424e59636a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c64615a5045392d21140800111d2a36424e59636a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c64615a5045392d211408000000000000000004101c2934404b555c6c6c6c6c6c6c6c6c6c6a63594e42362a1d110400000000000000000000000000010b151f2730383f444e54575e6164676a6b6c6c6c6b6a6865625f5854524c433f353c464e545c6065686b6c6c6b6b696765625b51463a2e2215090000000000000000030a111720272b31363a3b3e4144444546464544423f3c3b37322c29241e191e272e34383a3e42454646454443413f3d3a342d251b110600000000000000000000000a151f2831383e4243464643423e3831281f150a0000000000000000000000000000000000000000000000000b16202932393f434445464646454543413e3a3936302b2620180f090000000000000000000000000000000004101d2935404b5564717d8a96a1acaa9e9184796d60594f45403937312d3337393e444c555e68717e8b8e8a86837f7c6f6255483c2f22150900000013202c3946535f6c7986929faca79a8d8074675a4d4134303334312d2c28231f1c18161e2429363e4653606d7985929facab978a7e7164574b3e3124180b000916232f3c4956626f7c8995acb6a89c8f82756a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a615f574d42362a1e120500010d18242f39434b545c606b707d86929fa29992877d70675d5858585858585858585858585859545c60686d7a85919ea9aa9c908376685d5245392c201306000714202d3a46525e697885919eabac9f93877c6f665c54514b4f4b5153555d60696e79818f949083909da9b3a4988b7e7165584b484a48443e352c21160b0000000814212e3a47535f6a7683909ca5afa99e938b7f736c65605b545a565e61696e7a84919aa4afa89e9285796d6053463a2d22170b00000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b0000000000000000040d162028313940454f545c6064686e7174767778797978777674716e6863605b534e44403930271e150c0300000000000000000000000000111e2a3744515d6a7784878787878787878787878787878787878787878787878787878787878787878787878b919ba99d9083766a5d5043372a1d10000000000000000000000000000000000000000000000006121f2c3945525f6c78858887868787898d92979f9892887d70655b5044372b1f1205000000000000000000000000000000000000121f2c3845525e6a7579797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979716c6155493c3023170a00121f2c3845525e6a7579797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979716c6155493c3023170a000000000000000006131f2c3845515c67767979797979797979756a5e5245382c1f12060000000000000000000000000007121d273139424a50586062696e71747777787979787775726f6a66605d56504540454e5860666d717578797978777674726d62564a3d3124180b00000000000000030c151c232832373b4246484b4e505152535252504e4c4847433c39352f28222b30394045464b4f5152535251504e4b4a463f372d23180d0100000000000000000005111c27313a434a4e505353504e4a433a31271c11050000000000000000000000000000000000000000000006111c27323b434a4f51525353535251504e4b4746413a37312a221b12090000000000000000000000000000000613202c3945515d6775828f9ba8aea3988b7e71675d51473d352f2b2622272b2d323a434c56606d7883817e7a76736f6a5f53473b2e21150800000013202c3946535f6c7986929faca79a8d8074675a4d413427262724201f1c1713141920282f353f48515b63707d8998a2aea399897c6f6356493c30231609000a1623303d495663707c8996a3afa89b8e8177777777777777777777777777777777777777777777777777777777777777776e695f53463a2d211407000007121d283139424a5059606b717e8b949fa39991857a6d60564c4c4c4c4c4c4c4c4c4c4c4c4c4a51565e68717e8b97a1a69f94877a6d6054473a2d211407000815212e3b4854616e7b8797a1adaa9d9083776a5f544b4540424045474b51575f676d78828f9590959fabb0a3968a7d7063574a3d3d3c38332c231a10050000000815222f3b4855626e7b88949fabada2978e81746d605b53504a4d4c52575e68707d87939facada1978a7d716453493f33271b0f03000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b00000000000000010c161f28323a434b515961666d71767a7e808284858686858483807d7a76706c656058514a423930271e150a00000000000000000000000000111e2a3744515d6a778490949494949494949494949494949494949494949494949494949494949494949494989ba3a99d9083766a5d5043372a1d100000000000000000000000000000000000000000000000000916232f3c4956626f7c7b7a7a7a7b7d808590959f9a9184786c605346392d20130600000000000000000000000000000000000013202c3946535f6c79878686868686868686868686868686868686868686868686868686868686868686868686868686868686868686867e7164574a3e3124170b0013202c3946535f6c79878686868686868686868686868686868686868686868686868686868686868686868686868686868686868686867e7164574a3e3124170b00000000000000000714202d3a4753606d798686868686868687796c5f5346392c201306000000000000000000000000020c18242f39434b545c606a6f757b7e8183848586858583817f7c78726d68625a514b4d57606a6f797e82848586858483817f7265584b3f3225180c000000000000030d151e262e343d43474d5354585b5d5e5f5f5f5e5d5b5955534e4745413a3129343c424b5153585c5e5f5f5f5e5d5a585651493f34291d12060000000000000000000a16222d38434c545a5d60605d5a544c43382d22160a000000000000000000000000000000000000000000000a16222e39434d555b5d5f5f605f5f5e5c5b5854524c47433c342d241b110800000000000000000000000000000714202d3a4753606d7a86929facac9f92867a6d60554b403529241d1a171b1f2028313a44515c666d7775716d6866625f584e43372b1f120600000013202c3946535f6c7986929faca79a8d8074675a4d4134271a1b171312100e171f252a323a4145515a626d76828f9caaac9f9286796d6053473a2d201407000a1724303d4a5763707d8a96a3b0ab9e928583838383838383838383838383838383838383838383838383838383838383837b6e6155483b2e2215080000010c161f2830383f444f59626c76828f9ca7a1978d8073685e52463f3f3f3f3f3f3f3f3f3f3f40444c56606d7985929a999896897c6f6356493c30231609000916222f3c4955626f7c8895a9b3a79a8d817467584e4239352f34383a40454d555c666d7a85919d9fa7b1afa396897c706356493d302f2c28211a110800000005121e2a36424d576774808d9aa6b0ac9f92857a6d615b5049443f4041464d56606b75828f9baab3a99b8e8175655b5044372b1f1205000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b0000000000000008131e28313a444c555d606b70787e82868a8d8f919292929291908d8a87827d786f6a605c544a423930261c1106000000000000000000000000111e2a3744515d6a7784909da1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a4a7aca99d9083766a5d5043372a1d100000000000000000000000000000000000000000000000000815222e3b4754606a6f6e6d6d6d6e70737a83909da096897c6f6356493c3023160900000000000000000000000000000000000013202c3946535f6c798692939393939393939393939393939393939393939393939393939393939393939393939393939393939393938a7e7164574a3e3124170b0013202c3946535f6c798692939393939393939393939393939393939393939393939393939393939393939393939393939393939393938a7e7164574a3e3124170b00000000000000000714202d3a4753606d7a8693939393939286796c5f5346392c2013060000000000000000000000000a141e2935404b555d666d747c82878b8e909192929291908e8c88847f7a716d605d55535f696f7c848b8f9192929291908d86796c605346392d20130000000000010b151f2730383f444e54575e6164676a6b6c6c6c6b6a6865625f5854524c433f353c464e545c6065686b6c6c6b6b696765625b51463a2e2215090000000000000000010d1a26323e4a545e66696c6c69665e544a3e32261a0d010000000000000000000000000000000000000000020e1a27333f4a555f676a6c6c6c6c6c6b696764615e56534e463e362d23190b02000000000000000000000000000a1723303d4a5663707d8998a3aea89b8e8275675d51433a2f23181d1d1d1d1d161f2834404a545c606a6864615e5655534e463c32261b0f0300000013202c3946535f6c7986929faca79a8d8074675a4d4134271a0e0b070b1218202930363e444c525b626c727f8b949faba89c8f8376675d5145392c1f1306000a1724313d4a5764707d8a97a3b0ada1979290909090909090909090909090909090909090909090909090909090909090887b6e6255483b2f221508000000040d161e262e343d47505a63707c8995a0a99f92867a6d6154473b3032323232323232322e343a45515c6674818e8e8c8b89887f7265584c3f3225190c000a1723303d4a5663707d8996a3b0a6998c7f7366594c402f2924292c2f353b434b545d68707d8a959fabb7afa396897c706356493d3023201c161008000000000714212d3a46535f697884919eabafa49a8c7f73685e52443f383330363b444f5963707d8a98a2aeab9f9285796c605346392d201306000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000000000000050e19242f3a434c565e676d747d848a8f93999a9c9e9f9f9f9e9d9c9a9a938f8a837c736d665c544a42382e23170b020000000000000000000000111e2a3744515d6a7784909d9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9d9083766a5d5043372a1d1000000000000000000000000000000000000000000000000006131f2b38434e586062616160606163686f7c8899a4988b7e7265584b3f3225180c00000000000000000000000000000000000013202c3946535f6c7986929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f978a7d7164574a3e3124170b0013202c3946535f6c7986929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f978a7d7164574a3e3124170b00000000000000000714202d3a4753606d7a86939f9f9f9f9286796c5f5346392c201306000000000000000000000006111c26303845515d676d7880898f93999a9d9e9f9f9f9e9d9b9896918c857e756d675d58626e7b8691969b9e9f9f9e9e9c9386796c605346392d2013000000000007121d273139424a50586062696e71747777787979787775726f6a66605d56504540454e5860666d717578797978777674726d62564a3d3124180b0000000000000000030f1c2935424e5a66707679797670665a4e4235291c0f03000000000000000000000000000000000000000003101d2936434f5b6771777879797978787674716d68625f5850483e352b1d140a000000000000000000000000000d1a2733404d5a6673808d99aab4aa978b7e7164554c4131282a2a2a2a2a2a2a2a2a232e39424a51535d5b5754524c4847433c342a20150a0000000013202c3946535f6c7986929faca79a8d8074675a4d4134271a0e030c151c2328323b41464f565d606d727e87929fa6ada1968b7e7165554b4035291d1004000a1724313d4a5764707d8a97a3b0b3a9a19e9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d94887b6e6155483b2e22150800000000040c141c2328353f4854606b7783909daaa3988c7f7266574d42362a25252525252525232834404b5464717e8281807e7d7c796d6053473a2d201407000a1724313d4a5764707d8a97a3b0a5988c7f7265594c3f2e23181c1f24293139424c56616c7683909da9b3afa396897c706356493d302316100b0500000000000815222e3b4855616e7b8896a1aca69f93877b6e61564c41332d28252a323d4653606c7985929fabada297887b6e6155483b2e221508000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b0000000000020d17202935414c555e686d79818a91969c9fa4aba5aba49f9fa4aca5aca49f9c95908780786d665c544a3f34281d140a0000000000000000000000111e2a3744515d6a77839093939393939393939393939393939393939393939393939393939393939393939393939393939083766a5d5043372a1d10000000000000000000000000000000000000000000000000030f1b27323d464e5456555453545456606c7986939f998c807366594d4033261a0d00000000000000000000000000000000000013202c3946535f6c7986929facacacaea9a7a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a4978a7d7164574a3e3124170b0013202c3946535f6c7986929facacacaea9a7a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a4978a7d7164574a3e3124170b00000000000000000714202d3a4753606d7a8693a0acac9f9286796c5f5346392c20130600000000000000000000000b17232e3842505a606d79828d929b9fa4ababa39f9d9c9b9c9d9fa19e97928b82796d685f6a76828f98a1a8aaa39f9995949386796c605346392d201300000000020c18242f39434b545c606a6f757b7e8183848586858583817f7c78726d68625a514b4d57606a6f797e82848586858483817f7265584b3f3225180c000000000000000003101d2a3643505d69768286868276695d5043362a1d1003000000000000000000000000000000000000000004111e2a3744515d6a778385868686858483817e7a756e6a615a50473d2f261b1106000000000000000000000004101c2834404b546976828f9ca9aea398887b6f6255483c2f3737373737373737373737373039404446514e4b4746413c3b37322a261f180f0600000013202c3946535f6c7986929faca79a8d8074675a4d4134271a0e0c151e272e343e444d525961686d757f879299a3afa59e9184796d6053463a2f24180c00000a1723303d4a5663707d8996a3b0b8b0aba99f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa9aaaaaaaaaa94877a6e6154473b2e2114080000000000020a1117232c38444f596673808c99a6aa9d918477695e52463a2d2019191919191918232e394955616c7176747371706f6d675d5145392c201306000a1723303d4a5663707d8996abb5a6998d807366544a403428211e1a181f27303a44505a64707d8a97a2adafa396897c706356493d3023160a000000000000000b1825313e4b5864717e8b939a979a9c908376695e52443a30221b19202b3844505b6676838f9ca9b3a9978a7d7064574a3d3124170a000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000000000008141e29323b45515d676d7a838e939ea0a8a7a09d99959993939a96999ea0a8a7a099928c81786d665c50443d2f261c110600000000000000000000111e2a3744515d6a77838686868686868686868686868686868686868686868686868686868686868686868686868686868683766a5d5043372a1d10000000000000000000000000000000000000000000000000000a162027333f49535b606060606062666e7b8799a4988c7f7265594c3f3226190c00000000000000000000000000000000000013202c3946535f6c7986929facb9aea49d9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a978a7d7164574a3e3124170b0013202c3946535f6c7986929facb9aea49d9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a978a7d7164574a3e3124170b00000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000003101c28343f4a54616c74818e949da4aca7a09d9992908f8f8f9192999a9e9f948f837a6d666f7c88949faaaea398928c88878886796c605346392d2013000000000a141e2935404b555d666d747c82878b8e909192929291908e8c88847f7a716d605d55535f696f7c848b8f9192929291908d86796c605346392d2013000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000000006121f2c3945525f6c78859292999292918f8e8b87827c716c61594f41382d22170b000000000000000000000006131f2c3845515c667884919eabac9f9286796d6053464444444444444444444444444444444444444444444444444444443b3a36312a21180e03000013202c3946535f6c7986929faca79a8d8074675a4d4134271a0b151e273039404450565e616b707a818b9299a3aba79e938b7e71665c5145382c1d12070000091623303c4956636f7c8996a2afb0a69f9c9393939393939393939393939393939393939393939393939c9ea6b0aea398877a6d6054473a2d2114070000000000000006101b27323d4956636f7c8996a9aca095877b6e6154483b2e21150c0c0c0c07121d2d3944505a6164696766656362605d554b4035291d1104000915222f3c4855626f7b8899a3afa89b8f8275665c51443a322d2b2627272628323e4653606d7985929fabafa396897c706356493d3023160a000000000000000c1925323f4c5865727f8486898b8d8f8c807366574d4232281e110f1c28333f4a546774808d9aa7b2a5988b7f7265584c3f3225190c000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b00000000010d1925303b44515b606d798390959ea5a9a19e95908c8987868687898c91969ea1a9a39f938f81786d60584e42382d22170b00000000000000000000101d2936424f5b677177797979797979797979797979797979797979797979797979797979797979797979797979797979797671665b4e4236291c100000000000000000000000000000000000000000000000000005121f2b3744505b656c6d6c6c6d6f7278818e9ba095897c6f6356493c3023160900000000000000000000000000000000000013202c3946535f6c7986929facb9a99d928d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8a7e7164574a3e3124170b0013202c3946535f6c7986929facb9a99d928d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8a7e7164574a3e3124170b00000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000006121f2b3844505c66717e8b939ea6aea59d95908a86838282838486898d92979f959083786d73808d99a6b0a89f9286807c7a7b7d7063574a3d3024170a00000006111c26303845515d676d7880898f93999a9d9e9f9f9f9e9d9b9896918c857e756d675d58626e7b8691969b9e9f9f9e9e9c9386796c605346392d2013000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000000006121f2c3945525f6c7885929493939496999a99938e867e716b6053493f33271b0f03000000000000000000000713202d3a4653606d7986939facaa9d908477665c50505050505050505050505050505050505050505050505050505050504846423b332a1f1409000013202c3946535f6c7986929faca79a8d8074675a4d4134271a121d273039424a515a62686e757d848e939fa3aba8a0958f81756c61544b4034281c0b0100000815222f3b4855626e7b8895a9b3ab9f948f8686868686868686868686868686868686868686868686868f949eaaac9f928579675d5145392c20130600000000000000000b14212d3a4754606d7a8797a1ada7978b7e7164584b3e3125180b00000000101c28333e485055575c5b5958565553514b433a2f24180d01000714202d3a4753606d7a86929facab9e9285796d60564c443d3a373134333332323845515c6675828f9ca8afa396897c706356493d3023160a000000000000000b1824313e4a56626d72787a7c7e8082847d7063574a3d3024160c0b17222d404c5966737f8c99a6b2a6998d8073665a4d4033271a0d000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b0000000005111e2a36414c56626d75828f959fa7a8a097928a837f7c7a79797a7c7f848a9297a0a8a59e938d80736a60544a3f33281c0f030000000000000000000e1a27333f4a555f676a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6a665f554a3e32261a0d000000000000000000000000000000000000000000000001080d13202d394653606c777979797a7b7e838e939e989083786c605346392d20130600000000000000000000000000000000000013202c3946535f6c7986929facb3a79a8d80808080808080808080808080808080808080808080808080808080808080808080808080807c6f6255483c2f2215090013202c3946535f6c7986929facb3a79a8d80808080808080808080808080808080808080808080808080808080808080808080808080807c6f6255483c2f22150900000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000713202d3a4653606d7884919ea5afa69d938e837d797776757677797c80858c9298958e81747683909ca9aca0958a7e736f6e6e706b6155483c2f2316090000000b17232e3842505a606d79828d929b9fa4ababa39f9d9c9b9c9d9fa19e97928b82796d685f6a76828f98a1a8aaa39f9995949386796c605346392d2013000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000000006121f2c3945525f6c78858887868787898d92979f9892887d70655b5044372b1f1205000000000000000000000815212e3b4854616e7b879aa4afa99c90837669545d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d55534d453b31261a0e020013202c3946535f6c7986929faca79a8d8074675a4d4134271a18232e39434b545c606c717b818a91969ea5afa69f959083796d605a5042392e23180c0000000714212d3a4754606d7a8797a2ada99c8f82797979797979797979797979797979797979797979797979828f9ca9ab9e9184786b554b4135291d110400000000000000030613202c3945515d677885919eaba6998d8073665a4d4033271a0d0c0c0c0c0b17222c363e44494a4f4e4d4b4a484745403a31281d1307000006131f2c3945515d677783909dabada1978a7e71685e564f484742424140403f3f3f404b546673808c99a6afa396897c706356493d3023160a000000000000000916222e3a46515b6265676d6f71737578706b6155483c2f231604061925323f4c5865727f8b98a5b2a79a8d8074675a4d4134271a0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000000000714202d3946525e68727f8b949ea7a9a09591857e77726f6d686c6d6f72787e859196a0a9a59f93877c6f665b5044382b1f13080000000000000000000a16222e39434d555b5d606060606060606060606060606060606060606060606060606060606060606060606060606060605d5b554d43382d22160a00000000000000000000000000000000000000000003090e13191d202d394653606c7984868687888b90959a9590867c6f665b5044382b1f120802000000000000000000000000000000000013202c3946535f6c7986929facada0938679737373737373737373737373737373737373737373737373737373737373737373737373736f6a5f53473a2e2115080013202c3946535f6c7986929facada0938679737373737373737373737373737373737373737373737373737373737373737373737373736f6a5f53473a2e21150800000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000b1824313e4b5764717e8a96a0acac9f948e8179716d67696869676d70747a7f869095938a7e7885929fabaa9d9184776c6261616361594f44382c201407000003101c28343f4a54616c74818e949da4aca7a09d9992908f8f8f9192999a9e9f948f837a6d666f7c88949faaaea398928c88878886796c605346392d2013000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000000000916232f3c4956626f7c7b7a7a7a7b7d808590959f9a9184786c605346392d201306000000000000000000000916232f3c4956626f7c8995acb6a89c8f82756a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a615f574d42362a1e12050013202c3946535f6c7986929faca79a8d8074675a4d41342716202834404b555c666d747e858e939ea1a8aca49f9490837b6e675d51483e30271d12070000000613202c3945515d677885929eabaa9d9184776c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c667784919eaaa99c8f8376695c50432f24180d010000000000040a0f13151d2935414b556a7783909daaa89b8f8275685c4f4235291c191919191919191a242c33393c3e4341403e3d3c3a39352f281f160c01000004101d2935404b5566737f8c99a3aea99e91847a6d68615955534d4f4e4d4c4c4c4b4b4c5865727f8b98a5afa396897c706356493d3023160a0000000000000006121e29343f495156555d60626467696b6361594f44382c2014070b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b00000005111d2935414c56616e7a85929fa6ada19791837b716c6662605d606163656c717b849197a1ada4999184786c6053463a3025190d01000000000000000006111c27313b434a4f5153535353535353535353535353535353535353535353535353535353535353535353535353535353504e4a433a31271c110500000000000000000000000000000000000000030a0f151a1e24292c2e3844505b6673808c9993999292908d89837c6f6a5f544a3f33281c19130d080100000000000000000000000000000013202c3946535f6c7986929facada093867a6d676767676767676767676767676767676767676767676767676767676767676767676767625f584e43372b1f12060013202c3946535f6c7986929facada093867a6d676767676767676767676767676767676767676767676767676767676767676767676767625f584e43372b1f120600000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000005121e2a36424d576875818e9ba8afa49a8f82786d66605d555c555c6063676d727b838f9391857b8797a2ada79a8d8074675a545557554f473e33281c1004000006121f2b3844505c66717e8b939ea6aea59d95908a86838282838486898d92979f959083786d73808d99a6b0a89f9286807c7a7b7d7063574a3d3024170a000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000000000815222e3b4754606a6f6e6d6d6d6e70737a83909da096897c6f6356493c30231609000000000000000000000a1623303d495663707c8996a3afa89b8e8177777777777777777777777777777777777777777777777777777777777777776e695f53463a2d2114070013202c3946535f6c7986929faca79a8d8074675a4d4134271e28323a45515c676d78818b92979ea5ada8a19a938d827a6e695e554c41362d1e150b0000000004111d2935414c55697683909ca9ab9f928578695f606060606060606060606060606060606060606d7986929faca79a8d8174675a4e4134271b070000000000070f161b1f2223242f43505d697683909ca9a99c908376695d5043362a2525252525252525252520282d303136343332302f2d2c29241d160d04000000000c18242f3b4854616e7b86929fa8ada19690827a706b65615f575c5a5a5959585858585865717e8b98a4afa396897c706356493d3023160a00000000000000010d18232d373f464a4b515356585a5c5e57554f473e33281c10040b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b0000000713202d3946525e6874808d98a2aea69e92857b6e69615a5654525354535b60696e7b85929ea8aba0958a7d7063564c41362a1d11050000000000000000000b151f2931393f42444646464646464646464646464646464646464646464646464646464646464646464646464646464643423e3831281f150a00000000000000000000000000000000000000060b151a1f262b2f35393a40444a54616e7b87939f92878583817d786f6a5f584e4238342e29241e19130c04000000000000000000000000000013202c3946535f6c7986929facada093867a6d605a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a55534e463c31261b0f030013202c3946535f6c7986929facada093867a6d605a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a55534e463c31261b0f0300000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000714202d3a46525e697885919eabac9f93877c6f665c54514b4f4b5153555d60696e79818f949083909da9b3a4988b7e7165584b484a48443e352c21160b0000000713202d3a4653606d7884919ea5afa69d938e837d797776757677797c80858c9298958e81747683909ca9aca0958a7e736f6e6e706b6155483c2f231609000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000000000000006131f2b38434e586062616160606163686f7c8899a4988b7e7265584b3f3225180c000000000000000000000a1724303d4a5763707d8a96a3b0ab9e928583838383838383838383838383838383838383838383838383838383838383837b6e6155483b2e2215080013202c3946535f6c7986929faca79a8d8074675a4d41342724303a44515b606d79828e939fa2a9ada59d96918880786d685e564d433a2f241b0c0300000000010d19242f414d5a6774808d9aabaea298887b6e61555353535353535353535353535353535355626f7c8899a3afa9988b7e7265584b3f3225180c0000000007101921272c2f303236434f5c6976828f9ca9aa9d9083776a5d50443732323232323232323232322d2c28232429282625232220201d18130c0400000000000714202d3a46525e6974808d96a1a9a89f9590847d77726e696a6867666665656565646465717e8b98a4afa396897c706356493d3023160a000000000000000006111b252d343a3a404547494b4d4f514a48443e352c21170b000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b0000000714212e3a4754616d7a86929faaab9f948a7d70695e575049474546474950565e69717e8b96a0aca79c8f8275685e5246392d201307000000000000000000040d171f272e333637393939393939393939393939393939393939393939393939393939393939393939393939393939393736322d271f160d030000000000000000000000000000000000020a111720262b31373a4145474a5153555e6976828f9b8f82787774706c655f58504a46443f38353029241e160d070000000000000000000000000013202c3946535f6c7986929facada093867a6d60534d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4847433c342a20150a000013202c3946535f6c7986929facada093867a6d60534d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4847433c342a20150a0000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000815212e3b4854616e7b8797a1adaa9d9083776a5f544b4540424045474b51575f676d78828f9590959fabb0a3968a7d7063574a3d3d3c38332c231a10050000000b1824313e4b5764717e8a96a0acac9f948e8179716d67696869676d70747a7f869095938a7e7885929fabaa9d9184776c6261616361594f44382c201407000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000000000030f1b27323d464e5456555453545456606c7986939f998c807366594d4033261a0d000000000000000000000a1724313d4a5764707d8a97a3b0ada1979290909090909090909090909090909090909090909090909090909090909090887b6e6255483b2f2215080013202c3946535f6c7986929faca79a8d8074675a4d4134272935414c56626d75818e949da5ada9a19e938e847d736d665d564d443b31281e1209000000000000081724313e4a5764717d8a99a3afaa988b7e7165574d42464646464646464646464646424d5765727f8c98abada297887b6f6255483c2f221509000000040f19222b32383b3c3f3f434f5c6976828f9ca9aa9d9184776a5e51443f3f3f3f3f3f3f3f3f3f3f3f3a38342e271e151a1817151413110d070100000000000005121e2a36424d57606d79849197a1a9a79f969189837f7b78767574737372727271717171717e8b98a4afa396897c706356493d3023160a00000000000000000009131b23292e2f35393a3c3e4042453d3c38332c231a1005000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000005121e2a36424d5765727f8c98a2aea99c8f82766c61574d453e3a39393a3f444d57616c7784919eaaa99f93867a6d6154473a2e21140700000000000000000000050d151c2227292a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2a2926221c150d040000000000000000000000000000000000060c141c232831373c42474c5154545c60626466717e8a9792877b6e6a69676462605b5453504a45413a352f281f18120b03000000000000000000000013202c3946535f6c7986929facada093867a6d6053474040404040404040404040404040404040404040404040404040404040404040403c3a37312a22180e04000013202c3946535f6c7986929facada093867a6d6053474040404040404040404040404040404040404040404040404040404040404040403c3a37312a22180e040000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000916222f3c4955626f7c8895a9b3a79a8d817467584e4239352f34383a40454d555c666d7a85919d9fa7b1afa396897c706356493d302f2c28211a110800000005121e2a36424d576875818e9ba8afa49a8f82786d66605d555c555c6063676d727b838f9391857b8797a2ada79a8d8074675a545557554f473e33281c1004000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000000000000a162027333f49535b606060606062666e7b8799a4988c7f7265594c3f3226190c000000000000000000000a1724313d4a5764707d8a97a3b0b3a9a19e9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d94887b6e6155483b2e2215080013202c3946535f6c7986929faca79a8d8074675a4d4134272d3946525d68727e8b939ea6afa69f979189817a706b605c544c443b32291f160c000000000000000714212e3a4754616d7a86929faca89b8e8275695e53463d313939393939393939303946525e6976828f9ca9ab9e9285786c605346392d2013060000000a16212b343d4348494c4c4c4f5c6976828f9ca9aa9d9184776a5e514c4c4c4c4c4c4c4c4c4c4c4c4c4645403930271d12070a09070604010000000000000000020e1a25303b45515d676f7c8591979ea5a8a09e95908b8885838281807f7f7f7e7e7e7e7d7d808d9aa7afa396897c706356493d3023160a000000000000000000010911181e1d24292c2d2f31343638302f2c28211a110800000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b00000714202d3a46525e697783909daaada197897d7063594f453b332d2c2d2d333b45505a66737f8c999d9c9c998a7d7063574a3d3024170a0000000000000000000000040b11161a1d1e202020202020202020202020202020202020202020202020202020202020202020202020202020201d1c1a16110a030000000000000000000000000000000000070f181e262e343c43474d53555d6064666d6f717375798592998c8078777673716e6c6663605c54524c45413a3128231d150c040000000000000000000013202c3946535f6c7986929facada093867a6d6053473a34343434343434343434343434343434343434343434343434343434343434342f2e2b262018100600000013202c3946535f6c7986929facada093867a6d6053473a34343434343434343434343434343434343434343434343434343434343434342f2e2b2620181006000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000a1723303d4a5663707d8996a3b0a6998c7f7366594c402f2924292c2f353b434b545d68707d8a959fabb7afa396897c706356493d3023201c161008000000000714202d3a46525e697885919eabac9f93877c6f665c54514b4f4b5153555d60696e79818f949083909da9b3a4988b7e7165584b484a48443e352c21160b00000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000000000005121f2b3744505b656c6d6c6c6d6f7278818e9ba095897c6f6356493c30231609000000000000000000000a1723303d4a5663707d8996a3b0b8b0aba99f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa9aaaaaaaaaa94877a6e6154473b2e2114080013202c3946535f6c7986929faca79a8d8074675a4d4134272e3a4754616d7a85929fa5afa59e948f857d746d676059514a423a322920170d04000000000000000713202d3946525d6876828f9ca9ac9f92867b6e61584e433b322c292424292c3139424d57616e7b86929faca89b8e8174655b5044372b1f12050000030f1b27323d474f5456585858585c6976828f9ca9aa9d9184776a5e585858585858585858585858585853514b42392e23180c00000000000000000000000000000009141f2935414b555f6a6f7c858f939c9fa4a79f9d989892908f8d8d8c8c8b8b8b8b8a8a8a8d929da9afa396897c706356493d3023160a0000000000000000000000060d1213181d2020232527292b2423201c1710080000000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b00000815212e3b4854616e7b87959fabab9e9184786c6053463e33292120202227333e4956626f7c899191908f8e8d8073665a4d4033271a0d00000000000000000000000000060a0e10111313131313131313131313131313131313131313131313131313131313131313131313131313131310100d0a05000000000000000000000000000000000000081019212a30383f444e53575f62676d7175797c7e80828390979c928c848382807e7b7974706d66605d56524c433d342e271e160e0500000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d2727272727272727272727272727272727272727272727272727272727272722211f1b150e060000000013202c3946535f6c7986929facada093867a6d6053473a2d2727272727272727272727272727272727272727272727272727272727272722211f1b150e0600000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000a1724313d4a5764707d8a97a3b0a5988c7f7265594c3f2e23181c1f24293139424c56616c7683909da9b3afa396897c706356493d302316100b0500000000000815212e3b4854616e7b8797a1adaa9d9083776a5f544b4540424045474b51575f676d78828f9590959fabb0a3968a7d7063574a3d3d3c38332c231a100500000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000000000000613202d394653606c777979797a7b7e838e939e989083786c605346392d20130600000000000000000000091623303c4956636f7c8996a2afb0a69f9c9393939393939393939393939393939393939393939393939c9ea6b0aea398877a6d6054473a2d2114070013202c3946535f6c7986929faca79a8d8074675a4d41342935404b5565727f8c97a2ada59e938e827a706b605d554f444039302820170e05000000000000000005111d2935414c5664717e8b96a1ada3998d80746a60564d443e39352f2f35383c434b545e6973808d99a3aca096897d706353493f33271b0f03000007131f2c38434f59606365656565656976828f9ca9aa9d9184776a656565656565656565656565656565605c544b4034281c10040000000000000000000000000000020d18242f3a434e585f6a6f7a82898f93999c9fa2aaa29f9d9b9a999998989898979797979a9da4aeafa396897c706356493d3023160a0000000000000000000000000101070d11131416181a1c1e171614100b05000000000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b00000b1824313e4b5764717e8a97a7b1a79a8d8174665b5044382c2017131317202d3a4753606d79868584838281807e7164574b3e3124180b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008111a222b333c424a50585f62696e747a7e8185888b8d8f9095a0a49c9691908f8d8a8885817d79736d68605d564f454039302820160e05000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d201a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1515120f0a04000000000013202c3946535f6c7986929facada093867a6d6053473a2d201a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1515120f0a040000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000a1723303d4a5663707d8996abb5a6998d807366544a403428211e1a181f27303a44505a64707d8a97a2adafa396897c706356493d3023160a000000000000000916222f3c4955626f7c8895a9b3a79a8d817467584e4239352f34383a40454d555c666d7a85919d9fa7b1afa396897c706356493d302f2c28211a11080000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000000000020a13202d394653606c7984868687888b90959a9590867c6f665b5044382b1f1206000000000000000000000815222f3b4855626e7b8895a9b3ab9f948f8686868686868686868686868686868686868686868686868f949eaaac9f928579675d5145392c2013060013202c3946535f6c7986929faca79a8d8074675a4d41342c3945515d677783909da9ac9e938e81786d686159514c433d342e271e160e05000000000000000000010d1924303a4653606d7984919ea7ab9f92877c6f685e564f47454141414045474e555c666e7b86929faba89e9184786c605346392d22170b0000000915222f3b4854606b6f72727272727276828f9ca9aa9d918477727272727272727272727272727272726d665c5145382c1f130600000000000000000000000000000007131d28313c464e585f686d757c82878b8f929897999a9b9c9d9d9d9e9e9e9e9f9f9f9fa3abacb5afa396897c706356493d3023160a00000000000000000000000000000001040607090b0d0f120a0a07040000000000000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b00010e1b2734414e5a6774818d9aa7b4aa978a7e7164544a3f33281a0e0606131f2c3845515c676d79787776757474716c6155493d3023170a0000000000000000000000000000000000000000000000000002050708080808080808060503000000000000000000000000000000000000000000000000000000000000000000000000000000000007111a232b343d454d545c606a6e757b81868a8e929897999c9da0a7aea8a19e9d9c9a9797928e8985807a736d686059514b423a322820170e050000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20140d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d090806030000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20140d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0908060300000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000915222f3c4855626f7b8899a3afa89b8f8275665c51443a322d2b2627272628323e4653606d7985929fabafa396897c706356493d3023160a000000000000000a1723303d4a5663707d8996a3b0a6998c7f7366594c402f2924292c2f353b434b545d68707d8a959fabb7afa396897c706356493d3023201c161008000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000001070c141c232b3844505b6673808c9993999292908d89837c6f6a5f544a3f33281c0f03000000000000000000000714212d3a4754606d7a8797a2ada99c8f82797979797979797979797979797979797979797979797979828f9ca9ab9e9184786b554b4135291d11040013202c3946535f6c7986929faca79a8d8074675a4d41342d3a4753606d7a86929faca49a8f81776d665e564f45413a3128231c150c04000000000000000000000008131f2c3845515c67727f8b95a0aba39991847a6e68615954514c4e4e4b5153575f676d78839098a2aca0968b7f72665b5044382b1b1106000000091623303c4956636f7d7f7f7f7f7f7f7f83919daaab9e91857f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f796d6053463a2d201307000000000000000000000000000000010c161f2a343c464e565e616b6f757b7f8285888a8c8d8f8f9090919191919292929292999ba3acafa396897c706356493d3023160a000000000000000000000000000000000000000000010305000000000000000000000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b0004111d2935414c566a7683909da9aea298887b6e6155483b2d2217080004101c2934404b555c606c6b6a6969686764615a5045392d211408000000000000000000000000000000000000000000000003090e12141515151515151513120f0b060000000000000000000000000000000000000000000000000000000000000000000000000000050f19232b353d464e575f666d727c81878e92999b9fa2aaa6a8aaa9a8a7a7a8a9aaa9a6a9a29e9a97928d85807a706b605c544c443a322920170c0300000000000013202c3946535f6c7986929facada093867a6d6053473a2d20140701010101010101010101010101010101010101010101010101010101000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d201407010101010101010101010101010101010101010101010101010101010000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000714202d3a4753606d7a86929facab9e9285796d60564c443d3a373134333332323845515c6675828f9ca8afa396897c706356493d3023160a000000000000000a1724313d4a5764707d8a97a3b0a5988c7f7265594c3f2e23181c1f24293139424c56616c7683909da9b3afa396897c706356493d302316100b0500000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000030b12181e262e34383f4a54616e7b87939f92878583817d786f6a5f584e42382d2218120b030000000000000000000613202c3945515d677885929eabaa9d9184776c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c667784919eaaa99c8f8376695c50432f24180d010013202c3946535f6c7986929faca79a8d8074675a4d41342f3c4855626f7b8899a3ac9f93877b6e655c544c443d352f281f18120b0300000000000000000000000004101c2834404b55606d78839099a3aba09690837a706b64605d555b5b555d60636a6e79818e959faaa49a9184796d60544a3f33281c0a000000000d1a2734404d5a6773808b8b8b8b8b8b8b9195a0acada197918b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b877a6d6054473a2d21140700000000000000000000000000000000040d18222a343c444c52596063696e7276797b7d7f81828383848484848585858585868b909ba7afa396897c706356493d3023160a000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000713202c3945525d687885929fabac9f9285796c605346392d20130600000c18232f39434b51535f5e5e5d5c5b5a575550483e33281d110500000000000000000000000000000000000000000000050d141a1e2121212121212121201f1b17110a020000000000000000000000000000000000000000000000000000000000000000000000030d17212b353d474f5860696e787f868e93999fa3ababaca8a9a29e9d9b9b9a9b9c9d9fa3aaa9aba9a19e98928c857d736d665d564c443a32291e150a00000000000013202c3946535f6c7986929facada093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000006131f2c3945515d677783909dabada1978a7e71685e564f484742424140403f3f3f404b546673808c99a6afa396897c706356493d3023160a000000000000000a1723303d4a5663707d8996abb5a6998d807366544a403428211e1a181f27303a44505a64707d8a97a2adafa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000050d151d242930383f44464c535e6976828f9b8f82787774706c655f584e443f382f28231c150c03000000000000000004111d2935414c55697683909ca9ab9f928578695f606060606060606060606060606060606060606d7986929faca79a8d8174675a4e4134271b07000013202c3946535f6c7986929faca79a8d8074675a4d4134303c4956636f7c8996abaa9e918477695e534a423a3229241e160d070000000000000000000000000000000c18232e3944515c666f7c87929fa4a8a09590847d76716d6769676869676d70757b838e939ea7a59f93887d70665c5142382d22170b000000000d1a2734404d5a6773808d9898989898989da0a7b1b3a9a19e98989898989898989898989898989893877a6d6054473a2d21140700000000000000000000000000000000050e171e252a323a41464f54575e6165666d6f717374757676777777787878787879797e8b98a4afa396897c706356493d3023160a000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000714212d3a4754606d7a8797a2adaa9d918477655b5044372b1f1205000007121d273139404547525251504f4e4d4b49453e362c22170c00000000000000000000000000000000000000000000050f171f252a2d2e2e2e2e2e2e2e2d2b27221b140b02000000000000000000000000000000000000000000000000000000000000000000010b151f29333d474f59606a6f7b838c92999fa4abadaaa29f9b979792908f8e8e8e8f909298989d9fa7acaaa29f97918880786d685e564c443a30261c1106000000000013202c3946535f6c7986929facada093867a6d6053473a2d20140c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c07060401000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20140c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c070604010000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000004101d2935404b5566737f8c99a3aea99e91847a6d68615955534d4f4e4d4c4c4c4b4b4c5865727f8b98a5afa396897c706356493d3023160a000000000000000915222f3c4855626f7b8899a3afa89b8f8275665c51443a322d2b2627272628323e4653606d7985929fabafa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000050e161f272f353e424a5053565e6164717e8a9792877b6e696764615e56535049413d342e271e150c0300000000000000010d19242f414d5a6774808d9aabaea298887b6e61555353535353535353535353535353535355626f7c8899a3afa9988b7e7265584b3f3225180c000013202c3946535f6c7986929faca79a8d8074675a4d41342f3c4955626f7c8895a7ab9e9184786a5f544a423930281f160d040000000000000000000000000000000007121d2834404a54606a727f8c929ca4a7a096918a827d7a7775747475767a7d818790959ea5a59e938d80736b60544b402f261c1106000000000d1a2734404d5a6773808d9a9f9f9f9f9fa9aab0b8bab2acaa9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f93877a6d6054473a2d211407000000000000000000000000000000020c1720293036393a3e3f44484d5354545c606264666768696a6a6a6b6b6b6b6c6c6c717e8b98a4afa396897c706356493d3023160a000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000815222f3b4855626e7b8895a9b3a99c8f82766953493f33271b0f030000010b151f272f34383a464544434241413e3d39332c241a1006000000000000000000000000000000000000000000030c17212931363a3b3b3b3b3b3b3b3937332d261d140a00000000000000000000000000000000000000000000000000000000000000000007121d27313b454f59606b707c8590959fa3abaea9a19e98928e8a87858382818181828386888b90959b9fa4aca9a19a938d837a6d685e564c42382e23170d040000000013202c3946535f6c7986929facada093867a6d6053473a2d2019191919191919191919191919191919191919191919191919191413110d070100000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d2019191919191919191919191919191919191919191919191919191413110d0701000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000c18242f3b4854616e7b86929fa8ada19690827a706b65615f575c5a5a5959585858585865717e8b98a4afa396897c706356493d3023160a000000000000000714202d3a4753606d7a86929facab9e9285796d60564c443d3a373134333332323845515c6675828f9ca8afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000040d162028313940454f545c6064686e7174798592998c80777674716e6863605b534e44403930271e150c0300000000000000081724313e4a5764717d8a99a3afaa988b7e7165574d42464646464646464646464646424d5765727f8c98abada297887b6f6255483c2f221509000013202c3946535f6c7986929faca79a8d8074675a4d41342e3a4754616d7a8795a0aca196887c6f665c544b423a31281f160d03000000000000000000000000000000000c18232e39424e58626d73808c929ea1a8a19e948f8a8683828181828386898e93999fa7a39f938f81786d60594f42392e1d140a00000000000d1a2734404d5a6773808d9393939393939c9fa6b0b2a8a09393939393939393939393939393939393877a6d6054473a2d21140700000000000000000000000000000008131e29323a4146474b4c4d4e4f51524a50535557595a5c5c5d5d5e5e5e5e5f5f5f65717e8b98a4afa396897c706356493d3023160a000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b00091623303c4956636f7c8996a2afa89b8e8175685b4e422d22170b00000000030d151d23292c2d3938373636353431302d28221a1208000000000000000000000000000000000000000000000a151e29333b42464848484848484846443f382f261b110600000000000000000000000000000000000000000000000000000000000000000c18242f39434d57606b707d8692979fa7aeaba39f96918b86817e7b7876757474757677797c7f83888e939a9fa7aca49f9590837a6d685e544a3f34281f160c0100000013202c3946535f6c7986929facada093867a6d6053473a2d26262626262626262626262626262626262626262626262626262621201d18130c04000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d26262626262626262626262626262626262626262626262626262621201d18130c040000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000714202d3a46525e6974808d96a1a9a89f9590847d77726e696a6867666665656565646465717e8b98a4afa396897c706356493d3023160a0000000000000006131f2c3945515d677783909dabada1978a7e71685e564f484742424140403f3f3f404b546673808c99a6afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000010c161f28323a434b515961666d71767a7e80828f979c928c8483807d7a76706c656058514a423930271e150a000000000000000714212e3a4754616d7a86929faca89b8e8275695e53463d313939393939393939303946525e6976828f9ca9ab9e9285786c605346392d201306000013202c3946535f6c7986929faca79a8d8074675a4d41342d3946525e687784919da8a89c9082786d665c544b433a31281f150b0100000000000000000000000000000007121c27303d46515b646e73808a92979fa3a69f9c9992908f8e8e8f9092989b9fa4a69f99928c81786d665c50473d30271d0b0200000000000d1a2734404d5a677380868686868686868f949faaaca0968986868686868686868686868686868686867a6d6054473a2d2114070000000000000000000000000000010d1925303a444c525457595a5b5c5d5e5b5953484a4c4e4f5050515151515252525965727f8c98a5afa396897c706356493d3023160a000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1724303d4a5763707d8a96a3b0a79a8d8174675a4e4134271b060000000000030b12181c1f202c2b2b2a2928272423211d1710080000000000000000000000000000000000000000000006111c26303b454d535454545454545453504941382d22170b0000000000000000000000000000000000000000000000000000000000000004101d2935404b555e69707d879298a2a9b1a8a099928c847f7a75716e696a6868676869666d6f72767b818790959da4afa79f9590837a6d665c50443e31281d130700000013202c3946535f6c7986929facada093867a6d6053473a333333333333333333333333333333333333333333333333333333332d2c29241d160d040000000000000013202c3946535f6c7986929facada093867a6d6053473a333333333333333333333333333333333333333333333333333333332d2c29241d160d0400000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000005121e2a36424d57606d79849197a1a9a79f969189837f7b78767574737372727271717171717e8b98a4afa396897c706356493d3023160a0000000000000004101d2935404b5566737f8c99a3aea99e91847a6d68615955534d4f4e4d4c4c4c4b4b4c5865727f8b98a5afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000008131e28313a444c555d606b70787e82868a8d8f949fa49c9691908d8a87827d786f6a605c544a423930261c11060000000000000713202d3946525d6876828f9ca9ac9f92867b6e61584e433b322c292424292c3139424d57616e7b86929faca89b8e8174655b5044372b1f1205000013202c3946535f6c7986929faca79a8d8074675a4d41342935414c5666727f8c96a1ab9f948e81786d665d554c433a31271d1207000000000000000000000000000000000b151e2b343f49525c646e737e858e92999ea1a8a39f9d9c9a9b9c9d9fa3a9a29f9b948f877f776d665c544a3f352c1e150b0000000000000d1926333f4c58646e7379797979797979828f9ca9aa9d9184797979797979797979797979797979797976685d5245392c201307000000000000000000000000000005111d2a36414c565e6164656768696a6b68655d534840414243434444444545454d596673808c99a6afa295897c6f6256493c2f231609000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1724313d4a5764707d8a97a3b0a79a8d8074675a4d4134271a0e01000000000001070c1013141f1f1e1d1c1b1a181714110c0600000000000000000000000000000000000000000000000c17232e38424d575e61616161616161605b53493f33271b0f03000000000000000000000000000000000000000000000000000000000005101a232c3945515d676e7b859299a2aab1a79f9691878079726d6764615e575c5b5b5b545c6062656a6e747c838d929fa3aba7a0959082786d60594f433a2f24180d02000013202c3946535f6c7986929facada093867a6d6053473f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3a39352f281f160c0100000000000013202c3946535f6c7986929facada093867a6d6053473f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3a39352f281f160c01000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000020e1a25303b45515d676f7c8591979ea5a8a09e95908b8885838281807f7f7f7e7e7e7e7d7d808d9aa7afa396897c706356493d3023160a00000000000000000c18242f3b4854616e7b86929fa8ada19690827a706b65615f575c5a5a5959585858585865717e8b98a4afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000050e19242f3a434c565e676d747d848a8f93999a9c9fa6aca8a09e9c9a9a938f8a837c736d665c544a42382e23170b02000000000005111d2935414c5664717e8b96a1ada3998d80746a60564d443e39352f2f35383c434b545e6973808d99a3aca096897d706353493f33271b0f03000013202c3946535f6c7986929faca79a8d8074675a4d413425303a4754606d79849199a4a69e938e81786d675d564c43392f24180d03000000000000000000000000000000030c19222d37404a525c636c717a81868d9196989b9c9e9f9f9f9f9e9d9b9997928e89827c736c655c544b42382e231a0c030000000000000b17232f3b47525c64676c6c6c6c6c6c76828f9ca9aa9d9184776c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c5d564c4135291d110400000000000000000000000000000713202d3946525e686d71727374767778756f65594d3d323536373737383835404b556774818e9aa7b2a995887b6e6255483b2f221508000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000b1724313e4a5764717d8a97a4b0a69a8d8073675a4d4034271a0d010000000000000000040607131211100f0e0e0b0a080500000000000000000000000000000000000000000000000003101c28343f4a545e696e6e6e6e6e6e6e6c655b5044372b1f120500000000000000000000000000000000000000000000000000000000000b16212b37434e58606d79839097a1abb1a79f9590847c736d67605d5554524d4f4e4e4e4a505355585f626a6f78808a9299a3aba79f948d80736b61554b4035291f1409000013202c3946535f6c7986929facada093867a6d60534c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4745413a31281d130700000000000013202c3946535f6c7986929facada093867a6d60534c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4745413a31281d1307000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000009141f2935414b555f6a6f7c858f939c9fa4a79f9d989892908f8d8d8c8c8b8b8b8b8a8a8a8d929da9afa396897c706356493d3023160a00000000000000000714202d3a46525e6974808d96a1a9a89f9590847d77726e696a6867666665656565646465717e8b98a4afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000020d17202935414c555e686d79818a91969c9fa4aba5aba49f9fa4aca5aca49f9c95908780786d665c544a3f34281d140a0000000000010d1924303a4653606d7984919ea7ab9f92877c6f685e564f47454141414045474e555c666e7b86929faba89e9184786c605346392d22170b00000013202c3946535f6c7986929faca79a8d8074675a4d4134272c3945515d67707d87939fa3a59e938f82796d685d554b4035291f150b0100000000000000000000000000000007101b252e38404a525a61686d747b8084888b8e90919292929291908e8c8985817c766f6a605b534b423930261c11080000000000000007131f2b36404a52585a60606060606976828f9ca9aa9d9184776a6060606060606060606060606060605f524c443a2f24190d0100000000000000000000000000000714212e3a4754616d7a7e7f8081828485817568584e43372e2c2823282c2f3945515d677783909daaada196877a6d6054473a2d211407000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1724313d4a5764707d8a97a3b0a79a8d8074675a4d4134271a0e010000000000000105090b0b121111100f0e0d0908060300000000000000000000000000000000000000000000000006121f2c3844505c66767b7b7b7b7b7b7b776c605346392d2013060000000000000000000000000000000000000000000000000000000004101c27333a47535f6a74808d95a0a9b2a89f9590837a6f6a605c55514b484642424141423f4446494e53585f666d737e879299a4afa69f93887d70675d51453b30251a0e020013202c3946535f6c7986929facada093867a6d605959595959595959595959595959595959595959595959595959595959595954514b433a2f24180d01000000000013202c3946535f6c7986929facada093867a6d605959595959595959595959595959595959595959595959595959595959595954514b433a2f24180d010000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000020d18242f3a434e585f6a6f7a82898f93999c9fa2aaa29f9d9b9a999998989898979797979a9da4aeafa396897c706356493d3023160a000000000000000005121e2a36424d57606d79849197a1a9a79f969189837f7b78767574737372727271717171717e8b98a4afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000008141e29323b45515d676d7a838e939ea0a8a7a09d99959993939a96999ea0a8a7a099928c81786d665c50443d2f261c1106000000000008131f2c3845515c67727f8b95a0aba39991847a6e68615954514c4e4e4b5153575f676d78839098a2aca0968b7f72665b5044382b1b110600000013202c3946535f6c7986929faca79a8d8074675a4d4134272935414b55606b727f8c919fa3a59e948f837a6d675d51453e31271d12070000000000000000000000000000000009131c262e38404850565e61696e73787c7e818384858686858583817f7c79746f6a625f585049413930271e150a0000000000000000020e19242e3840474c4d535353535c6976828f9ca9aa9d9184776a5e53535353535353535353535353535345413a32281e13080000000000000000000000000000000815212e3b4854616e7b878c8d8e8f909184786a6054473f3a38342e34383a404b55606d7a86929facab9e918578675d5145392c201306000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1724303d4a5763707d8a96a3b0a79a8d8074675a4d4134271a0e010000000000060c111517181f1e1d1c1b1a191615130f0a04000000000000000000000000000000000000000000000713202d3a4653606d7986878787878786796d6053473a2d201407000000000000000000000000000000000000000000000000000000000714202c38444f59626e7c87929fa7b1aaa1969083796d685f58514b45413b3a363035342e34383a3c43474e545c606c717e87939fa5afa49a9185796d60574d42362a1e11050013202c3946535f6c7986929facada093867a6d6666666666666666666666666666666666666666666666666666666666666666605d554b4135291d1104000000000013202c3946535f6c7986929facada093867a6d6666666666666666666666666666666666666666666666666666666666666666605d554b4135291d11040000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000007131d28313c464e585f686d757c82878b8f929897999a9b9c9d9d9d9e9e9e9e9f9f9f9fa3abacb5afa396897c706356493d3023160a0000000000000000020e1a25303b45515d676f7c8591979ea5a8a09e95908b8885838281807f7f7f7e7e7e7e7d7d808d9aa7afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000010d1925303b44515b606d798390959ea5a9a19e95908c8987868687898c91969ea1a9a39f938f81786d60584e42382d22170b000000000004101c2834404b55606d78839099a3aba09690837a706b64605d555b5b555d60636a6e79818e959faaa49a9184796d60544a3f33281c0a0000000013202c3946535f6c7986929faca79a8d8074675a4d413427242f3a434f59626d727f8b9299a2a69f959083796d605a5043392f24180c000000000000000000000000000000000915202b353f474e524c52575e61666a6f7274767878797978787675726f6d66626058534e4846423c332a1f140900000000000000000008121c262e363b3f404646464f5c6976828f9ca9aa9d9184776a5e51464646464646464646464646464639352f2820160c010000000000000000000000000000000714212d3a46535e697884919a9b9c9d96897c6f625a504a464440434044464b515c67717e8b98a3aeaa9b8f827568554b4135291d1104000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1623303d495663707c8996a3afa79a8e8174675b4e4134281b0700000000000911181d2124252c2b2a2928272622211f1b150e060000000000000000000000000000000000000000000713202d3a4653606d79869394949493867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000916232f3c4855616b76828f99a3afaea39891847a6d675e564e454039352f2d2a25282823282c2d31373c424a505a616c727f8b939ea8aca1978c8073695e52463a2d2014070013202c3946535f6c7986929facada09386797272727272727272727272727272727272727272727272727272727272727272726d675d5145392c201306000000000013202c3946535f6c7986929facada09386797272727272727272727272727272727272727272727272727272727272727272726d675d5145392c2013060000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000010c161f2a343c464e565e616b6f757b7f8285888a8c8d8f8f9090919191919292929292999ba3acafa396897c706356493d3023160a00000000000000000009141f2935414b555f6a6f7c858f939c9fa4a79f9d989892908f8d8d8c8c8b8b8b8b8a8a8a8d929da9afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000005111e2a36414c56626d75828f959fa7a8a097928a837f7c7a79797a7c7f848a9297a0a8a59e938d80736a60544a3f33281c0f0300000000000c18232e3944515c666f7c87929fa4a8a09590847d76716d6769676869676d70757b838e939ea7a59f93887d70665c5142382d22170b0000000013202c3946535f6c7986929faca79a8d8074675a4d4134271d28313d47515b636d727e879298a2a79f958e81756c61554b4035291d10040000000000000000000000000000010e1a26313d4751595e5f6060605e585f626568696b6c6c6c6c6b6a686663605c546060606055534d453c31261a0e020000000000000000010a141c242b2f33343939434f5c6976828f9ca9aa9d9184776a5e5144393939393939393939393939392c29241e160d040000000000000000000000000000000005121e2a36424d576774818e9aa6a9a89b8e81756c605c5453514a504a5153555d606d7983919daaaea2988b7e7165584b3e2f24180d01000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000815222f3b4855626e7b8895a9b3a89b8f8275685c4f422e23180c0000000009121b22292e3132393837363534332f2e2b262018100600000000000000000000000000000000000000000713202d3a4653606d798693a0a1a093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000005121e2a36424d5763707d89949fabb2a89f92867c6f685e554c443c342e2924201e1a1b1b171c1f20262b30383f44505a626d75818e96a0aca79f92867b6e6154473b2e2114080013202c3946535f6c7986929facb2a6998c7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f796d6054473a2d211407000000000013202c3946535f6c7986929facb2a6998c7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f796d6054473a2d2114070000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000040d18222a343c444c52596063696e7276797b7d7f81828383848484848585858585868b909ba7afa396897c706356493d3023160a000000000000000000020d18242f3a434e585f6a6f7a82898f93999c9fa2aaa29f9d9b9a999998989898979797979a9da4aeafa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000714202d3946525e68727f8b949ea7a9a09591857e77726f6d686c6d6f72787e859196a0a9a59f93877c6f665b5044382b1f1308000000000007121d2834404a54606a727f8c929ca4a7a096918a827d7a7775747475767a7d818790959ea5a59e938d80736b60544b402f261c11060000000013202c3946535f6c7986929faca79a8d8074675a4d413427161f2c353f49515b636c717d869299a3a79e938a7e71675d5145382c1f1307000000000000000000000000000004111d2a36424e59636a6c6c6c6c6b636059585b5d5e5f5f5f5f5e5d5b59575f626a6c6c6c6c6c5f574d42372b1e1205000000000000000000020a12191f2326272d36434f5c6976828f9ca9aa9d9184776a5e5144372d2d2d2d2d2d2d2d2d2d2d2d201d19130c040000000000000000000000000000000000020e1a25313c4855626f7c88949faaaa9e938a7e726d6662605c545d545c6062676d75808d95a0aca99f92867a6d6154473a2e21140700000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000714212e3a4754616d7a8797a2ada99c90837669544a4034281c1004000006111b242d343a3d3e454444434241403c3b37322a22180e04000000000000000000000000000000000000000713202d3a4653606d798693a0aca093867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000714212d3a46535e6975828f9ca6b0aca0968c7f736a60564c433a3228231d1814120e09060c1012131a1e262e343e48515b606d7984919ea09d95908a807366594d4033261a0d0013202c3946535f6c7986929facb9a89c918c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c877b6e6154483b2e211508000000000013202c3946535f6c7986929facb9a89c918c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c877b6e6154483b2e2115080000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000050e171e252a323a41464f54575e6165666d6f717374757676777777787878787879797e8b98a4afa396897c706356493d3023160a0000000000000000000007131d28313c464e585f686d757c82878b8f929897999a9b9c9d9d9d9e9e9e9e9f9f9f9fa3abacb5afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000005111d2935414c56616e7a85929fa6ada19791837b716c6662605d606163656c717b849197a1ada4999184786c6053463a3025190d0100000000000c18232e39424e58626d73808c929ea1a8a19e948f8a8683828181828386898e93999fa7a39f938f81786d60594f42392e1d140a0000000000131f2c3946525f6c7985929faca79a8e8174675b4e4134281b1a232d373f49515a626b707d87929fa6a59e9184796d6053473a2f24180d010000000000000000000000000006121f2c3845525e6a757979797978706b605c544d5152535352524b515a61696e777979797976695f53463a2d2114070000000000000000000001080e1317191c2936434f5c6976828f9ca9aa9d9184776a5e5144372b202020202020202020201413110d0805030000000000000000000000000000000000000915212e3b47535f6a76828f98a2aea59f92877f78726f6d666a696a666d6f7379818d929da7aca2978d8074685d5246392d20130700000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3aca396897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000713202d3946525d687885929fabaa9e918477665c5144382c1f120600010c18222d363f454a4b5251504f4e4d4c4947433c342a20150a000000000000000000000000000000000000000713202d3a4653606d798693a0a7a093867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000815212e3b4854616e7b87939facb2a89d9184796d60584e443a31292018120d0705020000000306090c151c2328363f45515d676f7d899395908a837e776c605346392d2013060013202c3946535f6c7986929facb9ada39c999999999999999999999999999999999999999999999999999999999999999994877b6e6154483b2e211508000000000013202c3946535f6c7986929facb9ada39c999999999999999999999999999999999999999999999999999999999999999994877b6e6154483b2e2115080000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000020c1720293036393a3e3f44484d5354545c606264666768696a6a6a6b6b6b6b6c6c6c717e8b98a4afa396897c706356493d3023160a00000000000000000000010c161f2a343c464e565e616b6f757b7f8285888a8c8d8f8f9090919191919292929292999ba3acafa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000713202d3946525e6874808d98a2aea69e92857b6e69615a5654525354535b60696e7b85929ea8aba0958a7d7063564c41362a1d1105000000000007121c27303d46515b646e73808a92979fa3a69f9c9992908f8e8e8f9092989b9fa4a69f99928c81786d665c50473d30271d0b020000000000121f2c3945525f6c7885929faba89b8e8275685b4f42302519111b252e373f485059606b717e8b949faba1968b7e7165554b4135291d1104000000000000000000000000000613202c3946535f6c7987868686847d736d665f5751464146454d555c606c717b83868686867b6e6155483b2e22150800000000000000000000000002070b101c2936434f5c6976828f9ca9aa9d9184776a5e5144372b1e13131313130b101316171e1a1613120f0b060300000000000000000000000000000006121f2b37434e58626f7c86929fa4aca399928b837f7b797777767777797c80858e939da4aea49a92857a6d61564c4135291d110500000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d89969f9f9f96897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b0005111d2935414c566a7683909da9ac9f9286796d6053463a2d2013070005111d29343f485056585f5e5d5c5b5a5955534e463c32261b0f030000000000000000000000000000000000000713202d3a4653606d7986939a9a9a93867a6d6053473a2d201407000000000000000000000000000000000000000000000000000005121e2a36424d576673808d99a4afaca0968a7e71665c51463c32281f170e0700000000000000000000030a1117242935414b55606b75818e8a837d78706c655b5044372b1f12050013202c3946535f6c7986929facb9b5ada8a6a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a194877b6e6154483b2e211508000000000013202c3946535f6c7986929facb9b5ada8a6a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a194877b6e6154483b2e2115080000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000008131e29323a4146474b4c4d4e4f51524a50535557595a5c5c5d5d5e5e5e5e5f5f5f65717e8b98a4afa396897c706356493d3023160a0000000000000000000000040d18222a343c444c52596063696e7276797b7d7f81828383848484848585858585868b909ba7afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000714212e3a4754616d7a86929faaab9f948a7d70695e575049474546474950565e69717e8b96a0aca79c8f8275685e5246392d2013070000000000000b151e2b343f49525c646e737e858e92999ea1a8a39f9d9c9a9b9c9d9fa3a9a29f9b948f877f776d665c544a3f352c1e150b000000000000121e2b3845515e6b7884919eaba99c8f827669564c41362a1e11131c252e363e474f59626d76828f9caaa99c908376675d5145392c20130600000000000000000000000000000b1825323e4b5865717e8b9296918780786e69625b524c4550575f676d747e869095948d8074695f53463a2d211407000000000000000000000000000003101c2936434f5c6976828f9ca9aa9d9184776a5e5144372b1e110600080f161c2022232b2723201f1b17120f0b0600000000000000000000000000030f1b26323c47535f6a717e8b939aa2aaa39f95918c8886848483838485898c92979ea5aaa39f93887d70685e52443a3024190d0100000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d899393939393897d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b00010d192430414e5b6774818e9aa7afa399887b6f6255483c2e23180c060615212e3a45505a62656c6b6a69686766625f584e43372b1f13060000000000000000040607080808080808080813202d3a4653606d79868d8d8d8d8d86796d6053473a2d20140808080808080808070604000000000000000000000000000000000714212d3a46535f697784919eabb5ab9d9184786c60544b40342b20160d0500000000000000000000000000061218242f3a434f59616e7b837e78716c65605b53493f33271b0f030013202c3946535f6c7986929facb9afa7a2a09f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f94877b6e6154483b2e211508000000000013202c3946535f6c7986929facb9afa7a2a09f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f94877b6e6154483b2e2115080000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000010d1925303a444c525457595a5b5c5d5e5b5953484a4c4e4f5050515151515252525965727f8c98a5afa396897c706356493d3023160a0000000000000000000000050e171e252a323a41464f54575e6165666d6f717374757676777777787878787879797e8b98a4afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000005121e2a36424d5765727f8c98a2aea99c8f82766c61574d453e3a39393a3f444d57616c7784919eaaa99f93867a6d6154473a2e211407000000000000030c19222d37404a525c636c717a81868d9196989b9c9e9f9f9f9f9e9d9b9997928e89827c736c655c544b42382e231a0c03000000000000101d2a3643505d697683909ca9ab9e918478685e5246392d20140a131c242d353d47505a63707d8998a3ac9f92867a6d6054473a2d21140700000000000000000000000000000b1724313d4a56626d73808c9399938d837b726d615e56515a61696e79818a9298958f82786d60574d42372b1e1205000000000000000000000000000003101c2936434f5c6976828f9ca9aa9d9184776a5e5144372b1e070008111921272c2f3038342f2d2b27221f1c17110a020000000000000000000000000a15202b37434e58616c727f8892989fa3a7a09d99999291909090919298999ea2a9a69f98928b7f726c61564c4132281e13080000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000a1723303d4a5663707d868686868686867d7063564a3d3023170a00091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b0000081825313e4b5864717e8b97a7b1ab988b7e7165554b4034281d1413131624313d4a56626c71787777767574736f6a5f53473b2e211508000000000001070c101314151515151515151515202d394653606c7880808080808080786d6053463a2d201515151515151515151413100c0701000000000000000000000000000815222e3b4855616e7b8896a0acafa3998c7f72665b5042392e22190e0500000000000000000000000000000007131d28313d46535f696e77716c65605b53504941382d22170b000013202c3946535f6c7986929facb9a79d95939393939393939393939393939393939393939393939393939393939393939393877b6e6154483b2e211508000000000013202c3946535f6c7986929facb9a79d95939393939393939393939393939393939393939393939393939393939393939393877b6e6154483b2e2115080000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000005111d2a36414c565e6164656768696a6b68655d534840414243434444444545454d596673808c99a6afa295897c6f6256493c2f23160900000000000000000000020c1720293036393a3e3f44484d5354545c606264666768696a6a6a6b6b6b6b6c6c6c717e8b98a4afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000714202d3a46525e697783909daaada197897d7063594f453b332d2c2d2d333b45505a66737f8c999d9c9c998a7d7063574a3d3024170a0000000000000007101b252e38404a525a61686d747b8084888b8e90919292929291908e8c8985817c766f6a605b534b423930261c1108000000000000000f1b2835424e5b6875818e9ba8ada196877a6e6154473b30251b1413121b232b353f4653606d7986929faca399897c6f6256493c2f23160900000000000000000000000000000915212e3a45505a636e74818e939f9590867e756d68605c606c717b838e939f969083796d665c50453c31261a0e02000000000000000000000000000003101c2936434f5c6976828f9ca9aa9d9184776a5e51442f24180d050f19232b33383c3d45403c3937332d2b28221c140b050000000000000000000000040f1a26313c46505a636d727e868e92999da0a8aba39f9e9d9c9d9e9fa2aaaaa29f9b948f867e726d62594f443a3020160c020000000000000000000000000000000000000000000000000000000000000000000000010b1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000916232f3c4855616b7079797979797979706b6155483c2f23160900091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b00000815212e3b4854616e7b87959faba89b8e8175675c5145392e2521201f202935404b5565717e8584838281807f7c6f6255493c2f22160900000000030b12181d1f20212121212121212121212b3844505b666c747474747474746d665c5044382c21212121212121212121201f1d18120b030000000000000000000000000c1825323f4b5865727e8b98a8b2ac9f92867a6e61544a3f30271d100700000000000000000000000000000000010c161f2a36424d575f616a64605b535049443f382f261b1106000013202c3946535f6c7986929facb9a2958b868686868686868686868686868686868686868686868686868686868686868686867b6e6154483b2e211508000000000013202c3946535f6c7986929facb9a2958b868686868686868686868686868686868686868686868686868686868686868686867b6e6154483b2e2115080000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000713202d3946525e686d71727374767778756f65594d3d323536373737383835404b556774818e9aa7b2a995887b6e6255483b2f2215080000000000000000000008131e29323a4146474b4c4d4e4f51524a50535557595a5c5c5d5d5e5e5e5e5f5f5f65717e8b98a4afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000815212e3b4854616e7b87959fabab9e9184786c6053463e33292120202227333e4956626f7c899191908f8e8d8073665a4d4033271a0d000000000000000009131c262e38404850565e61696e73787c7e818384858686858583817f7c79746f6a625f585049413930271e150a00000000000000000c1926323f4c5965727f8c98a9b2a8978a7d7064564d42362b2621201f1f20232c3845515c667784919eaaab978a7d7164574a3e3124170b000000000000000000000000000005111d29343f48525b606d78818f959f98928b827a706b676d747e8690959d9891847b6e675d544a3f332a1f1409000000000000000000000000000000020f1c2935424f5c6875828f9ba8ab9e9184786b554b4035291d110b16212b353d44484a514d4946443f3938332d261d170e0500000000000000000000000a15202a343e48515b636c717b81878c919597999c9d9e9e9f9f9f9e9d9b9998928e89827b716c625b51473e32281e0e04000000000000000000000000000000000000000000000000000000000000000105090b0b0d0d1825313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000714202c38444f5961636c6c6c6c6c6c6c6361594f44382c20140700091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b00000714202d3a46525e697783909daaab9f9285796d60544b4036312d2c2c2d323a45515d6775818e91908f8e8d897c6f6356493c30231609000000030d151d24292c2d2e2e2e2e2e2e2e2e2e2e2e333f4a545b6067676767676767605c544a3f342e2e2e2e2e2e2e2e2e2e2e2d2c29241d150d030000000000000000000004101d2935404b556875828f9ba8b5a99c908376685e5242382d1e150b000000000000000000000000000000000000040d1a26313b454d53555d57535049443f38332d261d140a00000013202c3946535f6c7986929facada093867979797979797979797979797979797979797979797979797979797979797979797976695e52463a2d201407000000000013202c3946535f6c7986929facada093867979797979797979797979797979797979797979797979797979797979797979797976695e52463a2d2014070000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000714212e3a4754616d7a7e7f8081828485817568584e43372e2c2823282c2f3945515d677783909daaada196877a6d6054473a2d211407000000000000000000010d1925303a444c525457595a5b5c5d5e5b5953484a4c4e4f5050515151515252525965727f8c98a5afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b1824313e4b5764717e8a97a7b1a79a8d8174665b5044382c2017131317202d3a4753606d79868584838281807e7164574b3e3124180b0000000000000000010a141c262e363e444c52575e61666a6f7274767878797978787675726f6d66626058534e443f382f271e150c030000000000000000091623303c4956636f7c8997a2ada89b8f8275695e52463f37312e2d2c2c2d2e343b45515d677885919eaba4978b7e7164584b3e3125180b0000000000000000000000000000010c18222d364044505c666d79829095a09f938f857d746f79818a9298a09992867c6f695e554b42382e21180e03000000000000000000000000000000020f1b2835424e5b6875818e9ba8ab9f928578675d5145392c2017161c27333d474f54565e5a5653504946443f382f2920170d0200000000000000000000030e18222d363f49515a61696e747b8084888b8d8f90919292929291908e8c8985817c766e69615a51493f352c20160c00000000000000000000000000000000000000000000000000000000000000060c111517181a1a1a25313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e0004101c27333d474f55566060606060606056554f473d33271c100400091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000005121e2a36424d5765727f8c98a2aea2988b7e71665c5146423b3a39383a3d444d57606d7a85929e9d9c9b9285796d6053463a2d2013070000010b151f272f35383a3b3b3b3b3b3b3b3b3b3b3b3b3b424a50535a5a5a5a5a5a5a53504a423b3b3b3b3b3b3b3b3b3b3b3b3b3a39352f271f150b0100000000000000000006131f2c3845515d677884919eabb6ac998c7f7266564c412f261c0c030000000000000000000000000000000000000009141f29333b424648504a46443f38332d27221b140b0200000013202c3946535f6c7986929facada093867a6d6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c5e574d42362a1e1205000000000013202c3946535f6c7986929facada093867a6d6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c5e574d42362a1e12050000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000815212e3b4854616e7b878c8d8e8f909184786a6054473f3a38342e34383a404b55606d7a86929facab9e918578675d5145392c20130600000000000000000005111d2a36414c565e6164656768696a6b68655d534840414243434444444545454d596673808c99a6afa295897c6f6256493c2f231609000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000010e1b2734414e5a6774818d9aa7b4aa978a7e7164544a3f33281a0e0606131f2c3845515c676d79787776757474716c6155493d3023170a000000000000000000020a131c242c323a41464d5254585f626568696b6c6c6c6c6b6a686663605c54544e47433c332d261d150c030000000000000000000713202d3a4653606d7985929fabac9f92877b6e615a5147433c3b3a38383a3b40444d56606d7a86939facaa978a7d7164574a3e3124170b00000000000000000000000000000006111b2428343f4a545d676d7a839196a19e979188807b838e929fa29f93877d706a5f574d433a30261c0f0600000000000000000000000000000000010d1a2734404d5a6773808d9aa6ac9f93867a6d6053473a2e262323262c38444f5960636b6762605b5353504a423b33291f1409000000000000000000000006101b242e373f4850575e61696e73777b7e80828484858686858583827f7d79756f6b625f5750483f372d231a0e040000000000000000000000000000000000000000000000000000000000000911181d21242527272727313e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e00000b16212c353d44484a535353535353534a48443d352c21160b0000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b0000020e1a25303b4754616d7a86929fa9aa9e9184796d605b534d4847454546484f565e69727f8c98a2aaa69b8e8275665c5044382c1f1206000007121d27313940454748484848484848484848484848484848484d4d4d4d4d4d4d48484848484848484848484848484848484745403931271d12070000000000000000000714202d3a4753606d7a86939facafa49a897c6f6356493c3023140a0000000000000000000000000000000000000000030d17212931363a3b443e3937332d27221b17110a020000000013202c3946535f6c7986929facada093867a6d60606060606060606060606060606060606060606060606060606060606060605f524d453b30251a0e02000000000013202c3946535f6c7986929facada093867a6d60606060606060606060606060606060606060606060606060606060606060605f524d453b30251a0e020000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000714212d3a46535e697884919a9b9c9d96897c6f625a504a464440434044464b515c67717e8b98a3aeaa9b8f827568554b4135291d11040000000000000000000713202d3946525e686d71727374767778756f65594d3d323536373737383835404b556774818e9aa7b2a995887b6e6255483b2f221508000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000004111d2935414c566a7683909da9aea298887b6e6155483b2d2217080004101c2934404b555c606c6b6a6969686764615a5045392d21140800000000000000000000010a121a202830363b4246484e5361696b6c6c6c68605c545d5b595653514a47433d373127221b140b030000000000000000000006121f2c3844505c6674818e9ba6afa3998e81756c625b534e494746444446484a51575e68727e8b99a4aea398897c6f6256493c2f23160900000000000000000000000000000000091217232e38424b555d686e7b849197a2a19a938d8890959da59d928b7f726b61584e453b31281e140a0000000000000000000000000000000000000c1825323f4b5865727e8b98aaafa49a897c7063544b403631303031363f4854606b7078736f6c6563605b544d453b30251a0e02000000000000000000000009121c252e363e454d52575f62666a6e71737577787879797978777573706d67636059534d453e362d251b110800000000000000000000000000000000000000000000000000000000000009121b22292e313234343434343e4b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000005101a232c33383c3d464646464646463d3c38332c231a10050000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b0000000914202d3946525d6874808d97a2aca0968d80746d615e575554515153555960686e7b86929faaab9f94897c6f63544a3f34281c100300000c18242f39434b5153545454545454545454545454545454545454545454545454545454545454545454545454545454545453514b43392f24180c0000000000000000000915222f3c4855626f7b889aa4afac9f93867a6d6054473a2d211407000000000000000000000000000000000000000000060f171f262a2d2e37312d2b27221b17110b0600000000000013202c3946535f6c7986929facada093867a6d60535353535353535353535353535353535353535353535353535353535353534846423b33291f140900000000000013202c3946535f6c7986929facada093867a6d60535353535353535353535353535353535353535353535353535353535353534846423b33291f1409000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000005121e2a36424d576774818e9aa6a9a89b8e81756c605c5453514a504a5153555d606d7983919daaaea2988b7e7165584b3e2f24180d010000000000000000000714212e3a4754616d7a7e7f8081828485817568584e43372e2c2823282c2f3945515d677783909daaada196877a6d6054473a2d211407000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000713202c3945525d687885929fabac9f9285796c605346392d20130600000c18232f39434b51535f5e5e5d5c5b5a575550483e33281d1105000000000000000000000000080e161e252a30363a3c505d697378797979746d665e564e4c494644403937322b262017110a02000000000000000000000003101c28343f4a54626f7c89949fabab9e938b7e726d625f5856545351505355545c60696e7a85929eabac9f92867a6d6053473a2d201407000000000000000000000000000000000006111c263039434c565e696f7c859299a3a49f9a959da0a79e948d80746d62594f463c33291f160c02000000000000000000000000000000000000091623303c4956636f7c8998a2aeac998c8073665c5146423e3d3c3d4246515b63707d84807c78746f6c665e574d42362a1e11050000000000000000000000000a131c242c333b42464d5355575f626466696a6b6b6c6c6c6b6a686663605d55544f4c4841382f241b130900000000000000000000000000000000000000000000000000000000000006111b242d343a3d3e4040404040404b5864717e8b97a4b1a79a8e8174675b4e4134281b0e000008131e28313a414547494949494949494745413a31281e13080000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b00000005111d2935414c56616d7a85929fa5a89d928c7f756e696461605d5c6062656b6f7a839198a2aea3999083766b605442382e23170c000004101d2935404b555d606161616161616161616161616161616161616161616161616161616161616161616161616161616161605d554b4035291d100400000000000000000b1724313e4a5764717d8a97acb6aa9e918477675d5145392c20130600000000000000000000000000000000000000000000060d141a1e21222a24201f1b17110b06000000000000000013202c3946535f6c7986929facada093867a6d60534746464646464646464646464646464646464646464646464646464646463b3a36302921170d0200000000000013202c3946535f6c7986929facada093867a6d60534746464646464646464646464646464646464646464646464646464646463b3a36302921170d02000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000020e1a25313c4855626f7c88949faaaa9e938a7e726d6662605c545d545c6062676d75808d95a0aca99f92867a6d6154473a2e211407000000000000000000000815212e3b4854616e7b878c8d8e8f909184786a6054473f3a38342e34383a404b55606d7a86929facab9e918578675d5145392c201306000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000714212d3a4754606d7a8797a2adaa9d918477655b5044372b1f1205000007121d273139404547525251504f4e4d4b49453e362c22170c0000000000000000000000000000050c13191f252a3845525f6b788586868681786d685f584f473f38342e2b27201b150b0600000000000000000000000000000c17232e384754606a76828f99a3aea59f92877f756f6a666261605c5c606164666d727b839097a1ada59c8f8275675d5145392c1f13060000000000000000000000000000000000000a141e27313a444d575f6a707d879299a49f9f9f9fa9a0958f82786d605b51473e342a21170d04000000000000000000000000000000000000000714202d3a4753606d7985929facab9e9185796d605a534d4b4a494a4d535b626d76828f8d8984807c786e695e52463a2d201407000000000000000000000000020e1925303b444c525f6060606060605d5c5d5e5f5f5f5f5e5d5b6060606060605a58534a41362b2014080000000000000000000000000000000000000000000000000000000000010c18222d363f454a4b4d4d4d4d4d4d4d5864717e8b97a4b1a79a8e8174675b4e4134281b0e00010d19242f3a434c52545656565656565654524c433a2f24190d0100091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000000010d1924303a46525e68727e8b939ea7a49c918c827b75716e6d67666d6f71767d849195a0aaa69f92877c6f63594f4330261c1106000006131f2c3845515d676d6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6d675d5145392c1f130600000000000000000c1926323f4c5965727f8c98a5b2a99c8f837669554b4135291d1104000000000000000000000000000000000000000000000003090e1214151d1713120f0b060000000000000000000013202c3946535f6c7986929facada093867a6d6053473a393939393939393939393939393939393939393939393939393939392e2d2a251f170f050000000000000013202c3946535f6c7986929facada093867a6d6053473a393939393939393939393939393939393939393939393939393939392e2d2a251f170f0500000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000915212e3b47535f6a76828f98a2aea59f92877f78726f6d666a696a666d6f7379818d929da7aca2978d8074685d5246392d201307000000000000000000000714212d3a46535e697884919a9b9c9d96897c6f625a504a464440434044464b515c67717e8b98a3aeaa9b8f827568554b4135291d1104000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000815222f3b4855626e7b8895a9b3a99c8f82766953493f33271b0f030000010b151f272f34383a464544434241413e3d39332c241a100600000000000000000000000000000002080d141a26323f4c5965727f8c93938e827a6f6a615951444039302820180f0a0300000000000000000000000000000006111c2b38434e58626f7c87929fa5afa399928b817c76726f6e6d66666d6e7074797f859095a0a9a89e93897d7063554b4035291d1004000000000000000000000000000000000000020c151f28323b454e58606b717e8793939393939393969083796d665c50493f352c22190f05000000000000000000000000000000000000000006131f2c3845515c6775828f9ba7ada1978c80736c615f5757565657575f616d727f8b949a96918d89857b6e6154473b2e21140800000000000000000000000005111e2a36414c565e6c6c6c6c6c6c6c6a675f555253534f5960636c6c6c6c6c6c67645c53483c3024180b000000000000000000000000000000000000000000000000000000000005111d29343f485056585a5a5a5a5a5a5a5a64717e8b97a4b1a79a8e8174675b4e4134281b0e0004111d2935414c565d6062626262626262605d564c4135291d110400091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b0000000008131e2a36414c56626d75818e959fa6a49c948f86827e7b7a7979797b7e83899196a0a7a59e948c7f736b6054473d321e150a0000000714202d3a4753606d797b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b796d6053473a2d20140700000000000000000d192633404c5966737f8c99a6b2a89b8e8175685b4e422f24180d010000000000000000000000000000000000000000000000000002050708110b06050300000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d21201e1a140d05000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d21201e1a140d050000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000006121f2b37434e58626f7c86929fa4aca399928b837f7b797777767777797c80858e939da4aea49a92857a6d61564c4135291d11050000000000000000000005121e2a36424d576774818e9aa6a9a89b8e81756c605c5453514a504a5153555d606d7983919daaaea2988b7e7165584b3e2f24180d01000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000091623303c4956636f7c8996a2afa89b8e8175685b4e422d22170b00000000030d151d23292c2d3938373636353431302d28221a120800000000000000000000000000000000000003091825313e4a56626d75818f969490847c706b625b514a423a322a21191106000000000000000000000000000000000f1b27323d47535f6a727f8c939da5aba39f938e87827f7c7a797879797b7d81858b9297a0a7a8a0968f82756b605443392f24180c0000000000000000000000000000000000000000030d162029333c464f59616c727f8686868686868686847b6e675d544a3f372d231a100700000000000000000000000000000000000000000004101c2934404b5563707d8a95a0aca99f93887e746e69666463636366696e757f87939fa6a19e9a908377695e52463a2d2014070000000000000000000000000714202d3946525e68767979797979797771675b4f464854606b70797979797979746e64584c4033271a0d01000000000000000000000000000000000000000000000000000000000915212e3a45505a6265676767676767676767717e8b97a4b1a79a8e8174675b4e4134281b0e000613202c3945525d686d6f6f6f6f6f6f6f6d685d5245392c20130600091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b00000000020d1925303a44515b606d798390949da5a69e98928f8b8887858586888b90949ea1a8a39f938e82786d60594f43352b210c030000000a1723303d4a5663707d87878787878787878787878787878787878787878787878787878787878787878787878787878787877e7164574a3e3124170b00000000000000000d1a2734404d5a6773808d9aa6b3a79a8d8074675a4d4134271a07000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d2020202020202020202020202020202020202020202020202020201514120e090200000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d2020202020202020202020202020202020202020202020202020201514120e0902000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000030f1b26323c47535f6a717e8b939aa2aaa39f95918c8886848483838485898c92979ea5aaa39f93887d70685e52443a3024190d0100000000000000000000020e1a25313c4855626f7c88949faaaa9e938a7e726d6662605c545d545c6062676d75808d95a0aca99f92867a6d6154473a2e21140700000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000a1724303d4a5763707d8a96a3b0a79a8d8174675a4e4134271b060000000000030b12181c1f202c2b2b2a2928272423211d17100800000000000000000000000000000000000000000916222e3a46515b606d7a8491989691867d726d605c544c443c332b2317110a0200000000000000000000000000000a16202b37434e58606c77818e939fa2aaa59e9a938f8c898786858586888a8d92979ea1a9a59e9691847a6d61594f4431271d1207000000000000000000000000000000000000000000040e17212a343d47505a626d727979797979797979786e695e554b42382e251b110800000000000000000000000000000000000000000000000c18232f394653606c7883909aa4afa49a938b817b767371706f7072767b818b9399a4afa99f948a7e7164574d42362a1e11050000000000000000000000000814212e3b4754616e7a86868686868683776a5d5144495663707d8686868686868074675a4e4134271b0e01000000000000000000000000000000000000000000000000000000000b1724313d4a56626d71737373737373737373737e8b97a4b1a79a8e8174675b4e4134281b0e000714212d3a4754606d7a7c7c7c7c7c7c7c7a6d6054473a2d21140700091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000000000008131e28323f45515d676d7a828e939da0a7a39f9b97949892929895989c9fa6a7a099928d81786d665c50463d3223190f000000000a1723303d4a5663707d899494949494949494949494949494949494949494949494949494949494949494949494949494948a7d7164574a3e3124170b00000000000000000e1b2734414e5a6774818d9aa7b3a69a8d8073675a4d4034271a0d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20141313131313131313131313131313131313131313131313131308070502000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d201413131313131313131313131313131313131313131313131313080705020000000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000a15202b37434e58616c727f8892989fa3a7a09d99999291909090919298999ea2a9a69f98928b7f726c61564c4132281e13080000000000000000000000000915212e3b47535f6a76828f98a2aea59f92877f78726f6d666a696a666d6f7379818d929da7aca2978d8074685d5246392d20130700000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000a1724313d4a5764707d8a97a3b0a79a8d8074675a4d4134271a0e01000000000001070c1013141f1f1e1d1c1b1a181714110c0600000000000000000000000000000000000000000006121e29353f45525d686f7c86929f9892877f746d665d564d453d3528231c140c0300000000000000000000000000040f1b26323c44505b656d78818b92989fa4aca49f9c9995949892929894979a9ea1a9a7a09d938f847b6e685d52473d331f150b0100000000000000000000000000000000000000000000050f18222b353e48515b62656c6c6c6c6c6c6c6c6b615e574d433a30261c130900000000000000000000000000000000000000000000000007121f2b3844505b66707d88939fa5aca49f938e8783807e7d7c7d7f82878e939fa4aba9a1978f82766c6155453b30251a0e020000000000000000000000000814212e3b4754616e7a87939393939084776a5d5144495663707c89939393938d8174675a4e4134271b0e01000000000000000000000000000000000000000000000000000000000b1825323e4b5865717f80808080808080808080828f9ca9b4a79a8e8174675b4e4134281b0e000a1723303d4a5663707d898989898989897d7063564a3d3023170a00091623303c4956636f7c8996a2aca4978a7d7164574a3e3124170b0000000000020c16202935404b555d686d78818991959c9fa3aba4aaa29f9fa2aaa4aba49f9c95908780786d665c544a3f342b211007000000000a1723303d4a5663707d8996a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1978a7d7164574a3e3124170b00000000000000000e1b2835414e5b6874818e9ba7b3a6998c807366594d4033261a0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20140d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0b0a080500000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20140d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0b0a0805000000000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000040f1a26313c46505a636d727e868e92999da0a8aba39f9e9d9c9d9e9fa2aaaaa29f9b948f867e726d62594f443a3020160c0200000000000000000000000006121f2b37434e58626f7c86929fa4aca399928b837f7b797777767777797c80858e939da4aea49a92857a6d61564c4135291d110500000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000b1724313e4a5764717d8a97a4b0a69a8d8073675a4d4034271a0d010000000000000000040607131211100f0e0e0b0a08050000000000000000000000000000000000000000000000010d18232935414c565f6a727e8b939e99938c81786d685f574f473f342e261e150c03000000000000000000000000000a152027333f49535c666d747f868e939a9ea1a8a7a5a2aaa29f9fa2aaa3a7aaa29f9b959089827a6e695e564c41352b210d03000000000000000000000000000000000000000000000000061019232c363f4951565860606060606060605e54524d453b31281e140a01000000000000000000000000000000000000000000000000030f1c28333f4a54606b73808d939da4aca59d99938f8c8a89898a8c8f93999ea5aea79f9791857b6e615a504533291f1409000000000000000000000000000814212e3b4754616e7a87949f9f9d9084776a5d5144495663707c89969f9f9a8d8174675a4e4134271b0e0100000000000000000000000000000000000000000000000000000003101d293643505c6976828d8d8d8d8d8d8d8d8d8d8f949eaab4a79a8e8174675b4e4134281b0e000a1723303d4a5663707d899595959595897d7063564a3d3023170a00091623303c4956636f7c89969f9f9f978a7d7164574a3e3124170b000000000000050e18242f3a434c565d666d747d848a8f92999a9c9e9e9f9f9e9d9c9a99938f8a837c736c665c544a42382e22190f00000000000a1723303d4a5663707d89969f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f978a7d7164574a3e3124170b00000000000000000e1b2835414e5b6874818e9ba7b3a6998d8073665a4d4033271a0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d201a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a171714110c050000000000000013202c3946535f6c7986929facada093867a6d6053473a2d201a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a171714110c0500000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000a15202a343e48515b636c717b81878c919597999c9d9e9e9f9f9f9e9d9b9998928e89827b716c625b51473e32281e0e0400000000000000000000000000030f1b26323c47535f6a717e8b939aa2aaa39f95918c8886848483838485898c92979ea5aaa39f93887d70685e52443a3024190d0100000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000a1724313d4a5764707d8a97a3b0a79a8d8074675a4d4134271a0e010000000000000105090b0b121111100f0e0d09080603000000000000000000000000000000000000000000000000070d19242f3a434e58626d75818e95a09f928e827a6e69605951443f3830271e150b00000000000000000000000000040b17222d38414a545c606d727b81878d9196989a9c9d9e9f9f9f9e9d9d9b9898928e8a837d756d685e574d443a3023190f000000000000000000000000000000000000000000000000000007111a242d373f464a4c5353535353535353524846423b33291f160c0200000000000000000000000000000000000000000000000000000b17222d38424f59606c78818d929ea0a8aba49f9c9997969696999c9fa4abaaa29f9590857c6f695e53483e3420170d02000000000000000000000000000814212e3b4754616e7a8794a1aa9d9084776a5d5144495663707c8996a3a79a8d8174675a4e4134271b0e0100000000000000000000000000000000000000000000000000000003101d293643505c6976838f9a9a9a9a9a9a9a9a9a9c9ea6b0b4a79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a2a2a296897d7063564a3d3023170a00091623303c4956636f7c8993939393938a7d7164574a3e3124170b0000000000000007131d28313a444c545c606b70787e82868a8d8f9192929291918f8d8a86827d786f6a605b544a423930261c100700000000000a1723303d4a5663707d899393939393939393939393939393939393939393939393939393939393939393939393939393938a7d7164574a3e3124170b00000000000000000e1b2734414e5a6774818d9aa7b3a69a8d8073675a4d4034271a0d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d27272727272727272727272727272727272727272727272727272727272423211c17100800000000000013202c3946535f6c7986929facada093867a6d6053473a2d27272727272727272727272727272727272727272727272727272727272423211c171008000000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000030e18222d363f49515a61696e747b8084888b8d8f90919292929291908e8c8985817c766e69615a51493f352c20160c0000000000000000000000000000000a15202b37434e58616c727f8892989fa3a7a09d99999291909090919298999ea2a9a69f98928b7f726c61564c4132281e13080000000000000000000000000000000203101d2a3643505d69768390908376695d5043362a1d100302000000000000000a1724303d4a5763707d8a96a3b0a79a8d8074675a4d4134271a0e010000000000060c111517181f1e1d1c1b1a191615130f0a04000000000000000000000000000000000000000000000008131e28313c46515b606d79839198a29d948f847b706b625b504a423930271d12070000000000000000000000000006111b262f38424a505b62696e757b8084888b8d8f90929292929191908e8b8985817d78706b605d564d453b32281e110700000000000000000000000000000000000000000000000000000008121b252d343a3e3f4646464646464646453b3a36302921170d0400000000000000000000000000000000000000000000000000000006111c262f3d44505b666d78808a91969d9fa7a7a9a6a4a3a2a3a5a9a7a8a09e98928c837b6f6a5f574d42362c220e0500000000000000000000000000000814212e3b4754616e7a8794a1a99d9084776a5d5144495663707c8996a3a79a8d8174675a4e4134271b0e0100000000000000000000000000000000000000000000000000000003101d293643505c6976838f9ca6a6a6a6a6a6a6a6a9aab0acaca79a8e8174675b4e4134281b0e000a1723303d4a5663707d8996a3aca396897d7063564a3d3023170a00091623303c4956636f7d868686868686867e7164574a3e3124170b00000000000000010c161f28323a424b515960666c71767a7d808284858686858483807d7a75706c666058504a423930271e140a0000000000000a1723303d4a5663707d86868686868686868686868686868686868686868686868686868686868686868686868686868686867e7164574a3e3124170b00000000000000000d1a2734404d5a6773808d9aa6b3a79a8d8174675a4e4134271b09000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a34343434343434343434343434343434343434343434343434343434343431302d28221a1208000000000013202c3946535f6c7986929facada093867a6d6053473a34343434343434343434343434343434343434343434343434343434343431302d28221a12080000000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000006101b242e373f4850575e61696e73777b7e80828484858686858583827f7d79756f6b625f5750483f372d231a0e04000000000000000000000000000000040f1a26313c46505a636d727e868e92999da0a8aba39f9e9d9c9d9e9fa2aaaaa29f9b948f867e726d62594f443a3020160c0200000000000000000000000000050a0f12101d2a3643505d69768390908376695d5043362a1d10120f0a0500000000000a1623303d495663707c8996a3afa79a8e8174675b4e4134281b0700000000000911181d2124252c2b2a2928272622211f1b150e0600000000000000000000000000000000000000000000010c161f2a343f45515d676e7c86929fa59f9691857d726d605c544b42392e23180c00000000000000000000000000000a141d2630383f4451575f61696e73787b7e80828485858685858483817f7c7a75706d666059524c443b332920160c000000000000000000000000000000000000000000000000000000000009131b23292e31323939393939393939382e2d2a251f170f0500000000000000000000000000000000000000000000000000000000000a141d28333f4a545c666d747d848b9095979a9c9e9f9f9f9f9e9d9a9896918c857f786e695f584e453b31241a100000000000000000000000000000000814212e3b4754616e7a87949c9c9c9084776a5d5144495663707c89969c9c9a8d8174675a4e4134271b0e0100000000000000000000000000000000000000000000000000000003101d293643505c6976838f9c9f9f9f9f9f9f9f9f9f9f9f9f9f9f9a8e8174675b4e4134281b0e000a1723303d4a5663707d89969f9f9f96897d7063564a3d3023170a000915222f3b4854606b6f79797979797979716c6155493c3023170a0000000000000000040d162028303940454f545b6064686e7174767778797978777673716e6863605b544e443f382f271e150c020000000000000916232f3c4855616b707979797979797979797979797979797979797979797979797979797979797979797979797979797979716c6155493c3023170a00000000000000000d192633404c5966737f8c99a6b2a89b8f8275685c4f4230251a0e020000000000000000000000000000000000000000000000000000010203000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d605347404040404040404040404040404040404040404040404040404040404040403e3c39332c241a10050000000013202c3946535f6c7986929facada093867a6d605347404040404040404040404040404040404040404040404040404040404040403e3c39332c241a100500000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000009121c252e363e454d52575f62666a6e71737577787879797978777573706d67636059534d453e362d251b110800000000000000000000000000000000000a15202a343e48515b636c717b81878c919597999c9d9e9e9f9f9f9e9d9b9998928e89827b716c625b51473e32281e0e04000000000000000000000000010910161b1e20202a3643505d69768390908376695d5043362a20201e1b161009010000000815222f3b4855626e7b8895a9b3a89b8f8275685c4f422e23180c0000000009121b22292e3132393837363534332f2e2b262018100600000000000000000000000000000000000000000000040d18222935404b555f6a717e8a939da7a09792877f746d665c544b4034281c100400000000000000000000000000020b151e262e343f454d53575f6266696e71747677787979797877767472706d6763605c544f45413a322921170e040000000000000000000000000000000000000000000000000000000000010911181e2224252d2d2d2d2d2d2d2d2b21201e1a140d05000000000000000000000000000000000000000000000000000000000000020b17222d38424a545c606b70797e83878b8d8f919292929291908e8b88847f7a736d665f574e463c33291f12090000000000000000000000000000000814212e3b4754616e7a878f8f8f8f8f84776a5d5144495663707c898f8f8f8f8d8174675a4e4134271b0e0100000000000000000000000000000000000000000000000000000003101d293643505c6976838f939393939393939393939393939393938e8174675b4e4134281b0e000a1723303d4a5663707d899393939393897d7063564a3d3023170a0007131f2c38434f5960636c6c6c6c6c6c6c64615a5045392d211408000000000000000000040d161e272e343d424a5053565e616467696b6b6c6c6b6a696764615e5653504a423c332d261d150c03000000000000000714202c38444f5961636c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c64615a5045392d21140800000000000000000b1825313e4b5864717e8b97a4b1a99d9083766a574d42362a1e1105000000000000000000000000000000000000000000000003080c0e0e0f0b0707040100000000000000000000000013202c3946535f6c7986929facada093867a6d60534d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4a49453e362c22170c0000000013202c3946535f6c7986929facada093867a6d60534d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4a49453e362c22170c00000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000a131c242c333b42464d5355575f626466696a6b6b6c6c6c6b6a686663605d55544f47423c332d241b1309000000000000000000000000000000000000030e18222d363f49515a61696e747b8084888b8d8f90919292929291908e8c8985817c766e69615a51493f352c20160c000000000000000000000000010a131b21272b2d2d2d3643505d69768390908376695d5043362d2d2d2b27211b130a0100000714212e3a4754616d7a8797a2ada99c90837669544a4034281c1004000006111b242d343a3d3e454444434241403c3b37322a22180e0400000000000000000000000000000000000000000000071018242f39434e58616c74818e95a0a9a299928b80786d665c5145382c1f13060000000000000000000000000000030c151c2328333c42464d5355575f626567696a6b6c6c6c6b6a6a686563605d5553504a423d35302820170f050000000000000000000000000000000000000000000000000000000000000000060d1216181920202020202020201f1514120e0902000000000000000000000000000000000000000000000000000000000000000006111c262f38424a505961666d71767b7e818384858686858483817f7b77736d68605c544d453c342a21170d000000000000000000000000000000000714212d3a4754606d7a8283838383838174675b4e414855626f7c8283838383827f7265584c3f3225190c0000000000000000000000000000000000000000000000000000000003101d293643505c6976828686868686868686868686868686868686868174675b4e4134281b0e000a1723303d4a5663707d868686868686867d7063564a3d3023170a00030f1b27323d474f545660606060606060575550483e33281c110400000000000000000000040c151d23282f383f44464c5254575a5c5e5f5f5f5e5e5c5a5754524c46443f382f28221c140b03000000000000000004101c27333d474f55566060606060606060606060606060606060606060606060606060606060606060606060606060606060575550483e33281c110400000000000000000a1723303d4a5663707d8996aab4ab9f928578695e52463a2d20140700000000000000000000000000000000000000000001090f14181a1b1c181413110d08050100000000000000000013202c3946535f6c7986929facada093867a6d605a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a575550483e33281c110500000013202c3946535f6c7986929facada093867a6d605a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a575550483e33281c1105000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000010a121a212930363c4247484e5355596063676a6b6c6b6a666260585653514b48433d37312a211b1209010000000000000000000000000000000000000006101b242e373f4850575e61696e73777b7e80828484858686858583827f7d79756f6b625f5750483f372d231a0e0400000000000000000000000009131c252c33373939393943505d69768390908376695d50433939393937332c251c130900000713202d3946525d687885929fabaa9e918477665c5144382c1f120600010c18222d363f454a4b5251504f4e4d4c4947433c342a20150a000000000000000000000000000000000000000000000007121d28313c46505a606d7983909893939393928d82796d6053463a2d201307000000000000000000000000000000030a1117212a31373c4247484d5355585a5c5d5f5f5f5f5e5e5d5b585653514b46443f383029241e160e05000000000000000000000000000000000000000000000000000000000000000000000106090b0c1313131313131313120807050200000000000000000000000000000000000000000000000000000000000000000000000a141d2630383f444f545c6064696e7174767778797978787674726f6a66605d56514a423c332a22180f05000000000000000000000000000000000713202c3945525d686d767676767676746f64584c4047535f6a6f767676767676726d62564a3e3125180b00000000000000000000000000000000000000000000000000000000020f1c2835414e5a667076797979797979797979797979797979797979746f64594c4033271a0d000916232f3c4855616b7079797979797979706b6155483c2f23160900000a16212b353d434849535353535353534a49453e362c22170c000000000000000000000000030b12181d262d33383b4146474a4d4f515253535251504d4a4746413b38332d261d17110a02000000000000000000000b16212c353d44484a53535353535353535353535353535353535353535353535353535353535353535353535353535353534a49453e362c22170c0000000000000000000815222e3b4855616e7b8898a2aeada297877b6e6154473b2e21140a0000000000000000000000000000000000000000030b131a20242728292521201d1913110d08020000000000000013202c3946535f6c7986929facada093867a6d6767676767676767676767676767676767676767676767676767676767676767676764615a5045392d21140800000013202c3946535f6c7986929facada093867a6d6767676767676767676767676767676767676767676767676767676767676767676764615a5045392d211408000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000000080f171f252a31373e4850585f626b6f737778797877736f6a615f574f473d38322b2620180f090000000000000000000000000000000000000000000009121c252e363e454d52575f62666a6e71737577787879797978777573706d67636059534d453e362d251b110800000000000000000000000005101b252e373e434646464646505d69768390908376695d504646464646433e372e251b10050005111d2935414c566a7683909da9ac9f9286796d6053463a2d2013070005111d29343f485056585f5e5d5c5b5a5955534e463c32261b0f0300000000000000000000000000000000000000000000010c161f2a343e45515c676e7b8586868686868686867a6e6154473b2e2114080000000000000000000000000000000000060f181f262b31373a3c4247484b4d4f51525253525251504e4c494745403a38342e261e19130c0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b141e262e343e424a5153575e616467696b6c6c6c6c6b6a6765625f5854524c444039302a21181006000000000000000000000000000000000004111d2935414c565d6069696969696967645c53483c434e585f6269696969696965625b51463a2e22160900000000000000000000000000000000000000000000000000000000000d1926323e49545e66696c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c67645d53483c3024180b000714202c38444f5961636c6c6c6c6c6c6c6361594f44382c2014070000040f19232b32383b3c464646464646463e3c39332c241a10050000000000000000000000000000070b141c22282b3036393b3e414344454646454443403e3b3936302b28221c140b0600000000000000000000000005101a232c33383c3d46464646464646464646464646463f44464f4f4f4f4f4f4f46444046464646464646464646464646463e3c39332c241a10050000000000000000000613202d394653606c7985929facb3a9968a7d7063574a3d31261b0f01000000000000000000000000000000000000000b151d252b30343536312d2c2924201d19130c0701000000000013202c3946535f6c7986929facada09386797373737373737373737373737373737373737373737373737373737373737373737373716c6155493c3023170a00000013202c3946535f6c7986929facada09386797373737373737373737373737373737373737373737373737373737373737373737373716c6155493c3023170a000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000050d15202a333e47505a616a6f767c808385868583807c756e6960594f473d32291f150e060000000000000000000000000000000000000000000000000a131c242c333b42464d5355575f626466696a6b6b6c6c6c6b6a686663605d55544f47423c332d241b1309000000000000000000000000000a16212c3740494f5353535353535d69768390908376695d5353535353534f4940372c21160a00010d192430414e5b6774818e9aa7afa399887b6f6255483c2e23180c060615212e3a45505a62656c6b6a69686766625f584e43372b1f13060000000000000000000000000000000000000000000000040d18222934404b555f696e78797979797979797976685e5246392d201407000000000000000000000000000000000000060e141a1f262b2e31373a3b3e41434445464646454443413f3d3a39352f2b28231c140c0802000000000000000000000000000000000000000000000000030608090f1112131313110f0c0707050100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c141c232830394044464d5254585a5c5e5f5f5f5f5e5d5b5855534e4745413a342e271e180f06000000000000000000000000000000000000010d1924303a444c52545c5c5c5c5c5c5b58534a41363c464e53555c5c5c5c5c5c585651493f34291e120600000000000000000000000000000000000000000000000000000000000915212d38424c545a5c6060606060606060606060606060606060605b59534a41362b2014080004101c27333d474f55566060606060606056554f473d33271c100400000007101921272c2f303939393939393931302d28221a120800000000000000000000000000000000020a11171c1f252a2d2e3134363838393938373634312e2d2a251f1c17110a02000000000000000000000000000008111a21272c2f3039393939393939393939392d38424a50535c5c5c5c5c5c5c53514a42392e393939393939393939393931302d28221a12080000000000000000000006121f2b3844505b667683909ca9b3a79a8d807467584e43372b1e1308000000000000000000000000000000000000060f1d272f373c4041423e3a39352f2d29251e18120b030000000013202c3946535f6c7986929facb3a79a8d8080808080808080808080808080808080808080808080808080808080808080808080807e7164574a3e3124170b00000013202c3946535f6c7986929facb3a79a8d8080808080808080808080808080808080808080808080808080808080808080808080807e7164574a3e3124170b000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000020e1a26313c454f59616c707c82898d90929291908d88827b706b60594f443b3025190e02000000000000000000000000000000000000000000000000010a121a212930363c4247484e5355585a5c5d5e5f5a61646c6c6c6c66635c5248433d37312a211b120901000000000000000000000000000f1b27333e49525a5f60606060606069768390908376696060606060605f5a52493e33271b0f0000081825313e4b5864717e8b97a7b1ab988b7e7165554b4034281d1413131624313d4a56626c71787777767574736f6a5f53473b2e211508000000000000000000000000000000000000000000000000060f18232f39434d575f616c6c6c6c6c6c6c6c6c6c5e564c41362a1e11050000000000000000000000000000000000000003090e151a1e21262b2e2f32343637383939393837373532302d2c29241f1c17110a02000000000000000000000000000000000000000000000000030a0f1215151c1e1f1f201f1e1c181413110d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171e272e34383b4246484b4e50515253535251504e4c4847433c39353028231c150c06000000000000000000000000000000000000000008131e28323a4145475050505050504e4c4841382f343c4347485050505050504c4a463f372d23180d01000000000000000000000000000000000000000000000000000000000005101b26303a42494e505353535353535353535353535353535353534e4c4841382f251a0f0300000b16212c353d44484a535353535353534a48443d352c21160b0000000000070f161b1f22232d2d2d2d2d2d2d2423211c17100800000000000000000000000000000000000000060b0f14191e20212427292b2c2c2c2b2b29272421201e19140f0b0600000000000000000000000000000000000810161c2023232d2d2d2d2d2d2d2d2d2d28333f4a545b6068686868686868605c544a4034282d2d2d2d2d2d2d2d2d2d2423211c1710080000000000000000000000030f1c28333f4a546774808d9aaab4aa9d9184776a5f53473a2f24190b0200000000000000000000000000000000030e18212f3941484d4e4f4b4745413a39353029241d150d0300000013202c3946535f6c7986929facb9a99d928d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8174675b4e4134281b0e01000013202c3946535f6c7986929facb9a99d928d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8174675b4e4134281b0e010000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000006121e2b37424d57616c707e868f949a9c9998999c99938f857d706b60564d42362a1f14080000000000000000000000000000000000000000000000000000080f171f252a31373a3c4247484b4d4f4a505b636c7079797979736e63574b3f322b2620180f09000000000000000000000000000000121e2b37434f5a646c6c6c6c6c6c6c6c7683909083766c6c6c6c6c6c6c6c645a4f43372b1e1200000815212e3b4854616e7b87959faba89b8e8175675c5145392e2521201f202935404b5565717e8584838281807f7c6f6255493c2f2216090000000000000000000000000000000000000000000000000007121d27313c454d53555f60606060606060605f524c443b3025190e0200000000000000000000000000000000000000000003090e12151a1e21222527292a2c2c2c2c2b2b2a282523201f1d1812100b0600000000000000000000000000000000000000000000000000060e151b1f2122282a2b2c2c2c2b292521201d19130d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c151c23282c30363a3b3e414344454646454543413f3c3a37312c29241e18120b03000000000000000000000000000000000000000000020c1620283035393a43434343434341403c362f262a32373b3c4343434343433f3e3a342d251b1107000000000000000000000000000000000000000000000000000000000000000a141e2830383e414346464646464646464646464646464646464641403c362f261d130800000005101a232c33383c3d464646464646463d3c38332c231a1005000000000000040a0f13151620202020202020171714110c050000000000000000000000000000000000000000000003080d111414171a1c1e1f20201f1e1d1a171414110e08030000000000000000000000000000000000000000050b101416172020202020202020201f2b3844505b666c757575757575756d665c5144382c1f202020202020202020171714110c05000000000000000000000000000b17222d3d4a5763707d8a98a2aeaca095887c6f62564c4135291d140a000000000000000000000000000000000915202a33414b53595b5c5854524c4746413a352f271f150b01000013202c3946535f6c7986929facb9aea49d9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a8e8174675b4e4134281b0e01000013202c3946535f6c7986929facb9aea49d9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a8e8174675b4e4134281b0e010000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000000000814212e3a47535f69707e87929899938f8c8b8c90949e9792877d6f695e52463b3025190e020000000000000000000000000000000000000000000000000000050d141a1f262b2e31373a3b3e444c545c606d727e868686868073665a4d4033271a150e060000000000000000000000000000000013202d3946535f6c767979797979797979839090837979797979797979766c5f5346392d201300000714202d3a46525e697783909daaab9f9285796d60544b4036312d2c2c2d323a45515d6775818e91908f8e8d897c6f6356493c3023160900000000000000000000000000000000000000000000000000010b151f2a333c4246485253535353535353535346413b32291e14080000000000000000000000000000000000000000000000000206090e121415181a1c1e1f1f201f1f1e1d1b19161413100c0703000000000000000000000000000000000000000000000000000006101820262b2e2f3537383939393835322e2d2a251e19130c04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181c1f252a2d2e3134363839393939383734322f2e2b26201d19130c07000000000000000000000000000000000000000000000000040e161e24292c2d3636363636363433302b251d20262b2e2f36363636363632312e29231b13090000000000000000000000000000000000000000000000000000000000000000030c161e262d3235363939393939393939393939393939393939393433302b251d140b010000000008111a21272c2f3039393939393939302f2c27211a110800000000000000000003070909131313131313130b0a08040000000000000000000000000000000000000000000000000000010507080b0e10111213131211100d0b080705020000000000000000000000000000000000000000000000000407090a131313131313131313202d394653606c7881828282828281796d6053463a2d201313131313131313130b0a08040000000000000000000000000000000614202d3a4753606d7985929facb1a79a8d8073685d52453b2f261b1106000000000000000000000000000006101a26313c45535d64686964605d5654524c45403931271d1207000013202c3946535f6c7986929facacacaea9a7a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a69a8e8174675b4e4134281b0e01000013202c3946535f6c7986929facacacaea9a7a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a69a8e8174675b4e4134281b0e010000000000000000020714202d3a4753606d7a8693a0acac9f9286796c5f5346392c2013070502000000000000000000000000000000000006121f2b37434e58626e7b869299959187827f7f80838991969992857b6e61564d41362a1e110500000000000000000000000000000000000000000000000000000002090e151a1e21262b343d454d565d666d747f87929892857b6e6154473b2e21140903000000000000000000000000000000000013202d394653606c798686868686868686909494908686868686868686796c605346392d2013000005121e2a36424d5765727f8c98a2aea2988b7e71665c5146423b3a39383a3d444d57606d7a85929e9d9c9b9285796d6053463a2d2013070000000000000000000000000000000000000000000000000000030d18212a31373a3b4546464646464646463b3936302920170d02000000000000000000000000000000000000000000000000000000020608080b0e1011121313131211100e0c0a07060400000000000000000000000000000000000000000000000000000000030e18222a31373a3c42444546464644423f3a39363029241e160e0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c10141a1e20212527292b2c2c2c2c2b2a282522211f1b15110d08020000000000000000000000000000000000000000000000000000040c13191d2021292929292929282724201a13151b1f21222929292929292525221e18110901000000000000000000000000000000000000000000000000000000000000000000040c141b212628292d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d282724201a130b020000000000000810161c2023232d2d2d2d2d2d2d2323201c161008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060606060606060713202d3a4653606d79868f8f8f8f8f867a6d6053473a2d201407060606060606060000000000000000000000000000000000000006131f2c3845515c6775828f9ba8b2ab9f92857a6d60574d41382d2217110a020000000000000000000001081018222b37424e57646f7475716d6865615e56514b43392f24180c000013202c3946535f6c7986929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9a8e8174675b4e4134281b0e01000013202c3946535f6c7986929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9a8e8174675b4e4134281b0e0100000000000003090e1214202d3a4753606d7a86939f9f9f9f9286796c5f5346392c201514120e09030000000000000000000000000000000815212e3a47535f6a75828f989691837c76737273767d849197978e8174685e5246392d2014070000000000000000000000000000000000000000000000000000000000050c151d2328363e464f575f686d78818c939993877d70695e52463a2d20140700000000000000000000000000000000000013202d394653606c7986939393939393939c9f9f9c9393939393939386796c605346392d20130000020e1a25303b4754616d7a86929fa9aa9e9184796d605b534d4847454546484f565e69727f8c98a2aaa69b8e8275665c5044382c1f1206000000000000000000000000000000000000000000000000000000060f181f262b2d2e3939393939393939392e2d2a251e170e0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a15202a343c4347484f5152525352514f4b4746413a35302820191108000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004090e121415181b1d1e1f20201f1e1d1b191515120f0a0401000000000000000000000000000000000000000000000000000000000002080d1113141d1d1d1d1d1d1b1a18140f080a0f1215151d1d1d1d1d1d191816120d07000000000000000000000000000000000000000000000000000000000000000000000000030a1015191c1d2020202020202020202020202020202020201b1a18140f08010000000000000000050b1014161720202020202020171614100b05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050a0d0f101313100f0d0a0500000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986939b9b9b93867a6d6053473a2d201407000000000000000000000000000000000000000000000000000004101c2934404b5563707d8a96a1acaea2988c7f73695e53493f3327221b140b090603000001000205080d1319222a343c47535f6a7481827e7a76716d68605d554b4035291d10040013202c3946535f6c79869293939393939393939393939393939393939393939393939393939393939393939393939393939393938e8174675b4e4134281b0e01000013202c3946535f6c79869293939393939393939393939393939393939393939393939393939393939393939393939393939393938e8174675b4e4134281b0e010000000000050d141a1e21212d3a4753606d7a8693939393939286796c5f5346392d2d21211e1a140d0500000000000000000000000000000915222f3c4855626f7b88949e91847a6f6a6665666b6f7b85929e93877b6e6154473b2e21140800000000000000000000000000000000000000000000000000000000060e161e272e344048505960696e7a828e939f948c7f736b60574d42362a1e110500000000000000000000000000000000000013202d394653606c7986939f9f9f9f9f9fa9ababa99f9f9f9f9f9f9386796c605346392d20130000000914202d3946525d6874808d97a2aca0968d80746d615e575554515153555960686e7b86929faaab9f94897c6f63544a3f34281c100300000000000000000000000000000000000000000000000000000000060e141a1e21222c2d2d2d2d2d2d2d2d21201e19140d05000000000000000000000000000000000000000000000000000000000000000000000406070a0d0f11121313131212100e0c090606030000000000000000000000000000000000000000000000030f1b26313c464e53555b5d5e5f5f5f5e5c5854524c46413a322b231a1208000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080b0e10111213131212100e0c0908060300000000000000000000000000000000000000000000000000000000000000000000010407071010101010100e0d0b08030000030608091010101010100c0b09060100000000000000000000000000000000000000000000000000000000000000000000000000000005090d0f101313131313131313131313131313131313130e0d0b08030000000000000000000000000407090a131313131313130a090704000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a11161a1c1d20201d1c1a16110a030000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d798693a0a8a093867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000c18232f394653606c7884919ea8b2aa9f92867b6e655b50443e332d261d1a1312100b060e090e1214191e2429343c46505a626e7b878f8b86827e7a766d675d5145392c1f13060013202c3946535f6c7987868686868686868686868686868686868686868686868686868686868686868686868686868686868686868174675b4e4134281b0e01000013202c3946535f6c7987868686868686868686868686868686868686868686868686868686868686868686868686868686868686868174675b4e4134281b0e0100000000050f171f252a2d2e393a4753606d798686868686868687796c5f53463939392e2d2a251f170f05000000000000000000000000000d192633404c5966737f8c99968a7d70685f5858596069717e8b98998b7e7165584b3e3225180b000000000000000000000000000000000000000000000000000000070f18202830394045525a616b6f7b838f949d968f82776c60594f453b30251a0e0200000000000000000000000000000000000013202d394653606c7986939facacacacacb6b7b7b6acacacacac9f9386796c605346392d201300000005111d2935414c56616d7a85929fa5a89d928c7f756e696461605d5c6062656b6f7a839198a2aea3999083766b605442382e23170c00000000000000000000000000000000000000000000000000000000000003090e1214151f20202020202020201414110e0802000000000000000000000000000000000000000000000000000000000000000001070c10131416191c1d1f1f20201f1e1d1b191613120f0b0600000000000000000000000000000000000000000006121f2b37434e585f62686a6b6c6c6c6b6865615e56524c443d352c241a110800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d151c2226292a2d2d2a2926221c150d0400000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d798693a0aca093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000007121f2b3844505b66727f8b96a1acaea2988f82776c605a50443f382f2b26201f1c171b1a1b1a1e2124292f353e464e58626c75828f9999928f8b8682796d6053473a2d20140700121f2c3845525e6a757979797979797979797979797979797979797979797979797979797979797979797979797979797979797979746f64594c4033271a0d010000121f2c3845525e6a757979797979797979797979797979797979797979797979797979797979797979797979797979797979797979746f64594c4033271a0d01000000030d17212931363a3b464645515c67767979797979797979756a5e52464646463b3a36312921170d030000000000000000000000020f1c2935424f5c6875828f9b9184786b61564e4c4f57606d7a86929a8e8174675b4e4134281b0e0100000000000000000000000000000000000000000000000000071019212a323a434b515b636c717d8591959f9991847a6d655b50473d33291f14090000000000000000000000000000000000000013202d394653606c7986939facb9b9b9b9c3c4c4c3b9b9b9b9ac9f9386796c605346392d2013000000010d1924303a46525e68727e8b939ea7a49c918c827b75716e6d67666d6f71767d849195a0aaa69f92877c6f63594f4330261c1106000000000000000000000000000000000000000000000000000000000000000002050708121313131313131313080705020000000000000000000000000000000000000000000000000000000000000000040a0f12181c1f202326282a2b2c2c2c2c2b2a282523201f1c17110f0a030000000000000000000000000000000000000815212e3a47535f6a6f7577787979797775726d68615d564f473e362c231a1006000000000000000000000000000000000000000000000000000000000000000000000000000000020507080b0e111112131312110f0c0908060300000000000000000406070b0f1213131211100e0c0b09060100000000000000000000000000000000000000000000000000020507080b0d0f1112131313131211100e0b08080602000000000000000000000000000000000000000000000000000000000000000000050a0d0f101313100f0d0a0500000000000000000000000000000000000000000000000000000000050a0d0f101313100f0d0a050000000000000000000000000000000000000000000000000000000000050a0d0f101313100f0d0a0500000000000000000000000000000000000000000000000000030d161f272d32353639393635322d271f160d03000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986939f9f9f93867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000030f1c28333f4a54606d7984919ea6b0aa9e948c7f726c615a5049413c37312d2b2823272728252a2d2f353a41454f585f6a717e8b939ea39f9c998f8275675d5145392c1f130600111d2a36424e59636a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c67645d53483c3024180b000000111d2a36424e59636a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c67645d53483c3024180b0000000009141f29333b4246485353534b555c6c6c6c6c6c6c6c6c6c6a635953535353534846423b33291f1409000000000000000000000004101d2a3743505d6a7683909c8f827669594f443f45515d677784919c8f8275695c4f4236291c0f03000000000000000000000000000000000000000000000000040f19222b333c444c555c606d737e869297a09f92877c6f685d53493f352b20170d020000000000000000000000000000000000000013202d394653606c7986939facb9c6c6c6cfd0d0cfc6c6c6b9ac9f9386796c605346392d20130000000008131e2a36414c56626d75818e959fa6a49c948f86827e7b7a7979797b7e83899196a0a7a59e948c7f736b6054473d321e150a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f161b1d23292c2d303335373839393939383635322f2d2b28221c1b150e0903000000000000000000000000000000000915222f3c4855626f7c81848585868584827e7a746d68605950483e352c22180d0300000000000000000000000000000000000000000000000000000000000000000000000003090e121415181b1d1e1f201f1f1d1b191515120f0a0401000000070c101313181c1e1f201f1e1d1b181815120d060000000000000000000000000000000000000000000205090e121415181a1c1e1f1f20201f1f1e1c1a181514120e09060300000000000000000000000000000000000000000000000000000000030a11161a1c1d20201d1c1a16110a03000000000000000000000000000000000000000000000000030a11161a1c1d20201d1c1a16110a0300000000000000000000000000000000000000000000000000030a11161a1c1d20201d1c1a16110a0300000000000000000000000000000000000000000000000a151f2831383e4243464643423e3831281f150a000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d79869393939393867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000b17222d3845515c67717e8b949ea9b0a69f92877e716c605b534d47423c3a38342e34343531363a3b41454c5159616a6f7c86929fa5aea99f93877c6f62554b4035291d1004000e1a26313d4751595e5f606060606060606060606060606060606060606060606060606060606060606060606060606060606060605b59534a41362b2014080000000e1a26313d4751595e5f606060606060606060606060606060606060606060606060606060606060606060606060606060606060605b59534a41362b201408000000020e1a25313b454d535f6060606060605d606060606060605f5e5c6060606060605f534d453b31251a0e020000000000000000000004101d2a3743505d6a7683909c8f827669594f454045515d677784909c8f8275695c4f4236291c0f030000000000000000000000000000000000000000000000000a16212b343d454d565e676d757f8a9298a19e938b7f726a60564c41382d23190e05000000000000000000000000000000000000000013202d394653606c7986939facb9c6d2d2dcdddddcd2d2c6b9ac9f9386796c605346392d201300000000020d1925303a44515b606d798390949da5a69e98928f8b8887858586888b90949ea1a8a39f938e82786d60594f43352b210c0300000000000000000000000000000000000000000000000000010406070a0d0f11121313131212100f0d0a070704010000000000000000000000000000000000000000000000000000000000000000060b151b21272c2f34383a3d40424445464646454543413f3c3938332d2b26201a150b060000000000000000000000000000000a1724313d4a5764707d8a9091929292918f8b86807a706b615a50473e342a1f150b01000000000000000000000000000000000000000000000000000000000000000000040a0f141a1e212125282a2b2c2c2c2b2a282622211f1b15110d08030b12181c1f2025292b2c2c2c2b2a272524221d18110901000000000000000000000000000000000003090e12141a1e21212527292a2b2c2c2c2c2c2a29272522211e1a15120f0a0400000000000000000000000000000000000000000000000000040d151c2226292a2d2d2a2926221c150d0400000000000000000000000000000000000000000000040d151c2226292a2d2d2a2926221c150d040000000000000000000000000000000000000000000000040d151c2226292a2d2d2a2926221c150d0400000000000000000000000000000000000000000005111c27313a434a4e505353504e4a433a31271c11050000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7886868686868686796d6053473a2d2014070000000000000000000000000000000000000000000000000000000006111c2834404b55616c75828f97a2abafa39992877e726c655f57534d4946443f41414141424246484c52555d606b707c859298a2aeada2978f82756a5f5343392f24180c00000915202b353f474e52535353535353535353535353535353535353534d545b60666c6c6c6c6c6a5c544a53535353535353535353534e4c4841382f251a0f030000000915202b353f474e52535353535353534d575e6c6c6c6c6c6c6c6a665f55535353545e66696c6c6c6c6c6c6c5e574d5353535353534e4c4841382f251a0f0300000005121e2a36424d575e6c6c6c6c6c6c6c6a665f55535353545e66696c6c6c6c6c6c6c5e574d42362a1e120500000000000000000000020f1c2935424f5c6875828f9b9184786b61574f4d5058606d7a86929a8e8174675b4e4134281b0e010000000000000000000000000000000000000000000000030f1b27323d464e575f686d79818c929fa3a0958e81756d62584e443a2f261b110800000000000000000000000000000000000000000013202d394653606c7986939facb9c6d2dfe9eaeae9dfd2c6b9ac9f9386796c605346392d2013000000000008131e28323f45515d676d7a828e939da0a7a39f9b97949892929895989c9fa6a7a099928d81786d665c50463d3223190f00000000000000000000000000000000000000000000000004080d111314171a1c1d1f1f20201f1f1d1c1a171413110d080400000000000000000000000000000000000000000000000000000000020a111720262b323839404547494c4f50525253535251504e4c4946443f3837312b262017110a02000000000000000000000000000a1724313d4a5764707d8a979e9f9f9f9e9b98928d847d716c61594f463c31271d12070000000000000000000000000000000000000000000000000000000000000000060c161b1f252a2d2e31343738393939383735322f2e2b26201d19130c151d23282c2d32353839393838363432312e29231b130900000000000000000000000000000003090e141a1e21252a2d2e31343637383939393938373634322f2e2b26211f1b150f0a0400000000000000000000000000000000000000000000030d161f272d32353639393635322d271f160d030000000000000000000000000000000000000000030d161f272d32353639393635322d271f160d03000000000000000000000000000000000000000000030d161f272d32353639393635322d271f160d0300000000000000000000000000000000000000000a16222d38434c545a5d60605d5a544c43382d22160a00000000000000000000000000000000000000000000000000000000000000000000000006121f2c3844505c66767979797979797976675c5145382c1f130600000000000000000000000000000000000000000000000000000000000c18232e3943505a616e7b859299a3afaba39992877f776e69615f575553504a4e4e4d4e4f4d5354565d60676d747d859297a1aaaea49e92857b6e61584e4331271d12070000040f19242d353d424546464646464646464646464646464646424651575f666c72797979797975665c50444646464646464646464641403c362f261d130800000000040f19242d353d424546464646464646535e69767979797979797771665b4f464e5a66707679797979797976695e5346464646464641403c362f261d1308000000000714212d3a46535e69767979797979797771665b4f464e5a66707679797979797976695e53463a2d21140700000000000000000000000d192633404c5966737f8c99968a7d706960595a5a616a727e8b98998b7e7265584b3f3225180c00000000000000000000000000000000000000000000000007131f2c38434e5860696e7a828e939ca4a2989183796d605b51463d32281d140a0000000000000000000000000000000000000000000013202d394653606c7986939facb9c6d2dfecf6f6ecdfd2c6b9ac9f9386796c605346392d20130000000000020c16202935404b555d686d78818991959c9fa3aba4aaa29f9fa2aaa4aba49f9c95908780786d665c544a3f342b21100700000000000000000000000000000000000000000000070c1013191d20212426292a2b2c2c2c2c2b2a28262421201d1913100c0701000000000000000000000000000000000000000000000000040b141c222832373d43484b515356595b5d5e5f5f5f5f5e5d5b585653504a47433c373127221b140b030000000000000000000000000a1724313d4a5764707d8a979e9ea2a9a9aaa39f9691877e716b61584e43392f23180c030000000000000000000000000000000000000000000000000000000000030a111720272b31363a3b3e4144444546464544423f3c3b37322c29241e191e272e34383a3e42454646454443413f3d3a342d251b110600000000000000000000000000060b151a1f262a2d31363a3b3e4042444546464646454443413e3b3a37312e2b26201b150c070000000000000000000000000000000000000000000a151f2831383e4243464643423e3831281f150a00000000000000000000000000000000000000000a151f2831383e4243464643423e3831281f150a0000000000000000000000000000000000000000000a151f2831383e4243464643423e3831281f150a00000000000000000000000000000000000000010d1a26323e4a545e66696c6c69665e544a3e32261a0d01000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a545c6c6c6c6c6c6c6c6c6c5c554b4034291c1004000000000000000000000000000000000000000000000000000000000007121d27303e46525e69707d87929fa4acaba399938c827b746e696562605c545b5a5a5b5c575e6164686d737a808a9297a1a9afa59d928a7e70695e52463c321f150b0100000008121b242b31363839393939393939393939393930353e444d525b62696e787f8686868687796d6053463a3939393939393939393433302b251d140b01000000000008121b242b31363839393939393b4854616e7b86868686868683776a5d50444f5c6976828686868686867b6e6154483b393939393433302b251d140b01000000000815212e3b4854616e7b86868686868683776a5d50444f5c6976828686868686867b6e6154483b2e21150800000000000000000000000916222f3c4955626f7c88949e91847b706b6766676c717c85929f93877b6e6154473b2e2114080000000000000000000000000000000000000000000000000915222e3b4854606a6f7b8490949ea5a49f92867c6e675d51493f342b20160b020000000000000000000000000000000000000000000013202d394653606c7986939facb9c6d2dfececececdfd2c6b9ac9f9386796c605346392d2013000000000000050e18242f3a434c565d666d747d848a8f92999a9c9e9e9f9f9e9d9c9a99938f8a837c736c665c544a42382e22190f000000000000000000000000000000000000000000060b12181c1f24292c2d31333537383939393938373533302d2c29241f1c18120c0700000000000000000000000000000000000000000000040d161d262d333c43474f54555c606366686a6b6c6c6c6c6b69686562605b54534e47423c332d261d150d0300000000000000000000000a1724313d4a5764707d8a92919297979c9fa6a9a19992877d706a5f554b4034291f140900000000000000000000000000000000000000000000000000000000030c151c232832373b4246484b4e505152535252504e4c4847433c39352f28222b30394045464b4f5152535251504e4b4a463f372d23180d0100000000000000000000020a11171f262b31363a3b4246484b4d4f51525253535252514f4d4b4847423c3a37312b262018120b0300000000000000000000000000000000000005111c27313a434a4e505353504e4a433a31271c110500000000000000000000000000000000000005111c27313a434a4e505353504e4a433a31271c11050000000000000000000000000000000000000005111c27313a434a4e505353504e4a433a31271c1105000000000000000000000000000000000000030f1c2935424e5a66707679797670665a4e4235291c0f030000000000000000000000000000000000000000000000000000000000000000000000000c17232e38424a505f606060606060605f514b43392f23180c000000000000000000000000000000000000000000000000000000000000000b151e2a36424d56606b717f8b939aa3ababa49f948f86817b76726f6d6668686767686869696e71757a7f858d929ea2a9afa59e938d80746c61574d42342a200d03000000000009121920262a2c2c2d2d2d2d2d2d2d2d2429323a414650565e616d727b828c929992877e71665c5044382b2d2d2d2d2d2d2d2d282724201a130b020000000000000009121920262a2c2c2d2d2d2e3b4854616e7b87939393939083776a5d50444f5c6976828f93939393877b6e6154483b2e2d2d2d282724201a130b0200000000000815212e3b4854616e7b87939393939083776a5d50444f5c6976828f93939393877b6e6154483b2e21150800000000000000000000000815212e3b47535f6a76828f989691847d77747374777e859297978e8174695e52463a2d2014070000000000000000000000000000000000000000000000000916232f3c4956626f7c85919693939393928a7e716a5f554b40372d22190e04000000000000000000000000000000000000000000000013202d394653606c7986939facb9c6d2dfdfdfdfdfdfd2c6b9ac9f9386796c605346392d20130000000000000007131d28313a444c545c606b70787e82868a8d8f9192929291918f8d8a86827d786f6a605b544a423930261c100700000000000000000000000000000000000000020a11171c23282c2f35393a3d4042444546464645454342403d3a39352f2c29231d18120b0300000000000000000000000000000000000000030c161f282f383f444e54596063676d707375777879797978787674726f6c66625f58534d443f382f271f150d03000000000000000000000a1724313d4a5764707d87858585868a8f949fa2aaa39992867c6f675c51453b31261a0e030000000000000000000000000000000000000000000000000000030d151e262e343d43474d5354585b5d5e5f5f5f5e5d5b5955534e4745413a3129343c424b5153585c5e5f5f5f5e5d5a585651493f34291d1206000000000000000000040c141c232831373b4246484d5354585a5c5d5e5f5f5f5f5f5d5c5a5855534d4847433c373228231d150c0500000000000000000000000000000000000a16222d38434c545a5d60605d5a544c43382d22160a0000000000000000000000000000000000000a16222d38434c545a5d60605d5a544c43382d22160a000000000000000000000000000000000000000a16222d38434c545a5d60605d5a544c43382d22160a00000000000000000000000000000000000003101d2a3643505d69768286868276695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000000000006111c2630383f4453535353535353535345403931271d120700000000000000000000000000000000000000000000000000000000000000030c1925303b444f59626d727f889299a1a8afa69f99928e88837f7c797775747474747576787b7e82868c92979da4adaba39f938e81786d605a50453b3022180e00000000000000080f151a1d1f202020202020191f282f353e444c525a61696e767f8690949a93877e716c61544a3f34281c202020202020201b1a18140f0801000000000000000000080f151a1d1f202020212e3b4854616e7b87949f9f9d9083776a5d50444f5c6976828f9c9f9f94877b6e6154483b2e2120201b1a18140f08010000000000000815212e3b4854616e7b87949f9f9d9083776a5d50444f5c6976828f9c9f9f94877b6e6154483b2e211508000000000000000000000006131f2b37434e58626f7c86929a96918984818081848a92979892857a6e61564d42362a1e11050000000000000000000000000000000000000000000000000d1a2633404d59667380868686868686868680746c61574e43392f251b100700000000000000000000000000000000000000000000000013202d394653606c7986939facb9c6d2d2d2d2d2d2d2d2c6b9ac9f9386796c605346392d201300000000000000010c161f28323a424b515960666c71767a7d808284858686858483807d7a75706c666058504a423930271e140a00000000000000000000000000000000000000050b141c22282e34383a4145474a4d4f50525253535252504f4d4a4745413a38342f28231d150c070000000000000000000000000000000000000b151e283139424a50585f626b6f75797d7f828385858686858483817f7c79746f6a625f575049413931271f150b010000000000000000000714202d3a4753606d79797878787a7d828a9298a1a9a2989083796d60574d42362a20150a00000000000000000000000000000000000000000000000000010b151f2730383f444e54575e6164676a6b6c6c6c6b6a6865625f5854524c433f353c464e545c6065686b6c6c6b6b696765625b51463a2e2215090000000000000000050e161e262e343c42474d5355575e616467696a6b6c6c6c6c6b6a696765625f5755534e47433c342e271e170e05000000000000000000000000000000010d1a26323e4a545e66696c6c69665e544a3e32261a0d0100000000000000000000000000000000010d1a26323e4a545e66696c6c69665e544a3e32261a0d010000000000000000000000000000000000010d1a26323e4a545e66696c6c69665e544a3e32261a0d01000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000000000000000000000000000000000000000000a151e262e343846464646464646464638342f271f150b01000000000000000000000000000000000000000000000000000000000000000009141f29323d47505a626d727e8791969ea5acaba39f9a95908c8885848281818081828385878b8f92989fa2a9ada8a099928d81786d665c50483e33291f1006000000000000000004090e1112131313130f19222b313a41454f565e616c717b828b92989a93887e716c615a5042382e23170b1313131313130e0d0b080300000000000000000000000004090e1112131315212e3b4854616e7b8794a1aa9d9083776a5d50444f5c6976828f9ca9a194877b6e6154483b2e2115130e0d0b080300000000000000000815212e3b4854616e7b8794a1aa9d9083776a5d50444f5c6976828f9ca9a194877b6e6154483b2e2115080000000000000000000000030f1b26323c47535f6a717e8892989e95908d8d8e91969e9792867d6f685e52443b3025190e020000000000000000000000000000000000000000000000000c1925323f4b57636d737979797979797979746e645a50453c31281d12090000000000000000000000000000000000000000000000000013202d394653606c7986939facb9c6c6c6c6c6c6c6c6c6c6b9ac9f9386796c605346392d20130000000000000000040d162028303940454f545b6064686e7174767778797978777673716e6863605b544e443f382f271e150c02000000000000000000000000000000000000070f171d262d33394044464c525457595c5d5e5f5f5f5f5e5d5b595754524c47454039342e271e1810090000000000000000000000000000000007121d273039434b545b606a6f767c8185898c8e90919292929291908e8b8985817c756e69605b534b433931271d120700000000000000000006131f2c3845515c676d6d676b676d70767e869297a1aaa0958c8073695f53463c31261a0f0300000000000000000000000000000000000000000000000007121d273139424a50586062696e71747777787979787775726f6a66605d56504540454e5860666d717578797978777674726d62564a3d3124180b00000000000000050e17202830383f444d53575f6166696e71737577787979797978777674716e6967625f58544e454039302920170e050000000000000000000000000000030f1c2935424e5a66707679797670665a4e4235291c0f0300000000000000000000000000000000030f1c2935424e5a66707679797670665a4e4235291c0f030000000000000000000000000000000000030f1c2935424e5a66707679797670665a4e4235291c0f03000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000000000000030c151c23282c3939393939393939392c29231d150d03000000000000000000000000000000000000000000000000000000000000000000020d17202b353f48515b626c717d848e939da0a7abaca79f9d989892908f8e8d8d8e8f909298979c9fa3aaada9a29f96918780786c665c544a3f362c21170d00000000000000000000000104060606000a16212b343d434b515961686d757e858f949f9f93887f716c625a50483e30261c110600060606060601010000000000000000000000000000000000010406060815212e3b4854616e7b8794a1a99d9083776a5d50444f5c6976828f9ca9a194877b6e6154483b2e211508010100000000000000000000000815212e3b4854616e7b8794a1a99d9083776a5d50444f5c6976828f9ca9a194877b6e6154483b2e2115080000000000000000000000000a15202b37434e58616c717e868f949a9d9a999a9d99938f857d706b60564d4132291f1409000000000000000000000000000000000000000000000000000a16232f3b47525b63666c6c6c6c6c6c6c6c67645c52483e332a1f160c000000000000000000000000000000000000000000000000000013202d394653606c7986939facb9b9b9b9b9b9b9b9b9b9b9b9ac9f9386796c605346392d2013000000000000000000040d161e272e343d424a5053565e616467696b6b6c6c6b6a696764615e5653504a423c332d261d150c0300000000000000000000000000000000000007101921292f383f444a5153565d606466686a6b6c6c6c6c6b6a686663605d5653514b454039302a221a12090000000000000000000000000000040d18232e39434b555d666c737c83898e9298999b9d9e9f9f9f9f9e9c9b9897918d88827b736c655d554b43392f24180e05000000000000000004101c2934404b555c60605c555d60646c717c859298a3a79f92867b6e61584e43372b1f14090000000000000000000000000000000000000000000000020c18242f39434b545c606a6f757b7e8183848586858583817f7c78726d68625a514b4d57606a6f797e82848586858483817f7265584b3f3225180c000000000000030c172029323a424a50575f62696e73777b7e8082848585868685858482807e7b78736f6a625f58514b423a322920170c030000000000000000000000000003101d2a3643505d69768286868276695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768286868276695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768286868276695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000000000000000000000000000000000000000000030a11171c1f2d2d2d2d2d2d2d2d2d1f1c18120b030000000000000000000000000000000000000000000000000000000000000000000000050e19232d363f49515a626b6f7a818990959c9fa6a9aca9aaa29f9d9b9b9a9a9b9b9c9fa2aaa8acaaa9a19e97928c847c736c665b544a42382e241a0f0500000000000000000000000000000000030f1b27323d464e555d606b707a818a92979f9b918b7f726d625a50483e362c1e140a0000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b87949c9c9c9083776a5d50444f5c6976828f9c9c9c94877b6e6154483b2e211508000000000000000000000000000815212e3b4854616e7b87949c9c9c9083776a5d50444f5c6976828f9c9c9c94877b6e6154483b2e211508000000000000000000000000040f1b26313c46505a616c717c82898d90929291908d88827b706b60594f443b3020170d020000000000000000000000000000000000000000000000000007131e2a35404952575960606060606060605a58524a40362c21180d04000000000000000000000000000000000000000000000000000013202d394653606c7986939facacacacacacacacacacacacacac9f9386796c605346392d201300000000000000000000040c151d23282f383f44464c5254575a5c5e5f5f5f5e5e5c5a5754524c46443f382f28221c140b03000000000000000000000000000000000000071119222b333b424a50545c6064686d70737577787979797878767573706d6864605c55514b423c342c241b1209000000000000000000000000010c161f2834404b555d676d78808790949b9fa2a9a29e9c9b9a9a9b9d9fa3a9a19e9a948f877f776d675d554b40352920170d0200000000000000000c18232f39434b515353514b51535a616a6f7c86929fa7a3988e81756a5f53473b30251a0e01000000000000000000000000000000000000000000000a141e2935404b555d666d747c82878b8e909192929291908e8c88847f7a716d605d55535f696f7c848b8f9192929291908d86796c605346392d20130000000000000b151e29323a444c545c60696e757b8084878b8d8f90919292929292908f8d8b8884807c766f6a605c544c443b32291e150b0000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000000000000000000060c101220202020202020202013100c07010000000000000000000000000000000000000000000000000000000000000000000000000008111b242d373f48505960686d757d83898f94989c9fa3aba7a8aaa8a7a7a7a7a8a9a9a7a5a8a09e9a97918c8580796f6b605b544a423830261c1108000000000000000000000000000000000007131f2c38434e5860676d747d858e939fa29b918b7f726d625a50483f362d241a0c020000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b878f8f8f8f8f83776a5d50444f5c6976828f8f8f8f8f877b6e6154483b2e211508000000000000000000000000000815212e3b4854616e7b878f8f8f8f8f83776a5d50444f5c6976828f8f8f8f8f877b6e6154483b2e211508000000000000000000000000000a15202a343e48505a616a6f767c808385868583807c756e6960594f473d32291f0e050000000000000000000000000000000000000000000000000000020d19242e3740474b4d53535353535353534d4c4740382f241a0f0600000000000000000000000000000000000000000000000000000013202d394653606c7986939f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9386796c605346392d20130000000000000000000000030b12181d262d33383b4146474a4d4f515253535251504d4a4746413b38332d261d17110a02000000000000000000000000000000000000060f19232b343d454d545b60666d71767a7d8082838585868685858382807d7a76716d67605c544e463e362d241b1108000000000000000000000008131e28313a45515c676d79828d92999fa6a39f9a97928f8e8d8e8e9092989b9fa3a69e99928c82796d675d51453f32291e1408000000000000000007121d27313940454747454045475058606a727f8c959faa9f93877c6f62574d42362a1d120700000000000000000000000000000000000000000006111c26303845515d676d7880898f93999a9d9e9f9f9f9e9d9b9896918c857e756d675d58626e7b8691969b9e9f9f9e9e9c9386796c605346392d2013000000000007121d27303a444c565d666d737b81878c9196979a9c9d9e9f9f9f9f9e9d9c9a9896918d88827c746d665e564c443b30271d120700000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000000000000000000000003061313131313131313130604000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b252d363f474f565e616b70787d82878b909299989a9c9d9e9f9f9f9e9e9d9c9b999696918d89857f7a736d676059504a42382f261e140a0000000000000000000000000000000000000915222e3b4854606a6f79818a91979ea39c918c7f726d625b51483f362d241b1208000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8283838383828074675a4e414d5a6673808283838383827a6e6154473b2e211408000000000000000000000000000814212e3b4754616e7a8283838383828074675a4e414d5a6673808283838383827a6e6154473b2e21140800000000000000000000000000030e18222c363e4850585f626b6f737778797876736f6a615e574f473d342b20170d0000000000000000000000000000000000000000000000000000000007121c252e353b3f404646464646464646413f3c362f261d12080000000000000000000000000000000000000000000000000000000013202d394653606c798693939393939393939393939393939393939386796c605346392d201300000000000000000000000000070b141c22282b3036393b3e414344454646454443403e3b3936302b28221c140b0600000000000000000000000000000000000000030c18212b353d464f575e666c71797e82868a8c8f90919292929291908e8c8a86837e79726d665f5850483f362d231a0e05000000000000000000010d19242f3a43505a606d79828f949fa3a7a099928e898583818181828386898e92999fa7a39f948f82796d605b51443b3025190e0200000000000000010b151f272f34383a3a3835393e464e58606c7883909da6a49a8e8175695e5246392f23180c0000000000000000000000000000000000000000000b17232e3842505a606d79828d929b9fa4ababa39f9d9c9b9c9d9fa19e97928b82796d685f6a76828f98a1a8aaa39f9995949386796c605346392d201300000000000c18232e39434c565e686d7880868e93999da0a8aba39f9d9d9c9c9c9d9fa2aaa8a19e9a948f8780786d685e564c42392e23180c03000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009131b242d353d444c525960656c70767b7f8386898b8d8f9091929292929190908e8c8a8784807c79726d67605d554f443f382f261d140c020000000000000000000000000000000000000916232f3c4956626f7c848e9393939393918c7f726d625b51493f362d241b120900000000000000000000000000000000000000000000000000000000000000000714202d3946525e686e767676767676746e64584c404b58636e737676767676766e685e5246392d201407000000000000000000000000000714202d3946525e686e767676767676746e64584c404b58636e737676767676766e685e5246392d201407000000000000000000000000000006101a242c363e464e53596063676a6b6c6b6a66625f58534d453d352b22190e0500000000000000000000000000000000000000000000000000000000000a131c242a2f323339393939393939393433302b241d140b000000000000000000000000000000000000000000000000000000000013202d394653606c798686868686868686868686868686868686868686796c605346392d20130000000000000000000000000000020a11171c1f252a2d2e3134363838393938373634312e2d2a251f1c17110a0200000000000000000000000000000000000000000a151e2a333d474f5960696e787e848a8f9299999b9d9e9f9f9f9f9e9d9b9999928f8b857f796f6a615a50483f352b20170d02000000000000000004111d2935414c56616c74818e949ea6a69f959087817c79767474747577797d818790959ea5a69e948e81756d62564c41362a1e14080000000000000000030d151d23292c2d2d2c292c343d44505b666f7c89949eac9f92877b6e61554b4034291c10040000000000000000000000000000000000000003101c28343f4a54616c74818e949da4aca7a09d9992908f8f8f9192999a9e9f948f837a6d666f7c88949faaaea398928c88878886796c605346392d20130000000004101c2834404b555e686d7a828c92999fa4a9a19e99999291908f8f90909298989da0a8a69e99928d837a6e685e544b40342820150a000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000000000000010406070a0d10111213131211100d0a070604000000000305050606060606060000000000000000000000000000000000000000000000000000000000000000000000000000000000000109121b232b323a41464f535b6063696e7276797c7f8182848585868685848483817f7d7b7773706d66605d55514b433d332d261d140b02000000000000000000000000000000000000010e1b2734414e5a67748186868686868686867f736d635b51493f372d241b120900000000000000000000000000000000000000000000000000000000000000000005111e2a36414c565e6169696969696967645c52473c47525c6366696969696969615e564c41362a1e11050000000000000000000000000005111e2a36414c565e6169696969696967645c52473c47525c6366696969696969615e564c41362a1e110500000000000000000000000000000008121a242c343c43474f54565a5d5f5f5e5d5a55534e46423b332b23191007000000000000000000000000000000000000000000000000000000000000010a12191e2325262d2d2d2d2d2d2d2d2726241f19130b02000000000000000000000000000000000000000000000000000000000013202d3946535f6c767979797979797979797979797979797979797979766c5f5346392d201300000000000000000000000000000000060b0f14191e20212427292b2c2c2c2b2b29272421201e19140f0b0600000000000000000000000000000000000000000006111c26303c454f59606b6f7b828b91969c9fa3a9a19e9c9b9a9b9c9d9fa2aaa39f9c97928c847c716c625a50473d32291e130800000000000000000613202c3945525d68717e8a939da6a89f948f837c746f6c6668676768666d70757c838f939ea7a69e938b7f72685e52463b3025190d010000000000000000030b12181c1f20201f1d2228333f4a54606b75828f9ca8a3998d8073675c5145382c1f14090000000000000000000000000000000000000006121f2b3844505c66717e8b939ea6aea59d95908a86838282838486898d92979f959083786d73808d99a6b0a89f9286807c7a7b7d7063574a3d3024170a000000020d17202c3845515c676d7a838f949fa3aaa29f97918c898684838282838485888b91969ea1a9a39f9590837a6e665c51453c31261a0f020000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000000000000001080d111314171a1d1e1f1f201f1e1c1a171413100c07010c0f11121313131313130909070300000000000000000000000000000000000000000000000000000000000000000000000000000000091019202830363d41495053575e6165676d6f7274757778787979787877767472706e696763605c54514c45403a3128221c140b0200000000000000000000000000000000000000010d1a2733404c58646e747979797979797979736d635b51493f372d251b120900000000000000000000000000000000000000000000000000000000000000000000010d1925303b444c52545c5c5c5c5c5c5a58524a4136404a52585a5c5c5c5c5c5c54524c443b3025190d0100000000000000000000000000010d1925303b444c52545c5c5c5c5c5c5a58524a4136404a52585a5c5c5c5c5c5c54524c443b3025190d010000000000000000000000000000000008121a222a31373d4348494d50525352504d4947433c36312921191107000000000000000000000000000000000000000000000000000000000000000000070d1316191a20202020202020201a1a17130e0801000000000000000000000000000000000000000000000000000000000000121e2b37434f5a646c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c645a4f43372b1e1200000000000000000000000000000000000003080d111414171a1c1e1f20201f1e1d1a171414110e080300000000000000000000000000000000000000000000000c17232e38424d57606b707d8590949ea1a8a29e9997918f8e8e8e8f909298999ea2a9a19e9691867e716c62594f443a3025190d0400000000000004111d2935414c55606d7a85929ea5aca0968f82796e6a62605b545a5b545c60636a6e78818f959faba59f92857a6e61564c41362a1e110500000000000000000001070c10131414131017222d38424f5963707d8995a0ab9e9285796d6053473b31261a0e000000000000000000000000000000000000000713202d3a4653606d7884919ea5afa69d938e837d797776757677797c80858c9298958e81747683909ca9aca0958a7e736f6e6e706b6155483c2f23160900000009141f2b37434e58606d798390959fa6a8a098928b85807c79777675757677797c7f848a92979fa7a79f959083786d60584e43372b1e13080000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000003090e13191d20212427292b2b2c2c2c2b292724201f1c18120e181c1e1f2020202020201615130f0a04000000000000000000000000000000000000000000000000000000000000000000000000000000070e161e252a2f383f44464d5354555c60636567696a6b6c6c6c6b6b6a69686663615e575653504a45413a352f281f17110a020000000000000000000000000000000000000000000b1824303c48535c64676c6c6c6c6c6c6c6c66635b51493f372d251b130900000000000000000000000000000000000000000000000000000000000000000000000008141e29323b4146475050505050504e4c4741382f3840474b4d5050505050504746413b32291e140800000000000000000000000000000008141e29323b4146475050505050504e4c4741382f3840474b4d5050505050504746413b32291e140800000000000000000000000000000000000008101820262b32383b3c404445464543403c3b37322a251f170f07000000000000000000000000000000000000000000000000000000000000000000000002070a0c0d13131313131313130e0d0b070300000000000000000000000000000000000000000000000000000000000000000f1b27333e49525a5f60606060606060606060606060606060606060605f5a52493e33271b0f0000000000000000000000000000000000000000010507080b0e10111213131211100d0b0807050200000000000000000000000000000000000000000000000003101c28343f4a545f69707d8692979fa6a49d97928c888583828181828385898c92979fa3a8a09892887e716b60564c41362a20150a0000000000000613202c3945515d6773808d97a1ada69e91847a6d675f5853504a4e4e4b5153585f666d79839099a3ada2978d8174685e5246392d201409000000000000000000000000040607070606111c262f3d4854606b7784919daba2978a7e7164574d42362a1b11060000000000000000000000000000000000000b1824313e4b5764717e8a96a0acac9f948e8179716d67696869676d70747a7f869095938a7e7885929fabaa9d9184776c6261616361594f44382c2014070000020e1925303a47535f6a73808d959fa7aaa09691867f79736f6d676a696969666d6f72787d8590959fa9a79f958d80736a5f53473a3025190d0100000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000060e141a1e24292c2d3033363738393939383634302d2c29231d1a24282b2c2d2d2d2d2d2d23221f1b160f07000000000000000000000000000000000000000000000000000000000000000000000000000000050c13191d262d33373b4246484b515356585a5c5d5e5f5f5f5f5e5d5d5b595754534d4946443f38352f29241d160d0600000000000000000000000000000000000000000000000814202b36414a53585a60606060606060605957514940372e251b130900000000000000000000000000000000000000000000000000000000000000000000000000020d1720293036393b43434343434341403c362f262e353b3f404343434343433b3936302920170d02000000000000000000000000000000020d1720293036393b43434343434341403c362f262e353b3f404343434343433b3936302920170d0200000000000000000000000000000000000000060e151b21272c2f30343738393837332f2e2b26201a140d0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a16212c3740494f535353535353535353535353535353535353535353534f4940372c21160a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2c3844505c666e7b859298a2a9a49f928d857f7c78767574747576797c80858c9299a2aaa39a92877d70685e52463c32261b0f0200000000000714212d3a4754606d7a85929fa9aa9e94897d70685d554e46443f41414045464e545c676f7c87929faca99f92867a6e6154473c31261a0e0200000000000000000000000000000000000a141d2c38444f5965727f8c99a3a99c8f8276695f5346382d22170b000000000000000000000000000000000005121e2a36424d576875818e9ba8afa49a8f82786d66605d555c555c6063676d727b838f9391857b8797a2ada79a8d8074675a545557554f473e33281c1004000005111e2a36424d56626f7c87929fa7aea29891847c726d6763605c555c5c545c6062656c707a839097a1ada79f92877c6f62564c41362a1e110500000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000070f181f262a2f35393a3d404344454646454443403d3a38342f2a252f3437383939393939392f2e2c272119100700000000000000000000000000000000000000000000000000000000000000000000000000000002080b141b22272b31363a3b404547494c4e4f5152525353525151504e4c4a4846423d3a38342e29241e18130c04000000000000000000000000000000000000000000000000030f1a252f3841484c4e53535353535353534c4b4640372e251c1309010000000000000000000000000000000000000000000000000000000000000000000000000000050e171e252a2d2e3636363636363433302b241d242a2f32333636363636362e2d2a251e170e050000000000000000000000000000000000050e171e252a2d2e3636363636363433302b241d242a2f32333636363636362e2d2a251e170e05000000000000000000000000000000000000000000040a0f161b1f2223272a2c2c2b2a2722211f1b150e0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005080a0b13131313131313090806030000000000000005101b252e373e4346464646464646464646464646464646464646464646433e372e251b10050000000000000000000000030613131313131313130d0c0a07020000000000000000000000000003060809131313131313130b0b090501000000000000000004111d2935414c56606d78839097a2aaa49a938b807a736f6a6968676869666d6f737a80879298a2aba39992857a6d61584e43372b1e14080000000005111e2a36424d5765727f8b98a2aea99c8f82756b60564c433c38332d2e34383c424b555f6a74818e9ba8aea3988c7f7266574d42372b1e12050000000000000000000000000000000000020b1c27333d4754616d7a86929fac9f93877b6e6153493f33271b0f03000000000000000000000000000000000714202d3a46525e697885919eabac9f93877c6f665c54514b4f4b5153555d60696e79818f949083909da9b3a4988b7e7165584b484a48443e352c21160b0000000714202d3a46525e6975828e99a3afa89f92867c6f6a605c5553514b4f4f4a5053535b60686e7a85919ea7afa3998e8175685e5246392d20130700000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000030b1218212a31363a4145474a4d505152525352514f4d4a4745403936313a4044454646464646463c3b38322b22190f0400000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171b1f252a2d2f34383a3c3f4142444545464645454443413f3d3b3a36312d2c28231c19130d0701000000000000000000000000000000000000000000000000000008131d262f363c40414646464646464646403e3b352e251c130a0100000000000000000000000000000000000000000000000000000000000000000000000000000000050d14191e20212929292929292726241f1a13191f23262729292929292921201e19140d0500000000000000000000000000000000000000050d14191e20212929292929292726241f1a13191f23262729292929292921201e19140d05000000000000000000000000000000000000000000000000040a0f1315161a1d1f201f1d1a1615130f0a040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c11151718202020202020201615130f0a0400000000000009131c252c33373939393939393939393939393939393939393939393937332c251c130900000000000000000000060c101220202020202020201a1917130e0800000000000000000000040a0f13151620202020202020181715110c06000000000000000713202c3945525d68727f8c95a0a9a69f93887f746d68625f585b5b5b545c6063676d737d869299a4aba2978e81756a5f54473b3025190d010000000714202d3a46525e697683909daaada196897d7063594f433a312b282223282c3039434e58626f7c8895a0acaa9d908477695f53463a2d2114070000000000000000000000000000000000000b13202d3a4653606d7985929eaba49a8c8073655b5044372b1f1207000000000000000000000000000000000815212e3b4854616e7b8797a1adaa9d9083776a5f544b4540424045474b51575f676d78828f9590959fabb0a3968a7d7063574a3d3d3c38332c231a10050000000814212e3b4754616e7b87939fabaca0958a7e716a5f58514b47454042423f44464950565e68707d8a95a0acab9f92867a6d6154473a2e21140700000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000030c151c2328333b42464c5254575a5c5e5e5f5f5f5e5c5a5753514b46423b454c50525353535353534948433d342b21160a000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f141a1e2123292c2d303234363738393939383837363533302e2d2a25201f1c17110d080100000000000000000000000000000000000000000000000000000000010b141d252b303334393939393939393933322f2a231c130a0100000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d1114141d1d1d1d1d1d1b1a17140e080e1317191a1d1d1d1d1d1d1414110d080200000000000000000000000000000000000000000002080d1114141d1d1d1d1d1d1b1a17140e080e1317191a1d1d1d1d1d1d1414110d0802000000000000000000000000000000000000000000000000000000030709090d11121312100d090806030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000911171d2124252d2d2d2d2d2d2d22211f1b150e060000000000010a131b21272b2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2b27211b130a010000000000000000030a11171c1f2d2d2d2d2d2d2d2d2726231f19120a0200000000000000070f161b1f22232d2d2d2d2d2d2d2524211d1811090000000000000714212d3a4754606d7a85929fa7ab9f948c7f726d605d56534e4f4e4e4a5053555d606b707d87939faaa99e93887c6f62564c41362a1e11050000000814212e3b4754616e7b87959fabab9e9184786c6053463d31281f1c17181c1f27313c47535f6a7784919daaaca095887b6e6155483b2e221506000000000000000000000000000000000005111d2a36414c5664707d8a97a1adac9e9184786c605346392f24180c000000000000000000000000000000000916222f3c4955626f7c8895a9b3a79a8d817467584e4239352f34383a40454d555c666d7a85919d9fa7b1afa396897c706356493d302f2c28211a1108000000000c1925323f4c5865727f8b99a4afaa9d9184786c60574e45403a38342f2e34383a3f444d56616b7783909daaafa3998b7e7265584b3f2f24180d01000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000b151e272e343f454d53565d606366696a6b6c6c6c6b696763605c55534d444f575c5f60606060606056544e463d32271b0f030000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e1214181c1f20232527292a2b2c2c2c2c2b2a2a28262421211e1a1312100c060000000000000000000000000000000000000000000000000000000000000000020b131a202427272d2d2d2d2d2d2d2d2625231e19120a01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010507081010101010100e0d0b08030002070a0c0d1010101010100807050100000000000000000000000000000000000000000000000000010507081010101010100e0d0b08030002070a0c0d101010101010080705010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b22292d3031393939393939392f2e2b26201810060000000000010910161b1e202020202020202020202020202020202020202020201e1b161009010000000000000000030c151c23282c393939393939393933322f2a241c140a00000000000007101920272b2e2f3939393939393932312e29221b12090000000006131f2b37434e5866727f8c97a2ada79c9083786c605b524c47434241413f44464c5159616b73808d98a2aea59b8f8275685e5246392d2014070000000b1824313e4b5764717e8a97a7b1a79a8e8174665b5044382b1f160f0b0c10151f2b37434e586773808d9aa6b1a7988b7e7165584b3e2d22170b00000000000000000000000000000000000713202d3946525e6875828f9ba9b3aca196897c6f63554b4035291d10040000000000000000000000000000000a1723303d4a5663707d8996a3b0a6998c7f7366594c402f2924292c2f353b434b545d68707d8a959fabb7afa396897c706356493d3023201c1610080000000004111d2935414c556975828f9cabb2a9988b7e72655b50453c342e2c292323282b2d333b444f5965727e8b98a9b3ab9b8f827568554b4035291d1004000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000007121c273039404451575f61686d7073767778797978777673706d67615e57505761686b6c6c6c6c6c6c6260584e43382c1f13070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000205070c10131416191b1c1e1f1f20201f1e1e1d1b19171514120e090603000000000000000000000000000000000000000000000000000000000000000000000001080f14181a1b2020202020202020191916120d070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030608090f1112131313110f0c070705010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b242d34393d3e464646464646463c3b37322a22180e04000000000000050a0f1213131313131313131313131313131313131313131313120f0a05000000000000000000000a151e262e34384646464646464646403f3b362e261c120800000000040f19222b32383b3c464646464646463e3d3a342d241b11060000000815222e3b4754606a7784919ea9aca095897d70655b5045413a3732342e34383a41454f59606d7a85929fabac9f92867a6e6154473b2e23180c0000010e1b2834414e5b6774818e9aa7b4aa978a7e7164544a3f3328190d040000040d1b26323d4a5764707d8a97aab4a79b8e81746853493f33271b0f03000000000000000000000000000000000714212e3a4754616d7a86929facb9b2a89a8e8174675d5145382c1f14080000000000000000000000000000000a1724313d4a5764707d8a97a3b0a5988c7f7265594c3f2e23181c1f24293139424c56616c7683909da9b3afa396897c706356493d302316100b0500000000000613202c3945515d677885929eabada196887b6e6153493f3328231f1c18171c1f2227323e4855626e7b8897a2adab9e918578675d5145392c201306000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000c18232e39424a515b63696e747a7d808384858586858482807d79746e69605b536873787979797979796f6a6054483b2e22150900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040607090c0e0f1112121313121211100e0c0a080705020000000000000000000000000000000000000000000000000000000000000000000000000000000003080b0d0e13131313131313130d0c0a0602000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002050708121313131313130a090704000000000000000000000000000000000000000000000000000000060b0e1011131313131313131313131313131313130b0a080400000000000000000000000000030a0f1215151c1e1f1f201f1e1c181413110d080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c17222d363e45494b535353535353534947433c342a20150a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c2630383f4453535353535353534d4b4740382e24190e020000000a16202b343d434749535353535353534b4a453f362d22180c0100000916222f3c4955626f7c8896a0acaa9d9084776b6053493f35302b262823282c2f353e45525d6874818d9aaaafa3998b7f7265544b4034281c10040005111e2a36414c566a7683909da9aea298887b6e6155483b2d221708000000000a15212e3b4854616e7b8798a2aeaa9d908377655b5044372b1f120500000000000000000000000000000006131f2b37434e5865727f8c99a3aeb7b8ab9f9285796d6053473b3025190e0200000000000000000000000000000a1723303d4a5663707d8996abb5a6998d807366544a403428211e1a181f27303a44505a64707d8a97a2adafa396897c706356493d3023160a000000000000000714212d3a4754606d7a8797a1adab9e918578695f5341382d211813100c0b101217202d394653606c7985929fabada196867a6d6053473a2d201407000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000004101c2834404a545c606d727b81868a8d8f9191929292918f8d8a85807b726c655c6b78858686868686867c6f6256493c2f2316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e1214151f202020202020171614100b050000000000000000000000000000000000000000000000040b12171b1d1e20202020202020202020202020202020171714110c0500000000000000000000060e151b1f2122282a2b2c2c2c2b292521201d19130d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111d29343e485056586060606060606055534e463c32261b0f0300000000000000000000000000000000000307090a0e111213131211100e0b090706030000000000000000000c17232e38424a505f606060606060605a58524a40362a1f13070000030f1b27323d464e545660606060606060585650483f34291d110500000d192633404c5966737f8c99a8b2ab998c807366594f41382d241e1b1b171c1f242935414c5663707c8998a2aeab9c8f8276665c5145382c1f1306000713202d3946525e687885929fabac9f9285796c605346392d201306000000000714212d3a46535e697985929facac9f9285796c605346392d2013060000000000000000000000000000000815222e3b4754606a7783909dabacababaea2988a7e7164564c41362a1e110500000000000000000000000000000915222f3c4855626f7b8899a3afa89b8f8275665c51443a322d2b2627272628323e4653606d7985929fabafa396897c706356493d3023160a000000000000000915222f3c4855626f7b8895a9b3a99c8f827669574d422f261b0f070400000306121f2b3744505b657683909da9b2a995887b6e6255483b2f221508000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000030e18212c3844515c666d757f878d9298999c9d9e9f9f9f9e9c9a98928d867f776d666679869293939393887b6e6255483b2f22150800000000000000000000000000000000000000000000000000000003080c0e0e131313131313130f0e0c09040000000000000000000000000000000000000000000000000000000000000003070b0d0e131313131313130e0e0c08030000000000000000000000000000030608090f1112131313110f0c0707050100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000407090a131313131313120807050200000000000000000000060d141a1e21222c2d2d2d2d2d2c2423201c161008000000000000000000000000000000000000000000050e161d23272a2b2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2423211c171008000000000000000006101820262b2e2f3537383939393835322e2d2a251e19130c04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212d3945505a62646c6c6c6c6c6c6c625f584e43372b1f1306000000000000000000000000000000040b101316161a1d1f201f1e1e1d1a18151312100b0600000000000003101c28343f4a545c6c6c6c6c6c6c6c6c66635c52473b2f23170a000006131f2b38434e5860626c6c6c6c6c6c6c65625a50453a2e2115090005111d2935414c566976828f9ca9afa399897c6f6356493d2f261b130f0a0c101319242f3a4653606d7985929facac9f9285796d6053463a2d201307000714212e3a4754616d7a8798a2aeaa9d918477665b5044382b1f12060000000005121e2a36424d576a7784919daaaea298877a6e6154473b2e211408000000000000000000000000000004101c2834404b55626f7c8895a0a8a19e9fa2aa9c8f8275685e5246392d20150a00000000000000000000000000000714202d3a4753606d7a86929facab9e9285796d60564c443d3a373134333332323845515c6675828f9ca8afa396897c706356493d3023160a000000000000000916232f3c4956626f7c8995a2afa89b8e8275685b4f423128140a0000000000030f1b27333f49536976828f9ca9afa295897c6f6256493c2f231609000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000915202c38434f59606d78818c92999fa2aaa9a8aaa29f9e9e9e9fa29f98928c81786d6d798699a39f9f94877a6e6154473b2e2114080000000000000000000000000000000000000000000000000001090f14181a1b202020202020201c1b191510090200000000000000000000000000000000000000000000000000000001080e1317191a202020202020201b1a18140f090100000000000000000000030a0f1215151c1e1f1f201f1e1c181413110d080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b101416172020202020201f1514120e090300000000000000060f181f262a2d2e38393939393939302f2c28211a110800000000000000000000000000000000000000040e1720282e3336373939393939393939393939393939393931302d28221a1208000000000000030e18222a31373a3c42444546464644423f3a39363029241e160e070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4956626c7179797979797979766a5f53473b2e2115080000000000000000000000000002090e161b202223272a2c2c2c2b2a29272522201f1c17110a020000000006121f2c3844505c667679797979797979736e63584b3f3226190c00000815222e3b4754606a6f79797979797979716c62564a3d3124170b000713202d3946525e687885929eabac9f92867a6d6053473a2d20140a0200000308131f2c3844505c667683909ca9aea298887c6f6255493c2f221609000915222f3c4855626f7b8895aab4a99c8f837669544a3f33281c0f0300000000020e1a2531434f5c6976828f9ca9b4aa95887b6f6255483c2f221509000000000000000000000000000006131f2c3845515c6774808d9aa7a196919298a29f92867a6e6154473c31261b0f000000000000000000000000000006131f2c3945515d677783909dabada1978a7e71685e564f484742424140403f3f3f404b546673808c99a6afa396897c706356493d3023160a00000000000000091623303c4956636f7c8996a2afa79a8d8174675a4e4134271b080000000000000b17222d424e5b6875818e9ba8afa296897c6f6356493c30231609000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000020e1a26313b4854606b74808d939fa3ababa49f9b979892919192939a989d9f938f82786d7a8794abb4a094877a6d6154473a2e211407000000000000000000000000000000000000000000000000030b131a202427282d2d2d2d2d2d2d292825211b140c0300000000000000000000000000000000000000000000000000020b12191f2326272d2d2d2d2d2d2d282724201a130b030000000000000000060e151b1f2122282a2b2c2c2c2b292521201d19130d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000810161c2023242c2d2d2d2d2d2c22211e1a140d060000000000030d18212931363a3b454646464646463d3c38332c231a10070000000000000000000000000000000000000b16202932393f4344464646464646464646464646464646463e3c39332c241a100500000000000a15202a343c4347484f5152525352514f4b4746413a3530282019110800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e868686868686867c6f6255493c2f221609000000000000000000000000050d141a21272c2f30343738393938373634312f2d2b28231c140c020000000713202d3a4653606d78868686868686868073665a4d4033271a0d00000916232f3c4956626f7c868686868686867e7165584b3e3225180b000714212e3a4754616d7a8797a1adaa9e918477675d5145382c1f13020000000003101c28343f4a546774818e9aa7b4aa978b7e7164584b3e3125180b000a1723303d4a5663707d8996a3b0a89b8e8275685b4f422d22170b000000000000091c2835424f5b6875828e9ba8b0a396897d7063564a3d3023170a00000000000000000000000000000713202d3a4653606d7985929fab9e918485929fa3998c7f7265584e43372b1c11060000000000000000000000000004101d2935404b5566737f8c99a3aea99e91847a6d68615955534d4f4e4d4c4c4c4b4b4c5865727f8b98a5afa396897c706356493d3023160a000000000000000815222f3b4855626e7b8895aab4a79a8e8174675b4e412f24190d010000000000061b2835424e5b6875818e9ba8b4aa95887b6f6255483c2f221509000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000006121e2b37424e57636f7c87939fa5afa9a199938f8a878584848586888c90959e948d80747b8794a1ada093877a6d6054473a2d2114070000000000000000000000000000000000000000000000010b151d252b303435393939393939393534312c261e150c000000000000000000000000000000000000000000000000000b141d242b303334393939393939393534302b251d150b0100000000000006101820262b2e2f3537383939393835322e2d2a251e19130c04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008111a21282c2f30393939393939382e2d2a261f180f060000000009141f29333b424648525353535353534a48443e352c22190f060000000000000000000000000000000006121d28323b444b4f51535353535353535353535353535353534a49453e362c22170c00000000030f1b26313c464e53555b5d5e5f5f5f5e5c5854524c46413a322b231a1208000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b9393939393887c6f6255493c2f2216090000000000000000000000060f171f252a32383b3d4144454646454443413e3c3a38342e261e140a0000000713202d3a4653606d798693939393938d8073665a4d4033271a0d00000916232f3c4956626f7c8993939393938b7e7165584b3e3225180b000915222f3c4855626f7c8895a9b3a99c8f837669554b4035291d100400000000000c17232e3f4c5966727f8c99a5b2a6998c807366594d4033261a0d000a1724313d4a5764707d8a97a3b0a79a8e8174675b4e4134281b060000000000010e1b2834414e5b6774818e9aa7b0a3978a7d7064574a3d3124170a0000000000000000000000000005111e2a36424d5764717e8a97a2a99a8d80818e9baa9d9083776a5f5347382e23170b00000000000000000000000000000c18242f3b4854616e7b86929fa8ada19690827a706b65615f575c5a5a5959585858585865717e8b98a4afa396897c706356493d3023160a000000000000000814212e3b4754616e7a8798a2aea89b8f827568564c4135291d11070400010407101d2935404b556976828f9ca9aea398877a6e6154473b2e211408000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000814212e3a47535f6a76828f9aa4afaba1979287827d7a79787778797b7f838a9196928a7e7b8895a1ada093867a6d6053473a2d201407000000000000000000000000000000000000000000000009131d272f373c40414646464646464642413d3730271e0e050000000000000000000000000000000000000000000000030d1d262e363c3f414646464646464641403c372f271d13090000000000030e18222a31373a3c42444546464644423f3a39363029241e160e0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007101a232c33383c3d464646464646453b3a36312921180d030000020e1a26313b454d53555f60606060605f57554f473e342b21180d040000000000000000000000000000000b17232e39444d565b5e60606060606060606060606060606060575550483e33281c110400000006121f2b37434e585f62686a6b6c6c6c6b6865615e56524c443d352c241a11080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b979f9f9f95887c6f6255493c2f22160900000000000000000000060f18212930363d4448494d505253525151504d4b4846443f3830261c110600000713202d3a4653606d7986939f9f9f998d8073665a4d4033271a0d00000916232f3c4956626f7c89959f9f9f988b7e7165584b3e3225180b000a1723303d4a5663707d8996a3b0a89b8e8275685b4f422f24180c000000000000061825323e4b5865717e8b98a4b1a79a8e8174675b4e4134281b0e000b1824313e4b5764717e8a97a4b1a79a8d8174675a4e4134271b0e0100000000010e1b2734414e5a6774818d9aa7b0a4978a7d7164574a3e3124170b000000000000000000000000000714202d3a46525e6976828f9ca9a297897d7d8a98a2a095887c6f62544a3f34281c1003000000000000000000000000000714202d3a46525e6974808d96a1a9a89f9590847d77726e696a6867666665656565646465717e8b98a4afa396897c706356493d3023160a000000000000000613202d394653606c7985929faba99d908376685d5245392c221813100c0d101318202c3945515d677783909daaac9f9286796d6053463a2d201307000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000815222f3b4855626e7b88949facaea39992857d75716e686b6b666d6e72767d84909492857d8996a3aca09386796d6053463a2d20130700000000000000000000000000000000000000000000030f1a252f3941484d4e535353535353534f4d4942393020170d02000000000000000000000000000000000000000000010b151f2e3840474c4d535353535353534e4d4841392f251a0f03000000000a15202a343c4347484f5152525352514f4b4746413a3530282019110800000000000000000000000000000000000000000000000000000000000000000000000000000000000000060f19222c353e44484a535353535353524846423b33291f1409000005121e2a36424d575f616b6c6c6c6c6c6c6361594f463d332a1f160b0200000000000000000000000000000e1b27333f4b565f676a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c64615a5045392d2114080000000815212e3a47535f6a6f7577787979797775726d68615d564f473e362c231a100600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4aca295887c6f6255493c2f221609000000000000000000020c18212a333b42464f54565a5d5f5f5f5e5d5c5a585553504a42382e23170b00000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2aca4988b7e7165584b3e3225180b000b1724313e4a5764717d8a97a4b0a79a8e8174675b4e4134281b070000000000000b1724313e4a5764717d8a97a4b0a89c8f8275695c4f4236291c0f000b1825313e4b5864717e8b97a4b1a79a8d8074675a4d4134271a0e0100000000010e1a2734414d5a6774808d9aa7b1a4978b7e7164584b3e3125180b000000000000000000000000000814212e3b4754616e7b87939fab9e9285797985929fa79a8d8073665c5044382b1f13070000000000000000000000000005121e2a36424d57606d79849197a1a9a79f969189837f7b78767574737372727271717171717e8b98a4afa396897c706356493d3023160a0000000000000006121f2b3844505b6676828f9cabac9f92867a6d6054473e3429241f1c18181d202328323b4753606d7a86929faca99c908376665c5144382c1f1206000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000d192633404c5966737f8c99a6b0ac9f92877c6f6b64615e56545c6062656c707a8290949083909daaaca09386796d6053463a2d201307000000000000000000000000000000000000000000000814202b37414b53595b606060606060605c59544b4232291f140900000000000000000000000000000000000000000007121d2731404a52585a606060606060605b59534b41372b201408000000030f1b26313c464e53555b5d5e5f5f5f5e5c5854524c46413a322b231a12080000000000000000000000000000000000000000000000000000000000000000000000000000000000040d18212b343e474f55575f60606060605f55534d453b31261a0e02000714212d3a46535f696e78797979797979706b61584e453b31281d140a0000000000000000000000000000101d2a36434f5b67717779797979797979797979797979797979716c6155493c3023170a0000000915222f3c4855626f7c81848585868584827e7a746d68605950483e352c22180d03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4afa295887c6f6255493c2f2216090000000000000000000a141e2a333b454d52596063676a6b6c6c6b6a69676462605c544a3f34281c1003000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000b1824313e4b5764717e8a97a4b1a79a8d8074675a4d4134271a0e0100000000000a1724313d4a5764707d8a97a3b0a99c8f8376695c504336291d10000b1824313e4b5764717e8a97a4b1a79a8d8174675a4e4134271b0e0100000000010e1b2734414e5a6774818d9aa7b1a4978a7e7164574b3e3124180b00000000000000000000000007131f2c38434f5966727f8c99a4aa9b8e817475818e9baa9e9184796d6053463a2f24180d01000000000000000000000000020e1a25303b45515d676f7c8591979ea5a8a09e95908b8885838281807f7f7f7e7e7e7e7d7d808d9aa7afa396897c706356493d3023160a00000000000000030f1c28333f4a5466727f8c99a3aea3998a7d71645a50463d352f2c292324292c2e343b444f5963707d8a99a3aea6998d807366544a4034281c1004000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000005111e2a36424d576976838f9ca9b1a79a8d80736a605954524c4a5053555a61676d798290959095a0abaca09386796d6053463a2d201307000000000000000000000000000000000000000000000c1824303c48535d64686c6c6c6c6c6c6c68655d54443b3025190e0000000000000000000000000000000000000000000c18232f3943525c64676c6c6c6c6c6c6c68645d53483c3024180c00000006121f2b37434e585f62686a6b6c6c6c6b6865615e56524c443d352c241a1108000000000000000000000000000000000000000000000000000000000000000000000000000000020b16202a333d474f5961636c6c6c6c6c6c6b615f574d42362a1e1205000815222e3b4855616e7b858686868686867d706a60574d433a2f261b110600000000000000000000000000111e2b3744515e6a7784868686868686868686868686868686867e7164574a3e3124170b0000000a1724313d4a5764707d8a9091929292918f8b86807a706b615a50473e342a1f150b010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4afa295887c6f6255493c2f221609000000000000000006111c26303b454d575e616b70747778797978777674716f6d665c5044382b1f1206000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000b1824313e4b5764717e8a97a4b1a79a8d8074675a4d4134271a0e0100000000000a1724313d4a5764707d8a97a3b0a99d9083766a5d5043372a1d10000a1724313d4a5764707d8a97a3b0a79a8e8174675b4e4134281b0e0100000000010e1b2834414e5b6774818e9aa7b0a3978a7d7064574a3d3124170a0000000000000000000000000915222f3b4854606b7784919eaba2988a7d70707d8a98a2a197897d7063554b4135291d11040000000000000000000000000009141f2935414b555f6a6f7c858f939c9fa4a79f9d989892908f8d8d8c8c8b8b8b8b8a8a8a8d929da9afa396897c706356493d3023160a00000000000000000b17222d3b4754616e7b86929faaab9d9083766c61584e45403a38342f2f35393a40454d56606b75828f9babab9f94887b6f6255483c2e23180c00000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000714202d3a46525e697885929fabaca095877b6e61584f4746413f44464850555d676e7b85929da0a7b1aca09386796d6053463a2d201307000000000000000000000000000000000000000000000e1a2734404d59646f7479797979797979756f65564d42362a1c11060000000000000000000000000000000000000004101c2934404b55646e7479797979797979746f64594d4034271a0e0000000815212e3a47535f6a6f7577787979797775726d68615d564f473e362c231a100600000000000000000000000000000000000000000000000000000000000000000000000000000a141d28323c454f59616b70797979797979786e695f53463a2d211407000714212d3a46535f696f7c86929a939992867d6f695f554c41382d22170d04000000000000000000000000111e2b3744515e6a77849193939393939393939393939393938a7e7164574a3e3124170b0000000a1724313d4a5764707d8a979e9f9f9f9e9b98928d847d716c61594f463c31271d12070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4afa295887c6f6255493c2f22160900000000000000000b17232e38424d575f696e767c8083858685848483807e7c786d6053463a2d201307000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000b1724313e4a5764717d8a97a4b0a79a8d8174675a4e4134271b070000000000000b1724313e4a5764717d8a97a4b0a99d9083766a5d5043372a1d10000a1723303d4a5663707d8996a3b0a89b8e8175685b4e4235281b090000000000020f1b2835424e5b6875818e9ba8b0a3968a7d7063574a3d3024170a000000000000000000000004101d2935404b55636f7c8996a0ab9f9285796d6d7985929fa99b8e8175675d5145392c20140900000000000000000000000000020d18242f3a434e585f6a6f7a82898f93999c9fa2aaa29f9d9b9a999998989898979797979a9da4aeafa396897c706356493d3023160a00000000000000000614202d3946525e6874818e98a2ab9f958a7e716a6058514b47454042434045474b51575f696f7c89939eaaa4998f82766a5f53473a2e1c120700000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000814212e3b4754616e7b8798a2aeaa9d908377695e53463d393634383a3e434c555e69717e8b97a1adb9aca09386796d6053463a2d201307000000000000000000000000000000000000000000000e1b2835414e5b687481868686868686868175695e5246382d22170b0000000000000000000000000000000000000006131f2c3845515c677480868686868686868174685b4e4135281b0e0000000915222f3c4855626f7c81848585868584827e7a746d68605950483e352c22180d0300000000000000000000000000000000000000000000000000000000000000000000000006111c262f3a444d57606b707d868686868686857b6e6155483b2e2215080005121e2a36424d57606a707e88939fa29892857b6e675d53493f33271f160c010000000000000000000000111e2b3744515e6a7784919d9f9f9f9f9f9f9f9f9f9f9f9f978a7d7164574a3e3124170b0000000a1724313d4a5764707d8a979e9ea2a9a9aaa39f9691877e716b61584e43392f23180c0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000204050606060504020b1825313e4b5864717e8b97a4afa295887c6f6255493c2f2216090000000000000003101c28343f4a545f696e7b82898d9092929291908f8d8b887e7164584b3e3125180b000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000a1724303d4a5763707d8a96a3b0a89b8e8175685b4e422e23180c0000000000000b1825313e4b5864717e8b97a4b1a99c8f8376695c504336291d10000916222f3c4955626f7c8895aab4a99c8f8276695c4f4330251a0e0200000000030f1c2936424f5c6975828f9ca8b5ab95897c6f6256493c2f23160900000000000000000000000613202c3945515d6774818e9aa8aa9b8e8175676775818e9baa9f92867a6d6054473b31251a0e020000000000000000000000000007131d28313c464e585f686d757c82878b8f929897999a9b9c9d9d9d9e9e9e9e9f9f9f9fa3abacb5afa396897c706356493d3023160a000000000000000005111e2a36414d56616e7b85929fa4a79f92867c6f6a605d5553514b4f4f4b5153545c60696e7b84919ea6a69f93877c6f63584e43372b1f0b0000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000091623303c4956636f7c8996aab4a79a8e817467574d42342d2a282b2d313a434d57606d7985929eabb8aca09386796d6053463a2d201307000000000000000000000000000000000000000000000916232f3c4956626f7c89959393939392867b6e61544a3f33281c0f030000000000000000000000000000000000000714202d3a4753606d7985929393939395897c6f6356493c302316090000000a1724313d4a5764707d8a9091929292918f8b86807a706b615a50473e342a1f150b0100000000000000000000000000000000000000000000000000000000000000000000040d17222d38424c565f696f7d869299939a92867c6f695f53463a2d21140700020e1a26313b454e58616c73808c949ea1979183796d655b50443d31281d13070000000000000000000000111e2b3744515e6a7784919daab0a69e9b98989898989898978a7d7164574a3e3124170b0000000a1724313d4a5764707d8a92919297979c9fa6a9a19992877d706a5f554b4034291f1409000000000000000000000000000000000000000000000000000000000000000000000000000000020608080c0f111213131312110f0c1825313e4b5864717e8b97a4afa295887c6f6255493c2f2216090000000000000006121f2b3844505c666e7b848f949a9d9e9f9f9e9d9c9a978b7e7164584b3e3125180b000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000916222f3c4955626f7c8895a9b3a99c8f827669544a4034281c100400000000000c1926333f4c5966727f8c99a5b2a89c8f8275695c4f4236291c0f000814212e3b4754616e7b8798a3aeaa9d9084776a574d42362a1e12050000000005111d2935414c566a7783909daaafa399877b6e6154483b2e21150800000000000000000000000714202d3a4753606d7a85929faca3988a7d716464707d8a98a2a2988b7e7165574d42362a1e120500000000000000000000000000010c161f2a343c464e565e616b6f757b7f8285888a8c8d8f8f9090919191919292929292999ba3acafa396897c706356493d3023160a0000000000000000020e1925303b46535e69717e8b929da4a29891847c726d6763605c555c5c555d6063666d727b839096a1a69f948d80736b6054463c31261a0f0000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000a1724313d4a5764707d8a97a3b0a5988c7f7265594c3f31261e1c1f2028313b45515c6673808d99aab4aca09386796d6053463a2d201307000000000000000000000000000000000000000000000915222e3b4854606a7783909daa9fa3998c7f73665b5044382b1f1409000000000000000000000000000000000006121f2b37434e5864717e8a97a29f9f9d9083776b6054483b2f2215090000000a1724313d4a5764707d8a979e9f9f9f9e9b98928d847d716c61594f463c31271d1207000000000000000000000000000000000000000000000000000000000000000000010c161f28333f4a545d686e7b859298a29f93887e706a60574d42362a1e1205000009141f29333d46505a606c77828f96a1a0958f82776c60594f433a2f24180c0300000000000000000000111e2b3744515e6a7784919daaaa9e938f8b8b8b8b8b8b8b8b8a7d7164574a3e3124170b0000000a1724313d4a5764707d87858585868a8f949fa2aaa39992867c6f675c51453b31261a0e0300000000000000000000000000000000000000000000000000000000000000000000000003090e121415191b1d1f1f201f1f1d1b191825313e4b5864717e8b97a4afa295887c6f6255493c2f221609000000000000000713202d3a4653606d788390969fa6aaababa5a1a0a0a1978b7e7164584b3e3125180b000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000814212e3b4754616e7a8797a2adaa9d918477665c5144382c1f120600000000000e1b2734414e5a6774818d9aa7b4a89b8e8175685b4e4235281b0f000713202d3a4653606d7986929facab9f928578695e52463a2d201407000000000713202d3946525d687885929eabac9f9286796d6053463a2d2013070000000000000000000005121e2a36424d5764717e8b98a2ac9f92867a6d60606d7985929faa9c8f8376695e53463a2d21160a0000000000000000000000000000040d18222a343c444c52596063696e7276797b7d7f81828383848484848585858585868b909ba7afa396897c706356493d3023160a00000000000000000008141f2a36424d57626c74808d929fa2a19691877f79736f6d676969696a676d6f73797f869095a0a49f949082796d60594f43342a20150a0000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b1824313e4b5764717e8a97a4b0a4978a7d7164574a3e3124171012161f2834404b54626f7c8998a3aeaca09386796d6053463a2d2013070000000000000000000000000000000000000000000007131f2c38434e5865727e8b98a2aeab9e9184786c6053463b30251a0e00000000000000000000000000000000000814212e3a47535f6a7683909ca9aea2988b7f7265594f43382c1f13070000000a1724313d4a5764707d8a979e9ea2a9a9aaa39f9691877e716b61584e43392f23180c03000000000000000000000000000000000000000000000000000000000000000008131e28313a44505b666d7a849197a29e948c80736c61584e453b31261a0e020000030d18212b343e44505b656d7a849199a49e948c7f726b60554b4135291e150b00000000000000000000111e2b3744515e6a7784919daaa89b8f817f7f7f7f7f7f7f7f7f7b6e6155483b2e2215080000000714202d3a4753606d79797878787a7d828a9298a1a9a2989083796d60574d42362a20150a00000000000000000000000000000000000000000000000000000000000000000000060b0f151a1e212225282a2c2c2d2c2b2a28262225313e4b5864717e8b97a4afa295887c6f6255493c2f22160900000000000004101c2834404b5564717e8a959fa8b0a9a19e9894939394968b7e7164584b3e3125180b000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000714202d3946525e687885929fabac9f9286796d6053463a2d20130a0400000006121f2b37434e586976828f9ca9b4a79a8e8174675b4e4134281b0e0006121f2b3844505c667784909daaaea298877b6e6154483b2e21150a000000000714212e3a4754616d7a8797a1adaa9e918477665c5145382c1f1306000000000000000000000714212d3a46535f6976838f9caaaa9b8f8275675d5d6775828e9baa9f93877b6e6154483d32271b0f0000000000000000000000000000050e171e252a323a41464f54575e6165666d6f717374757676777777787878787879797e8b98a4afa396897c706356493d3023160a000000000000000000020e1a25313b45505a646e74808b92989fa199928c85807c797776757676777a7c80858b9298a09f9a938d82796d675d51473d3222180e030000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b1825313e4b5864717e8b97a4b0a396897d7063564a3d3023170a060d18232e3a4653606d7986929facaca09386796d6053463a2d20130700000000000000000000000000000000000000000000030f1b27323d4754606d7a85929facaca1968a7d7063574d42362a1c110600000000000000000000000000000004101c2934404b55626e7b88949fabac9f92867a6d6054473d32271b0f030000000a1724313d4a5764707d8a92919297979c9fa6a9a19992877d706a5f554b4034291f140900000000000000000000000000000000000000000000000000000000000000030d19242f3a434f59606c78828f96a0a1968f82776c605a50463d33291f140900000000060f192227333f49535e68707d87939fa69f92877d6f675d51453d30271d1207000000000000000000111e2b3744515e6a7784919daaa5998c7f7272727272727272726e695f53463a2d21140700000006131f2c3845515c676d6d676b676d70767e869297a1aaa0958c8073695f53463c31261a0f0300000000000000000000000000000000000000000000000000000000000000020a11171b1f262b2e2f32353738393939383735322f2e313e4b5864717e8b97a4afa295887c6f6255493c2f22160900000000000006131f2c3845515c6776828f9ca7b1aaa197928b88868687898b7e7164584b3e3125180b000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0005111e2a36414c56697683909ca9aea399897c6f6256493d32271b13100c090e1117212e3a47535f6a7885929eabb3a6998d8073665a4d4033271a0d0003101c28343f4a546875818e9ba8b3aa978a7d7064574a3d32271b0d04000001081623303d495663707c8996a9b3a89c8f827569544b4034281c1004000000000000000000030f1c28333f4a54616e7b87939faca2988a7e7164555564717e8a98a3a49a8c7f7366584e43372b1d1207000000000000000000000000020c1720293036393a3e3f44484d5354545c606264666768696a6a6a6b6b6b6b6c6c6c717e8b98a4afa396897c706356493d3023160a0000000000000000000009141f29333f48525c646e747e868e92999c9f97928d898684838282838486898d92979f9c99948f8780796d675d554b40342b211006000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b1825323e4b5865717e8b98a4afa296897c6f6356493c302316090007131f2c3845515c667683909da9aca09386796d6053463a2d20130700000000000000000000000000000000000000000000000a16202c3945515d6774818e9aa7b1a89b8f8275695e5246382e23170b00000000000000000000000000000006131f2c3845515c6774808d9aa6b0a79b8e8174685d5245392b21160a000000000a1724313d4a5764707d87858585868a8f949fa2aaa39992867c6f675c51453b31261a0e030000000000000000000000000000000000000000000000000000000000010b151f2935414c56606b737f8c949ea49991847a6d655b50483e342b21180d030000000000071017222d38414c56606b74808d96a0a3999184796d60594f42392e23180c020000000000000000111e2b3744515e6a7784919daaa5998c7f726665656565656565615f574d42362a1e120500000004101c2934404b555c60605c555d60646c717c859298a3a79f92867b6e61584e43372b1f1409000000000000000000000000000000000000000000000000000000000000060b141b22272b31373a3b3f4244454646464544423f3b3a373e4b5864717e8b97a4afa295887c6f6255493c2f2216090000000000000713202d3a4653606d7986929facaea39892857f7b79797b7c7f7c6f6256493c2f231609000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00010d192530404d5a6673808d99a9b2ab998c7f7266584e43372b251f1c181b1a1b2228343f4a54626f7c8897a2adb1a4978b7e7164584b3e3125180b00000b17232e3f4b5865727e8b98a8b2a69a8d807367584e43372b1f15100c090e131e2a36414c5666727f8c99a5b3aa998c7f7366594c402e23180c0000000000000000000006121f2b3844505b6673808c9aa4ac9f92867a6d605454606d7a86929fac9d9184776a605447392e23180c00000000000000000000000008131e29323a4146474b4c4d4e4f51524a50535557595a5c5c5d5d5e5e5e5e5f5f5f65717e8b98a4afa396897c706356493d3023160a00000000000000000000030d17212d36414a525c646c717b81868c8f92979e99999291908f8f90919299999e9892908c88827d746d675d554b43392f22190f00000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f2316090004101c2834404b546875828f9ba8aca09386796d6053463a2d201307000000000000000000000000000000000000000000000004111d2935414b55626f7c88959fabac9f92877b6e61544a3f34281c100300000000000000000000000000000714202d3a4753606d7985929eabaca095897c6f63564c413529190f04000000000714202d3a4753606d79797878787a7d828a9298a1a9a2989083796d60574d42362a20150a000000000000000000000000000000000000000000000000000000000007121d27313945525d68707d87939fa69f93877d6f685e53493f362c22190f060000000000000006111b262f3a444f59606d7984919ea5a0968e81746b60544b4034281e13080000000000000000111e2b3744515e6a7784919daaa5998c7f72665958585858585855534d453b31261a0e02000000000c18232f39434b515353514b51535a616a6f7c86929fa7a3988e81756a5f53473b30251a0e0100000000000000000000000000000000000000000000000000000000080f181d262d33373c4247484c4e505252535252504e4c4847433e4b5864717e8b97a4afa295887c6f6255493c2f2216090000000000000916232f3c4956626f7c8999a3aeac9f92867c726e6d6d6e70726f6a6054473b2e221508000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000081623303c4956636f7c8997a1adaa9d9083776a6054473f36302c282328252a2d333c44505c6673808c99a9b3b3a996897c6f6356493c3023160900000615222f3c4855626f7b8896a0acaa9d9184776a6054473c31271f1c181b1a1e242d3946525e6876838f9ca9aea298897c706356493d30231607000000000000000000000613202d394653606c7884919eaca99b8e8175675d51515d6775828f9caba096897c6f62544b4034281c100400000000000000000000010d1925303a444c525457595a5b5c5d5e5b5953484a4c4e4f5050515151515252525965727f8c98a5afa396897c706356493d3023160a0000000000000000000000050f1b242f38414a525a62696e747b7f8285929faba39f9d9c9c9c9d9d9fa3ab9f928682807b766f6b605d554b433a31271d100700000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000c18232e414e5b6874818e9ba7aca09386796d6053463a2d2013070000000000000000000000000000000000000000000000010d18242f3a47535f6a7683909da9afa3998c7f73665c5044382b1f14090a0a0a0a0a0a0a0a0a0a0a0a0a0a121f2b37434e5864717e8b97a2adaa9d9083776b6054443a2f241907000000000006131f2c3845515c676d6d676b676d70767e869297a1aaa0958c8073695f53463c31261a0f03000000000000000000000000000000000000000000000000000000000c18232f39434f59606d7a849199a4a0968d80736b60564c41382d231a10070000000000000000000a141d28323d45515d67707d89939ea89d93897d70665c51453a3025190d0200000000000000111e2b3744515e6a7784919daaa5998c7f7266594c4c4c4c4c4c4846423b332a1f1409000000000007121d27313940454747454045475058606a727f8c959faa9f93877c6f62574d42362a1d120700000000000000000000000000000000000000000000000000000008111a212a2f383f44464d5355585b5d5f5f605f5e5d5b5955534e464b5864717e8b97a4afa295887c6f6255493c2f2216090000000000000a1724313d4a5764707d8a97abb5a79a8e81746a6160606163656260584e43372b1f1306000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000713202d3a4653606d7984919eaaab9f95897c6f625b5146413a38342e343136383f444d57606d7984919eabb7ada297877a6d6154473a2e21140700000815212e3a47535f6a7784919eabaca095887c6f62584e4339312c282327262b2f35414c56616d7a86929facab9f9285796d6053463a2d20130700000000000000000004111d2935414c5663707d8996a1aca1978a7d7063554b4b5564717e8b99a3a89a8d8174665c5145382c1f13080000000000000000000005111d2a36414c565e6164656768696a6b68655d534840414243434444444545454d596673808c99a6afa295897c6f6256493c2f231609000000000000000000000000091217232e38424a535b606a6f767c8084919eaaa7a4a2a1a0a0a1a2a4a7a99c8f837f7b756e6a625b514b433a31281f150b0000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f2316090000071a2734404d5a6773808d9aa6aca09386796d6053463a2d20130700000000000000000000000000000000000000000000000007131d2b37434e5864717e8b97a2adab9e9184786d6053463b31251a16161616161616161616161616161616212e3a47535f6a7683909ca9aea2988b7f7265594f4332281e1308000000000004101c2934404b555c60605c555d60646c717c859298a3a79f92867b6e61584e43372b1f140900000000000000000000000000000000000000000000000000000004101c2934404b55606b74818e96a1a59d9184796d60594f443a2f261b110800000000000000000000020b16202935404b55606b75818e98a2a59d9184796d60564c41362a1f140800000000000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3f3f3f3f3b3a36312a21180e030000000000010b151f272f34383a3a3835393e464e58606c7883909da6a49a8e8175695e5246392f23180c000000000000000000000000000000000000000000000000000008111a232c333c41495053575f6265686a6b6c6c6c6b6a6865625f5853505864717e8b97a4afa295887c6f6255493c2f2216090000000000000b1825313e4b5864717e8b97a4b1a4978a7e716458535354565856544e463d32271b0f03000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000006121f2b3844505c6673808d98a2aea79c8f82766d625b524c46454041414242464950575f69727e8b96a1adb8ab9e928578685e5246392d201307000006121f2b37434e586673808d99a3afa89b8e81756a5f554b433c38342e3431373a4145525d68737f8c99a3afa79b8e8175675c5145382c1f13060000000000000000000613202c3945525d6875818e9ba8ab9e9285796d6053464754616d7a86929fab9e9285796d6053463a3025190d010000000000000000000713202d3946525e686d71727374767778756f65594d3d323536373737383835404b556774818e9aa7b2a995887b6e6255483b2f2215080000000000000000000000020c162028343f4a545c656c737c82888c9196a09f9a97959493939495979a9e9f948f8b86817b726d645d534a40352c1f150b0100000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000000000000000000000000000000000000000000000000010f1b26323c4753606d7985929fabada1968a7d7063574d42362a23232323232323232323232323232323232934404b55626e7b88949fabac9f92867a6d6054473d3221160c010000000000000c18232f39434b515353514b51535a616a6f7c86929fa7a3988e81756a5f53473b30251a0e0100000000000000000000000000000000000000000000000000020d17212c3845515c67707d89939da89e93897d6f675c51473d32281d140a000000000000000000000000050e18242f39434f59616e7b86929fa9a0968c7f72685e52463b3025190e01000000000000111e2b3744515e6a7784919daaa5998c7f7266594c3f333232322e2d2a261f180f0600000000000000030d151d23292c2d2d2c292c343d44505b666f7c89949eac9f92877b6e61554b4034291c1004000000000000000000000000000000000000000000000000060f1a232c353e454d535b6064696e72757778797979787775726e6a64605c5464717e8b97a4afa295887c6f6255493c2f2216090000000000000c1825323f4b5865727e8b98a5afa295897c6f6256494648494c4947433d342b20150a00000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000003101c28343f4a54616e7b86929fa8ab9f948b7f726d615e5653514b4e4e4f4d53535b60696e7b85929fa8b2b5a89c8f827569564c4135291d11050000030f1a26313c4854616e7b87929faaac9f92877c6f675d554e46454041414142474c515b606d7a85929eabaca095897d7063554b4034281c10040000000000000000000714212d3a4754606d7a86929faca89a8d8174665c514446525d6876828f9caba2978a7d7064564c4135291d11050000000000000000000714212e3a4754616d7a7e7f8081828485817568584e43372e2c2823282c2f3945515d677783909daaada196877a6d6054473a2d211407000000000000000000000008131e28323a44505c666d777f878f94999e9f97928e8b8887868687888b8d92979e9c99928e867f746f645c52473e31271d120700000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000000000000000000000000000000000000000000000000000a151f2c3845515d6774808d9aa6b0a89c8f8275695e5346382e3030303030303030303030303030303030303845515c6774808d9aa6b0a79b8e8174685d5245392c2013040000000000000007121d27313940454747454045475058606a727f8c959faa9f93877c6f62574d42362a1d12070000000000000000000000000000000000000000000000000009141f2a36414c56606d7984919ea5a2988e81756b60554b40352b20160b020000000000000000000000000007121d27313d46525e6973808d97a2a89f92857a6d61564d41362a1e1308000000000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326252522211e1a140e06000000000000000000030b12181c1f20201f1d2228333f4a54606b75828f9ca8a3998d8073675c5145382c1f14090000000000000000000000000000000000000000000000030e18212c353e474f575f656c71767b7f8183858586858583817f7b77716d665f64717e8b97a4afa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea195887b6e6255483b3b3d3f3c3b37322b22190f0400000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000b17232e3846525e6973808d96a0aaa69f93877f746d6863605c545b5b5c575e61656c717b849198a2aebab3a9988c7f7265594c3f3025190d010000000a15212d3a46535e6975818e98a3aea3999083796d675f5853514b4e4e4e4d53555d606d74818e97a1ada69d9083776b605443392e23180c00000000000000000006121f2b37434e5865727e8b98a2aca096897c6f63544a40414c5665727e8b99a4a99b8f8275685e5246392d2015090000000000000000000815212e3b4854616e7b878c8d8e8f909184786a6054473f3a38342e34383a404b55606d7a86929facab9e918578675d5145392c20130600000000000000000000010d1924303a44505a606d78818c93999fa098928c85817e7b7a797a7a7b7e81858b92979f9f99928b81746e63594f43392f24180c00000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070000000000000000000000000000000000000000000000000004101d2935404b55626e7b88949fabac9f93877b6e61544a3f3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4753606d7985929eabaca095897c6f63564c4135291d110400000000000000010b151f272f34383a3a3835393e464e58606c7883909da6a49a8e8175695e5246392f23180c000000000000000000000000000000000000000000000000020e1a25303946525e68737f8c96a0a99f92867a6e61594f43392f23190e040000000000000000000000000000010b151f2a36424d57606d7a85929eaaa2978d8074685e52463a2f24190d010000000000111e2b3744515e6a7784919daaa5998c7f7266594c3f332619191514120e0903000000000000000000000001070c10131414131017222d38424f5963707d8995a0ab9e9285796d6053473b31261a0e000000000000000000000000000000000000000000000009141f2a333e474f5961696e787e83888b8e909292939291908e8c88847e786e6a64717e8b97a4afa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e30322f2e2b27201910070000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000006111c2a36424d56606d79849198a2aba499938b807a736f6d666968676869696e71787e859196a1aab3b9ada297887c6f6255493c2f2216080000000005121e2a36424d57616e7b86929fa6aba0958f82796f6a63605c555b5a5b575f62676d747f8c939ea9a99f948a7d7064594f4430271d12070000000000000000000814212e3a47535f6a7683909daaaa9e9184776b605442393b4754616e7b86939fac9f92867a6d6154473c31261a0e0000000000000000000714212d3a46535e697884919a9b9c9d96897c6f625a504a464440434044464b515c67717e8b98a3aeaa9b8f827568554b4135291d11040000000000000000000004111d2935414c56616c74808d939fa4a09591867f7a74716f6e6d6d6e6f7174797e8590959fa39f938d80736b61554b4035291d1004000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000000000000000000000000000000000000000000000000000c18242f3947535f6a7683909ca9afa4998c8073665c504949494949494949494949494949494949494949494e5864717e8b97a2adaa9d9083776b6054443a2f24190d010000000000000000030d151d23292c2d2d2c292c343d44505b666f7c89949eac9f92877b6e61554b4034291c1004000000000000000000000000000000000000000000000005121e2a36424d57616e7a86929fa8a1978c8073685e52473d31271d110700000000000000000000000000000000030d1a25303b45525d6873808c98a2a99f92867b6e61554c4135291d11040000000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0807050200000000000000000000000000000000040607070606111c262f3d4854606b7784919daba2978a7e7164574d42362a1b1106000000000000000000000000000000000000000000020b1a26313b454f59616b707b838a9095989b9d9e9f9f9f9e9d9b9895908b837c6f6b717e8a97a4afa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e232523221f1b150f07000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000e1925303b45515d676f7c869299a2aaa49f928d86807c79767574747576787b7e838a9297a1a8b2bcb8ab9e9285796c605346392d20130600000000020e1a25313b46535f69737f8c949fa7a79f948f837c75706d676867676869696e737a818c919ca5aaa1978f82766c6155473d331e150b00000000000000000003101c28343f4a54626e7b88959faba7998c807366594f43303946525e687683909ca9a3998b7f7265574d42372b1b1106000000000000000005121e2a36424d576774818e9aa6a9a89b8e81756c605c5453514a504a5153555d606d7983919daaaea2988b7e7165584b3e2f24180d01000000000000000000000713202c3945525d68717e8a929da5a19791837b726d676462616060616264676d717a839096a1a59c928a7d70675d5145392c1f150a000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000000000000000000000000000000000000000000000000000007121d2b37434e5864717e8a97a1adab9e9184796d6056565656565656565656565656565656565656565656565f6a7683909ca9aea2988b7f7265594f4332281e130800000000000000000000030b12181c1f20201f1d2228333f4a54606b75828f9ca8a3998d8073675c5145382c1f140900000000000000000000000000000000000000000000000714202d3a46525e6974818d98a2aa9e92857a6d60564c41352b1f150b00000000000000000000000000000000000009141f2935414c56616d7a86929faca3988d8073675d5145392c20150a0000000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c00000000000000000000000000000000000000000000000000000a141d2c38444f5965727f8c99a3a99c8f8276695f5346382d22170b0000000000000000000000000000000000000000000a141d2a36424d57616b707d8690959d9fa7a8aaaaa39f9e9e9e9fa3a09d9590867d6f717d8a97a4afa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e22191615130f0a0400000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000009141f2935404b55606a707e879298a0a7a49d98928d898583828181828384878b90959ea1a9b2babeb2a99b8e8175665b5044382b1f1206000000000009141f2a36424d57606d78828f959fa7a69f959087817d79777574747476787b80858e939ca3aaa29892857b6e615a5044352b210c0300000000000000000006121f2c3844505c6673808d9aa7ab9f95887b6e6255483d3236414d5665727f8c98a7ab9d908376695f5347382d22170b0000000000000000020e1a25313c4855626f7c88949faaaa9e938a7e726d6662605c545d545c6062676d75808d95a0aca99f92867a6d6154473a2e2114070000000000000000000003101c28343f4a54606d7a85929ea4a79e91857b6e69605d55555453535455555c60686e7a84919ea8a49e9184796d6053473c31261b0f030000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070000000000000000000000000000000000000000000000000000010f1a26313c4653606d7985929eacada1968a7d70646363636363636363636363636363636363636363636363636e7b88949fabac9f92867a6d6054473d3221160c01000000000000000000000001070c10131414131017222d38424f5963707d8995a0ab9e9285796d6053473b31261a0e0000000000000000000000000000000000000000000004111d2935414c56616e7b86929faaa2988c7f73675d51443b3023190d03000000000000000000000000000000000000020d19242f3a46525e6874808d9aa6aa9f92857a6d6054473c31261b0f0300000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0000000000000000000000000000000000000000000000000000020b1c27333d4754616d7a86929fac9f93877b6e6153493f33271b0f030000000000000000000000000000000000000006111b262f3846535f69707d8792989fa7aba8a09d9898929191919299989d9f9892867c707d8a96a3afa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e221509080603000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000000020c18242f39434e58616c707d8690959ea1a9a29f9a9892908f8e8e8f8f9196989da09f9da0a8b2b9ada1978a7d7063544a3f33281c0f030000000000030e1a26313b44505c666d7a8390959da5a7a099938e898683828181818385888c92979da5a7a09892867d70695e52483e3323190f000000000000000000000713202d3a4653606d7985919eabab9d908377695f53473a2b303b4854616e7b8795a0ab9f95887b6e6253493f33271b0f0300000000000000000915212e3b47535f6a76828f98a2aea59f92877f78726f6d666a696a666d6f7379818d929da7aca2978d8074685d5246392d2013070000000000000000000006121f2b3844505c66737f8c97a1ab9f958a7d70695f57514b4847464747484b51565e68717e8a96a0aca1968b7f7265584e43372b1f12060000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000000000000000000000000000000000000000000000000000009151f2c3845515c6673808d9aa4afa99c8f82757070707070707070707070707070707070707070707070707074808d9aa6b0a79b8e8174685d5245392c201304000000000000000000000000000000040607070606111c262f3d4854606b7784919daba2978a7e7164574d42362a1b11060000000000000000000000000000000000000000000713202c3945525d6874808d99a3ab9f92857a6d60554c4132291e1107000000000000000000000000000000000000000008131e2935414c56626f7b88949faba2988b7f7265584e43372b1f120600000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0000000000000000000000000000000000000000000000000000000b13202d3a4653606d7985929eaba49a8c8073655b5044372b1f1207000000000000000000000000000000000000000b17222d3841505a616e7b859299a2aaaba39f96918c888584848586888c90959e9891847a7d8996a3afa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e221508000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000007121d27313d46505a616b707c838b91979c9fa3aaa29f9d9c9b9a9b9c9ea1a29f9a939196a0acb8ab9e9184796d6053463a2d22170b0000000000000009141f28343f4a545e686d7a838e929d9fa7a49f9b9892908e8e8d8e8f9197999ea1a9a29e9590867d706b60574d42362c22110800000000000000000005111d2a36414c5663707d8a97a1ada3998c7f7265574d42372b2d3a46535e697783909daaa7998d8073655b5044372b1f1207000000000000000006121f2b37434e58626f7c86929fa4aca399928b837f7b797777767777797c80858e939da4aea49a92857a6d61564c4135291d1105000000000000000000000713202d3a4653606d7984919ea9a99d9083766b61574d45403c3b3a3a3b3c40454c56606c7884919eaaa89d9184776a5f53473a2e2115080000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000000000000000000000000000000000000000000000000000004101c2834404b54616e7b87939facac9f93877d7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7d85929fabaca095897c6f63564c4135291d11040000000000000000000000000000000000000000000a141d2c38444f5965727f8c99a3a99c8f8276695f5346382d22170b0000000000000000000000000000000000000000000714212d3a4754606d7a86929faba69a8d8074685d52433a2f20170d000000000000000000000000000000000000000000010d1925303a47535f6a7683909cacaa9d9184776a5f53473a2e21150a00000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c000000000000000000000000000000000000000000000000000005111d2a36414c5664707d8a97a1adac9e9184786c605346392f24180c000000000000000000000000000000000000030f1b27333f4953616c76828f97a2ababa399928c847f7b79787778797b7f838a9197968e817d8996a3afa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e221508000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000010b151f2b343e485059616a6e787e858a8f9299999b9d9e9f9f9f9e9e9c9998928e8684919daab0a69a8d8073665c5044382b1c110600000000000000030b17232e38424c565e686d79818990959b9fa2aaa39f9d9b9a9a9b9c9ea1a9a49f9c97928c837b706b60594f453b30241a10000000000000000000000713202d3946525e6875828f9ba9ac9f92867a6e6154473c31262a36424d5766737f8c99a7ab9e9184786c605346392f24180c0000000000000000030f1b26323c47535f6a717e8b939aa2aaa39f95918c8886848483838485898c92979ea5aaa39f93887d70685e52443a3024190d0100000000000000000000091623303c4956636f7c8996a1adab988b7f7265594f453c352f2e2d2d2e2e343b44505b6674808d9aa7aca095887b6f6255483c2f2215090000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000000000000000000000000000000000000000000000000000000000c18232e3946535f6976828f9ca9afa499938a89898989898989898989898989898989898989898989898989899297a2adaa9d9084776b6054443a2f24190d01000000000000000000000000000000000000000000020b1c27333d4754616d7a86929fac9f93877b6e6153493f33271b0f030000000000000000000000000000000000000006131f2b37434e5865727f8c98a2ab9f94887b6e62564c4131281e0e050000000000000000000000000000000000000000000008131e2b37434e5865727f8b9aa4aca095887b6f6255483c32261b0f03000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c00000000000000000000000000000000000000000000000000000713202d3946525e6875828f9ba9b3aca196897c6f63554b4035291d1004000000000000000000000000000000000005121f2b3744505b65717e8a949fa9aea39992877f78726e6c666b666d6f72777e859095938c7f8c99a6afa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e221508000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000000030d19222c363e474f575f666d72797e82868a8c8e909192929292918f8d8a86817c838f9ca9aa9e93887b6e62544a3f34281c0a00000000000000000006111c26303a444c565e676d747c83898e9298999b9d9e9f9f9f9f9e9d9b999993908b857f786e6960594f473d33291f1208000000000000000000000714212e3a4754616d7a86929facaa9c8f8276685e5246392a2025313b4855626e7b8895a0aca196897d7063554b4035291d100400000000000000000a15202b37434e58616c727f8892989fa3a7a09d99999291909090919298999ea2a9a69f98928b7f726c61564c4132281e130800000000000000000000000c1926333f4c5966727f8c99a8afa499887b6e6255483e332924212020212328333f4a5464717d8a97a4b1a7988b7e7265584b3f3225180c0000000000000000000203101d2a3643505d69768390908376695d5043362a1d10030200000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070000000000000000000000000000000000000000000000000000000007121d2a36424d5764707d8a96a1adaba49f9796969696969696969696969696969696969696969696969696969fa2a9aea2988b7f7265594f4332281e130800000000000000000000000000000000000000000000000b13202d3a4653606d7985929eaba49a8c8073655b5044372b1f1207000000000000000000000000000000000000000815212e3b47535f6a7784919daaac9c8f83766a5f53443a301f160c0000000000000000000000000000000000000000000000020f1a26313c4754616e7b87939faca7998c807366584e43372b1f1306000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c00000000000000000000000000000000000000000000000000000714212e3a4754616d7a86929facb9b2a89a8e8174675d5145382c1f140800000000000000000000000000000000000613202d394653606c7883909da6b0a79f92877d726d6662605b545c6062656c717a8390969285929facafa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e221508000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000007101a232c353e454e545c60676d71767a7d7f828385858686858482807d79757d89949faba69b8f82756a5f5342382e23170b000000000000000000000a141e28323a444c555c606b6f777d8185898c8e90919292929291908f8d8a86837e79726d665f574f473d352b20170d0000000000000000000006131f2b37434e5865727f8b99a3aea2988b7e7164564c41362a18212e3a47535f6a7784919daaa89b8e8174675d5145392c1f14090000000000000000040f1a26313c46505a636d727e868e92999da0a8aba39f9e9d9c9d9e9fa2aaaaa29f9b948f867e726d62594f443a3020160c0200000000000000000000020f1c2935424f5c6875828f9ba8ac9f9386796c605346392d20181413141418222d3c4956626f7c8995a2afa79a8e8174675b4e4134281b0e01000000000000050a0f12101d2a3643505d69768390908376695d5043362a1d10120f0a050000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000305101d2a3643505d69768390908376695d5043362a1d1005030000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000e1a26313b4653606d7984919eabb5afaca3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3abadb3ac9f92867a6d6054473d3221160c010000000000000000000000000000000000000000000005111d2a36414c5664707d8a97a1adac9e9184786c605346392f24180c000000000000000000000000000000000000000916222f3c4955626f7c8896a0aca49a8b7e7265574e4232281e0d040000000000000000000000000000000000000000000000000a15202d3a46525e697683909da9aa9e9184776a5f54473b2e221506000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0000000000000000000000000000000000000000000000000006131f2b37434e5865727f8c99a3aeb7b8ab9f9285796d6053473b3025190e02000000000000000000000000000000030f1c28333f4a5463707c8995a0acab9f958b7f726b605c5453504a5153555a61686e7a8491989298a2aeafa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e221508000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0600000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000000000008111a232c333c424a50555c6064676d707375767878797978777673716d7883909da6ac9e93887c6f62584e4330261c110600000000000000000000020c162029323a434b515960636b7075797c7f82838485868685858382807d7a76726d67605c544d453d352b23190e05000000000000000000000815222e3b47545f6a7783909dabac9f92867a6d6054473b3025191e2b37424e576673808c99a8ab9f9285796d6053473b3025190e0200000000000000000a15202a343e48515b636c717b81878c919597999c9d9e9e9f9f9f9e9d9b9998928e89827b716c625b51473e32281e0e04000000000000000000000003101d2a3643505d697683909ca9ab9e928578665b5044382b1f120707070715222e3b4855616e7b8894a1aea89b8f8275685c4f4235291c0f0200000000010910161b1e20202a3643505d69768390908376695d5043362a20201e1b16100901000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000060b0f12131d2a3643505d69768390908376695d5043362a1d13120f0b06000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000000000000000000000000000000000000000000000000000000000009141f2c3844505c6673808c99a3afbbb9b1acaa9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa7a9afb8bab1a79b8e8174685d5245392c20130400000000000000000000000000000000000000000000000713202d3946525e6875828f9ba9b3aca196897c6f63554b4035291d1004000000000000000000000000000000000006131f2b37434e586673808d99a8ac9f93877b6e6154473c3121160c0000000000000000000000000000000000000000000000000005111e2a36424d5765727f8c98a9aca096887c6f6255493c2d22170b000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c000000000000000000000000000000000000000000000000000815222e3b4754606a7783909dabacababaea2988a7e7164564c41362a1e110500000000000000000000000000000006121f2b3844505b6674818e9ba7b1a99d9083786c6059504a46444044464850565e68707d89939fa2aab4afa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e221508000000000000000000000713202d3a4653606d798693a0aca79a8d8174675a4e412d22170b00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000000000000000008111a212a30383f444b5153555d606366686a6b6c6c6c6b6b696668717e8b95a0aca49a8f82756a5f54463c311e140a000000000000000000000000050e172029313940454f54596063676d70727576787879797878777573706d6865605d55504a423c332b231911070000000000000000000004101c2834404b55626f7c8895a0aca99b8e8175675d514539291e141a26313c4955626f7c8896a0aca2988a7e7164564d42362a1e11050000000000000000030e18222d363f49515a61696e747b8084888b8d8f90919292929291908e8c8985817c766e69615a51493f352c20160c00000000000000000000000004111e2b3744515e6a7784919daaab9e9184786b554b4034281c100400000814212e3b4754616e7a8794a1ada99c908376695d5043362a1d1003000000010a131b21272b2d2d2d3643505d69768390908376695d5043362d2d2d2b27211b130a010000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000020a11171b1f202a2d3643505d69768390908376695d5043362d2a201f1b17110a0200000000000000000000000000101d2a3643505d69768390908376695d5043362a1d10000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000000000000000000000000000000000000000000000000000000000003101c28343f4a54616e7b87929facb9b1a7a0939393939393939393939393939393939393939393939b9ea5afb8aca095897c6f63564c4135291d110400000000000000000000000000000000000000000000000714212e3a4754616d7a86929facb9b2a89a8e8174675d5145382c1f140800000000000000000000000000000000000815222e3b4754606a7784919eaaa99c908376685e5246392d20140400000000000000000000000000000000000000000000000000020e1a25303b4855616e7b8896a1ada8998c7f7366544a3f33281c0f030000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c00000000000000000000000000000000000000000000000004101c2834404b55626f7c8895a0a8a19e9fa2aa9c8f8275685e5246392d20150a0000000000000000000000000000000613202d394653606c7985929eabada1978a7d70655b50443f393834383a3e444c56606b75828f9ba8b1bcafa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e221508000000000000000000000713202d3a4653606d798693a0aca89b8e827568544a3f33281c0f03000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000000000000030e1a242f3841474c4e4c474c515457595b5d5e5f5f5f5f5e59616d7a85929ea7a89f93877c6f62584e43342a200c0200000000000000000000000000050e171f272f343d43484f54555c606366686a6b6c6c6c6c6b6a686664615e5653514b443f38302a21191108000000000000000000000006131f2c3845515c6774808d9aa7ada1978a7d7063554b413529170d15212e3b47535f6a7784919eaaaa9c8f8276695e52463a2d20150a00000000000000000006101b242e373f4850575e61696e73777b7e80828484858686858583827f7d79756f6b625f5750483f372d231a0e0400000000000000000000000004111e2b3744515e6a7784919daaab9f928578675c5145382c1f130f0b0c1015222f3b4855626e7b8895a1aea99c8f8376695c504336291d100300000009131c252c33373939393943505d69768390908376695d50433939393937332c251c13090000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000020b141b22272b2d37393943505d69768390908376695d50433939372d2b27221b140b0200000000000000000000000811192a3643505d69768390908376695d5043362a1911080000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000c17232e3846525e6975828f9ca8b2aca095898686868686868686868686868686868686868686868e939ea9b4aa9d9084776b6054443a2f24190d010000000000000000000000000000000000000000000006131f2b37434e5865727f8c99a3aeb7b8ab9f9285796d6053473b3025190e02000000000000000000000000000000000916222f3c4955626f7c8896a0aca8988c7f7265564d41362a1e110500000000000000000000000000000000000000000000000000000914212d3a46535f697884919eaba99c8f8276665b5044382b1f12060000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c00000000000000000000000000000000000000000000000006131f2c3845515c6774808d9aa7a196919298a29f92867a6e6154473c31261b0f0000000000000000000000000000000916222f3c4955626f7c8897a1adab9e9285796d6053493f342e2b282c2d323b444f59626f7c8995a0acb8afa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e221508000000000000000000000713202d3a4653606d798693a0aca99c8f8376665b5044382b1f120700091623303c4956636f7c8996a2afa4988b7e7165584b3e3225180b00000000000000000008141f2b36414a52585a5954524c474a4c4f50525253534c56616b74818e97a1ada1968d81746a5f54463c3222180e000000000000000000000000000000050d151d232932383d44484b515356595b5d5e5f5f5f5a61646c6c6c6c66635c524739342e261e180f080000000000000000000000000713202d3a4653606d7985929eabab9e9285796d6053463a2f241807131f2b37434e586773808d9aa8ac9f93877b6e6154473c32261b0f0000000000000000000009121c252e363e454d52575f62666a6e71737577787879797978777573706d67636059534d453e362d251b11080000000000000000000000000003101d2a3643505d697683909ca9aea29886796d6053463a2f241f1c17181c1f262f3d495663707c8996a3afa89b8f8275685c4f4235291c0f02000005101b252e373e434646464646505d69768390908376695d504646464646433e372e251b100500000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000a141d262d33373943464646505d69768390908376695d50464646433937332d261d140a0000000000000000000009111a232b3443505d69768390908376695d5043342b231a110900000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000006111c2a36424d5763707d8a96a1acaa9d9083797979797979797979797979797979797979797979818e9ba7aea2988b7f7265594f4332281e130800000000000000000000000000000000000000000000000815222e3b4754606a7783909dabacababaea2988a7e7164564c41362a1e110500000000000000000000000000000003101c28343f4a546673808c99a8ada196887b6e6155483b3025190e02000000000000000000000000000000000000000000000000000005121e2a36424d576875828f9ba8ab9f9285796c605346392d2013060000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0000000000000000000000000000000000000000000000000713202d3a4653606d7985929fab9e918485929fa3998c7f7265584e43372b1c110600000000000000000000000000000c1926323f4c5965727f8c98a9b3a89b8e8175665c5041382d231f1c1f2029323d4854606a7784919daab7afa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e221508000000000000000000000713202d3a4653606d798693a0acab9f9285796c605346392e23180d060a1723303d4a5663707d8996a3b0a4978b7e7164584b3e3125180b0000000000000000000b1724303c47525c646766615e56544e46454045453f49535d68707d8a939da9a59e91847a6d60584e43342a200f0600000000000000000000000000000000030b121821272c323839404546494c4f50514a505b636c7079797979736e63574b3f32231c150c0600000000000000000000000005111e2a36424d5664717d8a97a2ada89a8d8174665c514438281d13070f1b26323c4956626f7c8996a1ada4998c7f7265584e43372b1c1106000000000000000000000a131c242c333b42464d5355575f626466696a6b6b6c6c6c6b6a686663605d55544f47423c332d241b13090000000000000000000000000000020e1b2835414e5b6874818e9ba7b3aa96897c6f63554b40352f2b282223282c3038414e5865727f8c98a5b5ab9a8d8073675a4d4034271a0d0100000a16212c3740494f5353535353535d69768390908376695d5353535353534f4940372c21160a00000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000006111b262f383f444650535353535d69768390908376695d535353535046443f382f261b1106000000000000000006121b232c353d464e576976839090837669574e463d352c231b1206000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000e1a25303b4653606c7884919eabaca095897c6f6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6d7a86929facac9f92867a6d6054473d3221160c010000000000000000000000000000000000000000000004101c2834404b55626f7c8895a0a8a19e9fa2aa9c8f8275685e5246392d20150a00000000000000000000000000000006121f2b3844505c6676828f9ca9ab9e918478695f53463a2d1f1408000000000000000000000000000000000000000000000000000000020e1a26313f4c5965727f8c98abaea298887c6f6255483c2f2215090000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c000000000000000000000000000000000000000000000005111e2a36424d5764717e8a97a2a99a8d80818e9baa9d9083776a5f5347382e23170b00000000000000000000000000020f1b2835424e5b6875818e9ba8b5ab988b7e7165544a3f2f261b12101217202c38434e586673808d99abb5afa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e221508000000000000000000000713202d3a4653606d798693a0acada297887c6f62544a4034281f1612101724313e4a5764717d8a97a4b0a4978a7e7164574b3e3124180b0000000000000000000d1a2633404c58646e74736e6862605853514b464244505b656d7a84919ea5a79e938a7d70675d51463c3222190e00000000000000000000000000000000000001070c161b21272c2e34383a3d3f42444c545c606d727e868686868073665a4d4033271a0a03000000000000000000000000000714202d3a46525e6975828f9ca9aca096897c6f63544a403428160c010a13202d394653606c7884919eabab9d9084776a5f5347382e23170c00000000000000000000010a121a212930363c4247484e5355585a5c5d5e5f5f5f5f5e5d5b595653514b48433d37312a211b1209010000000000000000000000000000000c1925323f4c5865727f8b98a7b1a6998c8073675d5145403938332d2e34383a4149535f6a76828f9ca9afa4998a7e7164574b3e3124180b0000000f1b27333e49525a5f60606060606069768390908376696060606060605f5a52493e33271b0f00000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000b17222d38414950535d6060606060697683909083766960606060605d53504941382d22170b000000000000020a1117242d363e474f585f69768390908376695f584f473e362d2417110a0200000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000009141f2b3844505b66727f8c99a3aea79a8d8174675c606060606060606060606060605765717e8b98a2aea79b8e8174685d5245392c201304000000000000000000000000000000000000000000000006131f2c3845515c6774808d9aa7a196919298a29f92867a6e6154473c31261b0f0000000000000000000000000000000713202d3a4653606d7985929faba89b8e827568574d42362a1e0d0200000000000000000000000000000000000000000000000000000000091623303c4956636f7c8999a3aeaa988b7e7265584b3f322518070000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c00000000000000000000000000000000000000000000000714202d3a46525e6976828f9ca9a297897d7d8a98a2a095887c6f62544a3f34281c100300000000000000000000000005111d2a36414c566a7784909daaafa499887c6f6255483c2e22140a04060e1b27323d495663707c8999a4afafa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e221508000000000000000000000713202d3a4653606d798693a0acb3a9998c7f73665c51443b3128201f1c1f25323f4c5865727f8b98a5b0a3968a7d7063574a3d3024170a0000000000000000010e1b2734414e5a6774807f7a756f6a64605c55524d505a606c77828f96a1a9a0958e81756b61554c41342a2010070000000000000000000000000000000000000000040a0f161b1d23282c2d343d454d565d666d747f87929892857b6e6154473b2e21140800000000000000000000000000000814212e3b4754616e7b86929facaa9e9184776b605442392e2318040005121f2b3744505b6574808d9aa9aca095887c6f62544a3f34281c10030000000000000000000000080f171f252a31373a3c4247484b4d4f51515253535252504f4c4a4745403938322b2620180f0900000000000000000000000000000000000815222f3b4855626e7b88959fabab9e9185796d605a514b46443f42424045464c525b656e7b87939facac9f93867a6e6154473b2e211408000000121e2b37434f5a646c6c6c6c6c6c6c6c7683909083766c6c6c6c6c6c6c6c645a4f43372b1e1200000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000030f1b27333f49535b606a6c6c6c6c6c6c7683909083766c6c6c6c6c6c6a605b53493f33271b0f0300000000020b141b2227363f485059606a6f7b859191857b6f6a605950483f3627221b140b02000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000030f1c28333f4a54616e7a86929facab9f9285796d60535353535353535353535353535f697683909caaaca095897c6f63564c4135291d110400000000000000000000000000000000000000000000000713202d3a4653606d7985929fab9e918485929fa3998c7f7265584e43372b1c110600000000000000000000000000000916222f3c4955626f7c8898a2aeab988c7f7265594c3f31261a0e02000000000000000000000000000000000000000000000000000000000714202d3a4753606d7986929faca79b8e8174685b4e412e23180c0000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c00000000000000000000000000000000000000000000000814212e3b4754616e7b87939fab9e9285797985929fa79a8d8073665c5044382b1f13070000000000000000000000000713202d3946525e687985929facac9f93867a6d6053473a2d20140700000a14202d3a4753606d7a86939facafa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e221508000000000000000000000713202d3a4653606d798693a0acb8ab9e9184796d60574d433a322d2c282b2d36414c566774808d9aa7b3aa95897c6f6256493c2f2316090000000000000000020f1c2935424f5c6875828c86817c76716d67615e5759616c727f8c949ea9a2979083796d60594f433a2f22190e0000000000000000000000000000000000000000000000040b0c151d2328363e464f575f686d78818c939993877d70695e52463a2d2014070000000000000000000000000007131f2c38434f5966727f8c99a3afa7998c807366594f4330271c120700030f1b27333f495363707c8997a1ada79a8d8074665c5044382c1f1206000000000000000000000000050d141a1f262b2e31373a3b3e4042444545464646454442403d3a38352f2c27211a150e060000000000000000000000000000000000000814212e3a47535f6a7683909da6ada1978c80736c605c5553504a4e4f4b5153565d616c77828f99a4afa69c8f8276685e5246392d20140700000013202d3946535f6c767979797979797979839090837979797979797979766c5f5346392d201300000000000000000000101d2a3643505d69768390908376695d5043362a1d0a0000000000000000000005121f2b3744505b656c76797979797979798390908379797979797979766c655b5044372b1f1205000000000a141d262d334048505a616b6f7c8591979791857c6f6b615a504840332d261d140a000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000b17222d3846525e6875828e9ba8ada2978a7e7164574d42464646464646463f4a54626e7b88949fabaa9d9084776b6054443a2f24190d010000000000000000000000000000000000000000000005111e2a36424d5764717e8a97a2a99a8d80818e9baa9d9083776a5f5347382e23170b00000000000000000000000000000c1825323f4b5865727e8b98aaaea399897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000006131f2c3845515c677784919eaaa99c90837669554b4034281c100400111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0000000000000000000000000000000000000000000007131f2c38434f5966727f8c99a4aa9b8e817475818e9baa9e9184796d6053463a2f24180d0100000000000000000000000714212e3a4754616d7a8798a2aeab9e918478675c5145382c1f1306000006131f2c3945515d677784919eaaafa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e221508000000000000000000000713202d3a4653606d798693a0acb9ada1968b7e71695e554c443e3a383437393e46525e687683909ca9aea298877a6e6154473b2e2114080000000000000000020f1c2935424f5c6875828f928e89837e79736e6963606b707e88939fa6a39992857b6e675d51473e31281e10070000000000000000000000000000000000000000000000060e161e272e344048505960696e7a828e939f948c7f736b60574d42362a1e1105000000000000000000000000000915222f3b4854606b7784919d9f9f9f95887b6e6255483d3222150b0000000b17222d3a4653606d7985929e9f9f9e9185796d6053463a2d2013070000000000000000000000000002090e151a1e21262b2e2f31333637383839393938373533302d2c29241d1b160e09030000000000000000000000000000000000000006121e2b37424e5764707d8a949fa9a99c928b7e746d6762605b545b5b555c6062686d75808d949eaba99e94897d7063564c41362a1e110500000013202d394653606c798686868686868686909494908686868686868686796c605346392d2013000000000000000000020b142a3643505d69768390908376695d504331261a0b020000000000000000000613202d394653606c798386868686868686909494908686868686868683796c605346392d20130600000006111b262f383f44515a626c707d8591938e8e9391857d706c625a51443f382f261b11060000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000006111c2a36414c5663707d8996a0aca99c8f8276695e5246382d393939393844505c6673808d99a6aea2988b7f7265594f4332281e130800000000000000000000000000000000000000000000000714202d3a46525e6976828f9ca9a297897d7d8a98a2a095887c6f62544a3f34281c1003000000000000000000000000020e1b2835414e5b6874818e9ba7ac9f9286796d6053473a2d201407000000000000000000000000000000000000000000000000000000000004101c2934404b556976828f9ca9ab9e918478675c5145382c1f130600111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c000000000000000000000000000000000000000000000915222f3b4854606b7784919eaba2988a7d70707d8a98a2a197897d7063554b4135291d110400000000000000000000000915222f3c4855626f7b8895aab4a99d9083766a554b4034291c1004000004101d2935404b556976828f9ca9afa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e221508000000000000000000000713202d3a4653606d798693a0acb1a8a09d92857b6e675e56504846443f4446484f58616d7a86929facab9f928578695e52463a2d2014070000000000000000020f1c2935424f5c6875828f999b95908b85807b756f6b6f7d86929aa4a49f92877d70695f554b41352c1f160c0000000000000000000000000000000000000000000000070f18202830394045525a616b6f7b838f949d968f82776c60594f453b30251a0e0200000000000000000000000000091623303c4956636f7c8996939393939083776a5f53473a2e21140300000006121f2b3844505c6674818e93939393978a7d7063574a3d3024170a00000000000000000000000000000003090e12151a1e21222527292a2b2c2c2c2c2b2a282623201f1d18120f0a04000000000000000000000000000000000000000000020e1a26313c4955616c76828f97a1aaa49f93888079736f6c6669686869676d6f747a818d929ca6aaa1978f82766b6055443b3025190e0200000013202d394653606c798693939393939393969696969393939393939386796c605346392d20130000000000000000000a141d2b37434e586976839090837669584e43372b1d140a00000000000000000005121f2b3744505b656f7c899393939393939c9f9f9c939393939393897c6f655b5044372b1f12050000000b17222d384149505b636c717e8692928c81818c9292867e716c635b504941382d22170b0000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000000000d1925303b4854606b7784919daaac9f93877b6e6153493f33272d2d2d3a4653606d7984919eabac9f92867a6d6054473d3221160c0100000000000000000000000000000000000000000000000814212e3b4754616e7b87939fab9e9285797985929fa79a8d8073665c5044382b1f130700000000000000000000000004101c2934404b55697683909ca9aa9e918477675c5145382c1f13060000000000000000000000000000000000000000000000000000000000000c18232f414e5b6774818e9aa7ac9f9386796d6053463a2d20130700111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c00000000000000000000000000000000000000000004101d2935404b55636f7c8996a0ab9f9285796d6d7985929fa99b8e8175675d5145392c20140900000000000000000000000a1623303d495663707c8996a3afa89c8f8275695c4f422f23180c000000000c18242f414e5a6774818d9aa7afa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e221508000000000000000000000713202d3a4653606d798693a0acaca09591959082796d68615a5553504a50535459616a73808c99a3afa99c8f827669564d42362a1e11050000000000000000000d1a2633404d59667380878c91979c97928c86827c777c859298a2a49a938b7f726b60574d433a2f231a0d0400000000000000000000000000000000000000000000071019212a323a434b515b636c717d8591959f9991847a6d655b50473d33291f140900000000000000000000000000000e1b2834414e5b677481868686868686867f7265574e42372b1e120600000003101c28343f4a5463707d868686868686868175685b4f4235281c0f00000000000000000000000000000000000206090e121415181a1c1e1e1f20201f1f1d1c19171413100c07010000000000000000000000000000000000000000000000000915202d3944505a616e7b859298a1a9a49a938d85807b79767575757677797c81858e939ca4a9a19892857b6e61594f4432291e14080000000013202d394653606c798693928d8989898989898989898989898d929386796c605346392d2013000000000000000006111b262f3847535f6a7683909083766a5f53473d2f261b11060000000000000000030f1b27333f4953606b75828f99a39f9f9fa9ababa99f9f9fa3998f82756b6053493f33271b0f030000030f1b27333f49535b606d737e8792928b807474808b9292877e736d605b53493f33271b0f0300000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000008141e2c38444f5965727f8c98a3aea4998c7f73655b5044372b1f2a36414c5663707d8a97a1ada79b8e8174685d5245392c201304000000000000000000000000000000000000000000000007131f2c38434f5966727f8c99a4aa9b8e817475818e9baa9e9184796d6053463a2f24180d01000000000000000000000006131f2c3845515c677885919eaba99c8f827669554b4034291c1004000000000000000000000000000000000000000000000000000000000000071926333f4c5966727f8c99a5afa49a887b6e6255483b2f22150800111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0000000000000000000000000000000000000000000613202c3945515d6774818e9aa8aa9b8e8175676775818e9baa9f92867a6d6054473b31251a0e02000000000000000000000a1724313d4a5764707d8a97a3b0a89b8e8175685b4e4235281b0700000000071a2633404d596673808c99a6afa295887c6f6255493c2f2216090000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e221508080400000000000000000713202d3a4653606d798693a0acaa9d9184919590837a716c6662605c545b6061646b707c87929fabb0a6998c7f7266594c3f3025190e020000000000000000000c1926323f4b57636e737b80858a90949a99928e8984869297a2a49a93887f726d62594f453b3128221c140b020000000000000000000000000000000000000000040f19222b333c444c555c606d737e869297a09f92877c6f685d53493f352b20170d0200000000000000000000000000000d1a2733404c59646f7479797979797979726d6256453c31261a0e02000000000b17232e384855616b7079797979797979756f65594d4034271b0e0000000000000000000000000000000000000000020608080b0d0f11121213131312110f0d0a07060400000000000000000000000000000000000000000000000000000003101c28333e46525e696f7c8692979fa6a49f97918c888583828182828386898d92989ea5a69f9792867c6f695e52473d3320170d020000000013202d394653606c7986938d807d7d7d7d7d7d7d7d7d7d7d7d808d9386796c605346392d201300000000000000000b17222d38414f59626f7c879292877c6f62594f41382d22170b0000000000000000000b17222d38414f59616e7b86929fa9b3acb6b7b7b6acb3a99f92867b6e61594f41382d22170b00000005121f2b3744505b656c747f8b9292877e736d6d737e8792928b7f746c655b5044372b1f120500000b1825323e4b5865717e8b98a4aca295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000002101c27333d4754616d7a86929facab9e9184786c6053463a2f242d3946525e6875828f9ba9aca095897c6f63564c4135291d110400000000000000000000000000000000000000000000000915222f3b4854606b7784919eaba2988a7d70707d8a98a2a197897d7063554b4135291d110400000000000000000000000714202d3a4753606d7a86939faca79a8e8174675b4e412f23180c000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a97a4b6ac96897d7063564a3d3023170a00111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0000000000000000000000000000000000000000000714202d3a4753606d7a85929faca3988a7d716464707d8a98a2a2988b7e7165574d42362a1e1205000000000000000000000b1724313e4a5764717d8a97a4b0a79a8d8174675a4e4134271b0e010000000c1926323f4c5965727f8c98a5afa295887c6f6255493c2f2216090000000000050c1925323f4c5865727f8b98a5aea194887b6e6155483b2e22171614100b050000000000000713202d3a4653606d798693a0aca4978a7e85929590847e77726f6d666b656c6e71767d859299a3aeac9f94887b6e6155483b2e221509000000000000000000000a17232f3b47525c63696e73797e83888d92989b95909298a2a99f93887f726d625b514c47433c332d261d140a00000000000000000000000000000000000000000a16212b343d454d565e676d757f8a9298a19e938b7f726a60564c41382d23190e050000000000000000000000000000000b1824303c48535d64676c6c6c6c6c6c6c65625b5146332a201509000000000006111c2c38444f5961636c6c6c6c6c6c6c68655d53483d3125180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222a36424d57606a6f7c858f949ea1a8a19e999892908f8e8e8f9092999a9fa2a8a09e948f857c6f6a60564d42352c210e05000000000013202d394653606c7986938b7e7270707070707070707070727e8b9386796c605346392d201300000000000000030f1b27333f4953606b75828f99998f82756b6053493f33271d1207000000000000000006111b262f3d46535f6974808d97a2adbac3c4c4c3b9ada2978d8073695f53473d2f261b11060000000613202d394653606c77808c9192867d716c63636c717d8692918c80776c605346392d20130600000b1825323e4b5865717e8b989f9f9f95897c6f6256493c2f23160900000d1a2733404d5a6673808d999f9f9f9386796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000b16202d3946525d6875818e9ba7aca096897c7063554b4135292e3a4754616d7a86929facaa9d9084776b6054443a2f24190d010000000000000000000000000000000000000000000004101d2935404b55636f7c8996a0ab9f9285796d6d7985929fa99b8e8175675d5145392c20140900000000000000000000000815222f3b4855626e7b889aa4afa5998c7f7266594c3f3326190700000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978b7e7164584b3e3125180b00111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c000000000000000000000000000000000000000005121e2a36424d5764717e8b98a2ac9f92867a6d60606d7985929faa9c8f8376695e53463a2d21160a000000000000000000000b1824313e4b5764717e8a97a4b1a79a8d8174675a4e4134271b0e010000000c1825323f4b5865727e8b98a5afa295887c6f6255493c2f221609000000000810171c25323f4c5865727f8b98a5aea194887b6e6155483b2e262423201c17100800000000000713202d3a4653606d798693a0aca4978a7e7e8b9296918a837f7b79787778797b7e828a9297a2abafa49a8f8276695f53473a2d2114080000000000000000000007131f2a35404a52575e61666d71767c81869196a09d9fa2aaa6998c8075706b65605d55534e443f382f261c1106000000000000000000000000000000000000030f1b27323d464e575f686d79818c929fa3a0958e81756d62584e443a2f261b1108000000000000000000000000000000000814202b36414a53595b60606060606060595651493f3521180e03000000000000101c28333e474f5557606060606060605b59534b41372c2014080000000000000000000000000000000000000000000000000406070a0d0f11121313131212100e0c0906060300000000000000000000000000000000000000000000000000050e1a25303b454e58606a6f7b828b91969c9fa3aaa29f9d9c9b9b9c9d9fa3aba39f9b96918a827b6f6a60584e443b30231a0f00000000000013202d394653606c7986938b7e7265636363636363636365727e8b9386796c605346392d2013000000000000010c161f2b3744505b65707d89949e9e94897d70655b5044392e23180c0100000000000000000a141d2b37424d57606d7a85929fa8b2bdc8c8bdb2a89e92857a6d60574d42352b1d140a000000020f1b2835424e5b6875818d9292857c706b625a5a626b707c8592928d8175685b4e4235281b0f02000b1825323e4b5865717e8b9393939393897c6f6256493c2f2316110b0b101a2733404d5a6673808d939393939386796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000000000005111d2935414c56636f7c8995a0aca89b8e8174675d5145392c37434e5865727f8b99a3aea2988b7f7265594f4332281e130800000000000000000000000000000000000000000000000613202c3945515d6774818e9aa8aa9b8e8175676775818e9baa9f92867a6d6054473b31251a0e02000000000000000000000a1724303d4a5763707d8a96acb6a4978a7e7164574b3e3124180b000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa5988b7e7265584b3f3225180c00111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c00000000000000000000000000000000000000000714212d3a46535f6976838f9caaaa9b8f8275675d5d6775828e9baa9f93877b6e6154483d32271b0f000000000000000000000b1825313e4b5864717e8b97a4b1a79a8d8074675a4d4134271a0e010000000b1825323e4b5865717e8b98a4afa295887c6f6255493c2f22160900000008121a22282d323f4c5865727f8b98a5aea194887b6e6155483b333331302d28221a1108000000000713202d3a4653606d798693a0aca4978b7e74818e949e95908c888685848585878b8f949fa2a9aea59f93877c6f62574d42372b1e120600000000000000000000020e19242e3840454d52545c60646a6f747b84919eaba39f9da09f9287827d77726d67625f58504a42382d22170b00000000000000000000000000000000000007131f2c38434e5860696e7a828e939ca4a2989183796d605b51463d32281d140a0000000000000000000000000000000000030f1a252f3841484c4e535353535353534c4a463f372d230f06000000000000000b16212c353e44484a535353535353534f4d4841392f251a0f0400000000000000000000000000000000000000000001070c10131416191c1d1f1f20201f1e1d1b191613120f0b0600000000000000000000000000000000000000000000000009141f29333d464e5860696e767e848a8f9299999b9d9e9f9f9f9f9e9d9b9999928f8a847e766e6960584e463d32291f110800000000000013202d394653606c7986938b7e7265585656565656565865727e8b9386796c605346392d201300000000000008131e2834404b54606c7883909da6a69d9083786c60544b4034281e13080000000000000000020b1a26313c45525d68727f8c96a0acb9c2c7b8aca0968b7f72685d52453b3123190b02000000000b1724313e4a5764717e869293877f746d665d5d666d747f879392867e7064574a3d3124170a00000b1825323e4b5865717e868686868686867c6f6256493c2f23221d16161b202733404d5a66738086868686868686786d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000010d1924303a4854606b7783909daaac9f92857a6d6054473c313b4754606a7783909dabac9f92867a6d6054473d3221160c0100000000000000000000000000000000000000000000000714202d3a4753606d7a85929faca3988a7d716464707d8a98a2a2988b7e7165574d42362a1e1205000000000000000000000b1825313e4b5864717e8b97a4afa296897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000815222f3b4855626e7b8895a1aea5988c7f7265594c3f3226190c00111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c00000000000000000000000000000000000000030f1c28333f4a54616e7b87939faca2988a7e7164555564717e8a98a3a49a8c7f7366584e43372b1d12070000000000000000000b1824313e4b5764717e8a97a4b1a79a8d8174675a4e4134271b0e010000000b1825323e4b5865717e8b98a4afa295887c6f6255493c2f221609000005101a242c33393c3f4c5865727f8b98a5aea194887b6e6155484040403d3c39332c231a10050000000713202d3a4653606d798693a0aca5988b7e7278828e939f9d999a939291919298979c9fa6adaba39f938d80736a6054453c31261a0e0200000000000000000000030e18212a31373e434b51575e666c727c849196a1a0999290959b99928f89847f7a746f6a605b544a3f33281c0f0300000000000000000000000000000000000915222e3b4854606a6f7b8490949ea5a49f92867c6e675d51493f342b20160b0200000000000000000000000000000000000008131d262f363c4041464646464646463f3e3a352d251b11000000000000000005101a232c33383c3d4646464646464642403d372f271e13090000000000000000000000000000000000000000040a0f12181c1f202326282a2b2c2c2c2c2b2a282523201f1c17110f0a03000000000000000000000000000000000000000000020d17212b343d464e565e616c71787e82868a8c8f90919292929291908e8c8986827d78716c615e574e463d342b20170d0000000000000013202d394653606c7986938b7e7265584b4a4a4a4a4b5865727e8b9386796c605346392d20130000000000010d19242f3845515c66717e8a959fabab9f958a7e71665c51453a2f24190d02000000000000000009141f2935414c56606d7984919ea6b0bebeb0a69e9184796d60564c41332a1f100700000000000a1623303c4955616c717d8692938c80786d67676d78808c9392867d706c6155493c3023160a00000b1724313d4a56626c71797979797979796f6a6054473b36332e272021272c2f303f4b58636e737979797979797976665c5044382c1f1206000000000000000000000000000000000000000000000000000000000000000000000008131e2c38434f5965727f8b98a2aea2988b7e7165574d4237404b55626f7c8895a0aca79b8e8174685d5245392c201304000000000000000000000000000000000000000000000005121e2a36424d5764717e8b98a2ac9f92867a6d60606d7985929faa9c8f8376695e53463a2d21160a000000000000000000000c1825323f4b5865727e8b98a5afa295887c6f6255493c2f221609000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b8794a1aea6998c7f7366594c403326190d00111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0000000000000000000000000000000000000006121f2b3844505b6673808c9aa4ac9f92867a6d605454606d7a86929fac9d9184776a605447392e23180c0000000000000000000b1724313e4a5764717d8a97a4b0a79a8d8174675a4e4134271b0e010000000c1825323f4b5865727e8b98a5afa295887c6f6255493c2f22160900000c17222c363e45494a4d5865727f8b98a5aea194887b6e61554d4d4d4d4a49443e362c22170b0000000713202d3a4653606d798693a0aca5988b7f726d78818b92989fa29f9e9e9e9fa3aaa9a9aaa29f99928b81786d60584e43332a1f1509000000000000000000000009151f2a333c42474f555c60696e787f879196a09f95918684898e92989b95918b85817c766c665b5044382b1f120600000000000000000000000000000000000916232f3c4956626f7c85919693939393928a7e716a5f554b40372d22190e0400000000000000000000000000000000000000010b141d252b3033343939393939393932312e29231b130900000000000000000008111a21282c2f30393939393939393534312c251e150c02000000000000000000000000000000000000040a0f161b1d23292c2d303335373839393939383635322f2d2b28221c1b150e09030000000000000000000000000000000000000000050f19222b343c444d525a61666d71757a7d80828385858686858483827f7d7a75716d66615a524d453d342b22190e050000000000000013202d394653606c7986938b7e7265584b3f3d3d3f4b5865727e8b9386796c605346392d2013000000000004111d2935414c56606d7984919ea7b1b1a79e9184796d60564c4135291f14090000000000000000030d1924303a44515c66707d8a949facb6b6ac9f948a7d70665c51443a3021180e0000000000000814212d3944505a616b707c8591928d82796e6e79828e9291857c706b615a5044392d20140800000915212e3a45505a62656c6c6c6c6c6c6c6260584e4344433f3932292b32383b3d4647525c63666c6c6c6c6c6c6c6c5c544a3f34281c10030000000000000000000000000000000000000000000000000000000000000000000000020f1b27323d4754606d7a86929facaa9c908376695f53473845515c6774808d9aa7aca095897c6f63564c4135291d110400000000000000000000000000000000000000000000000714212d3a46535f6976838f9caaaa9b8f8275675d5d6775828e9baa9f93877b6e6154483d32271b0f000000000000000000000c1926323f4c5965727f8c98a5aea195887b6e6255483b2f221508000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a8794a0ada6998d8073665a4d4033271a0d00111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c000000000000000000000000000000000000000613202d394653606c7884919eaca99b8e8175675d51515d6775828f9caba096897c6f62544b4034281c100400000000000000000a1724303d4a5763707d8a96a3b0a89b8e8175685b4e4235281b07000000000c1926323f4c5965727f8c98a5afa295887c6f6255493c2f2216090005111c28333e48505557595965727f8b98a5aea194887b6e615959595959575550483e33281c100400000713202d3a4653606d798693a0aca5998c7f72666d757f868d92989a9c9e9e9f9f9e9d9c9998928d867f746d665c50463d3221180e0300000000000000000000020e1a26313c454d535961676d727b828c92999f99928d837c777c81868c91969c98928d8882786c605346392d20130600000000000000000000000000000000000d1a2633404d59667380868686868686868680746c61574e43392f251b1007000000000000000000000000000000000000000000020b131a202427282d2d2d2d2d2d2d2625221e18110901000000000000000000000810161c2023242d2d2d2d2d2d2d282725201a130c03000000000000000000000000000000000000060b151b21272c2f34383a3d40424445464646454543413f3c3938332d2b26201a150b060000000000000000000000000000000000000000071019222b323b424650545c6064676d70737577787979797878767573706d6764605c545046423b332b22191007000000000000000013202d394653606c7986938b7e7265584b3f3d3d3f4b5865727e8b9386796c605346392d201300000000040e18222c3945525d68727f8b96a0acb9b9aca0968b7f72685d52453b30251a0e04000000000000000008131e2834404a54616c7682909aa4afafa49a9082766c61544a4032281e0f0600000000000004101c28333e485059606a6f7b8490948f837a7a838f9490847b6f6a605950483e33281c1004000005111d29343f485056586060606060606056544e5353514f4a443b32353d44484953535352585a606060606060605f504a42382e23170c000000000000000000000000000000000000000000000000000000000000000000000000000a16202c3945515d6774818e9aa7ab9f94887b6e62544a3f4653606d7985929fabaa9d9084776b6054443a3024190d0100000000000000000000000000000000000000000000030f1c28333f4a54616e7b87939faca2988a7e7164555564717e8a98a3a49a8c7f7366584e43372b1d12070000000000000000000d192633404c5966737f8c99a6aea194877b6e6154483b2e211508000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada79a8d8074675a4d4134271a0e00111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c00000000000000000000000000000000000004111d2935414c5663707d8996a1aca1978a7d7063554b4b5564717e8b99a3a89a8d8174665c5145382c1f130800000000000000000916232f3c4956626f7c8995acb6a89c8f8275695c4f422e23180c000000000d1a2633404d596673808c99a6afa295887c6f6255493c2f221609000814212d3945505a6164666666727f8b98a5aea194887b6e66666666666664615a5044392d20140800000713202d3a4653606d798693a0aca6998c7f7366606d727b80858a8d8f9192929291908f8c8985807b726d605c544a3f342b200f06000000000000000000000006121e2b37424d575f616b70797f868f949f9d948f8780796f6a6f747a7f84898f93999a9486796d6053463a2d20130700000000000000000000000000000000000c1925323f4b57636d737979797979797979746e645a50453c31281d1209000000000000000000000000000000000000000000000001080f14181a1b20202020202020191816120d0700000000000000000000000000050b10141617202020202020201c1b18140f09020000000000000000000000000000000000020a111720262b323839404547494c4f50525253535251504e4c4946443f3837312b262017110a0200000000000000000000000000000000000000071019202930363e424a5053555d606366686a6b6c6c6c6c6b6a686663605d5553504a423e3630292119100700000000000000000013202d394653606c7986938b7e7265584b4a4a4a4a4b5865727e8b9386796c605346392d2013000000000a15202a36424d57606d7a85929ea8b2bdbdb2a89e92857a6d60574d42362a20150a0000000000000000020c18232e3942505a626f7c87939faaaa9f93877c6f625a5042392e20160c00000000000000000b17222c363e474f585f696e7a839094908484909490837a6e695f584f473e362c22170b000000010c18222d363f454a4b5353534c525f6060606060605d5b554d44393d474f54566060606060605a58535353535353443f3830261c11060000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c55626f7c88959faba6998d8073665c50444d5764717e8a97a2ada2988b7f7265594f4332281e1308000000000000000000000000000000000000000000000006121f2b3844505b6673808c9aa4ac9f92867a6d605454606d7a86929fac9d9184776a605447392e23180c0000000000000000000d1a2734404d5a6773808d9aa6ada094877a6d6154473a2e211407000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada79a8d8074675a4d4134271a0e00111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0000000000000000000000000000000000000613202c3945525d6875818e9ba8ab9e9285796d6053464754616d7a86929fab9e9285796d6053463a3025190d01000000000000000815222e3b4855616e7b889aa4afa99d9083766a554b4034281c10040000010e1b2834414e5b6774818e9aa7afa295887c6f6255493c2f221609000a1723303c4955616c71737373737f8b98a5aea194887b73737373737373706c6155493c3023160a00000713202d3a4653606d798693a0aca6998d8073665b62686e74797d808284858685858482807d7a746e69625b504a42382e22190f0000000000000000000000000814212d3a47535f696e757d848c92989395908a827c736d676062686d72787d82878d929786796d6053463a2d20130700000000000000000000000000000000000a16232f3b47525b63666c6c6c6c6c6c6c6c67645c52483e332a1f160c000000000000000000000000000000000000000000000000000003080b0d0e131313131313130c0b090601000000000000000000000000000000000407090a131313131313130f0e0c0804000000000000000000000000000000000000040b141c222832373d43484b515356595b5d5e5f5f5f5f5e5d5b585653504a47433c373127221b140b0300000000000000000000000000000000000000070e171f252a30383f44464c515457595c5d5e5f5f5f5f5e5d5b595653514b46443f38302a251f170f070000000000000000000013202d394653606c7986938b7e7265585757575757575865727e8b9386796c605346392d2013000000020b1b26313a46525e6973808d97a1adbac4c4b9ada1978d8073695e52463c31261b0b02000000000000000007121c27303e4754606a75818e98a2a2988e81756a6054483e30271c0e04000000000000000005101a242c353d464e575f686e7a828f949191948f827a6e685f574e463d352c241a10050000000006111b242d343a3d3e46414c565e6c6c6c6c6c6c6c6a675f554a3f444f5960636c6c6c6c6c6c67645c534846464638342e261e150a0000000000000000000000000000000000000000000000000000000000000000000000000000010d19242f3a47545f6a7783909da9ab9e9184796d605346525e6976828f9ca9ac9f92867a6d6054473d3221160c0200000000000000000000000000000000000000000000000613202d394653606c7884919eaca99b8e8175675d51515d6775828f9caba096897c6f62544b4034281c100400000000000000000e1a2734414d5a6774808d9aa7ada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a8794a0ada6998d8073665a4d4033271a0d00111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0000000000000000000000000000000000000714212d3a4754606d7a86929faca89a8d8174665c514446525d6876828f9caba2978a7d7064564c4135291d1105000000000000000714202d3a4753606d7a86939facab9e918478675c5145382c1f1306000004111d2935414c566976828f9ca9afa295887c6f6255493c2f221609000b1724313e4a5764717e80808080828f9ca8b3a79a8d80808080808080807e7064574a3d3124170a00000713202d3a4653606d798693a0aca6998d8073665a565e61666d7073757778797978777673706d67615e5751443f3830261c10070000000000000000000000000815222e3b4855616e7b8286868686868686837d766f6a605c55565d61656c70757b80858a867a6d6053473a2d201407000000000000000000000000000000000007131e2a35404952575960606060606060605a58524a40362c21180d040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d161d262d333c43474f54555c606366686a6b6c6c6c6c6b69686562605b54534e47423c332d261d150d0300000000000000000000000000000000000000050d14191e262e34383a4145474a4d4f50525253535251504f4c4a4745403a38342e261e1a140d05000000000000000000000013202d394653606c7986938b7e7265646464646464646465727e8b9386796c605346392d20130000000a141d2b37434e58616e7b86929fa9b3becccabeb3a99f92867b6e61584e43372b1d140a0000000000000000000b151e2b37434e58616e7b86929f9f92867b6e61584e43362c1e150b0000000000000000000008121a232b343c454d565e686d79828e93938e82796d685e564d453c342b231a120800000000000009121b22292e31323946525e68767979797979797771675b4f434854606b70797979797979746e64584c4039392c28231c150c0300000000000000000000000000000000000000000000000000000000000000000000000000000008131e2b37434e5865717e8b97a2ada1968a7d7063564c54616e7b87939faca79b8e8174685d5245392c201304000000000000000000000000000000000000000000000004111d2935414c5663707d8996a1aca1978a7d7063554b4b5564717e8b99a3a89a8d8174665c5145382c1f130800000000000000000e1a2734414d5a6774808d9aa7ada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b8794a1aea6998c7f7366594c403326190d00111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c000000000000000000000000000000000006121f2b37434e5865727e8b98a2aca096897c6f63544a40414c5665727e8b99a4a99b8f8275685e5246392d2015090000000000000006131f2c3845515c677885919eabac9f9286796d6053463a2d20130600000713202c3945525d687884919eabafa295887c6f6255493c2f221609000f1c2835424f5b6875828c8c8c8c8f949eaab5a99d928d8c8c8c8c8c8c8c8174685b4e4135281b0e02000713202d3a4653606d798693a0aca6998d8073665a4d52545c606367696b6b6c6c6b6a696663605d55534d453f342e261e140a000000000000000000000000000814212d3a47535f696e757979797979797976706b625f58514b4c52535b6063696e73797e83796d6053473a2d2014070000000000000000000000000000000000020d19242e3740474b4d53535353535353534d4c4740382f241a0f06000000000000000000000000000000000000000000000000000000000000000000000000000000000000010406070a0d10111213131211100d0a07060400000000030505060606060606000000000000000000000000000000000000030c161f282f383f444e54596063676d707375777879797978787674726f6c66625f58534d443f382f271f150d030000000000000000000000000000000000000002090c151c23282c2f35393a3d4042444546464645454342403d3a39352f2b28231c140c090200000000000000000000000013202d394653606c7986938b7e7270707070707070707070727e8b9386796c605346392d2013000006111b262f3847535f6a74818e98a2aebbb9b9b9b9baaea2988e81746a5f53473d2f261b11060000000000000000030c1b27323c46525e6973808d97978c8073695e52463c32241a0c030000000000000000000000081119222a333c444d565d676d78818d8d81786d675d564d443c332a2219110800000000000000000911181d21212e3b4754616e7a86868686868683776a5d5144495663707d8686868686868074675a4e4134271f1c17110a0300000000000000000000000000000000000000000000000000000000000000000000000000000000010f1b26323c4753606d7985929faba99b8e8275685d525966737f8c99a4aca095897c6f63564c4135291d110400000000000000000000000000000000000000000000000613202c3945525d6875818e9ba8ab9e9285796d6053464754616d7a86929fab9e9285796d6053463a3025190d01000000000000000d1a2734404d5a6773808d9aa6ada094877a6d6154473a2e211407000000000000000000000000000000000000000000000000000000000000000815222f3b4855626e7b8895a1aea5988c7f7265594c3f3226190c00111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c00000000000000000000000000000000000814212e3a47535f6a7683909daaaa9e9184776b605442393b4754616e7b86939fac9f92867a6d6154473c31261a0e0000000000000004101c2934404b55697683909ca9afa399887b6f6255483c2e23170b00010714212d3a4754606d7a8796a1acafa295887c6f6255493c2f221609000f1c2835424f5b6875828e9999999c9ea6b0b9aea49d9a9999999999998e8174685b4e4135281b0e02000713202d3a4653606d798693a0aca6998d8073665a4d464b5153575a5c5e5f5f5f5e5d5c595654514b46423b3328231c140c020000000000000000000000000006121e2b37424d575f61696c6c6c6c6c6c6c6a636159534e45404146495053575e61666d71766d675d5145392c1f130600000000000000000000000000000000000007121c252e353b3f404646464646464646413f3c362f261d1208000000000000000000000000000000000000000000000000000000000000000000000000000000000001080d111314171a1d1e1f1f201f1e1c1a171413100c07010c0f11121313131313130909070300000000000000000000000000000b151e283139424a50585f626b6f75797d7f828385858686858483817f7c79746f6a625f575049413931271f150b010000000000000000000000000000000000000000030a11171c1f24292c2d30333537383939393938373533302d2c29241f1c17110a02000000000000000000000000000013202d394653606c7986938d807d7d7d7d7d7d7d7d7d7d7d7d808d9386796c605346392d201300000b17222d38414f59626f7c87939faab4acacacacacacb4aa9f93877c6f62594f41382d22170b0000000000000000000a15202a36424d57606d7a85919185796d60574d42342b20110800000000000000000000000000071019212a323b444c555d666d748080746d665d554c443b322a2118100700000000000000000000060c1114212e3b4754616e7a87939393939084776a5d5144495663707c89939393938d8174675a4e4134271b100c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151f2c3945515d6774808d9aa6ac9f92867a6d6154606b7784919eabaa9d9084776b6054443a3024190d0100000000000000000000000000000000000000000000000714212d3a4754606d7a86929faca89a8d8174665c514446525d6876828f9caba2978a7d7064564c4135291d1105000000000000000d192633404c5966737f8c99a6aea194877b6e6154483b2e211508000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa5988b7e7265584b3f3225180c00111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0000000000000000000000000000000003101c28343f4a54626e7b88959faba7998c807366594f43303946525e687683909ca9a3998b7f7265574d42372b1b1106000000000000000c18232f414d5a6774808d9aa7b5ab988b7e7165544a3f34281c100b0e131c2834404a5464707d8a97a8b2afa295887c6f6255493c2f221609000f1c2835424f5b6875828e9b9f9fa0acaeb5bdb1a9a3a19f9f9f9f9f9b8e8174685b4e4135281b0e02000713202d3a4653606d798693a0aca6998d8073665a4d404045464a4d4f5152535252514f4d4a4745413a3631292117110a020000000000000000000000000000020e1a26313c454d53555c606060606060605d57554f47433c3435383f44464d53545c606469605d554b4035291d1004000000000000000000000000000000000000000a131c242a2f323339393939393939393433302b241d140b0000000000000000000000000000000000000000000000000000000000000000000000000000000003090e13191d20212427292b2b2c2c2c2b292724201f1c18120e181c1e1f2020202020201615130f0a04000000000000000000000007121d273039434b545b606a6f767c8185898c8e90919292929291908e8b8985817c756e69605b534b433931271d120700000000000000000000000000000000000000000000060c1013191d20212426292a2b2c2c2c2c2b2a282623201f1d1812100b060000000000000000000000000000000013202d394653606c798693928d8a8a8a8a8a8a8a8a8a8a8a8a8d929386796c605346392d201300030f1b27333f4953606b76828f99a49f9f9f9f9f9f9f9f9f9fa4998f82756b6053493f33271b0f030000000000000000040e1a25303b45515d67727e8b8b7e71675d51453b3022190f000000000000000000000000000000070f182029323a434b545c606e73736e605c544b433a322920180f07000000000000000000000000010814212e3b4754616e7a87949f9f9d9084776a5d5144495663707c89969f9f9a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b55626f7b88949faba3998b7e726557636f7c8996a0aca2988b7f7265594f4332281e1308000000000000000000000000000000000000000000000006121f2b37434e5865727e8b98a2aca096897c6f63544a40414c5665727e8b99a4a99b8f8275685e5246392d201509000000000000000c1926323f4c5965727f8c98a5aea195887b6e6255483b2f22150800000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978b7e7164584b3e3125180b00111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0000000000000000000000000000000006121f2c3844505c6673808d9aa7ab9f95887b6e6255483d3236414d5665727f8c98a7ab9d908376695f5347382d22170b00000000000000071824313e4b5764717e8a97a7b1a79b8e8174665c5044382b221b171a1d242c3844515c6674818d9aa7b4afa295887c6f6255493c2f221609000f1c2835424f5b6875828e939393939fa3abb5a99f98949393939393938e8174685b4e4135281b0e02000713202d3a4653606d798693a0aca6998d8073665a4d4034383a3d404244454646454443403d3a39352f2a251f170f06000000000000000000000000000000000009151f2a333c4247484f53535353535353504a48443e373129292d33373b42464b5153575d53514b43392f24180c0000000000000000000000000000000000000000010a12191e2325262d2d2d2d2d2d2d2d2726241f19130b02000000000000000000000000000000000000000000000000000000000000000000000000000000060e141a1e24292c2d3033363738393939383634302d2c29231d1a24282b2c2d2d2d2d2d2d23221f1b160f07000000000000000000040d18232e39434b555d666c737c83898e9298999b9d9e9f9f9f9f9e9c9b9897918d88827b736c655d554b43392f24180e05000000000000000000000000000000000000000000000003080d111314171a1c1d1f1f20201f1e1d1c19171413100c070300000000000000000000000000000000000013202d394653606c798693939393939393939393939393939393939386796c605346392d20130005121f2b3744505b65707d8994939393939393939393939393939394897d70655b5044372b1f120500000000000000000009141f2935414b55606d788383786d60554b4033291f100700000000000000000000000000000000060e1720283139424a505c636767635c504a4239312820170e0600000000000000000000000000000814212e3b4754616e7a8794a1aa9d9084776a5d5144495663707c8996a3a79a8d8174675a4e4134271b0e010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18242f3947535f6a7683909ca9ab9d908376695f6774818e9aa8ac9f92867a6d6054473d3221160c0200000000000000000000000000000000000000000000000814212e3a47535f6a7683909daaaa9e9184776b605442393b4754616e7b86939fac9f92867a6d6154473c31261a0e000000000000000c1825323f4b5865727e8b98a5afa295887c6f6255493c2f221609000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a97a4b6ac96897d7063564a3d3023170a00111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c000000000000000000000000000000000713202d3a4653606d7985919eabab9d908377695f53473a2b303b4854616e7b8795a0ab9f95887b6e6253493f33271b0f030000000000000814212e3b4754616e7b8795a0acab9e9285796d6053463e342b2722262a2f35404b55606d7985929eabb8afa295887c6f6255493c2f221609000f1c2835424f5b68758186868686868b99a3aea3988d88868686868686868174685b4e4135281b0e02000713202d3a4653606d798693a0aca6998d8073665a4d40332c2d3034363838393938373633302d2c29241d1a140d05000000000000000000000000000000000000030e18212a31373a3b4246464646464646433d3c38332b26201b22272b3136394045464b504745403931271d120700000000000000000000000000000000000000000000070d1316191a20202020202020201a1a17130e0801000000000000000000000000000000000000000000000000000000000000000000000000000000070f181f262a2f35393a3d404344454646454443403d3a38342f2a252f3437383939393939392f2e2c272119100700000000000000010c161f2834404b555d676d78808790949b9fa2a9a29e9c9b9a9a9b9d9fa3a9a19e9a948f877f776d675d554b40352920170d02000000000000000000000000000000000000000000000000010406070a0d0f11121313131212100f0d0a07060400000000000000000000000000000000000000000013202d394653606c798686868686868686868686868686868686868686796c605346392d2013000613202d394653606c798386868686868686868686868686868686868683796c605346392d201306000000000000000000030d18242f3a44505c66707d7d70665c50433a2f21170d000000000000000000000000000000000000050d161f2730383f4452585a5a5852443f3830271f160d050000000000000000000000000000000814212e3b4754616e7a8794a1a99d9084776a5d5144495663707c8996a3a79a8d8174675a4e4134271b0e0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2b37434e5864717e8a97a1ab9f95887b6e616d7985929faba79b8e8174685d5245392c201304000000000000000000000000000000000000000000000003101c28343f4a54626e7b88959faba7998c807366594f43303946525e687683909ca9a3998b7f7265574d42372b1b11060000000000000b1825313e4b5864717e8b97a4afa296897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000c1926333f4c5966727f8c99a5afa49a887b6e6255483b2f22150800111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c00000000000000000000000000000005111d2a36414c5663707d8a97a1ada3998c7f7265574d42372b2d3a46535e697783909daaa7998d8073655b5044372b1f12070000000000000714202d3a46525e697784909dabada1978a7d70635a50463d37332d31363a4045515d67717e8b97a1adb9afa295887c6f6255493c2f221609000e1b2834414d59656f75797979797987929faca194887b79797979797979746f64594d4034271a0e01000713202d3a4653606d798693a0aca6998d8073665a4d403327202427292b2c2c2c2b2a29262321201d18130e09030000000000000000000000000000000000000000060f181f262b2d2e363939393939393937302f2c28211b1511171b1f252a2e34383a3e433a39352f271f150b01000000000000000000000000000000000000000000000002070a0c0d13131313131313130e0d0b0703000000000000000000000000000000000000000000000000000000000000000000000000000000030b1218212a31363a4145474a4d505152525352514f4d4a4745403936313a4044454646464646463c3b38322b22190f0400000000000008131e28313a45515c676d79828d92999fa6a39f9a97928f8e8d8e8e9092989b9fa3a69e99928c82796d675d51453f32291e140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013202d3946535f6c767979797979797979797979797979797979797979766c5f5346392d20130005121f2b3744505b656c77797979797979797979797979797979797979776c655b5044372b1f12050000000000000000000007131d28343f4a54606b70706b60544a3f31281d0f0500000000000000000000000000000000000000040d151e262e3440474b4d4d4b4740342e261e150d04000000000000000000000000000000000814212e3b4754616e7a87949c9c9c9084776a5d5144495663707c89969c9c9a8d8174675a4e4134271b0e01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010f1a26313c4653606d7985929eaca7998c7f7366717d8a98a2aca095897c6f63564c4135291d1104000000000000000000000000000000000000000000000006121f2c3844505c6673808d9aa7ab9f95887b6e6255483d3236414d5665727f8c98a7ab9d908376695f5347382d22170b0000000000000a1724303d4a5763707d8a96acb6a4978a7e7164574b3e3124180b000000000000000000000000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7ac9f9386796d6053463a2d20130700111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0000000000000000000000000000000713202d3946525e6875828f9ba9ac9f92867a6e6154473c31262a36424d5766737f8c99a7ab9e9184786c605346392f24180c00000000000005111e2a36424d5666737f8c99a3afa99c9083766c61584f46443f414142464b515b606d7984919ea9afb8afa295887c6f6255493c2f221609000c1925313d48535d65686c6c6c677683909da9a194887b6e6c6c6c6c6c6c68645d53483c3024180c00000713202d3a4653606d798693a0aca6998d8073665a4d4033271a171a1c1e1f201f1f1e1c1a171413110d07010000000000000000000000000000000000000000000000060e151a1e2122292d2d2d2d2d2d2d2a2423201c160f0a060b0f141a1d23282c2d31362d2c29241d150d030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c151c2328333b42464c5254575a5c5e5e5f5f5f5e5c5a5753514b46423b454c50525353535353534948433d342b21160a0000000000010d19242f3a43505a606d79828f949fa3a7a099928e898583818181828386898e92999fa7a39f948f82796d605b51443b3025190e0200000000000000000000000000000000000000000000000002070b0d0d131313131313130f0e0c0804000000000000000000000000000000000000000000000000121e2b37434f5a646c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c645a4f43372b1e1200030f1b27333f49535b606a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6a605b53493f33271b0f0300000000000000000000010b17232e38424f5960636360594f42382e1f160c000000000000000000000000000000000000000000030c151c2328363b3f40403f3b3628231c140c0300000000000000000000000000000000000814212e3b4754616e7a878f8f8f8f8f84776a5d5144495663707c898f8f8f8f8d8174675a4e4134271b0e01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151f2c3845515c6773808d9aa4aa9d9184776a75828e9baaaa9d9084776b6054443a3024190d0100000000000000000000000000000000000000000000000713202d3a4653606d7985919eabab9d908377695f53473a2b303b4854616e7b8795a0ab9f95887b6e6253493f33271b0f0300000000000815222f3b4855626e7b889aa4afa5998c7f7266594c3f3326190700000000000000000000000000000000000000000000000000000000000004101d2935404b556976838f9ca9ab9e918478675c5145382c1f130600111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0000000000000000000000000000000714212e3a4754616d7a86929facaa9c8f8276685e5246392a2025313b4855626e7b8895a0aca196897d7063554b4035291d10040000000000020e1925303b4854616e7b87929fabab9f948a7e716a60595350494e4e4d53555d606d74808d969b9ea5afafa295887c6f6255493c2f221609000915202c37424b53595b6060606774808d9aa7a194887b6e6160606060605b59534b41372b20140800000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d0d0f111213131211100d0a07060401000000000000000000000000000000000000000000000000000003090e1214151c202020202020201d171614100b0500000003090e12181c1f20242a201f1d18120b03000000000000000000000000000000000000000000000000000000000000000000010406070a0d10111213131211100d0a07060400000000030505060606060606000000000000000000000000000000000b151e272e343f454d53565d606366696a6b6c6c6c6b696763605c55534d444f575c5f60606060606056544e463d32271b0f030000000004111d2935414c56616c74818e949ea6a69f959087817c79767474747577797d818790959ea5a69e948e81756d62564c41362a1e14080000000000000000000000000000000000000000000001080e1317191a202020202020201b1b18140f0901000000000000000000000000000000000000000000000f1b27333e49525a5f60606060606060606060606060606060606060605f5a52493e33271b0f00000b17222d38414950535d6060606060606060606060606060606060605d53504941382d22170b00000000000000000000000006111c26303d474f555656554f473d30261c0d0400000000000000000000000000000000000000000000030a1117242a2f323434322f2a2417110a020000000000000000000000000000000000000714212d3a4754606d7a8283838383838174675b4e414855626f7c8283838383827f7265584c3f3225190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b55616e7b87939faca095887b6f7985929faca3988b7f7265594f4332281e1308000000000000000000000000000000000000000000000005111d2a36414c5663707d8a97a1ada3998c7f7265574d42372b2d3a46535e697783909daaa7998d8073655b5044372b1f120700000000000714202d3a4753606d7a86939faca79a8e8174675b4e412f24180c00000000000000000000000000000000000000000000000000000000000006131f2c3845515d677784919eaaa99c90837669554b4034281c100400111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c000000000000000000000000000006131f2b37434e5865727f8b99a3aea2988b7e7164564c41362a18212e3a47535f6a7784919daaa89b8e8174675d5145392c1f14090000000000000914202d3a46525e6975818e99a3afa69f92857c706b62605b535a5b575f61676d747f8b92938f939eaaafa295887c6f6255493c2f22160900040f1b25303942484d4f53535764717e8a97a9a194887b6e6155535353534e4d4841392f251a0f0300000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d01030505060605040300000000000000000000000000000000000000000000000000000000000000000000020608080f13131313131313100a0907040000000000000000070c101313181d1413100c0701000000000000000000000000000000000000000000000000000000000000000001080d111314171a1d1e1f1f201f1e1c1a171413100c07010c0f111213131313131309090703000000000000000000000007121c273039404451575f61686d7073767778797978777673706d67615e57505761686b6c6c6c6c6c6c6260584e43382c1f1307000000000613202c3945525d68717e8a939da6a89f948f837c746f6c6668676768666d70757c838f939ea7a69e938b7f72685e52463b3025190d010000000000000000000000000000000000000000020a12191f2326272d2d2d2d2d2d2d282724201a130b030000000000000000000000000000000000000000000a16212c3740494f535353535353535353535353535353535353535353534f4940372c21160a000006111b262f383f4446505353535353535353535353535353535353535046443f382f261b1106000000000000000000000000000a141e2c353d44484a4a48443d352c1e140a00000000000000000000000000000000000000000000000000060c191f2326272726231f190b0600000000000000000000000000000000000000000713202c3945525d686d767676767676746f64584c4047535f6a6f767676767676726d62564a3e3125180b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e3946535f6976828f9ca9a7998c7f737d8a98a2ac9f92867a6d6054473d3221160c0200000000000000000000000000000000000000000000000713202d3946525e6875828f9ba9ac9f92867a6e6154473c31262a36424d5766737f8c99a7ab9e9184786c605346392f24180c000000000006131f2c3845515d677885919eaba99c8f827669554b4035291d100400000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a86929faca79b8e8174685b4e412e23180c0000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c00000000000000000000000000000815222e3b47545f6a7783909dabac9f92867a6d6054473b3025191e2b37424e576673808c99a8ab9f9285796d6053473b3025190e02000000000005121e2a36424d57626e7c87929fa7ada29792857d756f6c6568676869696e7379818b91948f828f9ba8afa295887c6f6255493c2f221609000009141e2730373d4142464854616e7b8796a1a194887b6e61554846464641403c372f271d13090000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003060606060606060400000000000000000000000000000406070b1007060400000000000000000000000000000000000000000000000000000000000000000003090e13191d20212427292b2b2c2c2c2b292724201f1c18120e181c1e1f2020202020201615130f0a040000000000000000000c18232e39424a515b63696e747a7d808384858586858482807d79746e69605b536873787979797979796f6a6054483b2e22150900000004111d2935414c55606d7a85929ea5aca0968f82796e6a62605b545a5b545c60636a6e78818f959faba59f92857a6e61564c41362a1e110500000000000000000000000000000000000000010a141c242b2f3334393939393939393534312c251d150b01000000000000000000000000000000000000000005101b252e373e4346464646464646464646464646464646464646464646433e372e251b10050000000a141d262d33373944464646464646464646464646464646464646443937332d261d140a0000000000000000000000000000020c1a232c33383c3d3d3c38332c231a0c020000000000000000000000000000000000000000000000000000080e1317191a1a1917130e0800000000000000000000000000000000000000000004111d2935414c565d6069696969696967645c53483c434e585f6269696969696965625b51463a2e22160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2b37424d5764717d8a97a1aa9d908377818e9baaa79b8e8174685d5245392c2013040000000000000000000000000000000000000000000000000714212e3a4754616d7a86929facaa9c8f8276685e5246392a2025313b4855626e7b8895a0aca196897d7063554b4035291d10040000000004101d2935404b55697683909ca9aa9e918477675d5145382c1f13060000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8999a3afaa988b7e7265584b3f322518070000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0000000000000000000000000004101c2834404b55626f7c8895a0aca99b8e8175675d514539291e141a26313c4955626f7c8896a0aca2988a7e7164564d42362a1e11050000000000020e1a25303b47535f6a73808d95a0a8a9a1979288817c797674747476787b7f858d929790827d8996a3afa295897c6f6256493c2f2316090000020c151e252c3134353a46535e697884919ea194887b6e6155483b39393534302b251d150b010000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060e141a1e24292c2d3033363738393939383634302d2c29231d1a24282b2c2d2d2d2d2d2d23221f1b160f070000000000000004101c2834404a545c606d727b81868a8d8f9191929292918f8d8a85807b726c655c6b78858686868686867c6f6256493c2f2316090000000613202c3945515d6773808d97a1ada69e91847a6d675f5853504a4e4e4b5153585f666d79839099a3ada2978d8174685e5246392d2014090000000000000000000000000000000000000008121c262e363b3f404646464646464642403d372f271d130900000000000000000000000000000000000000000009131c252c33373939393939393939393939393939393939393939393937332c251c130900000000020b141b22272b2d37393939393939393939393939393939393939372d2b27221b140b0200000000000000000000000000000008111a21272c2f30302f2c27211a11080000000000000000000000000000000000000000000000000000000002070a0d0d0d0d0a070200000000000000000000000000000000000000000000010d1924303a444c52545c5c5c5c5c5c5b58534a41363c464e53555c5c5c5c5c5c585651493f34291e1206000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1a26313c4653606d7984919eaba095887b85929faba095897c6f63564c4135291d1104000000000000000000000000000000000000000000000006131f2b37434e5865727f8b99a3aea2988b7e7164564c41362a18212e3a47535f6a7784919daaa89b8e8174675d5145392c1f140900000000000c18242f414e5b6874818e9ba7ac9f92867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000c1926333f4c5966727f8c99abaea298887b6f6255483c2f2215090000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0000000000000000000000000006131f2c3845515c6774808d9aa7ada1978a7d7063554b413529170d15212e3b47535f6a7784919eaaaa9c8f8276695e52463a2d20150a00000000000009141f2b37434e58606d79839096a0a8a9a19a938e8985828181818284888c91979992857b7c8996a2afa296897c6f6356493c30231609000000030c141b2025282a36424d576875828e9ba194887b6e6155483b2e2d282724201a130b03000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070a0d0f11121313131212100e0c090606030000000000000000000000000000000000000000000000000000000000070f181f262a2f35393a3d404344454646454443403d3a38342f2a252f3437383939393939392f2e2c27211910070000000000030e18212c3844515c666d757f878d9298999c9d9e9f9f9f9e9c9a98928d867f776d666679869293939393887b6e6255483b2f2215080000000714212d3a4754606d7a85929fa9aa9e94897d70685d554e46443f41414045464e545c676f7c87929faca99f92867a6e6154473c31261a0e020000000000000000000000000000000000020e19242e3840474c4d535353535353534e4d4841392f251a0f040000000000000000000000000000000000000000010a131b21272b2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2b27211b130a010000000000020a11171b1f202a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2a201f1b17110a020000000000000000000000000000000000080f161c2023232323201c160f08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e28323a4145475050505050504e4c4841382f343c4347485050505050504c4a463f372d23180d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141f2c3844505c6673808c99a4a79c8f828f97a2aa9d9084776b6054443a3024190d0100000000000000000000000000000000000000000000000815222e3b47545f6a7783909dabac9f92867a6d6054473b3025191e2b37424e576673808c99a8ab9f9285796d6053473b3025190e0200000000071925323f4c5865727f8b98aaafa399897c6f6356493c302316090000000000000000000000000000000000000000000000000000000006121e2b37424d576875828f9ba8ab9f9285796c605346392d2013060000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c000000000000000000000000000713202d3a4653606d7985929eabab9e9285796d6053463a2f241807131f2b37434e586773808d9aa8ac9f93877b6e6154473c32261b0f000000000000030f1a26313c45515c676e7b8491969fa4aca49f9b97928f8e8d8e8f9196999e9892877d707b8895a2aea396897c706356493d3023160a0000000002090f15191a25313f4c5965727f8c989f94887b6e6155483b2e221b1a18140f090100000000000713202d3a4653606d7986939f9f9f998d8073665a4d4033271a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c10131416191c1d1f1f20201f1e1d1b191613120f0b0600000000000000000000000000000000000000000000000000030b1218212a31363a4145474a4d505152525352514f4d4a4745403936313a4044454646464646463c3b38322b22190f04000000000915202c38434f59606d78818c92999fa2aaa9a8aaa29f9e9e9e9fa29f98928c81786d6d798699a39f9f94877a6e6154473b2e211408000005111e2a36424d5765727f8b98a2aea99c8f82756b60564c433c38332d2e34383c424b555f6a74818e9ba8aea3988c7f7266574d42372b1e1205000000000000000000000000000000000007131f2b36404a52585a606060606060605b59534b41372c201408000000000000000000000000000000000000000000010910161b1e202020202020202020202020202020202020202020201e1b161009010000000000000000060b0f12131d2020202020202020202020202020202020201d13120f0b060000000000000000000000000000000000000000050b10141617171614100b050000000000000000000000000000000000000000000000000000000000000000000000000000050a0d0f101313100f0d090500000000000000000000000000020c1620283035393a43434343434341403c362f262a32373b3c4343434343433f3e3a342d251b1107000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a54616e7b87939fac9e948f949ea9a3988b7f7265594f4332281e1308000000000000000000000000000000000000000000000004101c2834404b55626f7c8895a0aca99b8e8175675d514539291e141a26313c4955626f7c8896a0aca2988a7e7164564d42362a1e1105000000000916222f3c4955626f7c8898a2aeab988c7f7265594c3f31261a0e020000000000000000000000000000000000000000000000000000000814212d3a47535f697885919eaba99c8f8276665b5044382b1f12060000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c00000000000000000000000005111e2a36424d5664717d8a97a2ada89a8d8174665c514438281d13070f1b26323c4956626f7c8996a1ada4998c7f7265584e43372b1c11060000000000000a15202934404b555e696e7b848e939a9fa3aba9a19e9c9b9a9b9c9ea09d9590867d706e7b8894abb5a396897d7063564a3d3023170a0000000000000409091623303c4956636f7c89999393887b6e6155483b2e2215080c0803000000000000000713202d3a4653606d798693939393938d8073665a4d4033271a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f12181c1f202326282a2b2c2c2c2c2b2a282523201f1c17110f0a03000000000000000000000000000000000000000000030c151c2328333b42464c5254575a5c5e5e5f5f5f5e5c5a5753514b46423b454c50525353535353534948433d342b21160a000000020e1a26313b4854606b74808d939fa3ababa49f9b979892919192939a989d9f938f82786d7a8794abb4a094877a6d6154473a2e21140700000714202d3a46525e697683909daaada196897d7063594f433a312b282223282c3039434e58626f7c8895a0acaa9d908477695f53463a2d21140700000000000000000000000000000000000b17232f3b47525c64676c6c6c6c6c6c6c68655d53483d3124180c0000000000000000000000000000000000000000000000050a0f1213131313131313131313131313131313131313131313120f0a0500000000000000000000000003050611131313131313131313131313131313131313110605030000000000000000000000000000000000000000000000000407090a0a0907040000000000000000000000000000000000000000000000000000000000000000000000000000030a11161a1c1d20201c1c1915100a02000000000000000000000000040e161e24292c2d3636363636363433302b251d20262b2e2f36363636363632312e29231b1309000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c17232e3846535e6975828f9ca8a69e9c9ea6ac9f92867a6d6054473d3221160c02000000000000000000000000000000000000000000000006131f2c3845515c6774808d9aa7ada1978a7d7063554b413529170d15212e3b47535f6a7784919eaaaa9c8f8276695e52463a2d20150a000000000713202d3a4653606d7985929faca89b8f827568574d42362a1e12050000000000000000000000000000000000000000000000000000000815222e3b4855616e7b8897a1ada8998c7f7366544a3f33281c0f030000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0000000000000000000000000714202d3a46525e6975828f9ca9aca096897c6f63544a403428160c010a13202d394653606c7884919eabab9d9084776a5f5347382e23170c000000000000030c18232f39434d575e696e7981878f92999b9d9e9f9f9f9e9d9b9895908b837c706b6d7a8799a49f9f978a7d7064574a3d3124170a00000000000000000713202d3a4653606d7987868686867b6e6155483b2e221508000000000000000000000713202d3a4653606d78868686868686868073665a4d4033271a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f161b1d23292c2d303335373839393939383635322f2d2b28221c1b150e0903000000000000000000000000000000000000000b151e272e343f454d53565d606366696a6b6c6c6c6b696763605c55534d444f575c5f60606060606056544e463d32271b0f03000006121e2b37424e57636f7c87939fa5afa9a199938f8a878584848586888c90959e948d80747b8794a1ada093877a6d6054473a2d21140700000814212e3b4754616e7b87959fabab9e9184786c6053463d31281f1c17181c1f27313c47535f6a7784919daaaca095887b6e6155483b2e22150600000000000000000000000000000000000d1926333f4c58646e7379797979797979756f65594d4034271b0e01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d151c2226292a2d2d292825211b140c04000000000000000000000000040c13191d2021292929292929282724201a13151b1f21222929292929292525221e181109010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040906111c2a36424d5763707d8a96a1acaaa8aab0a79b8e8174685d5245392c20130f0c07010000000000000000000000000000000000000000000713202d3a4653606d7985929eabab9e9285796d6053463a2f241807131f2b37434e586773808d9aa8ac9f93877b6e6154473c32261b0f0000000006121f2b3844505c6676838f9ca9ab9e918578695f53463a2d211409000000000000000000000000000000000000000000000000000005121e2a36424d5766727f8c99a9aca096887c6f6255493c2d22170b000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0000000000000000000000000814212e3b4754616e7b86929facaa9e9184776b605442392e2318040005121f2b3744505b6574808d9aa9aca095887c6f62544a3f34281c100300000000000007121d27313b454d575e676d747c82868b8e909192929291908e8b88837e786f6a606c798693939393938a7e7164574b3e3124180b000000000000000006131f2c3845515c6775797979797976695f53463a2d2114070000000000000000000006121f2c3844505c667679797979797979736e63584b3f3226190c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b151b21272c2f34383a3d40424445464646454543413f3c3938332d2b26201a150b06000000000000000000000000000000000007121c273039404451575f61686d7073767778797978777673706d67615e57505761686b6c6c6c6c6c6c6260584e43382c1f130700000814212e3a47535f6a76828f9aa4afaba1979287827d7a79787778797b7f838a9196928a7e7b8895a1ada093867a6d6053473a2d20140700000b1824313e4b5764717e8a97a7b1a79a8e8174665b5044382b1f160f0b0c10151f2b37434e586773808d9aa6b1a7988b7e7165584b3e2d22170b00000000000000000000000000000000010d1a2734404d5a677380868686868686868175685b4e4235281b0f0200000000000000000000000000000000000000000000000000000000000000060a0e1011131313131313100f0d0a0500000000000000000000000000000000000000000000000000000000060a0e1011131313131313100f0d0a05000000000000000000000000000005090d0f101313100f0d0a050000000000000000000000000000000000000000000000000000000000000000000000000000000000030d161f272d32353639393635322c261e160c0200000000000000000000000002080d1113141d1d1d1d1d1d1b1a18140f080a0f1215151d1d1d1d1d1d191816120d07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080f151a1d1a25313b4653606c7884919e9f9f9f9f9fa095897c6f63564c4135291d1e1c18130c050000000000000000000000000000000000000005111e2a36424d5664717d8a97a2ada89a8d8174665c514438281d13070f1b26323c4956626f7c8996a1ada4998c7f7265584e43372b1c110600000003101c28343f4a546673808c99a8ada197887b6e6155483b30251a0e02000000000000000000000000000000000000000000000000000714212d3a46535e697783909daaaa9e9184776a5f53473b2e1c1106000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c000000000000000000000007131f2c38434f5966727f8c99a3afa7998c807366594f4330271c120700030f1b27333f495363707c8997a1ada79a8d8074665c5044382c1f1206000000000000010b151f29333b454d555d606a6f757a7e8183858586858583817f7b77716d665f5b6678848686868686867f7265584c3f3225190c000000000000000004101c2834404b555c6a6c6c6c6c6c6c5f574d42372b1e12050000000000000000000003101c28343f4a545c6c6c6c6c6c6c6c6c66635c52473b2f23170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a111720262b323839404547494c4f50525253535251504e4c4946443f3837312b262017110a020000000000000000000000000000000c18232e39424a515b63696e747a7d808384858586858482807d79746e69605b536873787979797979796f6a6054483b2e22150900000815222f3b4855626e7b88949facaea39992857d75716e686b6b666d6e72767d84909492857d8996a3aca09386796d6053463a2d20130700010e1b2834414e5b6774818e9aa7b4aa978a7e7164544a3f3328190d040000040d1b26323d4a5764707d8a97aab4a79b8e81746853493f33271b0f03000000000000000000000000000000010d1a2734404d5a6773808d93939393938e8175685b4e4235281b0f020000000000000000000000000000000000000000000000000000000000040b11161a1d1e2020202020201d1c1916100a03000000000000000000000000000000000000000000000000040b11161a1d1e2020202020201d1c1916100a0300000000000000000000020a1015191c1c20201d1c1a16110a030000000000000000000000000000000000000000000000000000000000000000000000000000000a151f2831383e4243464643413d3830281e140a0000000000000000000000000000010407071010101010100e0d0b08030000030608091010101010100c0b09060100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121a20262a2c2d2b3844505b66737f8c999393939393939084776b6054443a30242c2b28241e170f070000000000000000000000000000000000000714202d3a46525e6975828f9ca9aca096897c6f63544a403428160c010a13202d394653606c7884919eabab9d9084776a5f5347382e23170c000000000b17232e3c4956626f7c8996a0aca9988c7f7265574d42362a1e1205000000000000000000000000000000000000000000000000000815212e3b4854616e7b87959faba8998c807366584e43372b1f0a00000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c00000000000000000000000915222f3b4854606b7784919d9f9f9f95887b6e6255483d3222150b0000000b17222d3a4653606d7985929e9f9f9e9185796d6053463a2d20130700000000000000030d172129333b434b51586062686e71747678797978787675726e6a64605c5454687278797979797979726d62564a3e3124180b0000000000000000000c18232e39434b51535f6060606055534d453c31261a0e0200000000000000000000000c17232e38424a505f606060606060605a58524a40362a1f130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040b141c222832373d43484b515356595b5d5e5f5f5f5f5e5d5b585653504a47433c373127221b140b030000000000000000000000000004101c2834404a545c606d727b81868a8d8f9191929292918f8d8a85807b726c655c6b78858686868686867c6f6256493c2f23160900000d192633404c5966737f8c99a6b0ac9f92877c6f6b64615e56545c6062656c707a8290949083909daaaca09386796d6053463a2d2013070005111e2a36414c566a7683909da9aea298887b6e6155483b2d221708000000000a15212e3b4854616e7b8798a2aeaa9d908377655b5044372b1f1205000000000000000000000000000000010d1a2734404d5a6773808d9a9f9f9f9b8e8175685b4e4235281b0f0200000000000000000000000000000000000000000000000000000000050d151c2227292a2d2d2d2d2d2d292926211c150d0400000000000000000000000000000000000000000000050d151c2227292a2d2d2d2d2d2d292926211c150d040000000000000000040c141b212528292d2d2a2926221c150d040000000000000000000000000000000000000000000000000000000000000000000000000005111c27313a434a4e5053534f4e49423a30261b1005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008121b242b3236393939333f4a54616e7a8786868686868686867f7265594f433239393837342f2921190f0500000000000000000000000000000000000814212e3b4754616e7b86929facaa9e9184776b605442392e2318040005121f2b3744505b6574808d9aa9aca095887c6f62544a3f34281c10030000000615222e3b4754606a7784919eaaa99d908376695e52463a2d20150a00000000000000000000000000000000000000000000000006131f2b37434e5865727f8c98a7aca095887c6f6255483c32261b0f00000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0000000000000000000000091623303c4956636f7c8996939393939083776a5f53473a2e211417110b0b10121f2b3844505c6674818e93939393978a7d7063574a3d3024170a0000000000000000050f172129313a40454e54565e6164686a6b6c6c6c6b6a6865625f5753504a5660686b6c6c6c6c6c6c65625b51463a2e22160900000000000000000007121d27303940454653535353534846423c332a1f140900000000000000000000000006111c2630383f4453535353535353534d4b4740382e24190e02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d161d262d333c43474f54555c606366686a6b6c6c6c6c6b69686562605b54534e47423c332d261d150d030000000000000000000000030e18212c3844515c666d757f878d9298999c9d9e9f9f9f9e9c9a98928d867f776d666679869293939393887b6e6255483b2f2215080005111e2a36424d576976838f9ca9b1a79a8d80736a605954524c4a5053555a61676d798290959095a0abaca09386796d6053463a2d201307000713202d3946525e687885929fabac9f9285796c605346392d201306000000000714212d3a46535e697985929facac9f9285796c605346392d201306000000000000000000000000000000010d1a2734404d5a6773808d9aa6aca89b8e8175685b4e4235281b0f02000000000000000000000000000000000000000000000000000000040d171f272e3336373939393939393635322d261f160d030000000000000000000000000000000000000000040d171f272e3336373939393939393635322d261f160d03000000000000020c161e262c32353639393635322d271f160d030000000000000000000000000000000000000000000000000000000000000000000000000a16222d38434c545a5d60605c5a544c42382c211509000000000000000000000000000000000000030608090b0d0f1112121313121211100e0c0a070604010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040f1a242d363d42454646464646525e686e797979797979797979726d625647454646464544403a332b21170c0100000000000000000000000000000007131f2c38434f5966727f8c99a3afa7998c807366594f4330271c120706040f1b27333f495363707c8997a1ada79a8d8074665c5044382c1f120600000006131f2b37434e586673808d99a8ac9f93877b6e6154483c31261b0f0200000000000000000000000000000000000000000000020c15212e3b47535f6a7683909da9aa9d9184776a5f53473a2a20150a00000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c00000000000000000000000e1b2834414e5b677481868686868686867f7265574e42372b2a27221d16161b202228343f4a5463707d868686868686868175685b4f4235281c0f000000000000000000050f171f282f353d43474c5254585b5d5e5f5f5f5e5d5b5855534e46443f4e565c5e606060606060585651493f34291e1206000000000000000000000b151e272e34383a46464646463b3a37312a21180e03000000000000000000000000000a151e262e34384646464646464646403f3b362e261c1208000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c161f282f383f444e54596063676d707375777879797978787674726f6c66625f58534d443f382f271f150d03000000000000000000000915202c38434f59606d78818c92999fa2aaa9a8aaa29f9e9e9e9fa29f98928c81786d6d798699a39f9f94877a6e6154473b2e211408000714202d3a46525e697885929fabaca095877b6e61584f4746413f44464850555d676e7b85929da0a7b1aca09386796d6053463a2d201307000714212e3a4754616d7a8798a2aeaa9d918477665b5044382b1f12060000000005121e2a36424d576a7784919daaaea298877a6e6154473b2e211408000000000000000000000000000000010d1a2734404d5a6773808d9aa6aca89b8e8175685b4e4235281b0f020000000000000000000000000000000000000000000000000000000b151f2931393f424446464646464643423e3831281f150a00000000000000000000000000000000000000000b151f2931393f424446464646464643423e3831281f150a0000000000000a141e2830383d4143464643423e3831281f150a0000000000000000000000000000000000000000000000000000000000000000000000010d1a26323e4a545e66696c6c69665e54493d3225190d00000000000000000000000000000003070a0f121515181a1c1e1e1f1f201f1f1e1d1b19161413110d08040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915202b363f484e5253535353514d565e616c6c6c6c6c6c6c6c6c65625b514b5253535352504c453d33291e13070000000000000000000000000000000915222f3b4854606b7784919d9f9f9f95887b6e6255483d3222151b1313100c17222d3a4653606d7985929e9f9f9e9185796d6053463a2d201307000000030f1b27323d4955626f7c8896a0aca49a8b7f7265584e43372b1e13080000000000000000000000000000000000000000000008131e2a36414c56626f7c88959faba2988c7f7265584e43372b1f120600000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c00000000000000000000000d1a2733404c59646f7479797979797979726d6256453c313736332e272021272c2f302e384855616b7079797979797979756f65594d4034271b0e00000000000000000000050d161d242932373b4146474b4e505252535252504e4c4847423c3834454b50515353535353534c4a463f372d23180d0100000000000000000000030c151d23282c2d39393939392e2d2b261f180f060000000000000000000000000000030c151c23282c393939393939393933322f2a241c140a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b151e283139424a50585f626b6f75797d7f828385858686858483817f7c79746f6a625f575049413931271f150b010000000000000000020e1a26313b4854606b74808d939fa3ababa49f9b979892919192939a989d9f938f82786d7a8794abb4a094877a6d6154473a2e211407000814212e3b4754616e7b8798a2aeaa9d908377695e53463d393634383a3e434c555e69717e8b97a1adb9aca09386796d6053463a2d201307000915222f3c4855626f7b8895aab4a99c8f837669544a3f33281c0f0300000000020e1a2531434f5c6976828f9ca9b4aa95887b6f6255483c2f221509000000000000000000000000000000010d1a2734404d5a6773808d9a9f9f9f9b8e8175685b4e4235281b0f02000000000000000000000000000000000000000000000000000006111c27313b434a4f51535353535353504e49423a31261c100500000000000000000000000000000000000006111c27313b434a4f51535353535353504e49423a31261c10050000000005101b26303a42494e4f5353504e4a433a31271c110500000000000000000000000000000000000000000000000000000000000000000000030f1c2935424e5a66707679797670665a4e4135281c0f00000000000000000000000000040a0f13151b1f21222527292a2b2c2c2d2c2b2b2a28262321201d1913100c07010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010e1a26323d4851595e606060605e575552545f606060606060606058565053585f6060605f5c574f453a2f24180c000000000000000000000000000000091623303c4956636f7c8996939393939083776a5f53473a2e2d2d28201f1c18121f2b3844505c6674818e93939393978a7d7063574a3d3024170a000000000a15212e3b47535f6a7784919daaac9c9083766a5f53473a3025190d010000000000000000000000000000000000000000010d1924303946525e6874818e9aa7aa9f92857a6d6054473c31261b0f0300000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c00000000000000000000000b1824303c48535d64676c6c6c6c6c6c6c65625b5146464644433f3932292b32383b3d4646444f5961636c6c6c6c6c6c6c68655d53483d3125180c0000000000000000000000040c131820272b3036393b3e4143454646454543423f3b3a37312c283a4043454646464646463f3e3a342d251b1106000000000000000000000000030b12181c1f202c2d2d2d2d22211e1a140e0600000000000000000000000000000000030a11171c1f2d2d2d2d2d2d2d2d2726231f19120a0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d273039434b545b606a6f767c8185898c8e90919292929291908e8b8985817c756e69605b534b433931271d1207000000000000000006121e2b37424e57636f7c87939fa5afa9a199938f8a878584848586888c90959e948d80747b8794a1ada093877a6d6054473a2d21140700091623303c4956636f7c8996aab4a79a8e817467574d42342d2a282b2d313a434d57606d7985929eabb8aca09386796d6053463a2d201307000a1723303d4a5663707d8996a3b0a89b8e8275685b4f422d22170b000000000000091c2835424f5b6875828e9ba8b0a396897d7063564a3d3023170a000000000000000000000000000000010d1a2734404d5a6773808d93939393938e8175685b4e4235281b0f0200000000000000000000000000000000000000000000000000000a16222e39434d555b5d6060606060605c5a544c42382d21160a0000000000000000000000000000000000000a16222e39434d555b5d6060606060605c5a544c42382d21160a000000000915212c38424c545a5c60605d5a544c43382d22160a0000000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d69768286868276695c4f4336291c100000000000000000000000040b10161b1f22262b2e2f3233353738383939393837373532302d2c29241f1d18120b060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2a36424e59636b6c6c6c6c6b64615a534d53535353535353534d535b60656c6c6c6c6b6861574c4034281c0f0300000000000000000000000000000e1b2834414e5b677481868686868686867f7265574e4237393939352d2c28231d1c28343f4a5463707d868686868686868175685b4f4235281c0f0000000006131f2b37434e5865727f8c98a2ab9f94887c6f62564c4135291e1308000000000000000000000000000000000000000005111d2935414c56616e7a86929faca3988d8074685d5245392a20150a0000000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c00000000000000000000000814202b36414a53595b6060606060606059565153535353514f4a443b32353d444849535353534f5557606060606060605b59534b41372c20140800000000000000000000000001070d151b1e252a2d2e31353738393939383735322f2e2b261f282f34373839393939393932312e29231b1309000000000000000000000000000000070c10131320202020201514120e090300000000000000000000000000000000000000060c101220202020202020201a1917130e0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d18232e39434b555d666c737c83898e9298999b9d9e9f9f9f9f9e9c9b9897918d88827b736c655d554b43392f24180e05000000000000000814212e3a47535f6a76828f9aa4afaba1979287827d7a79787778797b7f838a9196928a7e7b8895a1ada093867a6d6053473a2d201407000a1724313d4a5764707d8a97a3b0a5988c7f7265594c3f31261e1c1f2028313b45515c6673808d99aab4aca09386796d6053463a2d201307000a1724313d4a5764707d8a97a3b0a79a8e8174675b4e4134281b060000000000010e1b2834414e5b6774818e9aa7b0a3978a7d7064574a3d3124170a000000000000000000000000000000010d1a2734404d5a677380868686868686868175685b4e4235281b0f0200000000000000000000000000000000000000000000000000010e1a27333f4a555f676a6c6c6c6c6c6c69665e54493e3226190d0100000000000000000000000000000000010e1a27333f4a555f676a6c6c6c6c6c6c69665e54493e3226190d010000000d1925323d49545e66696c6c69665e544a3e32261a0d0100000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c1000000000000000000000060c161b21272c2f31373a3c3e4042444545464645454443413f3d3a39352f2c29241d17110a02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3945525e6b757979797978706c615f57514b434646424b51575f656c71787979797873685c5044372b1e110500000000000000000000000000000d1a2733404c59646f7479797979797979726d6256453c45464646413a38342e271e232e384855616b7079797979797979756f65594d4034271b0e00000000030f1b26323c4754606d7a86929faaa69a8d8174685e52463a2f24190d02000000000000000000000000000000000000040d1a232d3946525d6873808d98a3aa9f92867b6e61564c413529180e040000000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326190c0807050200000000000000030f1a252f3841484c4e53535353534c525f6060606060605d5b554d44393d474f54566060606060605a585353535353534f4d4841392f251a0f040000000000000000000000000000040a0f14191e202125282a2b2c2c2c2b2a282522211e1a151d23272a2b2d2d2d2d2d2d2524221e1811090100000000000000000000000000000000000406071313131313080705020000000000000000000000000000000000000000000000030613131313131313130d0c0a070200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f2834404b555d676d78808790949b9fa2a9a29e9c9b9a9a9b9d9fa3a9a19e9a948f877f776d675d554b40352920170d020000000000000815222f3b4855626e7b88949facaea39992857d75716e686b6b666d6e72767d84909492857d8996a3aca09386796d6053463a2d201307000b1824313e4b5764717e8a97a4b0a4978a7d7164574a3e3124171012161f2834404b54626f7c8998a3aeaca09386796d6053463a2d201307000b1824313e4b5764717e8a97a4b1a79a8d8174675a4e4134271b0e0100000000010e1b2734414e5a6774818d9aa7b0a4978a7d7164574a3e3124170b000000000000000000000000000000000d1926333f4c58646e7379797979797979756f65594d4034271b0e010000000000000000000000000000000000000000000000000003101d2936424f5b6771777979797979797670665a4e4235291c0f030000000000000000000000000000000003101d2936424f5b6771777979797979797670665a4e4235291c0f030000000f1c2835414e5a66707679797670665a4e4235291c0f0300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c100000000000000000030a111721272c32383b3c4347484b4d4f5151525253525251504e4c494745413a39352f28221c140b06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202d394653606c7987868686847d756e69605c554f46454f545c60696e777e8586868685786b5f5245382c1f120500000000000000000000000000000b1824303c48535d64676c6c6c6c6c6c6c65625b514c50525353534e464540393029202c38444f5961636c6c6c6c6c6c6c68655d53483d3125180c00000000000a15202c3945525d6874808d98a3ac9f92867a6d61564c4135291f14090000000000000000000000000000000000010c161f2a36424d57616d7a85929faaa2988d8074695e52433a2f241906000000000000111e2b3744515e6a7784919daaa5998c7f7266594c3f332619191514120e090300000000000008131d262f363c4041464646414c565e6c6c6c6c6c6c6c6a675f554a3f444f5960636c6c6c6c6c6c67645c534846464642403d372f271e1309000000000000000000000000000000000002080e111414181b1d1f1f201f1f1d1b191514120e0912171b1e1e202020202020191816120d060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e28313a45515c676d79828d92999fa6a39f9a97928f8e8d8e8e9092989b9fa3a69e99928c82796d675d51453f32291e14080000000000000d192633404c5966737f8c99a6b0ac9f92877c6f6b64615e56545c6062656c707a8290949083909daaaca09386796d6053463a2d201307000b1825313e4b5864717e8b97a4b0a396897d7063564a3d3023170a060d18232e3a4653606d7986929facaca09386796d6053463a2d201307000b1825313e4b5864717e8b97a4b1a79a8d8074675a4d4134271a0e0100000000010e1a2734414d5a6774808d9aa7b1a4978b7e7164584b3e3125180b000000000000000000000000000000000b17232f3b47525c64676c6c6c6c6c6c6c68655d53483d3124180c000000000000000000000000000000000000000000000000000004111e2a3744515d6a77838686868686868276695c504336291d10030000000000000000000000000000000004111e2a3744515d6a77838686868686868276695c504336291d1003000000101c2936434f5c69768286868276695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c1000000000000000030c151c232832383d4348494e5355585a5c5d5e5f5f605f5e5e5d5b595654514c47454039332d261d181008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e889396918a827b736d67615953525960666d737b828b929792877e7064574a3d3124170a0000000000000000000000000000000814202b36414a53595b606060606060605956514f575d5f6060605b53514b423a322a28333e474f5557606060606060605b59534b41372c201408000000000004111d2935414c56616e7b86929faaa2988c8073685d52453b30251a0d030000000000000000000000000000000007121d28313946535e6973808d98a2a89f92857a6d61564d4231281e1308000000000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3326252522211e1a140e060000000000010b141d252b30333439393946525e68767979797979797771675b4f434854606b70797979797979746e64584c4039393534312c251e150c0200000000000000000000000000000000000000020507080b0e101213131212100f0c0808060200070b0f11121313131313130c0b09060100000000000000000000000000000000000000000000000000000000050a0d0f101313100f0d0a0500000000000000000000000000000000000000000000000000000000000000000000020608080b0e1011121313121211100d0b080705020000000000000000000000000000000000000000000000010d19242f3a43505a606d79828f949fa3a7a099928e898583818181828386898e92999fa7a39f948f82796d605b51443b3025190e020000000005111e2a36424d576976838f9ca9b1a79a8d80736a605954524c4a5053555a61676d798290959095a0abaca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa296897c6f6356493c302316090007131f2c3845515c667683909da9aca09386796d6053463a2d201307000b1824313e4b5764717e8a97a4b1a79a8d8174675a4e4134271b0e0100000000010e1b2734414e5a6774818d9aa7b1a4978a7e7164574b3e3124180b0000000000000000000000000000000007131f2b36404a52585a606060606060605b59534b41372c201408000000000000000000000000000000000000000000000000000004111e2a3744515d6a778490939393938f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a778490939393938f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c10000000000000030d151e262e343d44484f5456585f626566686a6b6b6c6c6c6b6a6a686563605d5553514b443f382f2a221a11080000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4956626c717f8b919e948f868079706b615f5d606b6f797f868f949f93887e716c6155493c3023160a000000000000000000000000000000030f1a252f3841484c4e535353535353534c4a4c5761696b6c6c6c68605c544c443c342c2c353e44484a535353535353534f4d4841392f251a0f040000000000010d19242f3a46525e6974808d98a2aa9f92857a6d60574d42362a1f150b010000000000000000000000000000050e18242f39434f59616e7b86929faaa0968c7f72685e52443b301f160c01000000000000111e2b3744515e6a7784919daaa5998c7f7266594c3f333232322e2d2a261f180f060000000000020b131a202427282d2e3b4754616e7a86868686868683776a5d5144495663707d8686868686868074675a4e41342d282725201a130c0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a11161a1c1d20201d1c1a16110a0300000000000000000000000000000000000000000000000000000000000205090e121415181b1d1e1f20201f1f1e1c1a181514120e090502000000000000000000000000000000000000000004111d2935414c56616c74818e949ea6a69f959087817c79767474747577797d818790959ea5a69e948e81756d62564c41362a1e1408000000000714202d3a46525e697885929fabaca095877b6e61584f4746413f44464850555d676e7b85929da0a7b1aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f2316090004101c2834404b546875828f9ba8aca09386796d6053463a2d201307000a1724313d4a5764707d8a97a3b0a79a8e8174675b4e4134281b0e0100000000010e1b2834414e5b6774818e9aa7b0a3978a7d7064574a3d3124170a00000000000000000000000000000000020e19242e3840474c4d535353535353534e4d4841392f251a0f04000000000000000000000000000000000000000000000000000004111e2a3744515d6a7784909d9f9f9c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909d9f9f9c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c100000000000020b151f2730383f444f54596063676a6f7173757778787979787877767472706d6764605d55504a423c342c231a100700000000000000000000000000000000000000000000000000000000000000000000000000000000000815212d3945505a626d727f8b919c98928c847d756e69686d747c838c92989c918b7f726c625a5044392d2014080000000000000000000000000000000008131d262f363c4041464646464646463f44505d697378797979746d665e564e463e35282c33383c3d4646464646464642403d372f271e13090000000000000008131e2a36424d57616d7a85929fa8a2978d8073695e52463d31271d120700000000000000000000000000020b17202935404b55606b75828f98a3a59d9184796d60564c4132291f0d0400000000000000111e2b3744515e6a7784919daaa5998c7f7266594c3f3f3f3f3f3b3a36312a21180e03000000000001080f14181a1b212e3b4754616e7a87939393939084776a5d5144495663707c89939393938d8174675a4e4134271c1b18140f090200000000000000000000000000000000000000000000020507080b0e111112131312110f0c0908060300000000000000000406070b0f1213131211100e0c0b09060100000000000000000000000000000000040d151c2226292a2d2d2a2926221c150d04000000000000000000000000000000000000000000000000000002080e11151a1e21222528292b2c2c2c2c2b2b29272522211e1a14120e09020000000000000000000000000000000000000613202c3945525d68717e8a939da6a89f948f837c746f6c6668676768666d70757c838f939ea7a69e938b7f72685e52463b3025190d010000000814212e3b4754616e7b8798a2aeaa9d908377695e53463d393634383a3e434c555e69717e8b97a1adb9aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000c18232e414e5b6874818e9ba7aca09386796d6053463a2d201307000a1723303d4a5663707d8996a3b0a89b8e8175685b4e4235281b090000000000020f1b2835424e5b6875818e9ba8b0a3968a7d7063574a3d3024170a00000000000000000000000000000000020e1a26313c454e53556060606060606055534e463c31261b0f03000000000000000000000000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c1000000000000a141d273139424a505960636b6f74787b7e8082848485858685858483817f7c7a75716d67605b544e463e352c23190d040000000000000000000000000000000000000000000000000000000000000000000000000000000005111d29343e48505a626d727f8c929c9f96918a827b73717a818891959f9d928c7f736d625a50483e33281c100400000000000000000000000000000000010b141d252b303334393939393939393845525f6b788586868681786d685f584f473f342e272c2f30393939393939393534312c251e150c0200000000000000010e1a25303b46525e68727f8c96a0a99f92867b6e61594f43392f24180e040000000000000000000000000a141d29323a45515d67707d89939ea89d93897d70675c51443a3020170d0000000000000000111e2b3744515e6a7784919daaa5998c7f7266594c4c4c4c4c4c4846423b332a1f14090000000000000003080b0814212e3b4754616e7a87949f9f9d9084776a5d5144495663707c89969f9f9a8d8174675a4e4134271b0e0c08040000000000000000000000000000000000000000000003090e121415181b1d1e1f201f1f1d1b191515120f0a0401000000070c101313181c1e1f201f1e1d1b181815120d060000000000000000000000000000030d161f272d32353639393635322d271f160d03000000000000000000000000000000000000000000000002080d14191e20262b2e2f323436383939393938373634322e2d2b26201e1a140e090200000000000000000000000000000004111d2935414c55606d7a85929ea5aca0968f82796e6a62605b545a5b545c60636a6e78818f959faba59f92857a6e61564c41362a1e1105000000091623303c4956636f7c8996aab4a79a8e817467574d42342d2a282b2d313a434d57606d7985929eabb8aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f2316090000071a2734404d5a6773808d9aa6aca09386796d6053463a2d201307000916222f3c4955626f7c8895aab4a99c8f8276695c4f4330251a0e0200000000030f1c2936424f5c6975828f9ca8b5ab95897c6f6256493c2f2316090000000000000000000000000000000006121e2b37424e575f6c6c6c6c6c6c6c6c625f584e43372b1f1206000000000000000000000000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c100000000006111b262f39434b545c606b70767c8184888b8d8f9091929293929191908e8c8986827e79716c665f584f473e352b1f160c01000000000000000000000000000000000000000000000000000000000000000000000000000000000c17222d363f48515b636d737f8c929ca09e948f867f7d848d939aa09d938d80736d635b51483e362c22170b000000000000000000000000000000000000020b131a202427282d2d2d2d2d2d2d323f4c5965727f8c93938e827a6f6a615951444039302823242d2d2d2d2d2d2d282725201a130c0300000000000000000009141f2a36414c56606d7984919da5a2988e81756b60554b40352920160b020000000000000000000006111c262f3a444f59606d7984919ea5a1968e81746b60554b4032291e0e050000000000000000111e2b3744515e6a7784919daaa5998c7f72665958585858585855534d453b31261a0e020000000000000000000814212e3b4754616e7a8794a1aa9d9084776a5d5144495663707c8996a3a79a8d8174675a4e4134271b0e0100000000000000000000000000000000000000000000040a0f141a1e212125282a2b2c2c2c2b2a282622211f1b15110d08030b12181c1f2025292b2c2c2c2b2a272524221d181109010000000000000000000000000a151f2831383e4243464643423e3831281f150a00000000000000000000000000000000000000000000040c13191f252a2d31373a3b3e41434445464645454443403e3b3a37312d2a251f1a140d0500000000000000000000000000000613202c3945515d6773808d97a1ada69e91847a6d675f5853504a4e4e4b5153585f666d79839099a3ada2978d8174685e5246392d2014090000000a1724313d4a5764707d8a97a3b0a5988c7f7265594c3f31261e1c1f2028313b45515c6673808d99aab4aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000814212e3b4754616e7b8798a3aeaa9d9084776a574d42362a1e12050000000005111d2935414c566a7783909daaafa399877b6e6154483b2e211508000000000000000000000000000000000814212e3a47535f6a7679797979797979766a5f53473a2e211508000000000000000000000000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c10000000000b17222d38414b555c666d737d82898e919698999b9d9e9e9f9f9f9e9d9d9b9898928f8a857e786f6a61594f473d31281e13080000000000000000000000000000000000000000000000000000000000000000000000000000000006101b242d363f49515b636d73808d929da49e98928c8a91969fa49e938e81746e645b51493f362d241a10050000000000000000000000000000000000000001080f14181a1b20202020202025313e4a56626d75818f969490847c706b625b514a423a322a21192020202020201c1b18140f090200000000000000000000020d1925303a45515c67707d89939da89e93897d70675d51453d32281d140a000000000000000000071017222d38424c56606b74808d96a0a3999184796d60594f43392e20170d000000000000000000111e2b3744515e6a7784919daaa5998c7f726665656565656565615f574d42362a1e12050000000000000000000814212e3b4754616e7a8794a1a99d9084776a5d5144495663707c8996a3a79a8d8174675a4e4134271b0e01000000000000000000000000000000000000000000060c161b1f252a2d2e31343738393939383735322f2e2b26201d19130c151d23282c2d32353839393838363432312e29231b1309000000000000000000000005111c27313a434a4e505353504e4a433a31271c11050000000000000000000000000000000000000000080e161e25293036393c4247484b4e50515253535252514f4d4b4846423c3a36302a251f170f08000000000000000000000000000714212d3a4754606d7a85929fa9aa9e94897d70685d554e46443f41414045464e545c676f7c87929faca99f92867a6e6154473c31261a0e0200000b1824313e4b5764717e8a97a4b0a4978a7d7164574a3e3124171012161f2834404b54626f7c8998a3aeaca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000713202d3a4653606d7986929facab9f928578695e52463a2d201407000000000713202d3946525d687885929eabac9f9286796d6053463a2d201307000000000000000000000000000000000815222f3b4855626e7b868686868686867c6f6255483c2f22140a000000000000000000000000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c10000000030f1b27333f49535c676d7880888f949a9ea1a8a6a9a19e9d9d9c9d9d9ea1a9aaa39f9b97918b837c706b61594f433a2f24190d010000000000000000000000000000000000000000000000000000000000000000000000000000000009121b242d373f49525b636e74808d929da5a39f99979ea1a69e948e81786c605c524940372d241b11080000000000000000000000000000000000000000000003080b0d0e131313131316222e3a46515b606d7a8491989691867d726d605c544c443c332b2317110a1313130f0e0c08040000000000000000000000000008131e2834404b55606b74818e96a1a59d9184796d60594f443a2f261b110600000000000000060f192228333f4a545e68707d88939fa69f92877d6f675d51473d30271d0e05000000000000000000111e2b3744515e6a7784919daaa5998c7f7272727272727272726e695f53463a2d2114070000000000000000000814212e3b4754616e7a87949c9c9c9084776a5d5144495663707c89969c9c9a8d8174675a4e4134271b0e0100000000000000000000000000000000000000030a111720272b31363a3b3e4144444546464544423f3c3b37322c29241e191e272e34383a3e42454646454443413f3d3a342d251b1106000000000000000000000a16222d38434c545a5d60605d5a544c43382d22160a000000000000000000000000000000000000020a121a202830353b4146474e5355585b5c5e5f5f5f5f5e5e5c5a5855534d4846423b363029211a120a020000000000000000000005111e2a36424d5765727f8b98a2aea99c8f82756b60564c433c38332d2e34383c424b555f6a74818e9ba8aea3988c7f7266574d42372b1e120500000b1825313e4b5864717e8b97a4b0a396897d7063564a3d3023170a060d18232e3a4653606d7986929facaca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070006121f2b3844505c667784909daaaea298877b6e6154483b2e21150a000000000714212e3a4754616d7a8797a1adaa9e918477665c5145382c1f1306000000000000000000000000000000000714212d3a4754606d7a879893939393897d7063564a3d2f261b11060000000000000000000000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c1000000005121f2b3744505b656d79828d939a9fa6a7a09d999697929090909090929795999da0a7a19e9590867d706b60564c4135291d1307000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b252d374049525c646e74808d939da59f9f9f9fa79f948f82786d665b504a40372e251b1209000000000000000000000000000000000000000000000000000001010606060606121e29353f45525d686f7c86929f9892877f746d665d564d453d3528231c140c0300020100000000000000000000000000000000020c18232e39434f59606d79849199a3a0968d80736b60564c41382d221710070000000000030d18212b343d44505b666d7a85919aa49e948c7f726b60554b41352b1e150b00000000000000000000111e2b3744515e6a7784919daaa89b8f817f7f7f7f7f7f7f7f7f7b6e6155483b2e2215080000000000000000000814212e3b4754616e7a878f8f8f8f8f84776a5d5144495663707c898f8f8f8f8d8174675a4e4134271b0e01000000000000000000000000000000000000030c151c232832373b4246484b4e505152535252504e4c4847433c39352f28222b30394045464b4f5152535251504e4b4a463f372d23180d010000000000000000010d1a26323e4a545e66696c6c69665e544a3e32261a0d0100000000000000000000000000000000020b141c242c323a41464d5254575f626567696b6c6c6c6c6b6a696765615f5754524d46423b332c241c140a020000000000000000000714202d3a46525e697683909daaada196897d7063594f433a312b282223282c3039434e58626f7c8895a0acaa9d908477695f53463a2d21140700000b1825323e4b5865717e8b98a4afa296897c6f6356493c302316090007131f2c3845515c667683909da9aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070003101c28343f4a546875818e9ba8b3aa978a7d7064574a3d32271b0d04000001081623303d495663707c8996a9b3a89c8f827569544b4034281c1004000000000000000000000000000000000613202c3945525d687985929f9f9f998c7f7366584e41382d2217110a02000000000000000000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c10000005111e2a36414c56606c77818e949fa4a7a09d95908c89878584838383848587898c90959ea1a7a09892867d6f685d52453a2f24180d01000000000000000000000000000000000000000000000000000000000000000000000000000000000009131c252e37404a525c606c77818e93939393939393959082796d665c544a3f382e251c1309000000000000000000000000000000000000000000000000000000000000000000010d18232935414c565f6a727e8b939e99938c81786d685f574f473f342e261e150c030000000000000000000000000000000000000007121d27303d45515d676f7d87929fa69f93877d6f685e53493f332722190f060000000009141f29333d46505a606c78828f97a1a0958f82776c60594f433a2f23190c0300000000000000000000111e2b3744515e6a7784919daaaa9e938f8b8b8b8b8b8b8b8b8a7d7164574a3e3124170b0000000000000000000714212d3a4754606d7a8283838383838174675b4e414855626f7c8283838383827f7265584c3f3225190c000000000000000000000000000000000000030d151e262e343d43474d5354585b5d5e5f5f5f5e5d5b5955534e4745413a3129343c424b5153585c5e5f5f5f5e5d5a585651493f34291d12060000000000000000030f1c2935424e5a66707679797670665a4e4235291c0f03000000000000000000000000000000010b141d262e363e444c52565e61666a6e717476777879797878777673716e6966615e57524d453e362e261c140a0000000000000000000814212e3b4754616e7b87959fabab9e9184786c6053463d31281f1c17181c1f27313c47535f6a7784919daaaca095887b6e6155483b2e22150600000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f2316090004101c2834404b546875828f9ba8aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000b17232e3f4b5865727e8b98a8b2a69a8d807367584e43372b1f15100c090e131e2a36414c5666727f8c99a5b3aa998c7f7366594c402e23180c000000000000000000000000000000000004111d2935414c566976838f9caca99d9083766a6053493f3327221b140b040000000000000000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c1000000713202d3946525e68727f8c939ea6a59d959089837f7c7a787776767677787a7c7f838a9297a1a9a29891847a6d60554b4135291d11040000000000000000000000000000000000000000000000000000000000000000000000000000000000010a131c252e384044505b656c7881868686868686868683796d675d544a42382d261c130a0100000000000000000000000000000000000000000000000000000000000000000000070d19242f3a434e58626d75818e95a09f928e827a6e69605951443f3830271e150b00000000000000000000000000000000000000000b151e2935414b55606b727f8c949ea49991847a6d655b50443e342b21180d030000020e1a26313b454e58616c73808d949ea19791837a6d655b50473d31281d11070000000000000000000000111e2b3744515e6a7784919daab0a69e9b98989898989898978a7d7164574a3e3124170b0000000000000000000713202c3945525d686d767676767676746f64584c4047535f6a6f767676767676726d62564a3e3125180b0000000000000000000000000000000000010b151f2730383f444e54575e6164676a6b6c6c6c6b6a6865625f5854524c433f353c464e545c6065686b6c6c6b6b696765625b51463a2e221509000000000000000003101d2a3643505d69768286868276695d5043362a1d100300000000000000000000000000000009131d262f38404850565e61686e73777b7e81838485868685858482807e7b77736e69615e57504840382e261c130900000000000000000b1824313e4b5764717e8a97a7b1a79a8e8174665b5044382b1f160f0b0c10151f2b37434e586773808d9aa6b1a7988b7e7165584b3e2d22170b00000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000c18232e414e5b6874818e9ba7aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000615222f3c4855626f7b8896a0acaa9d9184776a6054473c31271f1c181b1a1e242d3946525e6876838f9ca9aea298897c706356493d302316070000000000000000000000000000000000010d19242f3f4c5966727f8c9aa4ab9f95897c6f655b50443e332d261d160e0600000000000000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c100004101c2834404a54616d7a85929fa5a69d938e837d77736f6d686a6a696a6a676d6f73787e859196a1aaa1968d8073675d5145392c201306000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a131c2627333f49535b666c757979797979797979776d675d554b42392f261c140a0100000000000000000000000000000000000000000000000000000000000000000000000008131e28313c46515b606d79839198a29d948f847b706b625b504a423930271d120700000000000000000000000000000000000000030c18242f3a434f59606c77828f95a0a1968f82776c605a50463d33291f1409000005121e2a36424d57606a717e8a929ca29892857b6e685d53493f352b1f160c000000000000000000000000111e2b3744515e6a7784919d9f9f9f9f9f9f9f9f9f9f9f9f978a7d7164574a3e3124170b00000000000000000004111d2935414c565d6069696969696967645c53483c434e585f6269696969696965625b51463a2e221609000000000000000000000000000000000007121d273139424a50586062696e71747777787979787775726f6a66605d56504540454e5860666d717578797978777674726d62564a3d3124180b000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000007101b252f38404a525a61686d747b8084888b8e8f919292929291918f8d8b8884807b746e69615a524a40382e251b0f06000000000000010e1b2834414e5b6774818e9aa7b4aa978a7e7164544a3f3328190d040000040d1b26323d4a5764707d8a97aab4a79b8e81746853493f33271b0f03000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f2316090000071a2734404d5a6773808d9aa6aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000815212e3a47535f6a7784919eabaca095887c6f62584e4339312c282327262b2f35414c56616d7a86929facab9f9285796d6053463a2d2013070000000000000000000000000000000000000815222f3b4855626e7b87939faba79c9082776c605a50443f382f282017110a020000000000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c100006121f2c3844515c6674808d98a2aa9e948e8179706b6663605d565d5d5d555d6062656c717b84919ea8a99f92857a6d6054473a2d21140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a1417222d38414a545b60686c6c6c6c6c6c6c6c6a605d554c433930271d140a0200000000000000000000000000000000000000000000000000000000000000000000000000010c161f2a343f45515d676e7c86929fa59f9691857d726d605c544b42392e23180c000000000000000000000000000000000000000007131d28313d44505b656d7a839197a19e948c80736c61584e453b31261a0e02000714212d3a46535f696f7c869293939992867c6f695f564c41382d23190d04000000000000000000000000111e2b3744515e6a77849193939393939393939393939393938a7d7164574a3e3124170b000000000000000000010d1924303a444c52545c5c5c5c5c5c5b58534a41363c464e53555c5c5c5c5c5c585651493f34291e120600000000000000000000000000000000020c18242f39434b545c606a6f757b7e8183848586858583817f7c78726d68625a514b4d57606a6f797e82848586858483817f7265584b3f3225180c000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000030c19222d37404a525c636c717a81868c9196989a9c9e9f9f9f9f9e9d9c9a9895918d86817b716c645c524a40372d21180e03000000000005111e2a36414c566a7683909da9aea298887b6e6155483b2d221708000000000a15212e3b4854616e7b8798a2aeaa9d908377655b5044372b1f1205000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000006121f2b37434e586673808d99a3afa89b8e81756a5f554b433c38342e3431373a4145525d68737f8c99a3afa79b8e8175675c5145382c1f13060000000000000000000000000000000000000814212e3a47535f6975828f99a3ab9f948c7f726c615a5049413a3227221b140b0400000000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c10000713202d3a4653606d7885929fa9a2988f82786d6760595654524c5050504c5154535b6069707d8a96a0aca2988a7e7164574a3e3124170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b262f38424a50535b60606060606060605d54514c433a31271e150b02000000000000000000000000000000000000000000000000000000000000000000000000000000040d18222935404b555f6a717e8a939da7a09792877f746d665c544b4034281c100400000000000000000000000000000000000000010c161f27333f49535d686e7b859298a29f93887e706a60574d42362a1e1205000815222e3b4855616e7b858686868686867d706a60574d433a2f261b110700000000000000000000000000111e2b3744515e6a7784868686868686868686868686868686867d7164574a3e3124170b0000000000000000000008131e28323a4145475050505050504e4c4841382f343c4347485050505050504c4a463f372d23180d01000000000000000000000000000000000a141e2935404b555d666d747c82878b8e909192929291908e8c88847f7a716d605d55535f696f7c848b8f9192929291908d86796c605346392d2013000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000a151e2b343f49525c646e737e858d92999da0a8a9a29f9d9c9b9c9d9fa2aaa7a09d99928e857e736e645c52493f332a1f140900000000000713202d3946525e687885929fabac9f9285796c605346392d201306000000000714212d3a46535e697985929facac9f9285796c605346392d201306000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070000030f1a26313c4854616e7b87929faaac9f92877c6f675d554e46454041414142474c515b606d7a85929eabaca095897d7063554b4034281c100400000000000000000000000000000000000006121e2b37424d57626f7c87929fa7a69f93877e716c605b534c443d332d261d160e06000000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c10000a1723303d4a5663707d899297979992857b6e665c554f49474541434343414547495057616b7784919daaaa9a8d8174675a4e4134271b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d262f383f44464e5353535353535353504745413a31281f150c030000000000000000000000000000000000000000000000000000000000000000000000000000000000071018242f39434e58616c74818e95a0a9a299928b80786d665c5145382c1f13060000000000000000000000000000000000000000040d17222d38414c565f696f7d869299939a92867c6f695f53463a2d211407000714212d3a46535f696e78797979797979706b61584e453b31281d140a0000000000000000000000000000101d2a36434f5b67717779797979797979797979797979797979716c6155493c3023170a00000000000000000000020c1620283035393a43434343434341403c362f262a32373b3c4343434343433f3e3a342d251b11070000000000000000000000000000000006111c26303845515d676d7880898f93999a9d9e9f9f9f9e9d9b9896918c857e756d675d58626e7b8691969b9e9f9f9e9e9c9386796c605346392d2013000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000006111c26303d46515b646e74808a92979fa3a9a19e999792908f8f8f909298989d9fa7a39f97928a80736e635b51453b31261a0e04000000000714212e3a4754616d7a8798a2aeaa9d918477665b5044382b1f12060000000005121e2a36424d576a7784919daaaea298877a6e6154473b2e211408000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070000000a15212d3a46535e6975818e98a3aea3999083796d675f5853514b4e4e4e4d53555d606d74818e97a1ada69d9083776b605443392e23180c00000000000000000000000000000000000000020e1a26313c4754606a73808d959fa8a49992877e736c655e564f443f382f2820180f070000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c10000a1724313d4a5764707d8285878a8c8d8073685e544b433d3a39352f362f35393a3f444f596774818d9aa7a99c908376695d5043362a1d1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b141d262d333839424646464646464646443a39352f281f160d030000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d28313c46505a606d7983909893939393928d82796d6053463a2d20130700000000000000000000000000000000000000000006111b262f3a434d57606a707d868686868686857b6e6155483b2e2215080005121e2a36424d575f616b6c6c6c6c6c6c6361594f463d332a1f160b0200000000000000000000000000000e1b27333f4b565f676a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c64615a5045392d2114080000000000000000000000040e161e24292c2d3636363636363433302b251d20262b2e2f36363636363632312e29231b130900000000000000000000000000000000000b17232e3842505a606d79828d929b9fa4ababa39f9d9c9b9c9d9fa19e97928b82796d685f6a76828f98a1a8aaa39f9995949386796c605346392d2013000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000c17232e38424f59626d74808d929ea1a9a39f97918c8885838282838385888b90959ea1a8a29f928d80736d62574d42362a20160a000000000915222f3c4855626f7b8895aab4a99c8f837669544a3f33281c0f0300000000020e1a2531434f5c6976828f9ca9b4aa95887b6f6255483c2f221509000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000005121e2a36424d57616e7b86929fa6aba0958f82796f6a63605c555b5a5b575f62676d747f8c939ea9a99f948a7d7064594f4430271d120700000000000000000000000000000000000000000915202b37434e58606d79839096a0a7a39992877f776d6860595049413a322a2119100700000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c10000a1623303c4955616c7076787b7d80827c6f62564d4239302d2c29242a24292c2d33404c5966737f8c99a6aa9d9184776a5e5144372b1e110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b141c22282b2d353939393939393939372d2c29241e160d040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f2a343e45515c676e7b8586868686868686867a6e6154473b2e211408000000000000000000000000000000000000000000000a141d28313b454e58616b70797979797979786e695f53463a2d21140700020e1a26313b454d53555f60606060605f57554f473e342b21180d040000000000000000000000000000000b17232e39444d565b5e60606060606060606060606060606060575550483e33281c1104000000000000000000000000040c13191d2021292929292929282724201a13151b1f21222929292929292525221e181109010000000000000000000000000000000003101c28343f4a54616c74818e949da4aca7a09d9992908f8f8f9192999a9e9f948f837a6d666f7c88949faaaea398928c88878886796c605346392d2013000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000003101c28343f4a54606b727f8c929ca4aaa299928c84807b787675757677797b7f838a91969fa6a49c928b7f72695f53463d32271b0f030000000a1723303d4a5663707d8996a3b0a89b8e8275685b4f422d22170b000000000000091c2835424f5b6875828e9ba8b0a396897d7063564a3d3023170a000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000000020e1a25313b46535f69737f8c949fa7a79f948f837c75706d676867676869696e737a818c919ca5aaa1978f82766c6155473d331e150b000000000000000000000000000000000000000000030f1b27323c45515d676e7a8490959ea6a399938c827a6f6b605b534c443c332b22191107000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c10000814202d39444f59616469696e7073756f6a5f53443b302721201f2023282c2f353a424d566673808c99a6aa9e9184776b5e5144382b1e11000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171c1f20282d2d2d2d2d2d2d2d2a21201d19130c0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d18222934404b555f696e78797979797979797976685e5246392d20140700000000000000000000000000000000000000000000020b161f2a333d464f5961636c6c6c6c6c6c6b615f574d42362a1e1205000009141f29333b424648525353535353534a48443e352c22190f060000000000000000000000000000000006121d28323b444b4f51535353535353535353535353535353534a49453e362c22170c000000000000000000000000000002080d1113141d1d1d1d1d1d1b1a18140f080a0f1215151d1d1d1d1d1d191816120d0700000000000000000000000000000000000006121f2b3844505c66717e8b939ea6aea59d95908a86838282838486898d92979f959083786d73808d99a6b0a89f9286807c7a7b7d7063574a3d3024170a000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000006121f2c3844505c666f7c87929fa4aba29892878079736f6a6a696869656c6e72777d848f949fa6a49f92867b6e61584e43382b1f13060000000a1724313d4a5764707d8a97a3b0a79a8e8174675b4e4134281b060000000000010e1b2834414e5b6774818e9aa7b0a3978a7d7064574a3d3124170a000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070000000009141f2a36424d57606d78828f959fa7a69f959087817d79777574747476787b80858e939ca3aaa29892857b6e615a5044352b210c03000000000000000000000000000000000000000000000a15202935404b555e686e7b838f949fa3a49f948f847d726c655d564d453d342b23190f060000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c100004101c28333e474f5557575e61646669625f584e4332292122282b2d2e34383a40454c545e6975828f9ba8aa9d9083776a5d5044372a1d110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f12131b20202020202020201d1413110d0801000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060f18232f39434d575f616c6c6c6c6c6c6c6c6c6c5e564c41362a1e11050000000000000000000000000000000000000000000000040d18212b343e474f55575f60606060605f55534d453b31261a0e020000030d18212931363a3b454646464646463d3c38332c231a10070000000000000000000000000000000000000b16202932393f4344464646464646464646464646464646463e3c39332c241a100500000000000000000000000000000000010407071010101010100e0d0b08030000030608091010101010100c0b090601000000000000000000000000000000000000000713202d3a4653606d7884919ea5afa69d938e837d797776757677797c80858c9298958e81747683909ca9aca0958a7e736f6e6e706b6155483c2f231609000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000003101c28343f4a54606d78839099a3afa39992867d736d67625f585c5c535b6061656c707a828f949fa9a2988f82766a6054473b2e2215080000000b1824313e4b5764717e8a97a4b1a79a8d8174675a4e4134271b0e0100000000010e1b2734414e5a6774818d9aa7b0a4978a7d7164574a3e3124170b000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000000030e1a26313b44505c666d7a8390959da5a7a099938e898683828181818385888c92979da5a7a09892867d70695e52483e3323190f0000000000000000000000000000000000000000000000040c18242f39434c565e696e7a828c9299a1a69e9691877f776d685f574e463d352b21180c0300000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c1000000b17212c353e44494a4d535457595c55534e463c312a2d2d3338393c4045464b51565d666e7b86929faca89c8f8275695c4f4236291c0f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306060f1313131313131313110706040100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d27313c454d53555f60606060606060605f524c443b3025190e02000000000000000000000000000000000000000000000000060f19222c353e44484a535353535353524846423b33291f140900000000060f181f262a2d2e38393939393939302f2c28211a110800000000000000000000000000000000000000040e1720282e3336373939393939393939393939393939393931302d28221a120800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a96a0acac9f948e8179716d67696869676d70747a7f869095938a7e7885929fabaa9d9184776c6261616361594f44382c201407000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000006121f2c3844505c66727f8b95a0aba89f92877d706b605d55534e4f4f495053555a61686d79829097a1a49f94897c6f6256493c2f2316090000000b1825313e4b5864717e8b97a4b1a79a8d8074675a4d4134271a0e0100000000010e1a2734414d5a6774808d9aa7b1a4978b7e7164584b3e3125180b000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000000000009141f28343f4a545e686d7a838e929d9fa7a49f9b9892908e8e8d8e8f9197999ea1a9a29e9590867d706b60574d42362c22110800000000000000000000000000000000000000000000000007121d27313b444d565e686d777f8791979fa6a199928c827a6e6960584f473d332a1e150a00000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c10000005101a232c33393c3d4246484a4d4f4847433c3431363a3b3f4446494b5153555d60686d78828f98a2aea7998c7f7366594c403326190d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b151f2a333c4246485253535353535353535346413b32291e1408000000000000000000000000000000000000000000000000000007101a232c33383c3d464646464646453b3a36312921180d030000000000060d141a1e21222c2d2d2d2d2d2c2423201c161008000000000000000000000000000000000000000000050e161d23272a2b2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2423211c171008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000106090b0c1313131313130d0c0a070200000000000005121e2a36424d576875818e9ba8afa49a8f82786d66605d555c555c6063676d727b838f9391857b8797a2ada79a8d8074675a545557554f473e33281c1004000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000713202d3a4653606d7984919ea7ada1968d80736b6059514b474342423f44464850565d676d7a85929b9993908c8275685c4f4235291c0f0200000b1824313e4b5764717e8a97a4b1a79a8d8174675a4e4134271b0e0100000000010e1b2734414e5a6774818d9aa7b1a4978a7e7164574b3e3124180b000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070000000000030b17232e38424c565e686d79818990959b9fa2aaa39f9d9b9a9a9b9c9ea1a9a49f9c97928c837b706b60594f453b30241a1000000000000000000000000000000000000000000000000000010b151f29323b444d565d656c727d858f949fa3a39f948f847b6f6a60594f453c30261c1106000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c1000000008111a21282d3031363a3b3d40423c3a37373b3c4246484a505355555c6063676d727a818f949eaaab9f95887c6f6255493c2f22160900000000000000000000000000000000000000000000000000000003080c0e0e131313131313130f0e0c09040000000000000000000000000000000000000000000000000000000000000003070b0d0e131313131313130e0e0c08030000000000000000000000000000000000000000000000000000000000030d18212a31373a3b4546464646464646463b3936302920170d0200000000000000000000000000000000000000000000000000000008111a21282c2f30393939393939382e2d2a261f180f060000000000000003090e1214151f202020202020171614100b050000000000000000000000000000000000000000000000040b12171b1d1e20202020202020202020202020202020171714110c0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070d121618192020202020201a1917130e0800000000000714202d3a46525e697885919eabac9f93877c6f665c54514b4f4b5153555d60696e79818f949083909da9b3a4988b7e7165584b484a48443e352c21160b00000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000004101d2935404b5564717d8a96a1acaa9e9184796d60594f45403937312d3337393e444c555e68717e8b8e8a86837f7c6f6255483c2f2215090000000a1724313d4a5764707d8a97a3b0a79a8e8174675b4e4134281b0e0100000000010e1b2834414e5b6774818e9aa7b0a3978a7d7064574a3d3124170a000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000000000006111c26303a444c565e676d747c83898e9298999b9d9e9f9f9f9f9e9d9b999993908b857f786e6960594f473d33291f12080000000000000000000000000000000000000000000000000000030d172029323b444c535b606b707a828c9299a1a69e9691857d6f6b60574d42382e23170c020000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c10000000000810171c2023252a2d2e31333036393c4347494d5354545b606266676d7074797e858f939ea6aea49d9083776a6054473b2e2215080000000000000000000000000000000000000000000000000001090f14181a1b202020202020201c1b191510090200000000000000000000000000000000000000000000000000000001080e1317191a202020202020201b1a18140f090100000000000000000000000000000000000000000000000000000000060f181f262b2d2e3939393939393939392e2d2a251e170e0500000000000000000000000000000000000000000000000000000000000810161c2023242c2d2d2d2d2d2c22211e1a140d060000000000000000000002050708121313131313130a090704000000000000000000000000000000000000000000000000000000060b0e1011131313131313131313131313131313130b0a080400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010911181e2225252d2d2d2d2d2d2726231f19120a020000000815212e3b4854616e7b8797a1adaa9d9083776a5f544b4540424045474b51575f676d78828f9590959fabb0a3968a7d7063574a3d3d3c38332c231a100500000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000613202c3945515d6775828f9ba8aea3988b7e71675d51473d352f2b2622272b2d323a434c56606d7883817e7a76736f6a5f53473b2e2115080000000a1723303d4a5663707d8996a3b0a89b8e8175685b4e4235281b090000000000020f1b2835424e5b6875818e9ba8b0a3968a7d7063574a3d3024170a000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000000000000000a141e28323a444c555c606b6f777d8185898c8e90919292929291908f8d8a86837e79726d665f574f473d352b20170d00000000000000000000000000000000000000000000000000000000050e172029323a4149505960686d777f879297a0a8a09792867d6f695f544a3f34281e13080000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c100000000000050b1014161a1e21282f353a4146474e5455575e6165666c6f7276797d81858b91979ea5afa69d92897d7063584e43372b1f1306000000000000000000000000000000000000000000000000030b131a202427282d2d2d2d2d2d2d292825211b140c0300000000000000000000000000000000000000000000000000020b12191f2326272d2d2d2d2d2d2d282724201a130b0300000000000000000000000000000000000000000000000000000000060e141a1e21222c2d2d2d2d2d2d2d2d21201e19140d0500000000000000000000000000000000000000000000000000000000000000050b101416172020202020201f1514120e09030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009131b23292e313239393939393933322f2a241c140a0000000916222f3c4955626f7c8895a9b3a79a8d817467584e4239352f34383a40454d555c666d7a85919d9fa7b1afa396897c706356493d302f2c28211a11080000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000714202d3a4753606d7a86929facac9f92867a6d60554b403529241d1a171b1f2028313a44515c666d7775716d6866625f584e43372b1f12060000000916222f3c4955626f7c8895aab4a99c8f8276695c4f4330251a0e0200000000030f1c2936424f5c6975828f9ca8b5ab95897c6f6256493c2f231609000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000000000000020c162029323a434b515960636b7075797c7f82838485868685858382807d7a76726d67605c544d453d352b23190e050000000000000000000000000000000000000000000101020000000000050e1720282f383f444f565e656c727d859196a0a9a29892857b6e665c50443a3025190d0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c10000000000000000409121b232b323a41454c525458606266696e7175797c7f8285898d92979ea1a9ada59e948d80746b6054463c32271b0f030000000000000000000000000000000000000000000000010b151d252b303435393939393939393534312c261e150c000000000000000000000000000000000000000000000000000b141d242b303334393939393939393534302b251d150b010000000000000000000000000000000000000000000000000000000003090e1214151f20202020202020201414110e0802000000000000000000000000000000000000000000000000000000000000000000000407090a13131313131312080705020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002070a0c0d13131313090907030005090d0f101313131312100d0903000000000000000000000000000000000000000000000000050a0d0f101313100f0d0a0500000000000000000000000000000007111b252d343a3e3f464646464646403f3b362e261c120800000a1723303d4a5663707d8996a3b0a6998c7f7366594c402f2924292c2f353b434b545d68707d8a959fabb7afa396897c706356493d3023201c161008000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000a1723303d4a5663707d8998a3aea89b8e8275675d51433a2f23181d1d1d1d1d161f2834404a545c606a6864615e5655534e463c32261b0f030000000814212e3b4754616e7b8798a3aeaa9d9084776a574d42362a1e12050000000005111d2935414c566a7783909daaafa399877b6e6154483b2e211508000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070000000000000000050e1720353f474e524f54596063676d70727576787879797878777573706d6865605d55504a46423c332a1f14090000000000000000000000000000020507080a0b0c0c0d0e0f090907030000050d161d262d333d444c535b606b6f7b849196a1aaa2979083786d60564c41362a1b110600000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c100000000000000009121b242d353d444c52565e61666a6f73777b7e8285888c8f92989a9fa2a9aca9a19e938e82786d60594f44342b20150a00000000000000000000000000000000000000000000000009131d272f373c40414646464646464642413d3730271e0e050000000000000000000000000000000000000000000000030d1d262e363c3f414646464646464641403c372f271d13090000000000000000000000000000000000000000000000000000000000000205070812131313131313131308070502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070e1317191a202020201615130f0a1015191c1d202020201f1d19140e07000000000000000000000000000000000000000000030a11161a1c1d20201d1c1a16110a03000000000000000000000000010d18232d373f464a4c5353535353534d4b4740382e24190e02000a1724313d4a5764707d8a97a3b0a5988c7f7265594c3f2e23181c1f24293139424c56616c7683909da9b3afa396897c706356493d302316100b0500000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000d1a2733404d5a6673808d99aab4aa978b7e7164554c4131282a2a2a2a2a2a2a2a2a232e39424a51535d5b5754524c4847433c342a20150a000000000713202d3a4653606d7986929facab9f928578695e52463a2d201407000000000713202d3946525d687885929eabac9f9286796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000000000000010e1a26313d4751595e5f606060555c606366686a6b6c6c6c6c6b6a686664615e566060606055534d453c31261a0e02000000000000000000000002090e111414171818191a1b1c1615130f0a0400040b141b2227323a4149505960696e7b849199a3a99f958c7f73685e5246382d22170b00000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c1000000000000006101b242d373f474f565d60686d72777c8084878b8e9297999c9fa2aaababa8a19e96918a81796d665c51473d3322190e040000000000000000000000000000000000000000000000030f1a252f3941484d4e535353535353534f4d4942393020170d02000000000000000000000000000000000000000000010b151f2e3840474c4d535353535353534e4d4841392f251a0f0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000106090b0c1313131313130d0c0a07020000000000000000000000000000000000000000000000010a12191f2326262d2d2d2d23221f1b161b212628292d2d2d2c2b29251f19110800000000000000000000000000000000000000040d151c2226292a2d2d2a2926221c150d04000000000000000000000006121e29343f495156586060606060605a58524a40362a1f1307000a1723303d4a5663707d8996abb5a6998d807366544a403428211e1a181f27303a44505a64707d8a97a2adafa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000004101c2834404b546976828f9ca9aea398887b6f6255483c2f3737373737373737373737373039404446514e4b4746413c3b37322a261f180f0600000006121f2b3844505c667784909daaaea298877b6e6154483b2e21150a000000000714212e3a4754616d7a8797a1adaa9e918477665c5145382c1f1306000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070000000000000004111d2a36424e59636a6c6c6c6c6b636059595b5d5e5f5f5f5f5e5d5c5a575f626a6c6c6c6c6c5f574d42372b1e120500000000000000000000050d14191e20212324252627282823221f1b160f0700020a111720292f383f444f575f696f7d87929fa9a79f92867a6d6153493f33271b0f03000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c100000000000040e18222d363f49515960686d737a7f84888d9196989b9ea2a9a9acaaaaa29f9b96918c847e746d675c544a40352b2110070000000000000000000000000000000000000000000000000814202b37414b53595b606060606060605c59544b4232291f140900000000000000000000000000000000000000000007121d2731404a52585a606060606060605b59534b41372b2014080000000000000003060809131313131313130b0a08050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010406070f111213131312110e0b0706040000000000000000000000000000000000070d121618192020202020201a1917130e08000000000000000000000000000000000000000000000a131c242a2f323339393939302f2c2721262d323536393939393835312a231a11070000000000000000000000000000000000030d161f272d32353639393635322d271f160d03000000000000000000000916222e3a46515b62656c6c6c6c6c6c66635c52473b2f23170a000915222f3c4855626f7b8899a3afa89b8f8275665c51443a322d2b2627272628323e4653606d7985929fabafa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000006131f2c3845515c667884919eabac9f9286796d6053464444444444444444444444444444444444444444444444444444443b3a36312a21180e03000003101c28343f4a546875818e9ba8b3aa978a7d7064574a3d32271b0d04000001081623303d495663707c8996a9b3a89c8f827569544b4034281c1004000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000b1825323e4b5865717e8b98a4aca295897c6f6256493c2f23160906040d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070000000000000006121f2c3845525e6a757979797978706b605c544d5152535352524b515a61696e777979797976695f53463a2d211407000000000000000000050e171f252a2d2e30313233343435302f2c27211910070000060e171d262d333d454d57606b73808d97a2ada2988c8073655b5044372b1f1205000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c1000000000000a15202a343e48515b626b707a80868c9196999da0a8a8abaaa7a7a09d9a98928e8a847f79716c605c554b42392e231a0f000000000000000000000000000000000000000000000000000c1824303c48535d64686c6c6c6c6c6c6c68655d54443b3025190e0000000000000000000000000000000000000000000c18232f3943525c64676c6c6c6c6c6c6c68645d53483c3024180c0000000000040a0f13151620202020202020181715110c060000000000000000000000000000000000000000000000000000000000000000000000000000000001080d1113141c1e1f1f20201f1e1b181413100c0701000000000000000000000000010911181e2225252d2d2d2d2d2d2726231f19120a020000000000000000000000000000000000000007121c262e353b3f40464646463c3b38322b30383e41434646464645413c352c23190e03000000000000000000000000000000000a151f2831383e4243464643423e3831281f150a000000000000000000000b1825313e4a56626d72797979797979736e63584b3f3226190c000714202d3a4753606d7a86929facab9e9285796d60564c443d3a373134333332323845515c6675828f9ca8afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000713202d3a4653606d7986939facaa9d908477665c50505050505050505050505050505050505050505050505050505050504846423b332a1f14090000000b17232e3f4b5865727e8b98a8b2a69a8d807367584e43372b1f15100c090e131e2a36414c5666727f8c99a5b3aa998c7f7366594c402e23180c00000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000b1825323e4b5865717e8b989f9f9f95897c6f6256493c2f231b1313100c1a2733404d5a6673808d999f9f9f9386796d6053463a2d201307000000000000000613202c3946535f6c7987868686847d736d665f5751464146454d555c606c717b83868686867b6e6155483b2e2215080000000000000000020d17202930363a3b3d3e3f3f4041423c3b38322b23190f040000050b141b2227333b454f59606d7a85929fabaa9e9185786c605346392d201306000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c1000000000030f1b26313c46505a626d727d848d92989ea0a8aaaba8a8a09e9a9795908d8985817d78726d67615a514b433930271c1108000000000000000000000000000000000000000000000000000e1a2734404d59646f7479797979797979756f65564d42362a1c11060000000000000000000000000000000000000004101c2934404b55646e7479797979797979746f64594d4034271a0e00000000060e151b1f21222d2d2d2d2d2d2d2524211d1711090000000000000000000000000000000000000000000000000000000000000000000000000000040c13191d2021292a2c2c2d2c2c2a2824201f1c18120b03000000000000000000000009131b23292e313239393939393933322f2a241c140a000000000000000000000000000000000000020e19242e3840474b4d535353534948433d353a42494e5053535353514d473e352a1f140900000000000000000000000000000005111c27313a434a4e505353504e4a433a31271c11050000000000000000000c1925323f4c5865727f8686868686868073665a4d4033271a0d0006131f2c3945515d677783909dabada1978a7e71685e564f484742424140403f3f3f404b546673808c99a6afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000815212e3b4854616e7b879aa4afa99c90837669545d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d55534d453b31261a0e0200000615222f3c4855626f7b8896a0acaa9d9184776a6054473c31271f1c181b1a1e242d3946525e6876838f9ca9aea298897c706356493d3023160700000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000b1825323e4b5865717e8b9393939393897c6f6256493c2f2d28201f1c181a2733404d5a6673808d939393939386796d6053463a2d20130700000000000000000b1825323e4b5865717e8b9296918780786e69625b524c4550575f676d747e869095948d8074695f53463a2d211407000000000000000009141f29323b4246474a4b4b4c4d4e4f4948433d352b21160a000000020a11172129333d45525d6874808d9aa7ada197887c6f6255483c2f221509000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c100000000006121f2b37434e58626c727f8791969fa2aaaaaaa29f9b9896918e8a8784807d7975706d66605d555045403930271e150b00000000000000000000000000000000000000000000000000000e1b2835414e5b687481868686868686868175695e5246382d22170b0000000000000000000000000000000000000006131f2c3845515c677480868686868686868174685b4e4135281b0e00000006101820262b2e2f3939393939393931302d29221b1209000000000000000000000000000000000000000000000000000000000000000000000000040d161e24292c2d363738393939383735312d2c29231d150d0600000000000000000007111b252d343a3e3f464646464646403f3b362e261c1208000000000000000000000000000000000007131f2a35404a5257596060606056544f473d424c545a5c6060605f5e5850473c3125190d0100000000000000000000000000000a16222d38434c545a5d60605d5a544c43382d22160a0000000000000000000c1925323f4c5865727f8b939393938d8073665a4d4033271a0d0004101d2935404b5566737f8c99a3aea99e91847a6d68615955534d4f4e4d4c4c4c4b4b4c5865727f8b98a5afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000916232f3c4956626f7c8995acb6a89c8f82756a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a615f574d42362a1e120500000815212e3a47535f6a7784919eabaca095887c6f62584e4339312c282327262b2f35414c56616d7a86929facab9f9285796d6053463a2d20130700000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000b1825323e4b5865717e868686868686867c6f6256493c3939352d2c28231d2733404d5a66738086868686868686786d6053463a2d20130700000000000000000b1724313d4a56626d73808c9399938d837b726d615e56515a61696e79818a9298958f82786d60574d42372b1e120500000000000000020e1925303b444d5254565758595a5b5b56544f473d32271b0f0300000000060f18212935414c5663707d8996aab3a9988c7f7265594c3f3226190c000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c10000000000815212e3a47535f6a717e889299a1a9aca69f9c98928e8b8784817e7a7773706d6663605c54514b433e342e271e150c0300000000000000000000000000000000000000000000000000000916232f3c4956626f7c89959393939392867b6e61544a3f33281c0f030000000000000000000000000000000000000714202d3a4753606d7985929393939395897c6f6356493c302316090000040e18222a32373b3c464646464646463e3d39342d241b110600000000000000000000000000000000000000000000000000000000000000000000010c161f282f35393a4244454646464544413e3a38342f271f17110a02000000000000010d18232d373f464a4c5353535353534d4b4740382e24190e02000000000000000000000000000000000a17232f3b47525c63666c6c6c6c6360594f4349545e66696c6c6c6c6a62584d4135291d100400000000000000000000000000010d1a26323e4a545e66696c6c69665e544a3e32261a0d0100000000000000000c1925323f4c5865727f8b989f9f998d8073665a4d4033271a0d00000c18242f3b4854616e7b86929fa8ada19690827a706b65615f575c5a5a5959585858585865717e8b98a4afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000a1623303d495663707c8996a3afa89b8e8177777777777777777777777777777777777777777777777777777777777777776e695f53463a2d211407000006121f2b37434e586673808d99a3afa89b8e81756a5f554b433c38342e3431373a4145525d68737f8c99a3afa79b8e8175675c5145382c1f130600000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000b1724313d4a56626c71797979797979796f6a605447464646413a38342e2726323f4b58636e737979797979797976665c5044382c1f120600000000000000000915212e3a45505a636e74818e939f9590867e756d68605c606c717b838e939f969083796d665c50453c31261a0e020000000000000005111e2a36424d565e61636465666767686360594f43382c1f13070000000000060f1924303a4753606d798698a2aea79a8e8174675b4e4134281b0e000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c1000000006121f2b37434e58626f7c86929aa3aba8a09e948f8a85827e7b7774716e686763605c5453504a4540393128231f1c17110a02000000000000000000000000000000000000000000000000000915222e3b4854606a7783909daa9fa3998c7f73665b5044382b1f1409000000000000000000000000000000000006121f2b37434e5864717e8a97a29f9f9d9083776b6054483b2f22150900000a15202a343c434749535353535353534b49453e362d22170c0000000000000000000000000000000000000000000000000000000000000000000008131e28313a4145474f515252535352514e4b474540393127221b140b02000000000006121e29343f495156586060606060605a58524a40362a1f1307000000000000000000000000000000000c1926323f4b57636e73797979796f6b6054484e5a66707679797979746a5e5145382b1f120500000000000000000000000000030f1c2935424e5a66707679797670665a4e4235291c0f0300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000714202d3a46525e6974808d96a1a9a89f9590847d77726e696a6867666665656565646465717e8b98a4afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000a1724303d4a5763707d8a96a3b0ab9e928583838383838383838383838383838383838383838383838383838383838383837b6e6155483b2e2215080000030f1a26313c4854616e7b87929faaac9f92877c6f675d554e46454041414142474c515b606d7a85929eabaca095897d7063554b4034281c100400000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000915212e3a45505a62656c6c6c6c6c6c6c6260584e525353534e4645403930292f3b47525c63666c6c6c6c6c6c6c6c5c544a3f34281c1003000000000000000005111d29343f48525b606d78818f959f98928b827a706b676d747e8690959d9891847b6e675d544a3f332a1f140900000000000000000714202d3a46525e696e707172727374756f6b6054483b2f22150800000000000008131f2c3845515c677885929faba89b8f8275685c4f4235291c0f000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c100000000815212e3a47535f6a76828f98a3aca7a0969189827d7975716e696764615e565653514a46443f38352f312f2d2b28221c140b0200000000000000000000000000000000000000000000000007131f2c38434e5865727e8b98a2aeab9e9184786c6053463b30251a0e00000000000000000000000000000000000814212e3a47535f6a7683909ca9aea2988b7f7265594f43382c1f130700030f1b26323c464e535560606060606060585650483e34291d11050000000000000000000000000000000000000000000000000000000000000000010d19242f3a434c52545c5d5f5f605f5f5d5b5753514b433f332d261d140a00000000000916222e3a46515b62656c6c6c6c6c6c66635c52473b2f23170a000000000000000000000000000000000d1a2633404d59667380868686867d6f635649505c69768286868686796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768286868276695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000005121e2a36424d57606d79849197a1a9a79f969189837f7b78767574737372727271717171717e8b98a4afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000a1724313d4a5764707d8a97a3b0ada1979290909090909090909090909090909090909090909090909090909090909090887b6e6255483b2f2215080000000a15212d3a46535e6975818e98a3aea3999083796d675f5853514b4e4e4e4d53555d606d74818e97a1ada69d9083776b605443392e23180c0000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070005111d29343f48505658606060606060605654575d5f6060605b53514b423a322a36404a52585a606060606060605f504a42382e23170c000000000000000000010c18222d364044505c666d79829095a09f938f857d746f79818a9298a09992867c6f695e554b42382e21180e0300000000000000000814212e3b4754616e7b7d7e7e7f8081827d6f6356493c3024190d02000000000004101c2934404b556b7784919eaaa99c908376695d5043362a1d10000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c100000000915222f3c4855626f7b88949faaaca09590847d76706d6765615e575754524c494644403a444442413f3e3c3938332d261d140a000000000000000000000000000000000000000000000000030f1b27323d4754606d7a85929facaca1968a7d7063574d42362a1c110600000000000000000000000000000004101c2934404b55626e7b88949fabac9f92867a6d6054473d32271b0f030006131f2b37434e585f626c6c6c6c6c6c6c64625a5045392d211508000000000000000000000000000000000000000000000000000000000000000004111d2935414c565d60696a6b6c6c6c6b6a6864605c5550443f382f261b1106000000000b1825313e4a56626d72797979797979736e63584b3f3226190c000000000000000000000000000000000d1a2633404d596673808c9393897c6f635649505c6976838f939286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000020e1a25303b45515d676f7c8591979ea5a8a09e95908b8885838281807f7f7f7e7e7e7e7d7d808d9aa7afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000a1724313d4a5764707d8a97a3b0b3a9a19e9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d94887b6e6155483b2e22150800000005121e2a36424d57616e7b86929fa6aba0958f82796f6a63605c555b5a5b575f62676d747f8c939ea9a99f948a7d7064594f4430271d12070000000b1825323e4b5865717e8b98a4aca295897c6f6256493c2f23160900040d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700010c18222d363f454a4b53535353535353495761696b6c6c6c68605c544c443c342e3840474b4d5353535353535353443f3830261c11060000000000000000000006111b2428343f4a545d676d7a839196a19e979188807b838e929fa29f93877d706a5f574d433a30261c0f060000000000000000000b1724313e4a5764717e898a8b8c8d8e8c807366564c4135291e130b060400020509121f2b3844505c667885929eaba99c908376695d5043362a1d10000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c100000000c1926333f4c5966727f8c99a6afa49a90837a706b64605c5554524d4b4746413d3a434a4f50514f4d4c4a4946443f382f261c11060000000000000000000000000000000000000000000000000a16202c3945515d6774818e9aa7b1a89b8f8275695e5246382e23170b00000000000000000000000000000006131f2c3845515c6774808d9aa6b0a79b8e8174685d5245392b21160a00000815212e3b47535f6a7679797979797979716c6256493d3024170a00000000000000000000000000000000000000000000000000000000000000000613202c3945525d686d757778797979787774716d67625a504941382d22170b030000000c1925323f4c5865727f8686868686868073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000009141f2935414b555f6a6f7c858f939c9fa4a79f9d989892908f8d8d8c8c8b8b8b8b8a8a8a8d929da9afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000a1723303d4a5663707d8996a3b0b8b0aba99f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa9aaaaaaaaaa94877a6e6154473b2e211408000000020e1a25313b46535f69737f8c949fa7a79f948f837c75706d676867676869696e737a818c919ca5aaa1978f82766c6155473d331e150b000000000b1825323e4b5865717e8b989f9f9f95897c6f6256493c2f2316090b10141a2733404d5a6673808d999f9f9f9386796d6053463a2d201307000006111b242d343a3d3e46464646464646505d697378797979746d665e564e463e3528363b3f40464646464646464638342e261e150a000000000000000000000000091217232e38424b555d686e7b849197a2a19a938d8890959da59d928b7f726b61584e453b31281e140a000000000000000000000815222f3b4855626e7c889798999a9a8f8275685d52463a30241d1512100c0e12141a202d3a4653606d7986939faca99c8f8276695c4f4336291c10000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c100000020f1c2835424f5b6875828e9ba8ac9f93877c6f68605953514b4846423e3b393634434d555b5d5d5c5a59575553504a42382d22170b00000000000000000000000000000000000000000000000004111d2935414b55626f7c88959fabac9f92877b6e61544a3f34281c100300000000000000000000000000000714202d3a4753606d7985929eabaca095897c6f63564c413529190f0400000916222f3c4955626f7c868686868686867e7164584b3e3125180b00000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8284858586868584817e79716c605b53493f33271f14090000000c1925323f4c5865727f8b939393938d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000020d18242f3a434e585f6a6f7a82898f93999c9fa2aaa29f9d9b9a999998989898979797979a9da4aeafa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000091623303c4956636f7c8996a2afb0a69f9c9393939393939393939393939393939393939393939393939c9ea6b0aea398877a6d6054473a2d2114070000000009141f2a36424d57606d78828f959fa7a69f959087817d79777574747476787b80858e939ca3aaa29892857b6e615a5044352b210c03000000000b1825323e4b5865717e8b9393939393897c6f6256493c2f231610171c20232733404d5a6673808d939393939386796d6053463a2d20130700000009121b22292e313239393939393945525f6b788586868681786d685f584f473f342e2f323339393939393939392c28231c150c030000000000000000000000000006111c263039434c565e696f7c859299a3a49f9a959da0a79e948d80746d62594f463c33291f160c02000000000000000000000613202d394653606c7785929ea5a69f92867a6d61564c41352e27201f1c181a1e21252a34404b55626f7c889aa4afa79b8e8174685b4e4135281b0e000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c10000003101d293643505c6976838f9ca9a99d9083766a5f564f4645403b3a36302e2d2f3c46555f666a6a6967656462605b544a3f33281c0f030000000000000000000000000000000000000000000000010d18242f3a47535f6a7683909da9afa3998c7f73665c5044382b1f14090a0a0a0a0a0a0a0a0a0a0a0a0a0a121f2b37434e5864717e8b97a2adaa9d9083776b6054443a2f2419070000000916222f3c4955626f7c8893939393938b7e7164584b3e3125180b00000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a87909292939292908e8a847e746c655b50443b30251a0e0200000c1925323f4c5865727f8b989f9f998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000007131d28313c464e585f686d757c82878b8f929897999a9b9c9d9d9d9e9e9e9e9f9f9f9fa3abacb5afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000815222f3b4855626e7b8895a9b3ab9f948f8686868686868686868686868686868686868686868686868f949eaaac9f928579675d5145392c20130600000000030e1a26313b44505c666d7a8390959da5a7a099938e898683828181818385888c92979da5a7a09892867d70695e52483e3323190f00000000000b1825323e4b5865717e868686868686867c6f6256493c2f23161a22282d303139404d5a66738086868686868686786d6053463a2d201307000000000911181d2124252d2d2d2d2d323f4c5965727f8c93938e827a6f6a6159514440393028272d2d2d2d2d2d2d2d1f1c17110a030000000000000000000000000000000a141e27313a444d575f6a707d879299a49f9f9f9fa9a0958f82786d605b51473e342a21170d04000000000000000000000005121f2b3744505b6575828f9baaaea3988b7f72685d52454039302d2c2823252a2d30363e45515c6773808c99acb4aa998c7f7366594c403326190d000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c10000004101d2a3743505d6a7683909da9a79b8e817468584e443d38342e2d2a2a2d2f38424e5866717777757472716f6c665b5044382b1f120600000000000000000000000000000000000000000000000007131d2b37434e5864717e8b97a2adab9e9184786d6053463b31251a16161616161616161616161616161616212e3a47535f6a7683909ca9aea2988b7f7265594f4332281e13080000000916222f3c4955626f7c88959f9f9f978b7e7164584b3e3125180b00000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a87949e9f9f9f9e9d9b96918b80776c60574d42362a1e120500000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000000010c161f2a343c464e565e616b6f757b7f8285888a8c8d8f8f9090919191919292929292999ba3acafa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000714212d3a4754606d7a8797a2ada99c8f82797979797979797979797979797979797979797979797979828f9ca9ab9e9184786b554b4135291d1104000000000009141f28343f4a545e686d7a838e929d9fa7a49f9b9892908e8e8d8e8f9197999ea1a9a29e9590867d706b60574d42362c22110800000000000b1724313d4a56626c71797979797979796f6a6054473b2e2217242c33393c3d46464b58636e737979797979797976665c5044382c1f12060000000000060c111517182020202025313e4a56626d75818f969490847c706b625b514a423a322a211920202020202012100c060000000000000000000000000000000000020c151f28323b454e58606b717e8793939393939393969083796d665c50493f352c22190f05000000000000000000000000030f1b27333f495364717e8a98a2aeaa9e91857a6d605b514b423d3a38342e31363a3b42465059606d7984919eabaea398897d7063564a3d3023170a000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c10000003101d293643505c6976838f9ca9a79a8d817467564c413a39352f363036393c424a54606a77838482807f7d7c786c605346392d201306000000000000000000000000000000000000000000000000010f1b26323c4753606d7985929fabada1968a7d7063574d42362a23232323232323232323232323232323232934404b55626e7b88949fabac9f92867a6d6054473d3221160c010000000916222f3c4955626f7c8895a2aca4978b7e7164584b3e3125180b00000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a87949fa3aba6abaaa9a19e928b7f72695e52463a2d20140800000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000000040d18222a343c444c52596063696e7276797b7d7f81828383848484848585858585868b909ba7afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000613202c3945515d677885929eabaa9d9184776c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c667784919eaaa99c8f8376695c50432f24180d010000000000030b17232e38424c565e686d79818990959b9fa2aaa39f9d9b9a9a9b9c9ea1a9a49f9c97928c837b706b60594f453b30241a100000000000000915212e3a45505a62656c6c6c6c6c6c6c6260584e43382b1c2328363e44494a525353525c63666c6c6c6c6c6c6c6c5c544a3f34281c10030000000000000105090b0b13131316222e3a46515b606d7a8491989691867d726d605c544c443c332b2317110a13131306030000000000000000000000000000000000000000030d162029333c464f59616c727f8686868686868686847b6e675d544a3f372d231a100700000000000000000000000000000b17222d3a4753606d7a85929faaada1978e81746d605c544f4946444043434246484d525a616b737f8c96a1acac9f92867a6d6053473a2d201407000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c100000020e1b2835414e5b6874818e9ba7a99c8f8276685e534c4745414343434146474d545b666f7c88908f8d8c8a85796c605346392d201306000000000000000000000000000000000000000000000000000a151f2c3845515d6774808d9aa6b0a89c8f8275695e5346382e3030303030303030303030303030303030303845515c6774808d9aa6b0a79b8e8174685d5245392c201304000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180b00000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8799929995999fa2aaada49f92867b6e6154483b3025190e02000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000000050e171e252a323a41464f54575e6165666d6f717374757676777777787878787879797e8b98a4afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000004111d2935414c55697683909ca9ab9f928578695f606060606060606060606060606060606060606d7986929faca79a8d8174675a4e4134271b070000000000000006111c26303a444c565e676d747c83898e9298999b9d9e9f9f9f9f9e9d9b999993908b857f786e6960594f473d33291f120800000000000005111d29343f485056586060606060606056544e463d3227262e343f485055575f6060605a585a606060606060605f504a42382e23170c000000000000000000000000060606121e29353f45525d686f7c86929f9892877f746d665d564d453d3528231c140c03000000000000000000000000000000000000000000000000040e17212a343d47505a626d727979797979797979786e695e554b42382e251b11080000000000000000000000000000000613202c3945515d6773808d98a2aea99d938c7f736d6660595653514a50504d5354575e616c707d87929fa8b0a69b8e8275675d5145392c201306000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c100000000c1926323f4c5965727f8c98a7ac9f92867a6d655e5654514b504f504d5254575f666c7882909c9c9a988e8174655b5044372b1f12050000000000000000000000000000000000000000000000000004101d2935404b55626e7b88949fabac9f93877b6e61544a3f3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4753606d7985929eabaca095897c6f63564c4135291d1104000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180b00000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a87878686888d9298a2abaea2988c807366564d41362a1e1105000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000000020c1720293036393a3e3f44484d5354545c606264666768696a6a6a6b6b6b6b6c6c6c717e8b98a4afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000010d19242f414d5a6774808d9aabaea298887b6e61555353535353535353535353535353535355626f7c8899a3afa9988b7e7265584b3f3225180c00000000000000000a141e28323a444c555c606b6f777d8185898c8e90919292929291908f8d8a86837e79726d665f574f473d352b20170d00000000000000010c18222d363f454a4b535353535353534947433d342b2830383f44515a61646c6c6c6c66635c5253535353535353443f3830261c11060000000000000000000000000000010d18232935414c565f6a727e8b939e99938c81786d685f574f473f342e261e150c03000000000000000000000000000000000000000000000000050f18222b353e48515b62656c6c6c6c6c6c6c6c6b615e574d433a30261c13090000000000000000000000000000000004111d2935404b55616e7b86929fa6afa59c918c8079706b6562605c545c5d575e6164696e747e869299a3afaa9f94897d7063554b4035291d1104000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c100000000915222f3c4855626f7b88959faba3998e81776d6863605d555d5c5d565e6164696e78808e949fa8a0958a7d706453493f33271b0f0300000000000000000000000000000000000000000000000000000c18242f3947535f6a7683909ca9afa4998c8073665c504949494949494949494949494949494949494949494e5864717e8b97a2adaa9d9083776b6054443a2f24190d01000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180b00000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d787c7a79797c80869299a4afaa9e918477685e5246392d201407000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000008131e29323a4146474b4c4d4e4f51524a50535557595a5c5c5d5d5e5e5e5e5f5f5f65717e8b98a4afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000081724313e4a5764717d8a99a3afaa988b7e7165574d42464646464646464646464646424d5765727f8c98abada297887b6f6255483c2f2215090000000000000000020c162029323a434b515960636b7075797c7f82838485868685858382807d7a76726d67605c544d453d352b23190e05000000000000000006111b242d343a3d3e464646464646463c3b38322b29323a424a505b636c7079797979736e63574b46464646464638342e261e150a00000000000000000000000000000000070d19242f3a434e58626d75818e95a09f928e827a6e69605951443f3830271e150b00000000000000000000000000000000000000000000000000061019232c363f4951565860606060606060605e54524d453b31281e140a0100000000000000000000000000000000010d18242f3a46525e68727f8c949fa8ada49c928d837d77726f6d666a69696a696e71757b818a9298a2abaea2988f82766b6054433a2f24180d01000000000000000205111e2a3744515d6a7784909d9f9f9c8f8376695c504336291d100d0b08030000000000000000000000000004111e2a3744515d6a7784909d9f9f9c8f8376695c504336291d1003000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c100000000815212e3a47535f6a7683909da5ab9e938e817a74706d676a6969696a686e71757b828e929da6a59d9083786c605346392d22170b00000000000000000000000000000000000000000000000000000007121d2b37434e5864717e8a97a1adab9e9184796d6056565656565656565656565656565656565656565656565f6a7683909ca9aea2988b7f7265594f4332281e130800000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180b020405060606050402000000000000000000000000000000000000000000000006121f2c3844515c666d6f6d686d6f737d87939facaca096877a6e6154473b2e211408000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000010d1925303a444c525457595a5b5c5d5e5b5953484a4c4e4f5050515151515252525965727f8c98a5afa396897c706356493d3023160a000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000714212e3a4754616d7a86929faca89b8e8275695e53463d313939393939393939303946525e6976828f9ca9ab9e9285786c605346392d201306000000000000000000050e172029313940454f54596063676d70727576787879797878777573706d6865605d55504a423c332b231911070000000000000000000009121b22292e3132393939393939392f2e2b272b333b444c545c606d727e868686868073665a4d4039393939392c28231c150c03000000000000000000000000000000000008131e28313c46515b606d79839198a29d948f847b706b625b504a423930271d12070000000000000000000000000000000000000000000000000007111a242d373f464a4c5353535353535353524846423b33291f160c0200000000000000000000000000000000000007131d2a36414d56606d78829096a1a8ada49d959089837f7c797777767677787b7d82868e939fa2aaaea39f92867b6e61594f4431281d130700000000000002080e11141e2a3744515d6a778490939393938f8376695c50433629201b1a18140f0801000000000000000000000004111e2a3744515d6a778490939393938f8376695c504336291d1001000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c1000000006121f2b37434e5863707d89939da6a59e938e86807d7a787776767677787a7e82878f949da5a69d938a7d70655b5044372b1b1106000000000000000000000000000000000000000000000000000000010f1a26313c4653606d7985929eacada1968a7d70646363636363636363636363636363636363636363636363636e7b88949fabac9f92867a6d6054473d3221160c0100000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180c0e101213131312100e0b0807050200000000000000000000000000000000000004101c2834404a545c6062615e60626b75818e9ba8b2a8968a7d7063574a3d3024170a000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000005111d2a36414c565e6164656768696a6b68655d534840414243434444444545454d596673808c99a6afa295897c6f6256493c2f231609000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000713202d3946525d6876828f9ca9ac9f92867b6e61584e433b322c292424292c3139424d57616e7b86929faca89b8e8174655b5044372b1f120500000000000000000000050e171f272f343d43484f54555c606366686a6b6c6c6c6c6b6a686664615e5653514b443f38302a211911080000000000000000000000000911181d2124252d2d2d2d2d2d2d2322242c343d454d565d666d747f87929892857b6e6154473b2e2d2d2d2d1f1c17110a03000000000000000000000000000000000000010c161f2a343f45515d676e7c86929fa59f9691857d726d605c544b42392e23180c000000000000000000000000000000000000000000000000000008121b252d343a3e3f4646464646464646453b3a36302921170d0400000000000000000000000000000000000000010e1925303b44505c666e7a849196a0a7afa7a09d95908c8985848383838485878a8e92999da5aeaaa39f918a7e71695f53473d321f160c010000000000050d14191e20212d3744515d6a77838686868686868276695c5043362d2d272724201a130b020000000000000000000004111e2a3744515d6a77838686868686868276695c504336291c140a000000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c10000000030f1a26313c4855606b74818e949da5a59e98928d898785838382838485878a8f93999fa6a49d948e81746c6153493f33271b0a000000000000000000000000000000000000000000000000000000000009151f2c3845515c6673808d9aa4afa99c8f82757070707070707070707070707070707070707070707070707074808d9aa6b0a79b8e8174685d5245392c2013040000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e312518191b1d1f1f201f1f1d1b181414110e080200000000000000000000000000000000000c18232e39424a5153555452535964717e8a97a4b1a5988b7f7265584c3f3225190c000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000713202d3946525e686d71727374767778756f65594d3d323536373737383835404b556774818e9aa7b2a995887b6e6255483b2f221508000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000005111d2935414c5664717e8b96a1ada3998d80746a60564d443e39352f2f35383c434b545e6973808d99a3aca096897d706353493f33271b0f030000000000000000000000050d151d232932383d44484b5161696b6c6c6c68605c5f5e5d5c5a5754524c47454039342e261e180f080000000000000000000000000000060c11151718202020202020151d2328363e464f575f686d78818c939993877d70695e52463a2d2020202012100c06000000000000000000000000000000000000000000040d18222935404b555f6a717e8a939da7a09792877f746d665c544b4034281c1004000000000000000000000000000000000000000000000000000009131b23292e31323939393939393939382e2d2a251f170f0500000000000000000000000000000000000000000008141f28343f4a545e686e7b8490959fa3abaca7a09d98989291908f90919297979b9fa3abaca7a098928b7f726c61574d42352b210d040000000000050e171e252a2d2e3939424f5b6771777979797979797670665a4e423939393433302b251d140b0100000000000000000003101d2936424f5b6771777979797979797670665a4e42352e261c12070000101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c10000000000a15202c38444f59606d79828e939da0a7a29f9a96979290908f90909297979b9fa4a7a09d928d82786d605a5041382d22170b000000000000000000000000000000000000000000000000000000000004101c2834404b54616e7b87939facac9f93877d7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7d85929fabaca095897c6f63564c4135291d11040000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e31252225282a2b2c2d2c2b2a282521201e19140f0a0400000000000000000000000000000007121c2730394044464847464855626f7b8895a2aea6998c7f7366594c403326190d000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000714212e3a4754616d7a7e7f8081828485817568584e43372e2c2823282c2f3945515d677783909daaada196877a6d6054473a2d211407000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000010d1924303a4653606d7984919ea7ab9f92877c6f685e564f47454141414045474e555c666e7b86929faba89e9184786c605346392d22170b00000000000000000000000000030b121821272c323839505d697378797979746d665e564e4f4d4a4746413a39352f28231c150c06000000000000000000000000000000000105090b0b131313130e161e272e344048505960696e7a828e939f948c7f736b60574d42362a1e1113130603000000000000000000000000000000000000000000000000071018242f39434e58616c74818e95a0a9a299928b80786d665c5145382c1f13060000000000000000000000000000000000000000000000000000010911181e2224252d2d2d2d2d2d2d2d2b21201e1a140d0500000000000000000000000000000000000000000000020b17232e38424d565f696e7b838d92999fa4acacaaaaa39f9e9d9c9c9d9ea1a9a8acaca8a19e9590867e726d625a50453c3123190f0000000000020d1720293036393b4646464a555f676a6c6c6c6c6c6c69665e54494646464641403c362f261d1308000000000000000000010e1a27333f4a555f676a6c6c6c6c6c6c69665e544b4740382e24190e0200101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908f8276695c4f4336291c100000000003101c27333d45515c676d79818990959b9fa2aaa9a19e9d9c9c9c9d9fa2a9aaa29f9b95908a80786d665c51473e2f261b11060000000000000000000000000000000000000000000000000000000000000c18232e3946535f6976828f9ca9afa499938a89898989898989898989898989898989898989898989898989899297a2adaa9d9084776b6054443a2f24190d010000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e312d2e32353738393939383735312e2d2a251f1b150d070100000000000000000000000000000b151e272e34383a3c3a3a4754606d7a8793a0b5a69a8d8073675a4d4034271a0d000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000815212e3b4854616e7b878c8d8e8f909184786a6054473f3a38342e34383a404b55606d7a86929facab9e918578675d5145392c201306000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000008131f2c3845515c67727f8b95a0aba39991847a6e68615954514c4e4e4b5153575f676d78839098a2aca0968b7f72665b5044382b1b1106000000000000000000000000000001070c161b21273845525f6b788586868681786d685f584f473f3a3936302c29241d17110a03000000000000000000000000000000000000000000000600070f18202830394045525a616b6f7b838f949d968f82776c60594f453b30251a0e020600000000000000000000000000000000000000000000000000000007121d28313c46505a606d7983909893939393928d82796d6053463a2d20130700000000000000000000000000000000000000000000000000000000060d1216181920202020202020201f1514120e090200000000000000000000000000000000000000000000000006111c26303b444d575f696e7880878f939a9ea1a8a7a9aaaaaaa9a9aaaaa9a8aaa39f9c96918b837c716c625b51483e332a1f1107000000000008141e29323b4146535353535353555b5d6060606060605c5a545353535353534e4c4841382f251a0f030000000000000000000a16222e39434d555b5d6060606060606060605a57524a40352a1f130700101c2936434f5c6976828f908376695d5043362a1d10030000000000000000000000000000000000000000000000010507070b0b0b0b0b0b0b101d2a3643505d697683908f8276695c4f4336291c1000000000000b16212834404b555c676d747d838a8e9298989a9c9d9e9f9f9f9e9e9c9a9898928e8a837d746d665c544a40352c1d140a0000000000000000000000000000000000000000000000000000000000000007121d2a36424d5764707d8a96a1adaba49f9796969696969696969696969696969696969696969696969696969fa2a9aea2988b7f7265594f4332281e1308000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e373a3b3f4143454646464543413e3b3936302b272018130c0400000000000000000000000000030c151c23282c2d2f2e3a4653606d798699a3afa79a8d8074675a4d4134271a0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000714212d3a46535e697884919a9b9c9d96897c6f625a504a464440434044464b515c67717e8b98a3aeaa9b8f827568554b4135291d1104000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000004101c2834404b55606d78839099a3aba09690837a706b64605d555b5b555d60636a6e79818e959faaa49a9184796d60544a3f33281c0a0000000000000000000000000000000000040a0f1926323f4c5965727f8c93938e827a6f6a6159514440393028201d18120c0600000000000000000000000000000000000000000000000000071019212a323a434b515b636c717d8591959f9991847a6d655b50473d33291f14090000000000000000000000000000000000000000000000000000000000010c161f2a343e45515c676e7b8586868686868686867a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000106090b0c131313131313131312080705020000000000000000000000000000000000000000000000000000000a141e29323c454d575e666d737c82878d9196989a9c9d9e9f9f9f9f9e9c9b9998928f8a847f786f6a625a51493f362c21180e0000000000020e1925303b444c525f6060606060605d5b5553535353534f54566060606060605a58534a41362b20140800000000000000000006111c27313b434a4f5153515a61646c6c6c6c66635c52473b2f23170a00101c2936434f5c6976828f908376695d5043362a1d100300000000000000000000000000000000000000000002080d11131417171717171717171d2a3643505d697683908f8276695c4f4336291c100000000000050c18232e39434b555c606b6f787d8185898b8e9091919292929191908e8c8985827d77706b605c544b42392e231a0b0200000000000000000000000000000000000000000000000000000000000000000e1a26313b4653606d7984919eabb5afaca3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3abadb3ac9f92867a6d6054473d3221160c01000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e4246484c4e505252535252504e4b4746413b373229241d160d0500000000000000000000000000030b12181c1f20222c3844505c667986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000005121e2a36424d576774818e9aa6a9a89b8e81756c605c5453514a504a5153555d606d7983919daaaea2988b7e7165584b3e2f24180d01000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000c18232e3944515c666f7c87929fa4a8a09590847d76716d6769676869676d70757b838e939ea7a59f93887d70665c5142382d22170b000000000000000000000000000000000000000b1825313e4a56626d75818f969490847c706b625b514a423a322a2119110600000000000000000000000000000000000000000000000000040f19222b333c444c555c606d737e869297a09f92877c6f685d53493f352b20170d02000000000000000000000000000000000000000000000000000000000000040d18222934404b555f696e78797979797979797976685e5246392d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c17202a333c454d545c606a6f757b8084888b8d8f91929293929291908e8c8986827d79726d665f5850483f372d241a0f06000000000005111e2a36414c565e6c6c6c6c6c6c6c6a675f554a46444f5960636c6c6c6c6c6c67645c53483c3024180b0000000000000000000008101f2931323a424a505b636c7079797979736e63574b3f3226190c00101c2936434f5c6976828f908376695d5043362a1d10030000000000000000000000000000000000000000050d13191e20212424242424242424242a3643505d697683908f8276695c4f4336291c1000000000000007121d273039434b515960666c7075797c7f81838485858685858483817f7d7975706b636159514b423930271c110800000000000000000000000000000000000000000000000000000000000000000009141f2c3844505c6673808c99a3afbbb9b1acaa9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa7a9afb8bab1a79b8e8174685d5245392c20130400000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b464d5355585b5d5e5f605f5e5d5b5854524d47433d352f281f170f050000000000000000000000000000070c1012131c28343f4a5f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000020e1a25313c4855626f7c88949faaaa9e938a7e726d6662605c545d545c6062676d75808d95a0aca99f92867a6d6154473a2e21140700000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000007121d2834404a54606a727f8c929ca4a7a096918a827d7a7775747475767a7d818790959ea5a59e938d80736b60544b402f261c1106000000000000000000000000000000000000000916222e3a46515b606d7a8491989691867d726d605c544c443c332b2317110a0200000000000000000000000000000000000000000000000a16212b343d454d565e676d757f8a9298a19e938b7f726a60564c41382d23190e050000000000000000000000000000000000000000000000000000000000000000060f18232f39434d575f616c6c6c6c6c6c6c6c6c6c5e564c41362a1e1105000000000000000000000000000000000000000000000000000000000000000000000000020608080c0e111212131312110e0c080705020000000000000000000000000000000000000000050e18212a333b424b51585f626a6e73787b7e80828485858686858483817f7c7975716d66605c544e463f362d251b12080000000000000714202d3946525e68767979797979797771675b4f434854606b70797979797979746e64584c4033271a0d00000000000000000007121a222b333b444c545c606d727e868686868073665a4d4033271a0d00101c2936434f5c6976828f908376695d5043362a1d100b0b0b0b0b0b0b07070501000000000000000000050e171e252a2d2e313131313131313131313643505d697683908f8276695c4f4336291c10000000000000000b151e27303940454f545b6063676d7072747677787879797877767472706d66636159554f45403930271e150b0000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a54616e7b87929facb9b1a7a0939393939393939393939393939393939393939393939b9ea5afb8aca095897c6f63564c4135291d110400000000000000000916222f3c4955626f7c8895a2afa4978b7e7164585053575f6165686a6b6c6c6c6b6a6864615e56544e45403a312921170f0500000000000000000000000000000004060c17232e46535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000915212e3b47535f6a76828f98a2aea59f92877f78726f6d666a696a666d6f7379818d929da7aca2978d8074685d5246392d20130700000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000c18232e39424e58626d73808c929ea1a8a19e948f8a8683828181828386898e93999fa7a39f938f81786d60594f42392e1d140a000000000000000000000000000000000000000006121e29353f45525d686f7c86929f9892877f746d665d564d453d3528231c140c03000000000000000000000000000000000000000000030f1b27323d464e575f686d79818c929fa3a0958e81756d62584e443a2f261b11080000000000000000000000000000000000000000000000000000000000000000000007121d27313c454d53555f60606060606060605f524c443b3025190e020000000000000000000000000000000000000000000000000000000000000000000003090e121415191b1d1e1f201f1f1e1b191514120e090300000000000000000000000000000000000000060f182129303940454e53575f6266696e71747677787979797877767572706d6764605c54504a423c342d241b1309000000000000000814212e3b4754616e7a86868686868683776a5d5144495663707d8686868686868074675a4e4134271b0e00000000000000030b1218242c343d454d565d666d747f87929892857b6e6154473b2e21140800101c2936434f5c6976828f908376695d5043362a1d17171717171717171413110d0802000000000000020d1720293036393a3e3e3e3e3e3e3e3e3e3e3e43505d697683908f8276695c4f4336291c1000000000000000030c151e272e343d424a5053555d60636567696a6b6c6c6c6b6b69676563605c54554f48443e342e271e150c0300000000000000000000000000000000000000000000000000000000000000000000000c17232e3846525e6975828f9ca8b2aca095898686868686868686868686868686868686868686868e939ea9b4aa9d9084776b6054443a2f24190d0100000000000000000916222f3c4955626f7c8895a2afa4978b7e7164545c6064696e72747678797979787674716e68626058514b433b332921170d030000000000000000000000000000000013202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000006121f2b37434e58626f7c86929fa4aca399928b837f7b797777767777797c80858e939da4aea49a92857a6d61564c4135291d110500000000000000000000000000000203101d2a3643505d69768390908376695d5043362a1d100302000000000000000000000007121c27303d46515b646e73808a92979fa3a69f9c9992908f8e8e8f9092989b9fa4a69f99928c81786d665c50473d30271d0b020000000000000000000000000000000000000000010d18232935414c565f6a727e8b939e99938c81786d685f574f473f342e261e150c03000000000000000000000000000000000000000007131f2c38434e5860696e7a828e939ca4a2989183796d605b51463d32281d140a0000000000000000000000000000000000000000000000000000000000000000000000010b151f2a333c4246485253535353535353535346413b32291e1408000000000000000000000000000000000000000000000000000000000000000000060c11151a1e212226282a2b2c2c2c2b2a282522211e1a14100b05000000000000000000000000000000000000060f171e272e343c43474e5355575f626567696a6b6c6c6c6c6b69686663605c5553504a443f38302a221b120901000000000000000814212e3b4754616e7a87939393939084776a5d5144495663707c89939393938d8174675a4e4134271b0e000000000000050c151d2328363e464f575f686d78818c939993877d70695e52463a2d20140700101c2936434f5c6976828f908376695d5043362a24242424242424242421201e19130d05000000000008131e29323a4146474a4a4a4a4a4a4a4a4a4a4a4a505d697683908f8276695c4f4336291c100000000000000000030c151d23282f383f44464b515356585b5d5e5e5f5f5f5e5e5d5b595653514b48443e383328231d150c0300000000000000000000000000000000000000000000000000000000000000000000000006111c2a36424d5763707d8a96a1acaa9d9083797979797979797979797979797979797979797979818e9ba7aea2988b7f7265594f4332281e13080000000000000000000916222f3c4955626f7c8895a2afa4978b7e716460666d71777b7f8183858586858583817e7b756f6a605d554d453b33291f150b0100000000000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000000030f1b26323c47535f6a717e8b939aa2aaa39f95918c8886848483838485898c92979ea5aaa39f93887d70685e52443a3024190d01000000000000000000000000050a0f12101d2a3643505d69768390908376695d5043362a1d10120f0a05000000000000000000000b151e2b343f49525c646e737e858e92999ea1a8a39f9d9c9a9b9c9d9fa3a9a29f9b948f877f776d665c544a3f352c1e150b00000000000000000000000000000000000000000000070d19242f3a434e58626d75818e95a09f928e827a6e69605951443f3830271e150b00000000000000000000000000000000000000000915222e3b4854606a6f7b8490949ea5a49f92867c6e675d51493f342b20160b02000000000000000000000000000000000000000000000000000000000000000000000000030d18212a31373a3b4546464646464646463b3936302920170d020000000000000000000000000000000000000000000000000000000000000002090e171d1f262b2e2f32353738393939383735322e2d2b261f1c160c07010000000000000000000000000000000000050c151d232831373c4247484d5355585a5c5e5f5f605f5f5e5d5b595653514b46443f38342e261e1810090000000000000000000814212e3b4754616e7a87949f9f9d9084776a5d5144495663707c89969f9f9a8d8174675a4e4134271b0e0000000000060e161e272e344048505960696e7a828e939f948c7f736b60574d42362a1e110500101c2936434f5c6976828f908376695d504336313131313131313131312e2d2a251e170e05000000010d1925303a444c5254575757575757575757575757575d697683908f8276695c4f4336291c10000000000000000000030b12181d262d333839404547494c4e5051525253525251504e4c4a4645403938332c282118120b0300000000000000000000000000000000000000000000000000000000000000000000000000000e1a25303b4653606c7884919eabaca095897c6f6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6d7a86929facac9f92867a6d6054473d3221160c010000000000000000000916222f3c4955626f7c8895a2afa4978b7e71646a6f787e83888b8e909192939291908e8b86827c746d675e574d453b31271d120700000000000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000000000a15202b37434e58616c727f8892989fa3a7a09d99999291909090919298999ea2a9a69f98928b7f726c61564c4132281e13080000000000000000000000010910161b1e20202a3643505d69768390908376695d5043362a20201e1b161009010000000000000000030c19222d37404a525c636c717a81868d9196989b9c9e9f9f9f9f9e9d9b9997928e89827c736c655c544b42382e231a0c03000000000000000000000000000000000000000000000008131e28313c46515b606d79839198a29d948f847b706b625b504a423930271d1207000000000000000000000000000000000000000916232f3c4956626f7c85919693939393928a7e716a5f554b40372d22190e040000000000000000000000000000000000000000000000000000000000000000000000000000060f181f262b2d2e3939393939393939392e2d2a251e170e0500000000000000000000000000000000000000000000000000000000000000050d141a22282d31373a3b3f4144454546464544413f3b3a37312c272118120b030000000000000000000000000000000000030b121820262b31373a3c4247484b4d4f51525253535251504e4c494745403a38342e28231c140c06000000000000000000000814212e3b4754616e7a8794a1aa9d9084776a5d5144495663707c8996a3a79a8d8174675a4e4134271b0e00000000070f18202830394045525a616b6f7b838f949d968f82776c60594f453b30251a0e0200101c2936434f5c6976828f908376695d50433e3e3e3e3e3e3e3e3e3e3e3a3936302920170d02000005111e2a36414c565e616464646464646464646464646464697683908f8276695c4f4336291c100000000000000000000000070b141c22282b2f35383a3d3f41434445454646454443413f3d3a38342e2c28211c160c070000000000000000000000000000000000000000000000000000000000000000000000000000000009141f2b3844505b66727f8c99a3aea79a8d8174675c606060606060606060606060605765717e8b98a2aea79b8e8174685d5245392c201304000000000000000000000916222f3c4955626f7c8895a2afa4978b7e716c717c838b9095989b9d9e9f9f9f9e9d9b99928f8781796e695e574d43392f23180c03000000000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000000040f1a26313c46505a636d727e868e92999da0a8aba39f9e9d9c9d9e9fa2aaaaa29f9b948f867e726d62594f443a3020160c0200000000000000000000010a131b21272b2d2d2d3643505d69768390908376695d5043362d2d2d2b27211b130a01000000000000000007101b252e38404a525a61686d747b8084888b8e90919292929291908e8c8985817c766f6a605b534b423930261c1108000000000000000000000000000000000000000000000000010c161f2a343f45515d676e7c86929fa59f9691857d726d605c544b42392e23180c000000000000000000000000000000000000000d1a2633404d59667380868686868686868680746c61574e43392f251b100700000000000000000000000000000000000000000000000000000000000000000000000000000000060e141a1e21222c2d2d2d2d2d2d2d2d21201e19140d0500000000000000000000000000000000000000000000000000000000000000060f171f252a34393c4247484c4e505152535252514e4c4846423c383329241d150d03000000000000000000000000000000000000070c151b20262b2e31373a3b3e41434445464646454443423f3d3a38342f2c28231c17110a0200000000000000000000000814212e3b4754616e7a8794a1a99d9084776a5d5144495663707c8996a3a79a8d8174675a4e4134271b0e000000071019212a323a434b515b636c717d8591959f9991847a6d655b50473d33291f14090000101c2936434f5c6976828f908376695d504a4a4a4a4a4a4a4a4a4a4a4a4746413a32291e130800000713202d3946525e686d7171717171717171717171717171717683908f8276695c4f4336291c10000000000000000000000000020a11171c1f24292c2d3032343637383939393838363432302d2c28231d1c16100b050000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1c28333f4a54616e7a86929facab9f9285796d60535353535353535353535353535f697683909caaaca095897c6f63564c4135291d1104000000000000000000000916222f3c4955626f7c8895a2afa4978b7e71717e8790959da09e9c9b9a9b9c9ea1a9aba39f9a938e847b6e695e554b403429201509000000000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000000000a15202a343e48515b636c717b81878c919597999c9d9e9e9f9f9f9e9d9b9998928e89827b716c625b51473e32281e0e04000000000000000000000009131c252c33373939393943505d69768390908376695d50433939393937332c251c130900000000000000000009131c262e38404850565e61696e73787c7e818384858686858583817f7c79746f6a625f585049413930271e150a0000000000000000000000000000000000000000000000000000040d18222935404b555f6a717e8a939da7a09792877f746d665c544b4034281c10040000000000000000000000000000000000000c1925323f4b57636d737979797979797979746e645a50453c31281d120900000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e1214151f20202020202020201414110e080200000000000000000000000000000000000000000000000000000000000000060f18212930363e45494d5355595b5d5e5f5f5f5e5d5b5855534d48443d352f271f150d03000000000000000000000000000000000000030a0f151a1e21262b2e2f32343637383939393938363533302d2c29231f1c17110b06000000000000000000000000000814212e3b4754616e7a87949c9c9c9084776a5d5144495663707c89969c9c9a8d8174675a4e4134271b0e0000040f19222b333c444c555c606d737e869297a09f92877c6f685d53493f352b20170d020000101c2936434f5c6976828f908376695d5757575757575757575757575754524c443a3025190d01000714212e3a4754616d7a7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7e83918f8276695c4f4336291c100000000000000000000000000000060b0f12181d1f202325282a2b2b2c2c2c2b2b2a282623201f1c1812100b0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d3846525e6875828e9ba8ada2978a7e7164574d42464646464646463f4a54626e7b88949fabaa9d9084776b6054443a2f24190d01000000000000000000000916222f3c4955626f7c8895a2afa4978a7e717e8892999e9896918f8e8d8e8f92979b9fa4aca49f9691847b6e675c51453c31261a0e020000000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000030e18222d363f49515a61696e747b8084888b8d8f90919292929291908e8c8985817c766e69615a51493f352c20160c000000000000000000000005101b252e373e434646464646505d69768390908376695d504646464646433e372e251b10050000000000000000010a141c262e363e444c52575e61666a6f7274767878797978787675726f6d66626058534e443f382f271e150c03000000000000000000000000000000000000000000000000000000071018242f39434e58616c74818e95a0a9a299928b80786d665c5145382c1f13060000000000000000000000000000000000000a16232f3b47525b63666c6c6c6c6c6c6c6c67645c52483e332a1f160c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002050708121313131313131313080705020000000000000000000000000000000000000000000000000000000000000000030d18212a333b42465055575f6265686a6b6c6c6c6b6a6865615f57544f45403931271f150b010000000000000000000000000000000000000003090e12151a1e21222527292b2c2c2d2c2c2b2a282623201f1c1812100c060000000000000000000000000000000814212e3b4754616e7a878f8f8f8f8f84776a5d5144495663707c898f8f8f8f8d8174675a4e4134271b0e00000a16212b343d454d565e676d757f8a9298a19e938b7f726a60564c41382d23190e05000000101c2936434f5c6976828f908376696464646464646464646464646464615e564c41362a1e1105000a1723303d4a5663707d898a8a8a8a8a8a8a8a8a8a8a8a8a8a8a91958f8276695c4f4336291c100000000000000000000000000000000003070c10131416191b1d1e1f1f201f1f1e1d1b19171313100c07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c2a36414c5663707d8996a0aca99c8f8276695e5246382d393939393844505c6673808d99a6aea2988b7f7265594f4332281e130800000000000000000000000916222f3c4955626f7c8895a2afa4978a7e7c86929a96918c8784828181818285898e939aa1a9a8a0969083796d60574e42372b1f14090000000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b989f9f998d8073665a4d4033271a0d0000000000000006101b242e373f4850575e61696e73777b7e80828484858686858583827f7d79756f6b625f5750483f372d231a0e0400000000000000000000000a16212c3740494f5353535353535d69768390908376695d5353535353534f4940372c21160a000000000000000000020a131c242c323a41464d5254585f626568696b6c6c6c6c6b6a686663605c54544e47433c332d261d150c03000000000000000000000000000000000000000000000000000000000007121d28313c46505a606d7983909893939393928d82796d6053463a2d20130700000000000000000000000000000000000007131e2a35404952575960606060606060605a58524a40362c21180d04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b151f2a333c454d525a6164696e72747778787979787774726e69636059514b433931271d12070000000000000000000000000000000000000000000206090e121415181a1c1e1f1f20201f1e1d1b19161413100c070300000000000000000000000000000000000714212d3a4754606d7a8283838383838174675b4e414855626f7c8283838383827f7265584c3f3225190c00030f1b27323d464e575f686d79818c929fa3a0958e81756d62584e443a2f261b110800000000101c2936434f5c6976828f9083767171717171717171717171717171716d685e5246392d201307000a1723303d4a5663707d8993939393939393939393939393939393938f8276695c4f4336291c10000000000000000000000000000000000000000406070a0c0e1011121213131211100e0c0a07060400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1925303b4854606b7784919daaac9f93877b6e6153493f33272d2d2d3a4653606d7984919eabac9f92867a6d6054473d3221160c0100000000000000000000000916222f3c4955626f7c8895a2afa3978a7e839098938d847f7b777574747476797c81889297a1a9a89f958d80736a5f53473b30251a0e0200000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8b939393938d8073665a4d4033271a0d000000000000000009121c252e363e454d52575f62666a6e71737577787879797978777573706d67636059534d453e362d251b11080000000000000000000000000f1b27333e49525a5f60606060606069768390908376696060606060605f5a52493e33271b0f00000000000000000000010a121a202830363b4246484e5355585b5d5e5f5f5a61646c6c6c6c66635c52473d373127221b140b03000000000000000000000000000000000000000000000000000000000000010c161f2a343e45515c676e7b8586868686868686867a6e6154473b2e211408000000000000000000000000000000000000020d19242e3740474b4d53535353535353534d4c4740382f241a0f06000000000000000000000000000000000000000000000000000000000000000000000000000000000000030613131313131313130d0c0a07020000000000000000000000000003060809131313131313130b0b090501000000000000000007121d27313c464e575e616c71777b7f8183848586858584817f7b76706b605d554b43392f23180c040000000000000000000000000000000000000000000000020608080b0e1011121313131211100f0c0a07060400000000000000000000000000000000000000000713202c3945525d686d767676767676746f64584c4047535f6a6f767676767676726d62564a3e3125180b0007131f2c38434e5860696e7a828e939ca4a2989183796d605b51463d32281d140a0000000000101c2936434f5c6976828f91837e7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7a6d6154473a2e211407000a1723303d4a5663707d868686868686868686868686868686868686868276695c4f4336291c1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008141e2c38444f5965727f8c98a3aea4998c7f73655b5044372b1f2a36414c5663707d8a97a1ada79b8e8174685d5245392c2013040000000000000000000000000916222f3c4955626f7c8895a2afa89b8e818e9593878079726e6969686768656c6f757d859297a2ada79f92877b6e62574d42362a1e110500000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000c1925323f4c5865727f8686868686868073665a4d4033271a0d0000000000000000000a131c242c333b42464d5355575f626466696a6b6b6c6c6c6b6a686663605d55544f47423c332d241b130900000000000000000000000000121e2b37434f5a646c6c6c6c6c6c6c6c7683909083766c6c6c6c6c6c6c6c645a4f43372b1e12000000000000000000000000080e161e252a30363a3c4347484b4e504a505b636c7079797979736e63574b3f32262017110a020000000000000000000000000000000000000000000000000000000000000000040d18222934404b555f696e78797979797979797976685e5246392d2014070000000000000000000000000000000000000007121c252e353b3f404646464646464646413f3c362f261d12080000000000000000000000000000000000000000000000000000000000000000000000000000000000060c101220202020202020201a1917130e0800000000000000000000040a0f13151620202020202020181715110c06000000000000000c18242f39434e585f696e767e83888c8e909192929291908e8b87827d746d675d554b40342920150a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c565d6069696969696967645c53483c434e585f6269696969696965625b51463a2e221609000915222e3b4854606a6f7b8490949ea5a49f92867c6e675d51493f342b20160b020000000000101c2936434f5c6976828f95918a8a8a8a8a8a8a8a8a8a8a8a8a8a8a897d7063564a3d3023170a000916222f3c4854606b70797979797979797979797979797979797979797670665a4e4135281c0f00000000000000000000000000000000000003080b0d0e13131313131313131313131313131313131313131313131313131313131313131311100e0a06000000000000000000000000000000000000000000000000000000000002101c27333d4754616d7a86929facab9e9184786c6053463a2f242d3946525e6875828f9ba9aca095897c6f63564c4135291d11040000000000000000000000000916222f3c4955626f7c8895a2afaa9e938e9393877e736d67615e575b5a535b60626b707c85929fa6afa3998e8175695e52463a2d20140800000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000b1825313e4a56626d72797979797979736e63584b3f3226190c000000000000000000010a121a212930363c4247485761696b6c6c6c68605c5f5f5e5d5b595653514b48433d37312a211b1209010000000000000000000000000013202d3946535f6c767979797979797979839090837979797979797979766c5f5346392d201300000000000000000000000000050c13191f252a2d32373b3c3f444c545c606d727e868686868073665a4d4033271a0b060000000000000000000000000000000000000000000000000000000000000000000000060f18232f39434d575f616c6c6c6c6c6c6c6c6c6c5e564c41362a1e110500000000000000000000000000000000000000000a131c242a2f323339393939393939393433302b241d140b00000000000000000000000000000000000000000000000000000000000000000000000000000000030a11171c1f2d2d2d2d2d2d2d2d2726231f19120a0200000000000000070f161b1f22232d2d2d2d2d2d2d2524211d181109000000000004101d2935404b555f6a6e7b838a9095989b9c9a989898999c9b9a938f8981796d675c51453d32271b0f00000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d1924303a444c52545c5c5c5c5c5c5b58534a41363c464e53555c5c5c5c5c5c585651493f34291e1206000916232f3c4956626f7c85919693939393928a7e716a5f554b40372d22190e04000000000000101c2936434f5c6976828f9393939393939393939393939393939393897d7063564a3d3023170a000713202c38444f5960636c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c69665e54493d3225190d0000000000000000000000000000000001080f14181a1b2020202020202020202020202020202020202020202020202020202020202020201e1d1a16110b04000000000000000000000000000000000000000000000000000000000b16202d3946525d6875818e9ba7aca096897c7063554b4135292e3a4754616d7a86929facaa9d9084776b6054443a2f24190d010000000000000000000000000916222f3c4955626f7c8895a2afafa59e9b958c7f736c605c55524d4e4e49505359606a717e8a949fabab9f92877b6e6154473b3025190e02000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000916222e3a46515b62656c6c6c6c6c6c66635c52473b2f23170a0000000000000000000000080f171f252a313744505d697378797979746d665e564e504f4c4a4745403938322b2620180f0900000000000000000000000000000013202d394653606c798686868686868686909494908686868686868686796c605346392d2013000000000000000000000000000002080d141a1e20262b343d454d565d666d747f87929892857b6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000007121d27313c454d53555f60606060606060605f524c443b3025190e020000000000000000000000000000000000000000010a12191e2325262d2d2d2d2d2d2d2d2726241f19130b02000000000000000000000000000000000000000000000000000000000000000000000000000000030c151c23282c393939393939393933322f2a241c140a00000000000007101920272b2e2f3939393939393932312e29221b12090000000006131f2c3945515d676e7c8490959d9d9993908d8b8b8b8d8f92999f9c938e82796d60584e43372b1c110600000000000000000000000106090b0c0e06060300000000000000020405060605040200000000000002070a0c0d0b0b0905010000000000000000000000000008131e28323a4145475050505050504e4c4841382f343c4347485050505050504c4a463f372d23180d01000d1a2633404d59667380868686868686868680746c61574e43392f251b100700000000000000101c2936434f5c697682868686868686868686868686868686868686867d7063564a3d3023170a0004101c27333d474f5456606060606060606060606060606060606060605c5a544c42382c211509000000000000000000000000000000020b131a202427272d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2a2927221c150d0500000000000000000000000000000000000000000000000000000005111d2935414c56636f7c8995a0aca89b8e8174675d5145392c37434e5865727f8b99a3aea2988b7f7265594f4332281e1308000000000000000000000000000916222f3c4955626f7c8895a2afb7afa89d9083786d605a514b464241413f44464f58616c76828f9ca9afa3998c7f7266564c41362a1e1105000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000006121e29343f495156586060606060605a58524a40362a1f1307000000000000000000000000050d141a1f263845525f6b788586868681786d685f584f47403d3a38352f2c27211a150e060000000000000000000000000000000013202d394653606c798693939393939393969696969393939393939386796c605346392d201300000000000000000000000000000000050c151d2328363e464f575f686d78818c939993877d70695e52463a2d20140700000000000000000000000000000000000000000000000000000000000000000000000000010b151f2a333c4246485253535353535353535346413b32291e14080000000000000000000000000000000000000000000000070d1316191a20202020202020201a1a17130e0801000000000000000000000000000000000000000000000000000000000000000000000000000000000a151e262e34384646464646464646403f3b362e261c120800000000040f19222b32383b3c464646464646463e3d3a342d241b1106000004111d2935414c55606d798391969f9b938e8783807f7e7f8082878f949e9d948e81746a605447382e23170b00000000000000000000070d121618191b13120f0b06000608080c0e1112131312110f0c09080603080e1317191a181715110c06000000000000000000000000020c1620283035393a43434343434341403c362f262a32373b3c4343434343433f3e3a342d251b110700000c1925323f4b57636d737979797979797979746e645a50453c31281d120900000000000000000f1c2835414e5a66707679797979797979797979797979797979797979706b6054483c2f22160900000b16212b353d44484a535353535353535353535353535353535353534f4e49423a30261b10050000000000000000000000000000010b141d252b3033343939393939393939393939393939393939393939393939393939393939393939393736332e271f170d040000000000000000000000000000000000000000000000000000010d1924303a4854606b7783909daaac9f92857a6d6054473c313b4754606a7783909dabac9f92867a6d6054473d3221160c01000000000000000000000000000916222f3c4955626f7c8895a2afb9ada1968a7d70665c5045403936302d33373d46505a63707d8a97a1adab9d908377685e5246392d201407000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000d1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000010d18232d373f464a4c5353535353534d4b4740382e24190e020000000000000000000000000002090e1926323f4c5965727f8c93938e827a6f6a6159514440393029241d1b160e0903000000000000000000000000000000000013202d394653606c798693928d89898989898989898989898989898986796c605346392d2013000000000000000000000000000000060e161e272e344048505960696e7a828e939f948c7f736b60574d42362a1e11050000000000000000000000000000000000000000000000000000000000000000000000000000030d18212a31373a3b4546464646464646463b3936302920170d0200000000000000000000000000000000000000000000000002070a0c0d13131313131313130e0d0b0703000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c2630383f4453535353535353534d4b4740382e24190e020000000a16202b343d434749535353535353534b4a453f362d22180c01000613202c3945515d6773808d95a09b918c817b767372717273767b828f939e9f93877c6f62544a3f34281c100300000000000000010911181e22252628201f1c17110e121415181b1e1e1f201f1e1c191615130f12191f2326272524211d181109000000000000000000000000040e161e24292c2d3636363636363433302b251d20262b2e2f36363636363632312e29231b13090000000a16232f3b47525b63666c6c6c6c6c6c6c6c67645c52483e332a1f160c0000000000000000000d1925323d49545e66696c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6360594f44382c2013070000050f19232b33383c3d4646464646464646464646464646464646464643413d3830281e140a00000000000000000000000000000008131d262f363c404146464646464646464646464646464646464646464646464646464646464646464644423f3931291f150b00000000000000000000000000000000000000000000000000000008131e2c38434f5965727f8b98a2aea2988b7e7165574d4237404b55626f7c8895a0aca79b8e8174685d5245392c20130400000000000000000000000000000916222f3c4955626f7c8895a2afb7ab9e9184786c60544a3f342e2a2522272b343e4653606c7885919eabac9f93877a6e6154473b2e211408000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000002090e1a2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000007111b252d343a3e3f464646464646403f3b362e261c1208000000000000000000000000000000000b1825313e4a56626d75818f969490847c706b625b514a423a322a211911060000000000000000000000000000000000000013202d394653606c7986938d807d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7063564a3d3023170a0000000000000000000000000000070f18202830394045525a616b6f7b838f949d968f82776c60594f453b30251a0e02000000000000000000000000000000000000000000000000000000000000000000000000000000060f181f262b2d2e3939393939393939392e2d2a251e170e050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c17232e38424a505f606060606060605a58524a40362a1f13070000030f1b27323d464e545660606060606060585650483f34291d1105000714212d3a4754606d7a85929f9e948c7f746e696765656566696e78818f98a39a8e8175665c5044382b1f12060000000000000009131b23292e3132352d2b28221c1a1e212225282a2b2c2c2b2a282622221f1b1c242a2f323332312e29221b1209000000000000000000000000040c13191d2021292929292929282724201a13151b1f21222929292929292525221e1811090100000007131e2a35404952575960606060606060605a58524a40362c21180d040000000000000000000915212c38424c545a5c6060606060606060606060606060606060606056544f473d33271c100400000008111921272c2f30393939393939393939393939393939393939393635322c261e160c020000000000000000000000000000030f1a252f3841484c4e535353535353535353535353535353535353535353535353535353535353535353514f4a433b31271c11060000000000000000000000000000000000000000000000000000020f1b27323d4754606d7a86929facaa9c908376695f53473845515c6774808d9aa7aca095897c6f63564c4135291d110400000000000000000000000000000916222f3c4955626f7c8895a2afb6ac9a8d8073665b5042382e231d1a171b222b3744505b6574818e9ba7afa49a8a7e7164574b3e31241807000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000040a0f141a1e2633404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000009131b23292e313239393939393933322f2a241c140a00000000000000000000000000000000000916222e3a46515b606d7a8491989691867d726d605c544c443c332b2317110a02000000000000000000000000000000000013202d394653606c7986938b7e727070707070707070707070707070706b6054483c2f22160900000000000000000000000000071019212a323a434b515b636c717d8591959f9991847a6d655b50473d33291f14090000000000000000000000000000000000000000000000000000000000000000000000000000000000060e141a1e21222c2d2d2d2d2d2d2d2d21201e19140d05000000000000000000000000000000000000000000000000000000000000000000000000000000000001070b0f1112131313131313130a090704000001070b0f1112131313131313130a0907040000000000000003101c28343f4a545c6c6c6c6c6c6c6c6c66635c52473b2f23170a000006131f2b38434e5860626c6c6c6c6c6c6c65625a50453a2e211509000b1825323e4b5865717e8b989e9c8f82756d615e57585858575e666e7b86929f9e9285786d6053463a2d20130700000000000009121b252d353a3e3f413938332d26262b2e2f323537383939383735322f2e2b27262e353b3f403e3d3a342d241b120900000000000000000000000002080d1113141d1d1d1d1d1d1b1a18140f080a0f1215151d1d1d1d1d1d191816120d070000000000020d19242e3740474b4d53535353535353534d4c4740382f241a0f060000000000000000000005101b26303a42494e4f535353535353535353535353535353535353534a48443d352b21160b0000000000080f161c2022232d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d292825211b140c040000000000000000000000000000000814202b36414a53585a6060606060606060606060606060606060606060606060606060606060606060605d5b554d43392e22160a0000000000000000000000000000000000000000000000000000000a16202c3945515d6774818e9aa7ab9f94887b6e62544a3f4653606d7985929fabaa9d9084776b6054443a3024190d0100000000000000000000000000000916222f3c4955626f7c8895a2afafa49a897d7063544a3f30261c120e0b0f1b27333f495364717e8b97abb5ac9a8d8073675a4d402e23180c000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000000000000000002080d161b1f252a2d33404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000010911181e2225252d2d2d2d2d2d2726231f19120a02000000000000000000000000000000000006121e29353f45525d686f7c86929f9892877f746d665d564d453d3528231c140c030000000000000000000000000000000013202d394653606c7986938b7e7265636363636363636363636363636360594f44382c201307000000000000000000000000040f19222b333c444c555c606d737e869297a09f92877c6f685d53493f352b20170d0200000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e1214151f20202020202020201414110e08020000000000000000000000000000000000000000000000000000000000000000000000000000000000050c12171b1e1f20202020202020171613100b050c12171b1e1f20202020202020171613100b05000000000006121f2c3844505c667679797979797979736e63584b3f3226190c00000815222e3b4754606a6f79797979797979716c62564a3d3124170b000e1b2835414e5b6874818e909192897c6f635b524d4c4b4c4d545e6976828f9ca297887b6e6155483b2e221508000000000009121b252d373f464a4c4e46443f382f31373a3b3f41444546464544423f3c3b37322c3840474b4d4b4a453f362d241a120800000000000000000000000000010407071010101010100e0d0b08030000030608091010101010100c0b0906010000000000000007121c252e353b3f404646464646464646413f3c362f261d12080000000000000000000000000a141e2830383d4143464646464646464646464646464646464646463d3c38332b23190f05000000000000050b10131617202020202020202020202020202020202020201c1c1915100a02000000000000000000000000000000000b1824303c48535c64676c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6a675f554a3f33271a0e00000000000000000000000000000000000000000000000000000004111d2935414c55626f7c88959faba6998d8073665c50444d5764717e8a97a2ada2988b7f7265594f4332281e13080000000000000000000000000000000916222f3c4955626f7c8895a2afac9f93867a6d6053473a2d20140a00000b17222d3c4855626f7b8899a4afa99c8f837669554b4034281c10040000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000050c131921272c30363a3b404d596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000070d121618192020202020201a1917130e0800000000000000000000000000000000000000010d18232935414c565f6a727e8b939e99938c81786d685f574f473f342e261e150c0300000000000000000000000000000013202d394653606c7986938b7e72655856565656565656565656565656544f473d33271c10040000000000000000000000000a16212b343d454d565e676d757f8a9298a19e938b7f726a60564c41382d23190e050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000205070812131313131313131308070502000000000000000000000000000000000000000000000000000000000000000000000000000000000000060f171e23282a2b2d2d2d2d2d2d2d2322201c160f171e23282a2b2d2d2d2d2d2d2d2322201c160f08000000000713202d3a4653606d78868686868686868073665a4d4033271a0d00000916232f3c4956626f7c868686868686867e7165584b3e3225180b000c1926323f4c5965727f8283848586786d605346423f3e3f424d576773808d9aa995897c6f6256493c2f2316090000000008121b242d373f495157595b53504a42383c4247484b4e5151525352514f4c4947433c39404a52585a585650483f362c241a1108000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a131c242a2f323339393939393939393433302b241d140b00000000000000000000000000020c161e262c32353639393939393939393939393939393939393939302f2c27211911080000000000000000000407090a13131313131313131313131313131313131313100f0d09050000000000000000000000000000000000000d1a2733404c58646e747979797979797979797979797979797979797979797979797979797979797979797771675b4f4236291d10000000000000000000000000000000000000000000000000000000010d19242f3a47545f6a7783909da9ab9e9184796d605346525e6976828f9ca9ac9f92867a6d6054473d3221160c020000000000000000000000000000000916222f3c4955626f7c8895a2afaa9e918477675d5145392c20130200000613202d3a4653606d7986939facab9e918478675c5145382c1f13060000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000000000000070e171e252a32383b4246474b4e596673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000070d121618192020202020201a1917130e080000000000000000000000000000000000000000070d19242f3a434e58626d75818e95a09f928e827a6e69605951443f3830271e150b00000000000000000000000000000013202d394653606c7986938b7e7265584b4a4a4a4a4a4a4a4a4a4a4a4a48443d352b21160b000000000000000000000000030f1b27323d464e575f686d79818c929fa3a0958e81756d62584e443a2f261b11080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050f1821282f34373839393939393939302f2c27211921282f34373839393939393939302f2c27211911080000000713202d3a4653606d798693939393938d8073665a4d4033271a0d00000916232f3c4956626f7c8993939393938b7e7165584b3e3225180b000c1825313e4a57636d7275767778796d665c5044383030363f4c5966727f8c99ab96897d7063564a3d3023170a000000040d1a242d363f49515b626568605b544a45464d5355585b5d5e5f5f5e5d5b5955544e47454a525c636665625a50483e362c231a0d0400000000000000000003060809131313131313131313131313131313131313131313131313130b0a0804000000000000000000010a12191e2325262d2d2d2d2d2d2d2d2726241f19130b020000000000000000000000000000040c141b212528292d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2322201c160f0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a67748186868686868686868686868686868686868686868686868686868686868686868683776a5d5144372a1e110000000000000000000000000000000000000000000000000000000008131e2b37434e5865717e8b97a2ada1968a7d7063564c54616e7b87939faca79b8e8174685d5245392c201304000000000000000000000000000000000916222f3c4955626f7c8895a2afa89c8f827569554b4035291d1104000006131f2c3845515c677884919eabac9f9386796d6053463a2d2013070000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000000000000071019202930363d44484d5254575b5d6673808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000010911181e2225252d2d2d2d2d2d2726231f19120a020000000000000000000000000000000000000008131e28313c46515b606d79839198a29d948f847b706b625b504a423930271d1207000000000000000000000000000013202d394653606c7986938b7e7265584b3f3d3d3d3d3d3d3d3d3d3d3d3c38332b23190f0500000000000000000000000007131f2c38434e5860696e7a828e939ca4a2989183796d605b51463d32281d140a0000000000000000000000000000000000000000000002070c0f11121313131313131313131313131313131313131313131313131313131313131313131313131308070502000000000000000000000001070b0f1112131313131313130a09070400000000000000010c17212a333a404345464646464646463d3c38332b232a333a404345464646464646463d3c38332b23190f0500000713202d3a4653606d7986939f9f9f998d8073665a4d4033271a0d00000916232f3c4956626f7c89959f9f9f988b7e7165584b3e3225180b000916222e3a46515b636568696b676d675c544a3f41414142464e586673808d99a399887c6f6255493c2f2216090000010c161f2c363f48515b626d72746c665b545153575f6265686a6b6c6c6b6a68656260585452525c636e73716c625a50483e352c1f160c01000000000000040a0f12151520202020202020202020202020202020202020202020202020171714110c05000000000000000000070d1316191a20202020202020201a1a17130e080100000000000000000000000000000000020a1015191c1c20202020202020202020202020202020202020171613100b05000000000000000000000000000000000000000003090d1012131313131313130e0d0b080300000000000000000000000000000000000000000e1b2734414e5a6774818d939393939393939393939393939393939393939393939393939393939393939083776a5d5144372a1e1100000000000000000000000000000000000000000000000000000000010f1b26323c4753606d7985929faba99b8e8275685d525966737f8c99a4aca095897c6f63564c4135291d1104000000000000000000000000000000000916222f3c4955626f7c8895a2afa79a8d8174675a4e412f24180d01000004101c2834404b556a7683909da9afa49a887b6e6155483b2e2215080000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000061019222b323a41464f54575e6164676a6b73808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000009131b23292e313239393939393933322f2a241c140a00000000000000000000000000000000000000010c161f2a343f45515d676e7c86929fa59f9691857d726d605c544b42392e23180c000000000000000000000000000013202d394653606c7986938b7e7265584b3f3d3d3d3d3d3d3d3d3d3d3d3c39332c231a10050000000000000000000000000915222e3b4854606a6f7b8490949ea5a49f92867c6e675d51493f342b20160b02000000000000000000000000000000000000000000060d13181c1e1f202020202020202020202020202020202020202020202020202020202020202020202020201514120e09030000000000000000050c12171b1e1f20202020202020171613100b05000000000007121e28333c454b5052535353535353534a48443d352b333c454b5052535353535353534a48443d352b21160b00000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2aca4988b7e7165584b3e3225180b0006121e2a353f495157595b5d555c605c554b474e4e4e4e4d52575f6a76838f9c9f92867a6d6054473a2d211407000007131d28313e48505a626d727f81786c665b5c6064696e727477787979787775726f6a65605d5c636e73807e716c615a50473e31281e13080000000000060e151b1f21222d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2423211c17100800000000000000000002070a0c0d13131313131313130e0d0b0703000000000000000000000000000000000000000005090d0f10131313131313131313131313131313131313130a090704000000000000000000000000000000000000000000070e14191d1f202020202020201b1a17140e08010000000000000000000000000000000000000e1b2734414e5a6774818d9a9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9d9084776a5d5144372a1e1100000000000000000000000000000000000000000000000000000000000a151f2c3945515d6774808d9aa6ac9f92867a6d6154606b7784919eabaa9d9084776b6054443a3024190d01000000000000000000000000000000000916222f3c4955626f7c8895a2afa6998c807366594d4033261a07000000000c18232e424f5c6975828f9ca8b6ac95887c6f6255493c2f2216090000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000000050e18222b343d444c52596063696e7174767778808c9996897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000007111b252d343a3e3f464646464646403f3b362e261c120800000000000000000000000000000000000000040d18222935404b555f6a717e8a939da7a09792877f746d665c544b4034281c10040000000000000000000000000013202d394653606c7986938b7e7265584b4a4a4a4a4a4a4a4a4a4a4a4a49443e362c22170b0000000000000000000000000916232f3c4956626f7c85919693939393928a7e716a5f554b40372d22190e04000000000000000000000000000000000000000000070f171e24282b2c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d22211e1a140e06000000000000060f171e23282a2b2d2d2d2d2d2d2d2322201c160f08000000000b17232f3a454e565c5e6060606060606056544f473d333a454e565c5e6060606060606056544f473d33271c1004000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00010d18232d373f464a4c4f504b5153514c52545a5a5a5b575e61696f7c87929f9c8f8376675d5145392c20130600010d18242f3a43505a626c727f8b8e81786c66666d71767b7e81848485868584827f7c77726d68606e73808d877e716c61594f433a2f24190d0100000006101820262b2e2f3939393939393939393939393939393939393939393939393931302d28221a1208000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000811191f25292b2c2d2d2d2d2d2d2726241f1a130b0200000000000000000000000000000000000e1b2734414e5a6774818d9aa7acacb2a9a19e9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9084776a5d5144372a1e11000000000000000000000000000000000000000000000000000000000004101d2935404b55626f7b88949faba3998b7e726557636f7c8996a0aca2988b7f7265594f4332281e130800000000000000000000000000000000000916222f3c4955626f7c8895a2afa5988b7f7265584c3f3225190c00000000071b2835424e5b6875818e9ba8b0a396897d7063564a3d3023170a0000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000000020c16202a343d464e565e616b6f757b7e8183848587939f96897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000010d18232d373f464a4c5353535353534d4b4740382e24190e0200000000000000000000000000000000000000071018242f39434e58616c74818e95a0a9a299928b80786d665c5145382c1f13060000000000000000000000000013202d394653606c7986938b7e726558575757575757575757575757575550483e33281c100400000000000000000000000d1a2633404d59667380868686868686868680746c61574e43392f251b1007000000000000000000000000000000000000000000060f1921292f343738393939393939393939393939393939393939393939393939393939393939393939393939392e2d2b261f180f0600000000050f1821282f34373839393939393939302f2c27211911080000000f1b2834404b5660686b6c6c6c6c6c6c6c6360594f4438404b5660686b6c6c6c6c6c6c6c6360594f44382c201307000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000007111c252d353a3e3f42434045474c565d616767676869696e727b8491999e938a7d7063554b4135291d11040004111d2935404b55616c717e8893938e81786c70797e83888b8e9091929291908e8c88847f7a726d73808d9292877e716b61554c4135291d11040000040e18222a32373b3c464646464646464646464646464646464646464646464646463e3c39332c241a1005000000000000000000000000020608080c0b09060100000000000000000000000000000000000000000004080a0b0807050200000000000000000000000000000000000205070813131313131313130707050100000000000000000007111a232a313538393939393939393433302b241d140b01000000000000000000000000000000000e1b2734414e5a6774818d9aa9b3b9ada1979191919191919191919191919191919191919191919191919083776a5d5144372a1e110000000000000000000000000000000000000000000000000000000000000c18242f3947535f6a7683909ca9ab9d908376695f6774818e9aa8ac9f92867a6d6054473d3221160c0200000000000000000000000000000000000916222f3c4955626f7c8895a2afa5988b7e7265584b3f3225180c000000010e1b2834414e5b6774818e9aa7b0a3978a7d7064574a3d3124170a0000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000008131e28323c464e5860686d767c82878a8e9091929399a496897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000006121e29343f495156586060606060605a58524a40362a1f1307000000000000000000000000000000000000000007121d28313c46505a606d7983909893939393928d82796d6053463a2d2013070000000000000000000000000013202d394653606c7986938b7e72656464646464646464646464646464615a5044392d20140800000000000000000000000c1925323f4b57636d737979797979797979746e645a50453c31281d1209000000000000000000000000000000000000000000020d17212b333b404445464646464646464646464646464646464646464646464646464646464646464646464646463b3a37312a21180e030000010c17212a333a404345464646464646463d3c38332b23190f050000111e2a3743505c68727879797979797979706b6054483c43505c68727879797979797979706b6054483c2f221609000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000a131c232a2e3132352f343946525d686d7474747475777b7f8591969e938e81746b6155433a2f24180d01000613202c3945515d67717e87939a9d938e81797d848b9095989b9d9e9f9f9e9d9b9895918c857f79808d929c9992877d70675d5145392c20130600000a15202a343c434748535353535353535353535353535353535353535353535353534a49453e362c22170c0000000000000000000003090e121415191815120d06000000000000000000000000000000000000050c111417171514120e09030000000000000000000000000002090e12141520202020202020201413110d0802000000000000030e19232c353c414546464646464646413f3c362f261d1308000000000000000000000000000000000e1a2734414d5a6774808d97a2adb8ab9e91858484848484848484848484848484848484848484848484848275685c4f4235291c0f00000000000000000000000000000000000000000000000000000000000007121d2b37434e5864717e8a97a1ab9f95887b6e616d7985929faba79b8e8174685d5245392c2013040000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180b000000010e1b2734414e5a6774818d9aa7b1a4978a7e7164574b3e3124180b0000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000010d1925303a444e58606a6f7a82898f94979a9d9e9f9fa4ab96897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000000000101d2a3643505d69768390908376695d5043362a1d100000000000000000000916222e3a46515b62656c6c6c6c6c6c66635c52473b2f23170a0000000000000000000000000000000000000000010c161f2a343e45515c676e7b8586868686868686867a6e6154473b2e2114080000000000000000000000000013202d394653606c7986938b7e727070707070707070707070707070706c6155493c3023160a00000000000000000000000a16232f3b47525b63666c6c6c6c6c6c6c6c67645c52483e332a1f160c0000000000000000000000000000000000000000000007131e29333d454c5052535353535353535353535353535353535353535353535353535353535353535353535353534846423c332a1f1409000007121e28333c454b5052535353535353534a48443d352b21160b0000121f2b3845525e6b7884868686868686867d7063564a3d45525e6b7884868686868686867d7063564a3d3023170a000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000010a11181e22252628232e3a4754616d7a808181818284878c929796918b81796d60594f4431281d130700000714202d3a4753606d7a859297a2a59d938e848991969d9fa7a7aaa8a7a7a8aaa8a7a09d97928b858d929ca4a39892857a6d6054473a2d21140700030f1b26323c464e535560606060606060606060606060606060606060606060606060575550483e33281c11040000000000000000060e151a1e21222524221e181109010000000000000000000000000000000810171c21232422211e1a140d060000000000000000000000050d141a1e20212d2d2d2d2d2d2d2d21201d19130c05000000000009141f2a353e474d51535353535353534e4c4741382f241a0e030000000000000000000000000000000815212e3b4854616e7b85929ea4aea99d9083787777777777777777777777777777777777777777777777756f65594d4134281b0e000000000000000000000000000000000000000000000000000000000000010f1a26313c4653606d7985929eaca7998c7f7366717d8a98a2aca095897c6f63564c4135291d11040000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4988b7e7165584b3e3225180b000000010e1a2734414d5a6774808d9aa7b1a4978b7e7164584b3e3125180b0000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000005111d2a36414c565f6a6f7d848f949c9ea6a7a9aaabacafa296897c6f635649505c6976838f9c9286796c5f5346392c201306000000000000000000000000030a0f1d2a3643505d69768390908376695d5043362a1d0f0a03000000000000000b1825313e4a56626d72797979797979736e63584b3f3226190c000000000000000000000000000000000000000000040d18222934404b555f696e78797979797979797976685e5246392d2014070000000000000000000000000013202d394653606c7986938d807d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7e7064574a3d3124170a000000000000000000000007131e2a35404952575960606060606060605a58524a40362c21180d04000000000000000000000000000000000000000000000c18242f3b454f575d5f6060606060606060606060606060606060606060606060606060606060606060606060606055534d453c31261a0e02000b17232f3a454e565c5e6060606060606056544f473d33271c100400121f2b3845525e6b7885919393939393897d7063564a3d45525e6b7885919393939393897d7063564a3d3023170a000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000070d121618191c212e3b4854616e7b878d8d8e8f9193938f8d89847e756d675c51473e331f160c0100000613202c3945515d676f7c859298a2a59d9591959da0a8aba8a09d9b9a9a9b9d9fa4aca9a19e9691969ca4a39992867d70675d5145392c2013060006121f2b37434e585f626c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c64615a5045392d21140800000000000000060f181f262b2e2f32312e29231b130a010000000000000000000000000008121a22282d30312e2d2a261f180f06000000000000000000050f171f252a2d2e39393939393939392e2d2a251e160e05000000010d1925313c4750585e5f6060606060605a58524a41362b1f14080000000000000000000000000000000714202d3a46525e69707d8a929da7ab9f958d80736b6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a68655d54493d3125190c000000000000000000000000000000000000000000000000000000000000000a151f2c3845515c6773808d9aa4aa9d9184776a75828e9baaaa9d9084776b6054443a3024190d010000000000000000000000000000000000000916222f3c4955626f7c8895a2afa5988b7e7265584b3f3225180c000000010e1b2734414e5a6774818d9aa7b1a4978a7e7164574b3e3124180b0000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000713202d3946525e686f7c8691969ea6aab0b4b6b7b8b9afa296897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000000060e151a1f2a3643505d69768390908376695d5043362a1f1a150e060000000000000c1925323f4c5865727f8686868686868073665a4d4033271a0d00000000000000000000000000000000000000000000060f18232f39434d575f616c6c6c6c6c6c6c6c6c6c5e564c41362a1e11050000000000000000000000000013202d394653606c798693928d8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a86796c605346392d20130000000000000000000000020d19242e3740474b4d53535353535353534d4c4740382f241a0f0600000000000000000000000000000000000000000000000f1c2834404c5761686b6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c5f574d42372b1e1205000f1b2834404b5660686b6c6c6c6c6c6c6c6360594f44382c20130700121f2b3845525e6b7885919e9f9f9f96897d7063564a3d45525e6b7885919e9f9f9f96897d7063564a3d3023170a000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000106090c0c15212e3b4854616e7b87949a9b9c9e938682807d78716c605c554b40352c210d0400000004111d2935404b55606a6f7c869298a2a7a09da0a7a9a29f9996918f8e8d8e90939a9ea1a8a8a19ea1a8a39992877d706b60554c4135291d1104000815212e3b47535f6a7679797979797979797979797979797979797979797979797979716c6155493c3023170a000000000000060f18212a31373a3b3f3e3a342d251c130a01000000000000000000000008121a242c33393c3e3b3a36312921180f0500000000000000020d17212930363a3b4646464646464646463936302820160c02000004101d2935414d58626a6c6c6c6c6c6c6c67645c52473c3024170b00000000000000000000000000000005121e2a36424d57616c74808d95a0aaa79f93887d70685e545e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5c59544b42372c2115090000000000000000000000000000000000000000000000000000000000000004101c2834404b55616e7b87939faca095887b6f7985929faca3988b7f7265594f4332281e1308000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa5988b7f7265584c3f3225190c000000010e1b2834414e5b6774818e9aa7b0a4978a7d7164574a3e3124170b0000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000005121e2a36424d57616d7a849198a1a8b0b7bbc1c3c4c5bcafa296897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000000006101820262b2e3643505d69768390908376695d5043362e2b262018100600000000000c1925323f4c5865727f8b939393938d8073665a4d4033271a0d000000000000000000000000000000000000000000000007121d27313c454d53555f60606060606060605f524c443b3025190e020000000000000000000000000013202d394653606c798693939393939393939393939393939393939386796c605346392d201300000000000000000000000007121c252e353b3f404646464646464646413f3c362f261d1208000000000000000000000000000000000000000000000000111e2b3744505d6873787979797979797979797979797979797979797979797979797979797979797979797979797976695f53463a2d21140700111e2a3743505c68727879797979797979706b6054483c2f22160900121f2b3845525e6b7885919eabaca396897d7063564a3d45525e6b7885919eabaca396897d7063564a3d3023170a000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000000060b0f12131c212e3b4854616e7b8793939495989a9285817d756e685e574d43392e23180c00000000010d18242f3a434e58606a6f7d86929aa4acaaaca59d97928c88848281818283878b91969fa3ababadac9f92877d706b61594f433a2f24190d01000915222f3c4855626f7c868686868686868686868686868686868686868686868686867e7164574a3e3124170b0000000000050f18212a333c4247484c4a463f372e251c130a0100000000000000000008121a242c363e45494a4846423b332921170e0500000000000009141f29333b42464853535353535353535346413a32281e1308000005121f2b3845515e6a7479797979797979746e64584c3f33261a0d000000000000000000000000000000020e1a25303b454f59606d79839098a2aea49a92857a6e665b5051515151515151515151515151515151514f4d49423930261b100400000000000000000000000000000000000000000000000000000000000000000c18232e3946535f6976828f9ca9a7998c7f737d8a98a2ac9f92867a6d6054473d3221160c02000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa6998c7f7366594c4033261907000000020f1b2835424e5b6875818e9ba8b0a3978a7d7064574a3d3124170a0000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000714212d3a46535f6974818e96a1aab2bac2c7ccd0d1c9bcafa296897c6f635649505c6976838f9c9286796c5f5346392c201306000000000000000000061018222a31373a3c43505d69768390908376695d50433c3a37312a22181006000000000c1925323f4c5865727f8b989f9f998d8073665a4d4033271a0d0000000000000000000000000000000000000000000000010b151f2a333c4246485253535353535353535346413b32291e1408000000000000000000000000000013202d394653606c798686868686868686868686868686868686868686796c605346392d2013000000000000000000000000000a131c242a2f323339393939393939393433302b241d140b00000000000000000000000000000000000000000000000000121f2c3845525f6b7885868686868686868686868686868686868686868686868686868686868686868686868686867b6e6155483b2e22150800121f2b3845525e6b7884868686868686867d7063564a3d3023170a00121f2b3845525e6b7885919eabaca396897d7063564a3d45525e6b7885919eabaca396897d7063564a3d3023170a000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000000020a11171c1f2028232e3b4854616e7b86868687898c9195928e89827a6e695e544a4034281c10040000000007131d28313d464e58606b6f7c87939facaba39f938e857f7b7775747475777a7e848c9299a2a9b3a4978a7e716b61594f473d31281e130800000916232f3c4956626f7c8993939393939393939393939393939393939393939393938a7d7164574a3e3124170b00000000050e172129333c454d5355585651493f372e251c130a010000000000000008121a242c363e4850555755534d453b332920170e0500000000020e1a25303b454d525f60606060606060605f524c443a3025190d01000613202c3946535f6c79868686868686868074675a4e4134271b0e0100000000000000000000000000000009141f29333e45515c676e7b86929fa5aca1978f82786c60594f4444444444444444444444444444444442413d3730271e140900000000000000000000000000000000000000000000000000000000000000000007121d2b37424d5764717d8a97a1aa9d908377818e9baaa79b8e8174685d5245392c20130400000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa79a8d8174675a4e412e23180c000000030f1c2936424f5c6975828f9ca8afa296897c6f6356493c302316090000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000815222e3b4855616e7b87929fa8b2bcc4ccd3d7dcd5c9bcafa296897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000000060f18222a343c43474847505d69768390908376695d50474847433c342a22180f060000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000000000000000000030d18212a31373a3b4546464646464646463b3936302920170d02000000000000000000000000000013202d3946535f6c767979797979797979797979797979797979797979766c5f5346392d201300000000000000000000000000010a12191e2325262d2d2d2d2d2d2d2d2726241f19130b0200000000000000000000000000000000000000000000000000121f2c3845525f6b7885929393939393939393939393939393939393939393939393939393939393939393939393887b6e6155483b2e22150800121f2b3845525e6b7885919393939393897d7063564a3d3023170a00121f2b3845525e6b7885919e9f9f9f96897d7063564a3d45525e6b7885919e9f9f9f96897d7063564a3d3023170a000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000020b141c22282b2d352e343a46535e69767979797a7c7f848c9399948f847b6e665c5144382c1f150900000000010c161f2b343d45515d67717e8b9aa4afa399928b817a736e6968676768686e72797f879297a2aaa6998c7f73695f53463e352b1f160c010000091623303c4956636f7c89969f9fa8a19e9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c978a7d7164574a3e3124170b000000020b172029333b454d575f6265625b51493f372e251c130a01000000000008121a242c363e48505a6164615f574d453b322920170c0200000005121e2a36424d575e6c6c6c6c6c6c6c6c6c6c5e564c41362a1d1105000613202c3946535f6c798692939393938d8174675a4e4134271b0e01000000000000000000000000000000030d17212834404b555f69717e8a939da8a99f948c7f736b60564c4135373737373737373737373737373534312c261e150c02000000000000000000000000000000000000000000000000000000000000000000000e1a26313c4653606d7984919eaba095887b85929faba095897c6f63564c4135291d110400000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa89b8f827568544a4034281c1004000004101c2934404b556a7683909da9b4aa95887b6f6255483c2f2215090000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0006121e2b37424d576774818d99a3afbac4ced6dfe3e2d5c9bcafa296897c6f635649505c6976838f9c9286796c5f5346392c20130600000000000000030e18212a343c464e535554525d69768390908376695d525455534e463c342a21180e0300000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000000000000000000000000000000000000000000000000060f181f262b2d2e3939393939393939392e2d2a251e170e05000000000000000000000000000000121e2b37434f5a646c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c645a4f43372b1e12000000000000000000000000000000070d1316191a20202020202020201a1a17130e08010000000000000000000000000000000000000000000000000000121f2c3845525f6b7885929e9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f94887b6e6155483b2e22150800121f2b3845525e6b7885919e9f9f9f96897d7063564a3d3023170a00121f2b3845525e6b7885919393939393897d7063564a3d45525e6b7885919393939393897d7063564a3d3023170a000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000a141d262d33383942434045464d575e6c6c666d6d6f72787f87939f969083786d6053463c31261a0e0200000000040f1b27333f4953606d7984919eaca49f92877f746d68615f575b5a565e61676d727d859298a2ac9f92867b6e61564c41362a1e11050000000a1623303d495663707c899aa4aca196918f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8a7d7164574a3e3124170b0000000a141d29323b454d575f696e726d635b51493f372d251c130a0100000008121a242c363e48505a616c716e695f574d443b32291e140a0000000714202d3a46525e6976797979797979797976685e5246392d201307000613202c3946535f6c7986929f9f9f9a8d8174675a4e4134271b0e0100000000000000000000000000000000050f18232e39434d57616c74818e95a0aaa69f92877d6f685d52463f342a2b2b2b2b2b2b2b2b2b2b2b292825211b140c03000000000000000000000000000000000000000000000000000000000000000000000009141f2c3844505c6673808c99a4a79c8f828f97a2aa9d9084776b6054443a3024190d0100000000000000000000000000000000000000000916222f3c4955626f7c8895a2afaa9d908477665c5144382c1f1206000006131f2c3845515c677884919eabaea298877a6d6154473a2e2114070000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000814212d3a47535f697884919eabb5c0ccd6e0e8f1e2d5c9bcafa296897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000009151f2a333c464e585f62615e566976839090837669565e61625f584e463c332a1f150900000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000000000000000000000000000000000000000000000000060e141a1e21222c2d2d2d2d2d2d2d2d21201e19140d05000000000000000000000000000000000f1b27333e49525a5f60606060606060606060606060606060606060605f5a52493e33271b0f0000000000000000000000000000000002070a0c0d13131313131313130e0d0b070300000000000000000000000000000000000000000000000000000000121f2c3845525f6b7885929eabacacaea9a7a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a194887b6e6155483b2e22150800121f2b3845525e6b7885919eabaca396897d7063564a3d3023170a00121f2b3845525e6b7884868686868686867d7063564a3d45525e6b7884868686868686867d7063564a3d3023170a000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000006111c262f383f44464f504b51535452535f605c606162666c727f8b95a0958c7f7265574e42372b1e12060000000005121f2b3744505b65727f8c97a1a89c928a7e726d615d56534d4e4e4c52555c606b707c86929fa6a3988e8175685e5246392d2014070000000815222f3b4855626e7b87939fa99e91848383838383838383838383838383838383827d706356493d3023160a000006111b262f3b444d575f696e7b7f726d635b51493f372d251c130a010008121a242c363e48505a616c717d7b6e695e564d443a30261c110600000815212e3b4854616e7b86868686868686867a6d6154473a2e211407000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e01000000000000000000000000000000000007121d27303c45505a606d79839198a3aea39991847a6d615b51463c31281d1e1e1e1e1e1e1e1e1e1c1b191510090200000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a54616e7b87939fac9e948f949ea9a3988b7f7265594f4332281e13080000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afac9f9286796d6053463a2d20130900000714202d3a4753606d7a86939facac9f928579685e5246392d2013070000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000815222e3b4855616e7b8896a1adbdc7d1dee8f2efe2d5c9bcafa296897c6f635649505c6976838f9c9286796c5f5346392c201306000000000000020e1a26313c454e585f6a6f6d685e69768390908376695e686d6f6a5f584e453c31261a0e02000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000000000000000000000000000000000000000000000000000003090e1214151f20202020202020201414110e080200000000000000000000000000000000000a16212c3740494f535353535353535353535353535353535353535353534f4940372c21160a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000121f2c3845525f6b7885929eabb8aea49d9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a94887b6e6155483b2e22150800121f2b3845525e6b7885919eabaca396897d7063564a3d3023170a00111e2a3743505c68727879797979797979706b6054483c43505c68727879797979797979706b6054483c2f221609000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000b17222d38424a50535b5d555c60605d564c4a505354545b606c7883909d9e9184786a5f53473a2e211408000000000613202d394653606c7884919ea9a0968d80736c625b524c4642414141464b5159606a717e8a939eaa9f92867a6e6154473b2f24180c0000000814212e3a47535f6975818e97a29d9084787676767676767676767676767676767676706b6054483b2f22160900000b17222d38414d565e696e7b848b7f726d635b51493f372d251b130a08121a242c363e48505a616c717e86847b6e695e564c42382e23170b00000815212e3b4854616e7b87939393939393877a6d6154473a2e211407000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e010000000000000000000000000000000000000b151e2a333e45515d676f7c86929fa5aba1968f82756d62584e433a2f24180f111111111111110f0e0c09040000000000000000000000000000000000000000000000000000000000000000000000000000000c17232e3846535e6975828f9ca8a69e9c9ea6ac9f92867a6d6054473d3221160c020000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afaea399887c6f6255493c31261a0d06030615222f3c4855626f7b8899a4afaa9d9084776a564c41362a1e11050000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000b1825313e4b5864717e8b97a8b2bdcfd9e3f0faefe2d5c9bcafa296897c6f635649505c6976838f9c9286796c5f5346392c20130600000000000006121e2b37424d575f6a6f7b7a6d686976839090837669686d7a7b6f6a5f574d42372b1e1206000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000000000000000000000000000002050708121313131313131313080705020000000000000000000000000000000000000005101b252e373e4346464646464646464646464646464646464646464646433e372e251b10050000000000000000000000000000000000000003080b0e0e131313131313130a090704000000000000000000000000000000000000000000000000000000121f2c3845525f6b7885929eabb8a99d928d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d887b6e6155483b2e22150800121f2b3845525e6b7885919e9f9f9f96897d7063564a3d3023170a000f1b2834404b5660686b6c6c6c6c6c6c6c6360594f4438404b5660686b6c6c6c6c6c6c6c6360594f44382c201307000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00030f1c28333f4a545b6068696b676d6d685d52454446474a505b6573808c99a196887b6e6255483b2f221508000000000a1623303d495663707d8996a0a99e9184786d605a5146413a373130363940454f58616c75828f99a3a3998c7f7266554b4035291d1004000006121e2b37424d57616e7b85929fa0958c80736c6969696969696969696969696969696360594f44382c20130700030f1b27333f49535e696e7b8491918c7f726d635b51493f372d251b13121a242c363e48505a616c717e879291847b6e685e544a3f34281c1003000815212e3b4854616e7b87949f9f9f9f94877a6d6154473a2e211407000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e01000000000000000000000000000000000000030c18212935404b555f6a727f8b939ea8a89e948b7f726a5f554b41352921180d030404040404020200000000000000000000000000000000000000000000000000000000000000000000000000000001070c06111c2a36424d5763707d8a96a1acaaa8aab0a79b8e8174685d5245392c201304000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afb5ab998c7f7266574d42372b1f15120f121c2834404a5465717e8b98abb5a89b8e8175685b4e423025190d010000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000d192633404c5966737f8c99a6b2bfcfd9eaf5ffefe2d5c9bcafa296897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000814212d3a47535f696f7c85837a6d68768390908376686d7a83857c6f695f53473a2d211408000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009131c252c33373939393939393939393939393939393939393939393937332c251c130900000000000000000000000000000000000001080f14181a1b20202020202020171614100b0500000000000000000000000000000000000000000000000000121f2c3845525f6b7885929eabb4a79a8d8080808080808080808080808080808080808080808080808080808080807a6d6154473a2e21140700121f2b3845525e6b7885919393939393897d7063564a3d3023170a000b17232f3a454e565c5e6060606060606056544f473d333a454e565c5e6060606060606056544f473d33271c1004000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0006121f2b3844505b666c75767778797a6d60544b403a3a3f495364717e8b97a8978a7d7164574a3e3124170b00000003101c28343f4a546773808d9aa8a2978a7e71665c51483f35302b26252a2e343d46505a626e7b87929fab9d908376675d5145382c1f13060000020e1a26313c46525e68717e8a929c9f93887e716c605b535c5c5c5c5c5c5c5c5c5c5c56544f473d32271b10030005121f2b3744505b656e7b8491969c918c7f726d635b51493f372d251b1a242c363e48505a616c717e8792999691837a6d665c5044382b1f1206000815212e3b4854616e7b8794a1acaca094877a6d6154473a2e211407000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e0100000000000000000000000000000000000000060f18242f39434e58626d75818e96a1aba69f92867c6f675d51453f332a1f150b010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050c13181b1e1a25313b4653606c7884919e9f9f9f9f9fa095897c6f63564c4135291d1104000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afb6a99c908376695f53473c3127201f1c1f232c3844515c6675818e9ba8b3a9988c7f7265594c3f32261908000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000d1a2734404d5a6773808d9aa6b3c0cdd9e6f3fcefe2d5c9bcafa296897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000815222e3b4855616e7b859290837a6d7683909083766d7a839092857b6e6155483b2e221508000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000000000000000000000000000000000000000000010406070a0d101112131312100e0b080705020000000000000000000000000000010a131b21272b2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2b27211b130a010000000000000000000000000000000000020b131a202427282d2d2d2d2d2d2d2323201c160f08000000000000000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a73737373737373737373737373737373737373737373737373737373736d685e5246392d20130700121f2b3845525e6b7884868686868686867d7063564a3d3023170a0007121e28333c454b5052535353535353534a48443d352b333c454b5052535353535353534a48443d352b21160b00000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000613202d394653606c7881838485868275665c5145403f414a5464717e8b97a4988b7e7165584b3e3225180b00000006121f2b3844505c667683909da99f9285796d60544a403629241e1a191d2328343e47535f6a7683909ca99f92867a6d6053473a2d2014070000000915202a36414d56616c73808d939d9a92877e736c655d554e5050505050505050504948443d352b21160b00000613202d394653606c79839096a0a39c918c7f726d635b51493f372d25242c363e48505a616c717e879299a3a0959083796d6053463a2d201307000815212e3b4854616e7b8794a1acaca094877a6d6154473a2e211407000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e01000000000000000000000000000000000000000007121d28313c46515b606d7a849199a3aea3999184796d605a50463c31271d120700000000000000000000000000000000000000000000000000000000000000000000000000000000000000060f171e23282a2b2d2b3844505b66737f8c999393939393939084776b6054443a302419120b030000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afb7ab9f94887b6e62574e4339312d2b282b2e343f4953606d7985929fabada297897c6f6356493c30231609000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000e1b2835414e5b6874818e9ba7b4c1cedae7f4fcefe2d5c9bcafa296897c6f635649505c6976838f9c9286796c5f5346392c2013060000000000000713202d3a4653606d78818e9390837a7683909083767a8390938e81786d6053463a2d201307000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000000000000020608080d0606030000000000000000000000000000000104080d111314171a1d1e1f201f1f1d1b181414110e080200000000000000000000000000010910161b1e202020202020202020202020202020202020202020201e1b161009010000000000000000000000000000000000010b141d252b30333439393939393939302f2c27211a11080000000000000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e67676767676767676767676767676767676767676767676767676767615e564c4135291d110500111e2a3743505c68727879797979797979706b6054483c2f22160900010c17212a333b434a4f5053535353534c4a463f372d232a333b434a4f5053535353534c4a463f372d23190f0500000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0006121f2b3844505b6677849091929285796d6058514a4c4b515b6673808d99a9978a7d7164574a3e3124170b0000000713202d3a4653606d7986929fa89b8e8175665c5042392e2419130e0d1218222b37434e5866727f8c99a5a399897c6f6356493c30231609000000030e1925303b44505a606c77818e939c99928b80776d675f585045414343434343433d3b38322b23190f04000005121f2b3744505b65707d869298a2a39c918c7f726d625b51493f372d2c363e48505a616c717e879299a3a39992877e71665c5044382b1f1206000815212e3b4854616e7b87949f9f9f9f94877a6d6154473a2e211407000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e010000000000000000000000000000000000000000010c161f2a343f45525d686f7c87929fa6aba0968e81756c62584e43392f24180f060000000000000000000000000000000000000000000000000000000000000000000000000000000000050f1821292f3437383939333f4a54616e7a8786868686868686867f7265594f43322c29231d150d0700000000000000000000000000000000000000000916222f3c4955626f7c8895a2afbdb0a69a8d81746a5f554b433c39383338393f44505b65717e8a97a2adab9f9285796d6053463a2d201307000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000e1b2835414e5b6874818e9ba7b4c1cedae7f4fcefe2d5c9bcafa296897c6f635649505c6976838f9c9286796c5f5346392c20130600000000000006121f2c3844505c666d78818e9390837a839090837a8390938e81786d665c5044382c1f1206000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000003090e1214151913120f0b06000000000000000000000003070d1013191d202124272a2b2c2d2c2b2a282521201e19140f0a0400000000000000000000000000050a0f1213131313131313131313131313131313131313131313120f0a050000000000000000000000000000000000000008131d262f363c4041464646464646463d3c38332c231a0f0500000000000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e615a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a54524c443a3025190d01000f1b2834404b5660686b6c6c6c6c6c6c6c6360594f44382c20130700000a16222e39434d555b5d6060606060585651493f34292e39434d555b5d6060606060585651493f34291e120600000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00030f1c28333f4a546774818e9a9f978b7e716a605c5459555d606c7884919da297897c6f6356493c302316090000000714212e3a4754616d7a8798a3a5988b7f7265544a3f30271c1208020007101a26313d495663707c8996a3ab978a7d7164574a3e3124170b0000000008141f29323e44505b656c78818d929f9f928c81796f6a625a514c433c34363636302f2c2721191107000000030f1b27333f4953606b707d869298a2a39c918c7f726d625b51493f37363e48505a616c717e879299a3a39992877e716c61544a3f34281c1003000815212e3b4854616e7b87939393939393877a6d6154473a2e211407000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e01000000000000000000000000000000000000000000040d18222935414c56606a727f8c949fa9a89e938b7e716a5f554b40352921170c03000000000000000000000000000000000000000000000000000000000000000000000000000000010c17212a333a4044454646463a46525e686e797979797979797979726d6256473f3a38342f271f191007000000000000000000000000000000000000000916222f3c4955626f7c8895a2afb4aba39f92877b6e675d554e4846443f44464a5059606c7883909da9b1a89b8e8175665c5044382b1f1206000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000e1b2734414e5a6774818d9aa7b4c0cddae7f6ffefe2d5c9bcafa296897c6f635649505c6976838f9c9286796c5f5346392c20130600000000000003101c28343f4a545c666d78818e939084839191838490938e81786d665c544a3f34281c1003000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000000060e151a1e212226201f1c17110a0200000000000003060c1012181d2024292c2d30343638393939383735322e2d2a251e1b150d08020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1a252f3841484c4e535353535353534a48443d352c21160b00000000000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e61544d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4746413a32281e130800000b17232f3a454e565c5e6060606060606056544f473d33271c100400010e1a27333f4a555f676a6c6c6c6c6c65625b51463a2e333f4a555f676a6c6c6c6c6c65625b51463a2e22160900000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000b17222d3c4956626f7c89949f9f92857c716d66666666676d737f8c96a09f9285796d6053463a2d2013070000000815222f3b4855626e7b8895aaa4978a7d7164574a3e2e24150b000000000915222f3b4855626e7b8895a1a5988b7e7265584b3f3225180c00000000020d172027333f49535b666c74808b92989c938f847c716c605d554e463e362e292322201b160f0700000000000b17222d38414f59606b707d869298a2a39b918c7f726d625b51493f3e48505a616c717e879299a3a39992877e716c615a5042382e23170b00000815212e3b4854616e7b86868686868686867a6d6154473a2e211407000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e0100000000000000000000000000000000000000000000061019242f3a444e58606c77828f97a1aba59f92867c6e675d51453e33291e150b00000000000000000000000000000000000000000000000000000000000000000000000000000007131e29333c454c505253535246444d565e616c6c6c6c6c6c6c6c6c65625b51504c47454039312a221910060000000000000000000000000000000000000916222f3c4955626f7c8895a2afaea39992999083796d6760585553504a5053545c606b727f8b95a0acaca095897d7063544a3f34281c1003000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000d192633404c5966737f8c99a6b2bfced9e5f1feefe2d5c9bcafa296897c6f635649505c6976838f9c9286796c5f5346392c201300000000000000000c17232e38424a545c666c78818e92909195959191928d81786c665c544a42382e23170c00000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000060f181f262b2d2e332d2b28221c140b08060406060b0f12171c1f24292c2f35393a3d4043444546464543413e3b3936302b272019130c04000000000000000000000000000000000000000000050a0d0f101313100f0d0a05000000000000000000000000000000000000000000000000000814202b36414b53595b6060606060606056554f473d33271c1004000000000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e615447404040404040404040404040404040404040404040404040403a3935302820160c02000007121e28333c454b5052535353535353534a48443d352b21160b000003101d2936424f5b6771777979797979726d62564a3e3136424f5b6771777979797979726d62564a3e3124180b00000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000615222e3b4754606a76828f98a29792857e7975737273757a8088939fa1978d8074665c5144382c1f12060000000916222f3c4955626f7c8895a2a396897d7063564a3d30231706000000000714212e3a4754616d7a8794a0a5998c7f7266594c3f3326190c0000000000050e17222d38414a545b606e737e8691969e9691867e756d675f58504840372e261c13100b0400000000000006111b262f3d474f59606b707d869298a2a39b918c7f726d625b514948505a616c717e879299a3a39992877e716c615a50483e30261c110600000714202d3a46525e6976797979797979797976685e5246392d201307000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e01000000000000000000000000000000000000000000000008131e28323d44505b656d7a859199a4aea2989083796d605a50453b30271c120700000000000000000000000000000000000000000000000000000000000000000000000000000c18232f3a454f575c5e60605f53504a4d52545f60606060606060605c5e5f5f5c5853514b433c342a22180c0200000000000000000000000000000000000916222f3c4955626f7c8895a2afac9f928692958f81796f6a6462605b545b6062666d727d87929fa7b0a69d9184786c605346392e23170b00000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000b1824313e4b5764717e8a97a8b2bdc8d4e2edf8efe2d5c9bcafa296897c6f635649505c6976838f9c9286796c5f5346392c20110c0600000000000006111c263038424a545b666c77808d929da0a09d928d80776c665b544a423830261c110600000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000030e18212a31373a3b403938332d261d191312101314171c1f23282c2f35393a4145474a4d505152535252504e4b4746413b373229241e160e05000000000000000000000000000000000000030a11161a1c1d20201d1c1a16110a0300000000000000000000000000000000000000000000000b1824303c48535d64676c6c6c6c6c6c6c6360594f44382c201407000000000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b3434343434343434343434343434343434343434343434342e2d29251e160e04000000010c17212a333b434a4f5053535353534c4a463f372d23190f05000004111d2a3744505d6a778386868686867f7265584c3f323744505d6a778386868686867f7265584c3f3225190c00000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000006131f2b37434e58616e7b869298a097928b8582807f8082858d939aa19892857a6d61544a4034281c10040000000815222e3b4855616e7b8894aaa4978a7d7164574a3e2d22170b000000000815222f3b4855626e7b8895a1a5988b7e7265584b3f3225180c00000000000006111b262f38424a505c636c717c848e939f98928b817a6f6a625a524940382e251c110800000000000000000a141d2b353d474f59606b707d869298a2a39b918c7f726d625b51505a616c717e879299a3a39992877e716c615a50483e362c1e140a00000005121e2a36424d575e6c6c6c6c6c6c6c6c6c6c5e564c41362a1d1105000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e010000000000000000000000000000000000000000000000010c162027333f49535e68707d87939fa6aaa0958d81746c61574d42392e23180e05000000000000000000000000000000000000000000000000000000000000000000000000030f1b2834404c5761686b6c6c6c605c544a46475353534c52565d6065696b6c6b6965605c554e463c342a1e140a00000000000000000000000000000000000916222f3c4955626f7c8895a2afa5988b7f8b93938f837c76716e6c666b666c6e72787f879299a3aea99f948a7e71665b5044382b1c110600000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000815222e3b4855616e7b8896a0acb8c6d0dbe7f0f9e2d5c9bcafa296897c6f635649505c6976838f9c9286796c5f5346392c211d1711090000000000000a151e263038424a545b656c77808d939d9d938d80776c655b544a423830261e150a0000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000009151f2a333c4247484c46443f382f2925201f1d1f2022282b2e34383a4045474c5254575a5d5e5f605f5e5d5b5854524c47433c35302820170e0500000000000000000000000000000000040d151c2226292a2d2d2a2926221c150d04000000000000000000000000000000000000000000010e1a2733404c59646f7479797979797979706b6055483c2f231609000000000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e272727272727272727272727272727272727272727272721201d19130c0400000000000a16222e39434d555b5d6060606060585651493f34291e1206000004111e2b3744515e6a7784919393938c7f7265594c3f323744515e6a7784919393938c7f7265594c3f3226190c00000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000030f1b27323d46535f69707d8691969e9f97928e8c8c8d8f92989f9f9691867d6f685e5242392e23180c000000000714212e3a4754616d7a8798a2a5988b7f7265544a3f33281c1107010006101823303c4956636f7c8996a2aa978a7d7164574a3e3124170b000000000000000a141d262f383f44525a616a6f7a818b92989f938e847c716c635b524a40372e231a0d0400000000000000020b19232b353d474f59606b707d869298a2a39b918c7f726d625b5a616c707e879299a3a39992877e716c615a50483e362c241a0c02000000020e1a25303b454d525f60606060606060605f524c443a3025190d01000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e01000000000000000000000000000000000000000000000000040d17222d38414c56606b73808d949fa9a79d928a7e71695f544a40342820170b02000000000000000000000000000000000000000000000000000000000000000000000005111e2a3744505c6873787979796d665c504441454c52565e61686d727678797876726d675f584e463c30261c1106000000000000000000000000000000000916222f3c4955626f7c8895a2afa396897d818e96959087827e7b79787778797b7f848c9299a3abaaa2978f82776c60544a3f33281c0a0000000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000714212d3a46535f697784919eaab4bfcad6dee8eee2d5c9bcafa296897c6f635649505c6976838f9c9286796c5f534639302d29221b12090000000000030c151e262f38424a535b656c74818e9b9b8e81746c655b534a42382f261e150c030000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00020e1a26313c454d53555953504a423b35302d2b292c2d2d3338393f44464b5153565d606367696b6c6c6c6b6a6865615e56544e46413a322920170d020000000000000000000000000000030d161f272d32353639393635322d271f160d030000000000000000000000000000000000000000010e1b2834414e5b677481868686868686867d7063564a3d3023170a000000000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1413110d08020000000000010e1a27333f4a555f676a6c6c6c6c6c65625b51463a2e221609000005111e2b3844515e6b7784919e9f998c7f7266594c3f333844515e6b7784919e9f998c7f7266594c3f3326190c00000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000a15202a36424d57606b707c848c9196999c9b9999999b9d9a97928d847d6f6b60564c4130271c1207000000000613202d394653606c7985929fa79b8e8174665b5044382d2218120d0c1117222b37424d5765727f8c98a5a398897c6f6256493c2f23160900000000000000020b141d262d33404850585f686d757e8690959d9691867e736d645c524940352c1f160c0100000000000000071119232b353d474f59606b707d869298a2a39b918c7f726d62616c707e879299a3a39992877e716c615a50483e362c241a1208000000000009141f29333b42464853535353535353535346413a32281e130800000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e010000000000000000000000000000000000000000000000000006111b262f3a444f59606d78829097a2ada49f92857b6e665c51443e32291d140a000000000000000000000000000000000000000000000000000000000000000000000005121f2b3845525e6b7885868686786d60534a4c51565e61686d737a7f82858685837f796f6a5f584e42382e23170b000000000000000000000000000000000916222f3c4955626f7c8895a2afa3968a7d7a84919899938f8b888685848486888c91969fa3aba9a29892857b6e655b5042382d22170b0000000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0005121e2a36424d576673808c98a2aebac3ccd7dce3e7d5c9bcafa296897c6f635649505c6976838f9c9286796c5f53463e3d39342d241b110600000000060f19232b353d464e58606a6f7c8592989891857c6f6a60584e463d352b23190f060000000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0006121e2b37424d575f6166605b544d46413b393835393a3c3f44464a5053555d6064686d70737677787979787674716e68626058524c443a32291e130800000000000000000000000000000a151f2831383e4243464643423e3831281f150a0000000000000000000000000000000000000000010e1b2734414e5a6774818d93939393938a7d7064574a3d3124170a000000000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e21140d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d070705010000000000000003101d2936424f5b6771777979797979726d62564a3e3124180b000005121e2b3845515e6b7884919ea6998c807366594d40333845515e6b7884919ea6998c807366594d4033261a0d00000713202d3a4653606d798693a0aca69a8d8073675a4d4034271a0700000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000040e1a26313b454f59606a6f797f848a8d8f9192929291908d8a8580796f6b60594f443a301e150b000000000006121f2b3844505b667683909ca99e9285786c60544a3f3329241d19181b2227343c46535f6976838f9ca99f9286796d6053463a2d2013070000000000000000020b141c2228363e464e565d606c717b838d929f98928b80736e645b51473d31281e13080000000000000000071119232b353d474f59606b707d869298a2a39b918c7f726d6c707e879299a3a39992877e716c615a50483e362c241a1208000000000000020d17212930363a3b4646464646464646463936302820160c0200000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e0100000000000000000000000000000000000000000000000000000a141d29323d44505c666e7b85929ea4ada2979083786d60594f443b2f261c11060000000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d6976839098897c6f635a56555d60686d737a80858b8f9192928f8b847c6f6a5f544a3f34281c10030000000000000000000000000000000916222f3c4955626f7c8895a2afa4978a7d717d8692989f9c9799929291919298989ea0a8aba69f9792867d70695f53493f2f261c11060000000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00020e1a26313b4754616e7a86929fa7b1bac2cbd1d6dcd5c9bcafa296897c6f635653535c6976838f9c9286796c5f53534b49453e362d22170c000000030e18212b353d474f58606a6f7c8592918c8c9191857c6f6a60584f473d352b21180e0300000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000814212d3a47535f696e736c665f57524c484644404547494a5053545c6063676d71757a7d8083848586858583817e7a756f6a615d564c443a3025190d0100000000000000000000000005111c27313a434a4e505353504e4a433a31271c110500000000000000000000000000000000000000010e1a2734414d5a6774808d9a9f9f9f978a7d7164574a3e3124170b000000000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e2114080101010101010101010101010101010101010101000000000000000000000004111d2a3744505d6a778386868686867f7265584c3f3225190c000005121f2b3845525e6b7885919ea6998d8073665a4d40333845525e6b7885919ea6998d8073665a4d4033271a0d00000713202d3a4653606d798693a0aca79a8e8174675b4e412e23180c00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000009141f29333d474f5860676d72787d8082848586858483807e79736d6760594f473d32281e0c030000000000030f1c28333f4a546673808d99a7a1978a7d70665b50443e352f292423282d333d464f59616e7b86929faa9c908376665c5145382c1f13060000000000000001070d111317242d343c444c525a62696e78808b92999f928c80736d63594f433a2f24190d010000000000000000071119232b353d474f59606b707d869298a2a39b918c7f72707e879299a3a39992877e716c615a50483e362c241a12080000000000000000050f171f252a2d2e39393939393939392e2d2a251e160e050000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e010000000000000000000000000000000000000000000000000000020b172028343f4a545e69707d8a929da7a99f958d80736b61564d42382d22170e05000000000000000000000000000000000000000000000000000000000000000000010e1b2834414e5b6774818e9a8e81756c656364676d737a80868d92989c9e9f9e9c9691857c6f665c5044382b1f13080000000000000000000000000000000916222f3c4955626f7c8895a2afa4978a7e71707d8690959da0a39f9e9e9e9fa3aaa9a8a69f9c948f857d706b60574d41382d1d140a000000000000000000000000000613202c3946535f6c7986929f9f9f9a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000914202d3946525e6873808c95a0a8b1bbc0c7cbd0d0c9bcafa296897c6f63606060606976838f9c9286796c606060585650483e34291d110500000915202a333d474f59606a6f7c8592918c7f7f8c9192857c6f6a60594f473d332a20150900000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000815222e3b4855616e7b7f786e69615e565453504b515356545b6063666d70757a7e82868a8d909192939291908e8b86827c746d685e564c41362a1e11050000000000000000000000000a16222d38434c545a5d60605d5a544c43382d22160a00000000000000000000000000000000000000000d1a2633404d596673808c99a6aca4978b7e7164584b3e3125180b000000000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000004111e2b3744515e6a7784919393938c7f7265594c3f3226190c000005121f2c3845525f6b7885929ea69a8d8073675a4d40343845525f6b7885929ea69a8d8073675a4d4034271a0d01000713202d3a4653606d798693a0aca89b8f827568544b4034281c1004000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000000030d17212b353d464e555c60666d70737677787978787674716d67605d554f473d352b20160c000000000000000b17222d3c4956636f7c8995a0a99d9083786c605a50454039352f2e34383f444e58616b75818e99a3a3988c7f7265544b4034281c1004000000000000040c13181d202021222a323a414550575f666d747e8792989c928c7f726b61564c4135291d1307000000000000000000071119232b353d474f59606b707d869298a2a39b918b7f7d879299a3a39992877e716c615a50483e362c241a120800000000000000000000050d141a1e20212d2d2d2d2d2d2d2d21201d19130c05000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e01000000000000000000000000000000000000000000000000000000050e17232e38424d57616c74808d95a0aaa79f93887d70695e544a3f332820160b020000000000000000000000000000000000000000000000000000000000000000000c1825323f4b5865727e8b98938b7f75717071747a80858d92989fa2aaa4a3a5a8a1979083786d6053463a2f24190d0100000000000000000000000000000916222f3c4955626f7c8895a2afa4978a7e716b707c838b9195989b9d9e9f9f9f9e9d9b9894908a827b706b60594f453b2f261b0b02000000000000000000000000000613202c3946535f6c798692939393938d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000005111e2a36414c56606d798390969fa7afb5babfc2c3c4bcafa296897c6f6c6c6c6c6c6c76838f9c9286796c6c6c6c64625a5045392d21150800020f1a26313c464f59606b6f7c8592918b7f72727f8b9192857c6f6b60594f463c31261a0f02000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000815222f3b4855626e7b88827b736d686461605b555d606265666c7074797d81858a8f92999a9c9e9f9f9f9e9d9b99928f87817a6d685e5246392d2013070000000000000000000000010d1a26323e4a545e66696c6c69665e544a3e32261a0d01000000000000000000000000000000000000000c1925323f4c5865727f8b98a5b2a5988b7f7265584c3f3225190c000000000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000005111e2b3844515e6b7784919e9f998c7f7266594c3f3326190c000006131f2c3946525f6c7985929fa79a8d8074675a4d41343946525f6c7985929fa79a8d8074675a4d4134271a0e01000713202d3a4653606d798693a0aca99d908376665c5145382c1f130700091623303c4956636f7c8996a2afa4988b7e7165584b3e3225180b0000000000060f19232b343d434b51545c606366696b6c6c6c6b6a6764605d55514b433d342b23190e04000000000000000615222f3b4854606b7784919da8a0958c7f726c615a514b4541403f4045495058606a707d8a939eaa9f92867a6d6154473a2e23180c000000000000040d161d24292c2d2e2f30302f353e454d545c606c717d8692999f93887d70685d52453a2f24180d01000000000000000000071119232b353d474f59606b707d869298a2a39b918b869299a3a39992877e716c615a50483e362c241a120800000000000000000000000002090e12141520202020202020201413110d080200000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e010000000000000000000000000000000000000000000000000000000006111c26303b45505a606d79839098a2aea49a92857b6e665b50443d32281d140a0000000000000000000000000000000000000000000000000000000000000000000815222f3b4855626e7b88959b918b827e7d7e81858c92989fa2a29f9a9796989c9f9f958a7d7164554c4135291d110400000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e71646a6e787e84888c8e909192929291908e8b88837d766e6960594f473d33291d140a00000000000000000000000000000613202c3946535f6c79878686868686868074675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000020e1925303b45515c666e7b8490959fa3abaeb4b6b7b8b9afa296897d7979797979797979828f9c92867979797979716c6256493d3024170a0006121f2b37434e58606b707d8692918b7f726d6d727f8b9192867d706b60584e43372b1f1206000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000815222f3b4855626e7b888f86807a75716e6c666b676d6f7175797c81858a8e92989c9fa3aba39f9e9d9d9d9fa3a39f9a938e847a6d6154473a2e2114070000000000000000000000030f1c2935424e5a66707679797670665a4e4235291c0f03000000000000000000000000000000000000000b1724313e4a5764717d8a97a4b0a6998c807366594d4033261a0d000000000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000005121e2b3845515e6b7884919ea6998c807366594d4033261a0d00000613202c3946535f6c7986929fa79a8d8174675a4e41343946535f6c7986929fa79a8d8174675a4e4134271b0e01000713202d3a4653606d798693a0acac9f9286796d6053463a2e23180d060a1723303d4a5663707d8996a3b0a4978b7e7164584b3e3125180b000000000000081119222b303940454a5053575a5c5e5f5f5f5e5d5a5753514b45413a312b22191107000000000000000007131f2c38434f5965727f8b96a1a79f93887e716c605d55524c4c4c4b51535b606a6f7c86929fa5a3988e8174685e5246392d1d12070000000000010c161f282f35393a3b3c3c3d3d3c383b424a515a626b707e87939f9a92857a6d60554b4135291d110400000000000000000000071119232b353d474f59606b707d869298a2a39b999299a3a39992877e716c615a50483e362c241a120800000000000000000000000000000002050708131313131313131307070501000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e0100000000000000000000000000000000000000000000000000040404000a141e29333e45515c676e7b86929fa5aca1978f82786c60594f443a2f261b110600000000000000000000000000000000000000000000000000000000000000000814212e3a47535f6a7784919d9b948f8b898a8d92989fa2a29f98928d8a898b90949c9c8f8276675d5145392c20130600000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e71645f666d71777b7f8183858586858583817e7b76706b615e574f473d352b21180b02000000000000000000000000000006121f2c3845525e6a7579797979797979746e64584c3f33261a0d000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000008141e2834404b545e696e7b838d92999fa3aaa9aaabacaea5998f8986868686868686868f949f988986868686867e7164584b3e3125180b000814212e3a47535f6a707d8692918b7f726d62626d727f8b9192867d706a5f53473a2e211408000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000815222f3b4855626e7b8898928d86827e7b797877787a7c7e8285898d92979b9fa2a7a09d9999929190909192999a9ea19f96887b6e6255483b2f221508000000000000000000000003101d2a3643505d69768286868276695d5043362a1d1003000000000000000000000000000000000000000916232f3c4956626f7c8995aab4a79a8e8174675b4e4134281b09000000000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000005121f2b3845525e6b7885919ea6998d8073665a4d4033271a0d000006121f2c3844515c667986939fa79b8e8174685b4e41353844515c667986939fa79b8e8174685b4e4135281b0e02000713202d3a4653606d798693a0acaea398897c6f62544b4034281f1612101824313e4b5764717e8a97a4b1a4978a7e7164574b3e3124180b000000000000000810191e272e34383f44464a4d505152535251504d4a47454039352f281f191007000000000000000000030c1b27323d4753606d7984919eaca49a92867e736d67605d565959545c60656c717c859198a2ac9f92867b6e61564c4135291d0c03000000000007131d28313a4045474848494a4a48443d3940445059616c73808c96a0978d8073675d5145392c2013060000000000000000000000071119232b353d474f59606b707d869298a2aba39fa3a39992877e716c615a50483e362c241a12080000000000000000000000000000000000000000060606060606060600000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e010000000000000000000000000000000000000000000306080911111111110c17212834404b555f69717e8a939da8a99f948c7f736b60564c41382d22170d040000000000000000000000000000000000000000000000000000000000000006121e2b37424e5765727e8b95a09e9c9896979a9fa2a39f98928c85817e7d7e838c929f92867a6d6054473a2d21140700000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164545c60646a6e72757778787979787675726e69636159534d453d352b23190f0600000000000000000000000000000004111d2a36424e59636a6c6c6c6c6c6c6c67645c52473c3024170b000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000020c18232e39424d575e696e7880878d9298999c9d9e9fa39fa1999693939393939393939c9fa6a393939393938b7e7164584b3e3125180b000815222f3b4855626e7b8592938b7f726d625b5b626d727f8b9192857b6e6255483b2f221508000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000815222f3b4855626e7b88959f98928e8b878685848586898b8e92979a9ea1a8a09e9995908c89868483838486898d92979e95887b6e6255483b2f221508000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000000814212e3b4754616e7a8798a2aea89b8f8275685c4f4230251a0e020000000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000005121f2c3845525f6b7885929ea69a8d8073675a4d4034271a0d01000713202d3a4653606d79869aa4a89b8e8175685b4e42353a4653606d79869aa4a89b8e8175685b4e4235281b0f02000713202d3a4653606d798693a0acb4aa998d8073665c51453b3128201f1c1e26323f4c5965727f8c98a5b0a3968a7d7063574a3d3024170a0000000000000000070c151d23282e34383a3d4043444546454543413e3a38352f29241d160d07000000000000000000000b151e2b353d45515c67717d8a9aa4aca298928a8079716d6867666567666d70787e869197a1aaa6998c8073695e53493f372d1e150b00000000010d18242f3a434b51535455565756554f473d343f47505a606d7884919e9f92857a6d6054473a2d211407000000000000000000000000071119232b353d474f59606b707d86929facafacac9f92877e716c615a50483e362c241a1208000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e0100000000000000000000000000000000000000030a0f1215151e1e1e1e1e1e1e18232e39434d57616c74818e96a0aaa69f93877d70685e53493f33271f160c01000000000000000000000000000000000000000000000000000000000000020e1a26313c4653606c78839097a1a8a4a3a4aaa29f98928d86807a74717072767f8c94998a7d7063574a3d3024170a00000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164585053585f6265686a6b6c6c6c6b6a6865615f57554f46423b332b2319110700000000000000000000000000000000010e1a26313d4751595e5f6060606060605a58524a41362b1f1408000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000007121d27303b454d575e666d747b8186898d8f909192999393939393939393939393939393939393939393938b7e7164584b3e3125180b000814212e3a47535f6a74808d887f726d625b51515b626d727f8b8d80746a5f53473a2e211408000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000815222f3b4855626e7b88949fa29f9b979992919192939a989b9ea1a9a29e9a96918c8883807d7a78767677797c80858b9297887b6e6255483b2f221508000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000000613202d394653606c7985929facaa9d9083776a574d42362a1e11050000000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000006131f2c3946525f6c7985929fa79a8d8074675a4d4134271a0e01000714202d3a4753606d7a8693a0a89b8e8275685b4f42353a4753606d7a8693a0a89b8e8275685b4f4235281c0f02000713202d3a4653606d798693a0acb8ab9e9285796d60574d433a322d2c282a2d36424d576774818e9aa7b3a995897c6f6256493c2f231609000000000000000000030b12181c23282b2d30333638393939383734312d2c29241d18130c040000000000000000000007121c27303d474f59606b707d87939facaaa29f928d847e7a767473727375797d838b9298a1a9b3a5998c7f726d625b51493f30271d120700000004111d2935404b555d60616263636360594f4438353e44505c66727f8b98a2988a7e7164574b3e3124180b00000000000000000000000000071119232b353d474f59606b727f8c98a5b2b3a79a8d80746c615a50483e362d241b120900000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e01000000000000000000000000000000000000060e151a1f21222b2b2b2b2b2b2b2b2b27303c45505a606d79849198a3aea49991847a6d655b50443d31281e13080000000000000000000000000000000000000000000000000000000000000009151f2b3844505b666f7c8591969c9f9f9e9c98928d86807a736d686463656d76828f998d8073665a4d4033271a0d00000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b464e5355595b5d5e5f5f5f5e5d5b5855534d48443e363129211911070000000000000000000000000000000000000915202b353f474e52535353535353534e4c4741382f241a0e03000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000000000b151e29333b454d545c60696e747a7d808384858686868686868686868686868686868686868686868686867e7164584b3e3125180b0006121f2b37434e58646e74817e726d625b514949515b626d727f80746e64584e43372b1f1206000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000714212d3a4754606d79828b92989ea1a8a39f9e9e9f9fa4aca9a19e9a97928e89847f7b7773706d676a6a666d6f73797f858f887b6e6255483b2f221508000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000005121f2b3744505b657783909daaac9f928579695e52463a2d2014070000000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929fa79a8d8174675a4e4134271b0e01000714212d3a4754606d7a8793a0a89b8f8275685c4f42353a4754606d7a8793a0a89b8f8275685c4f4235291c0f02000713202d3a4653606d798693a0acb9ada1978b7e71695e554c443e3a3834363a3d46535e697784909daaada297877a6e6154473b2e2114080000000000000000000000070c11171c1f202427292b2c2c2c2b2a2724201f1d18120d070100000000000000000000000c18232e39424f59606b707d86929aa4aba9aca49c96918b8682807f7f8082858a90959fa3aaaaaca79c918b7f726d625b5142392e23180c0000000613202c3945515d676d6e6f6f70706b6055483d32343f4a54616e7b8899a49a8d8174675a4e4134271b0e010000000000000000000000071119232b353d474f59606b707d86929facacacac9f92877e716c615a50483e362d241b1209000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e01000000000000000000000000000000000006101820262b2e2f3737373737373737373737333e45515d676f7c86929fa5aba1968f82776c60584e433a2f24190d06000000000000000000000000000000000000000000000000000000000000030f1c28333f4a545f6a6f7c848c909292918f8b86807b746e68605d56565b64707d8a998f8275685c4f4235291c0f02000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e4347484c4e505252535252504e4b4846423b38332a251f170f0700000000000000000000000000000000000000040f19242d353d424546464646464646413f3c362f261d130800000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000000030c172129333b424a51575e61676d7073767778797979797979797979797979797979797979797979797979716c6256493d3024170a00020f1a26313c46525c646e74726d625b51493f3f49515b626d72746e645c52463c31261a0f02000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000613202c3945515d676d767e858c9196989b9d9e9f9f9e9d9a9897928e8a85817c77736e696663605d55545c6063676d727a81887b6e6255483b2f221508000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000000000030f1b27333f49536874818e9ba7aea298877b6e6154473b2e2114080000000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000006121f2c3844515c667986939fa79b8e8174685b4e4135281b0e02000814212e3b4754616e7a8794a1a89c8f8275695c4f42363b4754616e7a8794a1a89c8f8275695c4f4236291c0f03000713202d3a4653606d798693a0acb1a7a09d92857b6e675d56504846443f4246474f58616e7b8795a0acab9f928578685e5246392d20140700000000000000000000000000060b101213171a1d1e1f201f1e1d1a171413100c070100000000000000000000000004101c2834404a54606b707d869298a3a69f9c9fa4a8a19e99928f8d8c8c8d8f92989da0a7a7a09da0a7a39b918b7f726d62544b4034281c100400000714202d3a4753606d797b7b7c7d7d7063584e4338313a4653606d7986939f9c8f8276695c4f4336291c100300000000000000000000071119232b353d474f59606b707d869298a2a39f9fa3a39992877e716c615a50483e362d241b12090000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929faca79b8e8174685b4e4135281b0e0200000000000000000000000000000000030e18222a31373a3c44444444444444444444444444404b555f6a727f8b939ea8a89e948c7f726a60554c41352922180c010000000000000000000000000000000000000000000000000000000000000b17222d38424e585f6a6f797f83858684827f7a736e69615e56524c4a54606d7987868683776a5e5144372b1e1104000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e373a3b3f4244454546464543423f3b3a36312c28211a140d050000000000000000000000000000000000000000000a16202b343d4347494949494949494846423b33291f140900000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000050f172029303940444d53555d606366696a6b6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c64625a5045392d21150800000915202a33414a525c646765625b51493f37373f49515b626567645c524a41332a20150900000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0004111d2935414b555d606d717a7f84898c8f9091929291908e8b8885817d79746f6b66615f575653514b4b5153555c60686d757f7b6e6155483b2e221508000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000000000000b17222d3f4c5865727f8b98aab4aa96897c706356493d302316080000000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d79869aa4a89b8e8175685b4e4235281b0f02000815212e3b4854616e7b8794a1a99c8f8376695c5043363b4854616e7b8794a1a99c8f8376695c504336291d1003000713202d3a4653606d798693a0acaca09590959082796d68615a5553504a4d525459606a74808d9aa7b1a99c8f827669564d41362a1e11050000000000000000000000000000000306070a0d101112131212100e0b07060400000000000000000000000000000006121f2c3844515c66707d869298a3a39c948f939aa0a7aba39f9c9a99989a9b9fa2aaa8a19e9590959ba3a39b918b7f72665c5145382c1f13060003101c2936434f5c6976828788898a85786a605448423f404653606d798699a49c8f8376695c504336291d1003000000000000000000071119232b353d474f59606b707d869298a2a399929299a3a39992877e716c615a50483e362d241b120900000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929faca89b8e8275685b4f4235281c0900000000000000000000000000000000000a15202a343c4347485151515151515151515151515151514e58626d75818f96a1aba69f92877c6f675d51453f34291d110500000000000000000000000000000000000000000000000000000000000006111c262f3c464e585f676d727678797876726d68615e56524c454145515d67757979797771675b4f43362a1d1004000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e312e2f32353738393939383735322e2d2a261f1c170e0903000000000000000000000000000000000000000000030f1b27323d464e545656565656565654534d453b31251a0e02000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000000000000050e171e272e343b42464b5153565a5c5d5e5f6060606060606060606060606060606060606060606060585650483e34291d11050000030e18212f38414a52585a585651493f372d2d373f495156585a58524a41382f21180e0300000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00010d18242f3a434b515a62686d72797c7f82848586858583817f7c7974706d6663605955534d494745404045464b51565e616d726e695f53473a2d211408000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000000000000616232f3c4956626f7c8998a3aea5988c7f7265594c3f3025190d0100000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0a89b8e8275685b4f4235281c0f02000815222e3b4855616e7b8894a1a99c908376695d5043363b4855616e7b8894a1a99c908376695d5043362a1d1003000713202d3a4653606d798693a0acaa9d9084909490827a716c6562605c54565e61646b707c87929facb0a6998c7f7266594c3f3025190e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d79849197a1a49c918c838790959c9fa4aca9a7a6a5a6a8a8a7a09d96918a848c919ba3a0959084796d6053463a2d20130700000d1a2733404d5a6673808d959697897c6f625b534d4c4d4f58626f7c8895ab9b8e8275685b4f4235281c0f020000000000000000071119232b353d474f59606b707d869298a2a3999286869299a3a39992877e716c615a50483f362d241b1209000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929faca89c8f8275695c4f4230251a0e02000000000000000000000000000000030f1a26313c464e53555e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5b606d7a849199a3aea39991847a6d605a50453a2e211509000000000000000000000000000000000000000000000000000000000000000a141d2a343c464e555d6065696c6c6b6965615e56524d46413b35414b555d6b6c6c6c6a675f564b3f33271b0e02000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e31252226282a2b2c2c2c2b2a282522211e1a14100b05000000000000000000000000000000000000000000000006131f2b37434e586062626262626262615e574d42362a1e1205000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000000000000050c151c232831363a4045474a4d5051525353535353535353535353535353535353535353535353534b49453e362d22170c00000000060f1d262f3841474c4e4b4a453f372d25252d373f464a4b4e4c4741382f261d0f060000000c1925323f4c5865727f8b989f9f998d8073665a4d4033271a0d000007131d28313a414550565d60666d6f727577787979787674726f6c6663605c54544f4846423d3a393534383a40454c525b6265615f574d42372b1e1206000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000000000000713202d3a4653606d7986929faca89b8e817568564c41362a1e110500000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0a89b8f8275685c4f4235291c0f02000815222f3b4855626e7b8895a1a99d9083766a5d5043373b4855626e7b8895a1a99d9083766a5d5043372a1d1004000713202d3a4653606d798693a0aca396897d85929490847d76726e6d666b6b696e71757d859299a3afab9f94887b6e6155483b2e2215080000000000000002060a0c0d1313131313131313131313131313131313131313131312110f0c0701000000000000000006121f2c3844515c666e7c8591979c928c7f767c838a8f939a9a9d9e9f9f9e9d9b9895908b847e777f8c919b9691837a6e665c5145382c1f130600000916232f3c4956626f7c89959f9c8f82756d615e57595959616a73808d99a8998d8073665a4d4033271a0d0000000000000000071119232b353d474f59606b707d869298a2a39992877d7d879299a3a39992877e716c625a50483f362d241b12090000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaa9d9083776a574d42362a1e120500000000000000000000000000000006121f2b37434e585f626a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a686f7c87929facaba0968e81756c62564a3d3124170b00000000000000000000000000000000000000000000000000000000000000020b18222a343c434b5154595d5f5f5e5c5854524c46423b36302f3a434b515e6060605e5b564d44392e22170b00000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e312518191b1d1f1f201f1f1d1b181514120e0903000000000000000000000000000000000000000000000000000815222e3b4754606a6f6f6f6f6f6f6f6e695e53463a2d211407000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000030b12181f252a2f35393a3d404344454646464646464646464646464646464646464646464646463e3d39342d241b110600000000000b141d262f363c40413f3d3a342d251b1b252d343a3d3f413f3c362f261d140b000000000c1925323f4c5865727f8b939393938d8073665a4d4033271a0d0000010c161f282f353f444c52545c606265686a6b6c6c6b6a676562605b5453514a48433d3a36312d2c29282c2f343a414651575955534d453c31261a0e02000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000000006121f2c3844515c667683909ca9aa9e918477685e5246392d20130700000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794a1a89c8f8275695c4f4236291c0f03000915222f3c4855626f7b8895a2aa9d9083776a5d5044373c4855626f7b8895a2aa9d9083776a5d5044372a1d1104000714202d3a4753606d7a8693a0ada194887b7e8b9296918a837f7b79787778797a7d82889297a1abafa4998f8276695f53473a2d211408000000000000070d12161919202020202020202020202020202020202020202020201f1e1b18130c050000000000000004101c2834404a545f6a6e7c8591928c7f736d6f787d82878b8e9091929291908e8b88837e79716d727f8c9191847a6e685e544b4034281c100400000815222e3b4754606a7783909a9e948c7f756e69676666676b707c86929fa096897c6f6356493c3023160900000000000000071119232b353d474f59606b707d869298a2a39992877e70717e879299a3a39993877e716c625a50483f362d241b120900000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facac9f928579695e52463a2d2014060000000000000000000000000000000815212e3a47535f6a6f777777777777777777777777777777777777777777777f8c99a5b2a89e938b7e7165584b3e3225180b0000000000000000000000000000000000000000000000000000000000000000061018222a313a4145474c50525352504c4746413a36302a2528313a414547535353514f4b443b32281d110600000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180c0f111212131312100f0c080705020000000000000000000000000000000000000000000000000000000916232f3c4956626f7c7c7c7c7c7c7c7b6e6154483b2e211508000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d0000000000000000000000070c141a1d24292c2d303336373839393939393939393939393939393939393939393939393931302d29221b1209000000000000020b141d242b30333432312e29231b12131b23292e31323433302b241d140b02000000000c1925323f4c5865727f8686868686868073665a4d4033271a0d000000040d161d2429323a41454a505356595c5d5e5f5f5e5d5b585553504a4644403938322d2a2620201d1c1f232930363f464a4c4847423c332a1f150900000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000000004101c2834404a5466737f8c99a9aca096877a6d6154473a2e21140a00000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b8794a1a99c8f8376695c504336291d1003000916232f3c4956626f7c8995a2aa9d9084776a5d5144373c4956626f7c8995a2aa9d9084776a5d5144372a1e1104000714212d3a4754606d7a8793a0ada194877b74818e949e95908c888685848585878a8f939aa1a9afa59f93877c6f62574d42372b1e120600000000010a12191e2325262d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2b2b28241e170f06000000000000000c18232e39424e575f6a6e7c858c80736d63666d70767b7e81838485858584817f7c77726d67626d727f8b847b6e685e564c42392e23180c00000006131f2b38434e5863707d88939f9c918c817b7673727374777d859298a29e9184786d6053463a2d201307000000000000071119232b353d474f59606b707d869298a2a39992877e706c6c717e879299a3a49993877e716c625a50483f362d241b1209000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929facaea298877b6e6154483b2d22170b0607080808060200000000000000000915222f3c4855626f7c8484848484848484848484848484848484848484848484919daab7afa59f9285786c5f5245392c1f120600000000000000000000000000000000000000000000000000000000000000000610181f282f35393a3f43454645433f3a3936302a251f191f282f35393a46464644433f39322920160b0000000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180b020405060606050402000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c79878989898989898074675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000000000000000000000003090e13181d20202327292a2b2c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2524211d1711090000000000000000020b131a1f2426272524221d1811090911181d2224252726241f1a130b0200000000000b1825313e4a56626d72797979797979736e63584b3f3226190c00000000040c131820282f35383f4446494c4f5152535252504e4c4946443f3a38342e2c27211e1a1413101013181e252a353a3e3f3b3a37312a21180e0300000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000000000c18232e3c4956626f7c8997a2ada8978a7e7164574a3e31261b0f03000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b8894a1a99c908376695d5043362a1d100300091623303c4956636f7c8996a2aa9e9184776b5e5144383c4956636f7c8996a2aa9e9184776b5e5144382b1e1105000714212e3a4754616d7a8794a0b4ab94877a6d78828f939f9d989a939291919298979b9fa4acaba39f938d80736a6054453c31261a0e02000000000a131c232a2f3233393939393939393939393939393939393939393939393837342f2921180f0500000000000007121c27303c454e575f6a6e7c7f736e635b5c6064696e717477787979787775726f6a65605d5b626d727e7b6e695e564d443b30271d1207000000030f1b27323d4854606b73808d939f9c938e8783807f8081848a9297a19f928a7d70665c5044382b1f12060000000000071119232b353d474f59606b707d869298a2a39992877e716c61616c717e879299a3a49993877e716c625a50483f362d241b12090000000000000000000000000000060606060606060600000000000000000000000613202c3946535f6c7986929facb4aa978a7d7064544a3f33281c131313151514120f0a030000000000000916222f3c4955626f7c889191919191919191919191919191919191919191919196a0acb8b8ac9f9285796c5f5246392c1f1306000000000000000000000000000000000000000000000000000000000000000000060d161d24292c2d323639393836322e2d2a251e19140d161d24292c2d3939393736332e2820170e040000000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180b000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c798692959595958d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d000000000000000000000000000001070d111314171a1d1e1f202020202020202020202020202020202020202020202020181715110c060000000000000000000001080e14171a1b181815120c060000060c121518181b1a17140e08010000000000000916222e3a46515b62656c6c6c6c6c6c66635c52473b2f23170a000000000001070d161e24292e34383a3c3f42444546464543413f3c3938332d2c28231c1b16120e09060404070c131923292e31322e2d2b261f180f060000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000000000713202d3a4653606d7985929eaba79b8e817468584e43372b1f1206000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000815222f3b4855626e7b8895a1a99d9083766a5d5043372a1d1004000a1623303d495663707c8996a3ab9e9184786b5e5145383d495663707c8996a3ab9e9184786b5e5145382b1e1205000814212e3b4754616e7a87949f9fa39986796d6d79818c92989fa29f9e9e9e9fa2aaa8a9aaa29f99928b81786d60584e43332a1f15090000000007121c252e353b3e40464646464646464646464646464646464646464646464544403a332b21170c010000000000000b151e2a333c454e575f6a6e726d635c525053575e6164676a6b6c6c6b6a6865625f585351515b626c716e695e574d443b32291e150b00000000000a16202c38444f59606c77808c92989f9992908d8c8c8e91969e9f99928c80736b61544a3f34281c100300000000040f19232b353d474f59606b707d869298a2a49992877e716c615a5a616c717e879299a3a49993877e716c625a50483f362d241b110600000000000000000002050708131313131313131307070501000000000000000613202c3946535f6c7986929facb4a79a8e8174665b5044382d22201f202222211f1a150e0600000000000916222f3c4955626f7c88959d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9da0a8b2acacac9f9285796c5f5246392c1f130600000000000000000000000000000000000000000000000000000000000000000000040c13181d2021262a2c2c2b292521201d19130e09040c13181d20212d2d2d2b2a27221d160e05000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180b000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929fa2a29a8d8174675a4e4134271b0e000c1925323f4c5865727f8b98a5a6998d8073665a4d4033271a0d00000000000000000000000000000000010406070a0d1011121313131313131313131313131313131313131313131313130b0a0805000000000000000000000000000003080b0d0e0c0b090501000000000106090b0c0e0d0b0803000000000000000006121e29343f495156586060606060605a58524a40362a1f130700000000000000040c13191c23282b2d2f323537383939383734322f2d2b28221f1c18120f0a0502000000000002080d181e22252622211e1a150e06000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000000000000006121f2b3844505c6674818e9baaab9e9184786a5f53473a2e21150a000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000915222f3c4855626f7b8895a2aa9d9083776a5d5044372a1d1104000a1723303d4a5663707d8996a3ab9e9185786b5e5245383d4a5663707d8996a3ab9e9185786b5e5245382b1f1205000815222e3b4855616e7b889393939392867966676d787f868d92989a9c9e9e9f9f9e9d9c9998928d877f746d665c50463d3221180e03000000020d19232e3740464b4c5353535353535353535353535353535353535353535352504c453d33291e1307000000000000030c18212a333c454e575f6266635b524944464d5354585b5d5e5f5f5e5d5b5855534e474549515a6265615e574d453b322920170c03000000000004101c27323d44505b656c777f868e92999b9c9a99999a9d9b99938f867f736e63594f42382e23170b00000000000b16212b353d474f59606b707d869298a2a49993877e716c615a50505a616c717e879299a3a49993887e716c625a51483f372d23180c0100000000000002090e12141520202020202020201413110d080200000000000613202c3946535f6c7986929facb8ab9e9185786c60544a3f332d2c2c2d2f2f2e2b2620180f06000000000916222f3c4955626f7c88959f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9285796c5f5246392c1f1306000000000000000000000000000000000000000000000000000000000000000000000001070d111314191d1f201f1d191413110d0802000001070d1113142020201e1d1b17110b0400000000000000000000000000000000000916222f3c4955626f7c8895a2aca4978b7e7164584b3e3125180b000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e000c1925323f4c5865727f8b989f9f998d8073665a4d4033271a0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d18232d373f464a4c5353535353534d4b4740382e24190e02000000000000000001080d11171c1f202326292a2b2c2c2b2a282522201f1c1712100c070000000000000000000000070d121618191514120e090300000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000000000000003101c28343f4a5464707d8a98a2ada196887b6f6255483c31261a0f000000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000916232f3c4956626f7c8995a2aa9d9084776a5d5144372a1e1104000a1724303d4a5763707d8a96a3ab9e9285786b5f5245383d4a5763707d8a96a3ab9e9285786b5f5245382c1f0600000916232f3c4956626f7c86868686868685786b5c666c727b80858a8d8f9192929291908f8c8a86807b726d605c544a3f342b200f060000000006121e2a354049515759606060606060606060606060606060606060606060605e5c574f453a2f24180c00000000000000060f18212a333c454e53555957514940383b4246484b4e5051525252514f4c4847433c393f4850565854534d453b332920170e05000000000000000b162127333f49535b656c727b81868b8e9091929291908e8b87827c726d635c52473e30261c11060000000003101b27323d474f59606b707d869298a2a49a93877e716c615a504848505a616c717e879299a4a49a93887e716c625b51493f34291d11050000000000050d141a1e20212d2d2d2d2d2d2d2d21201d19130c05000000000613202c3946535f6c7986929facb4aba1978a7e71665b50443f3a39383a3b3b3a37312a22180e030000000916222f3c4955626f7c8893939393939393939393939393939393939393939393939393939393939285796c5f5246392c1f130600000000000000000000000000000000000000000000000000000000000000000000000000010406070c10121312100c070705010000000000000104060713131311100e0b06000000000000000000000000000000000000000916222f3c4955626f7c88959f9f9f978b7e7164584b3e3125180b000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986929f9f9f9a8d8174675a4e4134271b0e000c1925323f4c5865727f8b939393938d8073665a4d4033271a0d00000000000000000000000000000000000000000000000000000000000000000000040613131313131313131312110e09040000000000000000000000000000000000040613131313131313131312110e0904000000000000000000000000000000000007111b252d343a3e3f464646464646403f3b362e261c1208000000000000000000000000060b10121316191c1e1f201f1f1d1b191613120f0b060400000000000000000000000000000106090b0c08080602000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000000000000b17232e3a4753606d7985929faca8998c7f7366584e43372b1c11060000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2aa9e9184776b5e5144382b1e1105000a1724313d4a5764707d8a97a3ab9f9285786c5f52452e3d4a5764707d8a97a3ab9f9285786c5f52452e23170b00000815222e3b4754606a6f797979797979787368545b60696e74797d808284858685858482807d7a746e69625b504a42382e22190f00000000000a16232f3b46515b63666c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b6861574c4034281b0f0000000000000000060f18212a333c4247484c4b463f372b31363a3b3e41444546464544423f3c3a37312c363f454a4b4846423b332920170e050000000000000000050b17222d384149535b606a6e757a7e81838585868584817f7b756f6a635b524940352c1e140a00000000000713202c38444f59606b707d869298a2a49a93887e716c615a50483e3e48505a616c717e879399a4a49a93887f726d625b51453a2e22150900000000050f171f252a2d2e39393939393939392e2d2a251e160e050000000613202c3946535f6c7986929facaea399929183786c6059504947454546484847433c342a20150a0000000916222f3c4955626f7c8686868686868686868686868686868686868686868686868686868686868686796c5f5246392c1f130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8893939393938b7e7164584b3e3125180b000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c798692939393938d8174675a4e4134271b0e000c1925323f4c5865727f8686868686868073665a4d4033271a0d0000000000000000000000000000000000000000000000000000000000000001070c10132020202020202020201f1d1a150f080000000000000000000000000001070c10132020202020202020201f1d1a150f08000000000000000000000000000000000009131b23292e313239393939393933322f2a241c140a000000000000000000000000000000030607090c0f1112131312100e0c090606030000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000000000006131f2c3845515d6774818e9ba8aa9d9184776a5f5347382e23170b0000000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000a1623303d495663707c8996a3ab9e9184786b5e5145382b1e1205000b1824313e4b5764717e8a97a4ac9f9285796c5f4a3f343e4b5764717e8a97a4ac9f9285796c5f4a3f34281c10030006131f2b37434e5860626c6c6c6c6c6c6b68615750575e61676d7073767778797978777673706d67615e5751443f3830261c100700000000000c1925323e4b57636d73797979797979797979797979797979797979797979797873685c5044372b1e11000000000000000000060f18212a31373a3b3f3e3a352e25252a2d2e313437383939383735322f2e2b26242d343a3d3e3b3a36312921170e050000000000000000000006111b262f38414950575f62686e717477787979787775726e69625f58514940372e231a0c0200000000000916222f3b4854606b707d869298a2a49a93887e716c625a50483e36363e48505a616c717e879399a4a49a93887f726d62564a3d3124180b000000020d17212930363a3b4646464646464646463936302820160c0200000613202c3946535f6c7986929facac9f9286928c7f736b605b53535151535555534e463c31261a0f0200000815222e3b4754606a76797979797979797979797979797979797979797979797979797979797979797974695d5144382b1f120500000000000000000000000000000000000003080c0e0e131313131313130f0e0c09040000000000000000000000000000000000000000000000000000000000000003070b0d0e131313131313130e0e0c08030000000000000916222f3c4955626f7c868686868686867e7164584b3e3125180b000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c79878686868686868074675a4e4134271b0e000b1825313e4a56626d72797979797979736e63584b3f3226190c000000000000000000000000000000000000000000000000000000000000030b12181c1f2d2d2d2d2d2d2d2d2c2c2a26201912090000000000000000000000030b12181c1f2d2d2d2d2d2d2d2d2c2c2a262019120900000000000000000000000000000000010911181e2225252d2d2d2d2d2d2726231f19120a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000000000004101d2935404b5563707d8996a1aca095887b6f62544a3f34281c100300000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000a1723303d4a5663707d8996a3ab9e9185786b5e5245382b1f1205000b1825313e4b5864717e8b97a4ac9f938679665c5044383e4b5864717e8b97a4ac9f938679665c5044382b1f120600030f1b27323d464e54566060606060605f5c574f444d53555c606367696b6b6c6c6b6a696663605d55534d453f342e261e140a0000000000000d192633404c5966737f8686868686868686868686868686868686868686868685786b5e5245382b1f1200000000000000000000060f1820262b2e2f33322f2a231c1a1e212125282a2b2c2c2b2a282522211f1b1b22292e31322e2d2a251f170f050000000000000000000000000a141d262f383f444e53565e6165686a6b6c6c6b6a6865615e57534e463f372e251c11080000000000000a1623303d495663707d869298a2a39f93887f716c625a50483e362c2c363e48505a616c717e879399a4a49a93887e7265584b3f3225180c00000009141f29333b42464853535353535353535346413a32281e1308000005121f2b3744505b657986939faca79a8d818d93877d726c6562605d5c6062625f584e43372b1f1206000006131f2b37434e5860626c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6962584d4135291c10030000000000000000000000000000000001090f14181a1b202020202020201c1b191510090200000000000000000000000000000000000000000000000000000001080e1317191a202020202020201b1a18140f0901000000000815212e3b47535f6a7679797979797979716c6256493d3024170a0000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2c3845525e6a7579797979797979746e64584c3f33261a0d000916222e3a46515b62656c6c6c6c6c6c66635c52473b2f23170a0000000000000000000000000000000000000000000000000000000000030d151d23292c3939393939393939393836312b241b1208000000000000000000030d151d23292c3939393939393939393836312b241b12080000000000000000000000000000000000070d121618192020202020201a1917130e08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050a0d0f101313100f0d0a0500000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000000000000000000c18242f394653606c7884919eaba7998c8073665c5044382b1f140900000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3ab9e9285786b5f5245382c1f0600000b1825323e4b5865717e8b98a4afa49986796d6053463a3e4b5865717e8b98a4afa49986796d6053463a2d20130700000a16202b343d43474953535353535352504c453b42464b5153575a5c5e5f5f5f5e5d5c595754514c46423b3328231c140c020000000000000d192633404c5966737f8c93939393939393939393939393939393939393939185786b5e5245382b1f120000000000000000000000060e151a1e21222625221e18120e121415181b1d1e1f1f1f1e1c191515120f11181d21242521211e1a140d0500000000000000000000000000020b141d262d333c42474c5254585b5d5e5f5f5e5d5b5854524d47433c342d251c130a000000000000020f1c2935424f5c6875828f949fa39b918b7f726d625a50483e362d24242c363e48505a616c717e879399a49e938e8175685b4e4235281b0f0200020e1a25303b454d525f60606060606060605f524c443a3025190d01000613202d394653606c78869aa4afa396897d869292877f78726e6d67676d6e6e6a5f53473a2e2114080000030f1b27323c464e5455606060606060606060606060606060606060606060606060606060606060605f5d5850463b3025190d00000000000000000000000000000000030b131a202427282d2d2d2d2d2d2d292825211b140c0300000000000000000000000000000000000000000000000000020b12191f2326272d2d2d2d2d2d2d282724201a130b0300000006131f2b37434e585f626c6c6c6c6c6c6c64625a5045392d2115080000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2a36424e59636a6c6c6c6c6c6c6c67645c52473c3024170b0006121e29343f495156586060606060605a58524a40362a1f130700000000000000000000000000000000000000000000000000000000010b151f272f343846464646464646464645423d352d24190f0400000000000000010b151f272f343846464646464646464645423d352d24190f0400000000000000000000000000000000000106090b0c1313131313130d0c0a07020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a11161a1c1d20201d1c1a16110a030000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000000000000007121f2b3844505b6673808c99a3ab9e9184796d6053463b30251a0e01000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a3ab9f9285786c5f52452e23170b00000c1825323f4b5865727e8b98a5b5a093867a6d6053473a3f4b5865727e8b98a5b5a093867a6d6053473a2d2014070000040f19222b32373b3c4646464646464544403a3136394045474a4d4f5152535252514f4d4a4745413a3631292117110a02000000000000000d192633404c5966737f8c999999999999999da0a7a9a29f999999999999999185786b5e5245382b1f1200000000000000000000000003090e121415191816120d07020507080b0e1112131312110f0c09080603060c111517181514120e0903000000000000000000000000000000020b141b222731373b4146474b4e5152525352514e4c4846423b37312a221c130a01000000000000000714202d3a4753606d79828f949b918b7f726d625a50483f362d241b1a242c363e48505a626c717e87939a938e81786d6053463a2d201307000005121e2a36424d575e6c6c6c6c6c6c6c6c6c6c5e564c41362a1d1105000713202d3a4653606d798693a0b6a295887c818e99928c837f7b7a7979797b7c6e6255483b2f2215080000000a15202b343c4347495353535353535353535353535353535353535353535353535353535353535352514d463e342a1f1408000000000000000000000000000000010b151d252b303435393939393939393534312c261e150c000000000000000000000000000000000000000000000000000b141d242b303334393939393939393534302b251d150b010000030f1b26323c464e535560606060606060585650483e34291d110500000000000000000000000000000000000000000000000000000000000000000000000000000000010e1a26313d4751595e5f6060606060605a58524a41362b1f140800010d18232d373f464a4c5353535353534d4b4740382e24190e020000000000000000000000000000000000000000000000000000000007121d2731394045535353535353535353524e473f352b2015090000000000000007121d2731394045535353535353535353524e473f352b20150900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d151c2226292a2d2d2a2926221c150d0400000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000000000000030f1c28333f4a54616e7b87929faca1968a7d7063574d42362a1d1307000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a97a4ac9f9285796c5f4a3f34281c1003000c1925323f4c5865727f8b98a5ada093877a6d6054473a3f4c5865727f8b98a5ada093877a6d6054473a2d21140700000007101920272b2e2f3939393939393837342f252a2f34383a3d404344454646454443403d3a39352f2a251f170f060000000000000000000d192633404c5966737f8c8c8c8c8c8c8c8c9095a0a297928c8c8c8c8c8c8c8c85786b5e5245382b1f120000000000000000000000000000020608080c0c0a060200000000000001040506060504020000000000000105090b0b08070502000000000000000000000000000000000000020a111720262b3036393b3e41444546464544423f3b3a36302b262018100a01000000000000000006131f2c3845515c676d79828f918b7f726d625b51483f362d241b12121a242c363e48505a626c717e88938e81786d665c5044382b1f120600000714202d3a46525e6976797979797979797976685e5246392d201307000714202d3a4753606d7a8693a0ada194887b7c88949f95918c8886858586888073675a4d4034271a0d000000040f19222b32373b3c464646464646464646464646464646464646464646464646464646464646464644413b342c22180d0200000000000000000000000000000009131d272f373c40414646464646464642413d3730271e0e050000000000000000000000000000000000000000000000030d1d262e363c3f414646464646464641403c372f271d13090000000a15202a343c434749535353535353534b49453e362d22170c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000915202b353f474e52535353535353534e4c4741382f241a0e03000007111b252d343a3e3f464646464646403f3b362e261c120800000000000000000000000000000000000000000000000000000000000c18232f39434b515f606060606060605f5e5951473d31261a0e010000000000000c18232f39434b515f606060606060605f5e5951473d31261a0e0100000000000000000000000000000000000000000000000000000000000106090b0c131313130c0b09060100000000000000000000000000000000000000000000000000000000000000030d161f272d32353639393635322d271f160d03000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000000000000000b17222d3846525e6975828f9ba7a89b8f8275695e52463a2f24180d000000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4ac9f938679665c5044382b1f1206000c1926333f4c5966727f8c99a5ada094877a6d6154473a3f4c5966727f8c99a5ada094877a6d6154473a2e21140700000000070f161b1f22232d2d2d2d2d2d2c2b28241a1d23292c2d3034363838393938373633302d2c29241e1a140d0500000000000000000000091623303c4956636f7d808080808080808083909d9f928580808080808080807f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b151a1e252a2d2e323537383939383735322e2d2a251f1a150e060000000000000000000004101c2934404b555c676d79828a7f726d625b51493f362d241b120909121b242d363e48505a626c717e8681786d665c544a3f34281c100300000815212e3b4854616e7b86868686868686867a6d6154473a2e211407000714212d3a4754606d7a8793a0ada194877a76828f99a09d9895989292988d8073675a4d4034271a0d0000000007101920272b2e2f39393939393939393939393939393939393939393939393939393939393939393835302a221a1006000000000000000000000000000000030f1a252f3941484d4e535353535353534f4d4942393020170d02000000000000000000000000000000000000000000010b151f2e3840474c4d535353535353534e4d4841392f251a0f030000040e18222a32373b3c464646464646463e3d39342d241b1106000000000000000000000000000000000000000000000000000000000000000000000000000000000000040f19242d353d424546464646464646413f3c362f261d13080000000009131b23292e313239393939393933322f2a241c140a000000000000000000000000000000000000000000000000000000000004101c2934404b555c6c6c6c6c6c6c6c6c6c6a63594e42362a1d1104000000000004101c2934404b555c6c6c6c6c6c6c6c6c6c6a63594e42362a1d110400000000000000000000000000000000000000000000000000000000070d1216181920202020181815120c060000000000000000000000000000000000000000000000000000000000000a151f2831383e4243464643423e3831281f150a000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000000000000000000006111c2a36424d5763707d89959fac9f92867b6e61554b4135291d12070000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa49986796d6053463a2d201307000d192633404c5966737f8c99a6ada194877a6e6154473b404c5966737f8c99a6ada194877a6e6154473b2e2114080000000000040a0f1315162020202020201f1e1c180e12181c1f202427292b2c2c2c2b2a29262421201d19130e090300000000000000000000000915222f3b4854606b6f7373737373737374818e9b9e91847873737373737373726d62574a3e3125180b0000000000000105090b0b1313131307060405090b0b131313130706040005090b0b13131313070604000000000000000000000000000000000000000000000000000000000000000003090e14191e202125282a2b2c2c2b2a282521201e1a140f0a030000000000000000000000000c18232f39434b555c676d797d726d625b51493f372d241b1209000009121b242d363f48505a626c717d786d665c544a42382e23170b0000000815212e3b4854616e7b87939393939393877a6d6154473a2e211407000814212e3b4754616e7a8794a1aca093877a6f7c87929fa5a5aaa29f9f9a8d8073675a4d4034271a0d0000000000070f151b1f22222d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2b29251f181008000000000000000000000000000000000814202b37414b53595b606060606060605c59544b4232291f140900000000000000000000000000000000000000000007121d2731404a52585a606060606060605b59534b41372b20140800000006101820262b2e2f3939393939393931302d29221b1209000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008121b242b313638393939393939393433302b241d140b0100000000010911181e2225252d2d2d2d2d2d2726231f19120a02000000000000000000000000000000000000000000000000000000000006131f2c3845515c67767979797979797979756a5e5245382c1f1206000000000006131f2c3845515c67767979797979797979756a5e5245382c1f12060000000000000000000000000000000000000000000000000000010911181e2225252d2d2d2d2524221d1811090000000000000000000000000000000000000000000000000000000005111c27313a434a4e505353504e4a433a31271c11050000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000000000000000000e1a25303b4854606b7683909da8a3998d8073675d5145392e23180c0000000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000c1825323f4b5865727e8b98a5b5a093867a6d6053473a2d201407000d1a2633404d596673808c99a6aea194887b6e6155483b404d596673808c99a6aea194887b6e6155483b2e221508000000000000000306080913131313131312110f0c01070c101314171a1c1e1f201f1f1e1c1a171413110d0801000000000000000000000000000713202c38444f5960636666666666666874818e9b9e9184786b66666666666665625b51463a2e2216090000000000060c111517182020201f141310111517182020201f1413100c111517182020201f1413100c07010000000000000000000000000000000000000000000000000000000000000002080d111414181b1e1f1f201f1e1b191514120e0903000000000000000000000000000007121d273139434b555c676d716c625b51493f372d251b12090000000009121b242d363f48505a626b706d665c544a423830261c11060000000815212e3b4854616e7b87949f9f9f9f94877a6d6154473a2e211407000815222e3b4855616e7b88949f9fa39986796d73808c939fa2aaaaaba69a8d8073675a4d4034271a0d000000000000040a0f131516202020202020202020202020202020202020202020202020202020202020201f1f1c19140d0600000000000000000000000000000000000c1824303c48535d64686c6c6c6c6c6c6c68655d54443b3025190e0000000000000000000000000000000000000000000c18232f3943525c64676c6c6c6c6c6c6c68645d53483c3024180c00000000060e151b1f21222d2d2d2d2d2d2d2524211d1711090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121920262a2c2c2d2d2d2d2d2d2726241f1a130b0200000000000000070d121618192020202020201a1917130e08000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d798686868686868687796c5f5346392c20130600000000000714202d3a4753606d798686868686868687796c5f5346392c201306000000000000000000000000000000000000000000000000000009131b23292e31323939393932312e29231b13090000000000000000000000000000000000000000000000000000000a16222d38434c545a5d60605d5a544c43382d22160a0000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000000000000000009141f2c38444f5964717e8a96a0ab9f92857a6d60544b4034281d120700000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5ada093877a6d6054473a2d211407000d1a2733404d5a6673808d99a6aea195887b6e6255483b404d5a6673808d99a6aea195887b6e6255483b2f2215080000000000000000000000060606060606050503000000000406070a0d10111213131211100d0a07060401000000000000000000000000000000030f1b27323d474f545659595959595b6874818e9b9e9184786b5e5959595959595751493f35291e1206000000000911181d2124252d2d2d2c201f1c1d2124252d2d2d2c201f1c181d2124252d2d2d2c201f1c18120b030000000000000000000000000000000000000000000000000000000000000000010507080b0e1112131312110f0c0807050200000000000000000000000000000000010b151f273139434b555c6064615a51493f372d251b130900000000000009121b242d363f4850596063605c544a423830261e140a000000000815212e3b4854616e7b8794a1acaca094877a6d6154473a2e211407000915222f3c4855626f7b8893939393928679666c77818c92989b9e9f9f9a8d8073675a4d4034271a0d000000000000000003060809131313131313131313131313131313131313131313131313131313131313131312100d08020000000000000000000000000000000000000e1a2734404d59646f7479797979797979756f65564d42362a1c11060000000000000000000000000000000000000004101c2934404b55646e7479797979797979746f64594d4034271a0e0000000000040a0f13151620202020202020181715110c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080f151a1d1f202020202020201b1a17140e08010000000000000000000106090b0c1313131313130d0c0a070200000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693939393939286796c5f5346392c20130600000000000714202d3a4753606d7a8693939393939286796c5f5346392c2013060000000000000000000000000000000000000000000000000007111b252d343a3e3f464646463f3d3a342d251b110600000000000000000000000000000000000000000000000000010d1a26323e4a545e66696c6c69665e544a3e32261a0d0100000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000000000000000002101b27323d4653606c7884919da8a2978b7f72665c5145392e23180c01000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000c1926333f4c5966727f8c99a5ada094877a6d6154473a2e211407000d1a2734404d5a6773808d9aa6aea295887b6f6255483c404d5a6773808d9aa6aea295887b6f6255483c2f22150900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b16212b353d4448494d4d4d4d4e5b6874818e9b9e9184786b5e514d4d4d4d4c4a463f372d23180d0100000009121b22292e3132393939392d2c29292e3132393939392d2c2923292e3132393939392d2c29231d150d03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d151f273139434b5153575550483f372d251b1309000000000000000009121b242d363f474f545653504a423830261e140c02000000000815212e3b4854616e7b8794a1acaca094877a6d6154473a2e211407000916222f3c4955626f7c86868686868685786c656c777f868b8e919292928d8073675a4d4034271a0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2835414e5b687481868686868686868175695e5246382d22170b0000000000000000000000000000000000000006131f2c3845515c677480868686868686868174685b4e4135281b0e0000000000000003060809131313131313130b0a080500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004090e1112131313131313130e0d0b080300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a86939f9f9f9f9286796c5f5346392c20130600000000000714202d3a4753606d7a86939f9f9f9f9286796c5f5346392c201306000000000000000000000000000000000000000000000000010d18232d373f464a4c535353534b4a463f372d23180c01000000000000000000000000000000000000000000000000030f1c2935424e5a66707679797670665a4e4235291c0f0300000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000000000000000000000000b161f2b3844505b66717e8b96a0a99e9184796d60554b4034281e1308000000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000d192633404c5966737f8c99a6ada194877a6e6154473b2e211408000e1b2734414e5a6774818d9aa7afa295887c6f6255493c414e5a6774818d9aa7afa295887c6f6255493c2f2216090000000000000105080b0b1313131313130c0b090501000000000000000000000000000002070a0c0d1313131313130b0a08050000000000000000040f19232b32383b3c404040414e5b6874818e9b9e9184786b5e51454040403f3e3a352d251b110700000006111b242d343a3d3e464646463a3834343a3d3e464646463a38342f343a3d3e464646463a38342f271f150b0100000000000000000000000000000000000000030608090d1012131312110f0b0707050100000306060b0f121312110e080705020000000000000000000000000000030d151f2731394045474a49453e362d251b13090100000000000000000009121b242d353d44484a46443f3830261e140c0200000000000815212e3b4854616e7b87949f9f9f9f94877a6d6154473a2e211407000815222e3b4754606a767979797979797873695b656c727a7f8284858685837e7164574b3e3124180b00000000000004090c0e0f131313131313131313131313131313131313131313131313131313131313131313100f0d09050000000000000000000000000000000000000916232f3c4956626f7c89959393939392867b6e61544a3f33281c0f030000000000000000000000000000000000000714202d3a4753606d7985929393939395897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050a0d0f101313100f0d0a05000000000000000000000000000714202d3a4753606d7a8693a0acac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0acac9f9286796c5f5346392c20130600000000000000000000000000000000000000000000000006121e29343f4951565860606060585651493f34291d120600000000000000000000000000000000000000000000000003101d2a3643505d69768286868276695d5043362a1d100300000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000000000000000000030f1c28333f4a54606d7884919da7a1968b7e72675c51453a2f24190d030000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000d1a2633404d596673808c99a6aea194887b6e6155483b2e221508000e1b2834414e5b6774818e9aa7afa295897c6f6256493c414e5b6774818e9aa7afa295897c6f6256493c2f2316090000000000060c11151718202020202020181815110c06000000000000000000000000070e1316191a202020202020181715110c060000000000000007111921272c2f30333335414e5b6874818e9b9e9184786b5e514538333332312e29231b130a000000010c18222d363f454a4b535353524745403f454a4b53535352474540393f454a4b535353524745403931271d12070000000000000000000000000000000000040a0f1315161a1d1f1f201f1e1b181413110d080b0f1213181c1f201f1e1b1514120e090300000000000000000000000000030d151f272f34383a3e3c39332c241b130901000000000000000000000009121b232b33383c3d3a38342e261e140c020000000000000815212e3b4854616e7b87939393939393877a6d6154473a2e2114070006131f2b37434e5860626c6c6c6c6c6c6c6961535b60686d72757778797876716c6155493d3023170a0000000002091015191b1c2020202020202020202020202020202020202020202020202020202020202020201d1c1915100a03000000000000000000000000000000000915222e3b4854606a7783909daa9fa3998c7f73665b5044382b1f1409000000000000000000000000000000000006121f2b37434e5864717e8a97a29f9f9d9083776b6054483b2f22150900000000000000000000000000000000000000000406070a0c0f11111213131312110f0d0b070705010000000000000000000000000000000000000000000000000003060809131313131313130b0a08050000000000000000000000000000000000000000000000000000000000000000000000000000000000030a11161a1c1d20201d1c1a16110a0300000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000000000000916222e3a46515b62656c6c6c6c65625b51463a2e22150900000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000000000000000000000b17222d3844505c66717e8a95a0a89e9184796d60564c4135291f14090000000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000d1a2733404d5a6673808d99a6aea195887b6e6255483b2f221508000e1b2835414e5b6874818e9ba7afa396897c706356493d414e5b6874818e9ba7afa396897c706356493d3023160a000000000911171d2124252d2d2d2d2d2d2524221d181109000000000000000000010a12191e2325262d2d2d2d2d2d2524211d17110900000000000000070f161b202223262835414e5b6874818e9b9e9184786b5e5145382b262625221e18110a0100000005111d29343f485056586060605f53514b485056586060605f53514b43485056586060605f53514b43392f23180c00000000000000000000000000000003090e151b1f2222272a2b2c2c2c2a282521201d1913171c1f2024292b2c2c2a2821211e1a140d0500000000000000000000000000030d151d23292c2d31302d28221a1209010000000000000000000000000009111921272c2f302d2b28231c140c02000000000000000815212e3b4854616e7b86868686868686867a6d6154473a2e21140700030f1b27323c464e54556060606060605f5d574950565d6065686b6c6c6b6a64615a5045392d211408000000030c141b212528292d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d292826211b140c0400000000000000000000000000000007131f2c38434e5865727e8b98a2aeab9e9184786c6053463b30251a0e00000000000000000000000000000000000814212e3a47535f6a7683909ca9aea2988b7f7265594f43382c1f1307000000000000000000000000000000000001070c10131417191b1d1e1f20201f1f1e1c1a171413110d0804010000000000000000000000000000000000000000040a0f13151620202020202020181715110c060000000000000000000000000000000000000000000000000000000000000000000000000000040d151c2226292a2d2d2a2926221c150d04000000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000000000000b1825313e4a56626d7279797979726d62564a3d3124180b00000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000000000000000000000000006111c28343f4a54606c7883909da6a1968c7f72685d52453b31261a0c0300000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d9aa6aea295887b6f6255483c2f221509000f1b2835424e5b6875818e9ba8b0a396897d7063564a3d424e5b6875818e9ba8b0a396897d7063564a3d3023170a00000009121b22292d303139393939393932312e29231b120900000000000000000a131c242a2f323339393939393931302d29221b120900000000000000040b0f1315161b2835414e5b6874818e9b9e9184786b5e5145382b1e191816120d0700000000000915212e3a45505a62656c6c6c6c605c55505a62656c6c6c6c605c554b505a62656c6c6c6c605c554b4034291c100400000000000000000000000000060e141a20262b2e2f3336383939383735322e2d2a251e22282b2d313638393937342e2d2a251f170f0500000000000000000000000000030b12181c1f202423211c17100800000000000000000000000000000000080f161c202223201f1c17110a0200000000000000000714202d3a46525e6976797979797979797976685e5246392d20130700000a15202b343c43474953535353535352514c3f444c5254585b5e5f5f5f5d575550483e33281d11050000020c151e262c3134353939393939393939393939393939393939393939393939393939393939393939393635322d261e160c030000000000000000000000000000030f1b27323d4754606d7a85929facaca1968a7d7063574d42362a1c110600000000000000000000000000000004101c2934404b55626e7b88949fabac9f92867a6d6054473d32271b0f03000000000000000000000000000000050b1012181c1f202326282a2b2c2c2c2c2c2a29272421201d1913100d07010000000000000000000000000000000000060e151b1f21222d2d2d2d2d2d2d2524211d171109000000000000000000000000000000000000000000000000000000000000000000000000030d161f272d32353639393635322d271f160d030000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000000000000c1925323f4c5865727f868686867f7265584b3f3225180c00000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000000000000000000000000b17232e3844505b66707d89949fa89e92857a6d60574d42362a1e150a00000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9aa7afa295887c6f6255493c2f221609000f1c2835424f5b6875828e9ba8b0a3968a7d7063574a3d424f5b6875828e9ba8b0a3968a7d7063574a3d3024170a000006111b242d34393d3e4646464646463f3d3a342d241b0b02000000000000030d1c252e353b3f404646464646463e3d39342d241b110600000000000000000307090e1b2835414e5b6874818e9b9e9184786b5e5145382b1e120b0906010000000000000b1724313d4a56626c71797979796d675c56626c71797979796d675c5156626c71797979796d675c5145382c1f1306000000000000000000000000080f181f262a32373b3c40434546464544423e3a3936302a2d3338393e4245464544413b3a36312921170d030000000000000000000000000001070c101314171714110c05000000000000000000000000000000000000050b101316171312100b060000000000000000000005121e2a36424d575e6c6c6c6c6c6c6c6c6c6c5e564c41362a1d11050000040f19222b32373b3c464646464646454441333a4145474b4f51525352504b49453e362c22170c00000009141e2730373d414246464646464646464646464646464646464646464646464646464646464646464643413e3830281e140a0000000000000000000000000000000a16202c3945515d6774818e9aa7b1a89b8f8275695e5246382e23170b00000000000000000000000000000006131f2c3845515c6774808d9aa6b0a79b8e8174685d5245392b21160a0000000000000000000000000000040b10161c1d23292c2d30333537383839393938373633312e2d2a25201d18120b0600000000000000000000000000000006101820262b2e2f3939393939393931302d29221b120900000000000000000000000000000000000000000000000000000000000000000000000a151f2831383e4243464643423e3831281f150a0000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000000000000c1926323f4c5965727f8c93938b7f7265584c3f3225190c00000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000000000000000000000006111c28333f4a54616b76828f99a4a1978d8073695f53463d30261c1106000000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000e1b2834414e5b6774818e9aa7afa295897c6f6256493c2f231609000f1c2936424f5c6975828f9ca8b0a3978a7d7064574a3d424f5c6975828f9ca8b0a3978a7d7064574a3d3124170a00010c17222d363f45494b5353535353534b4a453f372d1d140a0000000000010b151f2e3740474b4d5353535353534b49453e362d22170c00000000000000000000020e1b2835414e5b6874818e9b9e9184786b5e5145382b1e12050000000000000000000b1825323e4b5865717e86868686796d605865717e86868686796d60535865717e86868686796d6053473a2d20140a0000000000000000000000081119212a31363c4347494d5052525352514e4b4746413a36383f44464b4f525352514e4846423b33291f1409000000000000000000000000000000000406070b0a0805000000000000000000000000000000000000000000000407090a070603000000000000000000000000020e1a25303b454d525f60606060606060605f524c443a3025190d0100000007101920272b2e2f393939393939393835272f35393a3f4244454645433e3d39332c241a1006000004101b26303942494d4f535353535353535353535353535353535353535353535353535353535353535353504e49423a30261b1005000000000000000000000000000004111d2935414b55626f7c88959fabac9f92877b6e61544a3f34281c100300000000000000000000000000000714202d3a4753606d7985929eabaca095897c6f63564c413529190f0400000000000000000000000000060b161b21282c2f34383a3d3f42444445464646454442403e3a3936302c29241d17110a02000000000000000000000000040e18222a32373b3c464646464646463e3d39342d241b110600000000000000000000000000000000000000000000000000000000000000000005111c27313a434a4e505353504e4a433a31271c110500000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000000000000c1926333f4c5966727f8c99988c7f7265594c3f3226190c00000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000b17222d38424f59626f7c87939fa99f92867b6e61594f42382e23170c020000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000e1b2835414e5b6874818e9ba7afa396897c706356493d3023160a00101c2936434f5c6976828f9ca9aca4978a7d7164574a3e434f5c6976828f9ca9aca4978a7d7164574a3e3124170b0005111d29343f48505658606060606060585651493f2f261b11060000000007121d27314049525759606060606060585650483e34291d1105000000000000000205070e1b2835414e5b6874818e9b9e9184786b5e5145382b1e12050000000000000000000a1723303d4a5663707d8993988a7d70635763707d8993988a7d7063575663707d8993988a7d7063574a3d31261b0f03000000000000000000060f19232b333b42464e54555a5d5e5f5f5f5d5b5854524c4641424a5053575c5e5f5f5d5b54534d453b31251a0e020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141f29333b42464853535353535353535346413a32281e13080000000000070f151b1f22222d2d2d2d2d2d2c2b281e24292c2d3235383939383731302d28221a12080000000915212c37424b54595c6060606060606060606060606060606060606060606060606060606060606060605c5a544c42382d2115090000000000000000000000000000010d18242f3a47535f6a7683909da9afa3998c7f73665c5044382b1f14090a0a0a0a0a0a0a0a0a0a0a0a0a0a121f2b37434e5864717e8b97a2adaa9d9083776b6054443a2f241907000000000000000000000000020a111721272c3338394045474a4c4e50515253535252514f4d4a4746413a39352f28231c140c0600000000000000000000000a15202a343c434749535353535353534b49453e362d22170c0000000000000000000000000000000000000000000000000000000000000000000a16222d38434c545a5d60605d5a544c43382d22160a00000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000000000000d192633404c5966737f8c99998c7f7266594c3f3326190c00000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000000000000000000000000006111c262f3d47535f6a74818e97a2a3988e82756b60544a3f34281f14090000000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000f1b2835424e5b6875818e9ba8b0a396897d7063564a3d3023170a00101d293643505c6976838f9c9f9f9f978b7e7164584b3e43505c6976838f9c9f9f9f978b7e7164584b3e3125180b000815212d3945505a62646c6c6c6c6c6c65625b5141382d22170b000000000c18232f3943525b63666c6c6c6c6c6c64625a5045392d211508000000000002090e1114141b2835414e5b6874818e9b9e9184786b5e5145382b1e12050000000000000000000815222f3b4855626e7b88959a8d81746758626e7b88959a8d8174675855626e7b88959a8d817467584e43372b1f12060000000000000000030e18222b353d454d53585f6266696b6c6c6b6a6865615e56524c4c545b6064696b6c6c6a67615e574d42362a1e1205000000000000000000000000000000010406070b0e101213131312100e0b07060401000000000000000000000000000000000000000000000000000000000000020d17212930363a3b4646464646464646463936302820160c02000000000000040a0f1315162020202020201f1e1c13191d202125282b2c2c2c2a2423211d171008000000000c1925313d49545d65686c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c69665e54493e3226190d00000000000000000000000000000007131d2b37434e5864717e8b97a2adab9e9184786d6053463b31251a16161616161616161616161616161616212e3a47535f6a7683909ca9aea2988b7f7265594f4332281e13080000000000000000000000030b141c222832383e44484b515356595b5d5e5f5f5f5f5f5d5c5a5754524c47454039342e261e170f07000000000000000000030f1b26323c464e535560606060606060585650483e34291d110500000000000000000000000000000000000000000000000000000000000000000d1a26323e4a545e66696c6c69665e544a3e32261a0d00000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000000000000d1a2633404d596673808c99998c7f7366594c403326190d00000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000000000000000000000000000a141d2b37434e58616d7a85929fa79e93897d70665c50443b30251a0d0300000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000f1c2835424f5b6875828e9ba8b0a3968a7d7063574a3d3024170a00101d2a3643505d6976839093939393938b7e7165584b3e43505d6976839093939393938b7e7165584b3e3225180b000b1724303d4956626c71797979797979726d6253493f33271b0f03000004101c2934404b55636e73797979797979716c6256493d3024170a00000000050d14191e2021272835414e5b6874818e9b9e9184786b5e5145382b1e12050000000000000000000714202d3a4753606d7a86979e9184786a5f606d7a86979e9184786a5f53606d7a86979e9184786a5f53473a2e21150800000000000000000a15202a343d474f575f616a6f7376787979787775716d68615e56565d666c717578797877746e695e53463a2d2114070000000000000000000000000001070d111314181b1d1f1f201f1f1d1b181413110d07010000000000000000000000000000000000000000000000000000000000050f171f252a2d2e39393939393939392e2d2a251e160e0500000000000000000003060809131313131313121210080d111314181c1e1f201f1d181714110c0600000000000e1b2834414d59656f757979797979797979797979797979797979797979797979797979797979797979797670665a4e4135281c0f000000000000000000000000000000010f1b26323c4753606d7985929fabada1968a7d7063574d42362a23232323232323232323232323232323232934404b55626e7b88949fabac9f92867a6d6054473d3221160c0100000000000000000000030c151d262d333d44484f55555c606366686a6b6b6c6c6c6b6a696664615e5653514b443f38302921191007000000000000000006131f2b37434e585f626c6c6c6c6c6c6c64625a5045392d21150800000000000000000000000000000000000000000000000000000000000000000f1c2935424e5a66707679797670665a4e4235291c0f00000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000000000000d1a2733404d5a6673808d99998c807366594d4033261a0d00000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000000000000000000000000000020b1b26323c46525e68727f8c95a0a59d9083786d60574d42362a1f150b01000000000000121f2c3845525f6b7885929eabada194877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000f1c2936424f5c6975828f9ca8b0a3978a7d7064574a3d3124170a00101d2a3743505d6a7683868686868686867f7265584b3f43505d6a7683868686868686867e7265584b3f3225180c000b1825313e4b5864717e8686868686867f72655b5044372b1f150a000006131f2c3845515c6773808686868686867e7164584b3e3125180b000000050e171f252a2d2e342d35414e5b6874818e9b9e9184786b5e5145382b1e120500000000000000000006131f2c3945515d677885929e96887b6f625d677885929e96887b6f62555d677885929e96887b6f6255483c3025190d01000000000000020f1a26313c464f5960696e767c80838585868583817e7a746d68605d686d787e8285868584817b6e6154483b2e211508000000000000000000000002080e13181d202024272a2b2c2d2c2b2a272421201d18130e090300000000000000000000000000000000000000000000000000000000050d141a1e20212d2d2d2d2d2d2d2d21201d19130c05000000000000000000000000000006060606060606050300010406070c0f11121312100b0a0805000000000000000f1c2935424f5c6875828686868686868686868686868686868686868686868686868686868686868686868276695c504336291d10000000000000000000000000000000000a151f2c3845515d6774808d9aa6b0a89c8f8275695e5346382e3030303030303030303030303030303030303845515c6774808d9aa6b0a79b8e8174685d5245392c20130400000000000000000000000b151e272f383f444f54596163676d70727577777879797978777573716d6865605d55504a423b332a22190f06000000000000000815212e3b47535f6a7679797979797979716c6256493d3024170a0000000000000000000000000000000000000000000000000000000000000000101d2a3643505d69768386868376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000000000010d1a2734404d5a6773808d9a998d8073665a4d4033271a0d00000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000000000000000000000000000000a15202a36414c56606d7883909aa4a0958c7f72695e52463e31271d1207000000000000121f2c3845525f6b7885929eabaca194877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000101c2936434f5c6976828f9ca9aca4978a7d7164574a3e3124170b00101c2936424f5b66717679797979797979726d62564a3d424f5b66717679797979797979726d62564a3d3124180b000713202d3a4653606d7984919393939184786c6053463c31261a0f02000714202d3a4753606d7985929393939184796d6053463a2d2013070000020d17202930363a3b413a38414e5b6874818e9b9e9184786b5e5145382b1e120500000000000000000004101d2935404b556a7783909d998c7f7266566a7783909d998c7f726656556a7783909d998c7f7266564c41362a1d110500000000000006121f2b37434e58606b707b82888d9091929292908e8b86817a706b606d7a828a8f91929290897d7063564a3d3023170a00000000000000000000050d14191d24292c2d31343738393939383634312d2c29241d1a140d050000000000000000000000000000000000000000000000000000000002090e12141520202020202020201413110d080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1c2935424f5c6875828f939393939393939393939393939393939393939393939393939393939393938f8276695c504336291d100000000000000000000000000000000004101d2935404b55626e7b88949fabac9f93877b6e61544a3f3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4753606d7985929eabaca095897c6f63564c4135291d11040000000000000000000007121d273039424a505960636b7075797d7f81838485868685858482807d7a76716d67605c544d453c342a21180c030000000000000916222f3c4955626f7c868686868686867e7164584b3e3125180b0000000000000000000000000000000000000000000000000000000000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000000000010e1a2734414d5a6774808d9a9a8d8073675a4d4034271a0d01000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000040d1925303a44515c666f7d88939fa79f92867b6e61594f43392f24180c020000000000121f2c3845525f6b7885929e9f9f9f94877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000101d293643505c6976838f9c9f9f9f978b7e7164584b3e3125180b000e1a26323e4a555f666a6c6c6c6c6c6c6c65625b51453a3e4a555f666a6c6c6c6c6c6c6c65625b51453a2e2215090006131f2c3845515c66727f8c97a2a0958a7d7063584e43372b1e13080714202c38444f5965717e8b97a1a2978c7f72665c5144382c1f1206000009141f29323b4246474d4745404e5b6874818e9b9e9184786b5e5145382b1e1205000000000000000000000c18242f424f5c6875828f9b9c908376685e6875828f9b9c908376685e5c6875828f9b9c908376685e5246392d2013070000000000000814212e3a47535f6a707d858f94999c9e9f9c9b9c9b98928e857d706b75828f949c9e9f9f96897d7063564a3d3023170a000000000000000000080e171e252a2f35393a3e4143454646464543413e3a39352f2a251f170f09000000000000000000000000000000000000000000000000000000000002050708131313131313131307070501000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1c2935424f5c6875828f9b9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9c8f8376695c504336291d1000000000000000000000000000000000000c18242f3947535f6a7683909ca9afa4998c8073665c504949494949494949494949494949494949494949494e5864717e8b97a2adaa9d9083776b6054443a2f24190d01000000000000000000040e18232e39434b545b606b70767d8185898c8e90919292929292908f8d8a86837e79726d665f574e463c332a1e150b0000000000000916222f3c4955626f7c8893939393938b7e7164584b3e3125180b0000000000000000000000000000000000000000000000000000000000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000000000010e1b2734414e5a6774818d9a9a8d8074675a4d4134271a0e01000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000030709090c0c0c0c0c0c0c0c0c0c0c0c0c0c08131e2834404a54606b74818e97a1a2988e81756b61554b4035291e140a0000000000121f2c3845525f6b7885929393939393877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000101d2a3643505d6976839093939393938b7e7165584b3e3225180b000a16222d38434d555b5d60606060606060585651493f3438434d555b5d60606060606060585651493f34291d11050004101c2834404b54606d7a85929fa89c8f82766a5f53473a3025190d0916232f3c4855606b7783909da99f92857a6d60544a4034281c100400020e1925303b444d52545a53514b4e5b6874818e9b9e9184786b5e5145382b1e120500000000000000000000071a2734414d5a6774808d9a9f93867a6d616774808d9a9f93867a6d615a6774808d9a9f93867a6d6154473a2e23180c000000000007131f2c38434e58626e7c8692989fa29f97928f8e8f9196999792877d707d89949ea69e989291897d7063564a3d3023170a00000000000000010a121a202930363a4045474b4e505252535252504e4b4745413a363029211b120a0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1c2935424f5c6875828f939393939393939393939393939393939393939393939393939393939393938f8376695c504336291d10000000000000000000000000000000000007121d2b37434e5864717e8a97a1adab9e9184796d6056565656565656565656565656565656565656565656565f6a7683909ca9aea2988b7f7265594f4332281e1308000000000000000000020c16202834404b555c666c737d838a8e9298999b9d9e9e9f9f9f9e9d9c999993908b857f786e695f584e453c30271d120700000000000916222f3c4955626f7c88959f9f9f978b7e7164584b3e3125180b0000000000000000000000000000000000000000000000000000000000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000000000010e1b2834414e5b6774818e9a9a8d8174675a4e4134271b0e01000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000040b0f1315161919191919191919191919191919191918232e39424f59616d7a85929ea69e938a7d70675d51453c30261c110600000000121f2c3845525f6b7885868686868686867a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000101d2a3743505d6a7683868686868686867e7265584b3f3225180c0005111c27313b434a4f50535353535353534b4a453f372d313b434a4f50535353535353534b4a453f372d23180c0100000c18232e3945515d6773808d98a39f94887c6f62564c41362a1c12121f2b37434e5863707d8995a0a3988c8073675d5142392e23180c000005111e2a36424d565e6167605c554e5b6874818e9b9e9184786b5e5145382b1e1205000000000000000000000c1926323f4c5965727f8c98a4998b7e716465727f8c98a4998b7e71645465727f8c98a4998b7e7164544a4034281c1004000000000915222e3b4854606a76828f98a2a298928b8583828284878c929792857b818e9aa69e948f8684867d7063564a3d3023170a000000000000000a131c242c323b41464b5153575a5d5e5f605f5e5d5a5754514b46423b332d241c140a01000000000000000000000000000000000000000000000000000106090b0c13131313131313090806030000000000000000000000000003060809131313131313130b0b0905010000000000000000000000000000000000000000000f1c2935424f5c6875828686868686868686868686868686868686868686868686868686868686868686868376695c504336291d100000000000000000000000000000000000010f1a26313c4653606d7985929eacada1968a7d70646363636363636363636363636363636363636363636363636e7b88949fabac9f92867a6d6054473d3221160c0100000000000000000008131e28323a45515c676d78808990959b9fa2aaaba39f9d9d9c9d9ea1a9aba49f9d97928b837b6f6a5f574d42392e23180c02000000000916222f3c4955626f7c8895a2aca4978b7e7164584b3e3125180b0000000000000000000000000000000000000000000000000000000000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000000000020e1b2835414e5b6874818e9b9a8e8174675b4e4134281b0e01000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000070f161b20222325252525252525252525252525252525252527303d46525e68717e8a949ea59e9184796d60584e42382e23170b02000000111e2b3744505d6873787979797979797976685e5246392d20140700000000000000000000000000000000000000000000000000000000000000101c2936424f5b66717679797979797979726d62564a3d3124180b00000a151f2931383e4243464646464646463f3d3a342d242931383e4243464646464646463f3d3a342d241b110600000007121d2935414c55616e7b86929fa69a8e8174685e5246392e231814212e3a47535f6a76828f9ca79f92867a6d61554b4030271c120700000714202d3a46525e696e746d675f585b6874818e9b9e9184786b5e5145382b1e1205000000000000000000000b1724313e4a5764717d8a97ab9b8e82756664717d8a97ab9b8e8275665c64717d8a97ab9b8e8275665c5144382c1f1206000000000916232f3c4956626f7c89949fa79f92867e79767576777b7f858f948f8283909daa9c8f82797779796d6053473a2d20140700000000000009121c252e363e444c52555d6064676a6b6c6c6c6b696764605d55524d453f362e261c1309000000000000000000000000000000000000000000000000060d12161819202020202020201615130f0a04000000000000000000040a0f13151620202020202020181715110c0600000000000000000000000000000000000000000e1b2834414d59656f757979797979797979797979797979797979797979797979797979797979797979797670665a4e4135281c0f00000000000000000000000000000000000009151f2c3845515c6673808d9aa4afa99c8f82757070707070707070707070707070707070707070707070707074808d9aa6b0a79b8e8174685d5245392c201304000000000000000000010d1925303a44515b606d79828d929d9fa7a8a19e999992919090919297979b9fa4a9a19e9590857c6f695f544b4034281e1408000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180b0000000000000000000000000000000000000000000000000000000000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000000000020f1b2835424e5b6875818e9b9b8e8174685b4e4135281b0e02000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000007111921272c2f30323232323232323232323232323232323232323235414c56616c75828f98a2a1968d80736a5f544a3f34281d140a0000000f1c2834404c5761686b6c6c6c6c6c6c6c6c5e564c41362a1e1105000000000000000000000000000000000000000000000000000000000000000e1a26323e4a555f666a6c6c6c6c6c6c6c65625b51453a2e2215090000030d171f272d3236373939393939393932312e29231b1f272d3236373939393939393932312e29231b120900000000000d19242f3a46525e6874818e9aa49f92867a6d61544a4034281c1d2a36414c56626e7b88949fa3998d8174685e52433a2f1e150b0000000814212e3b4754616e7b80796f6a605b6874818e9b9e9184786b5e5145382b1e1205000000000000000000000916232f3c4956626f7c8995ab9f9285796d626f7c8995ab9f9285796d60626f7c8995ab9f9285796d6053463a2d201309000000000d1a2733404d5a6673808d99a69f958a7d716d666869696e737a828e938f90959fa298887b6f676d6d675c5145382c1f13060000000000050f1b242e37404850565e61676d71747678797979787674716d67615e57504840382e251b0f06000000000000000000000000000000000000000000010911181e2224252d2d2d2d2d2d2d23221f1b160f0700000000000000070f161b1f22232d2d2d2d2d2d2d2524211d171109000000000000000000000000000000000000000c1925313d49545d65686c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c69665e54493e3226190d00000000000000000000000000000000000004101c2834404b54616e7b87939facac9f93877d7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7d85929fabaca095897c6f63564c4135291d110400000000000000000005111d2935414c56626d75818e949ca4aba39f96918c88868483838485878a8f939a9fa7a79f9791857b6e665c51453b3025190d000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180b0000000000000000000000000000000000000000000000000000000000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000000000020f1c2835424f5b6875828e9b9b8e8175685b4e4235281b0f02000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000040f19232b32383b3c3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f44505a616e7b86929fa69f92877c6f665c50443c2f261b110600000c18242f3b454f575d5f606060606060605f524c443b3025190e02000000000000000000000000000000000000000000000000000000000000000a16222d38434d555b5d60606060606060585651493f34291d1105000000040d151c2226292a2d2d2d2d2d2d2d2524221d1811151c2226292a2d2d2d2d2d2d2d2524221d18110900000000000008131e2a36414d56626e7b87939fa3988c7f73665c5144382c1f202d3946525e6874818e9aa69f92877b6e61564c4131281d0c030000000815212e3b4854616e7b87837c726c656874818e9b9e9184786b5e5145382b1e1205000000000000000000000814212e3b4754616e7a8799a3a297897c70636e7a8799a3a297897c7063616e7a8799a3a297897c706356493d31261a0e02000000101d293643505c6976838f9ca99d9083766c605c54575e61686d78818e949d9fa79f9285796a5f60605c554b4034291c100400000000030d17212d364049515a61686e747a7e8183858586858583817e7a746e69625a524a40372d21180e03000000000000000000000000000000000000000009131b23292e3132393939393939392f2e2b2720191007000000000007101920272b2e2f3939393939393932312e29221b12090000000000000000000000000000000000000915212c37424b54595c6060606060606060606060606060606060606060606060606060606060606060605c5a544c42382d211509000000000000000000000000000000000000000c18232e3946535f6976828f9ca9afa499938a89898989898989898989898989898989898989898989898989899297a2adaa9d9084776b6054443a2f24190d010000000000000000000713202d3946525e68727f8b939ea6aba399928c84807c7977767677787a7e828790959ea5a9a1979083796d60564c41362a1c11060000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180b0000000000000000000000000000000000000000000000000000000000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000000000020f1c2935424f5c6875828f9b9b8e8275685b4f4235281c0f02000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000203101d2a3643505d69768390908376695d5043362a1d10030200000000000000000b16212b353d4448494c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c525e69727f8b949fa3999083786d60574d41382d22170b000007131e29333d454c5052535353535353535346413b32291e1408000000000000000000000000000000000000000000000000000000000000000005111c27313b434a4f50535353535353534b4a453f372d23180c0100000000030a11161a1c1d20202020202020181815110c060a11161a1c1d20202020202020181815110c0600000000000000010e1925303b47535f6975828f9ba69e9184796d6053463d32272834404b55616d7a86929fa69b8e8175695f53443a301f160c000000000815212e3b4854616e7b8790867f776e6974818e9b9e9184786b5e5145382b1e1205000000000000000000000613202d394653606c7986929fa99a8d8073676c7986929fa99a8d807367606c7986929fa99a8d807367574d42372b1e1206000000111e2b3744515e6a7784919da6998d80736659504a4d52565e666d78829099a3aa9e9184776b585353514b43392f23180c000000000009141f29333f48515b636c717a80868a8d909192939291908d8a86817b716d645c52493f332a2015090000000000000000000000000000000000000009121b252d343a3e3f464646464646463c3b38322b22190f04000000040f19222b32383b3c464646464646463e3d3a342d241b1108000000000000000000000000000000000004101b26303942494d4f535353535353535353535353535353535353535353535353535353535353535353504e49423a30261b10050000000000000000000000000000000000000007121d2a36424d5764707d8a96a1adaba49f9796969696969696969696969696969696969696969696969696969fa2a9aea2988b7f7265594f4332281e130800000000000000000003101c28343f4a54616d7a85929fa5aea39992877f79736f6d666a696a686e71757c838f939ea7a9a0958c8073685e5246382d22170b0000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180b0204050606060504020000000000000000000000000000000000000000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000000000000000000000030f1c2936424f5c6975828f9c9b8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000050a0f12101d2a3643505d69768390908376695d5043362a1d10120f0a050000000000030f1b27323d474f54565858585858585858585858585858585858585858585858585857606c77828f97a2a0958c7f72695f53493f33271b0f0300020d17212b333b404445464646464646463b3936302920170d020000000000000000000000000000000000000000000000000000000000000000000a151f2931383e4243464646464646463f3d3a342d241b110600000000000000050a0e1010131313131313130c0b0905010000050a0e1010131313131313130c0b09050100000000000000000008141f2b37424d57626f7c89949fa1978a7e7164594f44382c2c3845515c67737f8c98a39f94887c6f62574d4232291e0d04000000000815212e3b4854616e7b8798928c827b7174818e9b9e9184786b5e5145382b1e12050000000000000000000005121f2b3744505b657784919eaa9d91847769657784919eaa9d918477695f657784919eaa9d918477695f53473a2d211408000000121e2b3845515e6b7884919ea5988b7e7265584b3f42464c545c666f7c87929faa9d9084776a5d514745403931271d120700000000020e1a25313b45505a636d737e858d92989a9d9a9998999a9c9a98928d867e736e645b51463c31261a0f04000000000000000000000000000000000008111a242d373f464a4c535353535353534947433d342b20160a0000000a16202b343d434749535353535353534b4a453f362d241a1107000000000000000000000000000000000009141e2730373d414246464646464646464646464646464646464646464646464646464646464646464643413e3830281e140a0000000000000000000000000000000000000000000e1a26313b4653606d7984919eabb5afaca3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3abadb3ac9f92867a6d6054473d3221160c0100000000000000000006121f2b3844505c6673808d97a2aba79f92877d726d6762605c545d565e61646a6f79818f95a0aba79f92867a6e61544a3f33281c0f0300000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180c0e101213131312100e0b08070502000000000000000000000000000000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000000000003101c2936434f5c6976828f9c9c8f8275695c4f4236291c0f03000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000010910161b1e20202a3643505d69768390908376695d5043362a20201e1b161009010000000713202c38444f596063656565656565656565656565656565656565656565656565656565656e7b85929fa79f92867b6e655b5044372b1f12050000060f1921292f343738393939393939392e2d2a251e170e0500000000000000000000000000000000000000000000000000000000000000000000030d171f272d3236373939393939393932312e29231b12090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e1a26313c4854606a7683909ca79d9083776b6054483b312d3a4653606d7985919ea79c8f82766a5f54453b3120170d00000000000815212e3b4854616e7b879298948f857e74818e9b9e9184786b5e5145382b1e120500000000000000000000030f1b27333f49536976838f9ca9a096887b6e6976838f9ca9a096887b6e616976838f9ca9a096887b6e6155483b2f24190d010000111e2a3744515d6a7784909da5988b7f7265544a413d3b424b545f6a75828f9ca89d9084776a5d514438342f271f150b010000000005121e2a36424d57626c737f8a92979f9f97918e8c8b8c8e91969e9f98928b80736d62584e43372b21160b0000000000000000000000000000000007101a232c363f495156586060606060606056544e463d32271b0f0300030f1b27323d464e545660606060606060585650483f362c2319100700000000000000000000000000000000020c151e262c3134353939393939393939393939393939393939393939393939393939393939393939393635322d261e160c0300000000000000000000000000000000000000000009141f2c3844505c6673808c99a3afbbb9b1acaa9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa7a9afb8bab1a79b8e8174685d5245392c201304000000000000000000000713202d3a4653606d7985929b9d9e9f958b7e716b605c5553514a504c5254585f676d78839099a3aea2988c8073665b5044382b1f120600000916222f3c4955626f7c8895a2afa4978b7e7164584b3e312518191b1d1f1f201f1f1d1b181414110e080200000000000000000000000000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000000000003101d293643505c6976838f9c9c8f8276695c4f4336291c1003000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000010a131b21272b2d2d2d3643505d69768390908376695d5043362d2d2d2b27211b130a0100000915222f3b4854606b6f7272727272727272727272727272727272727272727272727272727272727e8b97a1a3989082776c605346392d201306000000070f171e24282b2c2d2d2d2d2d2d2d21201e19140d05000000000000000000000000000000000000000000000000000000000000000000000000040d151c2226292a2d2d2d2d2d2d2d2524221d181109000000000000000000000105070810101010101010101010101010101010101010101008070501000000000000000000000000000000000915202c38434e5863707d8a95a0a095897c6f63574d423638444f5964717e8b97a1a095897d7063584e43332a1f0e0500000000000613202d394653606c787f86909597928a81818e9b9e9184786b5e5145382b1e120500000000000000000000000b17222d414e5b6874818e9ba7a8988c7f726874818e9ba7a8988c7f72656874818e9ba7a8988c7f7265554c4135291d11040000101c2936434f5c6976828f9ca79a8d8074665c524c4a4847464e5865717e8b98a49d9084776a5d51443729231d150d0300000000000714212d3a46535e69717e8b919fa297928b85817f7f8081848a9196a09f928c7f726a5f53473d32271b10010000000000000000000000000000061019222c353e48515b62656c6c6c6c6c6c6c6260584e43382b1f13060006131f2b38434e5860626c6c6c6c6c6c6c65625a50483e352b22190f0600000000000000000000000000000000030c141b212528292d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d292826211b140c040000000000000000000000000000000000000000000003101c28343f4a54616e7b87929facb9b1a7a0939393939393939393939393939393939393939393939b9ea5afb8aca095897c6f63564c4135291d1104000000000000000000000a1623303d495663707c898c8e9092979083786c6059514b464440434146474e555d666f7c86929facaa9e9184786c605346392d20130600000916222f3c4955626f7c8895a2afa4978b7e7164584b3e31252225282a2b2c2d2c2b2a282521201e19140f0a040000000000000000000000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000000000003101d2a3643505d697683909c9c8f8376695c504336291d1003000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000009131c252c33373939393943505d69768390908376695d50433939393937332c251c13090000091623303c4956636f7c7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f85919eaa9f948b7f7265584b3f3225180c00000000060d13181c1e1f202020202020201414110e08020000000000000000000000000000000000000000000000000000000000000000000000000000030a11161a1c1d20202020202020181815110c0600000000000000000002080d1114141c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1414110d08020000000000000000000000000000030f1b27323d4653606c7884919da79b8f8275695f53463a3c4854606b7783909da89d9083776b6054463c3221180e00000000000006121f2b3844505b666c727c838c9299938e8e939e9e9184786b5e5145382b1e12050000000000000000000000061a2633404d596673808c99a6a99c8f82766773808c99a6a99c8f8276676673808c99a6a99c8f8276675d5145392c20130600000c1926333f4c5966727f8c99a59e9184796d605d5656555453505663707c8996a39d9084776a5d5144372a18120b03000000000006121f2b37434e58616e7b86929fa29792857e787473727374787d849095a09f92867c6e62594f44382c1e130800000000000000000000000000060f18222b343e47505a626d72797979797979796f6a6054473b2e221508000815222e3b4754606a6f79797979797979716c625a50473d342b21180f050000000000000000000000000000000002091015191b1c2020202020202020202020202020202020202020202020202020202020202020201d1c1915100a030000000000000000000000000000000000000000000000000c17232e3846525e6975828f9ca8b2aca095898686868686868686868686868686868686868686868e939ea9b4aa9d9084776b6054443a2f24190d01000000000000000000000814212e3b4754616e7b7e7f81838587887e71655b5045403a38343036393c434b545f6a75818e9baaada196897c6f6256493c2f23160600000916222f3c4955626f7c8895a2afa4978b7e7164584b3e312d2e32353738393939383735312e2d2a251f1b150d0701000000000000000000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000000000004101d2a3743505d6a7683909d9c908376695d5043362a1d1003000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000005101b252e373e434646464646505d69768390908376695d504646464646433e372e251b1005000e1b2734414e5a6774808b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b9197a1ada69b8e8175685b4f4235281c0f000000000002070c0f11121313131313131308070502000000000000000000000000000000000000000000000000000000000000000000000000000000000000050a0e1010131313131313130c0b090501000000000000000000050d14191e202129292929292929292929292929292929292929292921201e19140d0500000000000000000000000000000a161f2b3744505b65717e8b96a19f93877b6e61554c41424e5763707d8995a0a0968a7e7164594f44342a200f06000000000000030f1c28333f4a545b606a6e787f8690959b9b9ea59e9184786b5e5145382b1e120500000000000000000000000b1825323e4b5865717e8b98a4ac9f92867a6d717e8b98a4ac9f92867a6d65717e8b98a4ac9f92867a6d6054473a2d22170b00000915222f3c4855626f7c88939ea0968c7f746d6865636261605c5f626f7b8895a29d9084776a5d5144372a1e07010000000000000815212e3a47535f6a76828f98a29f92857b716c66666566656c707a839099a3989083766b6054483a2f24190d010000000000000000000000050e17212a343d474f59616c727f868686868686867c6f6256493c2f231609000916232f3c4956626f7c868686868686867e716c61594f463c332a21170e05000000000000000000000000000000000004090c0e0f131313131313131313131313131313131313131313131313131313131313131313100f0d0905000000000000000000000000000000000000000000000000000006111c2a36424d5763707d8a96a1acaa9d9083797979797979797979797979797979797979797979818e9ba7aea2988b7f7265594f4332281e130800000000000000000000000714202d3a46525e696e71737476787a7c796d6053493f46464544423f3b3a39424e5863707d8998a2aea8998c7f7266594c3f2d22170b00000916222f3c4955626f7c8895a2afa4978b7e7164584b3e373a3b3f4143454646464543413e3b3936302b272018130c040000000000000000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000000000004111d2a3744505d6a7783909d9d9083766a5d5043372a1d1004000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000a16212c3740494f5353535353535d69768390908376695d5353535353534f4940372c21160a000e1b2734414e5a6774818d9898989898989898989898989898989898989898989898989898989898989ea1a9b3a89b8e8175685b4f4235281c0f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e171e252a2d2e3636363636363636363636363636363636363636362e2d2a251e170e0500000000000000000000000000030f1b27333f4953606d7984919ea4998d8074675d514547535f6a75828f9ca79e9184786d6053463d3320190e00000000000000000b17222d38424a50585f666d727c838c9299a0a79e9184786b5e5145382b1e120500000000000000000000000a1723303d4a5663707d8996a3aea3998a7d71707d8996a3aea3998a7d7164707d8996a3aea3998a7d7164544a3f33281c0f03000815212e3a47535f6a75828f97a29c918c807a7572706e6d6d666c6c6f7b8895a29d9084776a5d5144372a1e1104000000000003101c28343f4a54626f7c88949fa0958a7e7169605b5458535b60686e7b86929f9f95897d7063564c4135291d110400000000000000000000040d172029333c464f59616b717e88939393939791847a6d6154473a2e211407000714212e3a4754616d7a84919793939392877e706b60584e453c332920160d0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1a25303b4653606c7884919eabaca095897c6f6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6d7a86929facac9f92867a6d6054473d3221160c01000000000000000000000005111e2a36424d575e616466686a686d6f6d675d515152535352514e4c4847423c4653606c7885929faba89b8f82756853493f33271b0f03000916222f3c4955626f7c8895a2afa4978b7e7164584b3e4246484c4e505252535252504e4b4746413b373229241d160d0500000000000000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000000000004111e2a3744515d6a7784909d9d9083776a5d5044372a1d1104000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000f1b27333e49525a5f60606060606069768390908376696060606060605f5a52493e33271b0f000e1b2734414e5a6774818d9aa5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5abadb3aca89b8e8275685b4f4235281c0f00000000000000020507080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0b0906010000000000000000000000000000000000000000000000020d1720293036393b4343434343434343434343434343434343434343433b3936302920170d02000000000000000000000000000b17222d3844515c66727f8c97a29f92857a6d60544a4c56626e7b87939fa1978b7e72665c5044382b1f1207000000000000000006111c262f383f444e545c606a6f788087909593939184786b5e5145382b1e120500000000000000000000000815222f3b4855626e7b8895a99f9f9b8e81746e7b8895a99f9f9b8e8174666e7b8895a99f9f9b8e8174665b5044382b1f12060006121f2b37434e58616e7b8592979f9c928d86827f7d7b7a79797978787c8895a29d9084776a5d5144372a1e1104000000000006121f2b3844505c6674818d9aa69d9083786c6057504a4c4950565f6974818d9aa79b8e8175685d5245392c201306000000000000000000030d161f29323b454e58606b707d87929aa4a29791857b6e685e5246392d201307000713202d3946525e686e7b859197a2a39992867d706a60574e453b32281f160c030000000000000000000000000000060a0e1011131313131313130b0a08080b0d0e131313131313130e0d0b07030000000000000000000000000000000000000000000000000000000000000000000000000000000009141f2b3844505b66727f8c99a3aea79a8d8174675c606060606060606060606060605765717e8b98a2aea79b8e8174685d5245392c201304000000000000000000000000020e1a25303b454d525457595b565d6062605d555c5e5f5f5f5f5d5b5955534d4644505b6576838f9ca9aa9e918477655b5044372b1f1205000916222f3c4955626f7c8895a2afa4978b7e7164584b464d5355585b5d5e5f605f5e5d5b5854524d47433d352f281f170f05000000000000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000000000004111e2b3744515e6a7784919d9d9084776a5d5144372a1e1104000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000121e2b37434f5a646c6c6c6c6c6c6c6c7683909083766c6c6c6c6c6c6c6c645a4f43372b1e12000e1b2734414e5a6774818d9a9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9b8e8275685b4f4235281c0f000000000003090e12141519191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191816120d070000000000000000000000000000000000000000000008141e29323b4146474f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4746413b32291e14080000000000000000000000000006111b2834404a54606d7a85929fa2988b7f72665b50525e6874818d9aa49e9285796d60544a3f34281c10030000000000000000000a141d262d333c424a50585f666d737c838686868684786b5e5145382b1e120500000000000000000000000714202d3a4753606d7a8697939393939285796d7a8697939393939285796c6d7a8697939393939285796c605346392d20130600030f1b26313c46535e696f7c858f949c9f98928f8c898887868685858584919eaa9d9084776a5d5144372a1e110400000000000713202d3a4653606d7885929fa9988b7f72655b50443f3f3f444d57626f7c8897a19f92867a6d6054473a2d2114070000000000000000030c151f28313b444d575f6a6f7d869299a3a29892857c6f695f564c4135291d11050005111d2935414c565f696f7c859298a2a39892867c6f6a5f574d443a31281e150c020000000000000000000000040b11161a1d1e2020202020202018171514171a1b202020202020201a1a17130e08010000000000000000000000000000000000000000000000000000000000000000000000000000030f1c28333f4a54616e7a86929facab9f9285796d60535353535353535353535353535f697683909caaaca095897c6f63564c4135291d11040000000000000000000000000009141f29333b4246474a4c4e4c52545c606366696b6c6c6c6b6a6865625f5753504a536773808d9aa6ac9f9286796c605346392d201306000916222f3c4955626f7c8895a2afa4978b7e7164585053575f6165686a6b6c6c6c6b6a6864615e56544e45403a312921170f050000000000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000000000005111e2b3844515e6b7784919e9d9184776a5e5144372b1e1104000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000013202d3946535f6c767979797979797979839090837979797979797979766c5f5346392d2013000e1b2734414e5a6774808d9393939393939393939393939393939393939393939393939393939393939393939393938e8275685b4f4235281c0f00000000060d141a1e2122262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262525221e1811090100000000000000000000000000000000000000010d1925303b444c52545c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c54524c443b3025190d01000000000000000000000000000c18232e3945515d6773808d98a39e9184786c605354616d7a86929fa2988c7f73675c5142382e23170b00000000000000000000020b141c222830383f444e545c606a6f77797979797872685c5043372a1d1104000000000000000000000006131f2c3945515d677885868686868686867c6f7885868686868686867c6f677885868686868686867c6f6256493c2f23160900000a15202a36424d57606a6f7b828a8f9299999b9896959499929292919196a1aa9d9084776a5d5144372a1e110400000000000915222f3c4855626f7c8897a2a197887b6e6153493f332d333b4653606c7985929ea399897d706356493d3023160a00000000000000020b151e27313a434c565f696f7c859298a2a39992867d6f6a5f574d443a3025190d0100010d1925303a444d575f6a6f7d869299a3a29892857c6e695e564c433a30271e140a00000000000000000000050d151c2227292a2d2d2d2d2d2d2d2524211f2426272d2d2d2d2d2d2d2726231f19120b0200000000000000000000000000000000000000000000000000000000000000000000000000000b17222d3846525e6875828e9ba8ada2978a7e7164574d42464646464646463f4a54626e7b88949fabaa9d9084776b6054443a2f24190d0100000000000000000000000000020d17202930363a3b404850565d60666d70737677787979787775726e6964605c545966727f8c99a5aea399877a6d6154473a2e211407000916222f3c4955626f7c8895a2afa4978b7e7164545c6064696e72747678797979787674716e68626058514b433b332921170d0300000000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000000000005121e2b3845515e6b7884919e9e9184776b5e5144382b1e1105000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000013202d394653606c798686868686868686909494908686868686868686796c605346392d2013000e1b2734414e5a67748086868686868686868686868686868686868686868686868686868686868686868686868686868175685b4f4235281c0f000000060f181f262a2d2e3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232312e29231b13090000000000000000000000000000000000000005111e2a36414c565e61696969696969696969696969696969696969696969615e564c41362a1e11050000000000000000000000000007121c2935414b55616e7a86929fa0968a7d7064585c66737f8c98a29f92857a6d60554b4030261c11060000000000000000000000020a11171e262e343c424a51585f626a6c6c6c6c6b6860564b3f33271b0f02000000000000000000000004101d2935404b55687378797979797979796f6a7378797979797979796f6a687378797979797979796f6a6054483b2e2215090000030e1a25313b454e5860696e767d8286898c8e8f90909191919292929399a4aa9d9084776a5d5144372a1e110400000000000b1825323e4b5865717e8b98a99e928578695f5341382d222b3744505b6575828f9cab998c7f7266594c3f3326190c000000000000000a141d263039434c565e686e7b859197a2a49a92877d706b60584e453b32281e130800000008131e28323b454e58606b707d879299a4a19791847b6e685e554b433930261c11060000000000000000040d171f272e3336373939393939393931302d2b303334393939393939393433302b241d140b010000000000000000000000000000000000000000000000000000000000000000000000000006111c2a36414c5663707d8996a0aca99c8f8276695e5246382d393939393844505c6673808d99a6aea2988b7f7265594f4332281e1308000000000000000000000000000000050e171f252a38404a525a61686d73797d8082848586868584817f7b77716d66605865717e8b98a4b4ab94887b6e6155483b2e221508000916222f3c4955626f7c8895a2afa4978b7e716460666d71777b7f8183858586858583817e7b756f6a605d554d453b33291f150b01000000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000000000005121f2b3845525e6b7885919e9e9184786b5e5145382b1e1205000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000013202d394653606c7986939393939393939c9f9f9c9393939393939386796c605346392d2013000d1a26333f4c58646e747979797979797979797979797979797979797979797979797979797979797979797979797979756f65594d4034271b0e0000030d18212931363a3b3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3e3a342d251b11070000000000000000000000000000000000000714202d3946525e686e7676767676767676767676767676767676767676766e685e5246392d20140700000000000000000000000000000d18242f3a46525e6874818e99a49c9083766a60606d7984919ea3998d8073685d5243392f1e140a0000000000000000000000000000060c141c2328303940444e54555d606060605e5c564e443a2f23170b000000000000000000000000000c18242f39435761686b6c6c6c6c6c6c6c6260686b6c6c6c6c6c6c6c626061686b6c6c6c6c6c6c6c6260584e43382c1f130700000009141f29333c464e575f626c70757a7d7f8182838484848585858687939faa9d9084776a5d5144372a1e110400000000000e1b2734414e5a6774808d9aa79d9083766a574d422f261b27333f49536774808d9aa79b8f8275685c4f4235291c0f00000000000006111b262f38424b555d686e7a849197a1a49f93887e716b61594f463c332a20160c02000000020c16202a333c464f59616b717e87939fa3a19691847a6d675d554b42382e2317130a000000000000000b151f2931393f4244464646464646463e3d39363c3f4146464646464646413f3c362f261d120800000000000000000000000000000000000000000000000000000000000000000000000000000d1925303b4854606b7784919daaac9f93877b6e6153493f33272d2d2d3a4653606d7984919eabac9f92867a6d6054473d3221160c01000000000000000000000000000000020c16202c36404a525c646c717a8085898d8f9192929292908e8c88837e786f6a6264717d8a97a4aea195887b6e6255483b2f221508000916222f3c4955626f7c8895a2afa4978b7e71646a6f787e83888b8e909192939291908e8b86827c746d675e574d453b31271d1207000000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000000000005121f2c3845525f6b7885929e9e9185786b5e5245382b1f1205000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000013202d394653606c798689898989898989909595908989898989898986796c605346392d2013000b1724303c47525c64676c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c68655d53483d3125180c000009141f29333b4246484c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4a463f372d23180d0100000000000000000000000000000000000814212e3b4754616e7a8282828282828282828282828282828282828282827a6e6154473b2e211408000000000000000000000000000007131d2a36414c56626e7b87939f9f94887c6f6264717e8b97a19f92867b6e61564c4131271d0c02000000000000000000000000000000020a11171e272e343c434749515353535351504b443c32281d12070000000000000000000000000007121d2731454f575d5f6060606060606056545d5f606060606060605654575d5f6060606060606056544e463d32271b0f030000020e1a25313b454d5354575a6164686d7072747576777778787878797c8895a29d9084776a5d5144372a1e110400000000000f1c2936424f5c6975828f9ca89b8e8175685b4e42312817222d3f4c5865727f8b98a59d9083766a5d5043372a1d100000000000091217222d38414a545d676d7a839096a0a49c928b7f726c61594f473d342a21180e040000000000040e18212a343d464f59616c727f8b919ca4a0969083796d675c544a3f3428251c1209000000000006111c27313b434a4f51535353535353534b494541474c4e535353535353534d4c4740382f24190e030000000000000000000000000000000000000000000000000000000000000000000000000008141e2c38444f5965727f8c98a3aea4998c7f73655b5044372b1f2a36414c5663707d8a97a1ada79b8e8174685d5245392c2013040000000000000000000000000000000008131e28323e48525c646e737e858d9297999c9e9f9f9f9e9d9b9895908b847c726d64717d8a97a4aea295887b6f6255483c2f221509000916222f3c4955626f7c8895a2afa4978b7e716c717c838b9095989b9d9e9f9f9f9e9d9b99928f8781796e695e574d43392f23180c030000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000000000006121f2c3945525f6c7885929f9e9285786b5f5245382c1f1205000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000a1723303d4a5663707d7d7d7d7d7d7d7d839090837d7d7d7d7d7d7d7d7063564a3d3023170a0008141f2b36414a52585a60606060606060606060606060606060606060606060606060606060606060606060606060605b59534b41372c20140800020e1a26313b454d535559595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959585651493f34291e120600000000000000000000000000000000000815212e3b4854616e7b878f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f877b6e6154483b2e2115080000000000000000000000000000010e1925303b47535f6975828f9ba69b8e8175686b7783909da49a8e8174695e52443a301f150b000000000000000000000000000000000000060c151c232832373b3c444646464645433f3a322a20160c0100000000000000000000000000010b151f333d454c505253535353535353494850525353535353535349484c5052535353535353534948433d342b21160a00000005121e2a36424d575e6163646566676663666869696a6b6b6b6b6c6f7b8895a29d9084776a5d5144372a1e11040000000000101d2a3643505d697682909ca79a8d8174675a4e4134271b25313e4b5864717e8b97a49d9184776a5e5144372b1e110000000008121b2427333f49535c666d79829095a0a59d928c7f736d625a50473e352b22180f0600000000000000060f18222b343d47505a626d727f8c929da59f958f82796d665c504440372e241b1208000000000a16222e39434d555b5d606060606060605856504a52585a606060606060605a58524a40362b1f13070000000000000000000000000000000000000000000000000000000000000000000000000002101c27333d4754616d7a86929facab9e9184786c6053463a2f242d3946525e6875828f9ba9aca095897c6f63564c4135291d1104000000000000000000000000000000010d1925303a44505a646e73808a92979ea1a9a9a8a19e9c9b9a9b9d9f9d9591877f736e717d8a97a4afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afa4978b7e71717e8790959da09e9c9b9a9b9c9ea1a9aba39f9a938e847b6e695e554b4034292015090000000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000000000006131f2c3946525f6c7985929f9f9285786c5f5245392c1f1200000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000916222f3c4854606b70707070707070768390908376707070707070706b6054483c2f22160900030e1a242f3841474c4e53535353535353535353535353535353535353535353535353535353535353535353535353534f4d4841392f251a0f040005121e2a36424d575f616565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565625b51463a2e22160900000000000000000000000000000000000815212e3b4854616e7b87949c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c94877b6e6154483b2e21150800000000000000000000000000000008141e2b37424d57626f7c89949f9f92867b6e707d8995a09f93877c6f62574d4232281e0d0300000000000000000000000000000000000000030b121820262b2e2f37393939393837332f2820180f05000000000000000000000000000000030d212b333b404445464646464646463c3b4445464646464646463c3b404445464646464646463c3b38322b22190f040000000714212d3a46535e696e7071727374736d63545c5d5d5e5e5e5f626f7b8895a29d9084776a5d5144372a1e11040000000000111e2a3744515d6a7783909da69a8d8073675a4d4034271a24313e4a5764717d8a97a49e9185786b5e5245382b1f12000000060f1a242d363f44505b656d78828f949fa69e938d80746d635b51483e352c23191006000000000000000000061019222c353e48515b636d73808d939da59f948f81786d605c52493f362d241a0f060000000e1a27333f4a555f676a6c6c6c6c6c6c6c64625a525c64676c6c6c6c6c6c6c67645c52473c3023170b00000000000000000000000000000000000000000000000000000000000000000000000000000b16202d3946525d6875818e9ba7aca096897c7063554b4135292e3a4754616d7a86929facaa9d9084776b6054443a2f24190d0100000000000000000000000000000005111d2935414c56616c73808d929fa2a9aaa29f9996918f8e8d8e9092999d99928c8073717d8a97a4afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afa4978a7e717e8892999e9896918f8e8d8e8f92979b9fa4aca49f9691847b6e675c51453c31261a0e0200000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000000000000000613202c3946535f6c7986929f9f9285796c5f52462e23170b00000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000713202c38444f5960636363636363697683909083766963636363636360594f44382c201307000008131d262f363c3f41464646464646464646464646464646464646464646464646464646464646464646464646464642403d372f271e130900000714212d3a46535f696e72727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272726d62564a3e3125180b00000000000000000000000000000000000815212e3b4854616e7b8794a1a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a194877b6e6154483b2e211508000000000000000000000000000000020e1a26313c4754606a7683909ca3998c807375828f9ca69c8f82756a5f53453b3020160c00000000000000000000000000000000000000000000070c151b1f22222a2d2d2d2d2b2a27231d160f0600000000000000000000000000000000000f1921292f343738393939393939392f2e3738393939393939392f2e343738393939393939392f2e2c2721191007000000000815212e3b4854616e7b7d7e7f7f807f73665b50505151515256636f7c8996a29c8f8376695c504336291d10030000000000111e2b3844515e6b7784919ea6998c807366594d4033261a24303d4a5763707d8a96a39f9285796c5f5246392c1f130000030e18212c363f48515b606c77818e949ea69e948e81776c605b52493f362c231a1007000000000000000000000007101a232c363f49515b646e74818e939ea69e938e81746e635b51483f362c21180e030000101d2936424f5b67717779797979797979716c6258646e7479797979797979746e64584c3f33261a0d000000000000000000000000000000000000000000000000000000000000000000000000000005111d2935414c56636f7c8995a0aca89b8e8174675d5145392c37434e5865727f8b99a3aea2988b7f7265594f4332281e1308000000000000000000000000000000000713202d3946525e68717e8a929da4ada79f98928d88848281818183868b91959f928b7f727d8a97a4afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afa4978a7e7c86929a96918c8784828181818285898e939aa1a9a8a0969083796d60574e42372b1f140900000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000000000000000000000000000000006121f2b3844505c667986939f9f9286796c5f4a3f34281c1003000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000004101c27333d474f5456565656565d69768390908376695d5656565656544f473d33271c10040000010b141d242b30333439393939393939393939393939393939393939393939393939393939393939393939393939393534312c251e150c0200000815222e3b4855616e7b7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7265584c3f3225190c00000000000000000000000000000000000815212e3b4854616e7b87949f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f94877b6e6154483b2e211508000000000000000000000000000000000915202b38434e5863707d8a95a09e9285797b87939f9f94897c6f63584e4333291f0e040000000000000000000000000000000000000000000000040a0f1315161e202020201e1d1b17120c05000000000000000000000000000000000000070f171e24282b2c2d2d2d2d2d2d2d23222b2c2d2d2d2d2d2d2d2322282b2c2d2d2d2d2d2d2d23221f1b160f0700000000000b1724313e4a5764717d8a8b8b8c8d86786c60544c4a494a4e5764717e8b97a49b8e8275685b4f4235281c0f020000000000111e2a3744515d6a7783909da6998d8073665a4d4033271a24313d4a5764707d8a97a39f9285786c5f5245392c1f1200000915202a333e48505a636d73808d939ea69f948f82786d655b504940372d241a11080000000000000000000000000008111a242d374049525c606d78818f949fa59d938d80736d635a50483e332a2015090000111e2a3744515d6a7783868686868686867e71645a677480868686868686868074675a4d4134271a0e0000000000000000000000000000000000000000000000000000000000000000000000000000010d1924303a4854606b7783909daaac9f92857a6d6054473c313b4754606a7783909dabac9f92867a6d6054473d3221160c0100000000000000000000000000000004111d2935414c56616d7a85929ea4aea79f959086807b7875747475767a7e848c939992867c7d8a97a4afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afa3978a7e839098938d847f7b777574747476797c81889297a1a9a89f958d80736a5f53473b30251a0e02000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000000000000000713202d3a4653606d79869aa49f938679665c5044382b1f1206000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b16212b353d44484a4a4a4a505d69768390908376695d504a4a4a4a48443d352b21160b00000000020b131a1f2426272d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d282725201a130c030000000a1724303d4a5763707d8a8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c86796c5f5346392c201300000000000000000000000000000000000815212e3b4854616e7b8793939393939393939393939393939393939393877b6e6154483b2e21150800000000000000000000000000000000030f1b27323d4653606c7883909da1978b7e808d9aa49c9083766b6054463c3121170d000000000000000000000000000000000000000000000000000003060809111313131312110f0b07010000000000000000000000000000000000000000060d13181c1e1f2020202020202016151e1f2020202020202016151c1e1f202020202020201615130f0a040000000000000814212e3b4754616e7a8793989998897d70665e56565657585f6975818e9ba7998c7f7266594c3f3326190c000000000000101d2a3643505d697682909ca79a8d8174675a4e4134271b24313e4b5764717e8a97a49e9184786b5e5245382b1f1200020f1a26313c46505a626d727f8c929da5a0959082796d665c53493f372e251b120800000000000000000000000000000008121b242e374044505c666d79828f959fa59c928c7f726c625a50463c31261a0f0200111e2a3744515d6a77849093939393938b7e71645a6774818d93939393938d8074675a4d4134271a0e00000000000000000000000000000000000000000000000000000000000000000000000000000008131e2c38434f5965727f8b98a2aea2988b7e7165574d4237404b55626f7c8895a0aca79b8e8174685d5245392c201304000000000000000000000000000000000713202c3945525d6873808d97a1adaa9f9590837b736e6969686768676d71797f87929890837e8a97a4afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afa89b8e818e9593878079726e6969686768656c6f757d859297a2ada79f92877b6e62574d42362a1e1105000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0a49a86796d6053463a2d201307000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000050f19232b33383c3d3d3d43505d69768390908376695d50433d3d3d3c38332b23190f05000000000001080e14171a1b20202020202020202020202020202020202020202020202020202020202020202020202020201c1b18140f0902000000000a1724303d4a5763707d8a96989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989286796c5f5346392c201300000000000000000000000000000000000815212e3b4854616e7b8686868686868686868686868686868686868686867b6e6154483b2e21150800000000000000000000000000000000000a161f2b3744505b65717e8b96a19e918486929fa0958a7d7064594f43342a200f05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002070c0f111213131313131313090911121313131313131309090f1112131313131313130909070300000000000000000714202d3946525e6875828f9aa49d9083786e6865636363656a6e7b86929f9f95887c6f6255483c2f2215090000000000000f1c2935424f5c6875828f9ba79b8e8174685b4e4130251a25323f4b5865727e8b98a59d9083776a5d5144372a1e110006121f2b37434e58616c717f8b919ca4a09690837a6d675d544a41382d251c1309000000000000000000000000000000000009121c2528343f4a545c676d79839095a0a49c918b7e716c61584e43372b1f120600111e2a3744515d6a7784909d9f9f9f978b7e71645a6774818d9a9f9f9f9a8d8074675a4d4134271a0e000000000000000000000000000000000000000000000000000000000000000000000000000000020f1b27323d4754606d7a86929facaa9c908376695f53473845515c6774808d9aa7aca095897c6f63564c4135291d1104000000000000000000000000000000000714212d3a4754606d7a85929fa9aea2989083796e69625f575b5a555d60666d737e8692958f828f9ca8afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afaa9e938e9393877e736d67615e575b5a535b60626b707c85929fa6afa3998e8175695e52463a2d201408000000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0a093867a6d6053473a2d201407000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000005101a232c33393c3d3d3d43505d69768390908376695d50433d3d3d3c39332c231a10050000000000000003080b0d0e13131313131313131313131313131313131313131313131313131313131313131313131313130f0e0c08040000000000000a1724303d4a5763707d8a969f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9286796c5f5346392c201300000000000000000000000000000000000714212d3a46535e697679797979797979797979797979797979797979797976695e53463a2d2114070000000000000000000000000000000000030f1b27333f4953606d7984919ea096919298a29d9184786c6053463d3220180e0000000000000000000000000000000000000000000000000000020507080c1011131311100c0807050200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111e2a36414c56626f7c87939f9f958f827a757270707072757c849198a39a9083766a5f53473a2e2115080000000000000e1b2734414e5a6774818d9aa79c90837669574d42362a1e2733404d5a6673808d99a69c8f8276695c4f4336291c10000814212e3a47535f6a717e87939fa3a19691847a6e685d554b42382f261b130a010000000000000000000000000000000000000a1317232e38424b555d676d7a839196a1a39f92877e716a5f53473a2e21140800111e2a3744515d6a7784909daaaca4978b7e71645a6774818d9aa7aca79a8d8074675a4d4134271a0e000000000000000000000000000000000000000000000000000000000000000000000000000000000a16202c3945515d6774818e9aa7ab9f94887b6e62544a3f4653606d7985929fabaa9d9084776b6054443a3024190d0100000000000000000000000000000004111d2935414c5665727e8b98a2aeab9f92867b6e675e57534d4e4e4b51545c606c717e8a92948f949eaaafa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afafa59e9b958c7f736c605c55524d4e4e49505359606a717e8a949fabab9f92877b6e6154473b3025190e020000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000000000000000714212e3a4754616d7a8794a0a093877a6d6054473a2d211407000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000b17222c363e44494a4a4a4a505d69768390908376695d504a4a4a4a49443e362c22170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a93939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939286796c5f5346392c2013000000000000000000000000000000000005121e2a36424d575e6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c5e574d42362a1e12050000000000000000000000000000000000000b17222d3844515c66727f8c97a2a09e9fa2a1968b7e71655b5044372b1f120600000000000000000000000000000000000000000000000003090e121415191c1e1f1f1e1c191514120e090300000000000000000000000000000000000105090b0b1313131307060400000105090b0b13131313070604000000000000000000000000000000000000000000000000010d1925303b4754606a73808d939f9e948f86817e7d7c7d7f82879196a09f93887d6f63584e43372b1f12060000000000000b1825323e4b5865717e8b98a99e918578695e52463a2d232b37424d576875828e9ba79a8d8074675a4d4134271a0e000815222f3b4855626e7b869299a4a29891847b6e685e564c433930261d140a01000000000000000000000000000000000000000006111c263039434b555e686e7b849197a2a39992867b6e6255483b2f22150800111e2a3744515d6a7784909daab1a4978b7e71645a6774818d9aa7b3a79a8d8074675a4d4134271a0e0000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c55626f7c88959faba6998d8073665c50444d5764717e8a97a2ada2988b7f7265594f4332281e1308000000000000000000000000000000000713202c3945525d687683909caaaea3998c8073695e554d4742414140454a515a616c74808d979c9ea6b0afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afb7afa89d9083786d605a514b464241413f44464f58616c76828f9ca9afa3998c7f7266564c41362a1e11050000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e211407000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000004101c28333e48505557575757575d69768390908376695d57575757575550483e33281c10040000000000000000000000000000000000000000000000000000000000000000050a0d0f101313100f0d0a05000000000000000000000000000000000a1724303d4a5763707d8686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686796c5f5346392c20130000000000000000000000000000000000020e1a25313b454d535f6060606060606060606060606060606060606060605f534d453b31251a0e0200000000000000000000000000000000000006111b2834404a54606d7a85929393939393939184796d6053493f33271b0f030000000000000000000000000000000000000000000002090e141a1e212226292b2c2c2b292521211e1a140e09020000000000000000000000000000060c111517182020201f1413100c070c111517182020201f1413100c07010000000000000000000000000000000000000000000008141e2b38434e58606d78818c92999f98928e8b89898a8b8f92999f98928b7f726b6054463c31261b0f030000000000000915222f3c4855626f7c8897a2a197877b6e6154483d342e303947535f697784919ea7978b7e7164584b3e3125180b000a1723303d4a5663707d8999a3ab9f92857b6f695e564c433a31271e150b02000000000000000000000000000000000000000000000a141e27303a434c565e696e7b85929faba398897d7063564a3d3023170a00111e2a3744515d6a7784909daaa89f978b7e71645a6774818d9aa7a09f9a8d8074675a4d4134271a0e00000000000000000000000000000000000000000000000000000000000000000000000000000000010d19242f3a47545f6a7783909da9ab9e9184796d605346525e6976828f9ca9ac9f92867a6d6054473d3221160c02000000000000000000000000000000000714212d3a4754606d7a86929facac9f92867a6d61574d433b37312f35394044505a606d7a85919eaab0b8afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afb9ada1968a7d70665c5045403936302d33373d46505a63707d8a97a1adab9d908377685e5246392d2014070000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000000000000000815212e3b4854616e7b8794a1a194877a6e6154473b2e211408000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000814202d3944505a616464646464646976839090837669646464646464615a5044392d201408000000000000000000000000000000000000000000000000000000000000030a11161a1c1d20201d1c1a16110a0300000000000000000000000000000916232f3c4855616b707979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979746a5e5145382b1f1200000000000000000000000000000000000009141f29333b4246485353535353535353535353535353535353535353534846423b33291f140900000000000000000000000000000000000000000c18232e3945515d67738086868686868686867f72665c5141382d22170b00000000000000000000000000000000000000000000050d141a1f262a2d2e32363839393836322e2d2a251f19140d050000000000000000000000000911181d2124252d2d2d2c201f1c1812181d2124252d2d2d2c201f1c18120b03000000000000000000000000000000000000000000020f1b27323d44505c666d777f868e92999a9b98969696989b9a98928e867f726d62594f44342a20150a000000000000000713202d3a4653606d7985929fa9988b7e7165594f443f3f3f424c56616e7b8896a0a095877b6e6154483b2e211508000a1723303d4a5663707d8996a1a9a2988b7e716b61584e463c332920160d03000000000000000000000000000000000000000000030c161f29323c454e58606b717e87939fa9a196897d7063564a3d3023170a00101d2a3743505d6a7683909d9e9b93938b7e71645a6773808d9aa19393938d8074675a4d4134271a0e000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e2b37434e5865717e8b97a2ada1968a7d7063564c54616e7b87939faca79b8e8174685d5245392c20130400000000000000000000000000000000000a1724313d4a5764707d8a99a3afa99c8f8276685e52453b312b2624292e343e45525d68727f8c98a2aebaafa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afb7ab9e9184786c60544a3f342e2a2522272b343e4653606c7885919eabac9f93877a6e6154473b2e2114080000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000000000000000000000000000815222e3b4855616e7b8894a1a194877b6e6154483b2e211508000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000a1623303c4955616c70707070707070768390908376707070707070706c6155493c3023160a0000000000000000000000000000000000000000000000000000000000040d151c2226292a2d2d2a2926221c150d04000000000000000000000000000714202c38444f5961636c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6a62584d4135291d10000000000000000000000000000000000000030d17212931363a3b4646464646464646464646464646464646464646463b3a36312921170d03000000000000000000000000000000000000000007121c2935414b55636e737979797979797979726d62544a402f261b1106000000000000000000000000000000000000000000080e171f252a31363a3b3f4344464644433f3b3a36312a251f170e070000000000000000000009121b22292e3132393939392d2c29231d22292e3132393939392d2c29231d150d030000000000000000000000000000000000000000000a162028343f4a545c656c737b82868b8e909192929291908d8b86817b726d625b51473d3222180e040000000000000006121f2b3844505c6674808d9aa69c9083766b6157504a4c4c4e545d68737f8c99a89d908377695e53463a2d211407000814212e3b4754616e7a849197a2aa9f92877d706a60584e453b32281f150c0200000000000000000000000000000000000000020b151e28313b444d57606a707d879299a4a29791847a6e6154473b2e21140800101d293643505c6976828f9c938e8686867e7164596673808c9997898686868074675a4d4134271a0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000010f1b26323c4753606d7985929faba99b8e8275685d525966737f8c99a4aca095897c6f63564c4135291d110400000000000000000000000000000000000d1a2733404d5a6673808d99abb5ab988b7f7265564c4133291f1a181c232935414c56606d7a85929fabb8afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afb6ac9a8d8073665b5042382e231d1a171b222b3744505b6574818e9ba7afa49a8a7e7164574b3e312418070000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000000000010406070c0b0a09080815222f3b4855626e7b8895a1a194887b6e6155483b2e22150808090a0b0c07070501000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000a1724313d4a5764707d7d7d7d7d7d7d7d839191837d7d7d7d7d7d7d7d7064574a3d3124170a00000000000000000000000000000000000000000000000000000000030d161f272d32353639393635322d271f160d0300000000000000000000000004101c28333e474f5557606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060605f5e5850473c3125190d00000000000000000000000000000000000000050f171f252a2d2e3939393939393939393939393939393939393939392e2d2a251f170f05000000000000000000000000000000000000000000000d18242f3a43525c63666c6c6c6c6c6c6c6c65625b5142392e1d140a00000000000000000000000000000000000000000009111a202930363b4246484c4f515252514f4c4846423b36302920191109000000000000000006111b242d343a3d3e464646463a38342f272d343a3d3e464646463a38342f271f150b010000000000000000000000000000000000000000040b17232e38424a535b60696e757a7e8183848586858483817e7a756e69625b51493f352b211006000000000000000003101c28343f4a54626e7b88949e9f94897d7069605c5458595860666d7a85929fa1978b7f7265574d42362a1e1205000714202d3946525e686f7c859298a3a39992867d6f6a5f574d443a31271e140a000000000000000000000000000000000000000a141d27303a434c565f696f7c869299a3a29892857c6f685e5246392d201407000f1c2935424f5c6875828f9b8e81797979716c625965727f8c989285797979746e64584c3f33261a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151f2c3945515d6774808d9aa6ac9f92867a6d6154606b7784919eabaa9d9084776b6054443a3024190d010000000000000000000000000000000003101c28343f4a546975828f9ca8afa399887c6f6255493c3022170d0d1219242f3a45525d6875818e9ba8b4afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afafa49a897d7063544a3f30261c120e0b0f1b27333f495364717e8b97abb5ac9a8d8073675a4d402e23180c0000101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000000001080d11131419181716151415222f3c4855626f7b8895a2a195887b6e6255483b2f22151415161718181413110d080200000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000013202d394653606c79868a8a8a8a8a8a8a919595918a8a8a8a8a8a8a86796c605346392d2013000000000000000000000000000000000000000000000000000000000a151f2831383e4243464643423e3831281f150a000000000000000000000000000b16212c353e44484a5353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353514d473e352a1f14090000000000000000000000000000000000000000050d141a1e21212d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d21211e1a140d05000000000000000000000000000000000000000000000007131d2831404a52585a6060606060606060595751493f30271c0b02000000000000000000000000000000000000000009121b232b333b42464d5355595c5e5f5f5e5c5854534d46423b322b231b1209000000000000010c18222d363f454a4b535353524745403931363f454a4b535353524745403931271d120700000000000000000000000000000000000000000006111c263038414950575f62686d71747778787978787674716d68615f5751493f372d23190f000000000000000000000b17232e3847535f6a75828f97a29e92857b716d66666566676a6f78828f97a29e9285796d6053473b31251a0e020005111e2a36414c565f6a6f7d869299a3a29892857c6e695e564c433930261c1106000000000000000000000000000000000006111c262f39434c565e686e7b859298a2a39992867d6f6a5f564c41362a1e1105000f1b2835424e5b6875818e9b9083766c6c64625a5865727e8b989386796d6c67645c52473c3023170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b55626f7b88949faba3998b7e726557636f7c8996a0aca2988b7f7265594f4332281e1308000000000000000000000000000000000006121f2b3844505c667884919eabac9f9286796d6053463a2d2013070008131e2935414c5664717d8a97a8b2afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afac9f93867a6d6053473a2d20140a00000b17222d3c4855626f7b8899a4afa99c8f837669554b4034281c100400101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000000000040c13191d20212524232221201f222f3c4955626f7c8895a2a295887b6f6255483c2f221f20212223242521201d19130c04000000000000000000000203101d2a3643505d69768390908376695d5043362a1d1003020000000000000013202d394653606c798693939393939393939393939393939393939386796c605346392d201300000000000000000000000000000000000000000000000000000005111c27313a434a4e505353504e4a433a31271c110500000000000000000000000005101a232c33383c3d464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464645413c352c23190e0300000000000000000000000000000000000000000003090e1214152020202020202020202020202020202020202020201514120e0903000000000000000000000000000000000000000000000000010c161f2e3840474b4d53535353535353534c4a463f372d1e150b000000000000000000000000000000000000000007111b242d353d454d52575f6165696b6c6c6b6965615e57524d443d352c241b1107000000000005111d29343f485056586060605f53514b43393f485056586060605f53514b43392f23180c000000000000000000000000000000000000000000000a141e262f383f444d53565e6165676a6b6c6c6c6b696764605d56534d453f372d251b11070000000000000000000006111c2b37434e58616e7b85929fa19792857e797573727274777c838f949f9e938b7e71675d514539291f14090000020e1925303b444e58606b707e87929fa3a29791847b6e685d554b42382e23171309000000000000000000000000000000091317222d38424b555d686e7a849197a1a39f92877d706b60584e443b3025190e02000d1a2633404d596673808c99918477695e5856505663707d89969a877b6e615a58524a40362b1f1307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18242f3947535f6a7683909ca9ab9d908376695f6774818e9aa8ac9f92867a6d6054473d3221160c0200000000000000000000000000000000000713202d3a4653606d7986929facaa9e918477665c5145382c1f130600010d19242f3a4754616d7a8796a0acafa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afaa9e918477675d5145392c20130200000613202d3a4653606d7986939facab9e918478675c5145382c1f130600101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000000040d161e24292c2d3231302f2e2d2c292f3c4956626f7c8995a2a295887b6f6255483c2f292c2d2e2f3031322e2d29241e160e0400000000000000050a0f12101d2a3643505d69768390908376695d5043362a1d10120f0a05000000000013202d394653606c798686868686868686868686868686868686868686796c605346392d20130000000000000000000000000000000000000000000000000000000a16222d38434c545a5d60605d5a544c43382d22160a0000000000000000000000000008111a21282c2f3039393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393835312a231a11070000000000000000000000000000000000000000000000000205070813131313131313131313131313131313131313131308070502000000000000000000000000000000000000000000000000000000040d1c262e363b3f4046464646464646463f3e3a352d251b0c0300000000000000000000000000000000000000050e19232d363e474f575e61696e72767779797776726e69615e564f473e362c23190e04000000000915212e3a45505a62656c6c6c6c605c554b4045505a62656c6c6c6c605c554b4034291c1004000000000000000000000000000000000000000000020c141d262d333c42474c5254585b5d5e5f5f5f5e5d5a5854524c46423b332d251b13090000000000000000000000000f1a26313c46525e69717e8a939aa197928b8581807f7f80848890959f9f948e81756c62554b403529170d0300000008141e29323c464f59616c717e8b919ca4a19691837a6d675d544a3f3428251b12080000000000000000000000000008121b2528333f4a545c676d7a839096a0a49c918b7e716b61594f463c32291e140800000b1724313e4a5764717d8a9796877b6e6154474754616e7a8797978a7e7164544a4740382f24190e030000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2b37434e5864717e8a97a1ab9f95887b6e616d7985929faba79b8e8174685d5245392c2013040000000000000000000000000000000000000815212e3b4854616e7b8799a3afa99c8f827669544b4034281c100400000813202d3946525d687784919eaaafa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afa89c8f827569554b4035291d1104000006131f2c3845515c677884919eabac9f9386796d6053463a2d20130700101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000000010c161f282f35393a3f3e3d3c3b3a38352f3c4956636f7c8996a2a295887c6f6255493c2f34383a3b3c3d3e3f3a3935302820160c0200000000010910161b1e20202a3643505d69768390908376695d5043362a20201e1b1610090100000013202d3946535f6c767979797979797979797979797979797979797979766c5f5346392d20130000000000000000000000000000000000000000000000000000010d1a26323e4a545e66696c6c69665e544a3e32261a0d01000000000000000000000000000810161c2023242d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2b29251f191108000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141c242a2f3233393939393939393932312e29231b130900000000000000000000000000000000000000020c17202b353e48505960696e747b7f8284858584827f7b746e69605950483e352b20160c020000000b1724313d4a56626c71797979796d675c51454a56626c71797979796d675c5145382c1f130600000000000000000000000000000000000000000000020b141b222731373a4146474b4e505152535251504e4b4745413a36312a211b1309010000000000000000000000000a15202a36424d57616c727f8892979f9e97928e8c8b8c8d90959d9f99938d82796d605a5043392f24180500000000020d17202a343d47505a626c737f8c929da5a0959082796d665c504440372d241a1107000000000000000000000007111a242d373f44505b666d79828f95a0a59d928c7f726c62594f463d342a20170d0200000815222f3b4855626e7b8897978b7e7164574d46525e697885929a8e8174665c5044382c261d12080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010f1a26313c4653606d7985929eaca7998c7f7366717d8a98a2aca095897c6f63564c4135291d11040000000000000000000000000000000000000916222f3c4955626f7c8895abb5a79b8e8174685b4e412e23180c00000005111d2935414c566875828f9ba8afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afa79a8d8174675a4e412f24180d01000004101c2834404b556a7683909da9afa49a887b6e6155483b2e22150800101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000008131e28313a4145474c4b4a49484745404443495663707c8996a3a295897c6f625649434440454748494a4b4b4746413a32281e1308000000010a131b21272b2d2d2d3643505d69768390908376695d5043362d2d2d2b27211b130a010000121e2b37434f5a646c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c645a4f43372b1e120000000000000000000000000000000000000000000000000000030f1c2935424e5a66707679797670665a4e4235291c0f030000000000000000000000000000050b1014161720202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020201f1d19140e070000000000000000000000000000000000000000000002070a0c0d131313130e0d0b0803000407090a131313131006050300000000000000000000000000000000000000000000000000000000000000000000020a12191f2326272d2d2d2d2d2d2d2d2625221e181109010000000000000000000000000000000000000008131e29323d47505a626b707b81878c8f919292918f8b87817b706b615a50473d32281e13080000000b1825323e4b5865717e86868686796d6053474b5865717e86868686796d6053473a2d20140a0000000000000000000000000000000000000000000000020a11171f262b3035393a3e4144454546454543413e3a3935302a261f180f090100000000000000000000000000030e1a25303b45505a626d727e858d92989a9c9b9998999a9d9b99938f8780786d675c51483e31281d12070000000000050e18222b353e47505a636d74808d939ea69f948f82786d605c52493f362c23191007000000000000000000071019232c363f49525c606c78818f949fa69e938d80746d635a50473e342b22180e050000000713202d3a4653606d7985929b8f8275695f53464d566975828f9c9184796d6053463e31271d12070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151f2c3845515c6773808d9aa4aa9d9184776a75828e9baaaa9d9084776b6054443a3024190d010000000000000000000000000000000000000a1623303d495663707c8996a3afa69a8d8073675a4d4034271a07000000010d192430414d5a6774808d9aa7afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afa6998c807366594d4033261a07000000000c18232e424f5c6975828f9ca8b6ac95887c6f6255493c2f22160900101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013060000000000000000010d19242f3a434c5154585756555453514b504f4e5663707c8996a3a296897c6f63564e4f504b5153545556575854524c443a3024190d01000009131c252c33373939393943505d69768390908376695d50433939393937332c251c130900000f1b27333e49525a5f60606060606060606060606060606060606060605f5a52493e33271b0f000000000000000000000000000000000000000000000000000003101d2a3643505d69768286868276695d5043362a1d1003000000000000000000000000000000000407090a131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131312100d090300000000000000000000000000000000000000000000070e1316191a202020201b1a18140f0b10141617202020201d13120f0b0600000000000000000000000000000000000000000000000000000000000000000000080e1317191a2020202020202020191816120d070000000000000000000000000000000000000000010d1925303a444f59626c717d858e92999c9a98989a9c99928e857d716c61594f443a3024190d0200000a1723303d4a5663707d8993988a7d7063574a4a5663707d8993988a7d7063574a3d31261b0f03000000000000000000000000000000000000000000000000060b151a1e25292d2e32343738393939383634312d2c29241e1a140e060000000000000000000000000000000009141f29333e48515b626c707a80858a8d909192939291908e8b87827c736d665c554b40362d1f160c01000000000000061019232c353f48515b606c78818e949fa69e948e81746e635b51483e352b22190f0600000000000000060f18222b353e48515b636e74808d939ea69f948e81776c605b51483f352c221910060000000006121f2b3844505c6675818e9b93877b6e61574d4b5864717e8b98978a7e7164594f43392f23180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b55616e7b87939faca095887b6f7985929faca3988b7f7265594f4332281e1308000000000000000000000000000000000000000a1724313d4a5764707d8a97a3b0a6998c807366594d4033261a0d00000000081926323f4c5965727f8c98a5afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afa5988b7f7265584c3f3225190c00000000071b2835424e5b6875818e9ba8b0a396897d7063564a3d3023170a00101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201306000000000000000004111d2935414c555d606564636261605d555d5c5b5a63707d8996a3a396897c70635a5b5c5d555c606162636465615d564c4135291d11050005101b252e373e434646464646505d69768390908376695d504646464646433e372e251b1005000a16212c3740494f535353535353535353535353535353535353535353534f4940372c21160a000000000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a12191f2325262d2d2d2d282724201a161c2022232d2d2d2d2a201f1b17110a0200000000000000000000000000000000000000000000000000000000000000000002070a0c0d13131313131313130c0b09060100000000000000000000000000000000000000000005111d2a36414c56606b717e8792979e96918d8c8c8d91969e9792877e716b60564c4135291e130800000815222f3b4855626e7b88959a8d817467584e4855626e7b88959a8d817467584e43372b1f12060000000000000000000000000000000000000000000000000003090e13191d202125282a2b2c2c2c2b2a272521201d19130e09030000000000000000000000000000000000020d17202c363f49515a61686d73797d8083848586858583817e7b756f6a605c544b43392f241b0d04000000000000000007101a232d364044505b666d79828f95a0a69d938d80736d625a50473d342a21180d040000000000040d18212a343d47505a626d73808c929da59f958f82786d655b50493f362d231a1007000000000003101c28343f4a5463707d8995998d8074695e534754606d7a86929d9083766b61554b4034291c10040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e3946535f6976828f9ca9a7998c7f737d8a98a2ac9f92867a6d6054473d3221160c02000000000000000000000000000000000000000b1724313e4a5764717d8a97a4b0a5998c7f7266594c3f3326190c000000000b1825323e4b5865717e8b98a4afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afa5988b7e7265584b3f3225180c000000010e1b2834414e5b6774818e9aa7b0a3978a7d7064574a3d3124170a00101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000613202c3945515d676d7271706f6e6d676b6a69686766707d8a96a3a396897d70666768696a6b676d6e6f7071726d685d5246392d201307000a16212c3740494f5353535353535d69768390908376695d5353535353534f4940372c21160a0005101b252e373e4346464646464646464646464646464646464646464646433e372e251b1005000000000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000000000000000010406070a0d10111213131211100d0a07060400000000030505060606060606000000000000000000000000000000000000040613131313131313131312110e0904000000000000000a131c242a2f3233393939393433302b2521272c2f3039393939372d2b27221b140b0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3946525e68707d87929997918a84807f7f81848a92979992877d6f685d52453a3024190d01000714202d3a4753606d7a86979e9184786a5f534753606d7a86979e9184786a5f53473a2e21150800000000000000000000000000000000000000000000000000000002080d111314181b1d1e1f201f1e1d1b181413110d08020000000000000000000000000000000000000000050e1a242d373f4850565e61676d70747678797979787774716e68625f58504a423931271d12090000000000000000000008111b2428333f4a545c676d79839096a0a59c928b7f726c61594f463c332a1f160c01000000010c161f2a333c464f59616c727f8b929ca4a0969083796d665c53493f372e241b1108000000000000000b17232e394653606c7883909d92867b6e615a50515d6774818e99958a7d70675c5145382c1f130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2b37424d5764717d8a97a1aa9d908377818e9baaa79b8e8174685d5245392c20130400000000000000000000000000000000000000000b1824313e4b5764717e8a97a4b1a5988c7f7265594c3f3226190c000000000b1824313e4b5764717e8a97a4afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180b000000010e1b2734414e5a6774818d9aa7b1a4978a7e7164574b3e3124180b00101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000714212d3a4754606d797f7e7d7c7b7a79787776757473727d8a97a3a3968a7d72737475767778797a7b7c7d7e7f7a6d6154473a2e211407000f1b27333e49525a5f60606060606069768390908376696060606060605f5a52493e33271b0f000009131c252c33373939393939393939393939393939393939393939393937332c251c130900000000000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000000000000000001080d111314171a1d1e1f1f201f1e1c1a171413100c07010c0f111213131313131309090703000000000000000000000001070c10132020202020202020201f1d1a150f08000000000007121c252e353b3f404646464641403c362f2b33383c3d46464646433937332d261d140a00000000000000000000000000050a0d0f10131313130b0a0805050a0d0f10131313130b0a08050000000000000000000000000000000000000000000000000000000000000005111e2a36414c56616d7a8592999691857e7774727274787e8591969992857a6d60564c4135291d11040006131f2c3945515d677885929e96887b6f625548515d677885929e96887b6f6255483c3025190d0100000000000000000000000000000000000000000000000000000000010507070b0e111212131212100e0b07070401000000000000000000000000000000000000000000000008121b252d363e444c52555c606467696b6c6c6c6b6a6865615e56544e443f3830271f150b000000000000000000000000091217222d38424b555d676e7a849197a1a49f93887e716b60584e453b31281d130700000007131d28313b454e58606b717e87939fa4a19691847a6d675d544a41382d251c1209000000000000000006121f2b3744505b65717e8a94988f82756c61554c55616e7b8692939184796d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1a26313c4653606d7984919eaba095887b85929faba095897c6f63564c4135291d110400000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a5988b7f7265584c3f3225190c000000000b1724313e4a5764717d8a97a4afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afa4988b7e7165584b3e3225180b000000010e1a2734414d5a6774808d9aa7b1a4978b7e7164584b3e3125180b00101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000815212e3b4854616e7b878a898887868584838281807f7e808d9aa7a79a8d807e7f808182838485868788898a887b6e6255483b2f22150800121e2b37434f5a646c6c6c6c6c6c6c6c7683909083766c6c6c6c6c6c6c6c645a4f43372b1e120000010a131b21272b2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2b27211b130a0100000000000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000000003090e13191d20212427292b2b2c2c2c2b292724201f1c18120e181c1e1f2020202020201615130f0a040000000000000000030b12181c1f2d2d2d2d2d2d2d2d2c2c2a2620191209000000020e19242e3740474b4d535353534e4c484138353d44484a535353535046443f382f261b110600000000000000000000030a1016191c1d20202020181714111016191c1d20202020181714110c0600000000000000000000000000000000000000000000000000000000000714202d3946525e6874808d979891847b716c676565656c717b849198978d8073685d5245392c2013070004101d2935404b556a7783909d998c7f7266564c4b556a7783909d998c7f7266564c41362a1d1105000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009131b242c323a41464b5153575a5d5e5f605f5e5d5b5854524d47433c342e261e150d030000000000000000000000000006111c262f39434c555e686e7b859298a2a49a92877d706a5f574d433a2f24180d0100010d18242f3a434d575f6a707d869299a4a29791847b6e685e554b42392f261b130a000000000000000000030f1b27333f4953616c7682868686867d7064574a535e69748086868686807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141f2c3844505c6673808c99a4a79c8f828f97a2aa9d9084776b6054443a3024190d0100000000000000000000000000000000000000000b1824313e4b5764717e8a97a4b1a5988c7f7265594c3f3226190c000000000b1825313e4b5864717e8b97a4afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afa5988b7e7265584b3f3225180c000000010e1b2734414e5a6774818d9aa7b1a4978a7e7164574b3e3124180b00101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130600000000000000000815212e3b4854616e7b8794969594989291908f8e8d8c8b8d929da9a99d928d8b8c8d8e8f9091929894959695887b6e6255483b2f2215080013202d3946535f6c767979797979797979839090837979797979797979766c5f5346392d2013000000010910161b1e202020202020202020202020202020202020202020201e1b161009010000000000000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000000000060e141a1e24292c2d3033363738393939383634302d2c29231d1a24282b2c2d2d2d2d2d2d23221f1b160f07000000000000030d151d23292c3939393939393939393836312b241b1208000007131f2a354049525759606060605b59534a413d474f5456606060605d53504941382d22170b000000000000000000040d151b212628292d2d2d2d2423211d1b212628292d2d2d2d2423211d171008000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a86929f92867c6e69615a59535b60696e7c86929f92867a6d6054473a2d21140700000c18242f424f5c6875828f9b9c908376685e524f5c6875828f9b9c908376685e5246392d20130700000000000000000000000106090b0c13131313130d0c0a070200050a0d0f1013131313130a0907040000000000000000000000000000000000000000000000000000000000000109111a20283035394045474a4d505152535252504e4b4746413b373228231c150c030000000000000000000000000000000a141d27303a434c565f696f7c869299a3a39992867c6f695f554b4035291d11040004111d2935404b555f696f7c869298a3a39892857c6f695e564c433930271d140a01000000000000000000000b17222d3841505a66707679797979706c6155494d57646e7479797979736e63574b3f3225190c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a54616e7b87939fac9e948f949ea9a3988b7f7265594f4332281e13080000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4b0a5998c7f7266594c3f3326190c000000000c1825323f4b5865727e8b98a5afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afa5988b7f7265584c3f3225190c000000010e1b2834414e5b6774818e9aa7b0a4978a7d7164574a3e3124170b00101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693a0acac9f9286796c5f5346392c20130600000000000714202d3a4753606d7a8693a0acac9f9286796c5f5346392c20130600000000000000000815212e3b4854616e7b8794a1a2aaa29f9e9d9c9b9a99989a9da4aeaea49d9a98999a9b9c9d9e9fa2aaa2a195887b6e6255483b2f2215080013202d394653606c798686868686868686909494908686868686868686796c605346392d20130000000000050a0f1213131313131313131313131313131313131313131313120f0a0500000000000000000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000000000070f181f262a2f35393a3d404344454646454443403d3a38342f2a252f3437383939393939392f2e2c272119100700000000010b151f272f343846464646464646464645423d352d24190f04000a16232f3b47525c63666c6c6c6c67645d5346444f5960636c6c6c6c6a605b53493f33271b110600000000000000000d161f262d3235363939393931302d28262d3235363939393931302d28221a12080000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b99998c7f736a5f57504c4950575f6a73808d99988a7e7164574b3e3124180b0000071a2734414d5a6774808d9a9f93867a6d61544d5a6774808d9a9f93867a6d6154473a2e23180c00000000000000000000070d1216181920202020201a1917130e0a1015191c1d2020202020161613100b05000000000000000000000000000000000000000000000000000000000000080e161e25292f34383a3d4143454646464544413e3b3936302b262017110a0300000000000000000000000000000000020b151e28313b444d57606a707d87929aa4a29892857b6e675d5145392c201306000613202c3945515d676e7b859198a2a39992867d6f6a5f574d443a31281e150b02000000000000000000000006111b262f3e48545e66696c6c6c6c64615a504445525c64676c6c6c6c66635b52473b2f23160a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c17232e3846535e6975828f9ca8a69e9c9ea6ac9f92867a6d6054473d3222170b020000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a6998d8073665a4d4033271a0d000000000d192633404c5966737f8c99a6afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afa6998c7f7366594c4033261907000000020f1b2835424e5b6875818e9ba8b0a3978a7d7064574a3d3124170a00101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a86939f9f9f9f9286796c5f5346392c20130600000000000714202d3a4753606d7a86939f9f9f9f9286796c5f5346392c20130600000000000000000815212e3b4854616e7b8794a1aaa29f9e9d9c9b9a999796999ca4aeaea49c999697999a9b9c9d9e9fa2aaa195887b6e6255483b2f2215080013202d394653606c798693939393939393969696969393939393939386796c605346392d2013000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000000030b1218212a31363a4145474a4d505152525352514f4d4a4745403936313a4044454646464646463c3b38322b22190f0400000007121d2731394045535353535353535353524e473f352b201509000c1925323f4b57636e7379797979746f64584e4854606b7079797979766c655b5044382d22170b0000000000000008111f2831383e4243464646463e3d393431383e4243464646463e3d39342c241a100600000000000000000000000000000000000000000000000000000f1c2835424f5b6875818e9b92867a6d61574e453f3f444e58616e7b87969b8e8174685b4e4135281b0e00000c1926323f4c5965727f8c98a4998b7e7164544a5965727f8c98a4998b7e7164544a4034281c100400000000000000010911181e2225262d2d2d2d2d2726231f19141b212628292d2d2d2d2d2322201c160f07000000000000000000000000000000000000000000000000000000000000040c13191d23292c2d31343638393939383735322e2d2a251f1b150c0600000000000000000000000000000000000000030c161f29323c454e58606b717e8893939393979184796d6053473a2d201407000714202d3a4753606d7984919793939392877e706b60584e453b32281f160c03000000000000000000000000000a141d2c36424c545a5c60606060575550483e414a52585a606060605957524940352a1e1307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b151e2834404b545c66707d8a96a3b0aaa8aab0a79b8e8174685d544a3f33281d140a0000000000000000000000000000000000000000000916232f3c4956626f7c8995a2afa79a8d8174675a4e4134271b08000000010e1b2734414e5a6774818d9aa7afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afa79a8d8174675a4e412e23180c000000030f1c2936424f5c6975828f9ca8afa296897c6f6356493c3023160900101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d7a8693939393939286796c5f5346392c20130000000000000714202d3a4753606d7a8693939393939286796c5f5346392c20130600000000000000000815212e3b4854616e7b87949594989291908f8e8d8c8b8a8c929ca8a89c928c8a8b8c8d8e8f90919298949595887b6e6255483b2f2215080013202d394653606c79868989898989898989898989898989898d929386796c605346392d2013000000000000000105070810101010101010101010101010101010101010101008070501000000000000000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000000030c151c2328333b42464c5254575a5c5e5e5f5f5f5e5c5a5753514b46423b454c50525353535353534948433d342b21160a0000000c18232f39434b515f606060606060605f5e5951473d31261a0e000d1a2633404d596673808686868681746a5f534a5663707d8686868683776c6053493f33271b0f030000000000050f1a23313a42494e50535353534b49453e3a42494e50535353534b49453e362c22170c0000000000000000000000000000000000000000000000000000111d2a3744505d6a7783909d908377685e52453c33333c46525e697784919c8f8276695c504336291d1000000b1724313e4a5764717d8a97ab9b8e8275665c515764717d8a97ab9b8e8275665c5144382c1f12060000000000000009131b23292e3132393939393933322f2a241f262d3235363939393939302f2c272119110700000000000000000000000000000000000000000000000000000000000002080d12181c1f2024272a2b2c2d2c2b2a282521201e19140f0a04000000000000000000000000000000000000000000040d17202a333c464f59616c727f868686868686867b6e6154483b2e211508000815212e3b4854616e7b868686868686867e716c61594f463c332920160d040000000000000000000000000000020b1a24313a42494e50535353534a49443e363841474c4e535353534d4b4740372e24190e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d27303945515c666d78808d99a6a3a0a0a1a4a89c8f82756c665b50443e2f261b110600000000000000000000000000000000000000000815222e3b4855616e7b8894a9b3a89b8f8275685c4f423025190e02000005121e2a36424d576976828f9ca9afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afa89b8f827568544a4034281c1004000004101c2934404b556a7683909da9b4aa95887b6f6255483c2f22150900101d2a3643505d69768390908376695d5043362a1d1000000000000000000714202d3a4753606d798686868686868687796c5f5346392c140c0200000000000714202d3a4753606d798686868686868687796c5f5346392c20130600000000000000000815212e3b4854616e7b878a8887868584838281807f7e7d808c99a6a6998c807d7e7f80818283848586878889887b6e6255483b2f221508000a1723303d4a5663707d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d808d9386796c605346392d2013000000000002080d1114141c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1414110d080200000000000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000000000b151e272e343f454d53565d606366696a6b6c6c6c6b696763605c55534d444f575c5f60606060606056544e463d32271b0f030004101c2934404b555c6c6c6c6c6c6c6c6c6c6a63594e42362a1d11000714202d3a4753606d7984919392877b6e62564c54606b75818e98958a7e71655b5044372b1f120600000000000b16212b35424c545a5c6060606057555048424c545a5c60606060575550483e34281d110500000000000000000000000000000000000000000000000000121f2b3845525e6b7885919b8f827568564c41332a2a36424d566976838f9c9184776a5e5144372b1e1100000916232f3c4956626f7c8995ab9f9285796d605356626f7c8995ab9f9285796d6053463a2d20130900000000000007111b252d353a3e3f4646464646403f3b352e2830383e424346464646463d3b38332b23190f050000000000000000000000000000000000000000000000000000000000000001070c101314171a1d1e1f201f1f1d1b181414110e0802000000000000000000000000000000000000000000000000050e18212b343d47505a626d727979797979797976695e53463a2d211407000714212d3a46535e697679797979797979716c625a50473d342a21170e050000000000000000000000000000000008121f2831383e4243464646463d3c39332c2f363c3f4146464646403f3b352e251c1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e3943505a606d78828d929c9c97949394979d9e948e81786c60594f41382d22170b00000000000000000000000000000000000000000714202d3a4753606d7a8697a1ada99d9083766a564d41362a1e110500000714202d3a46525e697885919eabafa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afaa9d908477665c5144382c1f1206000006131f2c3845515c677884919eabaea298877a6d6154473a2e21140700101d2a3643505d69768390908376695d5043362a1d10000000000000000006131f2c3845515c67767979797979797979756a5e52452e261e140a000000000006131f2c3845515c67767979797979797979756a5e5245382c1f120600000000000000000714212d3a4754606d797e7d7c7b7a7978767574737271727f8c98a5a5988b7f7271727374757678797a7b7c7d7e7a6d6054473a2d211407000916222f3c4854606b707070707070707070707070707070727e8b9386796c605346392d201300000000050d14191e202129292929292929292929292929292929292929292921201e19140d05000000000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000000007121c273039404451575f61686d7073767778797978777673706d67615e57505761686b6c6c6c6c6c6c6260584e43382c1f13070006131f2c3845515c67767979797979797979756a5e5245382c1f120006131f2c3845515c67707d8a95998e8275685e524f59616e7b86929d9184786c605346392d22170b0000000004101c27333d47545e66696c6c6c6c64615a5047545e66696c6c6c6c64615a5045392d21140800000000000000000000000000000000000000000000000000121f2b3845525e6b7884919b8f827568564c4135292a36414c566976828f9c9184776a5e5144372b1e1100000814212e3b4754616e7a8799a3a297897c70635654616e7a8799a3a297897c706356493d31261a0e0200000000010d18232d373f464a4c53535353534d4b474038303a42494e5053535353534948443d352b21160b000000000000000000000000000000000000000000000000000000000000000000000406070a0e101213131312110e0b08070502000000000000000000000000000000000000000000000000000000060f19222b353e48515b62656c6c6c6c6c6c6c6c5e574d42362a1e12050005121e2a36424d575e6c6c6c6c6c6c6c6c65625a50473e352b22180f050000000000000000000000000000000000000d161f262d3235363939393931302d2822242b3033343939393933322f2a241c130a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b55616c75818e949c94908a8786878a90959d938d80746b6153493f33271b0f030000000000000000000000000000000000000006131f2c3945515d677885919eabab9f928578685e5246392d20140600000815212e3b4854616e7b8797a1adafa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afac9f9286796d6053463a2d20130900000714202d3a4753606d7a86939facac9f928579685e5246392d20130700101d2a3643505d69768390908376695d5043362a1d10000000000000000004101c2934404b555c6c6c6c6c6c6c6c6c6c6a6359443f3830261c110600000006111c263038404b555c6c6c6c6c6c6c6c6c6c6a63594e42362a1d110400000000000000000613202c3945515d676d71706f6e6d676b6a696867666673808c99a6a6998c7f7366666768696a6b676d6e6f70716d685d5245392c201307000713202c38444f5960636363636363636363636363636365727e8b9386796c605346392d2013000000050e171e252a2d2e3636363636363636363636363636363636363636362e2d2a251e170e050000000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000000000c18232e39424a515b63696e747a7d808384858586858482807d79746e69605b536873787979797979796f6a6054483b2e221509000714202d3a4753606d798686868686868687796c5f5346392c20130004101c2934404b55616b7683909d92867a6e615447525e6974808d9995897d7063544a3f33281c0f030000000714202c38444f5966707679797979716c61554f5966707679797979716c6155493d3023170a00000000000000000000000000000000000000000000000000111d2a3744505d6a7783909d908377685d52463c33333b46525e687784919c8f8276695c504336291d1000000613202d394653606c7986929fa99a8d8073675753606c7986929fa99a8d807367574d42372b1e12060000000006121e29353f4951575960606060605a57524a4038424c545a5c606060606056544f473d33271c10040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007101a232c363f49515658606060606060605f534d453b31251a0e0200020e1a25313b454d535f60606060606060585650483f352c2319100600000000000000000000000000000000000000040d151c212629292d2d2d2d2423201c171a1f2426272d2d2d2d2625231e19120a010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c67717e8b939c928c837d7a797a7e838e939d928a7d70655b5044372b1f12050000000000000000000000000000000000000004101d2935404b55697683909ca9ada297877a6e6154473b2d22170b0107111e2a36414d5665717e8b98a9b3afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afaea399887c6f6255493c31261a0d06030615222f3c4855626f7b8899a4afaa9d9084776a564c41362a1e110500101d2a3643505d69768390908376695d5043362a1d100000000000000000000c18232f39434b515f6060606060606060605f5e504a42382e23170b0000000b17232e38424a505e5f60606060606060605f5e5951473d31261a0200000000000000000004111d2935414b555d6064636261605d555d5c5b5a5a6774818d9aa7a79a8d8074675a5a5b5c5d555d6061626364605d564c4135291d11040004101c27333d474f54565656565656565656565656565865727e8b9386796c605346392d20130000020d1720293036393b4343434343434343434343434343434343434343433b3936302920170d0200000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000004101c2834404a545c606d727b81868a8d8f9191929292918f8d8a85807b726c655c6b78858686868686867c6f6256493c2f231609000714202d3a4753606d7a8693939393939286796c5f5346392c201300000c18232f39434f5964717e8a97998b7f7265554b4d56616e7b87929b8e8175665b5044382b1f12060000000916222f3c4854606b7682868686867e71645754606b7682868686867e7164574b3e3124180b000000000000000000000000000000000000000000000000000f1c2835424f5b6875818e9b92867a6d61574d453f3f454e57616e7a87939b8e8174685b4e4135281b0e000005121f2b3744505b657784919eaa9d918477695f535b657784919eaa9d918477695f53473a2d211408000000000916222e3a46515b62656c6c6c6c6c66635c52473e49545e66696c6c6c6c6c6360594f44382c201307000000000000000000000000000000020507080c10121312110f0c080705020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008111a242d373f464a4c535353535353534846423b33291f140900000009141f29333b424648535353535353534b4a453f362d231a1107000000000000000000000000000000000000000000030a1016191c1d20202020171614100b0e14171a1b202020201a1916130e070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7984919e938c8076706d6d6e7178818e949d9083786c605346392d20130600000000000000000000000000000000000000000c18242f414d5a6774808d9aa7b3a9978a7d706453493f33271b100d1218252d3946525e6875828f9ca8b5afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afb5ab998c7f7266574d42372b1f15120f121c2834404a5465717e8b98abb5a89b8e8175685b4e423025190d0100101d2a3643505d69768390908376695d5043362a1d100000000000000000040c131d2731394045534d545b60666c6c6c6c6c6a5c544a3f34281c10030003101c28343f4a545c6a6c6c6c6c6c66605b544d524e473f352019130c040000000000000000010d18242f3a434b51545857555453514b504f4e4f5b6875828e9ba8a89b8e8175685b4e4e4f504b51535455565854524c443a2f24190d0100000b16212b353d44484a4a4a4a4a4a4a4a4a4a4a4a4b5865727e8b9386796c605346392d2013000008141e29323b4146474f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4746413b32291e140800000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000000030e18212c3844515c666d757f878d9298999c9d9e9f9f9f9e9c9a98928d867f776d666679869293939393887b6e6255483b2f221508000714202d3a4753606d7a86939f9f9f9f9286796c5f5346392c2013000007121d27313e4653606d7984919d908376675d5146535e6975828f9b9285796c605346392d201306000006131f2b37434e5863707d8994998f82766c61555863707d8994998f82766c6155493d3023170a000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b99998c7f72695f57504c4c50575f6a73808c9a988a7e7164574b3e3124180b0000030f1b27333f49536976838f9ca9a096887b6e6155536976838f9ca9a096887b6e6155483b2f24190d010000000b1825313e4a57626d727979797979736e63574b424e5a6670767979797979706b6054483b2f2216090000000000000000000000000003090e121415191d1e1f1f1e1c181414110e080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008121b252d343a3e3f464646464646463b3a36312921170d03000000030d17212931363a3b464646464646463e3d3a342d241b1108000000000000000000000000000000000000000000000000050a0d0f10131313130a0a08040003080b0d0e131313130d0c0a0702000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96998e81756e64616061666d78828f9c95897c6f6256493c2f2316090000000000000000000000000000000000000000071825313e4b5864717e8b97a8b2a79a8d8074655b5044372b221c191d242a36414c56616e7b86929facb9afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afb6a99c908376695f53473c3127201f1c1f232c3844515c6675818e9ba8b3a9988c7f7265594c3f322619080000101d2a3643505d69768390908376695d5043362a1d1000000000000001070e161e2529323b424651575f666c72797979797975665c5044382b1f12060006121f2b3844505c66757979797979726c665f575146423b3229251e160e07010000000000000007131d28313a4145474b4a4948474540434243505c6976838f9ca9a99c8f8276695c4f43424340454748494a4b4745413a32281e1308000000050f19232b33383c3d3d3d3d3d3d3d3d3d3d3d3f4b5865727e8b9386796c605346392d201300010d1925303b444c52545c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c54524c443b3025190d01000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000000915202c38434f59606d78818c92999fa2aaa9a8aaa29f9e9e9e9fa29f98928c81786d6d798699a39f9f94877a6e6154473b2e211408000714202d3a4753606d7a8693a0acac9f9286796c5f5346392c2013000008121d262c3844505c6674818e9b92867a6d6053474d5765717e8b9897887b6e6255483b2f22150800000815212e3b47535f6a7683909d92867b6e615a535f6a7683909d92867b6e615a5045392d211408000000000000000000000000000000000000000000000000000814212e3b4754616e7a86929f92857b6e69615a59595a61696e7c86929f92867a6d6154473a2e2114070000000b17222d414e5b6874818e9ba7a8988c7f7265555b6874818e9ba7a8988c7f7265554c4135291d11040000000c1926323f4c5965727f86868686868073665a4d43505c69768286868686867d706356493d3023160a000000000000000000000002080e141a1e212226292b2c2c2b292521201e19140d0801000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009131b23292e3132393939393939392e2d2a251f170f050000000000050f171f252a2d2e3939393939393932312e29221b12090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010e1b2734414e5a6774818d9a93877b6e615c5453545c666f7c8997998c807366594d4033261a0d00000000000000000000000000000000000000000815212e3b4854616e7b8796a0acab9e9184786c6053463e342c2924292f353e46525e6873808c99a3aebbafa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afb7ab9f94887b6e62574e4339312d2b282b2e343f4953606d7985929fabada297897c6f6356493c302316090000101d2a3643505d69768390908376695d5043362a1d100000000000040c1318202830353e444d525b62696e787f8686868687796d6053463a2d201307000713202d3a4653606d7987868686867f786e69625b524d443e3530282018130c04000000000000010c161f282f35393a3e3d3c3b3a38352f3744515d6a7784909daaaa9d9083776a5d50442e2f35383a3b3c3d3e3a39352f2820160c0100000005101a232c33393c3d3d3d3d3d3d3d3d3d3d3d3f4b5865727e8b9386796c605346392d20130005111e2a36414c565e61696969696969696969696969696969696969696969615e564c41362a1e1105000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000000020e1a26313b4854606b74808d939fa3ababa49f9b979892919192939a989d9f938f82786d7a8794abb4a094877a6d6154473a2e211407000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201300030e19242f3840474a5464717e8a9799897c6f6256494854616e7b8796978a7d7164574a3e3124170b00000916222f3c4955626f7c88959b8e8174695f5355626f7c88959b8e8174695f53483e34281d1105000000000000000000000000000000000000000000000000000714202d3946525e6874808d979891837b706c676565676c717b849198978d8073685d5246392d201307000000061a2633404d596673808c99a6a99c8f8276675d596673808c99a6a99c8f8276675d5145392c2013060000000d192633404c5966737f8c9393938d8074675a4d43505d6a7683909393938a7d7064574a3d3124170a00000000000000000000050d14191f262a2d2e32363839393836322e2d2a251e19130c0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010911181e2225252d2d2d2d2d2d2d21211e1a140d0500000000000000050d141a1e21212d2d2d2d2d2d2d2524211d18110900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004060709090909090909090706030000000000000000000000000000000000000000000000000000000000000000000003101c2936434f5c6976828f9c908377695e5247464a54606a7885919b8e8175685b4e4235281b0f02000000000000000000000000000000000000000714212d3a46535e697784919eaaaca196897d70635a50463e38343035394045515b616e7a85929fabb2baafa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afbdb0a69a8d81746a5f554b433c39383338393f44505b65717e8a97a2adab9f9285796d6053463a2d2013070000101d2a3643505d69768390908376695d5043362a1d1000000000070d161d2429323a414650565e616d727b828c929992877e71665c5044382b1f12060006121f2b3844505c66717e879399928c827b726d615e565046413a3229241d160d07000000000000040d161d24292c2d31302f2e2d2c292935404b556b7884919eabaa9e9184776b544a403428292c2d2e2f30312d2c29241e160d04000000000b17222c363e44494a4a4a4a4a4a4a4a4a4a4a4a4b5865727e8b9386796c605346392d2013000714202d3946525e686e7676767676767676767676767676767676767676766e685e5246392d201407000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000006121e2b37424e57636f7c87939fa5afa9a199938f8a878584848586888c90959e948d80747b8794a1ada093877a6d6054473a2d211407000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130007131f2b36404a52585a616e7b879a978a7e7164575055575e69788491998c7f7366594c403326190d0005121e2a36424d576673808d9994887c6f62574d576673808d9994887c6f62574d42362c22170c000000000000000000000000000000000000000000000000000005111e2a36414c56616d7a8592999591847d7774727274777e8591969992857a6d61564c4135291d11050000000b1825323e4b5865717e8b98a4ac9f92867a6d605865717e8b98a4ac9f92867a6d6054473a2d22170b0000010d1a2734404d5a6773808d9a9f9b8e8174685b4e44515e6a7784919d9f978a7e7164574b3e3124180b000000000000000000070e171f252a31363a3b3f4345464544423f3b39363029241e160d060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070d12161819202020202020201514120e090300000000000000000003090e12141520202020202020181715110c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c10131316161616161616161312100c06000000000000000000000000000000000000000000000000000000000000000004111d2a3744505d6a7783909c8f827569574d423a424e586a7783909c8f8276695c4f4336291c10030000000000000000000000000000000000000005121e2a36424d576673808d99a6b0a89c9083766c6258504745404241464b515a626d75818e989ea0a8b2afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afb5aba39f92877b6e675d554e4846443f44464a5059606c7883909da9b1a89b8e8175665c5044382b1f12060000101d2a3643505d69768390908376695d5043362a1d100000000710191f282f353e444c525a61696e767f8690949a93877e716c61544a3f34281c10030003101c28343f4a54616c717e87939a9490867f766e69615a524c443e352f281f191007000000000000040c13181d202125242221201f1f2c3845515d677985929facab9f928578665c5144382c1f1f202122232521201d19130c040000000004101c28333e485055575757575757575757575757575865727e8b9386796c605346392d2013000814212e3b4754616e7a8282828282828282828282828282828282828282827a6e6154473b2e211408000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000814212e3a47535f6a76828f9aa4afaba1979287827d7a79787778797b7f838a9196928a7e7b8895a1ada093867a6d6053473a2d201407000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000b1723303c47525c64676c6d798693998c7f7266595a61646c6c7683909b8e8174685b4e4135281b0e000714212d3a46535e697884919c8f82766a5f53535e697884919c8f82766a5f53453c31241a10060000000000000000000000000000000000000000000000000000020e1925303b46525e68707d87929996918a84807f7f81848a91979992877d70685e52443a3024190d010000000a1723303d4a5663707d8996a3aea3998a7d71645463707d8996a3aea3998a7d7164544a3f33281c0f0300010e1b2734414e5a6774818d9aa79b8e8275685b4f45515e6b7884919ea5988b7e7265584b3f3225180c0000000000000000081019202930363b4246484c50515252514f4b4746413b352f282018100700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000106090b0c13131313131313080705020000000000000000000000000002050708131313131313130b0b09050100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181c1f202323232323232323201f1c17110a0300000000000000000000000000000000000000000000000000000000000003101d293643505c6976838f9c908376675d51464446535f697884919b8e8275685b4f4235281c0f0200000000000000000000000000000000000000020e1a25313b4855626e7b88949eacab9f948b7e716a615a53514b4e4c52555d606c727f8b93969196a0acafa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afafa39992999083796d6760585553504a5053545c606b727f8b95a0acaca095897d7063544a3f34281c10030000101d2a3643505d69768390908376695d5043362a1d100000040f19222b313a41454f565e616c717b828b92989a93887e716c615a5042382e23170b0000000b17232e3842505a616c717e88939a98928b827b716c615e564f45413a312b22190f0400000000000001070d111314181716151414202d3a4753606d7a8698a2aeaea29886796d6053463a2d201314151617181413110d080100000000000814202d3944505a61646464646464646464646464646465727e8b9386796c605346392d2013000815212e3b4854616e7b878f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f877b6e6154483b2e211508000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000815222f3b4855626e7b88949facaea39992857d75716e686b6b666d6e72767d84909492857d8996a3aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000d1a26333f4c58646e7479797985929a8d8073675a616c71797979828f9b8f8275685c4f4235291c0f000815212e3b4854616e7b8796988c7f7265584e54616e7b8796988c7f7265584e433b33291f140900000000000000000000000000000000000000000000000000000008141e2a36414c56606b717e8792989e96918d8c8c8d91969e9892877e716b60564c4132281e1308000000000815222f3b4855626e7b8895a99f9f9b8e8174665b626e7b8895a99f9f9b8e8174665b5044382b1f120600020e1b2835414e5b6874818e9ba79c8f8276695c4f45525f6b7885929ea5988c7f7265594c3f3226190c0000000000000008111a222b323b41464d5355595c5e5f5f5e5c5854524c45413a322a2219100700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c151d23282c2d30303030303030302d2c28231c150c030000000000000000000000000000000000000000000000000000000000020f1b2835424e5b6875818e9b92867a6d605a5351535b616e7b88969a8d8073675a4d4034271a0d0100000000000000000000000000000000000000000914212e3a47535f6975828f9aa4afa69f92867d716c64605c555b565d61676d737e8792989184919eaaafa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afac9f928692958f81796f6a6462605b545b6062666d727d87929fa7b0a69d9184786c605346392e23170b000000101d2a3643505d69768390908376695d5043362a1d1000000a16212b343d434b515961686d757e858f949f9f93887f716c625a50483e30261c110600000006111c26303e48505a626c717f88939f9f948f857e756d686159514b433d342b21160a0000000000000000010406070b0a09080815212e3b4854616e7b8794aab4b3aa94877a6e6154473b2e21140808090a0b07070401000000000000000a1623303c4955616c707070707070707070707070707070727e8b9386796c605346392d2013000815212e3b4854616e7b87949c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c94877b6e6154483b2e211508000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000000d192633404c5966737f8c99a6b0ac9f92877c6f6b64615e56545c6062656c707a8290949083909daaaca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000e1a2734414d5a67748086868689979a8d8174675a64717e8686868f939c8f8276695c504336291d10000a1724313d4a5764707d8a9798887b6e6255525764707d8a9798887b6e6255524d453b30251a0e020000000000000000000000000000000000000000000000000000020d1925303a444f59626c717d868e93999c9a98989a9c99938e857d716c62594f443a3020160c02000000000714202d3a4753606d7a8697939393939285796c60606d7a8697939393939285796c605346392d20130600020f1c2935424f5c6875828f9ba89c908376695d5044505b667985929fa6998c807366594d4033261a0d00000000000006101a232c343d444d52575f6165696b6c6c6b6965615e56524c443c342b22190f0500000000000000000000050a0d0f1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010100f0d09040000000000000000000000050a0d0f1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010100f0d090400000000000000000b151e272e34383a3c3c3c3c3c3c3c3c3a38342e261e150a0000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b98988d80736d63605c60636d75818e9b97897d7063564a3d3023170a00000000000000000000000000000000000000000006121e2b37424d57626f7c87939fa7aea29892867e76706d67686869686d72798088929992867e8a97a4afa295887c6f6255493c2f221609000916222f3c4955626f7c8895a2afa6998c7f8c93938f837c76716e6c666b666c6e72787f879299a3aea99f948a7e71665b5044382b1c1106000000101d2a3643505d69768390908376695d5043362a1d1000030f1b27323d464e555d606b707a818a92979f9b918b7f726d625a50483e362c1e140a00000000000a141e2c363e48505a626d727f8b919b9e97928a817a706b605d554e463d32271b0f030000000000000000000000000000000915222f3c4855626f7b8895a2aeaea195887b6e6255483b2f2215080000000000000000000000000000000a1724313d4a5764707e7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d808d9386796c605346392d2013000815212e3b4854616e7b8794a1a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a194877b6e6154483b2e211508000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d1003000000000000000005111e2a36424d576976838f9ca9b1a79a8d80736a605954524c4a5053555a61676d798290959095a0abaca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000e1a2734414d5a6774808d939393a19a8e8174675b64717d8a93939b9e9d9083766a5d5043372a1d10000c1926333f4c5966727f8c999285796a63615e5766727f8c999285796a63615e574d42362a1e110500000000000000000000000000000000000000000000000000000008131e29323d47505a626b707b81878c8f919292918f8c87817b706b625a50473d32281e0e04000000000006131f2c3945515d677885868686868686867c6f625d677885868686868686867c6f6256493c2f2316090003101c2936434f5c6976828f9ca99d9084776a5d514653606c798698a3a69a8d8073675a4d4034271a0d0100000000020c18222c353e474f565e61696e72767879787775726e68605d564e463d342b21170b0200000000000000030a1016191c1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1c1b1915100a0200000000000000030a1016191c1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1c1b1915100a02000000000007121d273039404546494949494949494946443f3830261c110600000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a86929f93887f756f6d666d7076808c939e9185796d6053463a2d201307000000000000000000000000000000000000000000020e1a26313c4754606a74818d95a0a9aaa298928a827d7977757575777a7f848d939a948c7f7c8895a2afa295897c6f6256493c2f231609000916232f3c4956626f7c8995a2afa296897d818e96959087827e7b79787778797b7f848c9299a3abaaa2978f82776c60544a3f33281c0a00000000101d2a3643505d69768390908376695d5043362a1d100007131f2c38434e5860676d747d858e939fa29b918b7f726d625a50483f362d241a0c020000000000020c1a242d363f48505a626d727f8b919ba29f938e857d746d6760584e43382c1f13070000000000000000000000000000000a1623303d495663707c8996a3acaca296897c6f6356493c3023160900000000000000000000000000000013202d394653606c79868a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8d929386796c605346392d2013000815212e3b4854616e7b87949f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f94877b6e6154483b2e211508000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000714202d3a46525e697885929fabaca095877b6e61584f4746413f44464850555d676e7b85929da0a7b1aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000e1a2734414d5a6774808d9a9fa0a79b8e8174685b64717d8a979fa8aa9d9084776a5d5144372a1e11000e1a2734414d5a6774808d9a91847770706e695e6774808d9a91847770706e695e52463a2d201407000000000000000000000000000000000000000000000000000000020d17202b353f48505961696e747b7f8284858584827f7b746e69615950483f352b20160c00000000000004101d2935404b55687378797979797979796f6a6055687378797979797979796f6a6054483b2e2215090003101d2a3643505d697683909ca99e9184776b5e514754606d7a8793aaa79a8d8174675a4e4134271b0e01000000000a141e2a343e474f5960686e747b7f8384858584827e7a736d685f584f473d33291d140a000000000000040d151c2126292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292825211b140c040000000000040d151c2126292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292825211b140c04000000000c18232e39424b5153565656565656565653504a42382e23170c00000000000000000000000000000000000000000000000000000000000713202d3946525e6873808c959a938b817c7978797d828c929c948b7e71665c5145382c1f13060000000000000000000000000000000000000000000009151f2b37434e58606d79839197a0a8aaa29f948f8a868382818284878b91969f958f82787b8894a1aea296897c6f6356493c3023160900091623303c4956636f7c8996a2aea295887c7a84919899938f8b888685848486888c91969fa3aba9a29892857b6e655b5042382d22170b00000000101d2a3643505d69768390908376695d5043362a1d10000915222e3b4854606a6f79818a91979ea39c918c7f726d625b51483f362d241b12080000000000000008121b242d363f48515b626d727f8c919ca39e97918a81796f6a6054483b2e2215090000000000000000000000000000000b1724313e4a5764717d8a979f9f9f9f978a7d7064574a3d3124170a00000000000000000000000000000013202d394653606c798693939393939393939393939393939393939386796c605346392d2013000815212e3b4854616e7b8793939393939393939393939393939393939393877b6e6154483b2e211508000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000814212e3b4754616e7b8798a2aeaa9d908377695e53463d393634383a3e434c555e69717e8b97a1adb9aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000e1a2734414d5a6774808d9aa7b3a79b8e8174685b64717d8a97a4b0aa9d9084776a5d5144372a1e11000f1b2835424e5b6875818e9b91847d7d7d7b6e616875818e9b91847d7d7d7b6e6154473b2e21140800000000000000000000000000000000000000000000000000000000050e19232d363f474f575e61696e72767779797776726e69615e574f473f362d23190e05000000000000000c18242f39435761686b6c6c6c6c6c6c6c6260585761686b6c6c6c6c6c6c6c6260584e43382c1f13070004111e2a3744515d6a7784909daa9e9285786b5f4a4754616e7a8794a1a89b8e8175685b4e4235281b0f0200000006111c26303c464f59616b6f7a81878c8f919292918f8b86807a6f6a60594f453b2f261b110600000000030d161f262d323536363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363635312c261e160c02000000030d161f262d323536363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363635312c261e160c02000004101c2834404b545c606363636363636363605c544a3f34281c10030000000000000000000000000000000000000000000000000000000005111d2935414c56606d798390969f938e89868586898f949c958f82786c60544b4034281c100400000000000000000000000000000000000000000000030f1b27323d45515d676e7b8591969fa4aca69f9c9892908f8e8f90939a9e9f9490837a6d7a8794aab4a396897c706356493d3023160a000a1623303d495663707c8996a3aca194887b6f7d8692989f9c9799929291919298989ea0a8aba69f9792867d70695f53493f2f261c110600000000101d2a3643505d69768390908376695d5043362a1d10000916232f3c4956626f7c848e9393939393918c7f726d625b51493f362d241b120900000000000000000009121b242d363f49515b626d727f8c9193939393938e847c6f6256493c2f2316090000000000000000000000000000000c1825323f4b5865727e8b9393939393938b7e7165584b3e3225180b00000000000000000000000000000013202d394653606c798686868686868686868686868686868686868686796c605346392d2013000815212e3b4854616e7b8686868686868686868686868686868686868686867b6e6154483b2e211508000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d10030000000000000000091623303c4956636f7c8996aab4a79a8e817467574d42342d2a282b2d313a434d57606d7985929eabb8aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000e1a2734414d5a6774808d9aa7aca79b8e8174685b64717d8a97a4acaa9d9084776a5d5144372a1e11000f1c2936424f5c6975828f9c95918989897e72656975828f9c95918989897e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000007111b242d353e454d52575f6165696b6c6c6b6965615f57524d453d352d241b1107000000000000000007121d2731454f575d5f6060606060606056544e4f575d5f6060606060606056544e463d32271b0f030005111e2b3844515e6b7784919eaa9f928579665b504855616e7b8894a1a89b8f8275685c4f4235291c0f020000000b17232e38424e58616b707d858e92999c9e9f9f9e9c98928d847c6f6b60574d41382d22170b000000000a151f2831383e42434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343413d3830281e140a0000000a151f2831383e42434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343413d3830281e140a000006131f2c3845515c666d6f6f6f6f6f6f6f6f6d665c5044382c1f120600000000000000000000000000000000000000000000000000000000010d1925303a45515d676e7a848f949d9b99929292999c9d938e83796d665b5042392e23180c0000000000000000000000000000000000000000000000000a15202935414b555f696e7b848e939a9fa3aaaaa39f9d9b9b9c9d9f9f99928d827a6d6d798698a29f9f96897d7063564a3d3023170a000a1723303d4a5663707d89969f9fa49a877a6d707d8690959da0a39f9e9e9e9fa3aaa9a8a69f9c948f857d706b60574d41382d1d140a0000000000101d2a3643505d69768390908376695d5043362a1d10000e1b2734414e5a67748186868686868686867f736d635b51493f372d241b1209000000000000000000000009121b242d373f49515b636d737f86868686868686868174675a4e4134271b0e0000000000000000000000000000000d192633404c5966737f86868686868686867f7265594c3f3226190c00000000000000000000000000000013202d3946535f6c767979797979797979797979797979797979797979766c5f5346392d2013000714212d3a46535e697679797979797979797979797979797979797979797976695e53463a2d211407000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000a1724313d4a5764707d8a97a3b0a5988c7f7265594c3f31261e1c1f2028313b45515c6673808d99aab4aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000e1a2734414d5a6774808d9a9f9f9f9b8e8174685b64717d8a979f9f9f9d9084776a5d5144372a1e1100101c2936434f5c6976828f9ca09d96968b7e72656976828f9ca09d96968b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000000000009121b232c333b42464d5355595c5e5f5f5e5c5955534d46423b332c231b1209000000000000000000010b151f333d454c505253535353535353494843454c5052535353535353534948433d342b21160a000005121f2b3845525e6b7885919eaba29886796c60534955626f7c8895a2a99c8f8376695c504336291d1003000003101c28343f4a545f6a707d8692979fa3ababacabaaaaa39f9691867d6f695e53493f33271b0f03000005101c26313a42494e50505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050504f4e49423a30261b10040005101c26313a42494e50505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050504f4e49423a30261b1004000713202d3a4653606d787c7c7c7c7c7c7c7c786d6053463a2d201307000000000000000000000000000000000000000000000000000000000008131e2935404b555e686e7a828a919598999a999795908981796d675d544a3f30271d1207000000000000000000000000000000000000000000000000040d18242f3a434d575f696e7981878e92989a9c9e9f9f9f9e9d9a98928e8680786d6866798592939393938a7d7164574a3e3124170b000b1724313e4a5764717d8a939393939386796d6b707c838b9195989b9d9e9f9f9f9e9d9b9894908a827b706b60594f453b2f261b0b020000000000101d2a3643505d69768390908376695d5043362a1d10000d1a2733404c58646e747979797979797979736d635b51493f372d251b12090000000000000000000000000009121b252d373f49515b636d737979797979797979746e64584c4033271a0d0000000000000000000000000000000c1825323e4b57636d737979797979797979726d63574a3e3125180c000000000000000000000000000000121e2b37434f5a646c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c645a4f43372b1e120005121e2a36424d575e6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c5e574d42362a1e1205000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000b1824313e4b5764717e8a97a4b0a4978a7d7164574a3e3124171012161f2834404b54626f7c8998a3aeaca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000e1a2734414d5a6774808d93939393938e8174685b64717d8a93939393939084776a5d5144372a1e1100101d293643505c6976838f9ca9aaa3988b7e72656976838f9ca9aaa3988b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000009111a212930363b4246484c4f515252514f4c4846423b363029211a11090000000000000000000000030d212b333b404445464646464646463c3b383b404445464646464646463c3b38322b22190f04000005121f2b3744505b657985929facaa93877a6d60544956636f7c8996a2a99d9083766a5d5043372a1d1004000006121f2b3844505c666f7c869298a1a9afb5b7b8b8b7b4aea8a19892857b6e655b5044372b1f140900000a16212d38424c545a5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5a544c42382c211509000a16212d38424c545a5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5a544c42382c211509000815212e3b4854616e7b87898989898989877a6d6154473a2e2114070000000000000000000000000000000000000000000000000000000000020c18242f39434c565e686d777e84888b8c8d8c8b87837d746d675d554b42382d1e150b000000000000000000000000000000000000000000000000000007131d28313b454d575f676d747c81868a8d8f9192929291908d8a86817b736d665e6a77838686868686867e7165584b3e3225180b000b1825323e4b5865717e868686868686857866606a6e787e84888c8e909192929291908e8b88837d766e6960594f473d33291d140a000000000000101d2a3643505d69768390908376695d5043362a1d10000b1824303c48535c64676c6c6c6c6c6c6c6c66635b51493f372d251b130900000000000000000000000000000009131b252d373f49515b63666c6c6c6c6c6c6c6c67645c53483c3024180b0000000000000000000000000000000a16222f3b46515b63666c6c6c6c6c6c6c6c65635b51463a2e2216090000000000000000000000000000000f1b27333e49525a5f60606060606060606060606060606060606060605f5a52493e33271b0f00020e1a25313b454d535f6060606060606060606060606060606060606060605f534d453b31251a0e02000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000b1825313e4b5864717e8b97a4b0a396897d7063564a3d3023170a060d18232e3a4653606d7986929facaca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000e1a2734414d5a677480868686868686868174685b64717e8686868686868683776a5d5144372a1e1100101d293643505c6976838f9ca9b1a5988b7e72656976838f9ca9b1a5988b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000000080f171f252a31363a3b3f4344464644433f3b3a36312a251f170f08000000000000000000000000000f1921292f343738393939393939392f2e2c2f343738393939393939392f2e2c27211910070000000613202d394653606c7986939faca194877a6e61544a5663707d8996a3aa9d9184776a5e5144372b1e070000000713202d3a4653606d78839198a2aab3bbc0c4c5c5c4bfbab2aaa1979083776c6053463b31261a0e02000d1926323e49545e66696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969655e54493d3125190d000d1926323e49545e66696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969655e54493d3125190d000815212e3b4854616e7b87949696969694877a6d6154473a2e21140700000000000000000000000000000000000000000000000000000000000007121d27313b444c565d656c71777b7e80807f7e7b76706b605c554b43392f261c0c030000000000000000000000000000000000000000000000000000010c161f2a333b454d555d606a6f757a7d8183848586858583817e7a746e69605c54677177797979797979716c62564a3d3124170b000b1724313d4a56626c71797979797979787368585f666d71777b7f8183858586858583817e7b76706b615e574f473d352b21180b02000000000000101d2a3643505d69768386868376695d5043362a1d10000814202b36414a53585a60606060606060605957514940372e251b1309000000000000000000000000000000000109131b252e37404951575960606060606060605a58534a41362b20140800000000000000000000000000000006121e2a3540495157596060606060606060595751493f352a1e12060000000000000000000000000000000a16212c3740494f535353535353535353535353535353535353535353534f4940372c21160a000009141f29333b4246485353535353535353535353535353535353535353534846423b33291f140900000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000b1825323e4b5865717e8b98a4afa296897c6f6356493c302316090007131f2c3845515c667683909da9aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000d1a26333f4c58646e7479797979797979746f6459616c71797979797979797771675b4f4236291d1000101d293643505c6976838f9ca9aca5988b7e72656976838f9ca9aca5988b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000050d141a1f262a2d2e32363839393836322e2d2a261f1a140d050000000000000000000000000000070f171e24282b2c2d2d2d2d2d2d2d23221f24282b2c2d2d2d2d2d2d2d23221f1b160f07000000000714202d3a4753606d7a869aa4afa195887b6e62554a5764707d8a97a3ab9e9184786b5e51452f23180c000006121e2b37424e5765717e8b95a0aab4bcc5cbd1d2d2d0cbc4bcb3a99f958a7e7164574d42362a1e1205000f1c2935424e5a667076767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767670655a4e4135281b0f000f1c2935424e5a667076767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767670655a4e4135281b0f000815212e3b4854616e7b8794a1a2a2a094877a6d6154473a2e211407000000000000000000000000000000000000000000000000000000000000010b151f29323b444c535b6064696e71737473716e69636059514b433931281d140a00000000000000000000000000000000000000000000000000000000040d18212a333b434b51585f62686d71747678787979787674716d67615f5750555f676a6c6c6c6c6c6c65625a50453a2e211509000915212e3a45505a62656c6c6c6c6c6c6b686157545c60646a6e72757778787979787675726e69636159534d453d352b23190f06000000000000000f1c2935424e5a66707679797670665a4e4235291c0f00030f1a252f3841484c4e53535353535353534c4b4640372e251c1309010000000000000000000000000000000000010a131c252e3740464b4c53535353535353534e4c4841382f251a0f03000000000000000000000000000000020d19232e3740464b4c53535353535353534c4a463f372d23180d0100000000000000000000000000000005101b252e373e4346464646464646464646464646464646464646464646433e372e251b10050000030d17212931363a3b4646464646464646464646464646464646464646463b3a36312921170d0300000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f2316090004101c2834404b546875828f9ba8aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000b1723303c47525c64676c6c6c6c6c6c6c68645d535a61646c6c6c6c6c6c6c6a675f554a3f33271a0e00101d293643505c6976838f9c9f9f9f988b7e72656976838f9c9f9f9f988b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000000000003090e141a1e212226292b2c2c2b292622211e1a140e090300000000000000000000000000000000060d13181c1e1f20202020202020161513181c1e1f202020202020201615130f0a0400000000000814212e3b4754616e7a8794a1b6a295887c6f62554b5864717e8b97a4ab9f9285786c554b4034291c1004000814212e3a47535f6a7784919ea7b1bcc5cfd7dcdfdedcd6cec5bbb1a79d908377695f53463a2d21140700101d293643505c697683838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838276695c4f4336291c1000101d293643505c697683838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838276695c4f4336291c10000815212e3b4854616e7b8794a1aeada094877a6d6154473a2e21140700000000000000000000000000000000000000000000000000000000000000030d172029323a41495053575f626566676664615e57544f45403931281f160b020000000000000000000000000000000000000000000000000000000000060f182129313a40454e53565d606467696b6c6c6c6b6a6764605d55534d444d555b5e606060606060585650483f34291d11050005111d29343f485056586060606060605f5c574f4a5153585f6265686a6b6c6c6c6b6a6865615f57554f46423b332b2319110700000000000000000d1a26323e4a545e66696c6c69665e544a3e32261a0d000008131d262f363c40414646464646464646403e3b352e251c130a0100000000000000000000000000000000000000010a131c252e353b3e40464646464646464641403c362f261d1308000000000000000000000000000000000007121c252e353b3e4046464646464646463f3e3a352d251c1107000000000000000000000000000000000009131c252c33373939393939393939393939393939393939393939393937332c251c130900000000050f171f252a2d2e3939393939393939393939393939393939393939392e2d2a251f170f050000000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000c18232e414e5b6874818e9ba7aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130007131f2b36404a52585a606060606060605b59534b505557606060606060605d5b554d43392e22160a00101d293643505c6976828f93939393938b7e72656976838f93939393938b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000000000000000000000003090e121415191c1e1f1f1e1c191514120e09030000000000000000000000000000000000000002070c0f1112131313131313130909070c0f11121313131313131309090703000000000000000815222e3b4855616e7b8894a1aca396897c7063564b5865727e8b98a5ac9f928679675c5145382c1f1306000815222f3b4855626e7b8896a0acb9c3ced7e1e8ebebe7e0d6cdc2b8aca095887b6e6155483b2e2215080013202d394653606c79868f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f86796c5f5246392c1f130013202d394653606c79868f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f86796c5f5246392c1f13000815212e3b4854616e7b8794a1aeada094877a6d6154473a2e2114070000000000000000000000000000000000000000000000000000000000000000050e1720282f383f44464d535558595a595854534d48443d342f271f160d0400000000000000000000000000000000000000000000000000000000000000060f181f282f353c43474c5254575a5c5e5f5f5f5e5d5a5754514b46423b444a4f515353535353534b4a453f362d22180c0100010c18222d363f454a4b53535353535352504c454044464e5355595b5d5e5f5f5f5e5d5b5855534d48443e363129211911070000000000000000000a16222d38434c545a5d60605d5a544c43382d22160a0000010b141d252b303334393939393939393933322f2a231c130a01000000000000000000000000000000000000000000010a131c232a2f323339393939393939393433302b251d140b010000000000000000000000000000000000000a131c232a2f3233393939393939393932312e2a231c130a000000000000000000000000000000000000010a131b21272b2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2b27211b130a010000000000050d141a1e21212d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d21211e1a140d05000000000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f2316090000071a2734404d5a6773808d9aa6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201300030e19242f3840474c4d535353535353534e4d484145494a53535353535353514f4a433b31271c110600101d293643505c697682868686868686867f7265697682868686868686867e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000000000000000000020507080c1011131311100c0807050200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915222f3c4855626f7b88959f9f9f968a7d7063574c5965727f8c989f9fa399867a6d6053473a2d201407000c1825323f4b5865727e8b98a8b2bdccd5e0e9f3f9f8f2e8dfd4c8bcb1a7988b7e7165584b3e3225180b0013202d394653606c7986939c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9286796c5f5246392c1f130013202d394653606c7986939c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9286796c5f5246392c1f13000815212e3b4854616e7b8794a1acaca094877a6d6154473a2e211407000000000000000000000000000000000000000000000000000000000000000000050e161d262d33373c4247484b4d4d4c4b4846423b383329231d150d04000000000000000000000000000000000000000000000000000000000000000000060d161d242932373a4145474a4e505152535252504e4b4745413a3631393f43444646464646463e3d3a342d241b110600000006111b242d343a3d3e4646464646464544403b34383c4347484c4e505252535252504e4b4846423b38332a251f170f070000000000000000000005111c27313a434a4e505353504e4a433a31271c1105000000020b131a202427272d2d2d2d2d2d2d2d2625231e19120a010000000000000000000000000000000000000000000000010a12191e2325262d2d2d2d2d2d2d2d272724201a130b0200000000000000000000000000000000000000010a12191e2225262d2d2d2d2d2d2d2d2625221e18110a0100000000000000000000000000000000000000010910161b1e202020202020202020202020202020202020202020201e1b161009010000000000000003090e1214152020202020202020202020202020202020202020201514120e090300000000000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000008121d262f363c3f414646464646464641403c37393c3e4646464646464644423f3931291f150b00000f1c2835414e5a66707679797979797979726d6266707679797979797979726d62564a3d3124180b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8993939393938a7e7164574c5966737f8c9393939393877a6d6154473a2e211407000d1a2633404d596673808c99a6b3bfced9e7f2fbfffffaf1e4d9cebfb3a6998c807366594d4033261a0d0013202d394653606c7986939f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9285796c5f5246392c1f130013202d394653606c7986939f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9285796c5f5246392c1f13000815212e3b4854616e7b87949f9f9f9f94877a6d6154473a2e21140700000000000000000000000000000000000000000000000000000000000000000000040b141b22272b31373a3b3e4041403e3b3a36312c272118120b030000000000000000000000000000000000000000000000000000000000000000000000040c131820262b2f35393a3e4143454546464543413e3a39352f2a262e33363739393939393932312e29221b1209000000000009121b22292e31323939393939393837342f282c31373a3b3f4244454546464543423f3b3a36312c28211a140d050000000000000000000000000a151f2831383e4243464643423e3831281f150a000000000001080f14181a1b2020202020202020191916120d07000000000000000000000000000000000000000000000000000000070d1216191920202020202020201b1a18140f080100000000000000000000000000000000000000000000070d121618192020202020202020191816120d070000000000000000000000000000000000000000000000050a0f1213131313131313131313131313131313131313131313120f0a0500000000000000000000000205070813131313131313131313131313131313131313131308070502000000000000000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130000010b141d242b303334393939393939393534302b2d3031393939393939393736332e271f170d0400000d1926323e49545e66696c6c6c6c6c6c6c65625b5e66696c6c6c6c6c6c6c65625b51453a2e2215090000000000000000000000000000000000000000000000000000000000000000050a0d0f10131313130b0a080500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1723303d4a5663707d868686868686867e7165584d5a677380868686868686867b6e6155483b2e221508000e1b2734414e5a6774818d9aa7b4c0cddae7f7fffffffff5e7dacdc0b4a79a8d8174675a4e4134271b0e0013202d394653606c79869393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939285796c5f5246392c1f130013202d394653606c79869393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939285796c5f5246392c1f13000815212e3b4854616e7b87939393939393877a6d6154473a2e2114070000000000000000000000000000000000000000000000000000000000000000000000020a11171b1f262b2e2f32333433312e2d2a251f1c160c07010000000000000000000000000000000000000000000000000000000000000000000000000001070d151b1e24292c2d31343638393939383734312d2c29241d1a22272a2b2d2d2d2d2d2d2524211d181109000000000000000911181d2124252d2d2d2d2d2d2c2b28241c1f262b2e2f32353738393939383735322e2d2a261f1c170e090300000000000000000000000000030d161f272d32353639393635322d271f160d030000000000000003080b0d0e13131313131313130d0c0a0602000000000000000000000000000000000000000000000000000000000002060a0c0d13131313131313130e0d0b08030000000000000000000000000000000000000000000000000002060a0c0d13131313131313130c0c09060100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000000020b12191f2326272d2d2d2d2d2d2d282724202123242d2d2d2d2d2d2d2a2927221c150d050000000915212d38424c545a5c60606060606060585651545a5c60606060606060585651493f34291d1105000000000000000000000000000000000000000000000000000000000000030a1016191c1d20202020181714110c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916232f3c4855606b7079797979797979716c62564b58646e737979797979797976695f53463a2d211407000d1a2733404d5a6673808d99a6b3c0cfdae6f3fcfffffbf2e9d9ccc0b3a6998d8073665a4d4033271a0d0013202d394653606c79868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686796c5f5246392c1f130013202d394653606c79868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686796c5f5246392c1f13000815212e3b4854616e7b86868686868686867a6d6154473a2e21140700000000000000000000000000000000000000000000000000000000000000000000000000060b0f151a1e2122252627262521211e1a14100b050000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f13191d20212427292b2c2c2c2b2a272421201d18130e171b1d1e202020202020181715110c06000000000000000000060c111517182020202020201f1e1c1810151a1f212226282a2b2c2c2c2b2a282522211e1a14100b0500000000000000000000000000000000040d151c2226292a2d2d2a2926221c150d0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003060712131313131311110e0b0601000000000000000000000000060a0e1011131313131313100f0d0a050000000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130000000001080e13171a1a202020202020201b1a1814141717202020202020201e1d1a16110b040000000005101b26303a42494e50535353535353534b4a45494e50535353535353534b4a453f372d23180c010000000000000000000000000000000000000000000000000000000000040d151b212628292d2d2d2d2423211d17100800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202c38444f5960636c6c6c6c6c6c6c65625a5047525c64676c6c6c6c6c6c6c6c5f574d42362a1e1205000c1925323f4c5865727f8b98a9b3bec9d5e1eaf4f9f8f3e9e0d5c9bdb2a8988b7f7265584c3f3225190c0013202d3946535f6c7679797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797974695d5144382b1f120013202d3946535f6c7679797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797974695d5144382b1f12000714202d3a46525e6976797979797979797976685e5246392d20130700000000000000000000000000000000000000000000000000000000000000000000000000000003090e121415181a1a19181514120e090300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080d111314171b1d1e1f201f1f1d1b181413110d07010b0e10111313131313130b0b09050100000000000000000000000105090b0b13131313131312110f0c040a0f121415191b1d1f1f201f1f1d1b181514120e090300000000000000000000000000000000000000030a11161a1c1d20201d1c1a16110a030000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080b0e111112131312110f0c0908060300000000000000000406070b0f1213131211100e0c0b09060100000000000000000000000000000000000000000000000000000406070a0d0f11121313131212100e0c09060603000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c1012131f20202020201e1d1b17120c04000000000000000000040b11161a1d1e2020202020201d1c1916100a03000000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201300000000000003070b0d0e131313131313130e0e0c08080a0b1313131313131311100e0a06000000000000000a141e2830383e4143464646464646463f3d3a3e4143464646464646463f3d3a342d241b11060000000000000000000000000000000000000000000000000000000000000d161f262d3235363939393931302d28221a12080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c27333d474f55566060606060606058565048404a52585a606060606060605f534d453b31261a0e0200091623303c4956636f7c8997a1adb9c4cfd9e2e8ebebe7e1d7cec6b9ada196887c6f6255493c2f22160900121e2b37434f5a646c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6962584d4135291c1000121e2b37434f5a646c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6962584d4135291c100005121e2a36424d575e6c6c6c6c6c6c6c6c6c6c5e564c41362a1d11050000000000000000000000000000000000000000000000000000000000000000000000000000000000020608080b0d0e0d0b0807050200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010407070b0e101212131312100e0b07060401000000020404060606060606000000000000000000000000000000000000000000060606060606050503000000020608080c0f111212131312100f0c080705020000000000000000000000000000000000000000000000050a0d0f101313100f0d0a05000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e121415181b1d1e1f201f1f1d1b191515120f0a0401000000070c101313181c1e1f201f1e1d1b181815120d060000000000000000000000000000000000000000000001070c10131416191c1d1f1f20201f1e1d1b191613120f0b060000000000000000000000000000000000000000000000000000000000000000000000000000030a11171c1f202c2d2d2d2d2d2b2a27231d160e0600000000000000050d151c2227292a2d2d2d2d2d2d292926211c150d040000000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c161e262d3235363939393939393932312e3235363939393939393932312e29231b120900000000000000000000000000000000000000000000000000000000000008111f2831383e4243464646463e3d39342c241a1006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b16212c353d44484a535353535353534b4a453f3840474b4d535353535353534846423b33291f140900000613202d394653606c7885929ea9b3bdc7d0d8dddfdedcd7cfc6bcb2a89e9184776c605346392d201306000f1b27333e49525a5f60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060605f5d5850463b3025190d000f1b27333e49525a5f60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060605f5d5850463b3025190d00020e1a25303b454d525f60606060606060605f524c443a3025190d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f141a1e212125282a2b2c2c2c2b2a282622211f1b15110d08030b12181c1f2025292b2c2c2c2b2a272524221d18110901000000000000000000000000000000000000040a0f12181c1f202326282a2b2c2c2c2c2b2a282523201f1c17110f0a0300000000000000000000000000000000000000000000000000000000000000000000030c151c23282c2d3939393939393837332e2820180e040000000000040d171f272e3336373939393939393635322d261f160d0300000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201300000000000002070a0c0d131313130e0d0b080303070b0d0e131313130d0c0a06020000000000000000000000040c141b212628292d2d2d2d2d2d2d2524222628292d2d2d2d2d2d2d2524221d181109000000000000000000000000000000000000000000000000000000000000050f1a23313a42494e50535353534b49453e362c22170c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050f1a232c33383c3d464646464646463e3d3a342e363b3f40464646464646463b3a36312921170d03000006121f2b3844505b6673808c97a1abb5bdc5ccd2d2d2d1cbc4bcb4aaa0968c7f72655b5044372b1f1205000a16212c3740494f53535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535352514d463e342a1f1408000a16212c3740494f53535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535352514d463e342a1f1408000009141f29333b42464853535353535353535346413a32281e13080000000000000000000000000000000000000000000000000000000000030608091313131313120707050100000000000000000000000000000003060809131313131313131313131313131313131313131313131313130b0a080400000000000000000000000000000306131313131313131308070502000000000000000000000005080a0b13131313130e0d0b0803000000000000000000000306080913131313131313130603000000000000000000000000000004090c0e0f13131313131313130908060300000000000000000000000000000000000000000000000000000000020507081213131313131313100706040000000000000000000000000000000000060c161b1f252a2d2e31343738393939383735322f2e2b26201d19130c151d23282c2d32353839393838363432312e29231b130900000000000000000000000000000000040a0f161b1d23292c2d303335373839393939383635322f2d2b28221c1b150e090300000000000000000000000000000000000000000000000000000000000000000a151e262e34383a45464646464644433f39322a20160c01000000000b151f2931393f424446464646464643423e3831281f150a00000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130000000000070e1316191a202020201b1a18140f0e13171a1a20202020191916120d070000000000000000000000030a1015191c1d20202020202020181815191c1d20202020202020181815110c06000000000000000000000000000000000000000000000000000000000000000b16212b35424c545a5c60606060575550483e34281d11050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008111a21272c2f303939393939393932312e29242a2f3334393939393939392e2d2a261f170f06000000030f1c28333f4a54606d79859199a3abb3bbc0c4c5c5c4bfbab2aaa2989184796d6053493f33271b0f030005101b252e373e434646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464644413b342c22180d020005101b252e373e434646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464644413b342c22180d020000020d17212930363a3b4646464646464646463936302820160c02000000000000000000000000000000000000000000000000000000040a0f12151520202020201f1413110d08020000000000000000000000040a0f12151520202020202020202020202020202020202020202020202020171714110c0500000000000000000000060c101220202020202020201514120e090200000000000000060c1114171820202020201b1a18140f0801000000000000040a0f131516202020202020202012100c060000000000000000000002090f15191b1c20202020202020201615130f0a0400000000000000000000000000000000000000000000000002090e1114141f202020202020201d1312100c0700000000000000000000000000030a111720272b31363a3b3e4144444546464544423f3c3b37322c29241e191e272e34383a3e42454646454443413f3d3a342d251b11060000000000000000000000000000060b151b21272c2f34383a3d40424445464646454543413f3c3938332d2b26201a150b0600000000000000000000000000000000000000000000000000000000000006111c2630383f4446525353535353514f4b443c32281d120600000006111c27313b434a4f51535353535353504e49423a31261c1005000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000000010a12191f2325262d2d2d2d282724201a1a1f2426272d2d2d2d2625231e19120a01000000000000000000000005090d0f10131313131313130c0b090d0f10131313131313130c0b0905010000000000000000000000000000000000000000000000000000000000000004101c27333d47545e66696c6c6c6c64615a5045392d2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080f161c2023232d2d2d2d2d2d2d2524211d191f2326272d2d2d2d2d2d2d22211e1a140d0600000000000b17222d3845515d67707d879299a2aaafb6b7b8b8b7b4aea8a19892867c6f665c5141382d22170b00000009131c252c3337393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393835302a221a100600000009131c252c3337393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393835302a221a100600000000050f171f252a2d2e39393939393939392e2d2a251e160e05000000000000000000000000000000000000000000000000000000060e151b1f21222c2d2d2d2d2c21201d19130c04000000000000000000060e151b1f21222d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2423211c17100800000000000000030a11171c1f2d2d2d2d2d2d2d2d21201e1a140d0500000000000810171d2123242d2d2d2d2d272724201a130b0200000000070f151b1f22222d2d2d2d2d2d2d2d1f1c17110a0300000000000000030c141b202528282d2d2d2d2d2d2d2c22211f1b150e0700000000000000000000000000000000000000000000050d141a1e20212c2d2d2d2d2d2d2d2a201f1c18120b0300000000000000000000030c151c232832373b4246484b4e505152535252504e4c4847433c39352f28222b30394045464b4f5152535251504e4b4a463f372d23180d010000000000000000000000020a111720262b323839404547494c4f50525253535251504e4c4946443f3837312b262017110a02000000000000000000000000000000000000000000000000000000000c17232e38424a50535f60606060605e5c564e44392e23170b0000000a16222e39434d555b5d6060606060605c5a544c42382d21160a000000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130000000a131c242a2f3233393939393433302b25242b3033343939393933322f2a231c130a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202c38444f5966707679797979716c6155493d3023170a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b1014161720202020202020181715110e1317191a202020202020201514120e090300000000000006111c2935404b55606b717e8792989fa4acabacabaaaaa39f9691867d706a5f544b402f261b1106000000010a131b21272b2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2b29251f18100800000000010a131b21272b2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2b29251f181008000000000000050d141a1e20212d2d2d2d2d2d2d2d21201d19130c0500000000000000000000000000000000000000000000000000000006101820262b2e2f3939393939382e2d29251e160e040000000000000006101820262b2e2f3939393939393939393939393939393939393939393939393931302d28221a12080000000000030c151c23282c39393939393939392e2d2a251f170f0500000008121a22282d303139393939393433302b251d140b00000007101920272b2e2f39393939393939392c28231c150c030000000000020c151e252c31343539393939393939392f2e2b26201810070000000000000000000000000000000000000000050e171f252a2d2e3939393939393939372d2c28231c150c030000000000000000030d151e262e343d43474d5354585b5d5e5f5f5f5e5d5b5955534e4745413a3129343c424b5153585c5e5f5f5f5e5d5a585651493f34291d120600000000000000000000040b141c222832373d43484b515356595b5d5e5f5f5f5f5e5d5b585653504a47433c373127221b140b03000000000000000000000000000000000000000000000000000003101c28343f4a545c606c6c6c6c6c6c6b6760564b3f33271b0e0000010e1a27333f4a555f676a6c6c6c6c6c6c69665e54493e3226190d010000000000000000000000000000000003101d2a3643505d69768390908376695d5043362a1d100300000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000007121c252e353b3f404646464641403c362f2f363c3f4146464646403e3b352e251c0e0500000000000000000000060a0e1011121313131212100e0b07070501000000000000000000000000000000000000020507081313131313131313070705010000000000000000000916222f3c4854606b7682868686867e7164574b3e3124180b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000407090a131313131313130b0b090502070b0d0d13131313131313080705020000000000000000000d18242f3a434f59626c717d858e939a9c9e9f9f9d9c98928d847c706b61584e42392e1d140a0000000000010910161b1e2020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020201f1f1c19140d06000000000000010910161b1e2020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020201f1f1c19140d06000000000000000002090e12141520202020202020201413110d0802000000000000000000000000000000000000000000000000000000040e18222a31373a3c4646464646453a3935302820160c020000000000040e18222a32373b3c464646464646464646464646464646464646464646464646463e3c39332c241a1005000000000a151e262e343846464646464646463b3a36302921170d020006101a242c34393d3e464646464641403c362f261d0d0300040f19222b32373b3c464646464646464638342e261e150a000000000009141e2730373d414246464646464646463c3b37322a22180d03000000000000000000000000000000000000020b17202930363a3b4546464646464646433a38342e271e150b00000000000000010b151f2730383f444e54575e6164676a6b6c6c6c6b6a6865625f5854524c433f353c464e545c6065686b6c6c6b6b696765625b51463a2e221509000000000000000000040d161d262d333c43474f54555c606366686a6b6c6c6c6c6b69686562605b54534e47423c332d261d150d030000000000000000000000000000000000000000000000000006121f2c3844505c666d7879797979797772675c4f43372a1d11000003101d2936424f5b6771777979797979797670665a4e4235291c0f030000000000000000000000000000000203101d2a3643505d69768390908376695d5043362a1d100302000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201300020e19242e3740474b4d535353534e4c4841383840474c4d535353534c4b4640372e20170d0200000000000000040b11161a1d1e1f2020201f1e1d1b181413110d0802000000000000000000000000000002090e12141520202020202020201413110d080200000000000006131f2b37434e5863707d8994998f82766c6155493d3023170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007131d28313d47505a626b707b81878c8f919292918f8b86807a6f6a61594f463c30271d0b0200000000000000050a0f121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131312100d0802000000000000000000050a0f121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131312100d080200000000000000000000000205070813131313131313130707050100000000000000000000000000000000000000000000000000000000000a15202a343c4347485353535353524746413a32281e130800000000000a15202a343c434748535353535353535353535353535353535353535353535353534a49453e362c22170c00000006111c2630383f4453535353535353534846423b33291f1409000c17222c363e45494b53535353534e4c4841382f1f150b010a15202b343c4347495353535353535353443f3830261c1106000000040f1b25303942484d4f53535353535353534947433c342a1f150b0100000000000000000000000000000000000a141d29333b4246475253535353535353504644403930271c120700000000000007121d273139424a50586062696e71747777787979787775726f6a66605d56504540454e5860666d717578797978777674726d62564a3d3124180b0000000000000000030c161f282f383f444e54596063676d707375777879797978787674726f6c66625f58534d443f382f271f150d030000000000000000000000000000000000000000000000000713202d3a4653606d7886868686868684776b5e5144382b1e11000004111e2a3744515d6a77838686868686868276695c504336291d100300000000000000000000000000050a0f12101d2a3643505d69768390908376695d5043362a1d10120f0a0500000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130007131f2a354049525759606060605b58534a41404a52585a60606060595751494032291e1408000000000000050e161c2227292a2c2c2d2c2c2b29282521201d19130f0a030000000000000000000000050d141a1e20212d2d2d2d2d2d2d2d21201d19130c0500000000000815212e3b47535f6a7683909d92867b6e615a5045392d211408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f2b353f48505961696e757b7f8384858584827e7b736d6860584f473e342a1e150b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b26313c464e53555f606060605f54524c443a3025190c03000000030f1b26323c464e535560606060606060606060606060606060606060606060606060575550483e33281c110400000c17232e38424a505f606060606060605f524d453b30251a0e05111d28343e4850555760606060605a58534a4131271d12070f1b27323c464e5455606060606060605f504a42382e23170c0000000915202c37424b53595b606060606060605f55534e463c31271d12070000000000000000000000000000000006111b262f3b454d52545f606060606060605d53514a42392e23180c0000000000020c18242f39434b545c606a6f757b7e8183848586858583817f7c78726d68625a514b4d57606a6f797e82848586858483817f7265584b3f3225180c00000000000000000b151e283139424a50585f626b6f75797d7f828385858686858483817f7c79746f6a625f575049413931271f150b010000000000000000000000000000000000000000000000091623303c4956636f7c89989393938d8174675a4e4134271b0e000004111e2a3744515d6a778490939393938f8376695c504336291d10030000000000000000000000010910161b1e20202a3643505d69768390908376695d5043362a20201e1b161009010000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000a16232f3b47525c63666c6c6c6c67645c534547525c64676c6c6c6c66635b51443b3025190e0100000000040e1720272e3336373939393939383634312e2d2a251e1a150e06000000000000000000050f171f252a2d2e39393939393939392e2d2a251e160e05000000000916222f3c4955626f7c88959b8e8174695f53483e34281d110500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d19232d363f474f575f61696e72767879787775726e69615e564e463e352c22190c0300000000000000000005090d0f101313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313130f0f0d09040000000000000000000000000205070813131313131311100e0b0600000407090a1313131313130e0d0b0803000000000000000000000001070c0f11121313131313070705010000000000000000000000000105090b0b13131313100f0d09050000000000000000000000000000000000000000000000000006121f2b37434e585f626c6c6c6c6c6b615e564c4135291e150b00000006121f2b37434e585f626c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c64615a5045392d2114080003101c28343f4a545c6c6c6c6c6c6c6c6c6c5e574d42362a1e120814212d3945505a61646c6c6c6c6c67645c5343392f23180c131f2b37434e5860626c6c6c6c6c6c6c6c5c544a3f34281c100300000c1925313d48535d65686c6c6c6c6c6c6c6c625f584e43392f24180e050000000000000000000000000000030c17222d38414d575e616c6c6c6c6c6c6c6c6a605c544a4034281c1004000000000a141e2935404b555d666d747c82878b8e909192929291908e8c88847f7a716d605d55535f696f7c848b8f9192929291908d86796c605346392d20130000000000000007121d273039434b545b606a6f767c8185898c8e90919292929291908e8b8985817c756e69605b534b433931271d12070000000000000000000000000000000000000000000004111d2935414c566673808c99aaa3998a7d7064574a3d3124170a000004111e2a3744515d6a7784909d9f9f9c8f8376695c504336291d100300000000000000000000010a131b21272b2d2d2d3643505d69768390908376695d5043362d2d2d2b27211b130a0100000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000c1925323f4b57636e7379797979746f64574d4c58646e7479797979736d63564c41362a1d1207000000000b16202932393f434445464646454543413e3a3936302b2620180f0900000000000000020d17212930363a3b4646464646464646463936302820160c02000005121e2a36424d576673808d9994887c6f62574d42362c22170c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007111b242d353e454d53575f6266696b6c6c6a6965615e56524c443d342c231a10070000000000000000020a1015191c1c2020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020201c1b1915100902000000000000000002080e1114142020202020201e1d1a17110b0b101316162020202020201b1a18140f08010000000000000000050c12181b1e1f20202020201413110d0802000000000000000000060c11151718202020201c1c1915100a0200000000000000000000000000000000000000000000000815212e3a47535f6a6f7979797979786d685e52463d30271c120700000815212e3b47535f6a7679797979797979797979797979797979797979797979797979716c6155493c3023170a0006121f2c3844505c66767979797979797976695e52463a2d20140a1723303d4955616c717979797979746e64554b4034291c1015222e3b4754606a767979797979797976665c5044382c1f120600020e1b2834414d59656f7579797979797979796f6a5f554b40352920170b02000000000000000000000000000b151e27333f49535e696e7879797979797979766d665c5144382c1f120600000006111c26303845515d676d7880898f93999a9d9e9f9f9f9e9d9b9896918c857e756d675d58626e7b8691969b9e9f9f9e9e9c9386796c605346392d2013000000000000040d18232e39434b555d666c737c83898e9298999b9d9e9f9f9f9f9e9c9b9897918d88827b736c655d554b43392f24180e050000000000000000000000000000000000000000000713202c3945525d687683909da99f92867a6d6054473a2d211407000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000009131c252c33373939393943505d69768390908376695d50433939393937332c251c130900000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000d1a2633404d59667380868686868174695f534d5a677480868686867f73685e5246392f23180c00000006111c27323b434a4f51525353535251504e4b4746413a37312a221b120900000000000009141f29333b42464853535353535353535346413a32281e130800000714212d3a46535e697884919c8f82766a5f53453c31241a10060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b232c333b42464d5355595c5e5f5f5e5c5854524d46413a322b221a11080000000000000000040c141b212528292d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d292825211b140c03000000000000050d14191e20212d2d2d2d2d2d2a2a27221d16161b2022232d2d2d2d2d2d272724201a130b02000000000000060f171e23282a2b2d2d2d2d2d21201d19130c04000000000000000911181d2124252d2d2d2d292826211b140c04000000000000000000000000000000000000000000000915222f3c4855626f7c8786868686857a6d61594f42392e23180c03000915222f3c4855626f7c868686868686868686868686868686868686868686868686867e7164574a3e3124170b000713202d3a4653606d78868686868686867b6e6154483b2e2115121e2a36424d5764717e86868686868074675c5145382c1f1416222f3c4955626f7c86868686868686786d6053463a2d20130700020f1c2835424f5b68758286868686868686867c6f675d51453e32291d140a00000000000000000000000007121d27303944505b656e7b858686868686868683796d6053463a2d2013070000000b17232e3842505a606d79828d929b9fa4ababa39f9d9c9b9c9d9fa19e97928b82796d685f6a76828f98a1a8aaa39f9995949386796c605346392d20130000000000010c161f2834404b555d676d78808790949b9fa2a9a29e9c9b9a9a9b9d9fa3a9a19e9a948f877f776d675d554b40352920170d0200000000000000000000000000000000000000000714212d3a4754606d7a86939fa99c908376675d5145392c201306000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000005101b252e373e434646464646505d69768390908376695d504646464646433e372e251b1005000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000714202d3a4753606d7984919392877b6e62564c54606d7a85919392867a6e61554b4034291c100400000a16222e39434d555b5d5f5f605f5f5e5c5b5854524c47433c342d241b110800000000020e1a25303b454d525f60606060606060605f524c443a3025190d01000815212e3b4854616e7b8796988c7f7265584e433b33291f1409000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009111a212931363c4247484c50515252514f4b4746423b363028201910080000000000000000020c161e262c3235363939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393635312c261e150c0200000000050e171e252a2d2e3939393939393736332e272021272c2f303939393939393433302b251d140b0100000000050f1821292f3437383939393939392d29241e160e04000000000009121b22292e3132393939393635322d261e160c000000000000000000000000000000000000000000000815212e3a47535f6a73808d9693978e81746b60544a4034281f1409000916232f3c4956626f7c8993939393939393939393939393939393939393939393938a7d7164574a3e3124170b000713202d3a4653606d79869393939393877b6e6154483b2e211514212d3a46535e6976828f9393939285796d6053473b30251a16222f3c4955626f7c88939393939386796d6053463a2d20130700000714212d3a4754606d7a849199939393999183796d605a50443b2f261b110600000000000000000000040d18232e39424e58606c77828f979393939392867b6e665c5144382c1f1206000003101c28343f4a54616c74818e949da4aca7a09d9992908f8f8f9192999a9e9f948f837a6d666f7c88949faaaea398928c88878886796c605346392d2013000000000008131e28313a45515c676d79828d92999fa6a39f9a97928f8e8d8e8e9092989b9fa3a69e99928c82796d675d51453f32291e140800000000000000000000000000000000000000000b1724313e4a5764717d8a99a4a9998c7f7366554b4135291d1104000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000a16212c3740494f5353535353535d69768390908376695d5353535353534f4940372c21160a000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130006131f2c3845515c67707d8a95998e8175685e52515d67717e8a96988d8073675c5145382c1f130600000e1a27333f4a555f676a6c6c6c6c6c6b696764615e56534e463e362d23190b0200000005121e2a36424d575e6c6c6c6c6c6c6c6c6c6c5e564c41362a1d1105000a1724313d4a5764707d8a9798887b6e6255524d453b30251a0e020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080f171f262a31373a3b3f4345464544423f3b3a36302a251e160e070000000000000000000a141e2830383d414346464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464642413d3730271e1409000000020d1720293036393b46464646464644433f3932292b32383b3d46464646464641403c362f261d1308000000010c17212a333a4044454646464646463935302820160c0200000006111b242d343a3d3e4646464643413e3830281e110700000000000000000000000000000000000000000006121f2b37434e58606d7984919e9f93887d6f665c51443b31261a0d04091623303c4956636f7c89969f9fa8a19e9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c978a7d7164574a3e3124170b000713202d3a4653606d7986939f9f9f94877b6e6154483b2e21151b27333f4953616e7b87939f9fa2978a7e7164574d42362a1e16222f3c4955626f7c88959f9f9f9386796d6053463a2d20130700000613202c3945525d686f7c87929fa69fa0958d81746c61564d41382d22170d030000000000000000010c161f2834404b545f6a727f8b949fa9a89e938b7e71695f544a4034281c1004000006121f2b3844505c66717e8b939ea6aea59d95908a86838282838486898d92979f959083786d73808d99a6b0a89f9286807c7a7b7d7063574a3d3024170a00000000010d19242f3a43505a606d79828f949fa3a7a099928e898583818181828386898e92999fa7a39f948f82796d605b51443b3025190e0200000000000000000000000000000000000006121e2b37424d576774818e9aaba297897c6f6256493c2f24180d01000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000f1b27333e49525a5f60606060606069768390908376696060606060605f5a52493e33271b0f000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130004101c2934404b55616b7683909d92867a6d61544c55606c7884919d9285796d6053473a2d2014070000101d2936434f5b6771777879797978787674716d68625f5850483e352b1d140a0000000714202d3a46525e6976797979797979797976685e5246392d201307000c1926333f4c5966727f8c999285796a63615e574d42362a1e1105000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060d141a20262b2e2f33363839393736322e2d2a251f19130c0500000000000000000005101b26303a42494e4f5353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353534f4d49423930261b1004000008141e29323b414653535353535353514f4a443b32353d4448495353535353534e4c4841382f251a0f03000007121e29333c454b505253535353535346413a32281e13080000010c18222d363f454a4b535353534f4e49423a3023190f050000000000000000000000000000000000000000030f1b26313c45515d67707d8a939e9a9183786d60574d42362a1f160c0a1623303d495663707c899aa4aca196918f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8a7d7164574a3e3124170b000713202d3a4653606d798693a0aca194877b6e6154483b2e21151f2b3744505b65737f8c99a4afa99c8f8276695e52463a2d2016222f3c4955626f7c8895a2aca09386796d6053463a2d201307000004111d2935414c56606a727f8c949ea8a89d928a7d70695e53493f33271f150b010000000000000008131e28313a45515c666f7c86929fa6aba1968e81756c62574d42392e23180c0000000713202d3a4653606d7884919ea5afa69d938e837d797776757677797c80858c9298958e81747683909ca9aca0958a7e736f6e6e706b6155483c2f2316090000000004111d2935414c56616c74818e949ea6a69f959087817c79767474747577797d818790959ea5a69e948e81756d62564c41362a1e14080000000000000000000000000000000000000814212e3a47535f697884919eab9e9285796c605346392d20130700000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000000000000000121e2b37434f5a646c6c6c6c6c6c6c6c7683909083766c6c6c6c6c6c6c6c645a4f43372b1e12000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201300000c18232f39434f5964717e8a97998b7f7265554b505b65727e8b97978a7d7164574a3e2f24180c0000111e2a3744515d6a778385868686858483817e7a756e6a615a50473d2f261b110600000815212e3b4854616e7b86868686868686867a6d6154473a2e211407000e1a2734414d5a6774808d9a91847770706e695e52463a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e151a1e212226292b2c2c2b292521201e19140d0802000000000000000000000915212c38424c545a5c6060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060605c5a544c42372c21150900020e1925303b444c525f6060606060605d5b554d44393d474f54566060606060605a58534a41362b20140800000c18232f3a454e575c5e60606060605f524c443a3024190d010005111d29343f48505658606060605c5a544c42352b21160b0000000000000000000000000000000000000000000a15202935404b55616b75818e98a0958c7f72695f53463e31281e130815222f3b4855626e7b87939fa99e91848383838383838383838383838383838383827d706356493d3023160a000713202d3a4653606d798693a0aca194877b6e6154483b2e2115202d394653606c7884919eabb5ac9f93877b6e6154473d32271b222f3c4955626f7c8895a2aca09386796d6053463a2d2013070000010d19242f3a434e58606c77828f96a1aba49e92857b6e655b50443c31271d1207000000000000050e19242f3a434f59606d79839098a3aea39991847a6d605a50453c30271c12070000000b1824313e4b5764717e8a96a0acac9f948e8179716d67696869676d70747a7f869095938a7e7885929fabaa9d9184776c6261616361594f44382c201407000000000613202c3945525d68717e8a939da6a89f948f837c746f6c6668676768666d70757c838f939ea7a69e938b7f72685e52463b3025190d0100000000000000000000000000000000000815222f3b4855626e7b8896a1a89b8e8275665b5044382b1f120600000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000013202d3946535f6c767979797979797979839090837979797979797979766c5f5346392d2013000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000007121d27313e4653606d7984919c908376675d514953606d7985929b8e817468554b4035291d100400121f2c3945525f6c78859292999292918f8e8b87827c716c61594f41382d22170b00000815212e3b4854616e7b87939393939393877a6d6154473a2e211407000f1b2835424e5b6875818e9b91847d7d7d7b6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e121415191d1e1f1f1e1c181414110e09020000000000000000000000000d1925323d49545e66696c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c69655e54493d3125190d0005111e2a36414c565e6c6c6c6c6c6c6c6a675f554a3f444f5960636c6c6c6c6c6c67645c53483c3024180b00030f1b2834404b5760686b6c6c6c6c6c6c5d564c4135291d1105000915212e3a45505a62656c6c6c6c69665e54473d33271c10040000000000000000000000000000000000000000040c18242f39434f59616e7b85929f9f92867b6e615a50433a2f24190c14212e3a47535f6975818e97a29d9084787676767676767676767676767676767676706b6054483b2f221609000713202d3a4653606d798693a0aca194877b6e6154483b2e211d2935414c5563707d8996a0acacafa4998c7f7266584e43382c1d222f3c4955626f7c8895a2aca09386796d6053463a2d20130700000008131e28313d44505b656d7a849199a3ada1978f82776c60584e43392f24180e0500000000020b17202935414c56606b73808d95a0aaa69f92877d6f685d52483e332a1e150b00000005121e2a36424d576875818e9ba8afa49a8f82786d66605d555c555c6063676d727b838f9391857b8797a2ada79a8d8074675a545557554f473e33281c100400000004111d2935414c55606d7a85929ea5aca0968f82796e6a62605b545a5b545c60636a6e78818f959faba59f92857a6e61564c41362a1e11050000000000000000000000000000000003101c28343f4a5465727f8b98a8a7988b7e7165544a3f33281c0f0300000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000013202d394653606c798686868686868686909494908686868686868686796c605346392d2013000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000008121d262c3844505c6674818e9b92867a6d605347515d6775828f9b918477675d5145392c1f130600121f2c3945525f6c7885929493939496999a99938e867e716b6053493f33271b0f03000815212e3b4854616e7b87949f9f9f9f94877a6d6154473a2e211407000f1c2936424f5c6975828f9c95918989897e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020608080c10121312110f0c0807050200000000000000000000000000000f1c2835414e5a6670767979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797570655a4d4135281b0f000714202d3946525e68767979797979797771675b4f434854606b70797979797979746e64584c4033271a0d0004111e2a3744505c687278797979797976685d5246392d201307000b1724313d4a56626d7179797979767066594f44382c20150a00000000000000000000000000000000000000000007121d27313e46525e69727f8b959f988f82756c61554c4135291e14121e2b37424d57616e7b85929fa0958c80736c6969696969696969696969696969696360594f44382c201307000713202d3a4653606d798693a0aca194877b6e6154483b2e21202c3945515d6775818e9ba8a39fa3ab9d9184776a605448392f24222f3c4955626f7c8895a2aca09386796d6053463a2d201307000000010c161f27333f49535e686f7d87929fa6a99f948c7f726a5f554b40352920170b020000000a141d29333b45525d68707d87939fa7aa9f948c80736b60564c41362d21180c030000000714202d3a46525e697885919eabac9f93877c6f665c54514b4f4b5153555d60696e79818f949083909da9b3a4988b7e7165584b484a48443e352c21160b000000000613202c3945515d6773808d97a1ada69e91847a6d675f5853504a4e4e4b5153585f666d79839099a3ada2978d8174685e5246392d2014090000000000000000000000000000000006121f2c3844505c6675828f9ba8a095877b6e6154483b2d22170b0000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000013202d394653606c7986939393939393939c9f9f9c9393939393939386796c605346392d2013000b1825323e4b5865717e8b98a4aca295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c201300030e19242f3840474a5464717e8a9799897c6f6256494b5565727e8b9893867a6d6053473a2d20140700121f2c3945525f6c78858887868787898d92979f9892887d70655b5044372b1f1205000815212e3b4854616e7b8794a1acaca094877a6d6154473a2e21140700101c2936434f5c6976828f9ca09d96968b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101c2936434f5c6976828686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868275695c4f4236291c0f000814212e3b4754616e7a86868686868683776a5d5144495663707d8686868686868074675a4e4134271b0e0005121f2b3845525e6b788586868686867a6d6154473a2e211407000b1825323e4b5865717e8686868682766b6054483c32261b0f030000000000000000000000000000000000000000010b151f2a36424d56606c788390999e948a7e71675d51453c30261c111a26313c46525e68717e8a929c9f93887e716c605b535c5c5c5c5c5c5c5c5c5c5c56544f473d32271b1003000713202d3a4653606d798693a0aca194877b6e6154483b2e21212d3a4754606d7a86929fa3999299a3a096897c6f62554b403529222f3c4955626f7c8895a2aca09386796d6053463a2d20130700000000040d17222d38414c56606b737f8c949fa9a69f92867c6f675d51453e33291d140a000006111b262f3b45505a606d7a849199a4aea2989083786d60594f443a2f241b0f06000000000815212e3b4854616e7b8797a1adaa9d9083776a5f544b4540424045474b51575f676d78828f9590959fabb0a3968a7d7063574a3d3d3c38332c231a1005000000000714212d3a4754606d7a85929fa9aa9e94897d70685d554e46443f41414045464e545c676f7c87929faca99f92867a6e6154473c31261a0e020000000000000000000000000000000713202d3a4653606d7985929faa9d918477695e52463a2d1c11060000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000013202d394653606c798689898989898989909595908989898989898986796c605346392d2013000b1825323e4b5865717e8b989f9f9f95897c6f6256493c2f23160900000d1a2733404d5a6673808d999f9f9f9386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c20130007131f2b36404a52585a616e7b879a978a7e71645753595b626f7b889599887c6f6255493c2f221609000916232f3c4956626f7c7b7a7a7a7b7d808590959f9a9184796c605346392d201306000815212e3b4854616e7b8794a1aeada094877a6d6154473a2e21140700101d293643505c6976838f9ca9aaa3988b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101c2936434f5c6976828f939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393938f8275695c4f4236291c0f000814212e3b4754616e7a87939393939084776a5d5144495663707c89939393938d8174675a4e4134271b0e0004101d2935404b556c788592939393877b6e6154483b2e211508000613202d394653606c7883909994897d7063584e43372b1f1306000000000000000000000000000000000000000000030d1925303b44505b666f7c87929f9e91847a6d60584e42382e231715202a36414d56616c73808d939d9a92877e736c655d554e5050505050505050504948443d352b21160b00000713202d3a4653606d798693a0aca194877b6e6154483b2e212b37434e5865717e8b98a29f9286929fa89a8e8174675d5145382c222f3c4955626f7c8895a2aca09386796d6053463a2d201307000000000006111b262f3a444f59606c77828f97a1aba3999184796d605a50453b2f261b1106030c17222d38414d57616c75818e96a1aba59f92857b6e665c50473d32281e120900000000000916222f3c4955626f7c8895a9b3a79a8d817467584e4239352f34383a40454d555c666d7a85919d9fa7b1afa396897c706356493d302f2c28211a11080000000005111e2a36424d5765727f8b98a2aea99c8f82756b60564c433c38332d2e34383c424b555f6a74818e9ba8aea3988c7f7266574d42372b1e1205000000000000000000000000000000091623303c4956636f7c8998a2aa9a8d807467574d42362a1e0a000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000a1723303d4a5663707d7d7d7d7d7d7d7d839090837d7d7d7d7d7d7d7d7063564a3d3023170a000b1825323e4b5865717e8b9393939393897c6f6256493c2f23160900000d1a2733404d5a6673808d939393939386796d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000b1723303c47525c64676c6d798693998c7f7266595d64686c6d7a8799978a7d7164574a3e3124170b000815222e3b4754606a6f6e6d6d6d6e70737a83909da096897c6f6356493c30231609000815212e3b4854616e7b8794a1acaca094877a6d6154473a2e21140700101d293643505c6976838f9ca9b1a5988b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101c2936434f5c6976828f929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292928f8275695c4f4236291c0f000814212e3b4754616e7a87949f9f9d9084776a5d5144495663707c89969f9f9a8d8174675a4e4134271b0e0006131f2c3945515d677986939f9f95887b6e6255483b2f2215080005121f2b3744505b656f7c87939d9083766a5f53473b2e2115090000000000000000000000000000000000000000000009141f28333f4a545f6a74808d96a1978d80746a60544a3f34281f141925303b44505a606c77818e939c99928b80776d675f585045414343434343433d3b38322b23190f0400000713202d3a4653606d798693a0aca194877b6e6154483b2e212e3a47535f6a7683909daa9b8e828e97a19f9285796d6053473b30252f3c4955626f7c8895a2aca09386796d6053463a2d2013070000000000000a141d28323d44505b656d7a859199a4aba0968e81746c61574d41382d22170d0b151e27333f49535e69717e8a939ea8a89e938a7e71695e544a3f352b20160c0000000000000a1723303d4a5663707d8996a3b0a6998c7f7366594c402f2924292c2f353b434b545d68707d8a959fabb7afa396897c706356493d3023201c16100800000000000714202d3a46525e697683909daaada196897d7063594f433a312b282223282c3039434e58626f7c8895a0acaa9d908477695f53463a2d211407000000000000000000000000000004111d2935414c566673808c99aaa3988a7d7063574a3d30251a0e000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000916222f3c4854606b70707070707070768390908376707070707070706b6054483c2f221609000b1825323e4b5865717e868686868686867c6f6256493c2f23160900000d1a2733404d5a66738086868686868686786d6053463a2d201307000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000d1a26333f4c58646e7479797985929a8d8073675a646f747979778692988b7e7165584b3e3225180b0006131f2b38434e586062616160606163686f7c8899a4988b7e7265584b3f3225180c000815212e3b4854616e7b87949f9f9f9f94877a6d6154473a2e21140700101d293643505c6976838f9ca9aca5988b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1c2935424f5c6875828585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858275685b4f4235281c0f000814212e3b4754616e7a8794a1aa9d9084776a5d5144495663707c8996a3a79a8d8174675a4e4134271b0e000714202d3a4753606d7a8699a4a295897c6f6256493c2f23160900030f1b27333f49535f6a75828f9b95887c6f6255493c31261a0e02000000000000000000000000000000000000000000020b17222d38424e58606d7984919e9f93877c6f665c50443b30251a141f29323e44505b656c78818d929f9f928c81796f6a625a514c433c34363636302f2c27211911070000000713202d3a4653606d798693a0aca194877b6e6154483b2e28343f4a54626e7b88959fa398897d85919ea2988a7e7164574d42362a2f3c4955626f7c8895a2aca09386796d6053463a2d201307000000000000020b162027333f49535e68707d87939fa6a89d928a7e70695e53493f33271f15121d27303944505b656e7b85929fa5aba0968e81746c61574d42382e23190d040000000000000a1724313d4a5764707d8a97a3b0a5988c7f7265594c3f2e23181c1f24293139424c56616c7683909da9b3afa396897c706356493d302316100b050000000000000814212e3b4754616e7b87959fabab9e9184786c6053463d31281f1c17181c1f27313c47535f6a7784919daaaca095887b6e6155483b2e22150600000000000000000000000000000713202c3945525d687683909da99f92867a6d6053473a2d201409000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000713202c38444f5960636363636363697683909083766963636363636360594f44382c201307000b1724313d4a56626c71797979797979796f6a6054473b2e22150800000c1926323f4b58636e737979797979797976665c5044382c1f1206000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000e1a2734414d5a67748086868689979a8d8174675b6874818686868999988b7f7265584c3f3225190c00030f1b27323d464e5456555453545456606c7986939f998c807366594d4033261a0d000815212e3b4854616e7b87939393939393877a6d6154473a2e21140700101d293643505c6976838f9c9f9f9f988b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2834414d59656f75797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979756f65594d4134271b0e000814212e3b4754616e7a8794a1a99d9084776a5d5144495663707c8996a3a79a8d8174675a4e4134271b0e000714212e3a4754616d7a8794a0a396897c706356493d3023160a00000b17222d38414e58636f7c89959a8d807367574d42362a1e12050000000000000000000000000000000000000000000006111c262f3c45515d67707d8a949e999083786d60574d42362a1f15172027333f49535b666c74808b92989c938f847c716c605d554e463e362e292322201b160f07000000000713202d3a4653606d798693a0aca194877b6e6154483b2e2c3844505c6673808d9aa79f928679818e9baa9c8f8276695e52463a2d2f3c4955626f7c8895a2aca09386796d6053463a2d20130700000000000000040e17222d38414c56606b73808c949fa9a59e92857b6e655b50443c31271d18232e39424e58606c77828f97a2ada3999184796d605a50453b30261c1007000000000000000a1723303d4a5663707d8996abb5a6998d807366544a403428211e1a181f27303a44505a64707d8a97a2adafa396897c706356493d3023160a00000000000000000b1824313e4b5764717e8a97a7b1a79a8e8174665b5044382b1f160f0b0c10151f2b37434e586773808d9aa6b1a7988b7e7165584b3e2d22170b00000000000000000000000000000714212d3a4754606d7a86929fa99c8f8276675d5145392c1f1306000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000004101c27333d474f5456565656565d69768390908376695d5656565656544f473d33271c1004000915212e3a45505a62656c6c6c6c6c6c6c6260584e43382b1f130600000a17232f3b47525c63666c6c6c6c6c6c6c6c5c544a3f34281c1003000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000e1a2734414d5a6774808d939393a19a8e8174675b6874818e939394a3998c7f7366594c403326190d00000a162027333f49535b606060606062666e7b8799a4988c7f7265594c3f3226190c000815212e3b4854616e7b86868686868686867a6d6154473a2e21140700101d293643505c6976828f93939393938b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925313d49545d65686c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c68655d53483d3125180c000814212e3b4754616e7a87949c9c9c9084776a5d5144495663707c89969c9c9a8d8174675a4e4134271b0e000815222e3b4855616e7b8894a1a3978a7d7064574a3d3124170a000006111b262f3c4854606b7783909d918478695f53463a2d21140700000000000000000000000000000000000000000000000a141d2935414b55616c75828f98a0958b7f72695e52463e31271d1217222d38414a545b606e737e8691969e9691867e756d675f58504840372e261c13100b0400000000000713202d3a4653606d798693a0aca194877b6e6154483b2e2d3a4653606d7985919ea99c8f82767e8a99a39f93877b6e6154483d322f3c4955626f7c8895a2aca09386796d6053463a2d201307000000000000000006111b262f3a444f59606d78828f97a1aca1978f82776c60584e43392f241f2834404b545f6a727f8c949fa9a69f92877c6f675d51483e33291e140a00000000000000000915222f3c4855626f7b8899a3afa89b8f8275665c51443a322d2b2627272628323e4653606d7985929fabafa396897c706356493d3023160a00000000000000010e1b2834414e5b6774818e9aa7b4aa978a7e7164544a3f3328190d040000040d1b26323d4a5764707d8a97aab4a79b8e81746853493f33271b0f03000000000000000000000000000b1724313e4a5764717d8a99a3a9988c7f7265554b4035291d1004000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000000000000000000b16212b353d44484a4a4a4a505d69768390908376695d504a4a4a4a48443d352b21160b000005111d29343f485056586060606060606056544e463d32271b0f03000007131f2a36404a52585a606060606060605f504a42382e23170c00000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000e1a2734414d5a6774808d9a9fa0a79b8e8174685b6874818e9b9fa0a6998c807366594d4033261a0d000005121f2b3744505b656c6d6c6c6d6f7278818e9ba095897c6f6356493c30231609000714202d3a46525e6976797979797979797976685e5246392d20130700101d293643505c697682868686868686867e7265584b3f3225180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915212c37424b54595c5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5b59534b42372c201509000814212e3b4754616e7a878f8f8f8f8f84776a5d5144495663707c898f8f8f8f8d8174675a4e4134271b0e000915222f3c4855626f7b8895a2a4978a7e7164574b3e3124180b000007111b252c38434f5966737f8c9996887b6e6155483b2e2215080000000000000000000000000000000000000000000000020b18242f3a43505a616e7b86929f9f92867b6e61594f43392f2418111b262f38424a505c636c717c848e939f98928b817a6f6a625a524940382e251c11080000000000000713202d3a4653606d798693a0aca194877b6e6154483b2e36414c5664707d8a97a1a8988c7f727a86929fa4998c7f7366594f43382f3c4955626f7c8895a2aca09386796d6053463a2d2013070000000000000000000a141d29323d44505c666e7b85929aa4a99f948c7f726a60554b40352928313a45515c666f7c86929fa6a99f948c7f736a60554b41362c21170c0200000000000000000714202d3a4753606d7a86929facab9e9285796d60564c443d3a373134333332323845515c6675828f9ca8afa396897c706356493d3023160a0000000000000005111e2a36414c566a7683909da9aea298887b6e6155483b2d221708000000000a15212e3b4854616e7b8798a2aeaa9d908377655b5044372b1f120500000000000000000000000006121e2b37424d576774818e9aaba197887c6f6255483c2f24180c00000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000000050f19232b33383c3d3d3d43505d69768390908376695d50433d3d3d3c38332b23190f050000010c18222d363f454a4b535353535353534947433d342b20160a000000020e19242e3840474b4d5353535353535353443f3830261c110600000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000e1a2734414d5a6774808d9aa7b3a79b8e8174685b6874818e9ba7b3a6998c807366594d4033261a0d00000613202d394653606c777979797a7b7e838e939e989083786c605346392d2013060005121e2a36424d575e6c6c6c6c6c6c6c6c6c6c5e564c41362a1d1105000f1c2835414e5a66707679797979797979726d62564a3d3124180b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101b26303942494d4f5252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252524f4d48423930251b0f04000714212d3a4754606d7a8283838383838174675b4e414855626f7c8283838383827f7265584c3f3225190c000916232f3c4956626f7c8995a2a5988b7e7265584b3f3225180c00010d18232d373f464956626f7c8999978a7d7164574a3e3124170b00000000000000000000000000000006060606060606060007131d28313e46535e69727f8c95a0988e81756b61554b4035291d14141d262f383f44525a616a6f7a818b92989f938e847c716c635b524a40372e231a0d0400000000000713202d3a4653606d798693a0aca194877b6e6154483b2e3946525e6875828f9ba9a196887b6f76828f9cab9e9184776b605448392f3c4955626f7c8895a2aca09386796d6053463a2d201307000000000000000000020b172028343f4a545e69707d88939fa7a69f92877c6f675d51453e332f3a434f59606d79839098a3ada2979082786c60584e433a2f241a0f0500000000000000000006131f2c3945515d677783909dabada1978a7e71685e564f484742424140403f3f3f404b546673808c99a6afa396897c706356493d3023160a000000000000000713202d3946525e687885929fabac9f9285796c605346392d201306000000000714212d3a46535e697985929facac9f9285796c605346392d2013060000000000000000000000000814212d3a47535f697884919eab9e9185786c605346392d20130700000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000005101a232c33393c3d3d3d43505d69768390908376695d50433630302f2c27211911080000000006111b242d343a3d3e464646464646463c3b38322b22190f040000000008121c262e363b3f40464646464646464638342e261e150a0000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000e1a2734414d5a6774808d9aa7aca79b8e8174685b6874818e9ba7aca6998c807366594d4033261a0d00000613202d394653606c7984868687888b90959a9590867c6f665b5044382b1f120600020e1a25303b454d525f60606060606060605f524c443a3025190d01000d1926323e49545e66696c6c6c6c6c6c6c65625b51453a2e22150900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141e2730373d414246464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464642413d3730271e140900000713202c3945525d686d767676767676746f64584c4047535f6a6f767676767676726d62564a3e3125180b000a1723303d4a5663707d8996a3a5988c7f7265594c3f3226190c0006121e29353f49515759606d798692998c7f7366594c403326190d0000000000000000000002060a0c0d131313131313131313130c161f2a36424d57606d788390999e938a7d70675d51453c2f261b11141d262d33404850585f686d757e8690959d9691867e736d645c524940352c1f160c01000000000713202d3a4653606d798693a0aca194877b6e6154483b2e3a4754616d7a86929fab9e9184786a727f8b99a4a096897c6f63554b40353c4955626f7c8895a2aca09386796d6053463a2d20130700000000000000000000050e17232e38424d56616b73808d959fa9a3999184796d605a50453b35414c56606b73808d95a0aaa59f92857b6e665b50463d31281d12080000000000000000000004101d2935404b5566737f8c99a3aea99e91847a6d68615955534d4f4e4d4c4c4c4b4b4c5865727f8b98a5afa396897c706356493d3023160a000000000000000714212e3a4754616d7a8798a2aeaa9d918477665b5044382b1f12060000000005121e2a36424d576a7784919daaaea298877a6e6154473b2e2114080000000000000000000000000815222e3b4855616e7b8896a1ac9b8e8174655b5044372b1f120500000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000000000000000000b17222c363e44494a4a4a4a505d69768390908376695d5043362a2322201c160f0800000000000009121b22292e3132393939393939392f2e2b27201910070000000000000a141c242a2f323339393939393939392c28231c150c030000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000e1a2734414d5a6774808d9a9f9f9f9b8e8174685b6874818e9b9f9f9f998c807366594d4033261a0d000006121f2b3844505b6673808c9993999292908d89837c6f6a5f544a3f33281c0f03000009141f29333b42464853535353535353535346413a32281e130800000915212d38424c545a5c60606060606060585651493f34291d1105000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c151e262c3134353939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393534312c251e150c02000004111d2935414c565d6069696969696967645c53483c434e585f6269696969696965625b51463a2e221609000a1724313d4a5764707d8a97a3a6998c807366594d4033261a0d000916222e3a46515b62656c667885919a8d8174675a4e4134271b0e000000000000000000070d121619192020202020202020202020201a25313b44505c666f7c87939f9e9184796d60584e41382d22170b141c2228363e464e565d606c717b838d929f98928b80736e645b51473d31281e1308000000000713202d3a4653606d798693a0aca194877b6e6154483b37434e5865727f8c99a3a99a8d8074676e7b87939fa89a8e8174675d5145393c4955626f7c8895a2aca09386796d6053463a2d201307000000000000000000000006111c26303b444f59606d78839097a2aba0968e81746c61574d423b45525d68707d87939fa7a89d938a7e71695e544a3f342b1f160c0000000000000000000000000c18242f3b4854616e7b86929fa8ada19690827a706b65615f575c5a5a5959585858585865717e8b98a4afa396897c706356493d3023160a000000000000000915222f3c4855626f7b8895aab4a99c8f837669544a3f33281c0f0300000000020e1a2531434f5c6976828f9ca9b4aa95887b6f6255483c2f221509000000000000000000000003101c28343f4a5465727f8b98a8a49a8a7e716453493f33271b0f0300000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000004101c28333e48505557575757575d69768390908376695d5043362a1d1613100b0500000000000000000911181d2124252d2d2d2d2d2d2d23221f1b160f0700000000000000020a12191f2326272d2d2d2d2d2d2d2d1f1c17110a03000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000e1a2734414d5a6774808d93939393938e8174685b6874818e93939393938c807366594d4033261a0d0000030f1c28333f4a54616e7b87939f92878583817d786f6a5f584e42382d22170b000000020d17212930363a3b4646464646464646463936302820160c02000005101b26303a42494e50535353535353534b4a453f372d23180c0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c141b212528292c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c282725201b140c03000000010d1924303a444c52545c5c5c5c5c5c5b58534a41363c464e53555c5c5c5c5c5c585651493f34291e1206000b1824313e4b5764717e8a97a4a69a8d8073675a4d4034271a0d000b1825313e4a57626d7279797983909b8e8275685b4f4235281c0f00000000000000010a12191e2325262d2d2d2d2d2d2d2d2d2d2d2d2d2d28343f4a54606a74808d97a1968d80736a5f53493f33271e13111317242d343c444c525a62696e78808b92999f928c80736d63594f433a2f24190d010000000713202d3a4653606d798693a0aca194877b6e6154483b3b4754606a7784909daba197897c70636876838f9caa9f9285796d6053473b3c4955626f7c8895a2aca09386796d6053463a2d2013070000000000000000000000000a141e29323e44505c666e7b85929fa4a89d938a7e70695e544a45505a606d7a849199a4aba0968e81746c61574d42382d22190d040000000000000000000000000714202d3a46525e6974808d96a1a9a89f9590847d77726e696a6867666665656565646465717e8b98a4afa396897c706356493d3023160a000000000000000a1723303d4a5663707d8996a3b0a89b8e8275685b4f422d22170b000000000000091c2835424f5b6875828e9ba8b0a396897d7063564a3d3023170a000000000000000000000006121f2c3844505c6675828f9ba89f93877a6e6154473b2d22170b0000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000814202d3944505a6164646464646469768390908376695d5043362a1d1007040000000000000000000000060c11151718202020202020201615130f0a0400000000000000000000080e1317191a202020202020202012100c060000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000e1a2734414d5a677480868686868686868174685b68748186868686868686807366594d4033261a0d0000000b17222d3846535e6976828f9b8f82787774706c655f584e463c2f261c110600000000050f171f252a2d2e39393939393939392e2d2a251e160e05000000000a141e2830383e4143464646464646463f3d3a342d241b110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002091015191b1c1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1c1b18150f0902000000000008131e28323a4145475050505050504e4c4841382f343c4347485050505050504c4a463f372d23180d01000c1825323f4b5865727e8b98a5a79a8e8174675b4e4134281b0e000c1926323f4c5965727f86868689959c8f8275695c4f4236291c0f000000000000000a131c232a2f32333939393939393939393939393939392e38424e58606d7a85919e9f92877c6f655b50443a3025191d202021222a323a414550575f666d747e8792989c928c7f726b61564c4135291d13070000000713202d3a4653606d798693a0aca194877b6e6154483b404b55626f7c8995a0ab9e9184796d6064717e8b98a2a2988a7e7164574d423c4955626f7c8895a2aca09386796d6053463a2d201307000000000000000000000000020c172028343f4a545e69707d8a929da7a59e92857b6e665b504d57616c75818e96a1aba3999184796d605a50453b2f261c10070000000000000000000000000005121e2a36424d57606d79849197a1a9a79f969189837f7b78767574737372727271717171717e8b98a4afa396897c706356493d3023160a000000000000000a1724313d4a5764707d8a97a3b0a79a8e8174675b4e4134281b060000000000010e1b2834414e5b6774818e9aa7b0a3978a7d7064574a3d3124170a00000000000000000000000713202d3a4653606d7985929faa9d908377685e5246392d1b11060000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000a1623303c4955616c70707070707070768390908376695d5043362a1d1003000000000000000000000000000105090b0b13131313131313090806030000000000000000000000000002070a0c0d1313131313131313060300000000000000000714202d3a4753606d7a8693a0adac9f9286796c5f5346392c2013000d1a26333f4c58646e7479797979797979746f6459646f7479797979797979736e63574b3f3226190c00000006111c2a36424d5764717e8a9792877b6e6763605b534e463c342a1d140a000000000000050d141a1e20212d2d2d2d2d2d2d2d21201d19130c050000000000030c161e262d3235363939393939393932312e29231b120900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004090c0e0f1313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313130f0e0c090400000000000000020c1620283035393a43434343434341403c362f262a32373b3c4343434343433f3e3a342d251b110700000c1926323f4c5965727f8c98a5a89b8e8175685b4e4235281b0f000c1926323f4c5965727f8c93939d9f9c8f8276695c504336291d1000000000000007121c252e353b3e4046464646464646464646464646464646464645525d68717e8a949f999083776c60564c41362a24292c2d2e2f30302f353e454d545c606c717d8692999f93887d70685d52453a2f24180d0100000713202d3a4653606d798693a0aca194877b6e6154483b45515d6774818d9aa7a6998d8073665c606d7a85929faa9c8f8276695e53463c4955626f7c8895a2aca09386796d6053463a2d20130700000000000000000000000000050e17232e38424d57616c74808d959faaa2978f82786c6058535e69717e8a939ea8a69f92877c6f675d51483e33291d140a0000000000000000000000000000020e1a25303b45515d676f7c8591979ea5a8a09e95908b8885838281807f7f7f7e7e7e7e7d7d808d9aa7afa396897c706356493d3023160a000000000000000b1824313e4b5764717e8a97a4b1a79a8d8174675a4e4134271b0e0100000000010e1b2734414e5a6774818d9aa7b0a4978a7d7164574a3e3124170b0000000000000000000000091623303c4956636f7c8998a2aa998d807366564c41362a1e0a000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000a1724313d4a5764707d7d7d7d7d7d7d7d8391908376695d5043362a1d100300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0acac9f9286796c5f5346392c2013000b1723303c47525c64676c6c6c6c6c6c6c68645d535d64686c6c6c6c6c6c6c66635c52473b2f23170a000000000e1a25313b4653606d798592998c8073665c535049413c342a22190b020000000000000002090e12141520202020202020201413110d080200000000000000040c141b212628292d2d2d2d2d2d2d2524221d18110900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040e161e24292c2d3636363636363433302b251d20262b2e2f36363636363632312e29231b13090000000d1a2633404d596673808c99a6a89c8f8275695c4f4236291c0f000c1926323f4c5965727f8c989faaa99c8f8376695c504336291d100000000000020d19232e3740464b4c535353535353535353535353535353535353534c56616c76828f989f948b7e71685e52463d302f35393a3b3c3c3d3d3c383b424a515a626b707e87939f9a92857a6d60554b4135291d110400000713202d3a4653606d798693a0aca194877b6e6154483b4753606d7985929fab9f94887b6e62545d6774818e9ba89f93877b6e6154483d4955626f7c8895a2aca09386796d6053463a2d201307000000000000000000000000000006111c26303b45505a606d78839098a2a99f948c7f726a605b656e7b85929fa5a99f948c7f726a60554b40362c21170b0200000000000000000000000000000009141f2935414b555f6a6f7c858f939c9fa4a79f9d989892908f8d8d8c8c8b8b8b8b8a8a8a8d929da9afa396897c706356493d3023160a000000000000000b1825313e4b5864717e8b97a4b1a79a8d8074675a4d4134271a0e0100000000010e1a2734414d5a6774808d9aa7b1a4978b7e7164584b3e3125180b0000000000000000000004111d2935414c566673808c99aaa298897d706356493d3025190d000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000013202d394653606c79868a8a8a8a8a8a8a9195908376695d5043362a1d1003000000000000000000000000000000000000000000010406070d0b0a08050000000003080b0d0e0d070604000000000000000000000000000000000000000000000714202d3a4753606d7a86939f9f9f9f9286796c5f5346392c20130007131f2b36404a52585a606060606060605b59534b53595b606060606060605957524a40352a1f13070000000009141f2c3845515c67748086868685796d6053463f382f2a22191007000000000000000000000205070813131313131313130707050100000000000000000000030a1015191c1d20202020202020181815110c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c13191d2021292929292929282724201a13151b1f21222929292929292525221e181109010000000d1a2734404d5a6773808d9aa6a99c8f8376695c504336291d10000c1926323f4c5965727f8c98a5b2a99c8f8376695c504336291d10000000000006121e2a3540495157596060606060606060606060606060606060606060605a616e7b86929f9e92857a6d61594f42393a4045474848494a4a48443d3940445059616c73808c96a0978d8073675d5145392c20130600000713202d3a4653606d798693a0aca194877b6e615448424d5764717e8a97a2aa9c908376695f535563707d8996a1a49a8c7f7366594f444955626f7c8895a2aca09386796d6053463a2d2013070000000000000000000000000000000a151e29333e45515c666e7b85929fa5a69f92877c6f67606c77828f97a2ada1978f82776c60584e43392f241a0f0500000000000000000000000000000000020d18242f3a434e585f6a6f7a82898f93999c9fa2aaa29f9d9b9a999998989898979797979a9da4aeafa396897c706356493d3023160a000000000000000b1824313e4b5764717e8a97a4b1a79a8d8174675a4e4134271b0e0100000000010e1b2734414e5a6774818d9aa7b1a4978a7e7164574b3e3124180b000000000000000000000713202c3945525d687683909da99f9285796d6053463a2d201308000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000013202d394653606c7986939393939393939393908376695d5043362a1d10030000000000000000000000000000000000000001070d1113141a181715110c0601080f14181a1b191413100c0701000000000000000000000000000000000000000714202d3a4753606d798693939393939286796c5f5346392c201300030e19242f3840474c4d535353535353534e4d4841484d4e535353535353534d4b4740382e24190e020000000004101c2834404b55646e74797979786d665c5044382d261d18100700000000000000000000000000000000000000000000000000000000000000000000000000000005090d0f10131313131313130c0b090501000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d1113141d1d1d1d1d1d1b1a18140f080a0f1215151d1d1d1d1d1d191816120d0700000000000e1b2734414e5a6774818d9aa7aa9d9083776a5d5044372a1d11000c1926323f4c5965727f8c98a5aca99c8f8376695c504336291d1000000000000a16232f3b46515b63666c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b69727f8c95a0978e81746b60544b40434b51535455565756554f473d343f47505a606d7884919e9f92857a6d6054473a2d21140700000713202d3a4653606d798693a0aca194877b6e61544846535e6976828f9ca9a2988b7e7165574d53606c7884919eac9e9184776b6054484955626f7c8895a2aca09386796d6053463a2d201307000000000000000000000000000000030c17212834404b545f69717e8a929da7a3999184796d6a727f8c949fa9a49e92857b6e655b50463c31281d120800000000000000000000000000000000000007131d28313c464e585f686d757c82878b8f929897999a9b9c9d9d9d9e9e9e9e9f9f9f9fa3abacb5afa396897c706356493d3023160a000000000000000a1724313d4a5764707d8a97a3b0a79a8e8174675b4e4134281b0e0100000000010e1b2834414e5b6774818e9aa7b0a3978a7d7064574a3d3124170a000000000000000000000714212d3a4754606d7a86929fa89c8f8275665c5145382c1f1306000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000013202d394653606c7986868686868686868686868276695d5043362a1d1003000000000000000000000000000000000000040c13181d2020272524211d17100b131a2024272726201f1c18120b030000000000000000000000000000000000000714202d3a4753606d798686868686868687796c5f5346392c2013000008121d262f363c3f414646464646464641403c373c404146464646464646403f3b352e261c12070000000000000c18232e3943525c64676c6c6c6b605c544a3f34281b140b0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010407071010101010100e0d0b08030000030608091010101010100c0b0906010000000000000f1b2835424e5b6875818e9b9f9f9d9184776a5e5144372b1e11000c1926323f4c5965727f8c989f9f9f9c8f8376695c504336291d1000000000000c1925323e4b57636d737979797979797979797979797979797979797979797978736d7883919a9e93897d70665c51454b555d60616263636360594f4438353e44505c66727f8b98a2988a7e7164574b3e3124180b00000713202d3a4653606d798693a0aca194877b6e6154484953616e7b87939fac9f92867a6d605447505b6573808c99a6a096897c6f63554b4955626f7c8895a2aca09386796d6053463a2d20130700000000000000000000000000000000050f18232e39424d57616c74818e95a0aaa0968e81746f7c86929fa6a79d928a7d70695e53493f342b1f160c00000000000000000000000000000000000000010c161f2a343c464e565e616b6f757b7f8285888a8c8d8f8f9090919191919292929292999ba3acafa396897c706356493d3023160a000000000000000a1723303d4a5663707d8996a3b0a89b8e8175685b4e4235281b090000000000020f1b2835424e5b6875818e9ba8b0a3968a7d7063574a3d3024170a000000000000000000000b1724313e4a5764717d8a99a3a8988b7f7265544b4034281c1004000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000013202d3946535f6c7679797979797979797979797670665a4e4235291c0f030000000000000000000000000000000003090d161d24292c2d3431302d28221b141d252b303334332d2c29231d150d09030000000000000000000000000000000006131f2c3845515c67767979797979797979756a5e5245382c1f120000010b141d242b303334393939393939393534302b3034353939393939393933322f2a241c130a0000000000000007121d2730404a52585a6060605e53504a42382e23170a02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1c2935424f5c6875818f939393939184786b5e5245382b1f12000c1926323f4c5965727f8c93939393938f8376695c504336291d1000000000000d192633404c5966737f868686868686868686868686868686868686868686868578666f7d88939f9d9184796d60574d515d676d6e6f6f70706b6055483d32343f4a54616e7b8899a49a8d8174675a4e4134271b0e01000713202d3a4653606d798693a0aca194877b6e615448505b6573808c9aa4a89b8e8174675d51454953616e7b88949fa89a8e8174675d514955626f7c8895a2aca09386796d6053463a2d201307000000000000000000000000000000000007121d27303b45505a606d79839098a2a89d938a7e79839098a3aaa0958d80746c61564d41382d22190d040000000000000000000000000000000000000000040d18222a343c444c52596063696e7276797b7d7f81828383848484848585858585868b909ba7afa396897c706356493d3023160a000000000000000916222f3c4955626f7c8895aab4a99c8f8276695c4f4330251a0e0200000000030f1c2936424f5c6975828f9ca8b5ab95897c6f6256493c2f23160900000000000000000006121e2b37424d576774818e9aaba196887b6e6255483b2e23180c00000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000000000000000121e2b37434f5a646c6c6c6c6c6c6c6c6c6c6c6c69665e544a3e32261a0d01000000000000000000000000000000060e151a1f282f35393a403e3d39342d241d262f363c4041403a38342f271f1a140d0500000000000000000000000000000004101c2934404b555c6c6c6c6c6c6c6c6c6c6a63594e42362a1d11000000020b12191f2326272d2d2d2d2d2d2d282724202427282d2d2d2d2d2d2d2626231f19120a0100000000000000000b151e2f3840474c4d5353535246443f3830261c11060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101c2936434f5c69768286868686868685786c5f5245392c1f12000c1926323f4c5965727f868686868686868276695c504336291d1000000000000d192633404c5966737f8c93939393939393939393939393939393939393939185786b6b74818e97a0968c7f73695f5353606d797b7b7c7d7d7063584e4338313a4653606d7986939f9c8f8276695c4f4336291c1003000713202d3a4653606d798693a0aca194877b6e61544853606c7884919eaca096897c7063554b4146535f697683909caa9f92857a6d60534955626f7c8895a2aca09386796d6053463a2d2013070000000000000000000000000000000000000b151e2a333e45515c676e7b86929fa5a59e9285818e95a0aaa3989183796d60594f443b2f261b1007000000000000000000000000000000000000000000050e171e252a323a41464f54575e6165666d6f717374757676777777787878787879797e8b98a4afa396897c706356493d3023160a000000000000000814212e3b4754616e7b8798a3aeaa9d9084776a574d42362a1e12050000000005111d2935414c566a7783909daaafa399877b6e6154483b2e2115080000000000000000000814212d3a47535f697784919eaa9e9184786a5f53473a2e1d120700000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000f1b27333e49525a5f60606060606060606060605d5a544c43382d22160a000000000000000000000000000000060f1820262b313a4045474d4b49453e362d222f3841484c4e4c47454039312a251f170f050000000000000000000000000000000c18232f39434b515f606060606060605f5e5951473d31261a0e0000000001080e13171a1a202020202020201b1a1814181a1b202020202020201a1917130e0700000000000000000000030c1d262f363c3f41464646453a38342e261e150a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1c2835414e5a6670767979797979797873695d5144382b1e12000b1825313e4a57626d72797979797979797670665a4e4235291c0f00000000000d192633404c5966737f8c999999999999999da0a7a9a29f999999999999999185786b616d7a85929e9f92867b6e615a5c6976828788898a85786a605448423f404653606d798699a49c8f8376695c504336291d1003000713202d3a4653606d798693a0aca194877b6e61544c5663707d8996a1ab9e9184786c6053463a424d5765717e8b98a2a2988b7e7164574d55626f7c8895a2aca09386796d6053463a2d201307000000000000000000000000000000000000030c18212934404b555f69717e8b939ea7a297928e939da7a69f92867c6f675d51473e32291d140a000000000000000000000000000000000000000000020c1720293036393a3e3f44484d5354545c606264666768696a6a6a6b6b6b6b6c6c6c717e8b98a4afa396897c706356493d3023160a000000000000000713202d3a4653606d7986929facab9f928578695e52463a2d201407000000000713202d3946525d687885929eabac9f9286796d6053463a2d2013070000000000000000000815222e3b4855616e7b8896a0ab9a8e817467584e43372b1f0b0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000a16212c3740494f535353535353535353535353504e4a433a31271c11050000000000000000000000000000030e18212a31373e434b51535a585650483e322b34414a53585a5953514b433e36312921170d03000000000000000000000000000007121d2731394045535353535353535353524e473f352b20150900000000000003070b0d0e131313131313130e0e0c080c0e0e131313131313130d0c0a07020000000000000000000000000b141d242b303334393939382d2c28231c150c030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1926323e49545e66696c6c6c6c6c6c6c6961574c4135281c10000916222e3a46515b62656c6c6c6c6c6c6c69665e54493e3226190d00000000000d192633404c5966737f8c8c8c8c8c8c8c8c9095a0a297928c8c8c8c8c8c8c8c85786b5d68717e8b949f988f82766c61566673808d959697897c6f625b534d4c4d4f58626f7c8895ab9b8e8275685b4f4235281c0f02000713202d3a4653606d798693a0aca194877b6e6154525d6875818e9ba8a4998c7f73655b5044373b4754606d7a86929faa9c8f8276695e5355626f7c8895a2aca09386796d6053463a2d20130700000000000000000000000000000000000000060f18232f39434d57616c74818e95a0a9a29e9b9da5a99e948b7f726a5f554b40352c20170b0200000000000000000000000000000000000000000008131e29323a4146474b4c4d4e4f51524a50535557595a5c5c5d5d5e5e5e5e5f5f5f65717e8b98a4afa396897c706356493d3023160a0000000000000006121f2b3844505c667784909daaaea298877b6e6154483b2e21150a000000000714212e3a4754616d7a8797a1adaa9e918477665c5145382c1f1306000000000000000003101c28343f4a5465727e8b98a8a4998a7d7164574a3e31261a0f0000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000005101b252e373e4346464646464646464646464643423e3831281f150a0000000000000000000000000000000915202a333c424750555d606764615a50443a323d46535c646766605c554f46423b33291f14090000000000000000000000000000010b151f272f343846464646464646464645423d352d24190f0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b131a1f2426272d2d2d2b201f1c17110a03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915212d38424c545a5c6060606060605f5d574f463b3024180c0006121e29353f49515759606060606060605c5a544c42382d21160a0000000000091623303c4956636f7d808080808080808083909d9f928580808080808080807f726556626c76828f989f948a7e71685d626f7c89959f9c8f82756d615e57595959616a73808d99a8998d8073665a4d4033271a0d00000713202d3a4653606d798693a0aca194877b6e615454606d7a86929fac9f93877b6e6153493f333945515d6775818e9ba89f93877b6e615355626f7c8895a2aca09386796d6053463a2d201307000000000000000000000000000000000000000007121d27313c45505a606d79839198a2adaba7a9ada1978f82776c60584e43392f231a0e05000000000000000000000000000000000000000000010d1925303a444c525457595a5b5c5d5e5b5953484a4c4e4f5050515151515252525965727f8c98a5afa396897c706356493d3023160a0000000000000003101c28343f4a546875818e9ba8b3aa978a7d7064574a3d32271b0d04000001081623303d495663707c8996a9b3a89c8f827569544b4034281c1004000000000000000006121f2c3844505c6675828f9ba89f93867a6d6054473a2d2114090000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000009131c252c33373939393939393939393939393635322d271f160d030000000000000000000000000000020e1a26313c454e535a61676d73716c61564c4137434e58646e74736d676159534d453b31251a0e020000000000000000000000000000030d151d23292c3939393939393939393836312b241b120800000000000000000000000104060712131313130908060300000000000000000000000000000000000000000000000000000001080e13171a1a2020201f1312100c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005101b26303a42494e4f53535353535352514c463d342a1f130800010d18232d373f464a4c53535353535353504e49423a31261c100500000000000915222f3b4854606b6f7373737373737374818e9b9e91847873737373737373726d62575a626e7b86929f9e91857a6d60606a7783909a9e948c7f756e69676666676b707c86929fa096897c6f6356493c3023160900000713202d3a4653606d798693a0aca194877b6e61545865727e8b98a3a99c8f8276695e5341382d35414b5563707d8996a1a49a8c7f73655b55626f7c8895a2aca09386796d6053463a2d2013070000000000000000000000000000000000000000010b151f2a333e45515d676f7c86929facb8b4b8ab9e92857a6d655b50463c31271d11080000000000000000000000000000000000000000000005111d2a36414c565e6164656768696a6b68655d534840414243434444444545454d596673808c99a6afa295897c6f6256493c2f23160900000000000000000b17232e3f4b5865727e8b98a8b2a69a8d807367584e43372b1f15100c090e131e2a36414c5666727f8c99a5b3aa998c7f7366594c402e23180c0000000000000000000713202d3a4653606d7985929fa99d908376685d5245392c2013070000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000000010a131b21272b2d2d2d2d2d2d2d2d2d2d2d2d2a2926221c150d0400000000000000000000000000000006121e2b37424e575f626c7179807e71685d52453c4754606a74817f79706b615e574d42362a1e1205000000000000000000000000000000030b12181c1f2d2d2d2d2d2d2d2d2c2c2a26201912090000000000000000000001070d1013141e202020201615130f0a0400000000000000000000000000000000000000000000000000000003070b0d0e131313120706030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141e2830383e41434646464646464544413b342b22180d02000007111b252d353a3e3f4646464646464643423e3831281f150a0000000000000713202c38444f5960636666666666666874818e9b9e9184786b66666666666665625b51535f6973808c96a0978d80746a6063707d88939f9c918c817b7673727374777d859298a29e9184786d6053463a2d20130700000713202d3a4653606d798693a0aca194877b6e61545f6a7683909daaa2978a7e7164574d422f262f3a4653606c7884919eac9e9184786c6055626f7c8895a2aca09386796d6053463a2d201307000000000000000000000000000000000000000000030d18212935404b555f6a737f8c99a6b2bdb0a3968a7d70685e53493f342a1f150b00000000000000000000000000000000000000000000000713202d3946525e686d71727374767778756f65594d3d323536373737383835404b556774818e9aa7b2a995887b6e6255483b2f22150800000000000000000615222f3c4855626f7b8896a0acaa9d9184776a6054473c31271f1c181b1a1e242d3946525e6876838f9ca9aea298897c706356493d30231607000000000000000000091623303c4956636f7c8998a2aa998c807366564c4135291d11040000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000010910161b1e2020202020202020202020201d1c1a16110a03000000000000000000000000000000000814212e3a47535f6a6e767e848d857a6d60584e43505a626f7c888c847d756e695e53463a2d2114070000000000000000000000000000000001070c10132020202020202020201f1d1a150f0800000000000000000000040c12181d20202b2d2d2d2d22211f1b150e070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c161e262d323536393939393939393835302a22191006000000000a131b23292e3132393939393939393635322d261f160d03000000000000030f1b27323d474f545659595959595b6874818e9b9e9184786b5e5959595959595751494d57606d7984919e9f93877c6f66606b73808d939f9c938e8783807f8081848a9297a19f928a7d70665c5044382b1f120600000713202d3a4653606d798693a0aca194877b6e6154626f7c88959fab9f9285796d6053473b31202b3844505b6673808d99a7a096897c706355626f7c8895a2aca09386796d6053463a2d20130700000000000000000000000000000000000000000007121d27313c46505a606d7984919eaab7b9b1a4978b7e71695f554b40342820170b02000000000000000000000000000000000000000000000714212e3a4754616d7a7e7f8081828485817568584e43372e2c2823282c2f3945515d677783909daaada196877a6d6054473a2d21140700000000000000000815212e3a47535f6a7784919eabaca095887c6f62584e4339312c282327262b2f35414c56616d7a86929facab9f9285796d6053463a2d201307000000000000000004111d2935414c566673808c99aaa298897c6f6356493c3024190d010000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000000000000050a0f12131313131313131313131313100f0d0a050000000000000000000000000000000000000815222f3b4855626e7c828a91968d80746a5f534b55616c76839096918a827b6e6154483b2e21150800000000000000000000000000000000000000040613131313131313131312110e090400000000000000000000040d161d24292c2d38393939392f2e2b2620181007000000000000000000000004090d0f0f131313131313130d0c0a060200000000000000000000000105090b0b13131313100f0d0905000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c141b212628292d2d2d2d2d2d2c2b28241f1810070000000000010a11181e2225262d2d2d2d2d2d2d292926211c150d0400000000000000000b16212b353d4448494d4d4d4d4e5b6874818e9b9e9184786b5e514d4d4d4d4c4a463f45515c67707d89939e999083786d60606c77808c92989f9992908d8c8c8e91969e9f99928c80736b61544a3f34281c100300000713202d3a4653606d798693a0aca194877b6e615c6673808d9aa7a79a8d8174675c5145382c1f28333f4a54626e7b88959fa89b8e8174675d626f7c8895a2aca09386796d6053463a2d2013070000000000000000000000000000000000000000060f18242f39434e58626c75818e96a0acafacafac9f92867b6e675c51453e32291d140a000000000000000000000000000000000000000000000815212e3b4854616e7b878c8d8e8f909184786a6054473f3a38342e34383a404b55606d7a86929facab9e918578675d5145392c201306000000000000000006121f2b37434e586673808d99a3afa89b8e81756a5f554b433c38342e3431373a4145525d68737f8c99a3afa79b8e8175675c5145382c1f130600000000000000000713202c3945525d687683909da99f9285796d6053463a2d201308000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d1a2734404d5a6773808d949e9f92877c6f625a515c67717e8a949f9e93867d7063574a3d3024170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f282f35393a45464646463c3b37322a22180e04000000000000000002091015191b1c20202020202020191916120d07000000000000000000060c11151718202020201d1c1915100a030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a1015191c1c2020202020201f1e1c18130d060000000000000000070d12161819202020202020201d1c1916100a03000000000000000000040f19232b32383b3c404040414e5b6874818e9b9e9184786b5e51454040403f3e3a34404b55606b75818e97a0958c7f72695e656c777f868e92999b9c9a99999a9d9b99938f867f736e63594f42382e23170b0000000713202d3a4653606d798693a0aca194877b6e61606d7985929eaba095897c6f62554b4034291c222d3847535f697683909daa9f92857a6d60626f7c8895a2aca09386796d6053463a2d20130700000000000000000000000000000000000000030c18212935404b555f6a717e8b939ea8aba39fa3aba2989083796d60594f443b2f261c11060000000000000000000000000000000000000000000714212d3a46535e697884919a9b9c9d96897c6f625a504a464440434044464b515c67717e8b98a3aeaa9b8f827568554b4135291d11040000000000000000030f1a26313c4854616e7b87929faaac9f92877c6f675d554e46454041414142474c515b606d7a85929eabaca095897d7063554b4034281c100400000000000000000714212d3a4754606d7a86929fa89b8f8275665c5044382c1f1206000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000000000000000000000000000004080a0a131313130d0c0a070200000000000000000000000713202d3a4653606d78839097a2999083766c6156606d7984919e9f958d80736b6155483c2f23160900000000000000000002070c0f11121313130e0706040000000000000000000000000000000000000000000007121d28313940454751535353534947433c342a20150a00000000000000030c141b212528292d2d2d2d2d2d2d2625231e19120a010000000000000911181d2124252d2d2d2d292826211b140c0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005090d0f101313131313131212100c0802000000000000000000000106090b0c13131313131313100f0d0a0500000000000000000000000007111921272c2f30333335414e5b6874818e9b9e9184786b5e514538333332312e2e39434f59616d7a85929f9f92867b6e615b656c727b81868b8e9091929291908e8b87827c726d635c52473e30261c11060000000713202d3a4653606d798693a0aca194877b6e6164707d8a97a1ab9d9083776a605443392f23181c2b37424d5765727e8b98a3a2988b7e7164626f7c8895a2aca09386796d6053463a2d201307000000000000000000000000000000000000000b151e2a333c45515d676f7c86929fa5a79f999299a3aaa0958d80746b61564d42382d22170d04000000000000000000000000000000000000000005121e2a36424d576774818e9aa6a9a89b8e81756c605c5453514a504a5153555d606d7983919daaaea2988b7e7165584b3e2f24180d010000000000000000000a15212d3a46535e6975818e98a3aea3999083796d675f5853514b4e4e4e4d53555d606d74818e97a1ada69d9083776b605443392e23180c0000000000000000000b1724313e4a5764717d8a99a3a8988b7e7265544a3f34281c1003000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d10030000000000000000000000000000000000000000000000000000050b101416171f2020201a1917130e070000000000000000000006131f2c3845515c666e7b85929a9f948b7e71675e68737f8c96a1989083796d60594f44382c2014070000000000000000060d13181c1e1f2020201b1313100c0700000000000000000000000000000000000000010d18242f39434b51535e6060606055534e463c32261b0f040000000000020c151e262c3135363939393939393933322f2a231c130a000000000009121b22292e3132393939393635322d261e160c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070f161b202223262835414e5b6874818e9b9e9184786b5e5145382b2626251d27303d46525e68717e8b949f988f82756c615b606a6e757a7e81838585868584817f7b756f6a635b524940352c1e140a000000000713202d3a4653606d798693a0aca194877b6e616875828f9ca9a3998c7f7265584e4331271d121a26313c4754606d7a86929faa9c8f837669626f7c8895a2aca09386796d6053463a2d20130700000000000000000000000000000000000007121d27303c45505a606d79839198a2aa9f9590869299a4a79d928a7d70695e544a3f332820160c0100000000000000000000000000000000000000020e1a25313c4855626f7c88949faaaa9e938a7e726d6662605c545d545c6062676d75808d95a0aca99f92867a6d6154473a2e2114070000000000000000000005121e2a36424d57616e7b86929fa6aba0958f82796f6a63605c555b5a5b575f62676d747f8c939ea9a99f948a7d7064594f4430271d1207000000000000000005121e2b37424d576774818e9aaba096887b6e6155483b2e23170c00000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d1003000000000000000000000000000000000000000000000000000810171c2023242c2d2d2d2726231f19120a01000000000000000004101c2834404b545e69707d88939f9e91857a6d616e7b86929f9f92867b6e665c51473e33281c1004000000000000000710171e24282b2c2d2d2d28201f1c18120b03000000000000000000000000000000000004101d2935404b555d606b6c6c6c6c625f584e43372b21160a000000000009141e2730373d414246464646464646403e3b352e251c120700000006111b242d343a3d3e4646464643413e3830281e1108000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040b0f1315161b2835414e5b6874818e9b9e9184786b5e5145382b1e1918151e2a36414c56606c778390999e938a7d70675d575f62686e717477787979787775726e69625f58514940372e231a0c02000000000713202d3a4653606d798693a0aca194877b6e616e7a86929fac9f92867a6d6154473d3221150b15202c3945525d6875818e9ba99f93877b6e626f7c8895a2aca09386796d6053463a2d2013070000000000000000000000000000000000060f18232e39434d57616c74818e95a0aaa29890837d87939fa7a49e92857b6e665b50443d32281e130800000000000000000000000000000000000000000915212e3b47535f6a76828f98a2aea59f92877f78726f6d666a696a666d6f7379818d929da7aca2978d8074685d5246392d20130700000000000000000000020e1a25313b46535f69737f8c949fa7a79f948f837c75706d676867676869696e737a818c919ca5aaa1978f82766c6155473d331e150b0000000000000000000714212d3a46535f697784919eaa9e918477695f53463a2d1c110600000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000000000000000000000000000000000006111a22282d30313939393933322f2a241c140a0000000000000000000c18232e39424d57616b73808d949f978d80746a74818e989d938a7e71695f544b40352c21160b0000000000000006101922292f343738393939352d2c28231d150c05000000000000000000000000000000000613202c3945515d676d78797979796f6a5f53473d32271b0f0100000004101b26303942494d4f535353535353534c4b4640372e23190d0200010c18222d363f454a4b53535353504e49423a30231a0f05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000307090e1b2835414e5b6874818e9b9e9184786b5e5145382b1e120b0c1925303a44505b656f7c87929f9e9184796d605853565e6165686a6b6c6c6b6a6865615e57534e463f372e251c110800000000000713202d3a4653606d798693a0aca194877b6e66727f8c99a3a99b8f8275685e5246392d201304111d2935414c5663707d8a97a1a49a8c8073656f7c8895a2aca09386796d6053463a2d20130700000000000000000000000000000000030c17212834404b555f69717e8a939da7a59f92867b73808d95a0aaa1978f82786c60594f443a2f241910060000000000000000000000000000000000000006121f2b37434e58626f7c86929fa4aca399928b837f7b797777767777797c80858e939da4aea49a92857a6d61564c4135291d1105000000000000000000000009141f2a36424d57606d78828f959fa7a69f959087817d79777574747476787b80858e939ca3aaa29892857b6e615a5044352b210c030000000000000000000815222e3b4855616e7b8896a0ab9a8d817467574d42362a1e0a0000000000000000000000000004111e2a3744515d6a7784909daaa99c8f8376695c504336291d100300000000000000000000000000000000000000000000030a1117242c33393c3d46464646403f3b352e261c120700000000000000050c121d27303b454f59606d788290979f92877c6f7c87939f958e81746c61574d42392e231a110c060000000000020d17222b333b404445464646413a38342e271e170e060000000000000000000000000000000714202d3a4753606d7a84868686877c6f62594f44382c1d12070000000915212c37424c545a5c606060606060605957514940352a1e12060005111d29343f48505658606060605c5a544c42352b21160b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e1b2835414e5b6874818e9b9e9184786b5e5145382b1e120008131e27333f49535f6a73808d96a0968d80736a5f534c5254585b5d5e5f5f5e5d5b5854524d47433c342d251c130a0000000000000713202d3a4653606d798693a0aca194877b6e6a7784919daba1978a7d7064564c41362a1e11050d19242f3a4653606d7984919eac9e9184786c6f7c8895a2aca09386796d6053463a2d201307000000000000000000000000000000000b151e29333b45515c676e7b86929fa5a89e938b7e716d79839098a3a99f948c7f736b60564c41352922180d03000000000000000000000000000000000000030f1b26323c47535f6a717e8b939aa2aaa39f95918c8886848483838485898c92979ea5aaa39f93887d70685e52443a3024190d010000000000000000000000030e1a26313b44505c666d7a8390959da5a7a099938e898683828181818385888c92979da5a7a09892867d70695e52483e3323190f00000000000000000003101c28343f4a5465727e8b98a8a3998a7d7064574a3d31261a0e0200000000000000000000000004111e2a3744515d6a7784909d9f9f9c8f8376695c504336291d1003000000000000000000000000000000000000000000040c151c2328363e44494a525353534d4b4740382e24190e0200000000000810171d1e252a333e44505c666e7b85929a9990827982909a989183796d605a50453c302a251e1d1710090000000007131e29333d454c50525353534e4645403930292018100800000000000000000000000000000613202c3945515d67707d8a949a8f82766b605448392f24180c0000000d1925313d49545e65696c6c6c6c6c6c6c66635b51463b2f23160a000915212e3a45505a62656c6c6c6c69665e54473d33271c10040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000205070e1b2835414e5b6874818e9b9e9184786b5e5145382b1e1205020b17222d38414e58606d7984919e9f92877c6f655b5046474b4e5152525352514e4c4846423b37312a221c130a010000000000000713202d3a4653606d798693a0aca194877a6e6f7c8995a0ab9e9185796d6053463a3025190d0108131f2b3844505c6673808d9aa7a196897d706f7c8895a2aca09386796d6053463a2d20130700000000000000000000000000000007121c27303b45505a606d79839098a2aba0968e81756c666e7c86929fa6a69f92877c6f685d52453f342a1f150b010000000000000000000000000000000000000a15202b37434e58616c727f8892989fa3a7a09d99999291909090919298999ea2a9a69f98928b7f726c61564c4132281e13080000000000000000000000000009141f28343f4a545e686d7a838e929d9fa7a49f9b9892908e8e8d8e8f9197999ea1a9a29e9590867d706b60574d42362c22110800000000000000000006121f2c3844505c6675828f9ba89f92867a6d6054473a2d2114090000000000000000000000000004111e2a3744515d6a778490939393938f8376695c504336291d10030000000000000000000000000000000000000000060d161e262e343f485055575f6060605a57524a40352a1f13070000000008121a22282d3036393a3f4a545e69707d88939f948e828e949f92867c6f675d51483e3a3936302d28221b12090000000c18242f3b454f575d5f6060605b53514b423a322a221a11070000000000000000000000000004101d2935404b55616c75828f9c94897c6f63554b4035291d100400000f1b2835414d5a65707579797979797979736d63574b3e3225190c000b1724313d4a56626d7179797979767066594f44382c20150a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002090e1114141b2835414e5b6874818e9b9e9184786b5e5145382b1e12050006111b262f3c45515d67707d8a939e999083776c60564c413e41444546464544423f3b3a36302b262018100a01000000000000000713202d3a4653606d798693a0aca094877a6d74818d9aa8a79a8d8073665c504438291e13080003101c28343f4a54626e7b88959fa89b8e81746f7c8895a2aca09386796d6053463a2d2013070000000000000000000000000000050f18232e39424d57616c74808d95a0aaa39991847a6d605f6a727f8b949fa9a39991847a6d605a50463c31271d1207000000000000000000000000000000000000040f1a26313c46505a636d727e868e92999da0a8aba39f9e9d9c9d9e9fa2aaaaa29f9b948f867e726d62594f443a3020160c0200000000000000000000000000030b17232e38424c565e686d79818990959b9fa2aaa39f9d9b9a9a9b9c9ea1a9a49f9c97928c837b706b60594f453b30241a10000000000000000000000713202d3a4653606d7985929fa99c908376675d5145392c2013060000000000000000000000000004111e2a3744515d6a77838686868686868276695c504336291d100300000000000000000000000000000000000000070f18202830383f44515a61646c6c6c6c66635c52473b2f23170a00000005101a242c33393a4146474a4d5357606b73808c949e938e939e938b7f726a5f55534d4b4746413a39342c241b100600000f1c2834404c5761696b6c6c6c68605c544c443c342c2318120b030000000000000000000000010d18242f3943505a626f7c89949b8e8175675d5145392c1f130600000f1c2936424f5c697582868686868686867f7366594c403326190d000b1825323e4b5865717e8686868682766b6054483c32271b0f030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d14191e2021272835414e5b6874818e9b9e9184786b5e5145382b1e120500000a141d2935404b55616b75818e989f958b7e72685e52463d3037383939383735322e2d2a251f1a150e060000000000000000000713202d3a4653606d798693a0aca093877a6d7985919eab9f95887b6e62544a3f3428170d0200000b17232e3847535f6a7783909dab9f9285796f7b8895a2aca09386796d6053463a2d20130700000000000000000000000000020c17212834404a545f69717e8a929da7a69f92877c6f675d58606c77828f97a1aba1968e81756d62584e43392f23180f050000000000000000000000000000000000000a15202a343e48515b636c717b81878c919597999c9d9e9e9f9f9f9e9d9b9998928e89827b716c625b51473e32281e0e0400000000000000000000000000000006111c26303a444c565e676d747c83898e9298999b9d9e9f9f9f9f9e9d9b999993908b857f786e6960594f473d33291f120800000000000000000000091623303c4956636f7c8998a2a9998c7f7366554b4135291d1104000000000000000000000000020d17222b36424f5b6771777979797979797670665a4e4235291c0f030000000000000000000000000000000000000810192129323a424a505b636c7079797979736e63574b3f3226190c0000000c17222c363e45494c525457575f6165656d78828f9c9e9b9e9b8f82756d6865615e575754524c49453e362c22170c0000111e2b3744505d697378797979746d665e564e463e3528231c150c04000000000000000000000007121d28313e4754606a7683909c9285796d6053473a2d20140700000f1c2936424f5c6975828f93939393938c7f7366594c403326190d000613202d394653606c7883909994897d7063584e43372b1f130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e171f252a2d2e342d35414e5b6874818e9b9e9184786b5e5145382b1e12050000020b18242f39434f59616e7b85929f9f92857a6e61594f43392e232c2c2b2a282521201e1a140f0a03000000000000000000000713202d3a4653606d798693a0aca093867a6f7c8997a1aa9d9083766a5f5342382e23170500000006111c2b37434e5865727f8b99a3a2988a7e717b8895a1aca09386796d6053463a2d201307000000000000000000000000000a141e29333b44515c666e7b85929fa4a99f948c7f726a6055505b656e7a85929ea5a89e938b7e716a5f554b40342921170c020000000000000000000000000000000000030e18222d363f49515a61696e747b8084888b8d8f90919292929291908e8c8985817c766e69615a51493f352c20160c00000000000000000000000000000000000a141e28323a444c555c606b6f777d8185898c8e90919292929291908f8d8a86837e79726d665f574f473d352b20170d0000000000000000000004111d2935414c566673808c99aaa197897c6f6256493c2f24180d0100000000000000000000000007131e29333d454c555f676a6c6c6c6c6c6c69665e54493e3226190d01000000000000000000000000000000000007121a222b333b444c545c606d727e868686868073665a4d4033271a0d000005111d28333e485055565e616467696e7175787c808d99a6a8a6998c807c7875716e696764615e565550483e34281d110500121f2c3845525f6b788586868681786d685f584f473f342e271e160e0600000000000000000000010c161f2b37434e5864717e8a99988a7e7164574a3e3124170700000f1c2936424f5c6975828f9c9f9f9f998c7f7366594c403326190d0005121f2b3744505b656f7c87939d9083776a6054473b2e221509000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020d17202930363a3b413a38414e5b6874818e9b9e9184786b5e5145382b1e120500000007121d27313e46525e68727f8b959f978e81756b60554b4034281f201f1e1b191514120e09030000000000000000000000000713202d3a4653606d798693a0aca093867974808d9aa9a3988b7e7265584e4330261c1106000000000f1a26313c4754616d7a86929faa9b8f82757b8894a1aca09386796d6053463a2d20130700000000000000000000000006111c26303b454f59606d78839097a2ada1978f82786c60584e49535e68707e8a939da8a59f92867c6f675c51453e33291e140a00000000000000000000000000000000000006101b242e373f4850575e61696e73777b7e80828484858686858583827f7d79756f6b625f5750483f372d231a0e040000000000000000000000000000000000020c162029323a434b515960636b7075797c7f82838485868685858382807d7a76726d67605c544d453d352b23190e05000000000000000000000713202c3945525d687683909da99e9285796c605346392d201307000000000000000000000000000c18242f3b454f575d5f60606060606060605c5a544c42382d21160a00000000000000000000000000000000030b1218242c343d454d565d666d747f87929892857b6e6154473b2e21140800000814212d3945505a6164686d7174777b7e8185888d929ca8b3a89c928c8885817e7b7774716d6864615a5045392d211508000c1926323f4c5965727f8c93938e827a6f6a615951444039302820180f0700000000000000000000040d1b27323d4754606d7a86929a8d8174675a4e412f24180d01000f1c2936424f5c6975828f9ca8aca6998c7f7366594c403326190d00030f1b27333f49535f6a75828f9b95887c6f6255493c31261a0e02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141f29323b4246474d4745404e5b6874818e9b9e9184786b5e5145382b1e1205000000010b151f2a36414d56606c788390999e93897d70675c51453c31261a0e110f0c0807050200000000000000000000000000000713202d3a4653606d798693a0afa39986797884919eab9f92867a6d6054473c3121150a00000000000a15202d3946525d6875828f9ba99f92867a7b8894a1aca09386796d6053463a2d2013070000000000000000000000050e17232e38424d57616b73808d959fa9a49e92857b6e665b5046414d56616c74818e96a0aba2989083796d605a50453b30261c110600000000000000000000000000000000000009121c25333d45454d52575f62666a6e71737577787879797978777573706d67636059534d453e362d251b110800000000000000000000000000000000000000050e1720333d454c504f54596063676d70727576787879797878777573706d6865605d55504a423c332b2319110700000000000000000000000714212d3a4754606d7a86929fa89b8e8175665b5044382b1f1206000000000000000000000000000f1c2834404c5761696b6c6c6c68605c544c504e49423a31261c1005000000000000000000000000000000050c151d2328363e464f575f686d78818c939993877d70695e52463a2d20140700000a1723303d4955616c71777a7e8184888b8e9297999e9ea1a9a39f9e9997918e8b8784817e7a77716c6155493d3024170a000b1825313e4a56626d75818f969490847c706b625b514a423a322a2119110600000000000000000915202b353f4745515d677683909c9083766a554b4035291d1004000f1c2936424f5c6975828f9ca8b2a6998c7f7366594c403326190d00000b17222d38414e58636f7c89959a8d807367574d42372b1e120600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e1925303b444d52545a53514b4e5b6874818e9b9e9184786b5e5145382b1e120500000000030d1925303b44505b666f7c87929f9e9184796d60574d42372b20160c02000000000000000000000000000000000000000713202d3a4653606d798693a0ac9f9286797c8996a1a89b8e8175685d5245392c201303000000000005111d2935414c5663707d8a97a1a2988a7d7b8794a1aca09386796d6053463a2d20130700000000000000000000020b172028343f4a545e69707d8a929da7a79d928a7d70695e544a3f3b44505a606d79849199a3aaa0958d80746c61574d42382e23170e0400000000000000000000000000000000000c18242f3a454f575c5f606059575f626466696a6b6b6c6c6c6b6a686663605d55544f47423c332d241b130900000000000000000000000000000000000000000c18242f3a454f575c5f606059555c606366686a6b6c6c6c6c6b6a686664615e5653514b443f38302a211911080000000000000000000000000a1724313d4a5764707d8a99a3a7988b7e7165544a3f33281c0f0300000000000000000000000000111e2b3744505d697378797979746d665e564e463e3528231c150c040000000000000000000000000000060e161e272e344048505960696e7a828e939f948c7f736b60574d42362a1e110500000b1724313e4a5764717e83878a8e9196989b9e9c97919197a1989292979c9e9b9896918e8a87837e7164574b3e3124180b000916222e3a46515b606d7a8491989691867d726d605c544c443c332b2317110a020000000000010e1a26313d4751595e556673808d99928578675d5145392c201306000f1c2936424f5c6975828f9ca8aa9f998c7f7366594c403326190d000006111b262f3c4854606b7783909d918478695f53473a2d2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111e2a36424d565e6167605c554e5b6874818e9b9e9184786b5e5145382b1e1205000000000008141f28333f4a545f6a73808d96a0968c8073695f53473e32281e1308000000000000000000000000000000000000000713202d3a4653606d798693a0ac9f928579808d9aa8a196897d7063564c4135291d11040000000000010d1924303a4653606d7985929eaa9b8e817a8794a0b5a09386796d6053463a2d201307000000000000000000000a141d29323b44505c666e7b85929ea4aaa0958d80746c61574d4238323e45515d676f7c87929fa7a79d928a7e70695e544a3f342820160c02000000000000000000000000000000030f1c2834404c5761686b6c6c66635b55585a5c5d5e5f565e61666a6c6c6a66605d564e463c322a211b12090100000000000000000000000000000000000000030f1c2834404c5761686b6c6c66635b5356595b5d5e5f565e61666a6c6c6a66605d564e463c342e261e180f0800000000000000000000000005121e2b37424d576774818d9aaba095877b6e6154483b2d22170b0000000000000000000000000000121f2c3845525f6b788586868681786d685f584f473f342e271e160e06000000000000000000000000070f18202830394045525a616b6f7b838f949d968f82776c60594f453b30251a0e0200000a1724313d4a5764707d8a939a9a9ea09e9a938f8a8585919e9286858a8f93999ea09e9a9a938a7d7164574a3e3124170b0006121e29353f45525d686f7c86929f9892877f746d665d564d453d3528231c140c030000000004111d2a36424e59636a6c6c727f8b9897867a6d6053473a2d201407000f1c2935424f5c6875828f9b9f9d93938c7f7366594c403326190d000007111b252c38444f596673808c9996887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a46525e696e746d675f585b6874818e9b9e9184786b5e5145382b1e12050000000000020b17222d38424e58606d7984919e9f92867b6e625a50443a3024190c030000000000000000000000000000000000000713202d3a4653606d798693a0ab9f92857884919eac9e9184786c6053463a2f24190d0100000000000008131f2c3844505c6673808d9aa79e9285798699a3afa09386796d6053463a2d20130700000000000000000006111c262f3b444f59606d78829097a1ada3989083796d605a50453b2f2935404b55606a73808c959faaa49f92857b6e665c50443d32281e130800000000000000000000000000000005111e2b3744505c6873787979736d63574b4d4f50555d60686d7276787977736d685f584e443b3025190e02000000000000000000000000000000000000000005111e2b3744505c6873787979736d6357494c4f50555d60686d7276787977736d685f584e443b3025190c06000000000000000000000000000714212d3a46535f697784919eaa9d918477695e52463a2d1c110600000000000000000000000000000c1926323f4c5965727f8c93938e827a6f6a615951444039302820180f0700000000000000000000071019212a323a434b515b636c717d8591959f9991847a6d655b50473d33291f14090000000713202d3a4653606d7985929f9f9c97928d87827d7883909c9285787d82878c91969b9f9f9285796d6053473a2d20140700010d18232935414c565f6a727e8b939e99938c81786d685f574f473f342e261e150c0300000006121f2c3845525e6a757979797e8a9794877b6e6154483b2e211508000e1b2835414e5b6874818e9b95898686867f7366594c403326190d00010d18232d373f464956636f7c8999978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7b80796f6a605b6874818e9b9e9184786b5e5145382b1e120500000000000006111c262f3c45515d67707d8a939e988f82766c61564c4135291e150a0000000000000000000000000000000000000713202d3a4653606d798693a0ab9e92857b8896a1a49a8c8073655b504437281e13080000000000000003101c28343f4a54626f7c8895a0a197897c86929faca09386796d6053463a2d2013070000000000000000050e17222d38424c56606b73808d949fa9a69f92867c6f675d51473e3329242f3a434e58606d78839098a2ada2979082786d60594f443a3025191006000000000000000000000000000005121f2c3845525f6b788586867f7366574d4e535a61676d727a7f83858584807a6f6a5f564d42362a1f1408000000000000000000000000000000000000000005121f2c3845525f6b788586867f7366574d4e535a61676d727a7f83858584807a6f6a5f564d42362a1f1408000000000000000000000000000815222e3b4855616e7b8896a0aa9a8d807467574d42362a1e0a0000000000000000000000000000000b1825313e4a56626d75818f969490847c706b625b514a423a322a211911060000000000000000040f19222b333c444c555c606d737e869297a09f92877c6f685d53493f352b20170d0200000006131f2c3845515c6775818e9a948f8a85807b76717783909d92857971767b80848a8f92998e8175675d5145382c1f13060000070d19242f3a434e58626d75818e95a09f928e827a6e69605951443f3830271e150b0000000613202c3946535f6c798786868a909a95887b6e6255483b2f221508000e1b2734414e5a6774818d9a9083797979736d63574b3e3225190c0006121e29353f49515759606d798692998c7f7366594c403326190d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b87837c726c656874818e9b9e9184786b5e5145382b1e1205000000000000000a141d2935404b55616c75828f989f948a7e71685d52453d30261c110600000000000000000000000000000000000713202d3a4653606d798693a0ab9e91847f8c99a89f93877b6e6153493f3327160c0100000000000000000c17232e3847535f6a7783909da9998c7f85929faba09386796d6053463a2d20130700000000000000020b162028333f4a545e68707d88939fa6a99e938b7f726a5f554b40352c201d28313d44505c666e7b86929fa6a99f948c80736b60564c41352922180d030000000000000000000000000004101d2a3743505d6a7683908f8276695e54585f626c71797f858c909292908c857c6f695e52463b3025190e020000000000000000000000000000000000000004101d2a3743505d6a7683908f8276695e54585f626c71797f858c909292908c857c6f695e52463b3025190e02000000000000000000000003101c28343f4a5465727e8b98a8a398897d7063564a3d30251a0e0000000000000000000000000000000916222e3a46515b606d7a8491989691867d726d605c544c443c332b2317110a020000000000000a16212b343d454d565e676d757f8a9298a19e938b7f726a60564c41382d23190e050000000004101c2834404b5564707d8a8d88837e79736e696a7784919d9886796d696e73787d82868c8a7d7064554b4035291d100400000008131e28313c46515b606d79839198a29d948f847b706b625b504a423930271d120700000613202c3946535f6c79869293979aa295887c6f6255493c2f221609000d1a2733404d5a6673808d99918578666c66635b51463b2f23160a000916222e3a46515b62656c667885919a8d8174675a4e4134271b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b8790867f776e6974818e9b9e9184786b5e5145382b1e120500000000000000020b18242f3a43505a616e7b86929f9e92857a6d60594f42382e23170c03000000000000000000000000000000000713202d3a4653606d798693a0aa9e918482909caa9c8f8276695f5341382d22170400000000000000000006111c2b37434e5865727f8b99a39d908384919eaba09386796d6053463a2d201307000000000000000a141d28323a44505b666e7a85929aa4aba1968f82756d62584e43392f231a161f28343f4a545f69717e8b939ea9a69f93877d70685e52463f342a1f150b01000000000000000000000000020f1b2835424e5b6875818e92877b6e6663646a6f767e848c92989d9f9f9d9791857b6e61564d41362a1e110500000000000000000000000000000000000000020f1b2835424e5b6875818e92877b6e6663646a6f767e848c92989d9f9f9d9791857b6e61564d41362a1e1105000000000000000000000006121f2c3844505c6675828f9ba89f9286796d6053473a2d20140900000000000000000000000000000006121e29353f45525d686f7c86929f9892877f746d665d564d453d3528231c140c0300000000030f1b27323d464e575f686d79818c929fa3a0958e81756d62584e443a2f261b11080000000000000c18232e3a4653606d7984807b76716d66615f6b7884919e93877a6d6061666c70757a7f83796d6053463a2f24180c00000000010c161f2a343f45515d676e7c86929fa59f9691857d726d605c544b42392e23180c00000613202c3946535f6c7986929fa4a6a295887c6f6255493c2f221609000b1825323e4b5865717e8b989286796d605957514940352a1e1206000b1825313e4a57626d7279797983909b8e8275685b4f4235281c0f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b8798928c827b7174818e9b9e9184786b5e5145382b1e1205000000000000000007131d28313e46525e69727f8c95a0978e81746b60544a3f34281f1409000000000000000000000000000000000713202d3a4653606d798693a0ab9e918587929fa2988b7e7164574d422f261b1106000000000000000000000f1b26313c4754616d7a86929f9f928785929eaba09386796d6053463a2d20130700000000000006111b262f3a444f59606c78828f97a1aca49991847a6d615b51463c31271d110d17232e38424d57626d75828f97a1ada49991847a6d615b51463c31271d1207000000000000000000000000000c1926333f4c5966727f8c998f8279727071757c838a91969fa2aaa3a3a9a1978e8174685e5246392d20140600000000000000000000000000000000000000000c1926333f4c5966727f8c998f8279727071757c838a91969fa2aaa3a3a9a1978e8174685e5246392d20140600000000000000000000000713202d3a4653606d7985929fa99c8f8276675d5145382c1f1306000000000000000000000000000000010d18232935414c565f6a727e8b939e99938c81786d685f574f473f342e261e150c0300000007131f2c38434e5860696e7a828e939ca4a2989183796d605b51463d32281d140a0000000000000007131f2c3845515c676d78746e6a64605c545f6b7885929e94877b6e61545b6063686e72776d675c5145382c1d12070000000000040d18222935404b555f6a717e8a939da7a09792877f746d665c544b4034281c1004000613202c3946535f6c7986929facafa295887c6f6255493c2f221609000916232f3c4956626f7c899a99897c6f6356494640372e23190d02000c1926323f4c5965727f86868689959c8f8275695c4f4236291c0f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b879298948f857e74818e9b9e9184786b5e5145382b1e12050000000000000000010c161f2a36424d57606d788390999f93887c6f665c50443b31251a0d040000000000000000000000000000000713202d3a4653606d798693a0ada197919299a39f9285796d6053473b3120140a00000000000000000000000a15202d3946525e6875828f9ba399929297a1ada09386796d6053463a2d2013070000000000040e17222d38414c56606b737f8c949fa9a79f93877d70685e52493f342a1f150b06111c26303c45505a616d7a85919ea4aba1968f82756d62584e43392f24180f060000000000000000000000000a1623303d495663707c8998948f837e7d7e828790949ea1a19e9996979a9f9f92877b6e6154473b2d22170b00000000000000000000000000000000000000000a1623303d495663707c8998948f837e7d7e828790949ea1a19e9996979a9f9f92877b6e6154473b2d22170b0000000000000000000000091623303c4956636f7c8997a2a9988c7f7265554b4035291d100400000000000000000000000000000000070d19242f3a434e58626d75818e95a09f928e827a6e69605951443f3830271e150b0000000915222e3b4854606a6f7b8490949ea5a49f92867c6e675d51493f342b20160b020000000000000004101c2834404b555c666c66625f575351505b657985929f95887b6e62555053565e61666a605c554b4034281c0b01000000000000071018242f39434e58616c74818e95a0a9a299928b80786d665c5145382c1f1306000613202c3946535f6c7986929facafa295887c6f6255493c2f221609000714202d3a4753606d7a8693998c807366594f44382c251c120700000c1926323f4c5965727f8c93939da09c8f8276695c504336291d10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202d394653606c787f86909597928a81818e9b9e9184786b5e5145382b1e1205000000000000000000040d1a25303b44505c666f7c87939f9a9083786d60574d42362a1f160c0100000000000000000000000000000713202d3a4653606d798693a0b3a9a19e9fa3a89a8e8174675d5145392c1f1302000000000000000000000005111d2a36414c5664707d8a97a1a39f9ea1a9b3a09386796d6053463a2d20130700000000020c162027333f49535e686f7d87929fa6aa9f958d80736b60564c41372d22180d03000a151e2a333f46525e68707d8a929da8a89e938b7f726a5f554b40352921170d0300000000000000000000000713202d3a4653606d7985929f95908b898b8f93999fa39f97918c8a8a8e9299998c7f7265544a3f33281c0f03000000000000000000000000000000000000000713202d3a4653606d7985929f95908b898b8f93999fa39f97918c8a8a8e9299998c7f7265544a3f33281c0f0300000000000000000004111d2935414c566673808c99a9a197887c6f6255483c2f24180c00000000000000000000000000000000000008131e28313c46515b606d79839198a29d948f847b706b625b504a423930271d120700000916232f3c4956626f7c85919693939393928a7e716a5f554b40372d22190e040000000000000000000c18232e39434b545b605b54534e464653606c7986939f95897c6f625649464c5254595d53514b43392e23180c000000000000000007121d28313c46505a606d7983909893939393928d82796d6053463a2d201307000613202c3946535f6c7986929facaca295887c6f6255493c2f221609000613202c3945515d677783909d9083776b6054483d30261c110600000c1926323f4c5965727f8c989faaa99c8f8376695c504336291d100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505b666c727c838c9299938e8e939e9e9184786b5e5145382b1e12050000000000000000000009141f28343f4a54606a74808d97a0958c7f72695e53463e31281d130700000000000000000000000000000713202d3a4653606d798693a0acb3adabacaca095897c6f62554b4035291d10040000000000000000000000010d1925303a4653606d7985929eabacabadb3aca09386796d6053463a2d2013070000000008131e28323a44505b656d7a849199a3aea2989083786d60594f443a30251b10060000030c18212a36414c56616b74808d95a0aba69f92867c6f675d51453e33291f1409000000000000000000000006131f2c3845515c6774818d98a09d9896979b9fa49f99928d85807d7d818792998f8276665b5044382b1f12060000000000000000000000000000000000000006131f2c3845515c6774818d98a09d9896979b9fa49f99928d85807d7d818792998f8276665b5044382b1f12060000000000000000000613202c3945525d687683909da99e9185786c605346392d201307000000000000000000000000000000000000010c161f2a343f45515d676e7c86929fa59f9691857d726d605c544b42392e23180c00000d1a2633404d59667380868686868686868680746c61574e43392f251b10070000000000000000000007121d273039424a5053504a47423c4753606d7a869aa496897c706356493d4146474c504645403930271d12070000000000000000010c161f2a343e45515c676e7b8586868686868686867a6e6154473b2e211408000613202c3946535f6c7986929f9f9f9f95887c6f6255493c2f2216090004101d2935404b556673808c9995897d7063584e42382e23170b00000c1926323f4c5965727f8c98a5b2a99c8f8376695c504336291d1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1c28333f4a545b606a6e787f8690959b9b9ea59e9184786b5e5145382b1e120500000000000000000000030b17232e38424e58606d7a84919e9f92867b6e615a50433a2f24180d01000000000000000000000000000713202d3a4653606d798693a0acacacacb5ab9d9184776a605443392f24180c0000000000000000000000000008131f2c3844515c6674808d9aa7b1acacacaca09386796d6053463a2d201307000000010d1924303a444e58606c77828f96a1aba59f92857b6e665c50473d32281e130900000000060f1925303a444f59606d79839199a3aea3989183796d605a50453b31261a0e020000000000000000000004101c2834404b55616e7b86929fa4a5a3a4a7a09d948f868079737070747d87939285796c605346392d2013060000000000000000000000000000000000000004101c2834404b55616e7b86929fa4a5a3a4a7a09d948f868079737070747d87939285796c605346392d2013060000000000000000000714212d3a4754606d7a86929fac9b8e8174655b5044372b1f120500000000000000000000000000000000000000040d18222935404b555f6a717e8a939da7a09792877f746d665c544b4034281c1004000c1925323f4b57636d737979797979797979746e645a50453c31281d12090000000000000000000000000b151e272f383f4446443f38373a4754616d7a8794a0978a7d7064574a3d36393b3f443a38342e271e150b00000000000000000000040d18222934404b555f696e78797979797979797976685e5246392d201407000613202c3946535f6c7986929393939393887c6f6255493c2f22160900010d18242f3b4855616e7b88949c8f82756a60544a3f34281c1003000c1926323f4c5965727f8c98a5aca99c8f8376695c504336291d1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d38424a50585f666d727c838c9299a0a79e9184786b5e5145382b1e1205000000000000000000000006111c26303d45515d67717e8a949e988f82756c61554b4035291d1104000000000000000000000000000713202d3a4653606d7986939f9f9f9f9f9fa3998c7f7266584e4331271d12070000000000000000000000000004101c2834404a54626f7c8895a09f9f9f9f9f9f9386796d6053463a2d20130700000004111d2935414c56606a727f8c949ea8a89e938a7e71695f544a3f352b20160c00000000000008131e29323e45515d676f7c87929fa69fa0958e81746c61574d42362a1e120500000000000000000000000c18232e3946525e69727f8b929b9e9f9e9b959089827b736d6763646b74818e98887b6e6255483b2f22150800000000000000000000000000000000000000000c18232e3946525e69727f8b929b9e9f9e9b959089827b736d6763646b74818e98887b6e6255483b2f2215080000000000000000000a1724313d4a5764707d8a99a3a49a8a7e716453493f33271b0f030000000000000000000000000000000000000000071018242f39434e58616c74818e95a0a9a299928b80786d665c5145382c1f1306000a16232f3b47525b63666c6c6c6c6c6c6c6c67645c52483e332a1f160c00000000000000000000000000030c151d262d33383938332d2e3b4854616e7b87949f978a7e7164574b3e312d2e33372d2c28231d150c030000000000000000000000060f18232f39434d575f616c6c6c6c6c6c6c6c6c6c5e564c41362a1e1105000613202c3946535f6c7987868686868686867c6f6255493c2f22160900000714212d3a47535f6975828f9c93877c6f665c5044382b1f1206000c1926323f4c5965727f8c989f9f9f9c8f8376695c504336291d10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c262f383f444e545c606a6f788087909593939184786b5e5145382b1e12050000000000000000000000000a141e2935414c55616c75828f9893948a7d70675d5145392c201306000000000000000000000000000713202d3a4653606d7986939393939393939392867b6e6154473d3221150b0100000000000000000000000000000c18232e394754606a778390939393939393939386796d6053463a2d2013070000000713202c3945525d686f7c879293939393968e81746c61574d42382e23190e04000000000000020c17202935404b55606a727f8c9493939393938a7e71695f53463a2d211407000000000000000000000007121d2a36424d56626d7380898f9292918f8a837d766e69605d5559626f7c89988a7d7063574a3d3024170a000000000000000000000000000000000000000007121d2a36424d56626d7380898f9292918f8a837d766e69605d5559626f7c89988a7d7063574a3d3024170a0000000000000000000e1b2734414e5a6774818d93939393877a6d6154473a2d22170b0000000000000000000000000000000000000000000007121d28313c46505a606d7983909893939393928d82796d6053463a2d2013070007131e2a35404952575960606060606060605a58524a40362c21180d040000000000000000000000000000030b141c22282b2d2b28222f3b4855626e7b889393938b7e7265584b3f322521262a201f1c18120b030000000000000000000000000007121d27313c454d53555f60606060606060605f524c443b3025190e020006121f2c3845525e6a757979797979797979766a6054473b2e221508000006121e2b37424d57626f7c89939a9083786d6053463a2d201307000c1926323f4c5965727f8c93939393938f8376695c504336291d100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d262d333c424a50585f666d737c838686868684786b5e5145382b1e1205000000000000000000000000020c19242f3a43505a616e7b8686868686847a6d6053473a2d201407000000000000000000000000000713202d3a4653606d78868686868686868686868275685e5246392d20140300000000000000000000000000000007121c2b37434e5865727f86868686868686868686786d6053463a2d2013070000000714212d3a4754606d7a848686868686868684796d605a50453b30261c11070000000000000000050e18242f39434e58606c788286868686868686857b6e6155483b2e2215080000000000000000000000000e1925303b44515b636e737d82858684827d78706b625f57514b53606d788686867f7265584c3f3225190c0000000000000000000000000000000000000000000e1925303b44515b636e737d82858684827d78706b625f57514b53606d788686867f7265584c3f3225190c000000000000000000111e2b3844515e6b778486868686868377685e5246392d1b110600000000000000000000000000000000000000000000010c161f2a343e45515c676e7b8586868686868686867a6e6154473b2e21140800020d19242e3740474b4d53535353535353534d4c4740382f241a0f0600000000000000000000000000000000020a11171c1f201f1c222f3c4955626f7c86868686867f7265594c3f322619191d1313100c07000000000000000000000000000000010b151f2a333c4246485253535353535353535346413b32291e1408000004111d2a36424e59636a6c6c6c6c6c6c6c6c6260584e43372b1f13060000020e1a26313c4754606a7581868686867f7265584c3f3225190c000c1926323f4c5965727f868686868686868276695c504336291d10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b141c222830383f444e545c606a6f77797979797872685c5043372a1d11040000000000000000000000000008131e28313e46535f696e7979797979786d675d5145392c2013060000000000000000000000000006121f2c3844505c667679797979797979797979757065564d41362a1e1105000000000000000000000000000000000f1b27323c4a57626d727979797979797979797976665c5044382c1f12060000000713202c3945525d686d7879797979797979776d675d51483e33291e150a0000000000000000000007121d27313c44505b666c7679797979797979786e695f53463a2d21140700000000000000000000000009141f29323f49525c636b707578797875706c656059534d4544505c6674797979726d62564a3e3124180b00000000000000000000000000000000000000000009141f29323f49525c636b707578797875706c656059534d4544505c6674797979726d62564a3e3124180b000000000000000000111d2a37434f5c6772777979797979777167564c41362a1e0a000000000000000000000000000000000000000000000000040d18222934404b555f696e78797979797979797976685e5246392d201407000007121c252e353b3f404646464646464646413f3c362f261d120800000000000000000000000000000000000000060b0f12131215222e3b4754606a767979797979726d63574a3e3125180c11070604000000000000000000000000000000000000030d18212a31373a3b4546464646464646463b3936302920170d020000010e1a26313d4751595e5f6060606060606055544e463c32271b0f0300000009151f2b38434e58656f7579797979726d62564a3e3125180b000b1825313e4a57626d72797979797979797670665a4e4235291c0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171e262e343c424a51585f626a6c6c6c6c6b6860564b3f33271b0f0200000000000000000000000000010c161f2a36424d575f616c6c6c6c6c6b605d554b4035291d11040000000000000000000000000003101c28343f4a545c6c6c6c6c6c6c6c6c6c6c6c69655e54443b3025190e02000000000000000000000000000000000a15202e3a46515b62656c6c6c6c6c6c6c6c6c6c6c5c544a3f34281c100300000004111d2935414c565d606b6c6c6c6c6c6c6c6b605d554b40362c21170c0300000000000000000000010b151f28333f4a545b60696c6c6c6c6c6c6c6c615f574d42362a1e1205000000000000000000000000020d17202d37404952596063686b6c6b6864605b534f47423c3f4a545c6a6c6c6c65625b51463a2e221509000000000000000000000000000000000000000000020d17202d37404952596063686b6c6b6864605b534f47423c3f4a545c6a6c6c6c65625b51463a2e2215090000000000000000000f1b27333f4b5660676b6c6c6c6c6c6a675f55443a3025190d00000000000000000000000000000000000000000000000000060f18232f39434d575f616c6c6c6c6c6c6c6c6c6c5e564c41362a1e11050000000a131c242a2f323339393939393939393433302b241d140b0000000000000000000000000000000000000000000003060606131f2b37434e5860626c6c6c6c6c65635b51463a2e2216090400000000000000000000000000000000000000000000060f181f262b2d2e3939393939393939392e2d2a251e170e05000000000915202b353f474e5253535353535353534947433c342b20150a00000000030f1b27323d46535d65686c6c6c6c65625b51463a2e221609000916222e3a46515b62656c6c6c6c6c6c6c69665e54493e3226190d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c141c2328303940444e54555d606060605e5c564e443a2f23170b000000000000000000000000000000040d1a26313b454d53555f606060605e53514b433a2f24180d0100000000000000000000000000000c17232e38424a505f606060606060606060605c5a544c4232291f1408000000000000000000000000000000000004121e29353f49515759606060606060606060605f504a42382e23170c00000000010d1924303a444c52545e606060606060605e53514b433a2f241a0f06000000000000000000000000030d17222d38424a50535d606060606060605f55534d453b31261a0e0200000000000000000000000000050e1b252e3740474f54565c5f5f5e5c57535049413d373138424a50535f6060585651493f34291e120600000000000000000000000000000000000000000000050e1b252e3740474f54565c5f5f5e5c57535049413d373138424a50535f6060585651493f34291e12060000000000000000000b17232e3a444e565c5e60606060605d5b554d4332291e1308000000000000000000000000000000000000000000000000000007121d27313c454d53555f60606060606060605f524c443b3025190e02000000010a12191e2325262d2d2d2d2d2d2d2d2726241f19130b0200000000000000000000000000000000000000000000000000030f1b27323c464e54556060606060595751493f352a1e1206000000000000000000000000000000000000000000000000060e141a1e21222c2d2d2d2d2d2d2d2d21201e19140d050000000000040f19242d353d424546464646464646463c3b37322b22190f0400000000000a16202b34414b53595b60606060585651493f34291e12060006121e29353f49515759606060606060605c5a544c42382d21160a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171e272e343c434749515353535351504b443c32281d12070000000000000000000000000000000009141f29333b4246485253535353514745403a31281d130700000000000000000000000000000006111c2630383f4453535353535353535353534f4d4942393020170d020000000000000000000000000000000000010d18232d373f464a4c5353535353535353535353443f3830261c1106000000000008131e28323a4145475153535353535353514745403a31281d1208000000000000000000000000000006111c262f383f44465053535353535353524846423b33291f140900000000000000000000000000000009131c252e353d4448494f5253514f4a46443f382f2b2630383f44465353534c4a463f372d23180d01000000000000000000000000000000000000000000000009131c252e353d4448494f5253514f4a46443f382f2b2630383f44465353534c4a463f372d23180d0100000000000000000006121d28323c444b4f515353535353504f4a433b3120170d020000000000000000000000000000000000000000000000000000010b151f2a333c4246485253535353535353535346413b32291e1408000000000000070d1316191a20202020202020201a1a17130e08010000000000000000000000000000000000000000000000000000000a15202b343c43474953535353534c4a463f372d23180d010000000000000000000000000000000000000000000000000003090e1214151f20202020202020201414110e08020000000000000008121b242b31363839393939393939392f2e2b2720191007000000000000040f19222f3941484d4e535353534c4a463f372d23180d0100010d18232d373f464a4c53535353535353504e49423a31261c1005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c151c232832373b3c444646464645433f3a322a20160c0100000000000000000000000000000000030d17212931363a3b4646464646453a39352f281f160c01000000000000000000000000000000000a151e262e3438464646464646464646464642413d3730271e0e050000000000000000000000000000000000000007111b252d353a3e3f464646464646464646464638342e261e150a000000000000020c1620283035393a4546464646464646443a39352f281f160c000000000000000000000000000000000a141d262d3338394346464646464646453b3a36312921170d03000000000000000000000000000000010a131c232b33383c3d42454645423d3937332d261d1e262e34383a4646463f3e3a342d251b1106000000000000000000000000000000000000000000000000010a131c232b33383c3d42454645423d3937332d261d1e262e34383a4646463f3e3a342d251b110600000000000000000000010c16202a323a3f4344464646464644423e3931291f0e0500000000000000000000000000000000000000000000000000000000030d18212a31373a3b4546464646464646463b3936302920170d020000000000000002070a0c0d13131313131313130e0d0b07030000000000000000000000000000000000000000000000000000000000040e19222b32373b3c46464646463f3e3a352d251c11070000000000000000000000000000000000000000000000000000000002050708121313131313131313080705020000000000000000000009121920262a2c2c2d2d2d2d2d2d2d22221f1b150f07000000000000000007101d272f373d4042464646463f3e3a342d251b110700000007111b252d353a3e3f4646464646464643423e3831281f150a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b121820262b2e2f37393939393837332f2820180f05000000000000000000000000000000000000060f171f262a2d2e3939393939382d2c29241d160d040000000000000000000000000000000000030c151c23282c39393939393939393939393635312c261e150c0000000000000000000000000000000000000000000a131b23292e313239393939393939393939392c28231c150c0300000000000000040e161e24292c2d3839393939393939382d2c29241d160d0400000000000000000000000000000000020b141c22282b2d3639393939393939392e2d2a261f170f060000000000000000000000000000000000010a111921272c2f303538393835312d2b27221b14151c23282c2d39393932312e29231b13090000000000000000000000000000000000000000000000000000010a111921272c2f303538393835312d2b27221b14151c23282c2d39393932312e29231b1309000000000000000000000000040e1820282e33373839393939393736332e271f170d000000000000000000000000000000000000000000000000000000000000060f181f262b2d2e3939393939393939392e2d2a251e170e05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007101920272b2e2f393939393932312e2a231c130a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080f151a1d1f20202020202020201615130f0a04000000000000000000000b151d252c3134353939393932312e29231b130900000000000a131b23292e3132393939393939393635322d261f160d0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c151b1f22222a2d2d2d2d2b2a27231d160f060000000000000000000000000000000000000000060d141a1e21222c2d2d2d2d2b20201d18130c0400000000000000000000000000000000000000030a11171c1f2d2d2d2d2d2d2d2d2d2d2d292825211b140c03000000000000000000000000000000000000000000010a11181e2225262d2d2d2d2d2d2d2d2d2d2d1f1c17110a03000000000000000000040c13191d20212b2d2d2d2d2d2d2d2b20201d18130c04000000000000000000000000000000000000020a11171c1f202a2d2d2d2d2d2d2d2c22211e1a140d060000000000000000000000000000000000000000070f161c202223292c2c2b2924201f1b17110a0a11171c1f202c2d2d2524221e1811090100000000000000000000000000000000000000000000000000000000070f161c202223292c2c2b2924201f1b17110a0a11171c1f202c2d2d2524221e1811090100000000000000000000000000060e161d23272a2b2d2d2d2d2d2a2926221c150d0500000000000000000000000000000000000000000000000000000000000000060e141a1e21222c2d2d2d2d2d2d2d2d21201e19140d0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070e151b1f22222d2d2d2d2d2625221e18110a010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004090e1112131313131313131309080603000000000000000000000000030b131a202427282d2d2d2d2525221e181109010000000000010a11181e2225262d2d2d2d2d2d2d292926211c150d04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f1315161e202020201e1d1b17120c050000000000000000000000000000000000000000000003090e1214151f202020201e1413110d070100000000000000000000000000000000000000000000060c101220202020202020202020201c1b1915100902000000000000000000000000000000000000000000000000070d12161819202020202020202020202012100c0600000000000000000000000002080d1113141e202020202020201e1413110d0701000000000000000000000000000000000000000000060b0f12131d202020202020201f1514120e090300000000000000000000000000000000000000000000050b101316161c1f201e1c1713120f0b060000060c101213202020191815120d0600000000000000000000000000000000000000000000000000000000000000050b101316161c1f201e1c1713120f0b060000060c101213202020191815120d0600000000000000000000000000000000040c12171b1d1e20202020201d1d1a16110b0300000000000000000000000000000000000000000000000000000000000000000003090e1214151f20202020202020201414110e0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f1315162020202020191816120d0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001090f14181b1b20202020191816120d07000000000000000000070d12161819202020202020201d1c1916100a0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003060809111313131312110f0b07010000000000000000000000000000000000000000000000000002050708131313131312070604010000000000000000000000000000000000000000000000000000030613131313131313131313130f0f0d09040000000000000000000000000000000000000000000000000000000106090b0c13131313131313131313130603000000000000000000000000000000000104070712131313131313131107060401000000000000000000000000000000000000000000000000000306061013131313131313120807050200000000000000000000000000000000000000000000000000000407090a0f1213120f0a0605030000000000000306071313130c0b090601000000000000000000000000000000000000000000000000000000000000000000000407090a0f1213120f0a0605030000000000000306071313130c0b09060100000000000000000000000000000000000001060b0f1111131313131311100e0a06000000000000000000000000000000000000000000000000000000000000000000000000000205070812131313131313131308070502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306080913131313130c0c09060100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004080c0e0f131313130c0b09060100000000000000000000000106090b0c13131313131313100f0d0a05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + m_StreamData: + offset: 0 + size: 0 + path: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset.meta new file mode 100644 index 0000000..66e69d1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8f586378b4e144a9851e7b34d9b748ee +timeCreated: 1484171803 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt new file mode 100644 index 0000000..a52cc38 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt @@ -0,0 +1 @@ +)]}〕〉》」』】〙〗〟’”⦆»ヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻‐゠–〜?!‼⁇⁈⁉・、%,.:;。!?]):;=}¢°"†‡℃〆%,. \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt.meta new file mode 100644 index 0000000..73ed660 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fade42e8bc714b018fac513c043d323b +timeCreated: 1425440388 +licenseType: Store +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt new file mode 100644 index 0000000..ccbb4ae --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt @@ -0,0 +1 @@ +([{〔〈《「『【〘〖〝‘“⦅«$—…‥〳〴〵\[({£¥"々〇$¥₩ # \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt.meta new file mode 100644 index 0000000..cc684b3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d82c1b31c7e74239bff1220585707d2b +timeCreated: 1425440388 +licenseType: Store +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Sprite Assets.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Sprite Assets.meta new file mode 100644 index 0000000..5171f1b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Sprite Assets.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 512a49d95c0c4332bdd98131869c23c9 +folderAsset: yes +timeCreated: 1441876896 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset new file mode 100644 index 0000000..98e6d27 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset @@ -0,0 +1,659 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2103686 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: TextMeshPro/Sprite + m_Shader: {fileID: 4800000, guid: cf81c85f95fe47e1a27f6ae460cf182c, type: 3} + m_ShaderKeywords: UNITY_UI_CLIP_RECT + m_LightmapFlags: 5 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: dffef66376be4fa480fb02b19edbe903, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _ColorMask: 15 + - _CullMode: 0 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _UseUIAlphaClip: 0 + m_Colors: + - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} + - _Color: {r: 1, g: 1, b: 1, a: 1} +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 84a92b25f83d49b9bc132d206b370281, type: 3} + m_Name: EmojiOne + m_EditorClassIdentifier: + hashCode: -1836805472 + material: {fileID: 2103686} + materialHashCode: 0 + m_Version: 1.1.0 + m_FaceInfo: + m_FamilyName: + m_StyleName: + m_PointSize: 0 + m_Scale: 0 + m_LineHeight: 0 + m_AscentLine: 0 + m_CapLine: 0 + m_MeanLine: 0 + m_Baseline: 0 + m_DescentLine: 0 + m_SuperscriptOffset: 0 + m_SuperscriptSize: 0 + m_SubscriptOffset: 0 + m_SubscriptSize: 0 + m_UnderlineOffset: 0 + m_UnderlineThickness: 0 + m_StrikethroughOffset: 0 + m_StrikethroughThickness: 0 + m_TabWidth: 0 + spriteSheet: {fileID: 2800000, guid: dffef66376be4fa480fb02b19edbe903, type: 3} + m_SpriteCharacterTable: + - m_ElementType: 2 + m_Unicode: 128522 + m_GlyphIndex: 0 + m_Scale: 1 + m_Name: Smiling face with smiling eyes + m_HashCode: -1318250903 + - m_ElementType: 2 + m_Unicode: 128523 + m_GlyphIndex: 1 + m_Scale: 1 + m_Name: 1f60b + m_HashCode: 57188339 + - m_ElementType: 2 + m_Unicode: 128525 + m_GlyphIndex: 2 + m_Scale: 1 + m_Name: 1f60d + m_HashCode: 57188341 + - m_ElementType: 2 + m_Unicode: 128526 + m_GlyphIndex: 3 + m_Scale: 1 + m_Name: 1f60e + m_HashCode: 57188340 + - m_ElementType: 2 + m_Unicode: 128512 + m_GlyphIndex: 4 + m_Scale: 1 + m_Name: Grinning face + m_HashCode: -95541379 + - m_ElementType: 2 + m_Unicode: 128513 + m_GlyphIndex: 5 + m_Scale: 1 + m_Name: 1f601 + m_HashCode: 57188256 + - m_ElementType: 2 + m_Unicode: 128514 + m_GlyphIndex: 6 + m_Scale: 1 + m_Name: Face with tears of joy + m_HashCode: 239522663 + - m_ElementType: 2 + m_Unicode: 128515 + m_GlyphIndex: 7 + m_Scale: 1 + m_Name: 1f603 + m_HashCode: 57188258 + - m_ElementType: 2 + m_Unicode: 128516 + m_GlyphIndex: 8 + m_Scale: 1 + m_Name: 1f604 + m_HashCode: 57188261 + - m_ElementType: 2 + m_Unicode: 128517 + m_GlyphIndex: 9 + m_Scale: 1 + m_Name: 1f605 + m_HashCode: 57188260 + - m_ElementType: 2 + m_Unicode: 128518 + m_GlyphIndex: 10 + m_Scale: 1 + m_Name: 1f606 + m_HashCode: 57188263 + - m_ElementType: 2 + m_Unicode: 128521 + m_GlyphIndex: 11 + m_Scale: 1 + m_Name: 1f609 + m_HashCode: 57188264 + - m_ElementType: 2 + m_Unicode: 0 + m_GlyphIndex: 12 + m_Scale: 1 + m_Name: .notdef + m_HashCode: -600915428 + - m_ElementType: 2 + m_Unicode: 129315 + m_GlyphIndex: 13 + m_Scale: 1 + m_Name: 1f923 + m_HashCode: 57200239 + - m_ElementType: 2 + m_Unicode: 9786 + m_GlyphIndex: 14 + m_Scale: 1 + m_Name: 263a + m_HashCode: 1748406 + - m_ElementType: 2 + m_Unicode: 9785 + m_GlyphIndex: 15 + m_Scale: 1 + m_Name: 2639 + m_HashCode: 1748462 + m_SpriteGlyphTable: + - m_Index: 0 + m_Metrics: + m_Width: 128 + m_Height: 128 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 115.6 + m_HorizontalAdvance: 128 + m_GlyphRect: + m_X: 0 + m_Y: 384 + m_Width: 128 + m_Height: 128 + m_Scale: 1 + m_AtlasIndex: 0 + sprite: {fileID: 0} + - m_Index: 1 + m_Metrics: + m_Width: 128 + m_Height: 128 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 115.6 + m_HorizontalAdvance: 128 + m_GlyphRect: + m_X: 128 + m_Y: 384 + m_Width: 128 + m_Height: 128 + m_Scale: 1 + m_AtlasIndex: 0 + sprite: {fileID: 0} + - m_Index: 2 + m_Metrics: + m_Width: 128 + m_Height: 128 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 115.6 + m_HorizontalAdvance: 128 + m_GlyphRect: + m_X: 256 + m_Y: 384 + m_Width: 128 + m_Height: 128 + m_Scale: 1 + m_AtlasIndex: 0 + sprite: {fileID: 0} + - m_Index: 3 + m_Metrics: + m_Width: 128 + m_Height: 128 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 115.6 + m_HorizontalAdvance: 128 + m_GlyphRect: + m_X: 384 + m_Y: 384 + m_Width: 128 + m_Height: 128 + m_Scale: 1 + m_AtlasIndex: 0 + sprite: {fileID: 0} + - m_Index: 4 + m_Metrics: + m_Width: 128 + m_Height: 128 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 115.6 + m_HorizontalAdvance: 128 + m_GlyphRect: + m_X: 0 + m_Y: 256 + m_Width: 128 + m_Height: 128 + m_Scale: 1 + m_AtlasIndex: 0 + sprite: {fileID: 0} + - m_Index: 5 + m_Metrics: + m_Width: 128 + m_Height: 128 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 115.6 + m_HorizontalAdvance: 128 + m_GlyphRect: + m_X: 128 + m_Y: 256 + m_Width: 128 + m_Height: 128 + m_Scale: 1 + m_AtlasIndex: 0 + sprite: {fileID: 0} + - m_Index: 6 + m_Metrics: + m_Width: 128 + m_Height: 128 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 115.6 + m_HorizontalAdvance: 128 + m_GlyphRect: + m_X: 256 + m_Y: 256 + m_Width: 128 + m_Height: 128 + m_Scale: 1 + m_AtlasIndex: 0 + sprite: {fileID: 0} + - m_Index: 7 + m_Metrics: + m_Width: 128 + m_Height: 128 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 115.6 + m_HorizontalAdvance: 128 + m_GlyphRect: + m_X: 384 + m_Y: 256 + m_Width: 128 + m_Height: 128 + m_Scale: 1 + m_AtlasIndex: 0 + sprite: {fileID: 0} + - m_Index: 8 + m_Metrics: + m_Width: 128 + m_Height: 128 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 115.6 + m_HorizontalAdvance: 128 + m_GlyphRect: + m_X: 0 + m_Y: 128 + m_Width: 128 + m_Height: 128 + m_Scale: 1 + m_AtlasIndex: 0 + sprite: {fileID: 0} + - m_Index: 9 + m_Metrics: + m_Width: 128 + m_Height: 128 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 115.6 + m_HorizontalAdvance: 128 + m_GlyphRect: + m_X: 128 + m_Y: 128 + m_Width: 128 + m_Height: 128 + m_Scale: 1 + m_AtlasIndex: 0 + sprite: {fileID: 0} + - m_Index: 10 + m_Metrics: + m_Width: 128 + m_Height: 128 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 115.6 + m_HorizontalAdvance: 128 + m_GlyphRect: + m_X: 256 + m_Y: 128 + m_Width: 128 + m_Height: 128 + m_Scale: 1 + m_AtlasIndex: 0 + sprite: {fileID: 0} + - m_Index: 11 + m_Metrics: + m_Width: 128 + m_Height: 128 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 115.6 + m_HorizontalAdvance: 128 + m_GlyphRect: + m_X: 384 + m_Y: 128 + m_Width: 128 + m_Height: 128 + m_Scale: 1 + m_AtlasIndex: 0 + sprite: {fileID: 0} + - m_Index: 12 + m_Metrics: + m_Width: 128 + m_Height: 128 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 115.6 + m_HorizontalAdvance: 128 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 128 + m_Height: 128 + m_Scale: 1 + m_AtlasIndex: 0 + sprite: {fileID: 0} + - m_Index: 13 + m_Metrics: + m_Width: 128 + m_Height: 128 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 115.6 + m_HorizontalAdvance: 128 + m_GlyphRect: + m_X: 128 + m_Y: 0 + m_Width: 128 + m_Height: 128 + m_Scale: 1 + m_AtlasIndex: 0 + sprite: {fileID: 0} + - m_Index: 14 + m_Metrics: + m_Width: 128 + m_Height: 128 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 115.6 + m_HorizontalAdvance: 128 + m_GlyphRect: + m_X: 256 + m_Y: 0 + m_Width: 128 + m_Height: 128 + m_Scale: 1 + m_AtlasIndex: 0 + sprite: {fileID: 0} + - m_Index: 15 + m_Metrics: + m_Width: 128 + m_Height: 128 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 115.6 + m_HorizontalAdvance: 128 + m_GlyphRect: + m_X: 384 + m_Y: 0 + m_Width: 128 + m_Height: 128 + m_Scale: 1 + m_AtlasIndex: 0 + sprite: {fileID: 0} + spriteInfoList: + - id: 0 + x: 0 + y: 384 + width: 128 + height: 128 + xOffset: 0 + yOffset: 115.6 + xAdvance: 128 + scale: 1 + name: Smiling face with smiling eyes + hashCode: -1318250903 + unicode: 128522 + pivot: {x: 0.5, y: 0.5} + sprite: {fileID: 0} + - id: 1 + x: 128 + y: 384 + width: 128 + height: 128 + xOffset: 0 + yOffset: 115.6 + xAdvance: 128 + scale: 1 + name: 1f60b + hashCode: 57188339 + unicode: 128523 + pivot: {x: 0.5, y: 0.5} + sprite: {fileID: 0} + - id: 2 + x: 256 + y: 384 + width: 128 + height: 128 + xOffset: 0 + yOffset: 115.6 + xAdvance: 128 + scale: 1 + name: 1f60d + hashCode: 57188341 + unicode: 128525 + pivot: {x: 0.5, y: 0.5} + sprite: {fileID: 0} + - id: 3 + x: 384 + y: 384 + width: 128 + height: 128 + xOffset: 0 + yOffset: 115.6 + xAdvance: 128 + scale: 1 + name: 1f60e + hashCode: 57188340 + unicode: 128526 + pivot: {x: 0.5, y: 0.5} + sprite: {fileID: 0} + - id: 4 + x: 0 + y: 256 + width: 128 + height: 128 + xOffset: 0 + yOffset: 115.6 + xAdvance: 128 + scale: 1 + name: Grinning face + hashCode: -95541379 + unicode: 128512 + pivot: {x: 0.5, y: 0.5} + sprite: {fileID: 0} + - id: 5 + x: 128 + y: 256 + width: 128 + height: 128 + xOffset: 0 + yOffset: 115.6 + xAdvance: 128 + scale: 1 + name: 1f601 + hashCode: 57188256 + unicode: 128513 + pivot: {x: 0.5, y: 0.5} + sprite: {fileID: 0} + - id: 6 + x: 256 + y: 256 + width: 128 + height: 128 + xOffset: 0 + yOffset: 115.6 + xAdvance: 128 + scale: 1 + name: Face with tears of joy + hashCode: 239522663 + unicode: 128514 + pivot: {x: 0.5, y: 0.5} + sprite: {fileID: 0} + - id: 7 + x: 384 + y: 256 + width: 128 + height: 128 + xOffset: 0 + yOffset: 115.6 + xAdvance: 128 + scale: 1 + name: 1f603 + hashCode: 57188258 + unicode: 128515 + pivot: {x: 0.5, y: 0.5} + sprite: {fileID: 0} + - id: 8 + x: 0 + y: 128 + width: 128 + height: 128 + xOffset: 0 + yOffset: 115.6 + xAdvance: 128 + scale: 1 + name: 1f604 + hashCode: 57188261 + unicode: 128516 + pivot: {x: 0.5, y: 0.5} + sprite: {fileID: 0} + - id: 9 + x: 128 + y: 128 + width: 128 + height: 128 + xOffset: 0 + yOffset: 115.6 + xAdvance: 128 + scale: 1 + name: 1f605 + hashCode: 57188260 + unicode: 128517 + pivot: {x: 0.5, y: 0.5} + sprite: {fileID: 0} + - id: 10 + x: 256 + y: 128 + width: 128 + height: 128 + xOffset: 0 + yOffset: 115.6 + xAdvance: 128 + scale: 1 + name: 1f606 + hashCode: 57188263 + unicode: 128518 + pivot: {x: 0.5, y: 0.5} + sprite: {fileID: 0} + - id: 11 + x: 384 + y: 128 + width: 128 + height: 128 + xOffset: 0 + yOffset: 115.6 + xAdvance: 128 + scale: 1 + name: 1f609 + hashCode: 57188264 + unicode: 128521 + pivot: {x: 0.5, y: 0.5} + sprite: {fileID: 0} + - id: 12 + x: 0 + y: 0 + width: 128 + height: 128 + xOffset: 0 + yOffset: 115.6 + xAdvance: 128 + scale: 1 + name: 1f618 + hashCode: 57188168 + unicode: 128536 + pivot: {x: 0.5, y: 0.5} + sprite: {fileID: 0} + - id: 13 + x: 128 + y: 0 + width: 128 + height: 128 + xOffset: 0 + yOffset: 115.6 + xAdvance: 128 + scale: 1 + name: 1f923 + hashCode: 57200239 + unicode: 129315 + pivot: {x: 0.5, y: 0.5} + sprite: {fileID: 0} + - id: 14 + x: 256 + y: 0 + width: 128 + height: 128 + xOffset: 0 + yOffset: 115.6 + xAdvance: 128 + scale: 1 + name: 263a + hashCode: 1748406 + unicode: 9786 + pivot: {x: 0.5, y: 0.5} + sprite: {fileID: 0} + - id: 15 + x: 384 + y: 0 + width: 128 + height: 128 + xOffset: 0 + yOffset: 115.6 + xAdvance: 128 + scale: 1 + name: 2639 + hashCode: 1748462 + unicode: 9785 + pivot: {x: 0.5, y: 0.5} + sprite: {fileID: 0} + fallbackSpriteAssets: [] +--- !u!21 &1369835458 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: TextMeshPro/Sprite + m_Shader: {fileID: 4800000, guid: cf81c85f95fe47e1a27f6ae460cf182c, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 5 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: [] + m_Floats: [] + m_Colors: [] diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset.meta new file mode 100644 index 0000000..c7ac83f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c41005c129ba4d66911b75229fd70b45 +timeCreated: 1480316912 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Style Sheets.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Style Sheets.meta new file mode 100644 index 0000000..4958550 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Style Sheets.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4aecb92fff08436c8303b10eab8da368 +folderAsset: yes +timeCreated: 1441876950 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset new file mode 100644 index 0000000..ceb609b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset @@ -0,0 +1,68 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ab2114bdc8544297b417dfefe9f1e410, type: 3} + m_Name: Default Style Sheet + m_EditorClassIdentifier: + m_StyleList: + - m_Name: H1 + m_HashCode: 2425 + m_OpeningDefinition: <#40ff80>* + m_ClosingDefinition: '*' + m_OpeningTagArray: 3c00000073000000690000007a000000650000003d00000032000000650000006d0000003e0000003c000000620000003e0000003c000000230000003400000030000000660000006600000038000000300000003e0000002a000000 + m_ClosingTagArray: 2a0000003c0000002f00000073000000690000007a000000650000003e0000003c0000002f000000620000003e0000003c0000002f000000630000006f0000006c0000006f000000720000003e000000 + - m_Name: Quote + m_HashCode: 92254330 + m_OpeningDefinition: + m_ClosingDefinition: + m_OpeningTagArray: 3c000000690000003e0000003c00000073000000690000007a000000650000003d0000003700000035000000250000003e0000003c0000006d000000610000007200000067000000690000006e0000003d0000003100000030000000250000003e000000 + m_ClosingTagArray: 3c0000002f000000690000003e0000003c0000002f00000073000000690000007a000000650000003e0000003c0000002f00000077000000690000006400000074000000680000003e0000003c0000002f0000006d000000610000007200000067000000690000006e0000003e000000 + - m_Name: Link + m_HashCode: 2687968 + m_OpeningDefinition: <#40a0ff> + m_ClosingDefinition: + m_OpeningTagArray: 3c000000750000003e0000003c000000230000003400000030000000610000003000000066000000660000003e0000003c0000006c000000690000006e0000006b0000003d0000002200000049000000440000005f0000003000000031000000220000003e000000 + m_ClosingTagArray: 3c0000002f000000750000003e0000003c0000002f000000630000006f0000006c0000006f000000720000003e0000003c0000002f0000006c000000690000006e0000006b0000003e000000 + - m_Name: Title + m_HashCode: 98732960 + m_OpeningDefinition: + m_ClosingDefinition: + m_OpeningTagArray: 3c00000073000000690000007a000000650000003d000000310000003200000035000000250000003e0000003c000000620000003e0000003c000000610000006c00000069000000670000006e0000003d00000063000000650000006e0000007400000065000000720000003e000000 + m_ClosingTagArray: 3c0000002f00000073000000690000007a000000650000003e0000003c0000002f000000620000003e0000003c0000002f000000610000006c00000069000000670000006e0000003e000000 + - m_Name: H2 + m_HashCode: 2426 + m_OpeningDefinition: <#4080FF> + m_ClosingDefinition: + m_OpeningTagArray: 3c00000073000000690000007a000000650000003d000000310000002e00000035000000650000006d0000003e0000003c000000620000003e0000003c000000230000003400000030000000380000003000000046000000460000003e000000 + m_ClosingTagArray: 3c0000002f00000073000000690000007a000000650000003e0000003c0000002f000000620000003e0000003c0000002f000000630000006f0000006c0000006f000000720000003e000000 + - m_Name: H3 + m_HashCode: 2427 + m_OpeningDefinition: <#FF8040> + m_ClosingDefinition: + m_OpeningTagArray: 3c00000073000000690000007a000000650000003d000000310000002e0000003100000037000000650000006d0000003e0000003c000000620000003e0000003c000000230000004600000046000000380000003000000034000000300000003e000000 + m_ClosingTagArray: 3c0000002f00000073000000690000007a000000650000003e0000003c0000002f000000620000003e0000003c0000002f000000630000006f0000006c0000006f000000720000003e000000 + - m_Name: C1 + m_HashCode: 2194 + m_OpeningDefinition: + m_ClosingDefinition: + m_OpeningTagArray: 3c000000630000006f0000006c0000006f000000720000003d000000230000006600000066000000660000006600000034000000300000003e000000 + m_ClosingTagArray: 3c0000002f000000630000006f0000006c0000006f000000720000003e000000 + - m_Name: C2 + m_HashCode: 2193 + m_OpeningDefinition: + m_ClosingDefinition: + m_OpeningTagArray: 3c000000630000006f0000006c0000006f000000720000003d000000230000006600000066000000340000003000000046000000460000003e0000003c00000073000000690000007a000000650000003d000000310000003200000035000000250000003e000000 + m_ClosingTagArray: 3c0000002f000000630000006f0000006c0000006f000000720000003e0000003c0000002f00000073000000690000007a000000650000003e000000 + - m_Name: C3 + m_HashCode: 2192 + m_OpeningDefinition: + m_ClosingDefinition: + m_OpeningTagArray: 3c000000630000006f0000006c0000006f000000720000003d000000230000003800000030000000410000003000000046000000460000003e0000003c000000620000003e000000 + m_ClosingTagArray: 3c0000002f000000630000006f0000006c0000006f000000720000003e0000003c0000002f000000620000003e000000 diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta new file mode 100644 index 0000000..95fd96e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f952c082cb03451daed3ee968ac6c63e +timeCreated: 1432805430 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/TMP Settings.asset b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/TMP Settings.asset new file mode 100644 index 0000000..c09a92f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/TMP Settings.asset @@ -0,0 +1,46 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2705215ac5b84b70bacc50632be6e391, type: 3} + m_Name: TMP Settings + m_EditorClassIdentifier: + m_enableWordWrapping: 1 + m_enableKerning: 1 + m_enableExtraPadding: 0 + m_enableTintAllSprites: 0 + m_enableParseEscapeCharacters: 1 + m_EnableRaycastTarget: 1 + m_GetFontFeaturesAtRuntime: 1 + m_missingGlyphCharacter: 0 + m_warningsDisabled: 0 + m_defaultFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_defaultFontAssetPath: Fonts & Materials/ + m_defaultFontSize: 36 + m_defaultAutoSizeMinRatio: 0.5 + m_defaultAutoSizeMaxRatio: 2 + m_defaultTextMeshProTextContainerSize: {x: 20, y: 5} + m_defaultTextMeshProUITextContainerSize: {x: 200, y: 50} + m_autoSizeTextContainer: 0 + m_fallbackFontAssets: [] + m_matchMaterialPreset: 1 + m_defaultSpriteAsset: {fileID: 11400000, guid: c41005c129ba4d66911b75229fd70b45, + type: 2} + m_defaultSpriteAssetPath: Sprite Assets/ + m_enableEmojiSupport: 1 + m_MissingCharacterSpriteUnicode: 0 + m_defaultColorGradientPresetsPath: Color Gradient Presets/ + m_defaultStyleSheet: {fileID: 11400000, guid: f952c082cb03451daed3ee968ac6c63e, + type: 2} + m_StyleSheetsResourcePath: + m_leadingCharacters: {fileID: 4900000, guid: d82c1b31c7e74239bff1220585707d2b, type: 3} + m_followingCharacters: {fileID: 4900000, guid: fade42e8bc714b018fac513c043d323b, + type: 3} + m_UseModernHangulLineBreakingRules: 0 diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/TMP Settings.asset.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/TMP Settings.asset.meta new file mode 100644 index 0000000..32db384 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Resources/TMP Settings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3f5b5dff67a942289a9defa416b206f3 +timeCreated: 1436653997 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders.meta new file mode 100644 index 0000000..29a90a6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e9f693669af91aa45ad615fc681ed29f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader new file mode 100644 index 0000000..bab2b2c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader @@ -0,0 +1,143 @@ +Shader "TextMeshPro/Bitmap Custom Atlas" { + +Properties { + _MainTex ("Font Atlas", 2D) = "white" {} + _FaceTex ("Font Texture", 2D) = "white" {} + [HDR]_FaceColor ("Text Color", Color) = (1,1,1,1) + + _VertexOffsetX ("Vertex OffsetX", float) = 0 + _VertexOffsetY ("Vertex OffsetY", float) = 0 + _MaskSoftnessX ("Mask SoftnessX", float) = 0 + _MaskSoftnessY ("Mask SoftnessY", float) = 0 + + _ClipRect("Clip Rect", vector) = (-32767, -32767, 32767, 32767) + _Padding ("Padding", float) = 0 + + _StencilComp("Stencil Comparison", Float) = 8 + _Stencil("Stencil ID", Float) = 0 + _StencilOp("Stencil Operation", Float) = 0 + _StencilWriteMask("Stencil Write Mask", Float) = 255 + _StencilReadMask("Stencil Read Mask", Float) = 255 + + _CullMode("Cull Mode", Float) = 0 + _ColorMask("Color Mask", Float) = 15 +} + +SubShader{ + + Tags { "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" } + + Stencil + { + Ref[_Stencil] + Comp[_StencilComp] + Pass[_StencilOp] + ReadMask[_StencilReadMask] + WriteMask[_StencilWriteMask] + } + + + Lighting Off + Cull [_CullMode] + ZTest [unity_GUIZTestMode] + ZWrite Off + Fog { Mode Off } + Blend SrcAlpha OneMinusSrcAlpha + ColorMask[_ColorMask] + + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #pragma multi_compile __ UNITY_UI_CLIP_RECT + #pragma multi_compile __ UNITY_UI_ALPHACLIP + + + #include "UnityCG.cginc" + + struct appdata_t { + float4 vertex : POSITION; + fixed4 color : COLOR; + float2 texcoord0 : TEXCOORD0; + float2 texcoord1 : TEXCOORD1; + }; + + struct v2f { + float4 vertex : SV_POSITION; + fixed4 color : COLOR; + float2 texcoord0 : TEXCOORD0; + float2 texcoord1 : TEXCOORD1; + float4 mask : TEXCOORD2; + }; + + uniform sampler2D _MainTex; + uniform sampler2D _FaceTex; + uniform float4 _FaceTex_ST; + uniform fixed4 _FaceColor; + + uniform float _VertexOffsetX; + uniform float _VertexOffsetY; + uniform float4 _ClipRect; + uniform float _MaskSoftnessX; + uniform float _MaskSoftnessY; + + float2 UnpackUV(float uv) + { + float2 output; + output.x = floor(uv / 4096); + output.y = uv - 4096 * output.x; + + return output * 0.001953125; + } + + v2f vert (appdata_t v) + { + float4 vert = v.vertex; + vert.x += _VertexOffsetX; + vert.y += _VertexOffsetY; + + vert.xy += (vert.w * 0.5) / _ScreenParams.xy; + + float4 vPosition = UnityPixelSnap(UnityObjectToClipPos(vert)); + + fixed4 faceColor = v.color; + faceColor *= _FaceColor; + + v2f OUT; + OUT.vertex = vPosition; + OUT.color = faceColor; + OUT.texcoord0 = v.texcoord0; + OUT.texcoord1 = TRANSFORM_TEX(UnpackUV(v.texcoord1), _FaceTex); + float2 pixelSize = vPosition.w; + pixelSize /= abs(float2(_ScreenParams.x * UNITY_MATRIX_P[0][0], _ScreenParams.y * UNITY_MATRIX_P[1][1])); + + // Clamp _ClipRect to 16bit. + float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); + OUT.mask = float4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy)); + + return OUT; + } + + fixed4 frag (v2f IN) : SV_Target + { + fixed4 color = tex2D(_MainTex, IN.texcoord0) * tex2D(_FaceTex, IN.texcoord1) * IN.color; + + // Alternative implementation to UnityGet2DClipping with support for softness. + #if UNITY_UI_CLIP_RECT + half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw); + color *= m.x * m.y; + #endif + + #if UNITY_UI_ALPHACLIP + clip(color.a - 0.001); + #endif + + return color; + } + ENDCG + } +} + + CustomEditor "TMPro.EditorUtilities.TMP_BitmapShaderGUI" +} diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader.meta new file mode 100644 index 0000000..0a416c8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 48bb5f55d8670e349b6e614913f9d910 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader new file mode 100644 index 0000000..006a271 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader @@ -0,0 +1,145 @@ +Shader "TextMeshPro/Mobile/Bitmap" { + +Properties { + _MainTex ("Font Atlas", 2D) = "white" {} + [HDR]_Color ("Text Color", Color) = (1,1,1,1) + _DiffusePower ("Diffuse Power", Range(1.0,4.0)) = 1.0 + + _VertexOffsetX("Vertex OffsetX", float) = 0 + _VertexOffsetY("Vertex OffsetY", float) = 0 + _MaskSoftnessX("Mask SoftnessX", float) = 0 + _MaskSoftnessY("Mask SoftnessY", float) = 0 + + _ClipRect("Clip Rect", vector) = (-32767, -32767, 32767, 32767) + + _StencilComp("Stencil Comparison", Float) = 8 + _Stencil("Stencil ID", Float) = 0 + _StencilOp("Stencil Operation", Float) = 0 + _StencilWriteMask("Stencil Write Mask", Float) = 255 + _StencilReadMask("Stencil Read Mask", Float) = 255 + + _CullMode("Cull Mode", Float) = 0 + _ColorMask("Color Mask", Float) = 15 +} + +SubShader { + + Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } + + Stencil + { + Ref[_Stencil] + Comp[_StencilComp] + Pass[_StencilOp] + ReadMask[_StencilReadMask] + WriteMask[_StencilWriteMask] + } + + + Lighting Off + Cull [_CullMode] + ZTest [unity_GUIZTestMode] + ZWrite Off + Fog { Mode Off } + Blend SrcAlpha OneMinusSrcAlpha + ColorMask[_ColorMask] + + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + + #pragma multi_compile __ UNITY_UI_CLIP_RECT + #pragma multi_compile __ UNITY_UI_ALPHACLIP + + + #include "UnityCG.cginc" + + struct appdata_t { + float4 vertex : POSITION; + fixed4 color : COLOR; + float2 texcoord0 : TEXCOORD0; + float2 texcoord1 : TEXCOORD1; + }; + + struct v2f { + float4 vertex : POSITION; + fixed4 color : COLOR; + float2 texcoord0 : TEXCOORD0; + float4 mask : TEXCOORD2; + }; + + sampler2D _MainTex; + fixed4 _Color; + float _DiffusePower; + + uniform float _VertexOffsetX; + uniform float _VertexOffsetY; + uniform float4 _ClipRect; + uniform float _MaskSoftnessX; + uniform float _MaskSoftnessY; + + v2f vert (appdata_t v) + { + v2f OUT; + float4 vert = v.vertex; + vert.x += _VertexOffsetX; + vert.y += _VertexOffsetY; + + vert.xy += (vert.w * 0.5) / _ScreenParams.xy; + + OUT.vertex = UnityPixelSnap(UnityObjectToClipPos(vert)); + OUT.color = v.color; + OUT.color *= _Color; + OUT.color.rgb *= _DiffusePower; + OUT.texcoord0 = v.texcoord0; + + float2 pixelSize = OUT.vertex.w; + //pixelSize /= abs(float2(_ScreenParams.x * UNITY_MATRIX_P[0][0], _ScreenParams.y * UNITY_MATRIX_P[1][1])); + + // Clamp _ClipRect to 16bit. + float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); + OUT.mask = float4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy)); + + return OUT; + } + + fixed4 frag (v2f IN) : COLOR + { + fixed4 color = fixed4(IN.color.rgb, IN.color.a * tex2D(_MainTex, IN.texcoord0).a); + + // Alternative implementation to UnityGet2DClipping with support for softness. + #if UNITY_UI_CLIP_RECT + half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw); + color *= m.x * m.y; + #endif + + #if UNITY_UI_ALPHACLIP + clip(color.a - 0.001); + #endif + + return color; + } + ENDCG + } +} + +SubShader { + Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } + Lighting Off Cull Off ZTest Always ZWrite Off Fog { Mode Off } + Blend SrcAlpha OneMinusSrcAlpha + BindChannels { + Bind "Color", color + Bind "Vertex", vertex + Bind "TexCoord", texcoord0 + } + Pass { + SetTexture [_MainTex] { + constantColor [_Color] combine constant * primary, constant * texture + } + } +} + +CustomEditor "TMPro.EditorUtilities.TMP_BitmapShaderGUI" +} diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader.meta new file mode 100644 index 0000000..d5fb125 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1e3b057af24249748ff873be7fafee47 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader new file mode 100644 index 0000000..8ce4937 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader @@ -0,0 +1,143 @@ +Shader "TextMeshPro/Bitmap" { + +Properties { + _MainTex ("Font Atlas", 2D) = "white" {} + _FaceTex ("Font Texture", 2D) = "white" {} + [HDR]_FaceColor ("Text Color", Color) = (1,1,1,1) + + _VertexOffsetX ("Vertex OffsetX", float) = 0 + _VertexOffsetY ("Vertex OffsetY", float) = 0 + _MaskSoftnessX ("Mask SoftnessX", float) = 0 + _MaskSoftnessY ("Mask SoftnessY", float) = 0 + + _ClipRect("Clip Rect", vector) = (-32767, -32767, 32767, 32767) + + _StencilComp("Stencil Comparison", Float) = 8 + _Stencil("Stencil ID", Float) = 0 + _StencilOp("Stencil Operation", Float) = 0 + _StencilWriteMask("Stencil Write Mask", Float) = 255 + _StencilReadMask("Stencil Read Mask", Float) = 255 + + _CullMode("Cull Mode", Float) = 0 + _ColorMask("Color Mask", Float) = 15 +} + +SubShader{ + + Tags { "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" } + + Stencil + { + Ref[_Stencil] + Comp[_StencilComp] + Pass[_StencilOp] + ReadMask[_StencilReadMask] + WriteMask[_StencilWriteMask] + } + + + Lighting Off + Cull [_CullMode] + ZTest [unity_GUIZTestMode] + ZWrite Off + Fog { Mode Off } + Blend SrcAlpha OneMinusSrcAlpha + ColorMask[_ColorMask] + + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #pragma multi_compile __ UNITY_UI_CLIP_RECT + #pragma multi_compile __ UNITY_UI_ALPHACLIP + + + #include "UnityCG.cginc" + + struct appdata_t { + float4 vertex : POSITION; + fixed4 color : COLOR; + float2 texcoord0 : TEXCOORD0; + float2 texcoord1 : TEXCOORD1; + }; + + struct v2f { + float4 vertex : SV_POSITION; + fixed4 color : COLOR; + float2 texcoord0 : TEXCOORD0; + float2 texcoord1 : TEXCOORD1; + float4 mask : TEXCOORD2; + }; + + uniform sampler2D _MainTex; + uniform sampler2D _FaceTex; + uniform float4 _FaceTex_ST; + uniform fixed4 _FaceColor; + + uniform float _VertexOffsetX; + uniform float _VertexOffsetY; + uniform float4 _ClipRect; + uniform float _MaskSoftnessX; + uniform float _MaskSoftnessY; + + float2 UnpackUV(float uv) + { + float2 output; + output.x = floor(uv / 4096); + output.y = uv - 4096 * output.x; + + return output * 0.001953125; + } + + v2f vert (appdata_t v) + { + float4 vert = v.vertex; + vert.x += _VertexOffsetX; + vert.y += _VertexOffsetY; + + vert.xy += (vert.w * 0.5) / _ScreenParams.xy; + + float4 vPosition = UnityPixelSnap(UnityObjectToClipPos(vert)); + + fixed4 faceColor = v.color; + faceColor *= _FaceColor; + + v2f OUT; + OUT.vertex = vPosition; + OUT.color = faceColor; + OUT.texcoord0 = v.texcoord0; + OUT.texcoord1 = TRANSFORM_TEX(UnpackUV(v.texcoord1), _FaceTex); + float2 pixelSize = vPosition.w; + pixelSize /= abs(float2(_ScreenParams.x * UNITY_MATRIX_P[0][0], _ScreenParams.y * UNITY_MATRIX_P[1][1])); + + // Clamp _ClipRect to 16bit. + float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); + OUT.mask = float4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy)); + + return OUT; + } + + fixed4 frag (v2f IN) : SV_Target + { + fixed4 color = tex2D(_MainTex, IN.texcoord0); + color = fixed4 (tex2D(_FaceTex, IN.texcoord1).rgb * IN.color.rgb, IN.color.a * color.a); + + // Alternative implementation to UnityGet2DClipping with support for softness. + #if UNITY_UI_CLIP_RECT + half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw); + color *= m.x * m.y; + #endif + + #if UNITY_UI_ALPHACLIP + clip(color.a - 0.001); + #endif + + return color; + } + ENDCG + } +} + + CustomEditor "TMPro.EditorUtilities.TMP_BitmapShaderGUI" +} diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader.meta new file mode 100644 index 0000000..7eb1870 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 128e987d567d4e2c824d754223b3f3b0 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader new file mode 100644 index 0000000..c50c593 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader @@ -0,0 +1,317 @@ +Shader "TextMeshPro/Distance Field Overlay" { + +Properties { + _FaceTex ("Face Texture", 2D) = "white" {} + _FaceUVSpeedX ("Face UV Speed X", Range(-5, 5)) = 0.0 + _FaceUVSpeedY ("Face UV Speed Y", Range(-5, 5)) = 0.0 + [HDR]_FaceColor ("Face Color", Color) = (1,1,1,1) + _FaceDilate ("Face Dilate", Range(-1,1)) = 0 + + [HDR]_OutlineColor ("Outline Color", Color) = (0,0,0,1) + _OutlineTex ("Outline Texture", 2D) = "white" {} + _OutlineUVSpeedX ("Outline UV Speed X", Range(-5, 5)) = 0.0 + _OutlineUVSpeedY ("Outline UV Speed Y", Range(-5, 5)) = 0.0 + _OutlineWidth ("Outline Thickness", Range(0, 1)) = 0 + _OutlineSoftness ("Outline Softness", Range(0,1)) = 0 + + _Bevel ("Bevel", Range(0,1)) = 0.5 + _BevelOffset ("Bevel Offset", Range(-0.5,0.5)) = 0 + _BevelWidth ("Bevel Width", Range(-.5,0.5)) = 0 + _BevelClamp ("Bevel Clamp", Range(0,1)) = 0 + _BevelRoundness ("Bevel Roundness", Range(0,1)) = 0 + + _LightAngle ("Light Angle", Range(0.0, 6.2831853)) = 3.1416 + [HDR]_SpecularColor ("Specular", Color) = (1,1,1,1) + _SpecularPower ("Specular", Range(0,4)) = 2.0 + _Reflectivity ("Reflectivity", Range(5.0,15.0)) = 10 + _Diffuse ("Diffuse", Range(0,1)) = 0.5 + _Ambient ("Ambient", Range(1,0)) = 0.5 + + _BumpMap ("Normal map", 2D) = "bump" {} + _BumpOutline ("Bump Outline", Range(0,1)) = 0 + _BumpFace ("Bump Face", Range(0,1)) = 0 + + _ReflectFaceColor ("Reflection Color", Color) = (0,0,0,1) + _ReflectOutlineColor("Reflection Color", Color) = (0,0,0,1) + _Cube ("Reflection Cubemap", Cube) = "black" { /* TexGen CubeReflect */ } + _EnvMatrixRotation ("Texture Rotation", vector) = (0, 0, 0, 0) + + + [HDR]_UnderlayColor ("Border Color", Color) = (0,0,0, 0.5) + _UnderlayOffsetX ("Border OffsetX", Range(-1,1)) = 0 + _UnderlayOffsetY ("Border OffsetY", Range(-1,1)) = 0 + _UnderlayDilate ("Border Dilate", Range(-1,1)) = 0 + _UnderlaySoftness ("Border Softness", Range(0,1)) = 0 + + [HDR]_GlowColor ("Color", Color) = (0, 1, 0, 0.5) + _GlowOffset ("Offset", Range(-1,1)) = 0 + _GlowInner ("Inner", Range(0,1)) = 0.05 + _GlowOuter ("Outer", Range(0,1)) = 0.05 + _GlowPower ("Falloff", Range(1, 0)) = 0.75 + + _WeightNormal ("Weight Normal", float) = 0 + _WeightBold ("Weight Bold", float) = 0.5 + + _ShaderFlags ("Flags", float) = 0 + _ScaleRatioA ("Scale RatioA", float) = 1 + _ScaleRatioB ("Scale RatioB", float) = 1 + _ScaleRatioC ("Scale RatioC", float) = 1 + + _MainTex ("Font Atlas", 2D) = "white" {} + _TextureWidth ("Texture Width", float) = 512 + _TextureHeight ("Texture Height", float) = 512 + _GradientScale ("Gradient Scale", float) = 5.0 + _ScaleX ("Scale X", float) = 1.0 + _ScaleY ("Scale Y", float) = 1.0 + _PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875 + _Sharpness ("Sharpness", Range(-1,1)) = 0 + + _VertexOffsetX ("Vertex OffsetX", float) = 0 + _VertexOffsetY ("Vertex OffsetY", float) = 0 + + _MaskCoord ("Mask Coordinates", vector) = (0, 0, 32767, 32767) + _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767) + _MaskSoftnessX ("Mask SoftnessX", float) = 0 + _MaskSoftnessY ("Mask SoftnessY", float) = 0 + + _StencilComp ("Stencil Comparison", Float) = 8 + _Stencil ("Stencil ID", Float) = 0 + _StencilOp ("Stencil Operation", Float) = 0 + _StencilWriteMask ("Stencil Write Mask", Float) = 255 + _StencilReadMask ("Stencil Read Mask", Float) = 255 + + _CullMode ("Cull Mode", Float) = 0 + _ColorMask ("Color Mask", Float) = 15 +} + +SubShader { + + Tags + { + "Queue"="Overlay" + "IgnoreProjector"="True" + "RenderType"="Transparent" + } + + Stencil + { + Ref [_Stencil] + Comp [_StencilComp] + Pass [_StencilOp] + ReadMask [_StencilReadMask] + WriteMask [_StencilWriteMask] + } + + Cull [_CullMode] + ZWrite Off + Lighting Off + Fog { Mode Off } + ZTest Always + Blend One OneMinusSrcAlpha + ColorMask [_ColorMask] + + Pass { + CGPROGRAM + #pragma target 3.0 + #pragma vertex VertShader + #pragma fragment PixShader + #pragma shader_feature __ BEVEL_ON + #pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER + #pragma shader_feature __ GLOW_ON + + #pragma multi_compile __ UNITY_UI_CLIP_RECT + #pragma multi_compile __ UNITY_UI_ALPHACLIP + + #include "UnityCG.cginc" + #include "UnityUI.cginc" + #include "TMPro_Properties.cginc" + #include "TMPro.cginc" + + struct vertex_t { + UNITY_VERTEX_INPUT_INSTANCE_ID + float4 position : POSITION; + float3 normal : NORMAL; + fixed4 color : COLOR; + float2 texcoord0 : TEXCOORD0; + float2 texcoord1 : TEXCOORD1; + }; + + + struct pixel_t { + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + float4 position : SV_POSITION; + fixed4 color : COLOR; + float2 atlas : TEXCOORD0; // Atlas + float4 param : TEXCOORD1; // alphaClip, scale, bias, weight + float4 mask : TEXCOORD2; // Position in object space(xy), pixel Size(zw) + float3 viewDir : TEXCOORD3; + + #if (UNDERLAY_ON || UNDERLAY_INNER) + float4 texcoord2 : TEXCOORD4; // u,v, scale, bias + fixed4 underlayColor : COLOR1; + #endif + float4 textures : TEXCOORD5; + }; + + // Used by Unity internally to handle Texture Tiling and Offset. + float4 _FaceTex_ST; + float4 _OutlineTex_ST; + + pixel_t VertShader(vertex_t input) + { + pixel_t output; + + UNITY_INITIALIZE_OUTPUT(pixel_t, output); + UNITY_SETUP_INSTANCE_ID(input); + UNITY_TRANSFER_INSTANCE_ID(input,output); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); + + float bold = step(input.texcoord1.y, 0); + + float4 vert = input.position; + vert.x += _VertexOffsetX; + vert.y += _VertexOffsetY; + + float4 vPosition = UnityObjectToClipPos(vert); + + float2 pixelSize = vPosition.w; + pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy)); + float scale = rsqrt(dot(pixelSize, pixelSize)); + scale *= abs(input.texcoord1.y) * _GradientScale * (_Sharpness + 1); + if (UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert))))); + + float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0; + weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5; + + float bias =(.5 - weight) + (.5 / scale); + + float alphaClip = (1.0 - _OutlineWidth*_ScaleRatioA - _OutlineSoftness*_ScaleRatioA); + + #if GLOW_ON + alphaClip = min(alphaClip, 1.0 - _GlowOffset * _ScaleRatioB - _GlowOuter * _ScaleRatioB); + #endif + + alphaClip = alphaClip / 2.0 - ( .5 / scale) - weight; + + #if (UNDERLAY_ON || UNDERLAY_INNER) + float4 underlayColor = _UnderlayColor; + underlayColor.rgb *= underlayColor.a; + + float bScale = scale; + bScale /= 1 + ((_UnderlaySoftness*_ScaleRatioC) * bScale); + float bBias = (0.5 - weight) * bScale - 0.5 - ((_UnderlayDilate * _ScaleRatioC) * 0.5 * bScale); + + float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth; + float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight; + float2 bOffset = float2(x, y); + #endif + + // Generate UV for the Masking Texture + float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); + float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); + + // Support for texture tiling and offset + float2 textureUV = UnpackUV(input.texcoord1.x); + float2 faceUV = TRANSFORM_TEX(textureUV, _FaceTex); + float2 outlineUV = TRANSFORM_TEX(textureUV, _OutlineTex); + + + output.position = vPosition; + output.color = input.color; + output.atlas = input.texcoord0; + output.param = float4(alphaClip, scale, bias, weight); + output.mask = half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy)); + output.viewDir = mul((float3x3)_EnvMatrix, _WorldSpaceCameraPos.xyz - mul(unity_ObjectToWorld, vert).xyz); + #if (UNDERLAY_ON || UNDERLAY_INNER) + output.texcoord2 = float4(input.texcoord0 + bOffset, bScale, bBias); + output.underlayColor = underlayColor; + #endif + output.textures = float4(faceUV, outlineUV); + + return output; + } + + + fixed4 PixShader(pixel_t input) : SV_Target + { + UNITY_SETUP_INSTANCE_ID(input); + + float c = tex2D(_MainTex, input.atlas).a; + + #ifndef UNDERLAY_ON + clip(c - input.param.x); + #endif + + float scale = input.param.y; + float bias = input.param.z; + float weight = input.param.w; + float sd = (bias - c) * scale; + + float outline = (_OutlineWidth * _ScaleRatioA) * scale; + float softness = (_OutlineSoftness * _ScaleRatioA) * scale; + + half4 faceColor = _FaceColor; + half4 outlineColor = _OutlineColor; + + faceColor.rgb *= input.color.rgb; + + faceColor *= tex2D(_FaceTex, input.textures.xy + float2(_FaceUVSpeedX, _FaceUVSpeedY) * _Time.y); + outlineColor *= tex2D(_OutlineTex, input.textures.zw + float2(_OutlineUVSpeedX, _OutlineUVSpeedY) * _Time.y); + + faceColor = GetColor(sd, faceColor, outlineColor, outline, softness); + + #if BEVEL_ON + float3 dxy = float3(0.5 / _TextureWidth, 0.5 / _TextureHeight, 0); + float3 n = GetSurfaceNormal(input.atlas, weight, dxy); + + float3 bump = UnpackNormal(tex2D(_BumpMap, input.textures.xy + float2(_FaceUVSpeedX, _FaceUVSpeedY) * _Time.y)).xyz; + bump *= lerp(_BumpFace, _BumpOutline, saturate(sd + outline * 0.5)); + n = normalize(n- bump); + + float3 light = normalize(float3(sin(_LightAngle), cos(_LightAngle), -1.0)); + + float3 col = GetSpecular(n, light); + faceColor.rgb += col*faceColor.a; + faceColor.rgb *= 1-(dot(n, light)*_Diffuse); + faceColor.rgb *= lerp(_Ambient, 1, n.z*n.z); + + fixed4 reflcol = texCUBE(_Cube, reflect(input.viewDir, -n)); + faceColor.rgb += reflcol.rgb * lerp(_ReflectFaceColor.rgb, _ReflectOutlineColor.rgb, saturate(sd + outline * 0.5)) * faceColor.a; + #endif + + #if UNDERLAY_ON + float d = tex2D(_MainTex, input.texcoord2.xy).a * input.texcoord2.z; + faceColor += input.underlayColor * saturate(d - input.texcoord2.w) * (1 - faceColor.a); + #endif + + #if UNDERLAY_INNER + float d = tex2D(_MainTex, input.texcoord2.xy).a * input.texcoord2.z; + faceColor += input.underlayColor * (1 - saturate(d - input.texcoord2.w)) * saturate(1 - sd) * (1 - faceColor.a); + #endif + + #if GLOW_ON + float4 glowColor = GetGlowColor(sd, scale); + faceColor.rgb += glowColor.rgb * glowColor.a; + #endif + + // Alternative implementation to UnityGet2DClipping with support for softness. + #if UNITY_UI_CLIP_RECT + half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw); + faceColor *= m.x * m.y; + #endif + + #if UNITY_UI_ALPHACLIP + clip(faceColor.a - 0.001); + #endif + + return faceColor * input.color.a; + } + + ENDCG + } +} + +Fallback "TextMeshPro/Mobile/Distance Field" +CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI" +} diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader.meta new file mode 100644 index 0000000..56284e9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: dd89cf5b9246416f84610a006f916af7 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader new file mode 100644 index 0000000..ed48574 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader @@ -0,0 +1,310 @@ +Shader "TextMeshPro/Distance Field SSD" { + +Properties { + _FaceTex ("Face Texture", 2D) = "white" {} + _FaceUVSpeedX ("Face UV Speed X", Range(-5, 5)) = 0.0 + _FaceUVSpeedY ("Face UV Speed Y", Range(-5, 5)) = 0.0 + [HDR]_FaceColor ("Face Color", Color) = (1,1,1,1) + _FaceDilate ("Face Dilate", Range(-1,1)) = 0 + + [HDR]_OutlineColor ("Outline Color", Color) = (0,0,0,1) + _OutlineTex ("Outline Texture", 2D) = "white" {} + _OutlineUVSpeedX ("Outline UV Speed X", Range(-5, 5)) = 0.0 + _OutlineUVSpeedY ("Outline UV Speed Y", Range(-5, 5)) = 0.0 + _OutlineWidth ("Outline Thickness", Range(0, 1)) = 0 + _OutlineSoftness ("Outline Softness", Range(0,1)) = 0 + + _Bevel ("Bevel", Range(0,1)) = 0.5 + _BevelOffset ("Bevel Offset", Range(-0.5,0.5)) = 0 + _BevelWidth ("Bevel Width", Range(-.5,0.5)) = 0 + _BevelClamp ("Bevel Clamp", Range(0,1)) = 0 + _BevelRoundness ("Bevel Roundness", Range(0,1)) = 0 + + _LightAngle ("Light Angle", Range(0.0, 6.2831853)) = 3.1416 + [HDR]_SpecularColor ("Specular", Color) = (1,1,1,1) + _SpecularPower ("Specular", Range(0,4)) = 2.0 + _Reflectivity ("Reflectivity", Range(5.0,15.0)) = 10 + _Diffuse ("Diffuse", Range(0,1)) = 0.5 + _Ambient ("Ambient", Range(1,0)) = 0.5 + + _BumpMap ("Normal map", 2D) = "bump" {} + _BumpOutline ("Bump Outline", Range(0,1)) = 0 + _BumpFace ("Bump Face", Range(0,1)) = 0 + + _ReflectFaceColor ("Reflection Color", Color) = (0,0,0,1) + _ReflectOutlineColor("Reflection Color", Color) = (0,0,0,1) + _Cube ("Reflection Cubemap", Cube) = "black" { /* TexGen CubeReflect */ } + _EnvMatrixRotation ("Texture Rotation", vector) = (0, 0, 0, 0) + + + [HDR]_UnderlayColor ("Border Color", Color) = (0,0,0, 0.5) + _UnderlayOffsetX ("Border OffsetX", Range(-1,1)) = 0 + _UnderlayOffsetY ("Border OffsetY", Range(-1,1)) = 0 + _UnderlayDilate ("Border Dilate", Range(-1,1)) = 0 + _UnderlaySoftness ("Border Softness", Range(0,1)) = 0 + + [HDR]_GlowColor ("Color", Color) = (0, 1, 0, 0.5) + _GlowOffset ("Offset", Range(-1,1)) = 0 + _GlowInner ("Inner", Range(0,1)) = 0.05 + _GlowOuter ("Outer", Range(0,1)) = 0.05 + _GlowPower ("Falloff", Range(1, 0)) = 0.75 + + _WeightNormal ("Weight Normal", float) = 0 + _WeightBold ("Weight Bold", float) = 0.5 + + _ShaderFlags ("Flags", float) = 0 + _ScaleRatioA ("Scale RatioA", float) = 1 + _ScaleRatioB ("Scale RatioB", float) = 1 + _ScaleRatioC ("Scale RatioC", float) = 1 + + _MainTex ("Font Atlas", 2D) = "white" {} + _TextureWidth ("Texture Width", float) = 512 + _TextureHeight ("Texture Height", float) = 512 + _GradientScale ("Gradient Scale", float) = 5.0 + _ScaleX ("Scale X", float) = 1.0 + _ScaleY ("Scale Y", float) = 1.0 + _PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875 + _Sharpness ("Sharpness", Range(-1,1)) = 0 + + _VertexOffsetX ("Vertex OffsetX", float) = 0 + _VertexOffsetY ("Vertex OffsetY", float) = 0 + + _MaskCoord ("Mask Coordinates", vector) = (0, 0, 32767, 32767) + _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767) + _MaskSoftnessX ("Mask SoftnessX", float) = 0 + _MaskSoftnessY ("Mask SoftnessY", float) = 0 + + _StencilComp ("Stencil Comparison", Float) = 8 + _Stencil ("Stencil ID", Float) = 0 + _StencilOp ("Stencil Operation", Float) = 0 + _StencilWriteMask ("Stencil Write Mask", Float) = 255 + _StencilReadMask ("Stencil Read Mask", Float) = 255 + + _CullMode ("Cull Mode", Float) = 0 + _ColorMask ("Color Mask", Float) = 15 +} + +SubShader { + Tags + { + "Queue" = "Transparent" + "IgnoreProjector" = "True" + "RenderType" = "Transparent" + } + + Stencil + { + Ref[_Stencil] + Comp[_StencilComp] + Pass[_StencilOp] + ReadMask[_StencilReadMask] + WriteMask[_StencilWriteMask] + } + + Cull[_CullMode] + ZWrite Off + Lighting Off + Fog { Mode Off } + ZTest[unity_GUIZTestMode] + Blend One OneMinusSrcAlpha + ColorMask[_ColorMask] + + Pass { + CGPROGRAM + #pragma target 3.0 + #pragma vertex VertShader + #pragma fragment PixShader + #pragma shader_feature __ BEVEL_ON + #pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER + #pragma shader_feature __ GLOW_ON + #pragma shader_feature __ FORCE_LINEAR + + #pragma multi_compile __ UNITY_UI_CLIP_RECT + #pragma multi_compile __ UNITY_UI_ALPHACLIP + + #include "UnityCG.cginc" + #include "UnityUI.cginc" + #include "TMPro_Properties.cginc" + #include "TMPro.cginc" + + struct vertex_t { + UNITY_VERTEX_INPUT_INSTANCE_ID + float4 position : POSITION; + float3 normal : NORMAL; + float4 color : COLOR; + float2 texcoord0 : TEXCOORD0; + float2 texcoord1 : TEXCOORD1; + }; + + + struct pixel_t { + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + float4 position : SV_POSITION; + float4 color : COLOR; + float2 atlas : TEXCOORD0; + float weight : TEXCOORD1; + float2 mask : TEXCOORD2; // Position in object space(xy) + float3 viewDir : TEXCOORD3; + + #if (UNDERLAY_ON || UNDERLAY_INNER) + float2 texcoord2 : TEXCOORD4; + float4 underlayColor : COLOR1; + #endif + float4 textures : TEXCOORD5; + }; + + // Used by Unity internally to handle Texture Tiling and Offset. + float4 _FaceTex_ST; + float4 _OutlineTex_ST; + + float4 SRGBToLinear(float4 rgba) { + return float4(lerp(rgba.rgb / 12.92f, pow((rgba.rgb + 0.055f) / 1.055f, 2.4f), step(0.04045f, rgba.rgb)), rgba.a); + } + + pixel_t VertShader(vertex_t input) + { + pixel_t output; + + UNITY_INITIALIZE_OUTPUT(pixel_t, output); + UNITY_SETUP_INSTANCE_ID(input); + UNITY_TRANSFER_INSTANCE_ID(input,output); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); + + float bold = step(input.texcoord1.y, 0); + + float4 vert = input.position; + vert.x += _VertexOffsetX; + vert.y += _VertexOffsetY; + + float4 vPosition = UnityObjectToClipPos(vert); + + float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0; + weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5; + + #if (UNDERLAY_ON || UNDERLAY_INNER) + float4 underlayColor = _UnderlayColor; + underlayColor.rgb *= underlayColor.a; + + float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth; + float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight; + float2 bOffset = float2(x, y); + #endif + + // Generate UV for the Masking Texture + float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); + + // Support for texture tiling and offset + float2 textureUV = UnpackUV(input.texcoord1.x); + float2 faceUV = TRANSFORM_TEX(textureUV, _FaceTex); + float2 outlineUV = TRANSFORM_TEX(textureUV, _OutlineTex); + + float4 color = input.color; + #if (FORCE_LINEAR && !UNITY_COLORSPACE_GAMMA) + color = SRGBToLinear(input.color); + #endif + + output.position = vPosition; + output.color = color; + output.atlas = input.texcoord0; + output.weight = weight; + output.mask = half2(vert.xy * 2 - clampedRect.xy - clampedRect.zw); + output.viewDir = mul((float3x3)_EnvMatrix, _WorldSpaceCameraPos.xyz - mul(unity_ObjectToWorld, vert).xyz); + #if (UNDERLAY_ON || UNDERLAY_INNER) + output.texcoord2 = input.texcoord0 + bOffset; + output.underlayColor = underlayColor; + #endif + output.textures = float4(faceUV, outlineUV); + + return output; + } + + + fixed4 PixShader(pixel_t input) : SV_Target + { + UNITY_SETUP_INSTANCE_ID(input); + + float c = tex2D(_MainTex, input.atlas).a; + + float2 pixelSize = float2(ddx(input.atlas.y), ddy(input.atlas.y)); + pixelSize *= _TextureWidth * .75; + float scale = rsqrt(dot(pixelSize, pixelSize)) * _GradientScale * (_Sharpness + 1); + + float weight = input.weight; + float bias = (.5 - weight) + (.5 / scale); + float sd = (bias - c) * scale; + + float outline = (_OutlineWidth * _ScaleRatioA) * scale; + float softness = (_OutlineSoftness * _ScaleRatioA) * scale; + + half4 faceColor = _FaceColor; + half4 outlineColor = _OutlineColor; + + faceColor.rgb *= input.color.rgb; + + faceColor *= tex2D(_FaceTex, input.textures.xy + float2(_FaceUVSpeedX, _FaceUVSpeedY) * _Time.y); + outlineColor *= tex2D(_OutlineTex, input.textures.zw + float2(_OutlineUVSpeedX, _OutlineUVSpeedY) * _Time.y); + + faceColor = GetColor(sd, faceColor, outlineColor, outline, softness); + + #if BEVEL_ON + float3 dxy = float3(0.5 / _TextureWidth, 0.5 / _TextureHeight, 0); + float3 n = GetSurfaceNormal(input.atlas, weight, dxy); + + float3 bump = UnpackNormal(tex2D(_BumpMap, input.textures.xy + float2(_FaceUVSpeedX, _FaceUVSpeedY) * _Time.y)).xyz; + bump *= lerp(_BumpFace, _BumpOutline, saturate(sd + outline * 0.5)); + n = normalize(n - bump); + + float3 light = normalize(float3(sin(_LightAngle), cos(_LightAngle), -1.0)); + + float3 col = GetSpecular(n, light); + faceColor.rgb += col * faceColor.a; + faceColor.rgb *= 1 - (dot(n, light) * _Diffuse); + faceColor.rgb *= lerp(_Ambient, 1, n.z * n.z); + + fixed4 reflcol = texCUBE(_Cube, reflect(input.viewDir, -n)); + faceColor.rgb += reflcol.rgb * lerp(_ReflectFaceColor.rgb, _ReflectOutlineColor.rgb, saturate(sd + outline * 0.5)) * faceColor.a; + #endif + + #if (UNDERLAY_ON || UNDERLAY_INNER) + float bScale = scale; + bScale /= 1 + ((_UnderlaySoftness * _ScaleRatioC) * bScale); + float bBias = (0.5 - weight) * bScale - 0.5 - ((_UnderlayDilate * _ScaleRatioC) * 0.5 * bScale); + #endif + + #if UNDERLAY_ON + float d = tex2D(_MainTex, input.texcoord2.xy).a * bScale; + faceColor += input.underlayColor * saturate(d - bBias) * (1 - faceColor.a); + #endif + + #if UNDERLAY_INNER + float d = tex2D(_MainTex, input.texcoord2.xy).a * bScale; + faceColor += input.underlayColor * (1 - saturate(d - bBias)) * saturate(1 - sd) * (1 - faceColor.a); + #endif + + #if GLOW_ON + float4 glowColor = GetGlowColor(sd, scale); + faceColor.rgb += glowColor.rgb * glowColor.a; + #endif + + // Alternative implementation to UnityGet2DClipping with support for softness. + #if UNITY_UI_CLIP_RECT + float2 maskZW = 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + (1 / scale)); + half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * maskZW); + faceColor *= m.x * m.y; + #endif + + #if UNITY_UI_ALPHACLIP + clip(faceColor.a - 0.001); + #endif + + return faceColor * input.color.a; + } + + ENDCG + } +} + +Fallback "TextMeshPro/Mobile/Distance Field" +CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI" +} diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader.meta new file mode 100644 index 0000000..08cd8ae --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 14eb328de4b8eb245bb7cea29e4ac00b +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader new file mode 100644 index 0000000..7019aaf --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader @@ -0,0 +1,247 @@ +// Simplified SDF shader: +// - No Shading Option (bevel / bump / env map) +// - No Glow Option +// - Softness is applied on both side of the outline + +Shader "TextMeshPro/Mobile/Distance Field - Masking" { + +Properties { + [HDR]_FaceColor ("Face Color", Color) = (1,1,1,1) + _FaceDilate ("Face Dilate", Range(-1,1)) = 0 + + [HDR]_OutlineColor ("Outline Color", Color) = (0,0,0,1) + _OutlineWidth ("Outline Thickness", Range(0,1)) = 0 + _OutlineSoftness ("Outline Softness", Range(0,1)) = 0 + + [HDR]_UnderlayColor ("Border Color", Color) = (0,0,0,.5) + _UnderlayOffsetX ("Border OffsetX", Range(-1,1)) = 0 + _UnderlayOffsetY ("Border OffsetY", Range(-1,1)) = 0 + _UnderlayDilate ("Border Dilate", Range(-1,1)) = 0 + _UnderlaySoftness ("Border Softness", Range(0,1)) = 0 + + _WeightNormal ("Weight Normal", float) = 0 + _WeightBold ("Weight Bold", float) = .5 + + _ShaderFlags ("Flags", float) = 0 + _ScaleRatioA ("Scale RatioA", float) = 1 + _ScaleRatioB ("Scale RatioB", float) = 1 + _ScaleRatioC ("Scale RatioC", float) = 1 + + _MainTex ("Font Atlas", 2D) = "white" {} + _TextureWidth ("Texture Width", float) = 512 + _TextureHeight ("Texture Height", float) = 512 + _GradientScale ("Gradient Scale", float) = 5 + _ScaleX ("Scale X", float) = 1 + _ScaleY ("Scale Y", float) = 1 + _PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875 + _Sharpness ("Sharpness", Range(-1,1)) = 0 + + _VertexOffsetX ("Vertex OffsetX", float) = 0 + _VertexOffsetY ("Vertex OffsetY", float) = 0 + + _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767) + _MaskSoftnessX ("Mask SoftnessX", float) = 0 + _MaskSoftnessY ("Mask SoftnessY", float) = 0 + _MaskTex ("Mask Texture", 2D) = "white" {} + _MaskInverse ("Inverse", float) = 0 + _MaskEdgeColor ("Edge Color", Color) = (1,1,1,1) + _MaskEdgeSoftness ("Edge Softness", Range(0, 1)) = 0.01 + _MaskWipeControl ("Wipe Position", Range(0, 1)) = 0.5 + + _StencilComp ("Stencil Comparison", Float) = 8 + _Stencil ("Stencil ID", Float) = 0 + _StencilOp ("Stencil Operation", Float) = 0 + _StencilWriteMask ("Stencil Write Mask", Float) = 255 + _StencilReadMask ("Stencil Read Mask", Float) = 255 + + _CullMode ("Cull Mode", Float) = 0 + _ColorMask ("Color Mask", Float) = 15 +} + +SubShader { + Tags + { + "Queue"="Transparent" + "IgnoreProjector"="True" + "RenderType"="Transparent" + } + + + Stencil + { + Ref [_Stencil] + Comp [_StencilComp] + Pass [_StencilOp] + ReadMask [_StencilReadMask] + WriteMask [_StencilWriteMask] + } + + Cull [_CullMode] + ZWrite Off + Lighting Off + Fog { Mode Off } + ZTest [unity_GUIZTestMode] + Blend One OneMinusSrcAlpha + ColorMask [_ColorMask] + + Pass { + CGPROGRAM + #pragma vertex VertShader + #pragma fragment PixShader + #pragma shader_feature __ OUTLINE_ON + #pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER + + #pragma multi_compile __ UNITY_UI_CLIP_RECT + #pragma multi_compile __ UNITY_UI_ALPHACLIP + + + #include "UnityCG.cginc" + #include "UnityUI.cginc" + #include "TMPro_Properties.cginc" + + struct vertex_t { + float4 vertex : POSITION; + float3 normal : NORMAL; + fixed4 color : COLOR; + float2 texcoord0 : TEXCOORD0; + float2 texcoord1 : TEXCOORD1; + }; + + struct pixel_t { + float4 vertex : SV_POSITION; + fixed4 faceColor : COLOR; + fixed4 outlineColor : COLOR1; + float4 texcoord0 : TEXCOORD0; // Texture UV, Mask UV + half4 param : TEXCOORD1; // Scale(x), BiasIn(y), BiasOut(z), Bias(w) + half4 mask : TEXCOORD2; // Position in clip space(xy), Softness(zw) + #if (UNDERLAY_ON | UNDERLAY_INNER) + float4 texcoord1 : TEXCOORD3; // Texture UV, alpha, reserved + half2 underlayParam : TEXCOORD4; // Scale(x), Bias(y) + #endif + }; + + float _MaskWipeControl; + float _MaskEdgeSoftness; + fixed4 _MaskEdgeColor; + bool _MaskInverse; + + pixel_t VertShader(vertex_t input) + { + float bold = step(input.texcoord1.y, 0); + + float4 vert = input.vertex; + vert.x += _VertexOffsetX; + vert.y += _VertexOffsetY; + float4 vPosition = UnityObjectToClipPos(vert); + + float2 pixelSize = vPosition.w; + pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy)); + + float scale = rsqrt(dot(pixelSize, pixelSize)); + scale *= abs(input.texcoord1.y) * _GradientScale * (_Sharpness + 1); + if(UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert))))); + + float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0; + weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5; + + float layerScale = scale; + + scale /= 1 + (_OutlineSoftness * _ScaleRatioA * scale); + float bias = (0.5 - weight) * scale - 0.5; + float outline = _OutlineWidth * _ScaleRatioA * 0.5 * scale; + + float opacity = input.color.a; + #if (UNDERLAY_ON | UNDERLAY_INNER) + opacity = 1.0; + #endif + + fixed4 faceColor = fixed4(input.color.rgb, opacity) * _FaceColor; + faceColor.rgb *= faceColor.a; + + fixed4 outlineColor = _OutlineColor; + outlineColor.a *= opacity; + outlineColor.rgb *= outlineColor.a; + outlineColor = lerp(faceColor, outlineColor, sqrt(min(1.0, (outline * 2)))); + + #if (UNDERLAY_ON | UNDERLAY_INNER) + + layerScale /= 1 + ((_UnderlaySoftness * _ScaleRatioC) * layerScale); + float layerBias = (.5 - weight) * layerScale - .5 - ((_UnderlayDilate * _ScaleRatioC) * .5 * layerScale); + + float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth; + float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight; + float2 layerOffset = float2(x, y); + #endif + + // Generate UV for the Masking Texture + float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); + float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); + + // Structure for pixel shader + pixel_t output = { + vPosition, + faceColor, + outlineColor, + float4(input.texcoord0.x, input.texcoord0.y, maskUV.x, maskUV.y), + half4(scale, bias - outline, bias + outline, bias), + half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy)), + #if (UNDERLAY_ON | UNDERLAY_INNER) + float4(input.texcoord0 + layerOffset, input.color.a, 0), + half2(layerScale, layerBias), + #endif + }; + + return output; + } + + + // PIXEL SHADER + fixed4 PixShader(pixel_t input) : SV_Target + { + half d = tex2D(_MainTex, input.texcoord0.xy).a * input.param.x; + half4 c = input.faceColor * saturate(d - input.param.w); + + #ifdef OUTLINE_ON + c = lerp(input.outlineColor, input.faceColor, saturate(d - input.param.z)); + c *= saturate(d - input.param.y); + #endif + + #if UNDERLAY_ON + d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x; + c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * saturate(d - input.underlayParam.y) * (1 - c.a); + #endif + + #if UNDERLAY_INNER + half sd = saturate(d - input.param.z); + d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x; + c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * (1 - saturate(d - input.underlayParam.y)) * sd * (1 - c.a); + #endif + + // Alternative implementation to UnityGet2DClipping with support for softness. + //#if UNITY_UI_CLIP_RECT + half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw); + c *= m.x * m.y; + //#endif + + float a = abs(_MaskInverse - tex2D(_MaskTex, input.texcoord0.zw).a); + float t = a + (1 - _MaskWipeControl) * _MaskEdgeSoftness - _MaskWipeControl; + a = saturate(t / _MaskEdgeSoftness); + c.rgb = lerp(_MaskEdgeColor.rgb*c.a, c.rgb, a); + c *= a; + + #if (UNDERLAY_ON | UNDERLAY_INNER) + c *= input.texcoord1.z; + #endif + + #if UNITY_UI_ALPHACLIP + clip(c.a - 0.001); + #endif + + return c; + } + ENDCG + } +} + +CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI" +} diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader.meta new file mode 100644 index 0000000..3cbdbbb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: bc1ede39bf3643ee8e493720e4259791 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader new file mode 100644 index 0000000..ce82bed --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader @@ -0,0 +1,240 @@ +// Simplified SDF shader: +// - No Shading Option (bevel / bump / env map) +// - No Glow Option +// - Softness is applied on both side of the outline + +Shader "TextMeshPro/Mobile/Distance Field Overlay" { + +Properties { + [HDR]_FaceColor ("Face Color", Color) = (1,1,1,1) + _FaceDilate ("Face Dilate", Range(-1,1)) = 0 + + [HDR]_OutlineColor ("Outline Color", Color) = (0,0,0,1) + _OutlineWidth ("Outline Thickness", Range(0,1)) = 0 + _OutlineSoftness ("Outline Softness", Range(0,1)) = 0 + + [HDR]_UnderlayColor ("Border Color", Color) = (0,0,0,.5) + _UnderlayOffsetX ("Border OffsetX", Range(-1,1)) = 0 + _UnderlayOffsetY ("Border OffsetY", Range(-1,1)) = 0 + _UnderlayDilate ("Border Dilate", Range(-1,1)) = 0 + _UnderlaySoftness ("Border Softness", Range(0,1)) = 0 + + _WeightNormal ("Weight Normal", float) = 0 + _WeightBold ("Weight Bold", float) = .5 + + _ShaderFlags ("Flags", float) = 0 + _ScaleRatioA ("Scale RatioA", float) = 1 + _ScaleRatioB ("Scale RatioB", float) = 1 + _ScaleRatioC ("Scale RatioC", float) = 1 + + _MainTex ("Font Atlas", 2D) = "white" {} + _TextureWidth ("Texture Width", float) = 512 + _TextureHeight ("Texture Height", float) = 512 + _GradientScale ("Gradient Scale", float) = 5 + _ScaleX ("Scale X", float) = 1 + _ScaleY ("Scale Y", float) = 1 + _PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875 + _Sharpness ("Sharpness", Range(-1,1)) = 0 + + _VertexOffsetX ("Vertex OffsetX", float) = 0 + _VertexOffsetY ("Vertex OffsetY", float) = 0 + + _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767) + _MaskSoftnessX ("Mask SoftnessX", float) = 0 + _MaskSoftnessY ("Mask SoftnessY", float) = 0 + + _StencilComp ("Stencil Comparison", Float) = 8 + _Stencil ("Stencil ID", Float) = 0 + _StencilOp ("Stencil Operation", Float) = 0 + _StencilWriteMask ("Stencil Write Mask", Float) = 255 + _StencilReadMask ("Stencil Read Mask", Float) = 255 + + _CullMode ("Cull Mode", Float) = 0 + _ColorMask ("Color Mask", Float) = 15 +} + +SubShader { + Tags + { + "Queue"="Overlay" + "IgnoreProjector"="True" + "RenderType"="Transparent" + } + + + Stencil + { + Ref [_Stencil] + Comp [_StencilComp] + Pass [_StencilOp] + ReadMask [_StencilReadMask] + WriteMask [_StencilWriteMask] + } + + Cull [_CullMode] + ZWrite Off + Lighting Off + Fog { Mode Off } + ZTest Always + Blend One OneMinusSrcAlpha + ColorMask [_ColorMask] + + Pass { + CGPROGRAM + #pragma vertex VertShader + #pragma fragment PixShader + #pragma shader_feature __ OUTLINE_ON + #pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER + + #pragma multi_compile __ UNITY_UI_CLIP_RECT + #pragma multi_compile __ UNITY_UI_ALPHACLIP + + #include "UnityCG.cginc" + #include "UnityUI.cginc" + #include "TMPro_Properties.cginc" + + struct vertex_t { + UNITY_VERTEX_INPUT_INSTANCE_ID + float4 vertex : POSITION; + float3 normal : NORMAL; + fixed4 color : COLOR; + float2 texcoord0 : TEXCOORD0; + float2 texcoord1 : TEXCOORD1; + }; + + struct pixel_t { + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + float4 vertex : SV_POSITION; + fixed4 faceColor : COLOR; + fixed4 outlineColor : COLOR1; + float4 texcoord0 : TEXCOORD0; // Texture UV, Mask UV + half4 param : TEXCOORD1; // Scale(x), BiasIn(y), BiasOut(z), Bias(w) + half4 mask : TEXCOORD2; // Position in clip space(xy), Softness(zw) + #if (UNDERLAY_ON | UNDERLAY_INNER) + float4 texcoord1 : TEXCOORD3; // Texture UV, alpha, reserved + half2 underlayParam : TEXCOORD4; // Scale(x), Bias(y) + #endif + }; + + + pixel_t VertShader(vertex_t input) + { + pixel_t output; + + UNITY_INITIALIZE_OUTPUT(pixel_t, output); + UNITY_SETUP_INSTANCE_ID(input); + UNITY_TRANSFER_INSTANCE_ID(input, output); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); + + float bold = step(input.texcoord1.y, 0); + + float4 vert = input.vertex; + vert.x += _VertexOffsetX; + vert.y += _VertexOffsetY; + float4 vPosition = UnityObjectToClipPos(vert); + + float2 pixelSize = vPosition.w; + pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy)); + + float scale = rsqrt(dot(pixelSize, pixelSize)); + scale *= abs(input.texcoord1.y) * _GradientScale * (_Sharpness + 1); + if(UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert))))); + + float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0; + weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5; + + float layerScale = scale; + + scale /= 1 + (_OutlineSoftness * _ScaleRatioA * scale); + float bias = (0.5 - weight) * scale - 0.5; + float outline = _OutlineWidth * _ScaleRatioA * 0.5 * scale; + + float opacity = input.color.a; + #if (UNDERLAY_ON | UNDERLAY_INNER) + opacity = 1.0; + #endif + + fixed4 faceColor = fixed4(input.color.rgb, opacity) * _FaceColor; + faceColor.rgb *= faceColor.a; + + fixed4 outlineColor = _OutlineColor; + outlineColor.a *= opacity; + outlineColor.rgb *= outlineColor.a; + outlineColor = lerp(faceColor, outlineColor, sqrt(min(1.0, (outline * 2)))); + + #if (UNDERLAY_ON | UNDERLAY_INNER) + layerScale /= 1 + ((_UnderlaySoftness * _ScaleRatioC) * layerScale); + float layerBias = (.5 - weight) * layerScale - .5 - ((_UnderlayDilate * _ScaleRatioC) * .5 * layerScale); + + float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth; + float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight; + float2 layerOffset = float2(x, y); + #endif + + // Generate UV for the Masking Texture + float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); + float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); + + // Populate structure for pixel shader + output.vertex = vPosition; + output.faceColor = faceColor; + output.outlineColor = outlineColor; + output.texcoord0 = float4(input.texcoord0.x, input.texcoord0.y, maskUV.x, maskUV.y); + output.param = half4(scale, bias - outline, bias + outline, bias); + output.mask = half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy)); + #if (UNDERLAY_ON || UNDERLAY_INNER) + output.texcoord1 = float4(input.texcoord0 + layerOffset, input.color.a, 0); + output.underlayParam = half2(layerScale, layerBias); + #endif + + return output; + } + + + // PIXEL SHADER + fixed4 PixShader(pixel_t input) : SV_Target + { + UNITY_SETUP_INSTANCE_ID(input); + + half d = tex2D(_MainTex, input.texcoord0.xy).a * input.param.x; + half4 c = input.faceColor * saturate(d - input.param.w); + + #ifdef OUTLINE_ON + c = lerp(input.outlineColor, input.faceColor, saturate(d - input.param.z)); + c *= saturate(d - input.param.y); + #endif + + #if UNDERLAY_ON + d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x; + c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * saturate(d - input.underlayParam.y) * (1 - c.a); + #endif + + #if UNDERLAY_INNER + half sd = saturate(d - input.param.z); + d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x; + c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * (1 - saturate(d - input.underlayParam.y)) * sd * (1 - c.a); + #endif + + // Alternative implementation to UnityGet2DClipping with support for softness. + #if UNITY_UI_CLIP_RECT + half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw); + c *= m.x * m.y; + #endif + + #if (UNDERLAY_ON | UNDERLAY_INNER) + c *= input.texcoord1.z; + #endif + + #if UNITY_UI_ALPHACLIP + clip(c.a - 0.001); + #endif + + return c; + } + ENDCG + } +} + +CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI" +} diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader.meta new file mode 100644 index 0000000..e6b149e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a02a7d8c237544f1962732b55a9aebf1 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader new file mode 100644 index 0000000..df4d5b0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader @@ -0,0 +1,106 @@ +// Simplified SDF shader: +// - No Shading Option (bevel / bump / env map) +// - No Glow Option +// - Softness is applied on both side of the outline + +Shader "TextMeshPro/Mobile/Distance Field SSD" { + +Properties { + [HDR]_FaceColor ("Face Color", Color) = (1,1,1,1) + _FaceDilate ("Face Dilate", Range(-1,1)) = 0 + + [HDR]_OutlineColor ("Outline Color", Color) = (0,0,0,1) + _OutlineWidth ("Outline Thickness", Range(0,1)) = 0 + _OutlineSoftness ("Outline Softness", Range(0,1)) = 0 + + [HDR]_UnderlayColor ("Border Color", Color) = (0,0,0,.5) + _UnderlayOffsetX ("Border OffsetX", Range(-1,1)) = 0 + _UnderlayOffsetY ("Border OffsetY", Range(-1,1)) = 0 + _UnderlayDilate ("Border Dilate", Range(-1,1)) = 0 + _UnderlaySoftness ("Border Softness", Range(0,1)) = 0 + + _WeightNormal ("Weight Normal", float) = 0 + _WeightBold ("Weight Bold", float) = .5 + + _ShaderFlags ("Flags", float) = 0 + _ScaleRatioA ("Scale RatioA", float) = 1 + _ScaleRatioB ("Scale RatioB", float) = 1 + _ScaleRatioC ("Scale RatioC", float) = 1 + + _MainTex ("Font Atlas", 2D) = "white" {} + _TextureWidth ("Texture Width", float) = 512 + _TextureHeight ("Texture Height", float) = 512 + _GradientScale ("Gradient Scale", float) = 5 + _ScaleX ("Scale X", float) = 1 + _ScaleY ("Scale Y", float) = 1 + _PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875 + _Sharpness ("Sharpness", Range(-1,1)) = 0 + + _VertexOffsetX ("Vertex OffsetX", float) = 0 + _VertexOffsetY ("Vertex OffsetY", float) = 0 + + _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767) + _MaskSoftnessX ("Mask SoftnessX", float) = 0 + _MaskSoftnessY ("Mask SoftnessY", float) = 0 + _MaskTex ("Mask Texture", 2D) = "white" {} + _MaskInverse ("Inverse", float) = 0 + _MaskEdgeColor ("Edge Color", Color) = (1,1,1,1) + _MaskEdgeSoftness ("Edge Softness", Range(0, 1)) = 0.01 + _MaskWipeControl ("Wipe Position", Range(0, 1)) = 0.5 + + _StencilComp ("Stencil Comparison", Float) = 8 + _Stencil ("Stencil ID", Float) = 0 + _StencilOp ("Stencil Operation", Float) = 0 + _StencilWriteMask ("Stencil Write Mask", Float) = 255 + _StencilReadMask ("Stencil Read Mask", Float) = 255 + + _CullMode ("Cull Mode", Float) = 0 + _ColorMask ("Color Mask", Float) = 15 +} + +SubShader { + Tags { + "Queue"="Transparent" + "IgnoreProjector"="True" + "RenderType"="Transparent" + } + + Stencil + { + Ref [_Stencil] + Comp [_StencilComp] + Pass [_StencilOp] + ReadMask [_StencilReadMask] + WriteMask [_StencilWriteMask] + } + + Cull [_CullMode] + ZWrite Off + Lighting Off + Fog { Mode Off } + ZTest [unity_GUIZTestMode] + Blend One OneMinusSrcAlpha + ColorMask [_ColorMask] + + Pass { + CGPROGRAM + #pragma vertex VertShader + #pragma fragment PixShader + #pragma shader_feature __ OUTLINE_ON + #pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER + + #pragma multi_compile __ UNITY_UI_CLIP_RECT + #pragma multi_compile __ UNITY_UI_ALPHACLIP + + #include "UnityCG.cginc" + #include "UnityUI.cginc" + #include "TMPro_Properties.cginc" + + #include "TMPro_Mobile.cginc" + + ENDCG + } +} + +CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI" +} diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader.meta new file mode 100644 index 0000000..9b84c13 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c8d12adcee749c344b8117cf7c7eb912 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader new file mode 100644 index 0000000..d3f5866 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader @@ -0,0 +1,240 @@ +// Simplified SDF shader: +// - No Shading Option (bevel / bump / env map) +// - No Glow Option +// - Softness is applied on both side of the outline + +Shader "TextMeshPro/Mobile/Distance Field" { + +Properties { + [HDR]_FaceColor ("Face Color", Color) = (1,1,1,1) + _FaceDilate ("Face Dilate", Range(-1,1)) = 0 + + [HDR]_OutlineColor ("Outline Color", Color) = (0,0,0,1) + _OutlineWidth ("Outline Thickness", Range(0,1)) = 0 + _OutlineSoftness ("Outline Softness", Range(0,1)) = 0 + + [HDR]_UnderlayColor ("Border Color", Color) = (0,0,0,.5) + _UnderlayOffsetX ("Border OffsetX", Range(-1,1)) = 0 + _UnderlayOffsetY ("Border OffsetY", Range(-1,1)) = 0 + _UnderlayDilate ("Border Dilate", Range(-1,1)) = 0 + _UnderlaySoftness ("Border Softness", Range(0,1)) = 0 + + _WeightNormal ("Weight Normal", float) = 0 + _WeightBold ("Weight Bold", float) = .5 + + _ShaderFlags ("Flags", float) = 0 + _ScaleRatioA ("Scale RatioA", float) = 1 + _ScaleRatioB ("Scale RatioB", float) = 1 + _ScaleRatioC ("Scale RatioC", float) = 1 + + _MainTex ("Font Atlas", 2D) = "white" {} + _TextureWidth ("Texture Width", float) = 512 + _TextureHeight ("Texture Height", float) = 512 + _GradientScale ("Gradient Scale", float) = 5 + _ScaleX ("Scale X", float) = 1 + _ScaleY ("Scale Y", float) = 1 + _PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875 + _Sharpness ("Sharpness", Range(-1,1)) = 0 + + _VertexOffsetX ("Vertex OffsetX", float) = 0 + _VertexOffsetY ("Vertex OffsetY", float) = 0 + + _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767) + _MaskSoftnessX ("Mask SoftnessX", float) = 0 + _MaskSoftnessY ("Mask SoftnessY", float) = 0 + + _StencilComp ("Stencil Comparison", Float) = 8 + _Stencil ("Stencil ID", Float) = 0 + _StencilOp ("Stencil Operation", Float) = 0 + _StencilWriteMask ("Stencil Write Mask", Float) = 255 + _StencilReadMask ("Stencil Read Mask", Float) = 255 + + _CullMode ("Cull Mode", Float) = 0 + _ColorMask ("Color Mask", Float) = 15 +} + +SubShader { + Tags + { + "Queue"="Transparent" + "IgnoreProjector"="True" + "RenderType"="Transparent" + } + + + Stencil + { + Ref [_Stencil] + Comp [_StencilComp] + Pass [_StencilOp] + ReadMask [_StencilReadMask] + WriteMask [_StencilWriteMask] + } + + Cull [_CullMode] + ZWrite Off + Lighting Off + Fog { Mode Off } + ZTest [unity_GUIZTestMode] + Blend One OneMinusSrcAlpha + ColorMask [_ColorMask] + + Pass { + CGPROGRAM + #pragma vertex VertShader + #pragma fragment PixShader + #pragma shader_feature __ OUTLINE_ON + #pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER + + #pragma multi_compile __ UNITY_UI_CLIP_RECT + #pragma multi_compile __ UNITY_UI_ALPHACLIP + + #include "UnityCG.cginc" + #include "UnityUI.cginc" + #include "TMPro_Properties.cginc" + + struct vertex_t { + UNITY_VERTEX_INPUT_INSTANCE_ID + float4 vertex : POSITION; + float3 normal : NORMAL; + fixed4 color : COLOR; + float2 texcoord0 : TEXCOORD0; + float2 texcoord1 : TEXCOORD1; + }; + + struct pixel_t { + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + float4 vertex : SV_POSITION; + fixed4 faceColor : COLOR; + fixed4 outlineColor : COLOR1; + float4 texcoord0 : TEXCOORD0; // Texture UV, Mask UV + half4 param : TEXCOORD1; // Scale(x), BiasIn(y), BiasOut(z), Bias(w) + half4 mask : TEXCOORD2; // Position in clip space(xy), Softness(zw) + #if (UNDERLAY_ON | UNDERLAY_INNER) + float4 texcoord1 : TEXCOORD3; // Texture UV, alpha, reserved + half2 underlayParam : TEXCOORD4; // Scale(x), Bias(y) + #endif + }; + + + pixel_t VertShader(vertex_t input) + { + pixel_t output; + + UNITY_INITIALIZE_OUTPUT(pixel_t, output); + UNITY_SETUP_INSTANCE_ID(input); + UNITY_TRANSFER_INSTANCE_ID(input, output); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); + + float bold = step(input.texcoord1.y, 0); + + float4 vert = input.vertex; + vert.x += _VertexOffsetX; + vert.y += _VertexOffsetY; + float4 vPosition = UnityObjectToClipPos(vert); + + float2 pixelSize = vPosition.w; + pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy)); + + float scale = rsqrt(dot(pixelSize, pixelSize)); + scale *= abs(input.texcoord1.y) * _GradientScale * (_Sharpness + 1); + if(UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert))))); + + float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0; + weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5; + + float layerScale = scale; + + scale /= 1 + (_OutlineSoftness * _ScaleRatioA * scale); + float bias = (0.5 - weight) * scale - 0.5; + float outline = _OutlineWidth * _ScaleRatioA * 0.5 * scale; + + float opacity = input.color.a; + #if (UNDERLAY_ON | UNDERLAY_INNER) + opacity = 1.0; + #endif + + fixed4 faceColor = fixed4(input.color.rgb, opacity) * _FaceColor; + faceColor.rgb *= faceColor.a; + + fixed4 outlineColor = _OutlineColor; + outlineColor.a *= opacity; + outlineColor.rgb *= outlineColor.a; + outlineColor = lerp(faceColor, outlineColor, sqrt(min(1.0, (outline * 2)))); + + #if (UNDERLAY_ON | UNDERLAY_INNER) + layerScale /= 1 + ((_UnderlaySoftness * _ScaleRatioC) * layerScale); + float layerBias = (.5 - weight) * layerScale - .5 - ((_UnderlayDilate * _ScaleRatioC) * .5 * layerScale); + + float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth; + float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight; + float2 layerOffset = float2(x, y); + #endif + + // Generate UV for the Masking Texture + float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); + float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); + + // Populate structure for pixel shader + output.vertex = vPosition; + output.faceColor = faceColor; + output.outlineColor = outlineColor; + output.texcoord0 = float4(input.texcoord0.x, input.texcoord0.y, maskUV.x, maskUV.y); + output.param = half4(scale, bias - outline, bias + outline, bias); + output.mask = half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy)); + #if (UNDERLAY_ON || UNDERLAY_INNER) + output.texcoord1 = float4(input.texcoord0 + layerOffset, input.color.a, 0); + output.underlayParam = half2(layerScale, layerBias); + #endif + + return output; + } + + + // PIXEL SHADER + fixed4 PixShader(pixel_t input) : SV_Target + { + UNITY_SETUP_INSTANCE_ID(input); + + half d = tex2D(_MainTex, input.texcoord0.xy).a * input.param.x; + half4 c = input.faceColor * saturate(d - input.param.w); + + #ifdef OUTLINE_ON + c = lerp(input.outlineColor, input.faceColor, saturate(d - input.param.z)); + c *= saturate(d - input.param.y); + #endif + + #if UNDERLAY_ON + d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x; + c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * saturate(d - input.underlayParam.y) * (1 - c.a); + #endif + + #if UNDERLAY_INNER + half sd = saturate(d - input.param.z); + d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x; + c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * (1 - saturate(d - input.underlayParam.y)) * sd * (1 - c.a); + #endif + + // Alternative implementation to UnityGet2DClipping with support for softness. + #if UNITY_UI_CLIP_RECT + half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw); + c *= m.x * m.y; + #endif + + #if (UNDERLAY_ON | UNDERLAY_INNER) + c *= input.texcoord1.z; + #endif + + #if UNITY_UI_ALPHACLIP + clip(c.a - 0.001); + #endif + + return c; + } + ENDCG + } +} + +CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI" +} diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader.meta new file mode 100644 index 0000000..2ac6e76 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fe393ace9b354375a9cb14cdbbc28be4 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader new file mode 100644 index 0000000..be764ae --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader @@ -0,0 +1,138 @@ +// Simplified version of the SDF Surface shader : +// - No support for Bevel, Bump or envmap +// - Diffuse only lighting +// - Fully supports only 1 directional light. Other lights can affect it, but it will be per-vertex/SH. + +Shader "TextMeshPro/Mobile/Distance Field (Surface)" { + +Properties { + _FaceTex ("Fill Texture", 2D) = "white" {} + [HDR]_FaceColor ("Fill Color", Color) = (1,1,1,1) + _FaceDilate ("Face Dilate", Range(-1,1)) = 0 + + [HDR]_OutlineColor ("Outline Color", Color) = (0,0,0,1) + _OutlineTex ("Outline Texture", 2D) = "white" {} + _OutlineWidth ("Outline Thickness", Range(0, 1)) = 0 + _OutlineSoftness ("Outline Softness", Range(0,1)) = 0 + + [HDR]_GlowColor ("Color", Color) = (0, 1, 0, 0.5) + _GlowOffset ("Offset", Range(-1,1)) = 0 + _GlowInner ("Inner", Range(0,1)) = 0.05 + _GlowOuter ("Outer", Range(0,1)) = 0.05 + _GlowPower ("Falloff", Range(1, 0)) = 0.75 + + _WeightNormal ("Weight Normal", float) = 0 + _WeightBold ("Weight Bold", float) = 0.5 + + // Should not be directly exposed to the user + _ShaderFlags ("Flags", float) = 0 + _ScaleRatioA ("Scale RatioA", float) = 1 + _ScaleRatioB ("Scale RatioB", float) = 1 + _ScaleRatioC ("Scale RatioC", float) = 1 + + _MainTex ("Font Atlas", 2D) = "white" {} + _TextureWidth ("Texture Width", float) = 512 + _TextureHeight ("Texture Height", float) = 512 + _GradientScale ("Gradient Scale", float) = 5.0 + _ScaleX ("Scale X", float) = 1.0 + _ScaleY ("Scale Y", float) = 1.0 + _PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875 + _Sharpness ("Sharpness", Range(-1,1)) = 0 + + _VertexOffsetX ("Vertex OffsetX", float) = 0 + _VertexOffsetY ("Vertex OffsetY", float) = 0 + + _CullMode ("Cull Mode", Float) = 0 + //_MaskCoord ("Mask Coords", vector) = (0,0,0,0) + //_MaskSoftness ("Mask Softness", float) = 0 +} + +SubShader { + + Tags { + "Queue"="Transparent" + "IgnoreProjector"="True" + "RenderType"="Transparent" + } + + LOD 300 + Cull [_CullMode] + + CGPROGRAM + #pragma surface PixShader Lambert alpha:blend vertex:VertShader noforwardadd nolightmap nodirlightmap + #pragma target 3.0 + #pragma shader_feature __ GLOW_ON + + #include "TMPro_Properties.cginc" + #include "TMPro.cginc" + + half _FaceShininess; + half _OutlineShininess; + + struct Input + { + fixed4 color : COLOR; + float2 uv_MainTex; + float2 uv2_FaceTex; + float2 uv2_OutlineTex; + float2 param; // Weight, Scale + float3 viewDirEnv; + }; + + #include "TMPro_Surface.cginc" + + ENDCG + + // Pass to render object as a shadow caster + Pass + { + Name "Caster" + Tags { "LightMode" = "ShadowCaster" } + Offset 1, 1 + + Fog {Mode Off} + ZWrite On ZTest LEqual Cull Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_shadowcaster + #include "UnityCG.cginc" + + struct v2f { + V2F_SHADOW_CASTER; + float2 uv : TEXCOORD1; + float2 uv2 : TEXCOORD3; + float alphaClip : TEXCOORD2; + }; + + uniform float4 _MainTex_ST; + uniform float4 _OutlineTex_ST; + float _OutlineWidth; + float _FaceDilate; + float _ScaleRatioA; + + v2f vert( appdata_base v ) + { + v2f o; + TRANSFER_SHADOW_CASTER(o) + o.uv = TRANSFORM_TEX(v.texcoord, _MainTex); + o.uv2 = TRANSFORM_TEX(v.texcoord, _OutlineTex); + o.alphaClip = o.alphaClip = (1.0 - _OutlineWidth * _ScaleRatioA - _FaceDilate * _ScaleRatioA) / 2; + return o; + } + + uniform sampler2D _MainTex; + + float4 frag(v2f i) : COLOR + { + fixed4 texcol = tex2D(_MainTex, i.uv).a; + clip(texcol.a - i.alphaClip); + SHADOW_CASTER_FRAGMENT(i) + } + ENDCG + } +} + +CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI" +} diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader.meta new file mode 100644 index 0000000..bff8b7a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 85187c2149c549c5b33f0cdb02836b17 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader new file mode 100644 index 0000000..bcb2bb2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader @@ -0,0 +1,158 @@ +Shader "TextMeshPro/Distance Field (Surface)" { + +Properties { + _FaceTex ("Fill Texture", 2D) = "white" {} + _FaceUVSpeedX ("Face UV Speed X", Range(-5, 5)) = 0.0 + _FaceUVSpeedY ("Face UV Speed Y", Range(-5, 5)) = 0.0 + [HDR]_FaceColor ("Fill Color", Color) = (1,1,1,1) + _FaceDilate ("Face Dilate", Range(-1,1)) = 0 + + [HDR]_OutlineColor ("Outline Color", Color) = (0,0,0,1) + _OutlineTex ("Outline Texture", 2D) = "white" {} + _OutlineUVSpeedX ("Outline UV Speed X", Range(-5, 5)) = 0.0 + _OutlineUVSpeedY ("Outline UV Speed Y", Range(-5, 5)) = 0.0 + _OutlineWidth ("Outline Thickness", Range(0, 1)) = 0 + _OutlineSoftness ("Outline Softness", Range(0,1)) = 0 + + _Bevel ("Bevel", Range(0,1)) = 0.5 + _BevelOffset ("Bevel Offset", Range(-0.5,0.5)) = 0 + _BevelWidth ("Bevel Width", Range(-.5,0.5)) = 0 + _BevelClamp ("Bevel Clamp", Range(0,1)) = 0 + _BevelRoundness ("Bevel Roundness", Range(0,1)) = 0 + + _BumpMap ("Normalmap", 2D) = "bump" {} + _BumpOutline ("Bump Outline", Range(0,1)) = 0.5 + _BumpFace ("Bump Face", Range(0,1)) = 0.5 + + _ReflectFaceColor ("Face Color", Color) = (0,0,0,1) + _ReflectOutlineColor ("Outline Color", Color) = (0,0,0,1) + _Cube ("Reflection Cubemap", Cube) = "black" { /* TexGen CubeReflect */ } + _EnvMatrixRotation ("Texture Rotation", vector) = (0, 0, 0, 0) + [HDR]_SpecColor ("Specular Color", Color) = (0,0,0,1) + + _FaceShininess ("Face Shininess", Range(0,1)) = 0 + _OutlineShininess ("Outline Shininess", Range(0,1)) = 0 + + [HDR]_GlowColor ("Color", Color) = (0, 1, 0, 0.5) + _GlowOffset ("Offset", Range(-1,1)) = 0 + _GlowInner ("Inner", Range(0,1)) = 0.05 + _GlowOuter ("Outer", Range(0,1)) = 0.05 + _GlowPower ("Falloff", Range(1, 0)) = 0.75 + + _WeightNormal ("Weight Normal", float) = 0 + _WeightBold ("Weight Bold", float) = 0.5 + + // Should not be directly exposed to the user + _ShaderFlags ("Flags", float) = 0 + _ScaleRatioA ("Scale RatioA", float) = 1 + _ScaleRatioB ("Scale RatioB", float) = 1 + _ScaleRatioC ("Scale RatioC", float) = 1 + + _MainTex ("Font Atlas", 2D) = "white" {} + _TextureWidth ("Texture Width", float) = 512 + _TextureHeight ("Texture Height", float) = 512 + _GradientScale ("Gradient Scale", float) = 5.0 + _ScaleX ("Scale X", float) = 1.0 + _ScaleY ("Scale Y", float) = 1.0 + _PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875 + _Sharpness ("Sharpness", Range(-1,1)) = 0 + + _VertexOffsetX ("Vertex OffsetX", float) = 0 + _VertexOffsetY ("Vertex OffsetY", float) = 0 + + _CullMode ("Cull Mode", Float) = 0 + //_MaskCoord ("Mask Coords", vector) = (0,0,0,0) + //_MaskSoftness ("Mask Softness", float) = 0 +} + +SubShader { + + Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } + + LOD 300 + Cull [_CullMode] + + CGPROGRAM + #pragma surface PixShader BlinnPhong alpha:blend vertex:VertShader nolightmap nodirlightmap + #pragma target 3.0 + #pragma shader_feature __ GLOW_ON + #pragma glsl + + #include "TMPro_Properties.cginc" + #include "TMPro.cginc" + + half _FaceShininess; + half _OutlineShininess; + + struct Input + { + fixed4 color : COLOR; + float2 uv_MainTex; + float2 uv2_FaceTex; + float2 uv2_OutlineTex; + float2 param; // Weight, Scale + float3 viewDirEnv; + }; + + + #define BEVEL_ON 1 + #include "TMPro_Surface.cginc" + + ENDCG + + // Pass to render object as a shadow caster + Pass + { + Name "Caster" + Tags { "LightMode" = "ShadowCaster" } + Offset 1, 1 + + Fog {Mode Off} + ZWrite On + ZTest LEqual + Cull Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_shadowcaster + #include "UnityCG.cginc" + + struct v2f { + V2F_SHADOW_CASTER; + float2 uv : TEXCOORD1; + float2 uv2 : TEXCOORD3; + float alphaClip : TEXCOORD2; + }; + + uniform float4 _MainTex_ST; + uniform float4 _OutlineTex_ST; + float _OutlineWidth; + float _FaceDilate; + float _ScaleRatioA; + + v2f vert( appdata_base v ) + { + v2f o; + TRANSFER_SHADOW_CASTER(o) + o.uv = TRANSFORM_TEX(v.texcoord, _MainTex); + o.uv2 = TRANSFORM_TEX(v.texcoord, _OutlineTex); + o.alphaClip = (1.0 - _OutlineWidth * _ScaleRatioA - _FaceDilate * _ScaleRatioA) / 2; + return o; + } + + uniform sampler2D _MainTex; + + float4 frag(v2f i) : COLOR + { + fixed4 texcol = tex2D(_MainTex, i.uv).a; + clip(texcol.a - i.alphaClip); + SHADOW_CASTER_FRAGMENT(i) + } + ENDCG + } +} + +CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI" +} + diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader.meta new file mode 100644 index 0000000..26e814c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f7ada0af4f174f0694ca6a487b8f543d +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF.shader b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF.shader new file mode 100644 index 0000000..011ee19 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF.shader @@ -0,0 +1,317 @@ +Shader "TextMeshPro/Distance Field" { + +Properties { + _FaceTex ("Face Texture", 2D) = "white" {} + _FaceUVSpeedX ("Face UV Speed X", Range(-5, 5)) = 0.0 + _FaceUVSpeedY ("Face UV Speed Y", Range(-5, 5)) = 0.0 + [HDR]_FaceColor ("Face Color", Color) = (1,1,1,1) + _FaceDilate ("Face Dilate", Range(-1,1)) = 0 + + [HDR]_OutlineColor ("Outline Color", Color) = (0,0,0,1) + _OutlineTex ("Outline Texture", 2D) = "white" {} + _OutlineUVSpeedX ("Outline UV Speed X", Range(-5, 5)) = 0.0 + _OutlineUVSpeedY ("Outline UV Speed Y", Range(-5, 5)) = 0.0 + _OutlineWidth ("Outline Thickness", Range(0, 1)) = 0 + _OutlineSoftness ("Outline Softness", Range(0,1)) = 0 + + _Bevel ("Bevel", Range(0,1)) = 0.5 + _BevelOffset ("Bevel Offset", Range(-0.5,0.5)) = 0 + _BevelWidth ("Bevel Width", Range(-.5,0.5)) = 0 + _BevelClamp ("Bevel Clamp", Range(0,1)) = 0 + _BevelRoundness ("Bevel Roundness", Range(0,1)) = 0 + + _LightAngle ("Light Angle", Range(0.0, 6.2831853)) = 3.1416 + [HDR]_SpecularColor ("Specular", Color) = (1,1,1,1) + _SpecularPower ("Specular", Range(0,4)) = 2.0 + _Reflectivity ("Reflectivity", Range(5.0,15.0)) = 10 + _Diffuse ("Diffuse", Range(0,1)) = 0.5 + _Ambient ("Ambient", Range(1,0)) = 0.5 + + _BumpMap ("Normal map", 2D) = "bump" {} + _BumpOutline ("Bump Outline", Range(0,1)) = 0 + _BumpFace ("Bump Face", Range(0,1)) = 0 + + _ReflectFaceColor ("Reflection Color", Color) = (0,0,0,1) + _ReflectOutlineColor("Reflection Color", Color) = (0,0,0,1) + _Cube ("Reflection Cubemap", Cube) = "black" { /* TexGen CubeReflect */ } + _EnvMatrixRotation ("Texture Rotation", vector) = (0, 0, 0, 0) + + + [HDR]_UnderlayColor ("Border Color", Color) = (0,0,0, 0.5) + _UnderlayOffsetX ("Border OffsetX", Range(-1,1)) = 0 + _UnderlayOffsetY ("Border OffsetY", Range(-1,1)) = 0 + _UnderlayDilate ("Border Dilate", Range(-1,1)) = 0 + _UnderlaySoftness ("Border Softness", Range(0,1)) = 0 + + [HDR]_GlowColor ("Color", Color) = (0, 1, 0, 0.5) + _GlowOffset ("Offset", Range(-1,1)) = 0 + _GlowInner ("Inner", Range(0,1)) = 0.05 + _GlowOuter ("Outer", Range(0,1)) = 0.05 + _GlowPower ("Falloff", Range(1, 0)) = 0.75 + + _WeightNormal ("Weight Normal", float) = 0 + _WeightBold ("Weight Bold", float) = 0.5 + + _ShaderFlags ("Flags", float) = 0 + _ScaleRatioA ("Scale RatioA", float) = 1 + _ScaleRatioB ("Scale RatioB", float) = 1 + _ScaleRatioC ("Scale RatioC", float) = 1 + + _MainTex ("Font Atlas", 2D) = "white" {} + _TextureWidth ("Texture Width", float) = 512 + _TextureHeight ("Texture Height", float) = 512 + _GradientScale ("Gradient Scale", float) = 5.0 + _ScaleX ("Scale X", float) = 1.0 + _ScaleY ("Scale Y", float) = 1.0 + _PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875 + _Sharpness ("Sharpness", Range(-1,1)) = 0 + + _VertexOffsetX ("Vertex OffsetX", float) = 0 + _VertexOffsetY ("Vertex OffsetY", float) = 0 + + _MaskCoord ("Mask Coordinates", vector) = (0, 0, 32767, 32767) + _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767) + _MaskSoftnessX ("Mask SoftnessX", float) = 0 + _MaskSoftnessY ("Mask SoftnessY", float) = 0 + + _StencilComp ("Stencil Comparison", Float) = 8 + _Stencil ("Stencil ID", Float) = 0 + _StencilOp ("Stencil Operation", Float) = 0 + _StencilWriteMask ("Stencil Write Mask", Float) = 255 + _StencilReadMask ("Stencil Read Mask", Float) = 255 + + _CullMode ("Cull Mode", Float) = 0 + _ColorMask ("Color Mask", Float) = 15 +} + +SubShader { + + Tags + { + "Queue"="Transparent" + "IgnoreProjector"="True" + "RenderType"="Transparent" + } + + Stencil + { + Ref [_Stencil] + Comp [_StencilComp] + Pass [_StencilOp] + ReadMask [_StencilReadMask] + WriteMask [_StencilWriteMask] + } + + Cull [_CullMode] + ZWrite Off + Lighting Off + Fog { Mode Off } + ZTest [unity_GUIZTestMode] + Blend One OneMinusSrcAlpha + ColorMask [_ColorMask] + + Pass { + CGPROGRAM + #pragma target 3.0 + #pragma vertex VertShader + #pragma fragment PixShader + #pragma shader_feature __ BEVEL_ON + #pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER + #pragma shader_feature __ GLOW_ON + + #pragma multi_compile __ UNITY_UI_CLIP_RECT + #pragma multi_compile __ UNITY_UI_ALPHACLIP + + #include "UnityCG.cginc" + #include "UnityUI.cginc" + #include "TMPro_Properties.cginc" + #include "TMPro.cginc" + + struct vertex_t { + UNITY_VERTEX_INPUT_INSTANCE_ID + float4 position : POSITION; + float3 normal : NORMAL; + fixed4 color : COLOR; + float2 texcoord0 : TEXCOORD0; + float2 texcoord1 : TEXCOORD1; + }; + + + struct pixel_t { + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + float4 position : SV_POSITION; + fixed4 color : COLOR; + float2 atlas : TEXCOORD0; // Atlas + float4 param : TEXCOORD1; // alphaClip, scale, bias, weight + float4 mask : TEXCOORD2; // Position in object space(xy), pixel Size(zw) + float3 viewDir : TEXCOORD3; + + #if (UNDERLAY_ON || UNDERLAY_INNER) + float4 texcoord2 : TEXCOORD4; // u,v, scale, bias + fixed4 underlayColor : COLOR1; + #endif + float4 textures : TEXCOORD5; + }; + + // Used by Unity internally to handle Texture Tiling and Offset. + float4 _FaceTex_ST; + float4 _OutlineTex_ST; + + pixel_t VertShader(vertex_t input) + { + pixel_t output; + + UNITY_INITIALIZE_OUTPUT(pixel_t, output); + UNITY_SETUP_INSTANCE_ID(input); + UNITY_TRANSFER_INSTANCE_ID(input,output); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); + + float bold = step(input.texcoord1.y, 0); + + float4 vert = input.position; + vert.x += _VertexOffsetX; + vert.y += _VertexOffsetY; + + float4 vPosition = UnityObjectToClipPos(vert); + + float2 pixelSize = vPosition.w; + pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy)); + float scale = rsqrt(dot(pixelSize, pixelSize)); + scale *= abs(input.texcoord1.y) * _GradientScale * (_Sharpness + 1); + if (UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert))))); + + float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0; + weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5; + + float bias =(.5 - weight) + (.5 / scale); + + float alphaClip = (1.0 - _OutlineWidth * _ScaleRatioA - _OutlineSoftness * _ScaleRatioA); + + #if GLOW_ON + alphaClip = min(alphaClip, 1.0 - _GlowOffset * _ScaleRatioB - _GlowOuter * _ScaleRatioB); + #endif + + alphaClip = alphaClip / 2.0 - ( .5 / scale) - weight; + + #if (UNDERLAY_ON || UNDERLAY_INNER) + float4 underlayColor = _UnderlayColor; + underlayColor.rgb *= underlayColor.a; + + float bScale = scale; + bScale /= 1 + ((_UnderlaySoftness*_ScaleRatioC) * bScale); + float bBias = (0.5 - weight) * bScale - 0.5 - ((_UnderlayDilate * _ScaleRatioC) * 0.5 * bScale); + + float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth; + float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight; + float2 bOffset = float2(x, y); + #endif + + // Generate UV for the Masking Texture + float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); + float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); + + // Support for texture tiling and offset + float2 textureUV = UnpackUV(input.texcoord1.x); + float2 faceUV = TRANSFORM_TEX(textureUV, _FaceTex); + float2 outlineUV = TRANSFORM_TEX(textureUV, _OutlineTex); + + + output.position = vPosition; + output.color = input.color; + output.atlas = input.texcoord0; + output.param = float4(alphaClip, scale, bias, weight); + output.mask = half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy)); + output.viewDir = mul((float3x3)_EnvMatrix, _WorldSpaceCameraPos.xyz - mul(unity_ObjectToWorld, vert).xyz); + #if (UNDERLAY_ON || UNDERLAY_INNER) + output.texcoord2 = float4(input.texcoord0 + bOffset, bScale, bBias); + output.underlayColor = underlayColor; + #endif + output.textures = float4(faceUV, outlineUV); + + return output; + } + + + fixed4 PixShader(pixel_t input) : SV_Target + { + UNITY_SETUP_INSTANCE_ID(input); + + float c = tex2D(_MainTex, input.atlas).a; + + #ifndef UNDERLAY_ON + clip(c - input.param.x); + #endif + + float scale = input.param.y; + float bias = input.param.z; + float weight = input.param.w; + float sd = (bias - c) * scale; + + float outline = (_OutlineWidth * _ScaleRatioA) * scale; + float softness = (_OutlineSoftness * _ScaleRatioA) * scale; + + half4 faceColor = _FaceColor; + half4 outlineColor = _OutlineColor; + + faceColor.rgb *= input.color.rgb; + + faceColor *= tex2D(_FaceTex, input.textures.xy + float2(_FaceUVSpeedX, _FaceUVSpeedY) * _Time.y); + outlineColor *= tex2D(_OutlineTex, input.textures.zw + float2(_OutlineUVSpeedX, _OutlineUVSpeedY) * _Time.y); + + faceColor = GetColor(sd, faceColor, outlineColor, outline, softness); + + #if BEVEL_ON + float3 dxy = float3(0.5 / _TextureWidth, 0.5 / _TextureHeight, 0); + float3 n = GetSurfaceNormal(input.atlas, weight, dxy); + + float3 bump = UnpackNormal(tex2D(_BumpMap, input.textures.xy + float2(_FaceUVSpeedX, _FaceUVSpeedY) * _Time.y)).xyz; + bump *= lerp(_BumpFace, _BumpOutline, saturate(sd + outline * 0.5)); + n = normalize(n- bump); + + float3 light = normalize(float3(sin(_LightAngle), cos(_LightAngle), -1.0)); + + float3 col = GetSpecular(n, light); + faceColor.rgb += col*faceColor.a; + faceColor.rgb *= 1-(dot(n, light)*_Diffuse); + faceColor.rgb *= lerp(_Ambient, 1, n.z*n.z); + + fixed4 reflcol = texCUBE(_Cube, reflect(input.viewDir, -n)); + faceColor.rgb += reflcol.rgb * lerp(_ReflectFaceColor.rgb, _ReflectOutlineColor.rgb, saturate(sd + outline * 0.5)) * faceColor.a; + #endif + + #if UNDERLAY_ON + float d = tex2D(_MainTex, input.texcoord2.xy).a * input.texcoord2.z; + faceColor += input.underlayColor * saturate(d - input.texcoord2.w) * (1 - faceColor.a); + #endif + + #if UNDERLAY_INNER + float d = tex2D(_MainTex, input.texcoord2.xy).a * input.texcoord2.z; + faceColor += input.underlayColor * (1 - saturate(d - input.texcoord2.w)) * saturate(1 - sd) * (1 - faceColor.a); + #endif + + #if GLOW_ON + float4 glowColor = GetGlowColor(sd, scale); + faceColor.rgb += glowColor.rgb * glowColor.a; + #endif + + // Alternative implementation to UnityGet2DClipping with support for softness. + #if UNITY_UI_CLIP_RECT + half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw); + faceColor *= m.x * m.y; + #endif + + #if UNITY_UI_ALPHACLIP + clip(faceColor.a - 0.001); + #endif + + return faceColor * input.color.a; + } + + ENDCG + } +} + +Fallback "TextMeshPro/Mobile/Distance Field" +CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI" +} diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF.shader.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF.shader.meta new file mode 100644 index 0000000..e1cf3f3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_SDF.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 68e6db2ebdc24f95958faec2be5558d6 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader new file mode 100644 index 0000000..e8283a7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader @@ -0,0 +1,116 @@ +Shader "TextMeshPro/Sprite" +{ + Properties + { + [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} + _Color ("Tint", Color) = (1,1,1,1) + + _StencilComp ("Stencil Comparison", Float) = 8 + _Stencil ("Stencil ID", Float) = 0 + _StencilOp ("Stencil Operation", Float) = 0 + _StencilWriteMask ("Stencil Write Mask", Float) = 255 + _StencilReadMask ("Stencil Read Mask", Float) = 255 + + _CullMode ("Cull Mode", Float) = 0 + _ColorMask ("Color Mask", Float) = 15 + _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767) + + [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0 + } + + SubShader + { + Tags + { + "Queue"="Transparent" + "IgnoreProjector"="True" + "RenderType"="Transparent" + "PreviewType"="Plane" + "CanUseSpriteAtlas"="True" + } + + Stencil + { + Ref [_Stencil] + Comp [_StencilComp] + Pass [_StencilOp] + ReadMask [_StencilReadMask] + WriteMask [_StencilWriteMask] + } + + Cull [_CullMode] + Lighting Off + ZWrite Off + ZTest [unity_GUIZTestMode] + Blend SrcAlpha OneMinusSrcAlpha + ColorMask [_ColorMask] + + Pass + { + Name "Default" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 2.0 + + #include "UnityCG.cginc" + #include "UnityUI.cginc" + + #pragma multi_compile __ UNITY_UI_CLIP_RECT + #pragma multi_compile __ UNITY_UI_ALPHACLIP + + struct appdata_t + { + float4 vertex : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD0; + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct v2f + { + float4 vertex : SV_POSITION; + fixed4 color : COLOR; + float2 texcoord : TEXCOORD0; + float4 worldPosition : TEXCOORD1; + UNITY_VERTEX_OUTPUT_STEREO + }; + + sampler2D _MainTex; + fixed4 _Color; + fixed4 _TextureSampleAdd; + float4 _ClipRect; + float4 _MainTex_ST; + + v2f vert(appdata_t v) + { + v2f OUT; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT); + OUT.worldPosition = v.vertex; + OUT.vertex = UnityObjectToClipPos(OUT.worldPosition); + + OUT.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex); + + OUT.color = v.color * _Color; + return OUT; + } + + fixed4 frag(v2f IN) : SV_Target + { + half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color; + + #ifdef UNITY_UI_CLIP_RECT + color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect); + #endif + + #ifdef UNITY_UI_ALPHACLIP + clip (color.a - 0.001); + #endif + + return color; + } + ENDCG + } + } +} diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader.meta new file mode 100644 index 0000000..50ba195 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: cf81c85f95fe47e1a27f6ae460cf182c +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro.cginc b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro.cginc new file mode 100644 index 0000000..5898130 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro.cginc @@ -0,0 +1,84 @@ +float2 UnpackUV(float uv) +{ + float2 output; + output.x = floor(uv / 4096); + output.y = uv - 4096 * output.x; + + return output * 0.001953125; +} + +fixed4 GetColor(half d, fixed4 faceColor, fixed4 outlineColor, half outline, half softness) +{ + half faceAlpha = 1-saturate((d - outline * 0.5 + softness * 0.5) / (1.0 + softness)); + half outlineAlpha = saturate((d + outline * 0.5)) * sqrt(min(1.0, outline)); + + faceColor.rgb *= faceColor.a; + outlineColor.rgb *= outlineColor.a; + + faceColor = lerp(faceColor, outlineColor, outlineAlpha); + + faceColor *= faceAlpha; + + return faceColor; +} + +float3 GetSurfaceNormal(float4 h, float bias) +{ + bool raisedBevel = step(1, fmod(_ShaderFlags, 2)); + + h += bias+_BevelOffset; + + float bevelWidth = max(.01, _OutlineWidth+_BevelWidth); + + // Track outline + h -= .5; + h /= bevelWidth; + h = saturate(h+.5); + + if(raisedBevel) h = 1 - abs(h*2.0 - 1.0); + h = lerp(h, sin(h*3.141592/2.0), _BevelRoundness); + h = min(h, 1.0-_BevelClamp); + h *= _Bevel * bevelWidth * _GradientScale * -2.0; + + float3 va = normalize(float3(1.0, 0.0, h.y - h.x)); + float3 vb = normalize(float3(0.0, -1.0, h.w - h.z)); + + return cross(va, vb); +} + +float3 GetSurfaceNormal(float2 uv, float bias, float3 delta) +{ + // Read "height field" + float4 h = {tex2D(_MainTex, uv - delta.xz).a, + tex2D(_MainTex, uv + delta.xz).a, + tex2D(_MainTex, uv - delta.zy).a, + tex2D(_MainTex, uv + delta.zy).a}; + + return GetSurfaceNormal(h, bias); +} + +float3 GetSpecular(float3 n, float3 l) +{ + float spec = pow(max(0.0, dot(n, l)), _Reflectivity); + return _SpecularColor.rgb * spec * _SpecularPower; +} + +float4 GetGlowColor(float d, float scale) +{ + float glow = d - (_GlowOffset*_ScaleRatioB) * 0.5 * scale; + float t = lerp(_GlowInner, (_GlowOuter * _ScaleRatioB), step(0.0, glow)) * 0.5 * scale; + glow = saturate(abs(glow/(1.0 + t))); + glow = 1.0-pow(glow, _GlowPower); + glow *= sqrt(min(1.0, t)); // Fade off glow thinner than 1 screen pixel + return float4(_GlowColor.rgb, saturate(_GlowColor.a * glow * 2)); +} + +float4 BlendARGB(float4 overlying, float4 underlying) +{ + overlying.rgb *= overlying.a; + underlying.rgb *= underlying.a; + float3 blended = overlying.rgb + ((1-overlying.a)*underlying.rgb); + float alpha = underlying.a + (1-underlying.a)*overlying.a; + return float4(blended, alpha); +} + diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro.cginc.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro.cginc.meta new file mode 100644 index 0000000..0d6eb56 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 407bc68d299748449bbf7f48ee690f8d +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc new file mode 100644 index 0000000..5969fec --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc @@ -0,0 +1,157 @@ +struct vertex_t { + UNITY_VERTEX_INPUT_INSTANCE_ID + float4 position : POSITION; + float3 normal : NORMAL; + float4 color : COLOR; + float2 texcoord0 : TEXCOORD0; + float2 texcoord1 : TEXCOORD1; +}; + +struct pixel_t { + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + float4 position : SV_POSITION; + float4 faceColor : COLOR; + float4 outlineColor : COLOR1; + float4 texcoord0 : TEXCOORD0; + float4 param : TEXCOORD1; // weight, scaleRatio + float2 mask : TEXCOORD2; + #if (UNDERLAY_ON || UNDERLAY_INNER) + float4 texcoord2 : TEXCOORD3; + float4 underlayColor : COLOR2; + #endif +}; + +float4 SRGBToLinear(float4 rgba) { + return float4(lerp(rgba.rgb / 12.92f, pow((rgba.rgb + 0.055f) / 1.055f, 2.4f), step(0.04045f, rgba.rgb)), rgba.a); +} + +pixel_t VertShader(vertex_t input) +{ + pixel_t output; + + UNITY_INITIALIZE_OUTPUT(pixel_t, output); + UNITY_SETUP_INSTANCE_ID(input); + UNITY_TRANSFER_INSTANCE_ID(input, output); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); + + float bold = step(input.texcoord1.y, 0); + + float4 vert = input.position; + vert.x += _VertexOffsetX; + vert.y += _VertexOffsetY; + + float4 vPosition = UnityObjectToClipPos(vert); + + float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0; + weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5; + + // Generate UV for the Masking Texture + float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); + float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); + + float4 color = input.color; + #if (FORCE_LINEAR && !UNITY_COLORSPACE_GAMMA) + color = SRGBToLinear(input.color); + #endif + + float opacity = color.a; + #if (UNDERLAY_ON | UNDERLAY_INNER) + opacity = 1.0; + #endif + + float4 faceColor = float4(color.rgb, opacity) * _FaceColor; + faceColor.rgb *= faceColor.a; + + float4 outlineColor = _OutlineColor; + outlineColor.a *= opacity; + outlineColor.rgb *= outlineColor.a; + + output.position = vPosition; + output.faceColor = faceColor; + output.outlineColor = outlineColor; + output.texcoord0 = float4(input.texcoord0.xy, maskUV.xy); + output.param = float4(0.5 - weight, 1.3333 * _GradientScale * (_Sharpness + 1) / _TextureWidth, _OutlineWidth * _ScaleRatioA * 0.5, 0); + + float2 mask = float2(0, 0); + #if UNITY_UI_CLIP_RECT + mask = vert.xy * 2 - clampedRect.xy - clampedRect.zw; + #endif + output.mask = mask; + + #if (UNDERLAY_ON || UNDERLAY_INNER) + float4 underlayColor = _UnderlayColor; + underlayColor.rgb *= underlayColor.a; + + float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth; + float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight; + + output.texcoord2 = float4(input.texcoord0 + float2(x, y), input.color.a, 0); + output.underlayColor = underlayColor; + #endif + + return output; +} + +float4 PixShader(pixel_t input) : SV_Target +{ + UNITY_SETUP_INSTANCE_ID(input); + + float d = tex2D(_MainTex, input.texcoord0.xy).a; + + float2 UV = input.texcoord0.xy; + float scale = rsqrt(abs(ddx(UV.x) * ddy(UV.y) - ddy(UV.x) * ddx(UV.y))) * input.param.y; + + #if (UNDERLAY_ON | UNDERLAY_INNER) + float layerScale = scale; + layerScale /= 1 + ((_UnderlaySoftness * _ScaleRatioC) * layerScale); + float layerBias = input.param.x * layerScale - .5 - ((_UnderlayDilate * _ScaleRatioC) * .5 * layerScale); + #endif + + scale /= 1 + (_OutlineSoftness * _ScaleRatioA * scale); + + float4 faceColor = input.faceColor * saturate((d - input.param.x) * scale + 0.5); + + #ifdef OUTLINE_ON + float4 outlineColor = lerp(input.faceColor, input.outlineColor, sqrt(min(1.0, input.param.z * scale * 2))); + faceColor = lerp(outlineColor, input.faceColor, saturate((d - input.param.x - input.param.z) * scale + 0.5)); + faceColor *= saturate((d - input.param.x + input.param.z) * scale + 0.5); + #endif + + #if UNDERLAY_ON + d = tex2D(_MainTex, input.texcoord2.xy).a * layerScale; + faceColor += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * saturate(d - layerBias) * (1 - faceColor.a); + #endif + + #if UNDERLAY_INNER + float bias = input.param.x * scale - 0.5; + float sd = saturate(d * scale - bias - input.param.z); + d = tex2D(_MainTex, input.texcoord2.xy).a * layerScale; + faceColor += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * (1 - saturate(d - layerBias)) * sd * (1 - faceColor.a); + #endif + + #ifdef MASKING + float a = abs(_MaskInverse - tex2D(_MaskTex, input.texcoord0.zw).a); + float t = a + (1 - _MaskWipeControl) * _MaskEdgeSoftness - _MaskWipeControl; + a = saturate(t / _MaskEdgeSoftness); + faceColor.rgb = lerp(_MaskEdgeColor.rgb * faceColor.a, faceColor.rgb, a); + faceColor *= a; + #endif + + // Alternative implementation to UnityGet2DClipping with support for softness + #if UNITY_UI_CLIP_RECT + float2 maskZW = 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + (1 / scale)); + float2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * maskZW); + faceColor *= m.x * m.y; + #endif + + #if (UNDERLAY_ON | UNDERLAY_INNER) + faceColor *= input.texcoord2.z; + #endif + + #if UNITY_UI_ALPHACLIP + clip(faceColor.a - 0.001); + #endif + + return faceColor; +} diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc.meta new file mode 100644 index 0000000..4415e50 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c334973cef89a9840b0b0c507e0377ab +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc new file mode 100644 index 0000000..2e96258 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc @@ -0,0 +1,85 @@ +// UI Editable properties +uniform sampler2D _FaceTex; // Alpha : Signed Distance +uniform float _FaceUVSpeedX; +uniform float _FaceUVSpeedY; +uniform fixed4 _FaceColor; // RGBA : Color + Opacity +uniform float _FaceDilate; // v[ 0, 1] +uniform float _OutlineSoftness; // v[ 0, 1] + +uniform sampler2D _OutlineTex; // RGBA : Color + Opacity +uniform float _OutlineUVSpeedX; +uniform float _OutlineUVSpeedY; +uniform fixed4 _OutlineColor; // RGBA : Color + Opacity +uniform float _OutlineWidth; // v[ 0, 1] + +uniform float _Bevel; // v[ 0, 1] +uniform float _BevelOffset; // v[-1, 1] +uniform float _BevelWidth; // v[-1, 1] +uniform float _BevelClamp; // v[ 0, 1] +uniform float _BevelRoundness; // v[ 0, 1] + +uniform sampler2D _BumpMap; // Normal map +uniform float _BumpOutline; // v[ 0, 1] +uniform float _BumpFace; // v[ 0, 1] + +uniform samplerCUBE _Cube; // Cube / sphere map +uniform fixed4 _ReflectFaceColor; // RGB intensity +uniform fixed4 _ReflectOutlineColor; +//uniform float _EnvTiltX; // v[-1, 1] +//uniform float _EnvTiltY; // v[-1, 1] +uniform float3 _EnvMatrixRotation; +uniform float4x4 _EnvMatrix; + +uniform fixed4 _SpecularColor; // RGB intensity +uniform float _LightAngle; // v[ 0,Tau] +uniform float _SpecularPower; // v[ 0, 1] +uniform float _Reflectivity; // v[ 5, 15] +uniform float _Diffuse; // v[ 0, 1] +uniform float _Ambient; // v[ 0, 1] + +uniform fixed4 _UnderlayColor; // RGBA : Color + Opacity +uniform float _UnderlayOffsetX; // v[-1, 1] +uniform float _UnderlayOffsetY; // v[-1, 1] +uniform float _UnderlayDilate; // v[-1, 1] +uniform float _UnderlaySoftness; // v[ 0, 1] + +uniform fixed4 _GlowColor; // RGBA : Color + Intesity +uniform float _GlowOffset; // v[-1, 1] +uniform float _GlowOuter; // v[ 0, 1] +uniform float _GlowInner; // v[ 0, 1] +uniform float _GlowPower; // v[ 1, 1/(1+4*4)] + +// API Editable properties +uniform float _ShaderFlags; +uniform float _WeightNormal; +uniform float _WeightBold; + +uniform float _ScaleRatioA; +uniform float _ScaleRatioB; +uniform float _ScaleRatioC; + +uniform float _VertexOffsetX; +uniform float _VertexOffsetY; + +//uniform float _UseClipRect; +uniform float _MaskID; +uniform sampler2D _MaskTex; +uniform float4 _MaskCoord; +uniform float4 _ClipRect; // bottom left(x,y) : top right(z,w) +//uniform float _MaskWipeControl; +//uniform float _MaskEdgeSoftness; +//uniform fixed4 _MaskEdgeColor; +//uniform bool _MaskInverse; + +uniform float _MaskSoftnessX; +uniform float _MaskSoftnessY; + +// Font Atlas properties +uniform sampler2D _MainTex; +uniform float _TextureWidth; +uniform float _TextureHeight; +uniform float _GradientScale; +uniform float _ScaleX; +uniform float _ScaleY; +uniform float _PerspectiveFilter; +uniform float _Sharpness; diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc.meta new file mode 100644 index 0000000..7b37f2f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3997e2241185407d80309a82f9148466 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc new file mode 100644 index 0000000..622ae87 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc @@ -0,0 +1,101 @@ +void VertShader(inout appdata_full v, out Input data) +{ + v.vertex.x += _VertexOffsetX; + v.vertex.y += _VertexOffsetY; + + UNITY_INITIALIZE_OUTPUT(Input, data); + + float bold = step(v.texcoord1.y, 0); + + // Generate normal for backface + float3 view = ObjSpaceViewDir(v.vertex); + v.normal *= sign(dot(v.normal, view)); + +#if USE_DERIVATIVE + data.param.y = 1; +#else + float4 vert = v.vertex; + float4 vPosition = UnityObjectToClipPos(vert); + float2 pixelSize = vPosition.w; + + pixelSize /= float2(_ScaleX, _ScaleY) * mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy); + float scale = rsqrt(dot(pixelSize, pixelSize)); + scale *= abs(v.texcoord1.y) * _GradientScale * (_Sharpness + 1); + scale = lerp(scale * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(v.normal.xyz), normalize(WorldSpaceViewDir(vert))))); + data.param.y = scale; +#endif + + data.param.x = (lerp(_WeightNormal, _WeightBold, bold) / 4.0 + _FaceDilate) * _ScaleRatioA * 0.5; // + + v.texcoord1.xy = UnpackUV(v.texcoord1.x); + data.viewDirEnv = mul((float3x3)_EnvMatrix, WorldSpaceViewDir(v.vertex)); +} + +void PixShader(Input input, inout SurfaceOutput o) +{ + +#if USE_DERIVATIVE + float2 pixelSize = float2(ddx(input.uv_MainTex.y), ddy(input.uv_MainTex.y)); + pixelSize *= _TextureWidth * .75; + float scale = rsqrt(dot(pixelSize, pixelSize)) * _GradientScale * (_Sharpness + 1); +#else + float scale = input.param.y; +#endif + + // Signed distance + float c = tex2D(_MainTex, input.uv_MainTex).a; + float sd = (.5 - c - input.param.x) * scale + .5; + float outline = _OutlineWidth*_ScaleRatioA * scale; + float softness = _OutlineSoftness*_ScaleRatioA * scale; + + // Color & Alpha + float4 faceColor = _FaceColor; + float4 outlineColor = _OutlineColor; + faceColor *= input.color; + outlineColor.a *= input.color.a; + faceColor *= tex2D(_FaceTex, float2(input.uv2_FaceTex.x + _FaceUVSpeedX * _Time.y, input.uv2_FaceTex.y + _FaceUVSpeedY * _Time.y)); + outlineColor *= tex2D(_OutlineTex, float2(input.uv2_OutlineTex.x + _OutlineUVSpeedX * _Time.y, input.uv2_OutlineTex.y + _OutlineUVSpeedY * _Time.y)); + faceColor = GetColor(sd, faceColor, outlineColor, outline, softness); + faceColor.rgb /= max(faceColor.a, 0.0001); + +#if BEVEL_ON + float3 delta = float3(1.0 / _TextureWidth, 1.0 / _TextureHeight, 0.0); + + float4 smp4x = {tex2D(_MainTex, input.uv_MainTex - delta.xz).a, + tex2D(_MainTex, input.uv_MainTex + delta.xz).a, + tex2D(_MainTex, input.uv_MainTex - delta.zy).a, + tex2D(_MainTex, input.uv_MainTex + delta.zy).a }; + + // Face Normal + float3 n = GetSurfaceNormal(smp4x, input.param.x); + + // Bumpmap + float3 bump = UnpackNormal(tex2D(_BumpMap, input.uv2_FaceTex.xy)).xyz; + bump *= lerp(_BumpFace, _BumpOutline, saturate(sd + outline * 0.5)); + bump = lerp(float3(0, 0, 1), bump, faceColor.a); + n = normalize(n - bump); + + // Cubemap reflection + fixed4 reflcol = texCUBE(_Cube, reflect(input.viewDirEnv, mul((float3x3)unity_ObjectToWorld, n))); + float3 emission = reflcol.rgb * lerp(_ReflectFaceColor.rgb, _ReflectOutlineColor.rgb, saturate(sd + outline * 0.5)) * faceColor.a; +#else + float3 n = float3(0, 0, -1); + float3 emission = float3(0, 0, 0); +#endif + +#if GLOW_ON + float4 glowColor = GetGlowColor(sd, scale); + glowColor.a *= input.color.a; + emission += glowColor.rgb*glowColor.a; + faceColor = BlendARGB(glowColor, faceColor); + faceColor.rgb /= max(faceColor.a, 0.0001); +#endif + + // Set Standard output structure + o.Albedo = faceColor.rgb; + o.Normal = -n; + o.Emission = emission; + o.Specular = lerp(_FaceShininess, _OutlineShininess, saturate(sd + outline * 0.5)); + o.Gloss = 1; + o.Alpha = faceColor.a; +} diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc.meta new file mode 100644 index 0000000..41ef4b1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d930090c0cd643c7b55f19a38538c162 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites.meta new file mode 100644 index 0000000..8b699e5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d0603b6d5186471b96c778c3949c7ce2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt new file mode 100644 index 0000000..384180a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt @@ -0,0 +1,3 @@ +This sample of beautiful emojis are provided by EmojiOne https://www.emojione.com/ + +Please visit their website to view the complete set of their emojis and review their licensing terms. \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta new file mode 100644 index 0000000..0d30e65 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 381dcb09d5029d14897e55f98031fca5 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites/EmojiOne.json b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites/EmojiOne.json new file mode 100644 index 0000000..6c4e50b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites/EmojiOne.json @@ -0,0 +1,156 @@ +{"frames": [ + +{ + "filename": "1f60a.png", + "frame": {"x":0,"y":0,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f60b.png", + "frame": {"x":128,"y":0,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f60d.png", + "frame": {"x":256,"y":0,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f60e.png", + "frame": {"x":384,"y":0,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f600.png", + "frame": {"x":0,"y":128,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f601.png", + "frame": {"x":128,"y":128,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f602.png", + "frame": {"x":256,"y":128,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f603.png", + "frame": {"x":384,"y":128,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f604.png", + "frame": {"x":0,"y":256,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f605.png", + "frame": {"x":128,"y":256,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f606.png", + "frame": {"x":256,"y":256,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f609.png", + "frame": {"x":384,"y":256,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f618.png", + "frame": {"x":0,"y":384,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f923.png", + "frame": {"x":128,"y":384,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "263a.png", + "frame": {"x":256,"y":384,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "2639.png", + "frame": {"x":384,"y":384,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}], +"meta": { + "app": "http://www.codeandweb.com/texturepacker", + "version": "1.0", + "image": "EmojiOne.png", + "format": "RGBA8888", + "size": {"w":512,"h":512}, + "scale": "1", + "smartupdate": "$TexturePacker:SmartUpdate:196a26a2e149d875b91ffc8fa3581e76:fc928c7e275404b7e0649307410475cb:424723c3774975ddb2053fd5c4b85f6e$" +} +} diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites/EmojiOne.json.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites/EmojiOne.json.meta new file mode 100644 index 0000000..762cf15 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites/EmojiOne.json.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8f05276190cf498a8153f6cbe761d4e6 +timeCreated: 1480316860 +licenseType: Pro +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites/EmojiOne.png b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites/EmojiOne.png new file mode 100644 index 0000000..c0de66d Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites/EmojiOne.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites/EmojiOne.png.meta b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites/EmojiOne.png.meta new file mode 100644 index 0000000..c9fa1a7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/TextMesh Pro/Sprites/EmojiOne.png.meta @@ -0,0 +1,431 @@ +fileFormatVersion: 2 +guid: dffef66376be4fa480fb02b19edbe903 +TextureImporter: + fileIDToRecycleName: + 21300000: EmojiOne_0 + 21300002: EmojiOne_1 + 21300004: EmojiOne_2 + 21300006: EmojiOne_3 + 21300008: EmojiOne_4 + 21300010: EmojiOne_6 + 21300012: EmojiOne_7 + 21300014: EmojiOne_8 + 21300016: EmojiOne_9 + 21300018: EmojiOne_10 + 21300020: EmojiOne_11 + 21300022: EmojiOne_12 + 21300024: EmojiOne_13 + 21300026: EmojiOne_5 + 21300028: EmojiOne_14 + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: iPhone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Android + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: EmojiOne_0 + rect: + serializedVersion: 2 + x: 0 + y: 384 + width: 128 + height: 128 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 4bcc36da2108f2c4ba3de5c921d25c3c + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: EmojiOne_1 + rect: + serializedVersion: 2 + x: 128 + y: 384 + width: 128 + height: 128 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: e9eea8093eaeaee4d901c4553f572c22 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: EmojiOne_2 + rect: + serializedVersion: 2 + x: 256 + y: 384 + width: 128 + height: 128 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 49451da35411dcc42a3692e39b0fde70 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: EmojiOne_3 + rect: + serializedVersion: 2 + x: 384 + y: 384 + width: 128 + height: 128 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: f65709664b924904790c850a50ca82bc + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: EmojiOne_4 + rect: + serializedVersion: 2 + x: 0 + y: 256 + width: 128 + height: 128 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 5b92c568a5ec9ad4b9ed90e271f1c9a8 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: EmojiOne_6 + rect: + serializedVersion: 2 + x: 256 + y: 256 + width: 128 + height: 128 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: b10f2b48b7281594bb8a24a6511a35af + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: EmojiOne_7 + rect: + serializedVersion: 2 + x: 384 + y: 256 + width: 128 + height: 128 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 10a600f9329dc2246a897e89f4d283cd + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: EmojiOne_8 + rect: + serializedVersion: 2 + x: 0 + y: 128 + width: 128 + height: 128 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 66cffa363b90ab14787d8a5b90cf4502 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: EmojiOne_9 + rect: + serializedVersion: 2 + x: 128 + y: 128 + width: 128 + height: 128 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 55cf3d409c9b89349b1e1bdc1cc224ad + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: EmojiOne_10 + rect: + serializedVersion: 2 + x: 256 + y: 128 + width: 128 + height: 128 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 2a9e58eaf96feef42bcefa1cf257193f + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: EmojiOne_11 + rect: + serializedVersion: 2 + x: 384 + y: 128 + width: 128 + height: 128 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 2489120affc155840ae6a7be2e93ce19 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: EmojiOne_12 + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 128 + height: 128 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 412349a150598d14da4d7140df5c0286 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: EmojiOne_13 + rect: + serializedVersion: 2 + x: 128 + y: 0 + width: 128 + height: 128 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: a937464b42bb3634782dea34c6becb6c + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: EmojiOne_5 + rect: + serializedVersion: 2 + x: 256 + y: 0 + width: 128 + height: 128 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: b0f933b217682124dbfc5e6b89abe3d0 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: EmojiOne_14 + rect: + serializedVersion: 2 + x: 128 + y: 256 + width: 128 + height: 128 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: f7235c763afe4434e8bb666750a41096 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 3e32d8f5477abfc43b19066e8ad5032e + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts.meta b/Aimbot-PPO-MultiScene/Assets/XCharts.meta new file mode 100644 index 0000000..5455863 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 27636d97cef7446ffba2e3036a207851 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/CHANGELOG.md b/Aimbot-PPO-MultiScene/Assets/XCharts/CHANGELOG.md new file mode 100644 index 0000000..4975545 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/CHANGELOG.md @@ -0,0 +1,705 @@ + +# 更新日志 + +[master](#master) +[v3.0.1](#v3.0.1) +[v3.0.0](#v3.0.0) +[v3.0.0-preivew9](#v3.0.0-preivew9) +[v3.0.0-preivew8](#v3.0.0-preivew8) +[v3.0.0-preivew7](#v3.0.0-preivew7) +[v3.0.0-preivew6](#v3.0.0-preivew6) +[v3.0.0-preivew5](#v3.0.0-preivew5) +[v3.0.0-preivew4](#v3.0.0-preivew4) +[v3.0.0-preivew3](#v3.0.0-preivew3) +[v3.0.0-preivew2](#v3.0.0-preivew2) +[v3.0.0-preivew1](#v3.0.0-preivew1) +[v2.7.0](#v2.7.0) +[v2.6.0](#v2.6.0) +[v2.5.0](#v2.5.0) +[v2.4.0](#v2.4.0) +[v2.3.0](#v2.3.0) +[v2.2.3](#v2.2.3) +[v2.2.2](#v2.2.2) +[v2.2.1](#v2.2.1) +[v2.2.0](#v2.2.0) +[v2.1.1](#v2.1.1) +[v2.1.0](#v2.1.0) +[v2.0.1](#v2.0.1) +[v2.0.0](#v2.0.0) +[v2.0.0-preview.2](#v2.0.0-preview.2) +[v2.0.0-preview.1](#v2.0.0-preview.1) +[v1.6.3](#v1.6.3) +[v1.6.1](#v1.6.1) +[v1.6.0](#v1.6.0) +[v1.5.2](#v1.5.2) +[v1.5.1](#v1.5.1) +[v1.5.0](#v1.5.0) +[v1.4.0](#v1.4.0) +[v1.3.1](#v1.3.1) +[v1.3.0](#v1.3.0) +[v1.2.0](#v1.2.0) +[v1.1.0](#v1.1.0) +[v1.0.5](#v1.0.5) +[v1.0.4](#v1.0.4) +[v1.0.3](#v1.0.3) +[v1.0.2](#v1.0.2) +[v1.0.1](#v1.0.1) +[v1.0.0](#v1.0.0) +[v0.8.3](#v0.8.3) +[v0.8.2](#v0.8.2) +[v0.8.1](#v0.8.1) +[v0.8.0](#v0.8.0) +[v0.5.0](#v0.5.0) +[v0.1.0](#v0.1.0) + +## master + +## v3.0.1 + +* (2022.06.16) 发布`v3.0.1`版本 +* (2022.06.16) 修复`Inspector`上部分`foldout`箭头点击无法展开的问题 +* (2022.06.16) 修复`Inspector`上部分`foldout`箭头点击无法展开的问题 +* (2022.06.15) 优化`Doc`自动生成,完善代码注释和配置项手册文档 +* (2022.06.14) 优化`SerieLabelStyle`,支持动态调整`Icon` +* (2022.06.13) 优化`Background`背景设置 +* (2022.06.10) 增加`Legend`的`AxisLabel`支持`autoColor` +* (2022.06.08) 修复`Axis`的`AxisLabel`在设置不显示时还显示首尾两个`label`的问题 + +## v3.0.0 + +* 更健壮的底层框架。 +* 更强大的性能。 +* 更小的序列化文件。 +* 更好的交互体验。 +* 更多的组件支持。 +* 更强大的文本自述能力。 +* 更合理的组件调整。 +* 更灵活的组件插拔。 +* 更高效的二次开发。 +* 更丰富的Demo示例。 +* 增加`Time`时间轴。 +* 增加`SingleAxis`单轴。 +* 增加`Comment`文本组件。 +* 增加`Widgets`小组件。 +* 增加多种坐标系:`Grid`、`Polar`、`Radar`、`SingleAxis`。 +* 增加多种动画方式。 +* 增加多种图表交互。 +* 增加国际化支持。 +* 增加多种扩展图表。 + +## v3.0.0-preivew9 + +* (2022.05.06) 发布`v3.0.0-preivew9`版本 +* (2022.05.05) 优化`ItemStyle`设置`color`时的一致性 +* (2022.05.05) 增加`Line`对`Dash`,`Dot`等的支持 (#197) +* (2022.05.04) 增加`Legend`的委托回调 +* (2022.05.04) 优化`Symbol`和`Label` +* (2022.05.01) 增加`Bar`对`clip`的支持 (#196) +* (2022.05.01) 修复`RingChart`的`Label`不刷新的问题 (#195) +* (2022.04.29) 增加`Tooltip`支持自定义背景图 +* (2022.04.27) 修复`ItemStyle`代码修改`color`不刷新的问题 + +## v3.0.0-preivew8 + +* (2022.04.26) 发布`v3.0.0-preivew8`版本 +* (2022.04.23) 移除`Serie`的`IconStyle`组件 +* (2022.04.23) 强化`LabelStyle`,所有组件的`TextStyle`都升级为`LabelStyle` +* (2022.04.19) 增加`Label`的`rotate`支持设置旋转 +* (2022.04.17) 修复`Bar`在数值为负数时动画无效的问题 +* (2022.04.17) 增加`ItemStyle`的`BorderGap`支持设置边框间距 +* (2022.04.16) 优化`Bar`的`Border`和`Capsule`胶囊柱图 +* (2022.04.15) 增加`Liquid`对`Round Rect`圆角矩形水位图的支持 +* (2022.04.14) 增加`Line`对`EndLabel`的支持 +* (2022.04.13) 增加`VisualMap`的`workOnLine`和`workOnArea`支持折线和区域映射功能 (#191) +* (2022.04.12) 优化`Radar`支持`Area`区域触发`Tooltip` +* (2022.04.09) 优化`VisualMap` +* (2022.04.09) 优化`Tooltip` + +## v3.0.0-preivew7 + +* (2022.04.07) 发布`v3.0.0-preivew7`版本 +* (2022.04.07) 修复`Pie`颜色不刷新的问题 +* (2022.03.31) 修复`Add Main Component`添加组件异常的问题 +* (2022.03.30) 修复`Axis`无法自定义`Label`颜色的问题 + +## v3.0.0-preivew6 + +* (2022.03.30) 发布`v3.0.0-preivew6`版本 + +## v3.0.0-preivew5 + +* (2022.03.26) 发布`v3.0.0-preivew5`版本 + +## v3.0.0-preivew4 + +* (2022.03.21) 发布`v3.0.0-preivew4`版本 + +## v3.0.0-preivew3 + +* (2022.03.09) 发布`v3.0.0-preivew3`版本 + +## v3.0.0-preivew2 + +* (2022.01.08) 发布`v3.0.0-preivew2`版本 + +## v3.0.0-preivew1 + +* (2022.01.07) 发布`v3.0.0-preivew1`版本 + +## v2.7.0 + +* (2022.03.20) 发布`v2.7.0`版本 +* (2022.02.21) 修复`Chart`的`chartName`重复检测问题 #183 +* (2022.02.17) 修复`Axis`的`SplitLine`可能会显示在坐标系外的问题 #181 +* (2022.02.08) 修复数据全0时`{d}`显示不正确的问题 +* (2022.02.08) 修复`YAxis`的`AxisLabel`的`onZero`参数不生效的问题 +* (2022.01.06) 优化`Zebra`斑马柱图 + +## v2.6.0 + +* (2021.12.30) 发布`v2.6.0`版本 +* (2021.12.21) 修复`Emphasis`不生效的问题 +* (2021.12.17) 修复`MarkLine`在运行时`Label`不自动刷新显示隐藏的问题 #178 +* (2021.12.10) 完善`Radar`的`AxisLine`和`SplitLine`可单独控制 +* (2021.12.08) 修复`Serie`隐藏后`Y`轴最大值不刷新的问题 +* (2021.12.04) 增加`Symbol`新类型:`EmptyRect`,`EmptyTriangle`,`EmptyDiamond` +* (2021.12.04) 增加`Symbol`的`Empty`区域颜色可通过`ItemStyle`的`backgroundColor`设置的支持 +* (2021.12.03) 修复`Formatter`的`{c}`通配符不生效的问题 #175 +* (2021.12.03) 修复`Axis`的`boundaryGap`某些情况下显示的问题 #174 +* (2021.11.30) 修复`Serie`的`ignore`某些情况下绘制异常的问题 #173 + +## v2.5.0 + +* (2021.11.27) 发布`v2.5.0`版本 +* (2021.11.27) 增加`Tooltip`的`positionFunction`的坐标设置委托函数 +* (2021.10.29) 移除`XCharts`首次导入时`TextMeshPro`的相关设置 +* (2021.10.29) 增加`Tooltip`对通配符`{e}`的支持 #170 +* (2021.09.08) 完善`RadarChart` +* (2021.09.07) 修复`PieChart`渐出动画结束时`label`没有消失的问题 #168 +* (2021.09.06) 修复`GaugeChart`用代码改变`splitNumber`不会刷新`label`的问题 #167 + +## v2.4.0 + +### 版本要点 + +* 折线图支持忽略数据的连线是断开还是连接 +* 折线图支持轨迹匀速动画 +* 其他优化和问题修复 + +### 日志详情 + +* (2021.08.31) 发布`v2.4.0`版本 +* (2021.08.31) 优化`RingChart`的渐变效果 +* (2021.08.31) 修复`DataZoom`拖动时`SerieLabel`不刷新的问题 (#165) +* (2021.08.25) 修复`Theme`主题切换无法保持到场景上的问题 (#166) +* (2021.08.24) 增加`Animation`的`alongWithLinePath`参数设置折线轨迹匀速动画 +* (2021.08.22) 增加`Serie`的`ignoreLineBreak`参数设置忽略数据连线是否断开 (#164) +* (2021.08.22) 修复`Axis`在`DataZoom`开启时`Label`可能不更新的问题 (#164) +* (2021.08.15) 优化`Axis`的`AxisLabel`文本旋转设置,避免在DataZoom开启时偏移不一致 (#163) +* (2021.08.14) 增加`Legend`的`textAutoColor`设置文本颜色和`Serie`一致 (#163) +* (2021.08.12) 优化`BarChart`设置`Corner`时正负柱条圆角对称 +* (2021.08.03) 优化`Serie`的数据全为0时Y轴不显示的问题 +* (2021.07.29) 修复`Serie`开启`ignore`时被忽略的数据还会参与计算的问题 (#161) +* (2021.07.29) 完善`BarChart`的`Zebra`斑马柱图渐变支持 +* (2021.07.26) 修复`TextMeshPro Enable`时找不到`XCharts`路径的问题 (#160) + +## v2.3.0 + +### 版本要点 + +* 数据存储由`float`升级为`double` +* 新增`MarkLine`标线 +* `Serie`下可用`IconStyle`统一配置图标 +* `Label`支持用代码自定义显示样式 +* `DataZoom`完善 +* `PieChart`优化 +* 问题修复 + +### 升级注意 + +由于数据类型升级为了`double`,`float`隐式转`double`可能有精度问题,所以建议之前为`float`的数据类型都手动改为`double`类型。 + +### 日志详情 + +* (2021.07.24) 发布`v2.3.0`版本 +* (2021.07.22) 完善`SerieSymbol`以支持象形柱图`PictorialBarChart`扩展 +* (2021.07.19) 修复`WdbGL`平台上`Tooltip`不显示的问题 +* (2021.07.18) 增加`Serie`的`iconStyle`统一配置图标 +* (2021.07.15) 增加`MarkLine`标线 (#142) +* (2021.07.09) 优化`BarChart`可通过`serieData.show`设置是否显示柱条 +* (2021.07.08) 优化`data`数据存储类型由`float`全部转为`double` +* (2021.07.05) 修复`PieChart`的`avoidLabelOverlap`参数不生效的问题 +* (2021.07.04) 修复`PieChart`选中扇区后鼠标区域指示不准确的问题 +* (2021.07.04) 优化`PieChart`的`Label`为`Inside`时可通过参数`Margin`调节偏移 +* (2021.07.01) 增加`DataZoom`的`supportInsideScroll`和`supportInsideDrag`参数设置坐标系内是否支持滚动和拖拽 +* (2021.06.27) 增加`AxisLabel`的`showStartLabel`和`showEndLabel`参数设置首尾的`Label`是否显示 +* (2021.06.27) 增加`AxisLabel`和`SerieLabel`的`formatter`委托方法 (#145) +* (2021.06.27) 增加`DataZoom`的`orient`参数设置水平或垂直样式 +* (2021.06.21) 增加`IconStyle`的`autoHideWhenLabelEmpty`参数设置当`label`为空时是否自动隐藏图标 + +## v2.2.3 + +* (2021.06.20) 发布`v2.2.3`版本 +* (2021.06.20) 修复`Axis`的`Icon`默认显示出来的问题 + +## v2.2.2 + +* (2021.06.18) 发布`v2.2.2`版本 +* (2021.06.18) 优化`Axis`的`Label`为空时自动隐藏`Icon` +* (2021.06.17) 修复`maxCache`设置时实际数据个数多一个的问题 +* (2021.06.17) 修复`TextMeshPro`的开启和关闭不及时刷新的问题 +* (2021.06.17) 修复`XCharts`导入时总是弹出`XCharts Importer`的问题 + +## v2.2.1 + +* (2021.06.13) 发布`v2.2.1`版本 +* (2021.06.13) 完善对多屏幕的支持 +* (2021.06.12) 增加`IconStyle`的`align`参数设置图标的水平对齐 +* (2021.06.12) 完善`Theme`主题导入 (#148) +* (2021.06.10) 修复`Unity`版本兼容问题 (#154) +* (2021.06.05) 完善`CandlestickChart`对`inverse`的支持 (#152) +* (2021.06.04) 修复`Gauge`在最小值为负数时指针指示位置异常的问题 (#153) + +## v2.2.0 + +* (2021.05.30) 发布`v2.2.0`版本 +* (2021.05.25) 完善`TextStyle`的`alignment`的支持 (#150) +* (2021.05.24) 修复`PieChart`数据全为`0`时`Label`无法正常显示的问题 +* (2021.05.24) 修复`Add Serie`面板上`Serie Name`不生效的问题 (#149) +* (2021.05.23) 增加`TextStyle`的`autoWrap`设置是否自动换行 +* (2021.05.23) 增加`TextStyle`的`autoAlign`设置是否让系统自动设置对齐方式 +* (2021.05.23) 增加`AxisLabel`的`width`和`height`支持自定义文本的长宽 +* (2021.05.23) 增加`Axis`的`iconStyle`和`icons`支持设置坐标轴标签显示图标 +* (2021.05.20) 增加`Serie`和`Axis`的`insertDataToHead`参数控制数据插入头部还是尾部 +* (2021.05.18) 优化`Editor`下的图表创建 #147 +* (2021.05.16) 抽离`GanttChart`甘特图,通过扩展模块的方式来提供 +* (2021.05.11) 增加`VisualMap`对`Piecewise`分段设置颜色的支持 +* (2021.05.09) 修复`RingChart`无法设置环形的背景色的问题 #141 +* (2021.05.08) 增加`LiquidChart`的方形水位图支持 +* (2021.05.07) 优化`Axis`的刻度表现 #135 +* (2021.05.01) 增加`Settings`中关于关于材质球设置的参数 #140 +* (2021.05.01) 修复无法正确表示部分超大或超小数值的问题 +* (2021.04.29) 修复`Radar`切换到`Circle`异常的问题 #139 +* (2021.04.29) 增加`Settings`的`reversePainter`可设置`Serie`的绘制是否逆序 +* (2021.04.28) 增加`SerieData`的`ignore`可忽略当前数据项 +* (2021.04.28) 修复`DataZoom`下`AxisLabel`显示不准确的问题 #138 +* (2021.04.26) 修复运行时动态创建图表会异常的问题 #137 +* (2021.04.26) 增加`BarChart`绘制渐变边框的支持 +* (2021.04.23) 增加自定义图表支持 +* (2021.04.22) 修复`Gauge`的`AxisLabel`和文字颜色无法调整的问题 +* (2021.04.13) 增加`AxisTick`的`ShowStartTick`和`ShowEndTick`参数控制第一个和最后一个刻度是否显示 +* (2021.04.13) 完善多坐标轴的支持 #132 + +## v2.1.1 + +* (2021.04.13) 整理代码,清除`Warning` +* (2021.04.13) 修复`Unity`版本兼容问题 +* (2021.04.12) 修复`Theme`重构后引起的`missing class attribute 'ExtensionOfNativeClass'`的问题 #131 + +## v2.1.0 + +* (2021.04.07) 发布`v2.1.0`版本 +* (2021.03.31) 优化和重构`Theme`,解决引用相同或丢失的问题 #118 +* (2021.03.30) 优化`Tooltip`支持设置不同的类目轴数据 #129 +* (2021.03.29) 优化自定义绘制回调接口,增加`onCustomDrawBeforeSerie`、`onCustomDrawAfterSerie`和`onCustomDrawTop` +* (2021.03.25) 增加`GanttChart`甘特图 +* (2021.03.22) 增加`Theme`的`Unbind`按钮用于解绑复制图表时的主题 #118 +* (2021.03.18) 修复`Inspector`下`Foldout`后的勾选框无法选中的问题 +* (2021.03.18) 修复`BarChart`在`0`数值时显示异常的问题 +* (2021.03.14) 修复`Tooltip`的指示器在某些情况下指示位置不准的问题 +* (2021.03.13) 优化`MultiComponentMode`开启后的编辑体验和组件刷新 #128 +* (2021.03.10) 增加`CandlestickChart`K线图 #124 +* (2021.03.06) 增加`PieChart`的`minAngle`参数支持设置最小扇区角度 #117 +* (2021.03.05) 增加`Legend`几种内置图标的支持 #90 +* (2021.03.02) 增加`DataZoom`对数值轴的支持 #71 +* (2021.03.02) 优化`TextMeshPro`兼容问题 #125 +* (2021.03.01) 修复隐藏和显示图表时部分已隐藏的节点显示异常的问题 #125 + +## v2.0.1 + +* (2021.02.26) 修复`HeatmapChart`的`Tooltip`指示的位置不准的问题 #123 +* (2021.02.22) 修复`Unity`版本兼容问题 +* (2021.02.21) 增加`Tooltip`的`ignoreDataShow`参数 +* (2021.02.19) 修复图表在`LayoutGroup`控制下时可能显示错乱的问题 #121 +* (2021.02.18) 修复`Radar`参数变更后无法自刷新的问题 #122 + +## v2.0.0 + +* (2021.02.05) 发布`v2.0.0`版本 +* (2021.02.03) 修复`AxisLine`的`OnZero`对`YAxis`不生效的问题 #116 +* (2021.01.29) 修复`Category`轴在`BoundaryGap`和`AlignWithLabel`为`True`时`Tick`显示效果不对的问题 #115 +* (2021.01.25) 优化一些细节 +* (2021.01.22) 修复`Inpsector`上部分属性显示异常的问题 + +## v2.0.0-preview.2 + +* (2021.01.21) 发布`v2.0.0-preview.2`版本 +* (2021.01.21) 修复`Inpsector`上展开`AxisTick`时报错问题 +* (2021.01.21) 修复打包兼容报错问题 +* (2021.01.19) 增加`XChartsSettings`的`editorShowAllListData`参数配置是否在`Inspector`中显示列表的所有数据 + +## v2.0.0-preview.1 + +* (2021.01.19) 发布`v2.0.0-preview.1`版本 + +## v1.6.3 + +* (2021.01.02) 发布`v1.6.3`版本 +* (2020.12.18) 修复`Animation`不启用时更新数据会导致图表一直刷新的问题 +* (2020.12.01) 修复`Unity2020`上新创建的图表无法正常绘制的问题 +* (2020.11.22) 发布`v1.6.2`版本 +* (2020.11.22) 修复`LineChart`在数据过于密集时折线绘制异常的问题 #99 +* (2020.11.21) 修复`LineChart`的刻度位置在`alignWithLabel`为`true`时可能异常的问题 +* (2020.11.21) 修复`Unity5`兼容报错的问题 +* (2020.11.13) 完善`RadarChart`的`Indicator`对`\n`换行的支持 +* (2020.11.12) 修复`LineChart`当类型为`Smooth`时数据过密情况下报错的问题 #100 +* (2020.10.22) 完善`HeatmapChart`中`VisualMap`对`Piecewise`的支持 +* (2020.09.22) 修复`PieChart`边框大小不一致的问题 + +## v1.6.1 + +* (2020.09.19) 发布`v1.6.1`版本 +* (2020.09.19) 增加`Remove All Chart Object`移除图表下的所有子节点(会自动重新初始化) +* (2020.09.18) 修复`SerieLabel`在点击图例隐藏`Serie`后还显示的问题#94 +* (2020.09.18) 优化`Axis`的类目轴刻度和文本显示#93 +* (2020.09.17) 修复`Package`导入时缺失`meta`文件导致失败的问题#92 +* (2020.09.08) 优化`Legend`的颜色可自动匹配`ItemStyle`的自定义颜色#89 +* (2020.09.05) 优化`LineChart`在不使用`XAxis1`时也能显示`XAxis1` +* (2020.08.29) 增加`LineStyle`的`toColor`和`toColor2`设置`LineChart`的水平渐变,取消通过`ItemStyle`设置`LineChart`的水平渐变 +* (2020.08.29) 增加`PieChart`的`onPointerClickPie`点击扇形图扇区回调 +* (2020.08.29) 增加`BarChart`的`onPointerClickBar`点击柱形图柱条回调 + +## v1.6.0 + +* (2020.08.24) 发布`v1.6.0`版本 +* (2020.08.23) 重构代码,将与绘制相关的`Color`改为`Color32`,减少隐式转换(更新后会导致自定义的颜色丢失,可参考[问答29](https://github.com/XCharts-Team/XCharts/blob/master/Assets/XCharts/Documentation/XChartsFAQ-ZH.md)进行升级) +* (2020.08.15) 优化`PieChart`绘制表现效果#85 +* (2020.08.11) 增加`LiquidChart`数据变更动画#83 +* (2020.08.11) 优化`PieChart`文本堆叠和引线效果#85 +* (2020.08.08) 优化`LineChart`密集数据的绘制表现效果 +* (2020.07.30) 增加`LineChart`可通过`VisualMap`或`ItemStyle`配置渐变#78 +* (2020.07.25) 修复`LineChart`渐出动画绘制异常的问题#79 +* (2020.07.25) 修复`LiquidChart`在`100%`时渐变色会失效的问题#80 +* (2020.07.25) 增加`RadarChart`对`Tooltip`的`formatter`支持#77 +* (2020.07.23) 增加`RingChart`环形渐变支持#75 +* (2020.07.21) 增加`AxisLabel`和`SerieLabel`的`formatter`可单独配置数值格式化#68 +* (2020.07.17) 增加`SerieAnimation`动画完成回调接口 +* (2020.07.17) 优化`Chart`放在`ScrollView`下时不影响`ScrollView`的滚动和拖动 +* (2020.07.16) 修复`Tooltip`在上层有遮挡还会显示的问题#74 +* (2020.07.08) 优化`Scatter`类型`Serie`支持`Log`轴#70 +* (2020.07.07) 修复`SerieLabel`位置错乱的问题 +* (2020.07.07) 增加`Tooltip`的`offset`参数配置偏移 +* (2020.07.06) 增加`LiquidChart`水位图 +* (2020.07.01) 增加`PolarChart`极坐标图表 + +## v1.5.2 + +* (2020.06.25) 发布`v1.5.2`版本 +* (2020.06.25) 修复`BarChart`在数值为`0`时还会绘制一小部分柱条的问题 +* (2020.06.24) 修复`PieChart`在设置`clockwise`后绘制异常的问题#65 +* (2020.06.23) 优化`LineChart`在峰谷差异过大时的绘制效果#64 +* (2020.06.18) 修复`SerieLabel`在重新添加数据时可能不显示的问题 +* (2020.06.17) 增加`SerieData`可单独设置`SerieSymbol`#66 +* (2020.06.17) 修复`Check For Update`在`Unity 2018`部分版本报错的问题#63 +* (2020.06.16) 增加`Serie`的`avoidLabelOverlap`参数避免饼图标签堆叠的情况#56 +* (2020.06.15) 修复`SerieLabel`单独控制显示时可能错乱的问题 +* (2020.06.11) 修复`Check warning`不生效的问题 +* (2020.06.11) 修复`PieChart`和`RingChart`在数据占比很小时不显示的问题 +* (2020.06.11) 增加`Tooltip`的`titleFormatter`支持配置占位符`{i}`表示忽略不显示标题 +* (2020.06.07) 增加`Animation`的`customFadeInDelay`等自定义数据项延时和时长回调函数#58 +* (2020.06.07) 优化`PieChart`在数据全为`0`时的显示为等份的效果#59 +* (2020.06.04) 增加`SerieLabel`的`autoOffset`参数设置是否自动判断上下偏移 +* (2020.06.04) 增加`Tooltip`的`alwayShow`参数设置触发后一直显示 +* (2020.06.04) 优化`Tooltip`的`formatter`支持`{.1}`通配符 +* (2020.06.04) 优化`Legend`数量过多时自动换行显示#53 + +## v1.5.1 + +* (2020.06.03) 发布`v1.5.1`版本 +* (2020.06.02) 增加`Radar`的`ceilRate`,设置最大最小值的取整倍率 +* (2020.06.02) 优化`Tooltip`的`formatter`,支持`{c1:1-1:f1}`格式配置 +* (2020.05.31) 优化`Background`组件的生效条件,需要有单独的父节点(升级前需要自己处理旧的背景节点) +* (2020.05.30) 优化`PieChart`支持设置`ignoreValue`不显示指定数据 +* (2020.05.30) 修复`RadarChart`为`Circle`时不绘制`SplitArea`的问题 +* (2020.05.30) 优化`RadarChart`在设置`max`为`0`时可自动刷新最大值 +* (2020.05.29) 修复`PieChart`设置`gap`时只有一个数据时绘制异常的问题 +* (2020.05.27) 修复调用`UpdateDataName()`接口时不会自动刷新的问题 +* (2020.05.27) 优化`柱状图`的渐变色效果 +* (2020.05.24) 修复`Axis`同时设置`boundaryGap`和`alignWithLabel`时`Tick`绘制异常的问题 +* (2020.05.24) 优化版本更新检测 + +## v1.5.0 + +* (2020.05.22) 发布`v1.5.0`版本 +* (2020.05.21) 增加`圆角柱图`支持渐变 +* (2020.05.21) 增加`Background`背景组件 +* (2020.05.19) 隐藏`Hierarchy`试图下自动生成的子节点 +* (2020.05.18) 增加`chartName`属性可指定图表的别称,可通过`XChartMgr.Instance.GetChart(chartName)`获取图表 +* (2020.05.16) 增加部分鼠标事件回调 +* (2020.05.15) 优化自带例子,`Demo`改名为`Example` +* (2020.05.13) 增加`Serie`的`large`和`largeThreshold`参数配置折线图和柱状图的性能模式 +* (2020.05.13) 完善Demo,增加性能演示Demo +* (2020.05.13) 优化性能,优化大数据绘制,重构代码 +* (2020.05.04) 增加`numericFormatter`参数可配置数值格式化显示,去掉`forceENotation`参数 +* (2020.04.28) 增加`自由锚点`支持,任意对齐方式 +* (2020.04.23) 优化`ScatterChart`的`Tooltip`显示效果 +* (2020.04.23) 增加`Tooltip`的`formatter`对`{.}`、`{c:0}`、`{c1:1}`的支持 +* (2020.04.19) 优化`LineChart`折线图的区域填充渐变效果 +* (2020.04.19) 增加`AxisLabel`的`onZero`参数可将`Label`显示在`0`刻度上 +* (2020.04.19) 增加`Serie`和`AxisLabel`的`showAsPositiveNumber`参数将负数数值显示为正数 +* (2020.04.18) 增加`Covert XY Axis`互换XY轴配置 +* (2020.04.17) 增加`Axis`可通过`inverse`参数设置坐标轴反转 +* (2020.04.16) 修复`Check warning`在`Unity2019.3`上的显示问题 +* (2020.04.16) 修复`PieChart`在设置`Space`参数后动画绘制异常的问题 + +## v1.4.0 + +* (2020.04.11) 发布`v1.4.0`版本 +* (2020.04.11) 增加`Check warning`检测功能 +* (2020.04.09) 修复`Legend`初始化异常的问题 +* (2020.04.08) 增加`PieChart`通过`ItemStyle`设置边框的支持 +* (2020.03.29) 增加`Axis`的`ceilRate`设置最大最小值的取整倍率 +* (2020.03.29) 增加`BarChart`可通过`itemStyle`的`cornerRadius`设置`圆角柱图` +* (2020.03.29) 增加`itemStyle`的`cornerRadius`支持圆角矩形 +* (2020.03.24) 优化`Editor`参数编辑,兼容`Unity2019.3`及以上版本 +* (2020.03.24) 增加`Serie`在`inspector`上可进行调整顺序、添加和删除操作 +* (2020.03.23) 修复`Title`的`textStyle`和`subTextStyle`无效的问题 +* (2020.03.22) 增加`BarChart`通过`barType`参数设置`胶囊柱状图` +* (2020.03.21) 增加`BarChart`和`HeatmapChart`可通过`ignore`参数设置忽略数据的支持 +* (2020.03.21) 增加`ItemStyle`的`tooltipFormatter`参数可单独配置`Serie`的`Tooltip`显示 +* (2020.03.20) 修复`X Axis 1`和`Y Axis 1`配置变更时不会自动刷新的问题 +* (2020.03.20) 增加`AxisTick`的`width`参数可单独设置坐标轴刻度的宽度 +* (2020.03.20) 增加`Serie`的`radarType`参数设置`多圈`和`单圈`雷达图 +* (2020.03.17) 增加`BarChart`可用`ItemStyle`的`backgroundColor`设置数据项背景颜色 +* (2020.03.17) 增加`SerieData`的`ItemStyle`和`Emphasis`可单独配置数据项样式的支持 +* (2020.03.15) 重构`EmptyCricle`类型的`Symbol`边宽取自`ItemStyle`的`borderWidth`参数 +* (2020.03.15) 重构`SerieSymbol`,去掉`color`和`opacity`参数,取自`ItemStyle` + +## v1.3.1 + +* (2020.03.14) 发布`v1.3.1`版本 +* (2020.03.14) 修复`LineChart`开启`ingore`时部分数据可能绘制异常的问题 +* (2020.03.13) 修复`LineChart`的`label`偏移显示异常的问题 + +## v1.3.0 + +* (2020.03.11) 发布`v1.3.0`版本 +* (2020.03.11) 优化`LineChart`的`label`偏移显示 +* (2020.03.11) 优化清空并重新添加数据后的自动刷新问题 +* (2020.03.10) 增加`LineChart`的普通折线图可通过`ignore`参数设置忽略数据的支持 +* (2020.03.09) 增加`BarChart`可通过`ItemStyle`配置边框的支持 +* (2020.03.08) 增加`RingChart`环形图 +* (2020.03.05) 调整`Serie`的`arcShaped`参数重命名为`roundCap` +* (2020.03.05) 增加运行时和非运行时参数变更自动刷新图表 +* (2020.02.26) 重构`Legend`图例,改变样式,增加自定义图标等设置 +* (2020.02.23) 增加`BaseChart.AnimationFadeOut()`渐出动画,重构动画系统 +* (2020.02.13) 增加`BaseChart.RefreshTooltip()`接口立即重新初始化`Tooltip`组件 +* (2020.02.13) 增加`Tooltip`的`textStyle`参数配置内容文本样式,去掉`fontSize`和`fontStyle`参数 +* (2020.02.13) 增加`TextStyle`的`lineSpacing`参数配置行间距 +* (2020.02.11) 增加`Radar`的`splitLine`参数配置分割线,去掉`lineStyle`参数 +* (2020.02.11) 增加`Tooltip`的`backgroundImage`参数配置背景图 +* (2020.02.11) 增加`Tooltip`的`paddingLeftRight`和`paddingTopBottom`参数配置文字和边框的间距 +* (2020.02.11) 增加`Tooltip`的`lineStyle`参数配置指示线样式 +* (2020.02.11) 增加`Axis`的`splitLine`参数控制分割线,去掉`showSplitLine`和`splitLineType`参数(更新时需要重新设置分割线相关设置) +* (2020.02.10) 增加`Serie`的`clip`参数控制是否超出坐标系外裁剪(只适用于折线图、柱状图、散点图) +* (2020.02.08) 增加`SerieSymbol`的`gap`参数控制图形标记的外留白距离 +* (2020.01.26) 增加`TextLimit`组件可以设置`AxisLabel`的文本自适应 +* (2020.01.20) 优化`Tooltip`设置`itemFormatter`时显示系列颜色 +* (2020.01.20) 增加`Radar`雷达图在`inspector`配置`areaStyle`的支持 + +## v1.2.0 + +* (2020.01.15) 发布`v1.2.0`版本 +* (2020.01.15) 增加`AxisLabel`格式化为整数的支持(`{value:f0}`) +* (2020.01.15) 增加折线图对数轴`Log`的支持 +* (2020.01.09) 修复当设置`DataZoom`的`minShowNum`时可能异常的问题 +* (2020.01.08) 修复当设置`AxisLine`的`onZero`时刻度显示异常的问题 +* (2020.01.08) 增加`Mask`遮罩遮挡支持 +* (2019.12.21) 增加`Tooltip`的单个数据项和标题的字符串模版格式器 +* (2019.12.21) 增加`DataZoom`的最小显示数据个数`minShowNum` +* (2019.12.20) 增加`Demo40_Radar.cs`雷达图代码操作`Demo` +* (2019.12.20) 添加`RadarChart`相关API接口 + +## v1.1.0 + +* (2019.12.17) 发布`v1.1.0`版本 +* (2019.12.16) 修复`Overlay`模式下不显示`Tooltip`的问题 +* (2019.12.15) 增加`Title`的`TextStyle`支持 +* (2019.12.11) 修复`Legend`都隐藏时`Value轴`还显示数值的问题 +* (2019.12.11) 修复`Series->Data->Size`重置为0后设置无效的问题 +* (2019.12.06) 修复数据过小时`AxisLabel`直接科学计数法显示的问题 +* (2019.12.04) 优化和完善数据更新`UpdateData`接口 +* (2019.12.03) 增加圆环饼图的圆角支持,参数:`serie.arcShaped` +* (2019.12.03) 增加数据更新动画,参数:`serie.animation.dataChangeEnable` +* (2019.11.30) 增加`GaugeChart`仪表盘 +* (2019.11.22) 修复`BarChart`清空数据重新赋值后`SerieLabel`显示异常的问题 +* (2019.11.16) 修复`SerieLabel`设置`color`等参数不生效的问题 + +## v1.0.5 + +* (2019.11.12) 发布`v1.0.5`版本 +* (2019.11.12) 修复`2018.3`以下版本打开项目报错的问题 +* (2019.11.12) 增加`IconStyle`子组件,优化`SerieData`的图标配置 +* (2019.11.11) 修复`Serie`的图标显示在上层遮挡`Label`的问题 +* (2019.11.11) 修复饼图当数据过小时视觉引导线会穿透的的问题 +* (2019.11.09) 修复饼图添加数据时`Label`异常的问题 +* (2019.11.09) 优化结构,分离为`XCharts`和`XChartsDemo`两部分 + +## v1.0.4 + +* (2019.11.05) 发布`v1.0.4`版本 +* (2019.11.05) 增加`Radar`雷达组件文本样式参数配置支持 +* (2019.11.04) 修复`Unity2018.3`以下版本代码不兼容的问题 +* (2019.11.04) 优化`SerieLabel`过多时引起的性能问题 + +## v1.0.3 + +* (2019.11.03) 发布`v1.0.3`版本 +* (2019.11.03) 增加`Editor`快捷添加图表:`Hierarchy`试图下右键`XCharts->LineChart` +* (2019.11.02) 优化非配置参数变量命名和访问权限,简化`API` + +## v1.0.2 + +* (2019.10.31) 发布`v1.0.2`版本 +* (2019.10.31) 修复`prefab`预设制作报错的问题 +* (2019.10.31) 增加访问主题组件API:`BaseChart.theme` + +## v1.0.1 + +* (2019.10.26) 发布`v1.0.1`版本 +* (2019.10.26) 修复版本检查功能在非运行时异常的问题 +* (2019.10.26) 增加科学计数法显示数值的支持(查阅`forceENotation`参数) +* (2019.10.26) 增加`Axis`类目轴数据为空时的默认显示支持 +* (2019.10.26) 增加`Axis`数值轴的最大最小值可设置为小数的支持,优化极小数图表的表现效果 + +## v1.0.0 + +* (2019.10.25) 发布`v1.0.0`版本 +* (2019.10.23) 增加版本检测功能:`Component -> XCharts -> Check For Update` +* (2019.10.22) 增加`Package Manager`安装的支持 +* (2019.10.20) 增加`Demo`首页`BarChart`的代码动态控制效果 +* (2019.10.18) 增加`Serie`的`barType`参数,可配置`斑马柱状图` +* (2019.10.18) 增加`Serie`的`barPercentStack`参数,可配置`百分比堆叠柱状图` +* (2019.10.16) 增加`Demo`首页`LineChart`的代码动态控制效果 +* (2019.10.15) 移除`Pie`组件,相关参数放到`Settings`中配置 +* (2019.10.15) 增加`Demo`首页,展示代码动态控制效果 +* (2019.10.14) 增加`RadarChart`、`ScatterChart`和`HeatmapChart`的起始动画效果 +* (2019.10.14) 增加`SerieData`的`radius`自定义数据项的半径 +* (2019.10.14) 增加`HeatmapChart`热力图 +* (2019.10.14) 增加`VisualMap`视觉映射组件 +* (2019.10.14) 增加`ItemStyle`数据项样式组件 +* (2019.10.14) 增加`Emphasis`高亮样式组件 +* (2019.10.10) 增加`Settings`全局参数配置组件,开放更多参数可配置 +* (2019.10.09) 增加`AreaStyle`的高亮相关参数配置鼠标悬浮时高亮之前区域 +* (2019.10.09) 优化`DataZoom`组件,增加双指缩放 +* (2019.10.05) 增加`SerieLabel`的`LineType`给饼图配置不同类型的视觉引导线 +* (2019.10.02) 增加`ScatterChart`同时对`Scatter`和`Line`的支持,实现折线图和散点图的组合图 +* (2019.10.01) 重构代码,废弃`Series.series`接口,用`Series.list`代替 +* (2019.10.01) 增加`customDrawCallback`自定义绘制回调 +* (2019.10.01) 增加`SmoothDash`平滑虚线的支持 +* (2019.09.30) 增加`Serie`采样类型`sampleType`的相关配置 +* (2019.09.29) 增加`SerieSymbol`关于显示间隔的相关配置 +* (2019.09.29) 重构代码: + * `BaseChart`的`sampleDist`删除,`Serie`增加`lineSampleDist` + * `BaseChart`的`minShowDataNumber`删除,`Serie`增加`minShow` + * `BaseChart`的`maxShowDataNumber`删除,`Serie`增加`maxShow` + * `BaseChart`的`maxCacheDataNumber`删除,`Serie`增加`maxCache` + * `BaseChart`的`AddSerie()`接口参数调整 + * `BaseChart`的`UpdateData()`接口参数调整 + * `Axis`增加`maxCache` +* (2019.09.28) 增加`LineChart`和`BarChart`同时对`Line`、`Bar`类型`Serie`的支持,实现折线图和柱状图的组合图 +* (2019.09.27) 增加`Axis`的`splitNumber`设置为`0`时表示绘制所有类目数据 +* (2019.09.27) 增加`SampleDist`采样距离的配置,对过密的曲线开启采样,优化绘制效率 +* (2019.09.27) 增加`XCharts问答`、`XChartsAPI接口`、`XCharts配置项手册`等文档 +* (2019.09.26) 增加`AnimationReset()`重置初始化动画接口 +* (2019.09.26) 优化`LineChart`的密集数据的曲线效果 +* (2019.09.25) 优化`SerieData`的自定义图标不与`SerieLabel`关联,可单独控制是否显示 +* (2019.09.24) 增加`SerieData`的自定义图标相关配置支持 +* (2019.09.23) 增加`Formatter`配置`Axis`的`AxisLabel`的格式化输出 +* (2019.09.23) 增加`Tooltip`的`FontSize`、`FontStyle`配置字体大小和样式 +* (2019.09.23) 增加`Formatter`配置`SerieLabel`、`Legend`、`Tooltip`的格式化输出 +* (2019.09.19) 增加`LineArrow`配置带箭头曲线 +* (2019.09.19) 增加`Tooltip`的`FixedWidth`、`FixedHeight`、`MinWidth`、`MinHeight`设置支持 +* (2019.09.18) 增加单条堆叠柱状图 +* (2019.09.18) 增加虚线`Dash`、点线`Dot`、点划线`DashDot`、双点划线`DashDotDot`等类型的折线图支持 +* (2019.09.17) 增加`AnimationEnabel()`启用或取消起始动画接口 +* (2019.09.17) 增加`Axis`的`Interval`强制设置坐标轴分割间隔 +* (2019.09.16) 去掉`Serie`中的旧版本数据兼容,不再支持`xData`和`yData` +* (2019.09.06) 增加`Animation`在重新初始化数据时自启动功能 +* (2019.09.06) 增加`SerieLabel`的`Border`边框相关配置支持 +* (2019.09.05) 增加`PieChart`的`Animation`初始化动画配置支持 +* (2019.09.03) 增加`BarChart`的`Animation`初始化动画配置支持 +* (2019.09.02) 增加`LineChart`的`Animation`初始化动画配置支持 +* (2019.08.22) 增加`AxisName`的`Offset`偏移配置支持 +* (2019.08.22) 增加`AxisLine`的`Width`配置支持 +* (2019.08.20) 增加`SerieLabel`的背景宽高、文字边距、文字旋转的配置 +* (2019.08.20) 增加`BarChart`的`Label`配置支持 +* (2019.08.15) 增加`LineChart`的`Label`配置 +* (2019.08.15) 重构`BarChart`,移除`Bar`组件,相关参数统一放到`Serie`中配置 +* (2019.08.15) 重构`LineChart`,移除`Line`组件,相关参数统一放到`Serie`中配置 + +## v0.8.3 + +* (2019.08.15) 发布`v0.8.3`版本 +* (2019.08.14) 修复`PieChart`的`Label`无法自动更新的问题 +* (2019.08.13) 修复`UpdateData`接口无法更新数据的问题 +* (2019.08.07) 增加`SerieSymbol`的`Color`、`Opacity`配置 + +## v0.8.2 + +* (2019.08.07) 发布`v0.8.2`版本 +* (2019.08.07) 修复区域平滑折线图显示异常的问题 +* (2019.08.06) 修复`serie`系列数超过调色盘颜色数时获取的颜色异常的问题 +* (2019.08.06) 修复当`Axis`的`minMaxType`为`Custom`时`max`设置为`100`不生效的问题 + +## v0.8.1 + +* (2019.08.04) 发布`v0.8.1`版本 +* (2019.08.04) 修复`Inspector`中修改数据不生效的问题 + +## v0.8.0 + +* (2019.08.04) 发布`v0.8.0`版本 +* (2019.08.04) 优化`RadarChart`雷达图,增加多雷达图支持 +* (2019.08.01) 增加代码API注释文档,整理代码 +* (2019.07.29) 增加`Radius`、`Area`两种南丁格尔玫瑰图展示类型 +* (2019.07.29) 增加`SerieLabel`配置饼图标签,支持`Center`、`Inside`、`Outside`等显示位置 +* (2019.07.28) 增加`PieChart`多饼图支持 +* (2019.07.23) 优化`Theme`主题的自定义,切换主题时自定义配置不受影响 +* (2019.07.22) 增加`EffectScatter`类型的散点图 +* (2019.07.21) 增加`ScatterChart`散点图 +* (2019.07.21) 增加`SerieData`支持多维数据配置 +* (2019.07.20) 增加`Symbol`配置`Serie`标志图形的显示 +* (2019.07.19) 增加用代码添加动态正弦曲线的示例`Demo11_AddSinCurve` +* (2019.07.19) 优化`Legend`的显示和控制 +* (2019.07.18) 优化抗锯齿,曲线更平滑 +* (2019.07.18) 增加`Tooltip`指示器类型,优化显示控制 +* (2019.07.15) 增加`Size`设置图表尺寸 +* (2019.07.14) 增加`二维数据`支持,XY轴都可以设置为数值轴 +* (2019.07.13) 增加`双坐标轴`支持,代码改动较大 + +## v0.5.0 + +* (2019.07.10) 发布`v0.5.0`版本 +* (2019.07.09) 增加`AxisLine`配置坐标轴轴线和箭头 +* (2019.07.03) 增加`AxisLabel`配置坐标轴`刻度标签` +* (2019.07.02) 增加`selected`等相关参数配置`PieChart`的选中效果 +* (2019.06.30) 增加`SplitArea`配置坐标轴`分割区域` +* (2019.06.29) 增加`AxisName`配置坐标轴`名称` +* (2019.06.20) 增加`AreaAlpha`控制`RadarChart`的`Area`透明度 +* (2019.06.13) 增加`DataZoom`实现`区域缩放` +* (2019.06.01) 增加`stepType`实现`LineChart`的`阶梯线图` +* (2019.05.29) 增加`InSameBar`实现`BarChart`的`非堆叠同柱` +* (2019.05.29) 增加`crossLabel`控制`Tooltip`的`十字准星指示器` +* (2019.05.24) 增加`堆叠区域图` +* (2019.05.16) 增加`AxisMinMaxType`控制坐标轴最大最小刻度 +* (2019.05.15) 完善数据接口 +* (2019.05.14) 增加X轴`AxisType.Value`模式支持 +* (2019.05.13) 增加负数数值轴支持 +* (2019.05.11) 增加自定义`Editor`编辑 +* (2019.03.21) 增加`Tooltip` +* (2018.11.01) 增加`Default`、`Light`、`Dark`三种默认主题 + +## v0.1.0 + +* (2018.09.05) 发布`v0.1.0`版本 diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/CHANGELOG.md.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/CHANGELOG.md.meta new file mode 100644 index 0000000..1582ca4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/CHANGELOG.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e66d91d4c396b46bf87034c47ca3b43d +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation.meta new file mode 100644 index 0000000..2cab140 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0793c29ff7adb422fb93f9f4e29d5a06 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/CHANGELOG-EN.md b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/CHANGELOG-EN.md new file mode 100644 index 0000000..443f195 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/CHANGELOG-EN.md @@ -0,0 +1,570 @@ + +# 更新日志 + +[master](#master) +[v3.0.1](#v3.0.1) +[v3.0.0](#v3.0.0) +[v2.3.0](#v2.3.0) +[v2.2.3](#v2.2.3) +[v2.2.2](#v2.2.2) +[v2.2.1](#v2.2.1) +[v2.2.0](#v2.2.0) +[v2.1.1](#v2.1.1) +[v2.1.0](#v2.1.0) +[v2.0.1](#v2.0.1) +[v2.0.0](#v2.0.0) +[v2.0.0-preview.2](#v2.0.0-preview.2) +[v2.0.0-preview.1](#v2.0.0-preview.1) +[v1.6.3](#v1.6.3) +[v1.6.1](#v1.6.1) +[v1.6.0](#v1.6.0) +[v1.5.2](#v1.5.2) +[v1.5.1](#v1.5.1) +[v1.5.0](#v1.5.0) +[v1.4.0](#v1.4.0) +[v1.3.1](#v1.3.1) +[v1.3.0](#v1.3.0) +[v1.2.0](#v1.2.0) +[v1.1.0](#v1.1.0) +[v1.0.5](#v1.0.5) +[v1.0.4](#v1.0.4) +[v1.0.3](#v1.0.3) +[v1.0.2](#v1.0.2) +[v1.0.1](#v1.0.1) +[v1.0.0](#v1.0.0) +[v0.8.3](#v0.8.3) +[v0.8.2](#v0.8.2) +[v0.8.1](#v0.8.1) +[v0.8.0](#v0.8.0) +[v0.5.0](#v0.5.0) +[v0.1.0](#v0.1.0) + +## v3.0.1 + +* (2022.06.16) Release `v3.0.1` version +* (2022.06.16) Fixed an issue where the `foldout` arrow on `Inspector` could not be expanded +* (2022.06.15) Optimized `Doc` auto-generation, improved code comments and configuration item manual documentation +* (2022.06.14) Optimized `SerieLabelStyle` to support dynamic adjustment of `Icon` +* (2022.06.13) Optimized `Background` setting +* (2022.06.10) Added `Legend` AxisLabel support for `autoColor` +* (2022.06.08) Fixed issue where `Axis` `AxisLabel` still shows the first and last two labels when not displayed + +## v3.0.0 + +* More robust underlying framework. +* More powerful performance. +* Smaller serialized files. +* Better interactive experience. +* More component support. +* More powerful ability to self-report text. +* More reasonable component adjustments. +* More flexible component insertion and removal. +* More efficient secondary development. +* Richer Demo examples. +* Added `Time` axis. +* Added `SingleAxis`. +* Added multiple coordinate systems: `Grid`, `Polar`, `Radar`, `SingleAxis`. +* Added multiple animation methods. +* Added multiple chart interactions. +* Added internationalization support. +* Added `Widgets`. +* Added multiple extension charts. + +## v2.3.0 + +### Main points + +* Data store upgraded from `float` to `double` +* Added `MarkLine` +* `Serie` can use `IconStyle` to configure ICONS uniformly +* `Label` supports custom display styles with code +* `DataZoom` is perfect +* `PieChart` optimization +* Problem fixes + +### Upgrade Note + +Since the data type is upgraded to `double`, the implicit conversion of `float` to `double` may have precision problems, so it is recommended that all previous data types of `float` be manually changed to `double`. + +### Details + +* (2021.07.24) Release `v2.3.0` version +* (2021.07.22) Improved `SerieSymbol` to support `PictorialBarchart` extension +* (2021.07.19) Fixed issue where `Tooltip` was not displayed on `WdbGL` platform +* (2021.07.18) Added `iconStyle` for serie +* (2021.07.15) Added `MarkLine` (#142) +* (2021.07.09) Optimize `BarChart` to set whether to show bars via `seriedata.show` +* (2021.07.08) Optimize data storage type from `float` to `double` +* (2021.07.05) Fixed `Piechart` `avoidLabelOverlap` parameter not working +* (2021.07.04) Fixed incorrect mouse area indication after `PieChart` selected sector +* (2021.07.04) Optimize when the `Label` of `PieChart` is `Inside`, the offset can be adjusted by the parameter `Margin` +* (2021.07.01) Added `DataZoom` arguments to `supportInsideScroll` and `supportInsideDrag` to set whether scrolling and dragging are supported in the coordinate system +* (2021.06.27) Add `showStartLabel` and `showEndLabel` arguments to `AxisLabel` to set whether the `Label` should be displayed at the beginning and end of the `AxisLabel` +* (2021.06.27) Added `formatter` delegate method to `AxisLabel` and `SerieLabel` (#145) +* (2021.06.27) Added `DataZoom`'s `orient` parameter to set horizontal or vertical styles +* (2021.06.21) Added `iconStyle`'s `AutoHideWhenLabelEmpty` to set whether the icon is automatically hidden when `label` is empty + +# # v2.2.3 + +* (2021.06.20) Release `v2.2.3` version +* (2021.06.20) Fixed the default display of `Icon` in `Axis` + +## v2.2.2 + +* (2021.06.18) Release `v2.2.2` version +* (2021.06.18) Optimize `Axis` to automatically hide `Icon` when `Label` is empty +* (2021.06.17) Fixed an issue where `maxCache` was set to one more number of actual data +* (2021.06.17) Fixed an issue where `TextMeshPro` could not be opened and closed in time to refresh +* (2021.06.17) Fixed an issue where `XCharts` always pops up when importing `XCharts` + +## v2.2.1 + +* (2021.06.13) Release `v2.2.1` version +* (2021.06.13) Improved support for multiple screens +* (2021.06.12) Added `iconStyle` `align` parameter to set the horizontal alignment of the icon +* (2021.06.12) Improve `Theme` import (#148) +* (2021.06.10) Fixed compatibility issues with `Unity` version (#154) +* (2021.06.05) Improved Candlestickchart support for inverse (#152) +* (2021.06.04) Fixed `Gauge` having an abnormal pointer position when the minimum value is negative (#153) + +## v2.2.0 + +* (2021.05.30) Release `v2.2.0` version +* (2021.05.25) Improved `TextStyle` support for `alignment` +* (2021.05.24) Fixed the problem that `Label` could not display properly when `PieChart` data were all `0` +* (2021.05.24) Fixed an issue where `Serie Name` was not working on the `Add Serie` panel (#149) +* (2021.05.23) Added `TextStyle` `autoWrap` to set whether to wrap lines +* (2021.05.23) Added `TextStyle` `autoAlign` whether to set alignment automatically +* (2021.05.23) Added `width` and `height` of `axisLabel` to support custom text length and width +* (2021.05.23) Added `Axis` `iconStyle` and `icons` to support setting coordinate Axis labels to display icons +* (2021.05.20) Added the `insertDataHead` parameter to `Serie` and `Axis` to control whether data is inserted into the head or tail +* (2021.05.18) Optimize chart creation under `Editor` #147 +* (2021.05.16) Pull out the `Ganttchart` chart and provide it as an extension module +* (2021.05.11) Added support for `VisualMap` to set color by `Piecewise` +* (2021.05.09) Fixed an issue where `RingChart` could not set the background color of the ring #141 +* (2021.05.08) Added `Liquidchart` support for `Rect` shape +* (2021.05.07) Improved the `Axis` scale performance #135 +* (2021.05.01) Added `Settings` parameters for painter's material #140 +* (2021.05.01) Fixed an issue where some super large or super small values could not be properly represented +* (2021.04.29) Fixed an issue with `Radar` switching to `Circle` anomaly #139 +* (2021.04.29) Added `Settings`'s `reversePainter` to set whether or not `Serie` is drawn in reverse order +* (2021.04.28) Fixed bug where `AxisLabel` displayed incorrectly with `DataRoom` (#138) +* (2021.04.26) Fixed dynamically creating chart at runtime would be abnormal #137 +* (2021.04.26) Added support for `Barchart` to draw gradient borders +* (2021.04.23) Added support for custom charts +* (2021.04.22) Fixed bug where `Gauge` `axisLabel`'s text color could not be adjusted +* (2021.04.13) Add the `ShowStarttick` and '`ShowEndTick` parameters of 'AxisTick' to control whether the first and last ticks are displayed +* (2021.04.13) Improved multi-axis support #132 + +## v2.1.1 + +* (2021.04.13) Define the code and clear `Warning` +* (2021.04.13) Fixed compatibility issues with `Unity` version +* (2021.04.12) Fixed problem `missing class attribute 'ExtensionOfNativeClass'` after Theme refactoring #131 + +## v2.1.0 + +* (2021.04.07) Release `v2.1.0` version +* (2021.03.31) Optimized and refactor `Theme` to solve problems with the same or missing references #118 +* (2021.03.30) Optimized `Tooltip` to support setting different category axis data #129 +* (2021.03.29) Optimized the custom draw callback API +* (2021.03.25) Added `Ganttchart` +* (2021.03.22) Added `Theme` `Unbind` button to unbind theme when copying chart #118 +* (2021.03.18) Fixed an issue where the check box after `Foldout` in `Inspector` could not be checked +* (2021.03.18) Fixed an issue with `BarChart` displaying an exception in the `0` value +* (2021.03.14) Fixed `Tooltip` indicator was not indicating the correct location in some cases +* (2021.03.13) Optimized the editing experience and component refresh after `MulticomponentMode` is enabled #128 +* (2021.03.10) Added `CandlestickChart` #124 +* (2021.03.06) Added `PieChart`'s `minAngle` parameter to support setting minimum sector angle #117 +* (2021.03.05) Added support for `Legend` for several built-in ICONS #90 +* (2021.03.02) Added `DataRoom` support for value axes #71 +* (2021.03.02) Optimized `TextMeshPro` compatibility issue #125 +* (2021.03.01) Fixed display exception of hidden gameObjects when enabling and disabling a chart #125 + +## v2.0.1 + +* (2021.02.26) Fixed incorrect position of `Tooltip` in `HeatmapChart` #123 +* (2021.02.22) Fixed compatibility issues with `Unity` version +* (2021.02.21) Added `Tooltip` parameter `ignoreDataShow` +* (2021.02.19) Fixed an issue where charts could appear abnormal when under `LayoutGroup` control #121 +* (2021.02.18) Fixed an issue where the `Radar` could not refresh itself after parameter changing #122 + +## v2.0.0 + +* (2021.02.05) Release `v2.0.0` version +* (2021.02.03) Fixed an issue where `Axisline` `OnZero` did not work on `YAxis` #116 +* (2021.01.29) Fixed incorrect display of `Tick` on `Category` axis when `BoundaryGap` and `alignWithLabel` are `True` #115 +* (2021.01.25) Optimized some details +* (2021.01.22) Fixed a `Inpsector` displayed error + +## v2.0.0-preview.2 + +* (2021.01.21) Release `v2.0.0-preview.2` version +* (2021.01.21) Fixed an error about `AxisTick` in `Inpsector` +* (2021.01.21) Fixed a build compatibility error +* (2021.01.19) Added `XChartsSettings` `editorShowAllListData` parameter to configure whether to display all the list's data in Inspector + +## v2.0.0-preview.1 + +* (2021.01.19) Release `v2.0.0-preview.1` version + +## v1.6.3 + +* (2021.01.02) Release `v1.6.3` version +* (2020.12.18) fixed an issue where updating data when `Animation` was not enabled caused the chart to keep refreshing +* (2020.12.01) fixed an issue where a newly created chart on `Unity2020` could not be drawn properly + +## v1.6.2 + +* (2020.11.22) Release `v1.6.2` version +* (2020.11.22) Fixed an issue where `LineChart` draws an exception when the data is too dense #99 +* (2020.11.21) Fixed an issue where the scale position of `LineChart` could be abnormal if `alignWithLabel` was `true` +* (2020.11.21) Fixed `Unity5` compatibility error reporting problem +* (2020.11.13) Improved `RadarChart` `Indicator` support for `\n` line feed +* (2020.11.12) Fixed `LineChart` reporting errors when the type was `Smooth` when the data was too secure #100 +* (2020.10.22) Optimized the support of `VisualMap` for `Piecewise` in `HeatmapChart` +* (2020.09.22) Fixed `PieChart` inconsistent border size +* (2020.09.18) Added `Remove All Chart Object` to Remove All child nodes under the Chart (automatically reinitialized) +* (2020.09.18) Fixed `SerieLabel` also displayed after hided `Serie` by clicked the legend #94 +* (2020.09.18) Optimized coordinate axis calibration and text display #93 +* (2020.09.17) Fixed `Package` import missing `meta` file causing failure #92 +* (2020.09.08) Optimized the color of `Legend` to automatically match the custom color of `ItemStyle` +* (2020.09.05) Optimized `LineChart` to display `XAxis1` without using `XAxis1`. +* (2020.08.29) Added `toColor` and `toColor2` of `LineStyle` to set the horizontal gradient of `LineChart`. Cancel `ItemStyle` to set the horizontal gradient of `LineChart`. +* (2020.08.29) Added the `onPointerClickPie` of `PieChart`, a callback function of click pie area. +* (2020.08.29) Added the `onPointerClickBar` of `BarChart`, a callback function of click bar. + +## v1.6.0 + +* (2020.08.24) Release `v1.6.0` version +* (2020.08.23) Refactor code, replace `Color` with `Color32` for reduce implicit conversion (Can cause custom colors to lose, reference [FAQ 29](https://github.com/XCharts-Team/XCharts/blob/master/Assets/XCharts/Documentation/XChartsFAQ-ZH.md) to upgrade) +* (2020.08.15) Optimized `PieChart` drawing performance effect #85 +* (2020.08.11) Added `LiquidChart` data change animation#83 +* (2020.08.11) Optimized `PieChart` text stack and lead line effects#85 +* (2020.08.08) Optimized `LineChart` the rendering performance of dense data +* (2020.07.30) Added `LineChart` to configure gradient through `VisualMap` or `ItemStyle`#78 +* (2020.07.25) Fixed a problem with `LineChart` emerging abnormal in animation drawing#79 +* (2020.07.25) Fixed a problem with gradual discoloration on `LiquidChart` at `100%`#80 +* (2020.07.25) Added `RadarChart` support for `formatter` of `Tooltip`#77 +* (2020.07.23) Added `RingChart` ring gradient support#75 +* (2020.07.21) Added `formatter` of `AxisLabel` and `SerieLabel` to configure numeric formatting separately. +* (2020.07.17) Added animation completion callback interface for `SerieAnimation`. +* (2020.07.17) Optimized `Chart` under `ScrollView` without affecting the scrolling and dragging of `ScrollView`. +* (2020.07.16) Fixed a problem with `Tooltip` that would also show up if it was blocked on top. #74 +* (2020.07.07) Fixed issue where `SerieLabel` position was out of order +* (2020.07.07) Added `Tooltip` to the `offset` parameter +* (2020.07.06) Added `Liquidchart` +* (2020.07.01) Added `PolarChart` + +## v1.5.2 + +* (2020.06.25) Fixed an issue where `BarChart` would draw a small number of bars when the value was `0` +* (2020.06.24) Fixed an issue where `PieChart` was drawing abnormally after setting `Clockwise` #65 +* (2020.06.23) Optimized the drawing effect of `LineChart` when the difference between peak and valley is too large #64 +* (2020.06.18) Fixed an issue where `SerieLabel` might not be displayed when adding data again +* (2020.06.17) Added `SerieData` to `serieSymbol` #66 +* (2020.06.17) Fixed `Check For Update` bug in `Unity 2018` version #63 +* (2020.06.16) Added `Serie` `avoidLabelOverlap` parameter to avoid pie chart TAB stacking #56 +* (2020.06.15) Fixed an issue where the `SerieLabel` control display could be deranged +* (2020.06.11) Fixed `Check warning` not working +* (2020.06.11) Fixed issue where `Piechart` and `Ringchart` were not displayed when data fraction was very small +* (2020.06.11) Added `Tooltip` to `titleFormatter` to support configuration placeholder `{i}` to ignore not showing titles +* (2020.06.07) Added `customFadeInDelay` and other custom data item delay and duration callback function #58 +* (2020.06.07) Optimized `Piechart` to display equal parts when all the data are `0` #59 +* (2020.06.04) Added `autoOffset` parameter setting for `SerieLabel` to determine whether the up and down offset is automatically determined +* (2020.06.04) Added `Tooltip` to `AlwayShow` parameter setting to always show after triggering +* (2020.06.04) Tooltip's `formatter` supports `{.1}` wildcards +* (2020.06.04) Optimizes the number of `Legend` to automatically wrap to display #53 + +## v1.5.1 + +* (2020.06.03) 发布`v1.5.1`版本 +* (2020.06.02) 增加`Radar`的`ceilRate`,设置最大最小值的取整倍率 +* (2020.06.02) 优化`Tooltip`的`formatter`,支持`{c1:1-1:f1}`格式配置 +* (2020.05.31) 优化`Background`组件的生效条件,需要有单独的父节点(升级前需要自己处理旧的背景节点) +* (2020.05.30) 优化`PieChart`支持设置`ignoreValue`不显示指定数据 +* (2020.05.30) 修复`RadarChart`为`Circle`时不绘制`SplitArea`的问题 +* (2020.05.30) 优化`RadarChart`在设置`max`为`0`时可自动刷新最大值 +* (2020.05.29) 修复`PieChart`设置`gap`时只有一个数据时绘制异常的问题 +* (2020.05.27) 修复调用`UpdateDataName()`接口时不会自动刷新的问题 +* (2020.05.27) 优化`柱状图`的渐变色效果 +* (2020.05.24) 修复`Axis`同时设置`boundaryGap`和`alignWithLabel`时`Tick`绘制异常的问题 +* (2020.05.24) 优化版本更新检测 +* (2020.06.25) release `v1.5.2` + + +## v1.5.0 + +* (2020.05.22) 发布`v1.5.0`版本 +* (2020.05.21) 增加`圆角柱图`支持渐变 +* (2020.05.21) 增加`Background`背景组件 +* (2020.05.19) 隐藏`Hierarchy`试图下自动生成的子节点 +* (2020.05.18) 增加`chartName`属性可指定图表的别称,可通过`XChartMgr.Instance.GetChart(chartName)`获取图表 +* (2020.05.16) 增加部分鼠标事件回调 +* (2020.05.15) 优化自带例子,`Demo`改名为`Example` +* (2020.05.13) 增加`Serie`的`large`和`largeThreshold`参数配置折线图和柱状图的性能模式 +* (2020.05.13) 完善Demo,增加性能演示Demo +* (2020.05.13) 优化性能,优化大数据绘制,重构代码 +* (2020.05.04) 增加`numericFormatter`参数可配置数值格式化显示,去掉`forceENotation`参数 +* (2020.04.28) 增加`自由锚点`支持,任意对齐方式 +* (2020.04.23) 优化`ScatterChart`的`Tooltip`显示效果 +* (2020.04.23) 增加`Tooltip`的`formatter`对`{.}`、`{c:0}`、`{c1:1}`的支持 +* (2020.04.19) 优化`LineChart`折线图的区域填充渐变效果 +* (2020.04.19) 增加`AxisLabel`的`onZero`参数可将`Label`显示在`0`刻度上 +* (2020.04.19) 增加`Serie`和`AxisLabel`的`showAsPositiveNumber`参数将负数数值显示为正数 +* (2020.04.18) 增加`Covert XY Axis`互换XY轴配置 +* (2020.04.17) 增加`Axis`可通过`inverse`参数设置坐标轴反转 +* (2020.04.16) 修复`Check warning`在`Unity2019.3`上的显示问题 +* (2020.04.16) 修复`PieChart`在设置`Space`参数后动画绘制异常的问题 + +## v1.4.0 + +* (2020.04.11) 发布`v1.4.0`版本 +* (2020.04.11) 增加`Check warning`检测功能 +* (2020.04.09) 修复`Legend`初始化异常的问题 +* (2020.04.08) 增加`PieChart`通过`ItemStyle`设置边框的支持 +* (2020.03.29) 增加`Axis`的`ceilRate`设置最大最小值的取整倍率 +* (2020.03.29) 增加`BarChart`可通过`itemStyle`的`cornerRadius`设置`圆角柱图` +* (2020.03.29) 增加`itemStyle`的`cornerRadius`支持圆角矩形 +* (2020.03.24) 优化`Editor`参数编辑,兼容`Unity2019.3`及以上版本 +* (2020.03.24) 增加`Serie`在`inspector`上可进行调整顺序、添加和删除操作 +* (2020.03.23) 修复`Title`的`textStyle`和`subTextStyle`无效的问题 +* (2020.03.22) 增加`BarChart`通过`barType`参数设置`胶囊柱状图` +* (2020.03.21) 增加`BarChart`和`HeatmapChart`可通过`ignore`参数设置忽略数据的支持 +* (2020.03.21) 增加`ItemStyle`的`tooltipFormatter`参数可单独配置`Serie`的`Tooltip`显示 +* (2020.03.20) 修复`X Axis 1`和`Y Axis 1`配置变更时不会自动刷新的问题 +* (2020.03.20) 增加`AxisTick`的`width`参数可单独设置坐标轴刻度的宽度 +* (2020.03.20) 增加`Serie`的`radarType`参数设置`多圈`和`单圈`雷达图 +* (2020.03.17) 增加`BarChart`可用`ItemStyle`的`backgroundColor`设置数据项背景颜色 +* (2020.03.17) 增加`SerieData`的`ItemStyle`和`Emphasis`可单独配置数据项样式的支持 +* (2020.03.15) 重构`EmptyCricle`类型的`Symbol`边宽取自`ItemStyle`的`borderWidth`参数 +* (2020.03.15) 重构`SerieSymbol`,去掉`color`和`opacity`参数,取自`ItemStyle` + +## v1.3.1 + +* (2020.03.14) 发布`v1.3.1`版本 +* (2020.03.14) 修复`LineChart`开启`ingore`时部分数据可能绘制异常的问题 +* (2020.03.13) 修复`LineChart`的`label`偏移显示异常的问题 + +## v1.3.0 + +* (2020.03.11) 发布`v1.3.0`版本 +* (2020.03.11) 优化`LineChart`的`label`偏移显示 +* (2020.03.11) 优化清空并重新添加数据后的自动刷新问题 +* (2020.03.10) 增加`LineChart`的普通折线图可通过`ignore`参数设置忽略数据的支持 +* (2020.03.09) 增加`BarChart`可通过`ItemStyle`配置边框的支持 +* (2020.03.08) 增加`RingChart`环形图 +* (2020.03.05) 调整`Serie`的`arcShaped`参数重命名为`roundCap` +* (2020.03.05) 增加运行时和非运行时参数变更自动刷新图表 +* (2020.02.26) 重构`Legend`图例,改变样式,增加自定义图标等设置 +* (2020.02.23) 增加`BaseChart.AnimationFadeOut()`渐出动画,重构动画系统 +* (2020.02.13) 增加`BaseChart.RefreshTooltip()`接口立即重新初始化`Tooltip`组件 +* (2020.02.13) 增加`Tooltip`的`textStyle`参数配置内容文本样式,去掉`fontSize`和`fontStyle`参数 +* (2020.02.13) 增加`TextStyle`的`lineSpacing`参数配置行间距 +* (2020.02.11) 增加`Radar`的`splitLine`参数配置分割线,去掉`lineStyle`参数 +* (2020.02.11) 增加`Tooltip`的`backgroundImage`参数配置背景图 +* (2020.02.11) 增加`Tooltip`的`paddingLeftRight`和`paddingTopBottom`参数配置文字和边框的间距 +* (2020.02.11) 增加`Tooltip`的`lineStyle`参数配置指示线样式 +* (2020.02.11) 增加`Axis`的`splitLine`参数控制分割线,去掉`showSplitLine`和`splitLineType`参数(更新时需要重新设置分割线相关设置) +* (2020.02.10) 增加`Serie`的`clip`参数控制是否超出坐标系外裁剪(只适用于折线图、柱状图、散点图) +* (2020.02.08) 增加`SerieSymbol`的`gap`参数控制图形标记的外留白距离 +* (2020.01.26) 增加`TextLimit`组件可以设置`AxisLabel`的文本自适应 +* (2020.01.20) 优化`Tooltip`设置`itemFormatter`时显示系列颜色 +* (2020.01.20) 增加`Radar`雷达图在`inspector`配置`areaStyle`的支持 + +## v1.2.0 + +* (2020.01.15) 发布`v1.2.0`版本 +* (2020.01.15) 增加`AxisLabel`格式化为整数的支持(`{value:f0}`) +* (2020.01.15) 增加折线图对数轴`Log`的支持 +* (2020.01.09) 修复当设置`DataZoom`的`minShowNum`时可能异常的问题 +* (2020.01.08) 修复当设置`AxisLine`的`onZero`时刻度显示异常的问题 +* (2020.01.08) 增加`Mask`遮罩遮挡支持 +* (2019.12.21) 增加`Tooltip`的单个数据项和标题的字符串模版格式器 +* (2019.12.21) 增加`DataZoom`的最小显示数据个数`minShowNum` +* (2019.12.20) 增加`Demo40_Radar.cs`雷达图代码操作`Demo` +* (2019.12.20) 添加`RadarChart`相关API接口 + +## v1.1.0 + +* (2019.12.17) 发布`v1.1.0`版本 +* (2019.12.16) 修复`Overlay`模式下不显示`Tooltip`的问题 +* (2019.12.15) 增加`Title`的`TextStyle`支持 +* (2019.12.11) 修复`Legend`都隐藏时`Value轴`还显示数值的问题 +* (2019.12.11) 修复`Series->Data->Size`重置为0后设置无效的问题 +* (2019.12.06) 修复数据过小时`AxisLabel`直接科学计数法显示的问题 +* (2019.12.04) 优化和完善数据更新`UpdateData`接口 +* (2019.12.03) 增加圆环饼图的圆角支持,参数:`serie.arcShaped` +* (2019.12.03) 增加数据更新动画,参数:`serie.animation.dataChangeEnable` +* (2019.11.30) 增加`GaugeChart`仪表盘 +* (2019.11.22) 修复`BarChart`清空数据重新赋值后`SerieLabel`显示异常的问题 +* (2019.11.16) 修复`SerieLabel`设置`color`等参数不生效的问题 + +## v1.0.5 + +* (2019.11.12) 发布`v1.0.5`版本 +* (2019.11.12) 修复`2018.3`以下版本打开项目报错的问题 +* (2019.11.12) 增加`IconStyle`子组件,优化`SerieData`的图标配置 +* (2019.11.11) 修复`Serie`的图标显示在上层遮挡`Label`的问题 +* (2019.11.11) 修复饼图当数据过小时视觉引导线会穿透的的问题 +* (2019.11.09) 修复饼图添加数据时`Label`异常的问题 +* (2019.11.09) 优化结构,分离为`XCharts`和`XChartsDemo`两部分 + +## v1.0.4 + +* (2019.11.05) 发布`v1.0.4`版本 +* (2019.11.05) 增加`Radar`雷达组件文本样式参数配置支持 +* (2019.11.04) 修复`Unity2018.3`以下版本代码不兼容的问题 +* (2019.11.04) 优化`SerieLabel`过多时引起的性能问题 + +## v1.0.3 + +* (2019.11.03) 发布`v1.0.3`版本 +* (2019.11.03) 增加`Editor`快捷添加图表:`Hierarchy`试图下右键`XCharts->LineChart` +* (2019.11.02) 优化非配置参数变量命名和访问权限,简化`API` + +## v1.0.2 + +* (2019.10.31) 发布`v1.0.2`版本 +* (2019.10.31) 修复`prefab`预设制作报错的问题 +* (2019.10.31) 增加访问主题组件API:`BaseChart.theme` + +## v1.0.1 + +* (2019.10.26) 发布`v1.0.1`版本 +* (2019.10.26) 修复版本检查功能在非运行时异常的问题 +* (2019.10.26) 增加科学计数法显示数值的支持(查阅`forceENotation`参数) +* (2019.10.26) 增加`Axis`类目轴数据为空时的默认显示支持 +* (2019.10.26) 增加`Axis`数值轴的最大最小值可设置为小数的支持,优化极小数图表的表现效果 + +## v1.0.0 + +* (2019.10.25) 发布`v1.0.0`版本 +* (2019.10.23) 增加版本检测功能:`Component -> XCharts -> Check For Update` +* (2019.10.22) 增加`Package Manager`安装的支持 +* (2019.10.20) 增加`Demo`首页`BarChart`的代码动态控制效果 +* (2019.10.18) 增加`Serie`的`barType`参数,可配置`斑马柱状图` +* (2019.10.18) 增加`Serie`的`barPercentStack`参数,可配置`百分比堆叠柱状图` +* (2019.10.16) 增加`Demo`首页`LineChart`的代码动态控制效果 +* (2019.10.15) 移除`Pie`组件,相关参数放到`Settings`中配置 +* (2019.10.15) 增加`Demo`首页,展示代码动态控制效果 +* (2019.10.14) 增加`RadarChart`、`ScatterChart`和`HeatmapChart`的起始动画效果 +* (2019.10.14) 增加`SerieData`的`radius`自定义数据项的半径 +* (2019.10.14) 增加`HeatmapChart`热力图 +* (2019.10.14) 增加`VisualMap`视觉映射组件 +* (2019.10.14) 增加`ItemStyle`数据项样式组件 +* (2019.10.14) 增加`Emphasis`高亮样式组件 +* (2019.10.10) 增加`Settings`全局参数配置组件,开放更多参数可配置 +* (2019.10.09) 增加`AreaStyle`的高亮相关参数配置鼠标悬浮时高亮之前区域 +* (2019.10.09) 优化`DataZoom`组件,增加双指缩放 +* (2019.10.05) 增加`SerieLabel`的`LineType`给饼图配置不同类型的视觉引导线 +* (2019.10.02) 增加`ScatterChart`同时对`Scatter`和`Line`的支持,实现折线图和散点图的组合图 +* (2019.10.01) 重构代码,废弃`Series.series`接口,用`Series.list`代替 +* (2019.10.01) 增加`customDrawCallback`自定义绘制回调 +* (2019.10.01) 增加`SmoothDash`平滑虚线的支持 +* (2019.09.30) 增加`Serie`采样类型`sampleType`的相关配置 +* (2019.09.29) 增加`SerieSymbol`关于显示间隔的相关配置 +* (2019.09.29) 重构代码: + * `BaseChart`的`sampleDist`删除,`Serie`增加`lineSampleDist` + * `BaseChart`的`minShowDataNumber`删除,`Serie`增加`minShow` + * `BaseChart`的`maxShowDataNumber`删除,`Serie`增加`maxShow` + * `BaseChart`的`maxCacheDataNumber`删除,`Serie`增加`maxCache` + * `BaseChart`的`AddSerie()`接口参数调整 + * `BaseChart`的`UpdateData()`接口参数调整 + * `Axis`增加`maxCache` +* (2019.09.28) 增加`LineChart`和`BarChart`同时对`Line`、`Bar`类型`Serie`的支持,实现折线图和柱状图的组合图 +* (2019.09.27) 增加`Axis`的`splitNumber`设置为`0`时表示绘制所有类目数据 +* (2019.09.27) 增加`SampleDist`采样距离的配置,对过密的曲线开启采样,优化绘制效率 +* (2019.09.27) 增加`XCharts问答`、`XChartsAPI接口`、`XCharts配置项手册`等文档 +* (2019.09.26) 增加`AnimationReset()`重置初始化动画接口 +* (2019.09.26) 优化`LineChart`的密集数据的曲线效果 +* (2019.09.25) 优化`SerieData`的自定义图标不与`SerieLabel`关联,可单独控制是否显示 +* (2019.09.24) 增加`SerieData`的自定义图标相关配置支持 +* (2019.09.23) 增加`Formatter`配置`Axis`的`AxisLabel`的格式化输出 +* (2019.09.23) 增加`Tooltip`的`FontSize`、`FontStyle`配置字体大小和样式 +* (2019.09.23) 增加`Formatter`配置`SerieLabel`、`Legend`、`Tooltip`的格式化输出 +* (2019.09.19) 增加`LineArrow`配置带箭头曲线 +* (2019.09.19) 增加`Tooltip`的`FixedWidth`、`FixedHeight`、`MinWidth`、`MinHeight`设置支持 +* (2019.09.18) 增加单条堆叠柱状图 +* (2019.09.18) 增加虚线`Dash`、点线`Dot`、点划线`DashDot`、双点划线`DashDotDot`等类型的折线图支持 +* (2019.09.17) 增加`AnimationEnabel()`启用或取消起始动画接口 +* (2019.09.17) 增加`Axis`的`Interval`强制设置坐标轴分割间隔 +* (2019.09.16) 去掉`Serie`中的旧版本数据兼容,不再支持`xData`和`yData` +* (2019.09.06) 增加`Animation`在重新初始化数据时自启动功能 +* (2019.09.06) 增加`SerieLabel`的`Border`边框相关配置支持 +* (2019.09.05) 增加`PieChart`的`Animation`初始化动画配置支持 +* (2019.09.03) 增加`BarChart`的`Animation`初始化动画配置支持 +* (2019.09.02) 增加`LineChart`的`Animation`初始化动画配置支持 +* (2019.08.22) 增加`AxisName`的`Offset`偏移配置支持 +* (2019.08.22) 增加`AxisLine`的`Width`配置支持 +* (2019.08.20) 增加`SerieLabel`的背景宽高、文字边距、文字旋转的配置 +* (2019.08.20) 增加`BarChart`的`Label`配置支持 +* (2019.08.15) 增加`LineChart`的`Label`配置 +* (2019.08.15) 重构`BarChart`,移除`Bar`组件,相关参数统一放到`Serie`中配置 +* (2019.08.15) 重构`LineChart`,移除`Line`组件,相关参数统一放到`Serie`中配置 + +## v0.8.3 + +* (2019.08.15) 发布`v0.8.3`版本 +* (2019.08.14) 修复`PieChart`的`Label`无法自动更新的问题 +* (2019.08.13) 修复`UpdateData`接口无法更新数据的问题 +* (2019.08.07) 增加`SerieSymbol`的`Color`、`Opacity`配置 + +## v0.8.2 + +* (2019.08.07) 发布`v0.8.2`版本 +* (2019.08.07) 修复区域平滑折线图显示异常的问题 +* (2019.08.06) 修复`serie`系列数超过调色盘颜色数时获取的颜色异常的问题 +* (2019.08.06) 修复当`Axis`的`minMaxType`为`Custom`时`max`设置为`100`不生效的问题 + +## v0.8.1 + +* (2019.08.04) 发布`v0.8.1`版本 +* (2019.08.04) 修复`Inspector`中修改数据不生效的问题 + +## v0.8.0 + +* (2019.08.04) 发布`v0.8.0`版本 +* (2019.08.04) 优化`RadarChart`雷达图,增加多雷达图支持 +* (2019.08.01) 增加代码API注释文档,整理代码 +* (2019.07.29) 增加`Radius`、`Area`两种南丁格尔玫瑰图展示类型 +* (2019.07.29) 增加`SerieLabel`配置饼图标签,支持`Center`、`Inside`、`Outside`等显示位置 +* (2019.07.28) 增加`PieChart`多饼图支持 +* (2019.07.23) 优化`Theme`主题的自定义,切换主题时自定义配置不受影响 +* (2019.07.22) 增加`EffectScatter`类型的散点图 +* (2019.07.21) 增加`ScatterChart`散点图 +* (2019.07.21) 增加`SerieData`支持多维数据配置 +* (2019.07.20) 增加`Symbol`配置`Serie`标志图形的显示 +* (2019.07.19) 增加用代码添加动态正弦曲线的示例`Demo11_AddSinCurve` +* (2019.07.19) 优化`Legend`的显示和控制 +* (2019.07.18) 优化抗锯齿,曲线更平滑 +* (2019.07.18) 增加`Tooltip`指示器类型,优化显示控制 +* (2019.07.15) 增加`Size`设置图表尺寸 +* (2019.07.14) 增加`二维数据`支持,XY轴都可以设置为数值轴 +* (2019.07.13) 增加`双坐标轴`支持,代码改动较大 + +## v0.5.0 + +* (2019.07.10) 发布`v0.5.0`版本 +* (2019.07.09) 增加`AxisLine`配置坐标轴轴线和箭头 +* (2019.07.03) 增加`AxisLabel`配置坐标轴`刻度标签` +* (2019.07.02) 增加`selected`等相关参数配置`PieChart`的选中效果 +* (2019.06.30) 增加`SplitArea`配置坐标轴`分割区域` +* (2019.06.29) 增加`AxisName`配置坐标轴`名称` +* (2019.06.20) 增加`AreaAlpha`控制`RadarChart`的`Area`透明度 +* (2019.06.13) 增加`DataZoom`实现`区域缩放` +* (2019.06.01) 增加`stepType`实现`LineChart`的`阶梯线图` +* (2019.05.29) 增加`InSameBar`实现`BarChart`的`非堆叠同柱` +* (2019.05.29) 增加`crossLabel`控制`Tooltip`的`十字准星指示器` +* (2019.05.24) 增加`堆叠区域图` +* (2019.05.16) 增加`AxisMinMaxType`控制坐标轴最大最小刻度 +* (2019.05.15) 完善数据接口 +* (2019.05.14) 增加X轴`AxisType.Value`模式支持 +* (2019.05.13) 增加负数数值轴支持 +* (2019.05.11) 增加自定义`Editor`编辑 +* (2019.03.21) 增加`Tooltip` +* (2018.11.01) 增加`Default`、`Light`、`Dark`三种默认主题 + +## v0.1.0 + +* (2018.09.05) 发布`v0.1.0`版本 diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/CHANGELOG-EN.md.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/CHANGELOG-EN.md.meta new file mode 100644 index 0000000..979167c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/CHANGELOG-EN.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 01f7eaa065d094f1f8955111a9bc447b +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/README-EN.md b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/README-EN.md new file mode 100644 index 0000000..6f989d3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/README-EN.md @@ -0,0 +1,141 @@ +

+ + + +

+

XCharts

+

+ A powerful, easy-to-use, configurable charting and data visualization library for Unity. +
+ Unity数据可视化图表插件。 +
+ 中文 +

+

+ + + + + + + + + + + + + + + + + + +

+

+ + + + + + + + + +

+ +A powerful, easy-to-use, configurable charting and data visualization library for Unity. Supporting line, bar, pie, radar, scatter, heatmap, ring, candlestick, polar, liquid and other common chart. Also support 3d pie, 3d bar, 3d pyramid, funnel, gauge, liquid, pictorialbar, gantt, treemap and ther extended chart. + +[XCharts3.0 Tutorial](XChartsTutorial01-EN.md) +[XCharts3.0 API](XChartsAPI-EN.md) +[XCharts3.0 FAQ](XChartsFAQ-EN.md) +[XCharts3.0 Configurate](XChartsConfiguration-EN.md) +[XCharts3.0 Changelog](../CHANGELOG.md) +[XCharts3.0 Support](SUPPORT.md) + +## Features + +* Rich built-in examples and templates, parameter visualization configuration, effect real-time preview, pure code drawing. +* Support line, bar, pie, radar, scatter, heatmaps, gauge, ring, polar, liquid and other common chart. +* Support line graph, curve graph, area graph, step graph and other LineChart. +* Support parallel bar, stack bar, stack percentage bar, zebra bar and other BarChart. +* Support ring, rose and other PieChart. +* Support line-bar chart, scatter-line chart and other combination chart. +* Support solid line, curve, ladder line, dotted line, dash line, dot line, double dot line and other lines. +* Support custom theme, built-in theme switching. +* Support custom chart content drawing, drawing points, line, curve, triangle, quadrilateral, circle, ring, sector, border, arrow and other drawing API. +* Support interactive operations such as data filtering, view zooming and detail display on PC and mobile terminals. +* Support 10,000-level big data rendering. +* Support TextMeshPro. + +## XCharts3.0 new feature + +* Added `Time` axis. +* Added `SingleAxis`. +* Added multiple coordinate systems: `Grid`, `Polar`, `Radar`, `SingleAxis`. +* Added multiple animation methods. +* Added multiple chart interactions. +* Added internationalization support. +* Added `Widgets`. +* Added multiple extension charts. + +## XCharts3.0 improvements over XCharts2.0 + +* More robust underlying framework. +* More powerful performance. +* Smaller serialized files. +* Better interactive experience. +* More component support. +* More powerful ability to self-report text. +* More reasonable component adjustments. +* More flexible component insertion and removal. +* More efficient secondary development. +* Richer Demo examples. + +## XCharts3.0 and 2.0 data comparison + +| Case | XCharts2.0 | XCharts3.0 | Note | +| -- | -- | -- | -- | +| Fps of 2000 data line chart | ` 20 ` | ` 83 ` | Performance improvements `3` times | +| Vertices of 2000 data line chart | ` 36.5 k ` | ` 6.7 k ` | Vertices reduce `4` times | +| Prefab size of 2000 data line chart | ` 11.1 MB ` | ` 802 KB ` | Serialized file size to reduce `10` times | +| Max data of a single line chart | ` 4.1 k ` | ` 19 k ` | Single Serie data capacity improvement `4` times | +| Num of chart support | ` 11 ` | ` 23 ` | More than `1` times as many chart are supported | + +## Screenshots + +![buildinchart](https://github.com/XCharts-Team/XCharts-Demo/blob/master/buildinchart.png) + +![extendchart](https://github.com/XCharts-Team/XCharts-Demo/blob/master/extendchart.png) + +For more examples, see [XCharts-Demo](https://github.com/XCharts-Team/XCharts-Demo), You can also go to [Online Demo](https://xcharts-team.github.io/demo/) to see the running effect of `WebGL`. + +## Use + +1. Import `XCharts` unitypackage or source code into the project. +2. Right-click `Hierarchy` view and choose `XCharts->LineChart` to create a default LineChart. +3. You can adjust the parameters of each component in `Inspector` and see the real-time effects in `Game` view. + +See more tutorial: [XCharts tutorial: 5 minutes overhand tutorial](XChartsTutorial01-EN.md) + +## FAQ + +1. Is `XCharts` free to use? +A: `XCharts` uses the `MIT` licence and is free to use. You can also subscribe to `VIP` to enjoy more value-added services. + +2. Does `XCharts` support code to dynamically add and modify data? Does it support getting data from `Excel` or a database? +A: Support code to dynamically add and modify data, but data needs to be parsed or retrieved by itself, and then added to `XCharts` by calling the public interface of `XCharts`. + +3. Does this plugin work on other platforms (e.g. Winform or WPF) besides Unity? +A: It is currently only supported on Unity. Theoretically any version of Unity that supports `UGUI` can run `XCharts`. + +## Changelog + +[Changelog](CHANGELOG.md) + +## Licenses + +[MIT License](LICENSE.md) + +## Other + +email: `monitor1394@gmail.com` \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/README-EN.md.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/README-EN.md.meta new file mode 100644 index 0000000..9f88656 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/README-EN.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 29f30ecf23bb44bc5b0820dc5ee7a23e +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/SUPPORT.md b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/SUPPORT.md new file mode 100644 index 0000000..585df8e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/SUPPORT.md @@ -0,0 +1,76 @@ +# 订阅服务 + +如需技术支持,可订阅`个人VIP`服务。扫后面的二维码后可加VIP群`867291970`,验证信息请输入付费的账号。 企业商务合作可联系QQ:3525422251(XCharts技术支持)。 + +## 订阅VIP服务 + +订阅服务分个人订阅和企业订阅: + +- 个人订阅:个人VIP属于个人,不可转让,`XCharts`团队只服务于订阅当事人。 +- 企业订阅:企业VIP属于企业,席位内可安排固定职员,职员离职可重新安排,`XCharts`团队通过专属企业群为企业服务。 + +订阅服务的优势? + +- 提高工作效率,节省时间成本。一方面,`XCharts`功能强大,相关配置项非常多,`VIP`服务可快速帮您定位,节省去查找和核对的时间;另一方面,`VIP`的即时回答服务可快速为您答疑解惑,避免中断开发流程。总之,订阅`VIP`可让您能快速上手,快速处理问题,至少能提高`10`倍以上的工作效率。 +- 更多技术交流,更多经验交流。`XCharts`团队成员从业多年,有丰富的技术和工作经验。`VIP`服务不仅可以交流`XCharts`相关的内容,也可以咨询其他方面的技术。`VIP`群也有更多的交流。 +- 扩展图表的需要订阅`VIP`服务后才能购买,扩展图表超过1年后的更新支持也需要持续订阅`VIP`服务。 +- `VIP`用户可加入`XCharts`的`GitHub`组织,参与`XCharts`社区构建,访问专有仓库。 + +| |免费用户|付费咨询|个人`VIP` | 个人`SVIP` | 企业`VIP` | +| ----- |--|--|--|--|--| +| 订阅费用 | -- | `98`¥ | `298`¥ | 首年`1298`¥
后续`298¥`* | `联系我们` | +| 订阅时长 | -- | `7`天* | `1`年 | `1`年* | `1`年 +| 订阅席位 | -- | `1`个席位 | `1`个席位 |`1`个席位|`5`个以上席位| +| __`服务方式:`__| +| 官方QQ群交流 | √ | √ | √ | √ | √ | +| 即时一对一交流 | | √ | √ | √ | √ | +| 专属VIP群交流 | | | √ | √ | √(专属企业群) | +| __`服务内容:`__| +| 可商用 | √ | √ | √ | √ | √ | +| 可二次开发 | √ | √ | √ | √ | √ | +| 有问必答 | | √ | √ | √ | √ | +| 即时回答 | | √ | √ | √ | √ | +| 新手指导 | | √ | √ | √ | √ | +| 开发指导 | | √ | √ | √ | √ | +| 优化指导 | | √ | √ | √ | √ | +| 其他技术支持 | | | √ | √ | √ | +| 问题及时处理 | | | √ | √ | √ | +| 需求优先考虑 | | | √ | √ | √ | +| 可另付费定制 | | | √ | √ | √ | +| 可另付费加急 | | | √ | √ | √ | +| VIP专有功能教程和文档 | | | √待开放 | √待开放 | √待开放 | +| 扩展图表购买 | | | 按需购买 | 全部免费 | 按需购买 | +| 扩展图表源码 | | | 永久持有 | 永久持有 | 永久持有 | +| 扩展图表更新 | | | 1年持续更新
1年后需订阅 | 1年持续更新
1年后需订阅 | 1年持续更新
1年后需订阅 | + +## 购买扩展图表 + +扩展图表为另付费购买图表,只对订阅了`VIP`服务的用户开放购买。对于`SVIP`的订阅用户,所有扩展图表仓库可免费使用,不用再单独购买。 + +对所有已购买的扩展图表,源码可永久持有,并获得持续一年的更新支持,超过一年后想要更新支持需要继续订阅`VIP`服务,如不继续订阅`VIP`服务,会从`GitHub`的`Team`中移除,不再能访问扩展图表的源码仓库。 + +|编号|扩展图表|价格|备注| +|--|--|--|--| +| 101 | PictorialBarChart | 98¥ | 象形柱图 | +| 102 | FunnelChart | 98¥ | 漏斗图 | +| 103 | PyramidChart | 98¥ | 3D金字塔 | +| 104 | TreemapChart | 98¥ | 树形矩图 | +| 201 | Bar3DChart | 198¥ | 3D柱图 | +| 202 | Pie3DChart | 198¥ | 3D饼图 | +| 203 | GanttChart | 198¥ | 甘特图 | +| 204 | GaugeChart | 198¥ | 仪表盘 | +| 205 | LiquidChart | 198¥ | 水位图 | + +## 备注说明 + +1. __`付费定制`__ 是指用户可根据自己的需求定制不同的图表或新功能,只有`VIP`用户才享有`付费定制`权利。 +2. __`付费加急`__ 是指用户可对自己非常紧急的需求进行付费,将开发优先级提到最高,并可要求在`Deadline`内交付,只有`VIP`用户才享有`付费加急`权利。 +3. __`付费咨询`__ 付费咨询有效期`7`天,且总咨询时长不超过`7`个小时。 +4. __`扩展图表`__ 购买后代码可永久持有和商用,更新支持1年。超过1年后还需要更新支持的话,需要订阅`VIP`服务。 + +## 捐助支持 + +如果这个项目对您有帮助,请右上方点 `Star` 予以支持!也欢迎任意金额的捐助,非常您的支持! + +![alipay-qrcode](res/alipay.png) +![wechat-qrcode](res/wechat.png) diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/SUPPORT.md.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/SUPPORT.md.meta new file mode 100644 index 0000000..588d0ee --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/SUPPORT.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 40051c210ea1244a99317f3264ac567f +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsAPI-EN.md b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsAPI-EN.md new file mode 100644 index 0000000..17c7136 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsAPI-EN.md @@ -0,0 +1,1075 @@ +# Chart API + +[XCharts Homepage](https://github.com/XCharts-Team/XCharts)
+[XCharts Configuration](XChartsConfiguration-EN.md)
+[XCharts FAQ](XChartsFAQ-EN.md) + +## Class + +- [AnimationStyleHelper](#AnimationStyleHelper) +- [AxisContext](#AxisContext) +- [AxisHandler](#AxisHandler) +- [AxisHelper](#AxisHelper) +- [BarChart](#BarChart) +- [BaseChart](#BaseChart) +- [BaseGraph](#BaseGraph) +- [CandlestickChart](#CandlestickChart) +- [ChartCached](#ChartCached) +- [ChartConst](#ChartConst) +- [ChartDrawer](#ChartDrawer) +- [ChartHelper](#ChartHelper) +- [ChartLabel](#ChartLabel) +- [ChartObject](#ChartObject) +- [CheckHelper](#CheckHelper) +- [ColorUtil](#ColorUtil) +- [ComponentHandlerAttribute](#ComponentHandlerAttribute) +- [ComponentHelper](#ComponentHelper) +- [CoordOptionsAttribute](#CoordOptionsAttribute) +- [DataZoomContext](#DataZoomContext) +- [DataZoomHelper](#DataZoomHelper) +- [DateTimeUtil](#DateTimeUtil) +- [DefaultAnimationAttribute](#DefaultAnimationAttribute) +- [DefineSymbolsUtil](#DefineSymbolsUtil) +- [FormatterHelper](#FormatterHelper) +- [GridCoordContext](#GridCoordContext) +- [HeatmapChart](#HeatmapChart) +- [IgnoreDoc](#IgnoreDoc) +- [InteractData](#InteractData) +- [LayerHelper](#LayerHelper) +- [LegendContext](#LegendContext) +- [LegendHelper](#LegendHelper) +- [LegendItem](#LegendItem) +- [LineChart](#LineChart) +- [ListFor](#ListFor) +- [ListForComponent](#ListForComponent) +- [ListForSerie](#ListForSerie) +- [MainComponentContext](#MainComponentContext) +- [MainComponentHandler](#MainComponentHandler) +- [MainComponentHandler](#MainComponentHandler) +- [MathUtil](#MathUtil) +- [ObjectPool where T](#ObjectPool where T) +- [Painter](#Painter) +- [ParallelChart](#ParallelChart) +- [ParallelCoordContext](#ParallelCoordContext) +- [PieChart](#PieChart) +- [PolarChart](#PolarChart) +- [PolarCoordContext](#PolarCoordContext) +- [ProgressBar](#ProgressBar) +- [PropertyUtil](#PropertyUtil) +- [RadarChart](#RadarChart) +- [RadarCoordContext](#RadarCoordContext) +- [ReflectionUtil](#ReflectionUtil) +- [RequireChartComponentAttribute](#RequireChartComponentAttribute) +- [RingChart](#RingChart) +- [RuntimeUtil](#RuntimeUtil) +- [ScatterChart](#ScatterChart) +- [SerieContext](#SerieContext) +- [SerieConvertAttribute](#SerieConvertAttribute) +- [SerieDataContext](#SerieDataContext) +- [SerieDataExtraComponentAttribute](#SerieDataExtraComponentAttribute) +- [SerieDataExtraFieldAttribute](#SerieDataExtraFieldAttribute) +- [SerieExtraComponentAttribute](#SerieExtraComponentAttribute) +- [SerieHandler](#SerieHandler) +- [SerieHandler](#SerieHandler) +- [SerieHandlerAttribute](#SerieHandlerAttribute) +- [SerieHelper](#SerieHelper) +- [SerieLabelHelper](#SerieLabelHelper) +- [SerieLabelPool](#SerieLabelPool) +- [SerieParams](#SerieParams) +- [SeriesHelper](#SeriesHelper) +- [SimplifiedBarChart](#SimplifiedBarChart) +- [SimplifiedCandlestickChart](#SimplifiedCandlestickChart) +- [SimplifiedLineChart](#SimplifiedLineChart) +- [SVG](#SVG) +- [SVGImage](#SVGImage) +- [SVGPath](#SVGPath) +- [SVGPathSeg](#SVGPathSeg) +- [TooltipContext](#TooltipContext) +- [TooltipData](#TooltipData) +- [TooltipHelper](#TooltipHelper) +- [TooltipView](#TooltipView) +- [TooltipViewItem](#TooltipViewItem) +- [UGL](#UGL) +- [UGLExample](#UGLExample) +- [UGLHelper](#UGLHelper) +- [VisualMapContext](#VisualMapContext) +- [VisualMapHelper](#VisualMapHelper) +- [XChartsMgr](#XChartsMgr) +- [XCResourceImporterWindow](#XCResourceImporterWindow) +- [XCThemeMgr](#XCThemeMgr) + +## `AnimationStyleHelper` + +|public method|description| +|--|--| +| `CheckDataAnimation()` |public static float CheckDataAnimation(BaseChart chart, Serie serie, int dataIndex, float destProgress, float startPorgress = 0)
| +| `GetAnimationPosition()` |public static bool GetAnimationPosition(AnimationStyle animation, bool isY, Vector3 lp, Vector3 cp, float progress, ref Vector3 ip)
| +| `UpdateAnimationType()` |public static void UpdateAnimationType(AnimationStyle animation, AnimationType defaultType)
| +| `UpdateSerieAnimation()` |public static void UpdateSerieAnimation(Serie serie)
| + +## `AxisContext` + +Inherits or Implemented: [MainComponentContext](#MainComponentContext) + +## `AxisHandler` + +Inherits or Implemented: [MainComponentHandler](#MainComponentHandler) + +## `AxisHelper` + +|public method|description| +|--|--| +| `AdjustCircleLabelPos()` |public static void AdjustCircleLabelPos(ChartLabel txt, Vector3 pos, Vector3 cenPos, float txtHig, Vector3 offset)
| +| `AdjustMinMaxValue()` |public static void AdjustMinMaxValue(Axis axis, ref double minValue, ref double maxValue, bool needFormat, int ceilRate = 0)
调整最大最小值 | +| `AdjustRadiusAxisLabelPos()` |public static void AdjustRadiusAxisLabelPos(ChartLabel txt, Vector3 pos, Vector3 cenPos, float txtHig, Vector3 offset)
| +| `GetAxisLineArrowOffset()` |public static float GetAxisLineArrowOffset(Axis axis)
包含箭头偏移的轴线长度 | +| `GetAxisPosition()` |public static float GetAxisPosition(GridCoord grid, Axis axis, double value, int dataCount = 0, DataZoom dataZoom = null)
| +| `GetAxisPositionValue()` |public static double GetAxisPositionValue(float xy, float axisLength, double axisRange, float axisStart, float axisOffset)
| +| `GetAxisPositionValue()` |public static double GetAxisPositionValue(GridCoord grid, Axis axis, Vector3 pos)
| +| `GetAxisValueDistance()` |public static float GetAxisValueDistance(GridCoord grid, Axis axis, float scaleWidth, double value)
获得数值value在坐标轴上相对起点的距离 | +| `GetAxisValueLength()` |public static float GetAxisValueLength(GridCoord grid, Axis axis, float scaleWidth, double value)
获得数值value在坐标轴上对应的长度 | +| `GetAxisValuePosition()` |public static float GetAxisValuePosition(GridCoord grid, Axis axis, float scaleWidth, double value)
获得数值value在坐标轴上的坐标位置 | +| `GetDataWidth()` |public static float GetDataWidth(Axis axis, float coordinateWidth, int dataCount, DataZoom dataZoom)
获得一个类目数据在坐标系中代表的宽度 | +| `GetEachWidth()` |public static float GetEachWidth(Axis axis, float coordinateWidth, DataZoom dataZoom = null)
| +| `GetScaleNumber()` |public static int GetScaleNumber(Axis axis, float coordinateWidth, DataZoom dataZoom = null)
获得分割线条数 | +| `GetScaleWidth()` |public static float GetScaleWidth(Axis axis, float coordinateWidth, int index, DataZoom dataZoom = null)
获得分割段宽度 | +| `GetSplitNumber()` |public static int GetSplitNumber(Axis axis, float coordinateWid, DataZoom dataZoom)
获得分割段数 | +| `NeedShowSplit()` |public static bool NeedShowSplit(Axis axis)
| + +## `BarChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `BaseChart` + +Inherits or Implemented: [BaseGraph](#BaseGraph),[ISerializationCallbackReceiver](#ISerializationCallbackReceiver) + +|public method|description| +|--|--| +| `AddChartComponent()` |public MainComponent AddChartComponent(Type type)
| +| `AddData()` |public SerieData AddData(int serieIndex, DateTime time, double yValue, string dataName = null, string dataId = null)
Add a (time,y) data to serie. | +| `AddData()` |public SerieData AddData(int serieIndex, double data, string dataName = null, string dataId = null)
Add a data to serie. | +| `AddData()` |public SerieData AddData(int serieIndex, double open, double close, double lowest, double heighest, string dataName = null, string dataId = null)
| +| `AddData()` |public SerieData AddData(int serieIndex, double xValue, double yValue, string dataName = null, string dataId = null)
Add a (x,y) data to serie. | +| `AddData()` |public SerieData AddData(int serieIndex, List multidimensionalData, string dataName = null, string dataId = null)
Add an arbitray dimension data to serie,such as (x,y,z,...). | +| `AddData()` |public SerieData AddData(string serieName, DateTime time, double yValue, string dataName = null, string dataId = null)
Add a (time,y) data to serie. | +| `AddData()` |public SerieData AddData(string serieName, double data, string dataName = null, string dataId = null)
Add a data to serie. | +| `AddData()` |public SerieData AddData(string serieName, double open, double close, double lowest, double heighest, string dataName = null, string dataId = null)
| +| `AddData()` |public SerieData AddData(string serieName, double xValue, double yValue, string dataName = null, string dataId = null)
Add a (x,y) data to serie. | +| `AddData()` |public SerieData AddData(string serieName, List multidimensionalData, string dataName = null, string dataId = null)
Add an arbitray dimension data to serie,such as (x,y,z,...). | +| `AddXAxisData()` |public void AddXAxisData(string category, int xAxisIndex = 0)
Add a category data to xAxis. | +| `AddXAxisIcon()` |public void AddXAxisIcon(Sprite icon, int xAxisIndex = 0)
Add an icon to xAxis. | +| `AddYAxisData()` |public void AddYAxisData(string category, int yAxisIndex = 0)
Add a category data to yAxis. | +| `AddYAxisIcon()` |public void AddYAxisIcon(Sprite icon, int yAxisIndex = 0)
Add an icon to yAxis. | +| `AnimationEnable()` |public void AnimationEnable(bool flag)
Whether series animation enabel. | +| `AnimationFadeIn()` |public void AnimationFadeIn()
fadeIn animation. | +| `AnimationFadeOut()` |public void AnimationFadeOut()
fadeIn animation. | +| `AnimationPause()` |public void AnimationPause()
Pause animation. | +| `AnimationReset()` |public void AnimationReset()
Reset animation. | +| `AnimationResume()` |public void AnimationResume()
Stop play animation. | +| `CanAddChartComponent()` |public bool CanAddChartComponent(Type type)
| +| `CanAddSerie()` |public bool CanAddSerie(Type type)
| +| `CanMultipleComponent()` |public bool CanMultipleComponent(Type type)
| +| `ClampInChart()` |public void ClampInChart(ref Vector3 pos)
| +| `ClampInGrid()` |public Vector3 ClampInGrid(GridCoord grid, Vector3 pos)
| +| `ClearData()` |public virtual void ClearData()
Remove all series and legend data. | +| `ClickLegendButton()` |public void ClickLegendButton(int legendIndex, string legendName, bool show)
点击图例按钮 | +| `CovertSerie()` |public bool CovertSerie(Serie serie, Type type)
| +| `CovertXYAxis()` |public void CovertXYAxis(int index)
转换X轴和Y轴的配置 | +| `GenerateDefaultSerieName()` |public string GenerateDefaultSerieName()
| +| `GetAllSerieDataCount()` |public int GetAllSerieDataCount()
| +| `GetChartBackgroundColor()` |public Color32 GetChartBackgroundColor()
| +| `GetChartComponentNum()` |public int GetChartComponentNum(Type type)
| +| `GetData()` |public double GetData(int serieIndex, int dataIndex, int dimension = 1)
| +| `GetData()` |public double GetData(string serieName, int dataIndex, int dimension = 1)
| +| `GetDataZoomOfAxis()` |public DataZoom GetDataZoomOfAxis(Axis axis)
| +| `GetDataZoomOfSerie()` |public void GetDataZoomOfSerie(Serie serie, out DataZoom xDataZoom, out DataZoom yDataZoom)
| +| `GetGrid()` |public GridCoord GetGrid(Vector2 local)
| +| `GetGridOfDataZoom()` |public GridCoord GetGridOfDataZoom(DataZoom dataZoom)
| +| `GetItemColor()` |public Color32 GetItemColor(Serie serie, bool highlight = false)
| +| `GetItemColor()` |public Color32 GetItemColor(Serie serie, SerieData serieData, bool highlight = false)
| +| `GetLegendRealShowNameColor()` |public Color32 GetLegendRealShowNameColor(string name)
| +| `GetLegendRealShowNameIndex()` |public int GetLegendRealShowNameIndex(string name)
| +| `GetPainter()` |public Painter GetPainter(int index)
| +| `GetSerie()` |public Serie GetSerie(int serieIndex)
| +| `GetSerie()` |public Serie GetSerie(string serieName)
| +| `GetSeriesMinMaxValue()` |public virtual void GetSeriesMinMaxValue(Axis axis, int axisIndex, out double tempMinValue, out double tempMaxValue)
| +| `GetTitlePosition()` |public Vector3 GetTitlePosition(Title title)
| +| `GetVisualMapOfSerie()` |public VisualMap GetVisualMapOfSerie(Serie serie)
| +| `GetXLerpColor()` |public Color32 GetXLerpColor(Color32 areaColor, Color32 areaToColor, Vector3 pos, GridCoord grid)
| +| `GetYLerpColor()` |public Color32 GetYLerpColor(Color32 areaColor, Color32 areaToColor, Vector3 pos, GridCoord grid)
| +| `HasChartComponent()` |public bool HasChartComponent(Type type)
| +| `HasChartComponent()` |public bool HasChartComponent()
| +| `HasSerie()` |public bool HasSerie(Type type)
| +| `Init()` |public void Init(bool defaultChart = true)
| +| `InitAxisRuntimeData()` |public virtual void InitAxisRuntimeData(Axis axis)
| +| `InsertSerie()` |public void InsertSerie(Serie serie, int index = -1, bool addToHead = false)
| +| `Internal_CheckAnimation()` |public void Internal_CheckAnimation()
| +| `IsActiveByLegend()` |public virtual bool IsActiveByLegend(string legendName)
Whether serie is activated. | +| `IsAllAxisCategory()` |public bool IsAllAxisCategory()
纯类目轴。 | +| `IsAllAxisValue()` |public bool IsAllAxisValue()
reutrn true when all the show axis is `Value` type. | +| `IsInAnyGrid()` |public bool IsInAnyGrid(Vector2 local)
| +| `IsInChart()` |public bool IsInChart(float x, float y)
| +| `IsInChart()` |public bool IsInChart(Vector2 local)
坐标是否在图表范围内 | +| `IsSerieName()` |public bool IsSerieName(string name)
| +| `MoveDownSerie()` |public bool MoveDownSerie(int serieIndex)
| +| `MoveUpSerie()` |public bool MoveUpSerie(int serieIndex)
| +| `OnAfterDeserialize()` |public void OnAfterDeserialize()
| +| `OnBeforeSerialize()` |public void OnBeforeSerialize()
| +| `OnBeginDrag()` |public override void OnBeginDrag(PointerEventData eventData)
| +| `OnDataZoomRangeChanged()` |public virtual void OnDataZoomRangeChanged(DataZoom dataZoom)
| +| `OnDrag()` |public override void OnDrag(PointerEventData eventData)
| +| `OnEndDrag()` |public override void OnEndDrag(PointerEventData eventData)
| +| `OnLegendButtonClick()` |public virtual void OnLegendButtonClick(int index, string legendName, bool show)
| +| `OnLegendButtonEnter()` |public virtual void OnLegendButtonEnter(int index, string legendName)
| +| `OnLegendButtonExit()` |public virtual void OnLegendButtonExit(int index, string legendName)
| +| `OnPointerClick()` |public override void OnPointerClick(PointerEventData eventData)
| +| `OnPointerDown()` |public override void OnPointerDown(PointerEventData eventData)
| +| `OnPointerEnter()` |public override void OnPointerEnter(PointerEventData eventData)
| +| `OnPointerExit()` |public override void OnPointerExit(PointerEventData eventData)
| +| `OnPointerUp()` |public override void OnPointerUp(PointerEventData eventData)
| +| `OnScroll()` |public override void OnScroll(PointerEventData eventData)
| +| `RefreshBasePainter()` |public void RefreshBasePainter()
| +| `RefreshChart()` |public void RefreshChart()
Redraw chart in next frame. | +| `RefreshChart()` |public void RefreshChart(int serieIndex)
Redraw chart serie in next frame. | +| `RefreshChart()` |public void RefreshChart(Serie serie)
Redraw chart serie in next frame. | +| `RefreshDataZoom()` |public void RefreshDataZoom()
在下一帧刷新DataZoom | +| `RefreshPainter()` |public void RefreshPainter(int index)
| +| `RefreshPainter()` |public void RefreshPainter(Serie serie)
| +| `RefreshTopPainter()` |public void RefreshTopPainter()
| +| `RemoveAllChartComponent()` |public void RemoveAllChartComponent()
| +| `RemoveChartComponent()` |public bool RemoveChartComponent(MainComponent component)
| +| `RemoveChartComponent()` |public bool RemoveChartComponent(Type type, int index = 0)
| +| `RemoveChartComponent()` |public bool RemoveChartComponent(int index = 0)
| +| `RemoveChartComponents()` |public int RemoveChartComponents(Type type)
| +| `RemoveChartComponents()` |public int RemoveChartComponents()
| +| `RemoveData()` |public virtual void RemoveData()
Remove all data from series and legend. | +| `RemoveData()` |public virtual void RemoveData(string serieName)
Remove legend and serie by name. | +| `RemoveSerie()` |public void RemoveSerie(int serieIndex)
| +| `RemoveSerie()` |public void RemoveSerie(Serie serie)
| +| `RemoveSerie()` |public void RemoveSerie(string serieName)
| +| `ReplaceSerie()` |public bool ReplaceSerie(Serie oldSerie, Serie newSerie)
| +| `SetBasePainterMaterial()` |public void SetBasePainterMaterial(Material material)
设置Base Painter的材质球 | +| `SetMaxCache()` |public void SetMaxCache(int maxCache)
设置可缓存的最大数据量。当数据量超过该值时,会自动删除第一个值再加入最新值。 | +| `SetPainterActive()` |public void SetPainterActive(int index, bool flag)
| +| `SetSerieActive()` |public void SetSerieActive(int serieIndex, bool active)
Whether to show serie. | +| `SetSerieActive()` |public void SetSerieActive(Serie serie, bool active)
| +| `SetSerieActive()` |public void SetSerieActive(string serieName, bool active)
Whether to show serie. | +| `SetSeriePainterMaterial()` |public void SetSeriePainterMaterial(Material material)
设置Serie Painter的材质球 | +| `SetTopPainterMaterial()` |public void SetTopPainterMaterial(Material material)
设置Top Painter的材质球 | +| `TryAddChartComponent()` |public bool TryAddChartComponent(Type type)
| +| `TryGetChartComponent()` |public bool TryGetChartComponent(out T component, int index = 0)
| +| `UdpateXAxisIcon()` |public void UdpateXAxisIcon(int index, Sprite icon, int xAxisIndex = 0)
Update xAxis icon. | +| `UpdateData()` |public bool UpdateData(int serieIndex, int dataIndex, double value)
Update serie data by serie index. | +| `UpdateData()` |public bool UpdateData(int serieIndex, int dataIndex, int dimension, double value)
更新指定系列指定索引指定维数的数据。维数从0开始。 | +| `UpdateData()` |public bool UpdateData(int serieIndex, int dataIndex, List multidimensionalData)
更新指定系列指定索引的数据项的多维数据。 | +| `UpdateData()` |public bool UpdateData(string serieName, int dataIndex, double value)
Update serie data by serie name. | +| `UpdateData()` |public bool UpdateData(string serieName, int dataIndex, int dimension, double value)
更新指定系列指定索引指定维数的数据。维数从0开始。 | +| `UpdateData()` |public bool UpdateData(string serieName, int dataIndex, List multidimensionalData)
更新指定系列指定索引的数据项的多维数据。 | +| `UpdateDataName()` |public bool UpdateDataName(int serieIndex, int dataIndex, string dataName)
Update serie data name. | +| `UpdateDataName()` |public bool UpdateDataName(string serieName, int dataIndex, string dataName)
Update serie data name. | +| `UpdateLegendColor()` |public virtual void UpdateLegendColor(string legendName, bool active)
| +| `UpdateTheme()` |public bool UpdateTheme(ThemeType theme)
Update chart theme. | +| `UpdateTheme()` |public void UpdateTheme(Theme theme)
Update chart theme info. | +| `UpdateXAxisData()` |public void UpdateXAxisData(int index, string category, int xAxisIndex = 0)
Update category data. | +| `UpdateYAxisData()` |public void UpdateYAxisData(int index, string category, int yAxisIndex = 0)
Update category data. | +| `UpdateYAxisIcon()` |public void UpdateYAxisIcon(int index, Sprite icon, int yAxisIndex = 0)
更新Y轴图标。 | + +## `BaseGraph` + +Inherits or Implemented: [MaskableGraphic](#MaskableGraphic),[IPointerDownHandler](#IPointerDownHandler),[IPointerUpHandler](#IPointerUpHandler),[](#) + +|public method|description| +|--|--| +| `CheckWarning()` |public string CheckWarning()
检测警告信息。 | +| `OnBeginDrag()` |public virtual void OnBeginDrag(PointerEventData eventData)
| +| `OnDrag()` |public virtual void OnDrag(PointerEventData eventData)
| +| `OnEndDrag()` |public virtual void OnEndDrag(PointerEventData eventData)
| +| `OnPointerClick()` |public virtual void OnPointerClick(PointerEventData eventData)
| +| `OnPointerDown()` |public virtual void OnPointerDown(PointerEventData eventData)
| +| `OnPointerEnter()` |public virtual void OnPointerEnter(PointerEventData eventData)
| +| `OnPointerExit()` |public virtual void OnPointerExit(PointerEventData eventData)
| +| `OnPointerUp()` |public virtual void OnPointerUp(PointerEventData eventData)
| +| `OnScroll()` |public virtual void OnScroll(PointerEventData eventData)
| +| `RebuildChartObject()` |public void RebuildChartObject()
移除并重新创建所有图表的Object。 | +| `RefreshAllComponent()` |public void RefreshAllComponent()
| +| `RefreshGraph()` |public void RefreshGraph()
Redraw graph in next frame. | +| `ScreenPointToChartPoint()` |public bool ScreenPointToChartPoint(Vector2 screenPoint, out Vector2 chartPoint)
| +| `SetPainterDirty()` |public void SetPainterDirty()
重新初始化Painter | +| `SetSize()` |public virtual void SetSize(float width, float height)
设置图形的宽高(在非stretch pivot下才有效,其他情况需要自己调整RectTransform) | + +## `CandlestickChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `ChartCached` + +|public method|description| +|--|--| +| `ColorToDotStr()` |public static string ColorToDotStr(Color color)
| +| `ColorToStr()` |public static string ColorToStr(Color color)
| +| `FloatToStr()` |public static string FloatToStr(double value, string numericFormatter = "F", int precision = 0)
| +| `GetSerieLabelName()` |public static string GetSerieLabelName(string prefix, int i, int j)
| +| `IntToStr()` |public static string IntToStr(int value, string numericFormatter = "")
| +| `NumberToStr()` |public static string NumberToStr(double value, string formatter)
| + +## `ChartConst` + +## `ChartDrawer` + +## `ChartHelper` + +|public method|description| +|--|--| +| `ActiveAllObject()` |public static void ActiveAllObject(Transform parent, bool active, string match = null)
| +| `AddIcon()` |public static Image AddIcon(string name, Transform parent, IconStyle iconStyle)
| +| `Cancat()` |public static string Cancat(string str1, int i)
| +| `Cancat()` |public static string Cancat(string str1, string str2)
| +| `ClearEventListener()` |public static void ClearEventListener(GameObject obj)
| +| `CopyArray()` |public static bool CopyArray(T[] toList, T[] fromList)
| +| `CopyList()` |public static bool CopyList(List toList, List fromList)
| +| `DestoryGameObject()` |public static void DestoryGameObject(GameObject go)
| +| `DestoryGameObject()` |public static void DestoryGameObject(Transform parent, string childName)
| +| `DestoryGameObjectByMatch()` |public static void DestoryGameObjectByMatch(Transform parent, string match)
| +| `DestroyAllChildren()` |public static void DestroyAllChildren(Transform parent)
| +| `GetActualValue()` |public static float GetActualValue(float valueOrRate, float total, float maxRate = 1.5f)
| +| `GetAngle360()` |public static float GetAngle360(Vector2 from, Vector2 to)
获得0-360的角度(12点钟方向为0度) | +| `GetColor()` |public static Color32 GetColor(string hexColorStr)
| +| `GetDire()` |public static Vector3 GetDire(float angle, bool isDegree = false)
| +| `GetFloatAccuracy()` |public static int GetFloatAccuracy(double value)
| +| `GetFullName()` |public static string GetFullName(Transform transform)
| +| `GetHighlightColor()` |public static Color32 GetHighlightColor(Color32 color, float rate = 0.8f)
| +| `GetLastValue()` |public static Vector3 GetLastValue(List list)
| +| `GetMaxDivisibleValue()` |public static double GetMaxDivisibleValue(double max, int ceilRate)
| +| `GetMaxLogValue()` |public static double GetMaxLogValue(double value, float logBase, bool isLogBaseE, out int splitNumber)
| +| `GetMinDivisibleValue()` |public static double GetMinDivisibleValue(double min, int ceilRate)
| +| `GetMinLogValue()` |public static double GetMinLogValue(double value, float logBase, bool isLogBaseE, out int splitNumber)
| +| `GetPointList()` |public static void GetPointList(ref List posList, Vector3 sp, Vector3 ep, float k = 30f)
| +| `GetPos()` |public static Vector3 GetPos(Vector3 center, float radius, float angle, bool isDegree = false)
| +| `GetPosition()` |public static Vector3 GetPosition(Vector3 center, float angle, float radius)
| +| `GetVertialDire()` |public static Vector3 GetVertialDire(Vector3 dire)
| +| `HideAllObject()` |public static void HideAllObject(GameObject obj, string match = null)
| +| `HideAllObject()` |public static void HideAllObject(Transform parent, string match = null)
| +| `IsClearColor()` |public static bool IsClearColor(Color color)
| +| `IsClearColor()` |public static bool IsClearColor(Color32 color)
| +| `IsColorAlphaZero()` |public static bool IsColorAlphaZero(Color color)
| +| `IsEquals()` |public static bool IsEquals(double d1, double d2)
| +| `IsEquals()` |public static bool IsEquals(float d1, float d2)
| +| `IsIngore()` |public static bool IsIngore(Vector3 pos)
| +| `IsInRect()` |public static bool IsInRect(Vector3 pos, float xMin, float xMax, float yMin, float yMax)
| +| `IsPointInQuadrilateral()` |public static bool IsPointInQuadrilateral(Vector3 P, Vector3 A, Vector3 B, Vector3 C, Vector3 D)
| +| `IsValueEqualsColor()` |public static bool IsValueEqualsColor(Color color1, Color color2)
| +| `IsValueEqualsColor()` |public static bool IsValueEqualsColor(Color32 color1, Color32 color2)
| +| `IsValueEqualsList()` |public static bool IsValueEqualsList(List list1, List list2)
| +| `IsValueEqualsString()` |public static bool IsValueEqualsString(string str1, string str2)
| +| `IsValueEqualsVector2()` |public static bool IsValueEqualsVector2(Vector2 v1, Vector2 v2)
| +| `IsValueEqualsVector3()` |public static bool IsValueEqualsVector3(Vector3 v1, Vector3 v2)
| +| `IsZeroVector()` |public static bool IsZeroVector(Vector3 pos)
| +| `ParseFloatFromString()` |public static List ParseFloatFromString(string jsonData)
| +| `ParseStringFromString()` |public static List ParseStringFromString(string jsonData)
| +| `RemoveComponent()` |public static void RemoveComponent(GameObject gameObject)
| +| `RotateRound()` |public static Vector3 RotateRound(Vector3 position, Vector3 center, Vector3 axis, float angle)
| +| `SetActive()` |public static void SetActive(GameObject gameObject, bool active)
| +| `SetActive()` |public static void SetActive(Image image, bool active)
| +| `SetActive()` |public static void SetActive(Text text, bool active)
| +| `SetActive()` |public static void SetActive(Transform transform, bool active)
通过设置scale实现是否显示,优化性能,减少GC | +| `SetColorOpacity()` |public static void SetColorOpacity(ref Color32 color, float opacity)
| + +## `ChartLabel` + +Inherits or Implemented: [Image](#Image) + +|public method|description| +|--|--| +| `GetHeight()` |public float GetHeight()
| +| `GetPosition()` |public Vector3 GetPosition()
| +| `GetTextHeight()` |public float GetTextHeight()
| +| `GetTextWidth()` |public float GetTextWidth()
| +| `GetWidth()` |public float GetWidth()
| +| `SetActive()` |public void SetActive(bool flag)
| +| `SetIcon()` |public void SetIcon(Image image)
| +| `SetIconActive()` |public void SetIconActive(bool flag)
| +| `SetIconSize()` |public void SetIconSize(float width, float height)
| +| `SetIconSprite()` |public void SetIconSprite(Sprite sprite)
| +| `SetPadding()` |public void SetPadding(float[] padding)
| +| `SetPosition()` |public void SetPosition(Vector3 position)
| +| `SetRectPosition()` |public void SetRectPosition(Vector3 position)
| +| `SetSize()` |public void SetSize(float width, float height)
| +| `SetText()` |public bool SetText(string text)
| +| `SetTextActive()` |public void SetTextActive(bool flag)
| +| `SetTextColor()` |public void SetTextColor(Color color)
| +| `SetTextPadding()` |public void SetTextPadding(TextPadding padding)
| +| `SetTextRotate()` |public void SetTextRotate(float rotate)
| +| `UpdateIcon()` |public void UpdateIcon(IconStyle iconStyle, Sprite sprite = null)
| + +## `ChartObject` + +|public method|description| +|--|--| +| `Destroy()` |public virtual void Destroy()
| + +## `CheckHelper` + +|public method|description| +|--|--| +| `CheckChart()` |public static string CheckChart(BaseChart chart)
| +| `CheckChart()` |public static string CheckChart(BaseGraph chart)
| + +## `ColorUtil` + +|public method|description| +|--|--| +| `GetColor()` |public static Color32 GetColor(string hexColorStr)
Convert the html string to color. | + +## `ComponentHandlerAttribute` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `ComponentHandlerAttribute()` |public ComponentHandlerAttribute(Type handler)
| +| `ComponentHandlerAttribute()` |public ComponentHandlerAttribute(Type handler, bool allowMultiple)
| + +## `ComponentHelper` + +|public method|description| +|--|--| +| `GetAngleAxis()` |public static AngleAxis GetAngleAxis(List components, int polarIndex)
| +| `GetRadiusAxis()` |public static RadiusAxis GetRadiusAxis(List components, int polarIndex)
| +| `GetXAxisOnZeroOffset()` |public static float GetXAxisOnZeroOffset(List components, XAxis axis)
| +| `GetYAxisOnZeroOffset()` |public static float GetYAxisOnZeroOffset(List components, YAxis axis)
| +| `IsAnyCategoryOfYAxis()` |public static bool IsAnyCategoryOfYAxis(List components)
| + +## `CoordOptionsAttribute` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `CoordOptionsAttribute()` |public CoordOptionsAttribute(Type coord)
| +| `CoordOptionsAttribute()` |public CoordOptionsAttribute(Type coord, Type coord2)
| +| `CoordOptionsAttribute()` |public CoordOptionsAttribute(Type coord, Type coord2, Type coord3)
| +| `CoordOptionsAttribute()` |public CoordOptionsAttribute(Type coord, Type coord2, Type coord3, Type coord4)
| + +## `DataZoomContext` + +Inherits or Implemented: [MainComponentContext](#MainComponentContext) + +## `DataZoomHelper` + +|public method|description| +|--|--| +| `UpdateDataZoomRuntimeStartEndValue()` |public static void UpdateDataZoomRuntimeStartEndValue(DataZoom dataZoom, Serie serie)
| + +## `DateTimeUtil` + +|public method|description| +|--|--| +| `GetDateTime()` |public static DateTime GetDateTime(int timestamp)
| +| `GetTimestamp()` |public static int GetTimestamp()
| +| `GetTimestamp()` |public static int GetTimestamp(DateTime time)
| + +## `DefaultAnimationAttribute` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `DefaultAnimationAttribute()` |public DefaultAnimationAttribute(AnimationType handler)
| + +## `DefineSymbolsUtil` + +|public method|description| +|--|--| +| `AddGlobalDefine()` |public static void AddGlobalDefine(string symbol)
| +| `RemoveGlobalDefine()` |public static void RemoveGlobalDefine(string symbol)
| + +## `FormatterHelper` + +|public method|description| +|--|--| +| `NeedFormat()` |public static bool NeedFormat(string content)
| +| `ReplaceAxisLabelContent()` |public static void ReplaceAxisLabelContent(ref string content, string numericFormatter, double value)
| +| `ReplaceAxisLabelContent()` |public static void ReplaceAxisLabelContent(ref string content, string value)
| +| `TrimAndReplaceLine()` |public static string TrimAndReplaceLine(string content)
| +| `TrimAndReplaceLine()` |public static string TrimAndReplaceLine(StringBuilder sb)
| + +## `GridCoordContext` + +Inherits or Implemented: [MainComponentContext](#MainComponentContext) + +## `HeatmapChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `IgnoreDoc` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `IgnoreDoc()` |public IgnoreDoc()
| + +## `InteractData` + +|public method|description| +|--|--| +| `Reset()` |public void Reset()
| +| `SetColor()` |public void SetColor(ref bool needInteract, Color32 color)
| +| `SetColor()` |public void SetColor(ref bool needInteract, Color32 color, Color32 toColor)
| +| `SetValue()` |public void SetValue(ref bool needInteract, float size)
| +| `SetValue()` |public void SetValue(ref bool needInteract, float size, bool highlight, float rate = 1.3f)
| +| `SetValueAndColor()` |public void SetValueAndColor(ref bool needInteract, float value, Color32 color)
| +| `SetValueAndColor()` |public void SetValueAndColor(ref bool needInteract, float value, Color32 color, Color32 toColor)
| +| `TryGetColor()` |public bool TryGetColor(ref Color32 color, ref bool interacting, float animationDuration = 250)
| +| `TryGetColor()` |public bool TryGetColor(ref Color32 color, ref Color32 toColor, ref bool interacting, float animationDuration = 250)
| +| `TryGetValue()` |public bool TryGetValue(ref float value, ref bool interacting, float animationDuration = 250)
| +| `TryGetValueAndColor()` |public bool TryGetValueAndColor(ref float value, ref Color32 color, ref Color32 toColor, ref bool interacting, float animationDuration = 250)
| + +## `LayerHelper` + +|public method|description| +|--|--| +| `IsFixedWidthHeight()` |public static bool IsFixedWidthHeight(RectTransform rt)
| +| `IsStretchPivot()` |public static bool IsStretchPivot(RectTransform rt)
| + +## `LegendContext` + +Inherits or Implemented: [MainComponentContext](#MainComponentContext) + +## `LegendHelper` + +|public method|description| +|--|--| +| `CheckDataHighlighted()` |public static bool CheckDataHighlighted(Serie serie, string legendName, bool heighlight)
| +| `CheckDataShow()` |public static bool CheckDataShow(Serie serie, string legendName, bool show)
| +| `GetContentColor()` |public static Color GetContentColor(BaseChart chart, int legendIndex, string legendName, Legend legend, ThemeStyle theme, bool active)
| +| `GetIconColor()` |public static Color GetIconColor(BaseChart chart, Legend legend, int readIndex, string legendName, bool active)
| +| `ResetItemPosition()` |public static void ResetItemPosition(Legend legend, Vector3 chartPos, float chartWidth, float chartHeight)
| + +## `LegendItem` + +|public method|description| +|--|--| +| `GetIconColor()` |public Color GetIconColor()
| +| `GetIconRect()` |public Rect GetIconRect()
| +| `SetActive()` |public void SetActive(bool active)
| +| `SetButton()` |public void SetButton(Button button)
| +| `SetContent()` |public bool SetContent(string content)
| +| `SetContentBackgroundColor()` |public void SetContentBackgroundColor(Color color)
| +| `SetContentColor()` |public void SetContentColor(Color color)
| +| `SetContentPosition()` |public void SetContentPosition(Vector3 offset)
| +| `SetIcon()` |public void SetIcon(Image icon)
| +| `SetIconActive()` |public void SetIconActive(bool active)
| +| `SetIconColor()` |public void SetIconColor(Color color)
| +| `SetIconImage()` |public void SetIconImage(Sprite image)
| +| `SetIconSize()` |public void SetIconSize(float width, float height)
| +| `SetObject()` |public void SetObject(GameObject obj)
| +| `SetPosition()` |public void SetPosition(Vector3 position)
| +| `SetText()` |public void SetText(ChartText text)
| +| `SetTextBackground()` |public void SetTextBackground(Image image)
| + +## `LineChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `ListFor` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `ListFor()` |public ListFor(Type type)
| + +## `ListForComponent` + +Inherits or Implemented: [ListFor](#ListFor) + +|public method|description| +|--|--| +| `ListForComponent()` |public ListForComponent(Type type) : base(type)
| + +## `ListForSerie` + +Inherits or Implemented: [ListFor](#ListFor) + +|public method|description| +|--|--| +| `ListForSerie()` |public ListForSerie(Type type) : base(type)
| + +## `MainComponentContext` + +## `MainComponentHandler` + +## `MainComponentHandler` + +Inherits or Implemented: [MainComponentHandler](#MainComponentHandler) + +## `MathUtil` + +|public method|description| +|--|--| +| `Abs()` |public static double Abs(double d)
| +| `Approximately()` |public static bool Approximately(double a, double b)
| +| `Clamp()` |public static double Clamp(double d, double min, double max)
| +| `Clamp01()` |public static double Clamp01(double value)
| +| `Lerp()` |public static double Lerp(double a, double b, double t)
| + +## `ObjectPool where T` + +Inherits or Implemented: [new()](#new()) + +|public method|description| +|--|--| +| `ClearAll()` |public void ClearAll()
| +| `Get()` |public T Get()
| +| `new()` |public class ObjectPool where T : new()
| +| `ObjectPool()` |public ObjectPool(UnityAction actionOnGet, UnityAction actionOnRelease, bool newIfEmpty = true)
| +| `Release()` |public void Release(T element)
| + +## `Painter` + +Inherits or Implemented: [MaskableGraphic](#MaskableGraphic) + +|public method|description| +|--|--| +| `Init()` |public void Init()
| +| `Refresh()` |public void Refresh()
| +| `SetActive()` |public void SetActive(bool flag, bool isDebugMode = false)
| + +## `ParallelChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `ParallelCoordContext` + +Inherits or Implemented: [MainComponentContext](#MainComponentContext) + +## `PieChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `PolarChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `PolarCoordContext` + +Inherits or Implemented: [MainComponentContext](#MainComponentContext) + +## `ProgressBar` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `PropertyUtil` + +|public method|description| +|--|--| +| `SetColor()` |public static bool SetColor(ref Color currentValue, Color newValue)
| +| `SetColor()` |public static bool SetColor(ref Color32 currentValue, Color32 newValue)
| + +## `RadarChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `RadarCoordContext` + +Inherits or Implemented: [MainComponentContext](#MainComponentContext) + +## `ReflectionUtil` + +|public method|description| +|--|--| +| `DeepCloneSerializeField()` |public static object DeepCloneSerializeField(object obj)
| +| `InvokeListAdd()` |public static void InvokeListAdd(object obj, FieldInfo field, object item)
| +| `InvokeListAddTo()` |public static void InvokeListAddTo(object obj, FieldInfo field, Action callback)
| +| `InvokeListClear()` |public static void InvokeListClear(object obj, FieldInfo field)
| +| `InvokeListCount()` |public static int InvokeListCount(object obj, FieldInfo field)
| +| `InvokeListGet()` |public static T InvokeListGet(object obj, FieldInfo field, int i)
| + +## `RequireChartComponentAttribute` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `RequireChartComponentAttribute()` |public RequireChartComponentAttribute(Type requiredComponent)
| +| `RequireChartComponentAttribute()` |public RequireChartComponentAttribute(Type requiredComponent, Type requiredComponent2)
| +| `RequireChartComponentAttribute()` |public RequireChartComponentAttribute(Type requiredComponent, Type requiredComponent2, Type requiredComponent3)
| + +## `RingChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `RuntimeUtil` + +|public method|description| +|--|--| +| `GetAllAssemblyTypes()` |public static IEnumerable GetAllAssemblyTypes()
| +| `GetAllTypesDerivedFrom()` |public static IEnumerable GetAllTypesDerivedFrom(Type type)
| +| `GetAllTypesDerivedFrom()` |public static IEnumerable GetAllTypesDerivedFrom()
| +| `HasSubclass()` |public static bool HasSubclass(Type type)
| + +## `ScatterChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `SerieContext` + +## `SerieConvertAttribute` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `Contains()` |public bool Contains(Type type)
| +| `SerieConvertAttribute()` |public SerieConvertAttribute(Type serie)
| +| `SerieConvertAttribute()` |public SerieConvertAttribute(Type serie, Type serie2)
| +| `SerieConvertAttribute()` |public SerieConvertAttribute(Type serie, Type serie2, Type serie3)
| +| `SerieConvertAttribute()` |public SerieConvertAttribute(Type serie, Type serie2, Type serie3, Type serie4)
| + +## `SerieDataContext` + +|public method|description| +|--|--| +| `Reset()` |public void Reset()
| + +## `SerieDataExtraComponentAttribute` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `Contains()` |public bool Contains(Type type)
| +| `SerieDataExtraComponentAttribute()` |public SerieDataExtraComponentAttribute()
| +| `SerieDataExtraComponentAttribute()` |public SerieDataExtraComponentAttribute(Type type1)
| +| `SerieDataExtraComponentAttribute()` |public SerieDataExtraComponentAttribute(Type type1, Type type2)
| +| `SerieDataExtraComponentAttribute()` |public SerieDataExtraComponentAttribute(Type type1, Type type2, Type type3)
| +| `SerieDataExtraComponentAttribute()` |public SerieDataExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4)
| +| `SerieDataExtraComponentAttribute()` |public SerieDataExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5)
| +| `SerieDataExtraComponentAttribute()` |public SerieDataExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5, Type type6)
| +| `SerieDataExtraComponentAttribute()` |public SerieDataExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5, Type type6, Type type7)
| + +## `SerieDataExtraFieldAttribute` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `Contains()` |public bool Contains(string field)
| +| `SerieDataExtraFieldAttribute()` |public SerieDataExtraFieldAttribute()
| +| `SerieDataExtraFieldAttribute()` |public SerieDataExtraFieldAttribute(string field1)
| +| `SerieDataExtraFieldAttribute()` |public SerieDataExtraFieldAttribute(string field1, string field2)
| +| `SerieDataExtraFieldAttribute()` |public SerieDataExtraFieldAttribute(string field1, string field2, string field3)
| +| `SerieDataExtraFieldAttribute()` |public SerieDataExtraFieldAttribute(string field1, string field2, string field3, string field4)
| +| `SerieDataExtraFieldAttribute()` |public SerieDataExtraFieldAttribute(string field1, string field2, string field3, string field4, string field5)
| +| `SerieDataExtraFieldAttribute()` |public SerieDataExtraFieldAttribute(string field1, string field2, string field3, string field4, string field5, string field6)
| +| `SerieDataExtraFieldAttribute()` |public SerieDataExtraFieldAttribute(string field1, string field2, string field3, string field4, string field5, string field6, string field7)
| + +## `SerieExtraComponentAttribute` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `Contains()` |public bool Contains(Type type)
| +| `SerieExtraComponentAttribute()` |public SerieExtraComponentAttribute()
| +| `SerieExtraComponentAttribute()` |public SerieExtraComponentAttribute(Type type1)
| +| `SerieExtraComponentAttribute()` |public SerieExtraComponentAttribute(Type type1, Type type2)
| +| `SerieExtraComponentAttribute()` |public SerieExtraComponentAttribute(Type type1, Type type2, Type type3)
| +| `SerieExtraComponentAttribute()` |public SerieExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4)
| +| `SerieExtraComponentAttribute()` |public SerieExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5)
| +| `SerieExtraComponentAttribute()` |public SerieExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5, Type type6)
| +| `SerieExtraComponentAttribute()` |public SerieExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5, Type type6, Type type7)
| + +## `SerieHandler` + +## `SerieHandler` + +Inherits or Implemented: [SerieHandler where T](#SerieHandler where T),[Serie](#Serie) + +|public method|description| +|--|--| +| `GetSerieDataAutoColor()` |public virtual Color GetSerieDataAutoColor(SerieData serieData)
| +| `GetSerieDataLabelOffset()` |public virtual Vector3 GetSerieDataLabelOffset(SerieData serieData, LabelStyle label)
| +| `GetSerieDataLabelPosition()` |public virtual Vector3 GetSerieDataLabelPosition(SerieData serieData, LabelStyle label)
| +| `GetSerieDataTitlePosition()` |public virtual Vector3 GetSerieDataTitlePosition(SerieData serieData, TitleStyle titleStyle)
| +| `InitComponent()` |public override void InitComponent()
| +| `OnLegendButtonClick()` |public override void OnLegendButtonClick(int index, string legendName, bool show)
| +| `OnLegendButtonEnter()` |public override void OnLegendButtonEnter(int index, string legendName)
| +| `OnLegendButtonExit()` |public override void OnLegendButtonExit(int index, string legendName)
| +| `RefreshEndLabelInternal()` |public virtual void RefreshEndLabelInternal()
| +| `RefreshLabelInternal()` |public override void RefreshLabelInternal()
| +| `RefreshLabelNextFrame()` |public override void RefreshLabelNextFrame()
| +| `RemoveComponent()` |public override void RemoveComponent()
| +| `Update()` |public override void Update()
| + +## `SerieHandlerAttribute` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `SerieHandlerAttribute()` |public SerieHandlerAttribute(Type handler)
| +| `SerieHandlerAttribute()` |public SerieHandlerAttribute(Type handler, bool allowMultiple)
| + +## `SerieHelper` + +|public method|description| +|--|--| +| `CopySerie()` |public static void CopySerie(Serie oldSerie, Serie newSerie)
| +| `GetAllMinMaxData()` |public static void GetAllMinMaxData(Serie serie, int ceilRate = 0, DataZoom dataZoom = null)
| +| `GetAreaColor()` |public static Color32 GetAreaColor(Serie serie, SerieData serieData, ThemeStyle theme, int index, bool highlight)
| +| `GetAreaStyle()` |public static AreaStyle GetAreaStyle(Serie serie, SerieData serieData)
| +| `GetAreaToColor()` |public static Color32 GetAreaToColor(Serie serie, SerieData serieData, ThemeStyle theme, int index, bool highlight)
| +| `GetAverageData()` |public static double GetAverageData(Serie serie, int dimension = 1, DataZoom dataZoom = null)
| +| `GetItemColor()` |public static Color32 GetItemColor(Serie serie, SerieData serieData, ThemeStyle theme, int index, bool highlight, bool opacity = true)
| +| `GetItemColor0()` |public static Color32 GetItemColor0(Serie serie, SerieData serieData, ThemeStyle theme, bool highlight, Color32 defaultColor)
| +| `GetItemFormatter()` |public static string GetItemFormatter(Serie serie, SerieData serieData, string defaultFormatter = null)
| +| `GetItemMarker()` |public static string GetItemMarker(Serie serie, SerieData serieData, string defaultMarker = null)
| +| `GetItemStyle()` |public static ItemStyle GetItemStyle(Serie serie, SerieData serieData, bool highlight = false)
| +| `GetItemStyleEmphasis()` |public static ItemStyle GetItemStyleEmphasis(Serie serie, SerieData serieData)
| +| `GetItemToColor()` |public static Color32 GetItemToColor(Serie serie, SerieData serieData, ThemeStyle theme, int index, bool highlight, bool opacity = true)
| +| `GetLineColor()` |public static Color32 GetLineColor(Serie serie, SerieData serieData, ThemeStyle theme, int index, bool highlight)
| +| `GetLineStyle()` |public static LineStyle GetLineStyle(Serie serie, SerieData serieData)
| +| `GetMaxData()` |public static double GetMaxData(Serie serie, int dimension = 1, DataZoom dataZoom = null)
| +| `GetMaxSerieData()` |public static SerieData GetMaxSerieData(Serie serie, int dimension = 1, DataZoom dataZoom = null)
| +| `GetMedianData()` |public static double GetMedianData(Serie serie, int dimension = 1, DataZoom dataZoom = null)
| +| `GetMinData()` |public static double GetMinData(Serie serie, int dimension = 1, DataZoom dataZoom = null)
| +| `GetMinMaxData()` |public static void GetMinMaxData(Serie serie, out double min, out double max, DataZoom dataZoom = null, int dimension = 0)
Gets the maximum and minimum values of all data in the serie. | +| `GetMinSerieData()` |public static SerieData GetMinSerieData(Serie serie, int dimension = 1, DataZoom dataZoom = null)
| +| `GetNumericFormatter()` |public static string GetNumericFormatter(Serie serie, SerieData serieData, string defaultFormatter = null)
| +| `GetSerieEmphasisLabel()` |public static LabelStyle GetSerieEmphasisLabel(Serie serie, SerieData serieData)
| +| `GetSerieLabel()` |public static LabelStyle GetSerieLabel(Serie serie, SerieData serieData, bool highlight = false)
| +| `GetSerieLabelLine()` |public static LabelLine GetSerieLabelLine(Serie serie, SerieData serieData, bool highlight = false)
| +| `GetSerieSymbol()` |public static SerieSymbol GetSerieSymbol(Serie serie, SerieData serieData)
| +| `GetSymbolBorder()` |public static float GetSymbolBorder(Serie serie, SerieData serieData, ThemeStyle theme, bool highlight)
| +| `GetSymbolBorder()` |public static float GetSymbolBorder(Serie serie, SerieData serieData, ThemeStyle theme, bool highlight, float defaultWidth)
| +| `GetSymbolBorderColor()` |public static Color32 GetSymbolBorderColor(Serie serie, SerieData serieData, ThemeStyle theme, bool highlight)
| +| `GetSymbolCornerRadius()` |public static float[] GetSymbolCornerRadius(Serie serie, SerieData serieData, bool highlight)
| +| `GetTitleStyle()` |public static TitleStyle GetTitleStyle(Serie serie, SerieData serieData)
| +| `IsAllZeroValue()` |public static bool IsAllZeroValue(Serie serie, int dimension = 1)
Whether the data for the specified dimension of serie are all 0. | +| `IsDownPoint()` |public static bool IsDownPoint(Serie serie, int index)
| +| `UpdateCenter()` |public static void UpdateCenter(Serie serie, Vector3 chartPosition, float chartWidth, float chartHeight)
更新运行时中心点和半径 | +| `UpdateFilterData()` |public static void UpdateFilterData(Serie serie, DataZoom dataZoom)
根据dataZoom更新数据列表缓存 | +| `UpdateMinMaxData()` |public static void UpdateMinMaxData(Serie serie, int dimension, int ceilRate = 0, DataZoom dataZoom = null)
获得指定维数的最大最小值 | +| `UpdateRect()` |public static void UpdateRect(Serie serie, Vector3 chartPosition, float chartWidth, float chartHeight)
| +| `UpdateSerieRuntimeFilterData()` |public static void UpdateSerieRuntimeFilterData(Serie serie, bool filterInvisible = true)
| + +## `SerieLabelHelper` + +|public method|description| +|--|--| +| `AvoidLabelOverlap()` |public static void AvoidLabelOverlap(Serie serie, ComponentTheme theme)
| +| `CanShowLabel()` |public static bool CanShowLabel(Serie serie, SerieData serieData, LabelStyle label, int dimesion)
| +| `GetLabelColor()` |public static Color GetLabelColor(Serie serie, ThemeStyle theme, int index)
| +| `GetRealLabelPosition()` |public static Vector3 GetRealLabelPosition(Serie serie, SerieData serieData, LabelStyle label, LabelLine labelLine)
| +| `SetGaugeLabelText()` |public static void SetGaugeLabelText(Serie serie)
| +| `UpdatePieLabelPosition()` |public static void UpdatePieLabelPosition(Serie serie, SerieData serieData)
| + +## `SerieLabelPool` + +|public method|description| +|--|--| +| `ClearAll()` |public static void ClearAll()
| +| `Release()` |public static void Release(GameObject element)
| +| `ReleaseAll()` |public static void ReleaseAll(Transform parent)
| + +## `SerieParams` + +## `SeriesHelper` + +|public method|description| +|--|--| +| `GetLastStackSerie()` |public static Serie GetLastStackSerie(List series, Serie serie)
获得上一个同堆叠且显示的serie。 | +| `GetLegalSerieNameList()` |public static List GetLegalSerieNameList(List series)
| +| `GetMaxSerieDataCount()` |public static int GetMaxSerieDataCount(List series)
| +| `GetNameColor()` |public static Color GetNameColor(BaseChart chart, int index, string name)
| +| `GetSerieByVesselIndex()` |public static Serie GetSerieByVesselIndex(List series, int vesselIndex)
| +| `GetStackSeries()` |public static void GetStackSeries(List series, ref Dictionary> stackSeries)
获得堆叠系列列表 | +| `IsAnyClipSerie()` |public static bool IsAnyClipSerie(List series)
是否有需裁剪的serie。 | +| `IsLegalLegendName()` |public static bool IsLegalLegendName(string name)
| +| `IsStack()` |public static bool IsStack(List series)
是否由数据堆叠 | +| `UpdateSerieNameList()` |public static void UpdateSerieNameList(BaseChart chart, ref List serieNameList)
获得所有系列名,不包含空名字。 | +| `UpdateStackDataList()` |public static void UpdateStackDataList(List series, Serie currSerie, DataZoom dataZoom, List> dataList)
| + +## `SimplifiedBarChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `SimplifiedCandlestickChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `SimplifiedLineChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `SVG` + +|public method|description| +|--|--| +| `DrawPath()` |public static void DrawPath(VertexHelper vh, string path)
| +| `DrawPath()` |public static void DrawPath(VertexHelper vh, SVGPath path)
| +| `Test()` |public static void Test(VertexHelper vh)
| + +## `SVGImage` + +Inherits or Implemented: [MaskableGraphic](#MaskableGraphic) + +## `SVGPath` + +|public method|description| +|--|--| +| `AddSegment()` |public void AddSegment(SVGPathSeg seg)
| +| `Draw()` |public void Draw(VertexHelper vh)
| +| `Parse()` |public static SVGPath Parse(string path)
| + +## `SVGPathSeg` + +|public method|description| +|--|--| +| `SVGPathSeg()` |public SVGPathSeg(SVGPathSegType type)
| + +## `TooltipContext` + +## `TooltipData` + +## `TooltipHelper` + +|public method|description| +|--|--| +| `GetItemNumericFormatter()` |public static string GetItemNumericFormatter(Tooltip tooltip, Serie serie, SerieData serieData)
| +| `GetLineColor()` |public static Color32 GetLineColor(Tooltip tooltip, ThemeStyle theme)
| +| `IsIgnoreItemFormatter()` |public static bool IsIgnoreItemFormatter(string itemFormatter)
| +| `LimitInRect()` |public static void LimitInRect(Tooltip tooltip, Rect chartRect)
| + +## `TooltipView` + +|public method|description| +|--|--| +| `CreateView()` |public static TooltipView CreateView(Tooltip tooltip, ThemeStyle theme, Transform parent)
| +| `GetCurrentPos()` |public Vector3 GetCurrentPos()
| +| `GetTargetPos()` |public Vector3 GetTargetPos()
| +| `Refresh()` |public void Refresh()
| +| `SetActive()` |public void SetActive(bool flag)
| +| `Update()` |public void Update()
| +| `UpdatePosition()` |public void UpdatePosition(Vector3 pos)
| + +## `TooltipViewItem` + +## `UGL` + +|public method|description| +|--|--| +| `DrawDiamond()` |public static void DrawDiamond(VertexHelper vh, Vector3 center, float size, Color32 color)
Draw a diamond. 画菱形(钻石形状) | +| `DrawDiamond()` |public static void DrawDiamond(VertexHelper vh, Vector3 center, float size, Color32 color, Color32 toColor)
Draw a diamond. 画菱形(钻石形状) | +| `DrawEllipse()` |public static void DrawEllipse(VertexHelper vh, Vector3 center, float w, float h, Color32 color, float smoothness = 1)
| +| `DrawLine()` |public static void DrawLine(VertexHelper vh, List points, float width, Color32 color, bool smooth, bool closepath = false)
| +| `DrawLine()` |public static void DrawLine(VertexHelper vh, Vector3 startPoint, Vector3 endPoint, float width, Color32 color)
Draw a line. 画直线 | +| `DrawLine()` |public static void DrawLine(VertexHelper vh, Vector3 startPoint, Vector3 endPoint, float width, Color32 color, Color32 toColor)
Draw a line. 画直线 | +| `DrawRectangle()` |public static void DrawRectangle(VertexHelper vh, Rect rect, Color32 color)
| +| `DrawRectangle()` |public static void DrawRectangle(VertexHelper vh, Rect rect, Color32 color, Color32 toColor)
| +| `DrawRectangle()` |public static void DrawRectangle(VertexHelper vh, Rect rect, float border, Color32 color)
| +| `DrawRectangle()` |public static void DrawRectangle(VertexHelper vh, Rect rect, float border, Color32 color, Color32 toColor)
| +| `DrawRectangle()` |public static void DrawRectangle(VertexHelper vh, Vector3 p1, Vector3 p2, float radius, Color32 color)
Draw a rectangle. 画带长方形 | +| `DrawSquare()` |public static void DrawSquare(VertexHelper vh, Vector3 center, float radius, Color32 color)
Draw a square. 画正方形 | +| `DrawSvgPath()` |public static void DrawSvgPath(VertexHelper vh, string path)
| +| `DrawTriangle()` |public static void DrawTriangle(VertexHelper vh, Vector3 pos, float size, Color32 color)
| +| `DrawTriangle()` |public static void DrawTriangle(VertexHelper vh, Vector3 pos, float size, Color32 color, Color32 toColor)
| + +## `UGLExample` + +Inherits or Implemented: [MaskableGraphic](#MaskableGraphic) + +## `UGLHelper` + +|public method|description| +|--|--| +| `GetAngle360()` |public static float GetAngle360(Vector2 from, Vector2 to)
获得0-360的角度(12点钟方向为0度) | +| `GetBezier()` |public static Vector3 GetBezier(float t, Vector3 sp, Vector3 cp, Vector3 ep)
| +| `GetBezier2()` |public static Vector3 GetBezier2(float t, Vector3 sp, Vector3 p1, Vector3 p2, Vector3 ep)
| +| `GetBezierList()` |public static List GetBezierList(Vector3 sp, Vector3 ep, int segment, Vector3 cp)
| +| `GetDire()` |public static Vector3 GetDire(float angle, bool isDegree = false)
| +| `GetIntersection()` |public static bool GetIntersection(Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4, ref Vector3 intersection)
获得两直线的交点 | +| `GetPos()` |public static Vector3 GetPos(Vector3 center, float radius, float angle, bool isDegree = false)
| +| `GetVertialDire()` |public static Vector3 GetVertialDire(Vector3 dire)
| +| `IsClearColor()` |public static bool IsClearColor(Color color)
| +| `IsClearColor()` |public static bool IsClearColor(Color32 color)
| +| `IsPointInPolygon()` |public static bool IsPointInPolygon(Vector3 p, List polyons)
| +| `IsPointInPolygon()` |public static bool IsPointInPolygon(Vector3 p, List polyons)
| +| `IsPointInTriangle()` |public static bool IsPointInTriangle(Vector3 p1, Vector3 p2, Vector3 p3, Vector3 check)
| +| `IsValueEqualsColor()` |public static bool IsValueEqualsColor(Color color1, Color color2)
| +| `IsValueEqualsColor()` |public static bool IsValueEqualsColor(Color32 color1, Color32 color2)
| +| `IsValueEqualsList()` |public static bool IsValueEqualsList(List list1, List list2)
| +| `IsValueEqualsString()` |public static bool IsValueEqualsString(string str1, string str2)
| +| `IsValueEqualsVector2()` |public static bool IsValueEqualsVector2(Vector2 v1, Vector2 v2)
| +| `IsValueEqualsVector3()` |public static bool IsValueEqualsVector3(Vector3 v1, Vector2 v2)
| +| `IsValueEqualsVector3()` |public static bool IsValueEqualsVector3(Vector3 v1, Vector3 v2)
| +| `IsZeroVector()` |public static bool IsZeroVector(Vector3 pos)
| +| `RotateRound()` |public static Vector3 RotateRound(Vector3 position, Vector3 center, Vector3 axis, float angle)
| + +## `VisualMapContext` + +Inherits or Implemented: [MainComponentContext](#MainComponentContext) + +## `VisualMapHelper` + +|public method|description| +|--|--| +| `AutoSetLineMinMax()` |public static void AutoSetLineMinMax(VisualMap visualMap, Serie serie, bool isY, Axis axis, Axis relativedAxis)
| +| `GetDimension()` |public static int GetDimension(VisualMap visualMap, int serieDataCount)
| +| `IsNeedAreaGradient()` |public static bool IsNeedAreaGradient(VisualMap visualMap)
| +| `IsNeedGradient()` |public static bool IsNeedGradient(VisualMap visualMap)
| +| `IsNeedLineGradient()` |public static bool IsNeedLineGradient(VisualMap visualMap)
| +| `SetMinMax()` |public static void SetMinMax(VisualMap visualMap, double min, double max)
| + +## `XChartsMgr` + +|public method|description| +|--|--| +| `AddChart()` |public static void AddChart(BaseChart chart)
| +| `ContainsChart()` |public static bool ContainsChart(BaseChart chart)
| +| `ContainsChart()` |public static bool ContainsChart(string chartName)
| +| `DisableTextMeshPro()` |public static void DisableTextMeshPro()
| +| `EnableTextMeshPro()` |public static void EnableTextMeshPro()
| +| `GetChart()` |public static BaseChart GetChart(string chartName)
| +| `GetCharts()` |public static List GetCharts(string chartName)
| +| `GetPackageFullPath()` |public static string GetPackageFullPath()
| +| `GetRepeatChartNameInfo()` |public static string GetRepeatChartNameInfo(BaseChart chart, string chartName)
| +| `IsExistTMPAssembly()` |public static bool IsExistTMPAssembly()
| +| `IsRepeatChartName()` |public static bool IsRepeatChartName(BaseChart chart, string chartName = null)
| +| `ModifyTMPRefence()` |public static bool ModifyTMPRefence(bool removeTMP = false)
| +| `RemoveAllChartObject()` |public static void RemoveAllChartObject()
| +| `RemoveChart()` |public static void RemoveChart(string chartName)
| + +## `XCResourceImporterWindow` + +Inherits or Implemented: [UnityEditor.EditorWindow](#UnityEditor.EditorWindow) + +|public method|description| +|--|--| +| `ShowPackageImporterWindow()` |public static void ShowPackageImporterWindow()
| + +## `XCThemeMgr` + +|public method|description| +|--|--| +| `AddTheme()` |public static void AddTheme(Theme theme)
| +| `CheckReloadTheme()` |public static void CheckReloadTheme()
| +| `ContainsTheme()` |public static bool ContainsTheme(string themeName)
| +| `ExportTheme()` |public static bool ExportTheme(Theme theme)
| +| `ExportTheme()` |public static bool ExportTheme(Theme theme, string themeNewName)
| +| `GetAllThemeNames()` |public static List GetAllThemeNames()
| +| `GetTheme()` |public static Theme GetTheme(string themeName)
| +| `GetTheme()` |public static Theme GetTheme(ThemeType type)
| +| `GetThemeAssetPath()` |public static string GetThemeAssetPath(string themeName)
| +| `GetThemeList()` |public static List GetThemeList()
| +| `LoadTheme()` |public static Theme LoadTheme(string themeName)
| +| `LoadTheme()` |public static Theme LoadTheme(ThemeType type)
| +| `ReloadThemeList()` |public static void ReloadThemeList()
重新加载主题列表 | +| `SwitchTheme()` |public static void SwitchTheme(BaseChart chart, string themeName)
| + +[XCharts Homepage](https://github.com/XCharts-Team/XCharts)
+[XCharts Configuration](XChartsConfiguration-EN.md)
+[XCharts FAQ](XChartsFAQ-EN.md) diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsAPI-EN.md.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsAPI-EN.md.meta new file mode 100644 index 0000000..335be9a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsAPI-EN.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 002217c6b4b5348bd86b5a6b881d2622 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsAPI-ZH.md b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsAPI-ZH.md new file mode 100644 index 0000000..f7603f0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsAPI-ZH.md @@ -0,0 +1,1075 @@ +# API + +[XCharts主页](https://github.com/XCharts-Team/XCharts)
+[XCharts配置项手册](XChartsConfiguration-ZH.md)
+[XCharts问答](XChartsFAQ-ZH.md) + +## Class + +- [AnimationStyleHelper](#AnimationStyleHelper) +- [AxisContext](#AxisContext) +- [AxisHandler](#AxisHandler) +- [AxisHelper](#AxisHelper) +- [BarChart](#BarChart) +- [BaseChart](#BaseChart) +- [BaseGraph](#BaseGraph) +- [CandlestickChart](#CandlestickChart) +- [ChartCached](#ChartCached) +- [ChartConst](#ChartConst) +- [ChartDrawer](#ChartDrawer) +- [ChartHelper](#ChartHelper) +- [ChartLabel](#ChartLabel) +- [ChartObject](#ChartObject) +- [CheckHelper](#CheckHelper) +- [ColorUtil](#ColorUtil) +- [ComponentHandlerAttribute](#ComponentHandlerAttribute) +- [ComponentHelper](#ComponentHelper) +- [CoordOptionsAttribute](#CoordOptionsAttribute) +- [DataZoomContext](#DataZoomContext) +- [DataZoomHelper](#DataZoomHelper) +- [DateTimeUtil](#DateTimeUtil) +- [DefaultAnimationAttribute](#DefaultAnimationAttribute) +- [DefineSymbolsUtil](#DefineSymbolsUtil) +- [FormatterHelper](#FormatterHelper) +- [GridCoordContext](#GridCoordContext) +- [HeatmapChart](#HeatmapChart) +- [IgnoreDoc](#IgnoreDoc) +- [InteractData](#InteractData) +- [LayerHelper](#LayerHelper) +- [LegendContext](#LegendContext) +- [LegendHelper](#LegendHelper) +- [LegendItem](#LegendItem) +- [LineChart](#LineChart) +- [ListFor](#ListFor) +- [ListForComponent](#ListForComponent) +- [ListForSerie](#ListForSerie) +- [MainComponentContext](#MainComponentContext) +- [MainComponentHandler](#MainComponentHandler) +- [MainComponentHandler](#MainComponentHandler) +- [MathUtil](#MathUtil) +- [ObjectPool where T](#ObjectPool where T) +- [Painter](#Painter) +- [ParallelChart](#ParallelChart) +- [ParallelCoordContext](#ParallelCoordContext) +- [PieChart](#PieChart) +- [PolarChart](#PolarChart) +- [PolarCoordContext](#PolarCoordContext) +- [ProgressBar](#ProgressBar) +- [PropertyUtil](#PropertyUtil) +- [RadarChart](#RadarChart) +- [RadarCoordContext](#RadarCoordContext) +- [ReflectionUtil](#ReflectionUtil) +- [RequireChartComponentAttribute](#RequireChartComponentAttribute) +- [RingChart](#RingChart) +- [RuntimeUtil](#RuntimeUtil) +- [ScatterChart](#ScatterChart) +- [SerieContext](#SerieContext) +- [SerieConvertAttribute](#SerieConvertAttribute) +- [SerieDataContext](#SerieDataContext) +- [SerieDataExtraComponentAttribute](#SerieDataExtraComponentAttribute) +- [SerieDataExtraFieldAttribute](#SerieDataExtraFieldAttribute) +- [SerieExtraComponentAttribute](#SerieExtraComponentAttribute) +- [SerieHandler](#SerieHandler) +- [SerieHandler](#SerieHandler) +- [SerieHandlerAttribute](#SerieHandlerAttribute) +- [SerieHelper](#SerieHelper) +- [SerieLabelHelper](#SerieLabelHelper) +- [SerieLabelPool](#SerieLabelPool) +- [SerieParams](#SerieParams) +- [SeriesHelper](#SeriesHelper) +- [SimplifiedBarChart](#SimplifiedBarChart) +- [SimplifiedCandlestickChart](#SimplifiedCandlestickChart) +- [SimplifiedLineChart](#SimplifiedLineChart) +- [SVG](#SVG) +- [SVGImage](#SVGImage) +- [SVGPath](#SVGPath) +- [SVGPathSeg](#SVGPathSeg) +- [TooltipContext](#TooltipContext) +- [TooltipData](#TooltipData) +- [TooltipHelper](#TooltipHelper) +- [TooltipView](#TooltipView) +- [TooltipViewItem](#TooltipViewItem) +- [UGL](#UGL) +- [UGLExample](#UGLExample) +- [UGLHelper](#UGLHelper) +- [VisualMapContext](#VisualMapContext) +- [VisualMapHelper](#VisualMapHelper) +- [XChartsMgr](#XChartsMgr) +- [XCResourceImporterWindow](#XCResourceImporterWindow) +- [XCThemeMgr](#XCThemeMgr) + +## `AnimationStyleHelper` + +|public method|description| +|--|--| +| `CheckDataAnimation()` |public static float CheckDataAnimation(BaseChart chart, Serie serie, int dataIndex, float destProgress, float startPorgress = 0)
| +| `GetAnimationPosition()` |public static bool GetAnimationPosition(AnimationStyle animation, bool isY, Vector3 lp, Vector3 cp, float progress, ref Vector3 ip)
| +| `UpdateAnimationType()` |public static void UpdateAnimationType(AnimationStyle animation, AnimationType defaultType)
| +| `UpdateSerieAnimation()` |public static void UpdateSerieAnimation(Serie serie)
| + +## `AxisContext` + +Inherits or Implemented: [MainComponentContext](#MainComponentContext) + +## `AxisHandler` + +Inherits or Implemented: [MainComponentHandler](#MainComponentHandler) + +## `AxisHelper` + +|public method|description| +|--|--| +| `AdjustCircleLabelPos()` |public static void AdjustCircleLabelPos(ChartLabel txt, Vector3 pos, Vector3 cenPos, float txtHig, Vector3 offset)
| +| `AdjustMinMaxValue()` |public static void AdjustMinMaxValue(Axis axis, ref double minValue, ref double maxValue, bool needFormat, int ceilRate = 0)
调整最大最小值 | +| `AdjustRadiusAxisLabelPos()` |public static void AdjustRadiusAxisLabelPos(ChartLabel txt, Vector3 pos, Vector3 cenPos, float txtHig, Vector3 offset)
| +| `GetAxisLineArrowOffset()` |public static float GetAxisLineArrowOffset(Axis axis)
包含箭头偏移的轴线长度 | +| `GetAxisPosition()` |public static float GetAxisPosition(GridCoord grid, Axis axis, double value, int dataCount = 0, DataZoom dataZoom = null)
| +| `GetAxisPositionValue()` |public static double GetAxisPositionValue(float xy, float axisLength, double axisRange, float axisStart, float axisOffset)
| +| `GetAxisPositionValue()` |public static double GetAxisPositionValue(GridCoord grid, Axis axis, Vector3 pos)
| +| `GetAxisValueDistance()` |public static float GetAxisValueDistance(GridCoord grid, Axis axis, float scaleWidth, double value)
获得数值value在坐标轴上相对起点的距离 | +| `GetAxisValueLength()` |public static float GetAxisValueLength(GridCoord grid, Axis axis, float scaleWidth, double value)
获得数值value在坐标轴上对应的长度 | +| `GetAxisValuePosition()` |public static float GetAxisValuePosition(GridCoord grid, Axis axis, float scaleWidth, double value)
获得数值value在坐标轴上的坐标位置 | +| `GetDataWidth()` |public static float GetDataWidth(Axis axis, float coordinateWidth, int dataCount, DataZoom dataZoom)
获得一个类目数据在坐标系中代表的宽度 | +| `GetEachWidth()` |public static float GetEachWidth(Axis axis, float coordinateWidth, DataZoom dataZoom = null)
| +| `GetScaleNumber()` |public static int GetScaleNumber(Axis axis, float coordinateWidth, DataZoom dataZoom = null)
获得分割线条数 | +| `GetScaleWidth()` |public static float GetScaleWidth(Axis axis, float coordinateWidth, int index, DataZoom dataZoom = null)
获得分割段宽度 | +| `GetSplitNumber()` |public static int GetSplitNumber(Axis axis, float coordinateWid, DataZoom dataZoom)
获得分割段数 | +| `NeedShowSplit()` |public static bool NeedShowSplit(Axis axis)
| + +## `BarChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `BaseChart` + +Inherits or Implemented: [BaseGraph](#BaseGraph),[ISerializationCallbackReceiver](#ISerializationCallbackReceiver) + +|public method|description| +|--|--| +| `AddChartComponent()` |public MainComponent AddChartComponent(Type type)
| +| `AddData()` |public SerieData AddData(int serieIndex, DateTime time, double yValue, string dataName = null, string dataId = null)
添加(time,y)数据到指定的系列中。 | +| `AddData()` |public SerieData AddData(int serieIndex, double data, string dataName = null, string dataId = null)
添加一个数据到指定的系列中。 | +| `AddData()` |public SerieData AddData(int serieIndex, double open, double close, double lowest, double heighest, string dataName = null, string dataId = null)
| +| `AddData()` |public SerieData AddData(int serieIndex, double xValue, double yValue, string dataName = null, string dataId = null)
添加(x,y)数据到指定系列中。 | +| `AddData()` |public SerieData AddData(int serieIndex, List multidimensionalData, string dataName = null, string dataId = null)
添加多维数据(x,y,z...)到指定的系列中。 | +| `AddData()` |public SerieData AddData(string serieName, DateTime time, double yValue, string dataName = null, string dataId = null)
添加(time,y)数据到指定的系列中。 | +| `AddData()` |public SerieData AddData(string serieName, double data, string dataName = null, string dataId = null)
If serieName doesn't exist in legend,will be add to legend. | +| `AddData()` |public SerieData AddData(string serieName, double open, double close, double lowest, double heighest, string dataName = null, string dataId = null)
| +| `AddData()` |public SerieData AddData(string serieName, double xValue, double yValue, string dataName = null, string dataId = null)
添加(x,y)数据到指定系列中。 | +| `AddData()` |public SerieData AddData(string serieName, List multidimensionalData, string dataName = null, string dataId = null)
添加多维数据(x,y,z...)到指定的系列中。 | +| `AddXAxisData()` |public void AddXAxisData(string category, int xAxisIndex = 0)
添加一个类目数据到指定的x轴。 | +| `AddXAxisIcon()` |public void AddXAxisIcon(Sprite icon, int xAxisIndex = 0)
添加一个图标到指定的x轴。 | +| `AddYAxisData()` |public void AddYAxisData(string category, int yAxisIndex = 0)
添加一个类目数据到指定的y轴。 | +| `AddYAxisIcon()` |public void AddYAxisIcon(Sprite icon, int yAxisIndex = 0)
添加一个图标到指定的y轴。 | +| `AnimationEnable()` |public void AnimationEnable(bool flag)
启用或关闭起始动画。 | +| `AnimationFadeIn()` |public void AnimationFadeIn()
开始渐入动画。 | +| `AnimationFadeOut()` |public void AnimationFadeOut()
开始渐出动画。 | +| `AnimationPause()` |public void AnimationPause()
暂停动画。 | +| `AnimationReset()` |public void AnimationReset()
重置动画。 | +| `AnimationResume()` |public void AnimationResume()
继续动画。 | +| `CanAddChartComponent()` |public bool CanAddChartComponent(Type type)
| +| `CanAddSerie()` |public bool CanAddSerie(Type type)
| +| `CanMultipleComponent()` |public bool CanMultipleComponent(Type type)
| +| `ClampInChart()` |public void ClampInChart(ref Vector3 pos)
| +| `ClampInGrid()` |public Vector3 ClampInGrid(GridCoord grid, Vector3 pos)
| +| `ClearData()` |public virtual void ClearData()
It just emptying all of serie's data without emptying the list of series. | +| `ClickLegendButton()` |public void ClickLegendButton(int legendIndex, string legendName, bool show)
点击图例按钮 | +| `CovertSerie()` |public bool CovertSerie(Serie serie, Type type)
| +| `CovertXYAxis()` |public void CovertXYAxis(int index)
转换X轴和Y轴的配置 | +| `GenerateDefaultSerieName()` |public string GenerateDefaultSerieName()
| +| `GetAllSerieDataCount()` |public int GetAllSerieDataCount()
| +| `GetChartBackgroundColor()` |public Color32 GetChartBackgroundColor()
| +| `GetChartComponentNum()` |public int GetChartComponentNum(Type type)
| +| `GetData()` |public double GetData(int serieIndex, int dataIndex, int dimension = 1)
| +| `GetData()` |public double GetData(string serieName, int dataIndex, int dimension = 1)
| +| `GetDataZoomOfAxis()` |public DataZoom GetDataZoomOfAxis(Axis axis)
| +| `GetDataZoomOfSerie()` |public void GetDataZoomOfSerie(Serie serie, out DataZoom xDataZoom, out DataZoom yDataZoom)
| +| `GetGrid()` |public GridCoord GetGrid(Vector2 local)
| +| `GetGridOfDataZoom()` |public GridCoord GetGridOfDataZoom(DataZoom dataZoom)
| +| `GetItemColor()` |public Color32 GetItemColor(Serie serie, bool highlight = false)
| +| `GetItemColor()` |public Color32 GetItemColor(Serie serie, SerieData serieData, bool highlight = false)
| +| `GetLegendRealShowNameColor()` |public Color32 GetLegendRealShowNameColor(string name)
| +| `GetLegendRealShowNameIndex()` |public int GetLegendRealShowNameIndex(string name)
| +| `GetPainter()` |public Painter GetPainter(int index)
| +| `GetSerie()` |public Serie GetSerie(int serieIndex)
| +| `GetSerie()` |public Serie GetSerie(string serieName)
| +| `GetSeriesMinMaxValue()` |public virtual void GetSeriesMinMaxValue(Axis axis, int axisIndex, out double tempMinValue, out double tempMaxValue)
| +| `GetTitlePosition()` |public Vector3 GetTitlePosition(Title title)
| +| `GetVisualMapOfSerie()` |public VisualMap GetVisualMapOfSerie(Serie serie)
| +| `GetXLerpColor()` |public Color32 GetXLerpColor(Color32 areaColor, Color32 areaToColor, Vector3 pos, GridCoord grid)
| +| `GetYLerpColor()` |public Color32 GetYLerpColor(Color32 areaColor, Color32 areaToColor, Vector3 pos, GridCoord grid)
| +| `HasChartComponent()` |public bool HasChartComponent(Type type)
| +| `HasChartComponent()` |public bool HasChartComponent()
| +| `HasSerie()` |public bool HasSerie(Type type)
| +| `Init()` |public void Init(bool defaultChart = true)
| +| `InitAxisRuntimeData()` |public virtual void InitAxisRuntimeData(Axis axis)
| +| `InsertSerie()` |public void InsertSerie(Serie serie, int index = -1, bool addToHead = false)
| +| `Internal_CheckAnimation()` |public void Internal_CheckAnimation()
| +| `IsActiveByLegend()` |public virtual bool IsActiveByLegend(string legendName)
获得指定图例名字的系列是否显示。 | +| `IsAllAxisCategory()` |public bool IsAllAxisCategory()
纯类目轴。 | +| `IsAllAxisValue()` |public bool IsAllAxisValue()
纯数值坐标轴(数值轴或对数轴)。 | +| `IsInAnyGrid()` |public bool IsInAnyGrid(Vector2 local)
| +| `IsInChart()` |public bool IsInChart(float x, float y)
| +| `IsInChart()` |public bool IsInChart(Vector2 local)
坐标是否在图表范围内 | +| `IsSerieName()` |public bool IsSerieName(string name)
| +| `MoveDownSerie()` |public bool MoveDownSerie(int serieIndex)
| +| `MoveUpSerie()` |public bool MoveUpSerie(int serieIndex)
| +| `OnAfterDeserialize()` |public void OnAfterDeserialize()
| +| `OnBeforeSerialize()` |public void OnBeforeSerialize()
| +| `OnBeginDrag()` |public override void OnBeginDrag(PointerEventData eventData)
| +| `OnDataZoomRangeChanged()` |public virtual void OnDataZoomRangeChanged(DataZoom dataZoom)
| +| `OnDrag()` |public override void OnDrag(PointerEventData eventData)
| +| `OnEndDrag()` |public override void OnEndDrag(PointerEventData eventData)
| +| `OnLegendButtonClick()` |public virtual void OnLegendButtonClick(int index, string legendName, bool show)
| +| `OnLegendButtonEnter()` |public virtual void OnLegendButtonEnter(int index, string legendName)
| +| `OnLegendButtonExit()` |public virtual void OnLegendButtonExit(int index, string legendName)
| +| `OnPointerClick()` |public override void OnPointerClick(PointerEventData eventData)
| +| `OnPointerDown()` |public override void OnPointerDown(PointerEventData eventData)
| +| `OnPointerEnter()` |public override void OnPointerEnter(PointerEventData eventData)
| +| `OnPointerExit()` |public override void OnPointerExit(PointerEventData eventData)
| +| `OnPointerUp()` |public override void OnPointerUp(PointerEventData eventData)
| +| `OnScroll()` |public override void OnScroll(PointerEventData eventData)
| +| `RefreshBasePainter()` |public void RefreshBasePainter()
| +| `RefreshChart()` |public void RefreshChart()
在下一帧刷新整个图表。 | +| `RefreshChart()` |public void RefreshChart(int serieIndex)
在下一帧刷新图表的指定serie。 | +| `RefreshChart()` |public void RefreshChart(Serie serie)
在下一帧刷新图表的指定serie。 | +| `RefreshDataZoom()` |public void RefreshDataZoom()
在下一帧刷新DataZoom | +| `RefreshPainter()` |public void RefreshPainter(int index)
| +| `RefreshPainter()` |public void RefreshPainter(Serie serie)
| +| `RefreshTopPainter()` |public void RefreshTopPainter()
| +| `RemoveAllChartComponent()` |public void RemoveAllChartComponent()
| +| `RemoveChartComponent()` |public bool RemoveChartComponent(MainComponent component)
| +| `RemoveChartComponent()` |public bool RemoveChartComponent(Type type, int index = 0)
| +| `RemoveChartComponent()` |public bool RemoveChartComponent(int index = 0)
| +| `RemoveChartComponents()` |public int RemoveChartComponents(Type type)
| +| `RemoveChartComponents()` |public int RemoveChartComponents()
| +| `RemoveData()` |public virtual void RemoveData()
The series list is also cleared. | +| `RemoveData()` |public virtual void RemoveData(string serieName)
清除指定系列名称的数据。 | +| `RemoveSerie()` |public void RemoveSerie(int serieIndex)
| +| `RemoveSerie()` |public void RemoveSerie(Serie serie)
| +| `RemoveSerie()` |public void RemoveSerie(string serieName)
| +| `ReplaceSerie()` |public bool ReplaceSerie(Serie oldSerie, Serie newSerie)
| +| `SetBasePainterMaterial()` |public void SetBasePainterMaterial(Material material)
设置Base Painter的材质球 | +| `SetMaxCache()` |public void SetMaxCache(int maxCache)
设置可缓存的最大数据量。当数据量超过该值时,会自动删除第一个值再加入最新值。 | +| `SetPainterActive()` |public void SetPainterActive(int index, bool flag)
| +| `SetSerieActive()` |public void SetSerieActive(int serieIndex, bool active)
设置指定系列是否显示。 | +| `SetSerieActive()` |public void SetSerieActive(Serie serie, bool active)
| +| `SetSerieActive()` |public void SetSerieActive(string serieName, bool active)
设置指定系列是否显示。 | +| `SetSeriePainterMaterial()` |public void SetSeriePainterMaterial(Material material)
设置Serie Painter的材质球 | +| `SetTopPainterMaterial()` |public void SetTopPainterMaterial(Material material)
设置Top Painter的材质球 | +| `TryAddChartComponent()` |public bool TryAddChartComponent(Type type)
| +| `TryGetChartComponent()` |public bool TryGetChartComponent(out T component, int index = 0)
| +| `UdpateXAxisIcon()` |public void UdpateXAxisIcon(int index, Sprite icon, int xAxisIndex = 0)
更新X轴图标。 | +| `UpdateData()` |public bool UpdateData(int serieIndex, int dataIndex, double value)
更新指定系列中的指定索引数据。 | +| `UpdateData()` |public bool UpdateData(int serieIndex, int dataIndex, int dimension, double value)
更新指定系列指定索引指定维数的数据。维数从0开始。 | +| `UpdateData()` |public bool UpdateData(int serieIndex, int dataIndex, List multidimensionalData)
更新指定系列指定索引的数据项的多维数据。 | +| `UpdateData()` |public bool UpdateData(string serieName, int dataIndex, double value)
更新指定系列中的指定索引数据。 | +| `UpdateData()` |public bool UpdateData(string serieName, int dataIndex, int dimension, double value)
更新指定系列指定索引指定维数的数据。维数从0开始。 | +| `UpdateData()` |public bool UpdateData(string serieName, int dataIndex, List multidimensionalData)
更新指定系列指定索引的数据项的多维数据。 | +| `UpdateDataName()` |public bool UpdateDataName(int serieIndex, int dataIndex, string dataName)
更新指定系列中的指定索引数据名称。 | +| `UpdateDataName()` |public bool UpdateDataName(string serieName, int dataIndex, string dataName)
更新指定系列中的指定索引数据名称。 | +| `UpdateLegendColor()` |public virtual void UpdateLegendColor(string legendName, bool active)
| +| `UpdateTheme()` |public bool UpdateTheme(ThemeType theme)
切换内置主题。 | +| `UpdateTheme()` |public void UpdateTheme(Theme theme)
切换图表主题。 | +| `UpdateXAxisData()` |public void UpdateXAxisData(int index, string category, int xAxisIndex = 0)
更新X轴类目数据。 | +| `UpdateYAxisData()` |public void UpdateYAxisData(int index, string category, int yAxisIndex = 0)
更新Y轴类目数据。 | +| `UpdateYAxisIcon()` |public void UpdateYAxisIcon(int index, Sprite icon, int yAxisIndex = 0)
更新Y轴图标。 | + +## `BaseGraph` + +Inherits or Implemented: [MaskableGraphic](#MaskableGraphic),[IPointerDownHandler](#IPointerDownHandler),[IPointerUpHandler](#IPointerUpHandler),[](#) + +|public method|description| +|--|--| +| `CheckWarning()` |public string CheckWarning()
检测警告信息。 | +| `OnBeginDrag()` |public virtual void OnBeginDrag(PointerEventData eventData)
| +| `OnDrag()` |public virtual void OnDrag(PointerEventData eventData)
| +| `OnEndDrag()` |public virtual void OnEndDrag(PointerEventData eventData)
| +| `OnPointerClick()` |public virtual void OnPointerClick(PointerEventData eventData)
| +| `OnPointerDown()` |public virtual void OnPointerDown(PointerEventData eventData)
| +| `OnPointerEnter()` |public virtual void OnPointerEnter(PointerEventData eventData)
| +| `OnPointerExit()` |public virtual void OnPointerExit(PointerEventData eventData)
| +| `OnPointerUp()` |public virtual void OnPointerUp(PointerEventData eventData)
| +| `OnScroll()` |public virtual void OnScroll(PointerEventData eventData)
| +| `RebuildChartObject()` |public void RebuildChartObject()
移除并重新创建所有图表的Object。 | +| `RefreshAllComponent()` |public void RefreshAllComponent()
| +| `RefreshGraph()` |public void RefreshGraph()
在下一帧刷新图形。 | +| `ScreenPointToChartPoint()` |public bool ScreenPointToChartPoint(Vector2 screenPoint, out Vector2 chartPoint)
| +| `SetPainterDirty()` |public void SetPainterDirty()
重新初始化Painter | +| `SetSize()` |public virtual void SetSize(float width, float height)
设置图形的宽高(在非stretch pivot下才有效,其他情况需要自己调整RectTransform) | + +## `CandlestickChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `ChartCached` + +|public method|description| +|--|--| +| `ColorToDotStr()` |public static string ColorToDotStr(Color color)
| +| `ColorToStr()` |public static string ColorToStr(Color color)
| +| `FloatToStr()` |public static string FloatToStr(double value, string numericFormatter = "F", int precision = 0)
| +| `GetSerieLabelName()` |public static string GetSerieLabelName(string prefix, int i, int j)
| +| `IntToStr()` |public static string IntToStr(int value, string numericFormatter = "")
| +| `NumberToStr()` |public static string NumberToStr(double value, string formatter)
| + +## `ChartConst` + +## `ChartDrawer` + +## `ChartHelper` + +|public method|description| +|--|--| +| `ActiveAllObject()` |public static void ActiveAllObject(Transform parent, bool active, string match = null)
| +| `AddIcon()` |public static Image AddIcon(string name, Transform parent, IconStyle iconStyle)
| +| `Cancat()` |public static string Cancat(string str1, int i)
| +| `Cancat()` |public static string Cancat(string str1, string str2)
| +| `ClearEventListener()` |public static void ClearEventListener(GameObject obj)
| +| `CopyArray()` |public static bool CopyArray(T[] toList, T[] fromList)
| +| `CopyList()` |public static bool CopyList(List toList, List fromList)
| +| `DestoryGameObject()` |public static void DestoryGameObject(GameObject go)
| +| `DestoryGameObject()` |public static void DestoryGameObject(Transform parent, string childName)
| +| `DestoryGameObjectByMatch()` |public static void DestoryGameObjectByMatch(Transform parent, string match)
| +| `DestroyAllChildren()` |public static void DestroyAllChildren(Transform parent)
| +| `GetActualValue()` |public static float GetActualValue(float valueOrRate, float total, float maxRate = 1.5f)
| +| `GetAngle360()` |public static float GetAngle360(Vector2 from, Vector2 to)
获得0-360的角度(12点钟方向为0度) | +| `GetColor()` |public static Color32 GetColor(string hexColorStr)
| +| `GetDire()` |public static Vector3 GetDire(float angle, bool isDegree = false)
| +| `GetFloatAccuracy()` |public static int GetFloatAccuracy(double value)
| +| `GetFullName()` |public static string GetFullName(Transform transform)
| +| `GetHighlightColor()` |public static Color32 GetHighlightColor(Color32 color, float rate = 0.8f)
| +| `GetLastValue()` |public static Vector3 GetLastValue(List list)
| +| `GetMaxDivisibleValue()` |public static double GetMaxDivisibleValue(double max, int ceilRate)
| +| `GetMaxLogValue()` |public static double GetMaxLogValue(double value, float logBase, bool isLogBaseE, out int splitNumber)
| +| `GetMinDivisibleValue()` |public static double GetMinDivisibleValue(double min, int ceilRate)
| +| `GetMinLogValue()` |public static double GetMinLogValue(double value, float logBase, bool isLogBaseE, out int splitNumber)
| +| `GetPointList()` |public static void GetPointList(ref List posList, Vector3 sp, Vector3 ep, float k = 30f)
| +| `GetPos()` |public static Vector3 GetPos(Vector3 center, float radius, float angle, bool isDegree = false)
| +| `GetPosition()` |public static Vector3 GetPosition(Vector3 center, float angle, float radius)
| +| `GetVertialDire()` |public static Vector3 GetVertialDire(Vector3 dire)
| +| `HideAllObject()` |public static void HideAllObject(GameObject obj, string match = null)
| +| `HideAllObject()` |public static void HideAllObject(Transform parent, string match = null)
| +| `IsClearColor()` |public static bool IsClearColor(Color color)
| +| `IsClearColor()` |public static bool IsClearColor(Color32 color)
| +| `IsColorAlphaZero()` |public static bool IsColorAlphaZero(Color color)
| +| `IsEquals()` |public static bool IsEquals(double d1, double d2)
| +| `IsEquals()` |public static bool IsEquals(float d1, float d2)
| +| `IsIngore()` |public static bool IsIngore(Vector3 pos)
| +| `IsInRect()` |public static bool IsInRect(Vector3 pos, float xMin, float xMax, float yMin, float yMax)
| +| `IsPointInQuadrilateral()` |public static bool IsPointInQuadrilateral(Vector3 P, Vector3 A, Vector3 B, Vector3 C, Vector3 D)
| +| `IsValueEqualsColor()` |public static bool IsValueEqualsColor(Color color1, Color color2)
| +| `IsValueEqualsColor()` |public static bool IsValueEqualsColor(Color32 color1, Color32 color2)
| +| `IsValueEqualsList()` |public static bool IsValueEqualsList(List list1, List list2)
| +| `IsValueEqualsString()` |public static bool IsValueEqualsString(string str1, string str2)
| +| `IsValueEqualsVector2()` |public static bool IsValueEqualsVector2(Vector2 v1, Vector2 v2)
| +| `IsValueEqualsVector3()` |public static bool IsValueEqualsVector3(Vector3 v1, Vector3 v2)
| +| `IsZeroVector()` |public static bool IsZeroVector(Vector3 pos)
| +| `ParseFloatFromString()` |public static List ParseFloatFromString(string jsonData)
| +| `ParseStringFromString()` |public static List ParseStringFromString(string jsonData)
| +| `RemoveComponent()` |public static void RemoveComponent(GameObject gameObject)
| +| `RotateRound()` |public static Vector3 RotateRound(Vector3 position, Vector3 center, Vector3 axis, float angle)
| +| `SetActive()` |public static void SetActive(GameObject gameObject, bool active)
| +| `SetActive()` |public static void SetActive(Image image, bool active)
| +| `SetActive()` |public static void SetActive(Text text, bool active)
| +| `SetActive()` |public static void SetActive(Transform transform, bool active)
通过设置scale实现是否显示,优化性能,减少GC | +| `SetColorOpacity()` |public static void SetColorOpacity(ref Color32 color, float opacity)
| + +## `ChartLabel` + +Inherits or Implemented: [Image](#Image) + +|public method|description| +|--|--| +| `GetHeight()` |public float GetHeight()
| +| `GetPosition()` |public Vector3 GetPosition()
| +| `GetTextHeight()` |public float GetTextHeight()
| +| `GetTextWidth()` |public float GetTextWidth()
| +| `GetWidth()` |public float GetWidth()
| +| `SetActive()` |public void SetActive(bool flag)
| +| `SetIcon()` |public void SetIcon(Image image)
| +| `SetIconActive()` |public void SetIconActive(bool flag)
| +| `SetIconSize()` |public void SetIconSize(float width, float height)
| +| `SetIconSprite()` |public void SetIconSprite(Sprite sprite)
| +| `SetPadding()` |public void SetPadding(float[] padding)
| +| `SetPosition()` |public void SetPosition(Vector3 position)
| +| `SetRectPosition()` |public void SetRectPosition(Vector3 position)
| +| `SetSize()` |public void SetSize(float width, float height)
| +| `SetText()` |public bool SetText(string text)
| +| `SetTextActive()` |public void SetTextActive(bool flag)
| +| `SetTextColor()` |public void SetTextColor(Color color)
| +| `SetTextPadding()` |public void SetTextPadding(TextPadding padding)
| +| `SetTextRotate()` |public void SetTextRotate(float rotate)
| +| `UpdateIcon()` |public void UpdateIcon(IconStyle iconStyle, Sprite sprite = null)
| + +## `ChartObject` + +|public method|description| +|--|--| +| `Destroy()` |public virtual void Destroy()
| + +## `CheckHelper` + +|public method|description| +|--|--| +| `CheckChart()` |public static string CheckChart(BaseChart chart)
| +| `CheckChart()` |public static string CheckChart(BaseGraph chart)
| + +## `ColorUtil` + +|public method|description| +|--|--| +| `GetColor()` |public static Color32 GetColor(string hexColorStr)
将字符串颜色值转成Color。 | + +## `ComponentHandlerAttribute` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `ComponentHandlerAttribute()` |public ComponentHandlerAttribute(Type handler)
| +| `ComponentHandlerAttribute()` |public ComponentHandlerAttribute(Type handler, bool allowMultiple)
| + +## `ComponentHelper` + +|public method|description| +|--|--| +| `GetAngleAxis()` |public static AngleAxis GetAngleAxis(List components, int polarIndex)
| +| `GetRadiusAxis()` |public static RadiusAxis GetRadiusAxis(List components, int polarIndex)
| +| `GetXAxisOnZeroOffset()` |public static float GetXAxisOnZeroOffset(List components, XAxis axis)
| +| `GetYAxisOnZeroOffset()` |public static float GetYAxisOnZeroOffset(List components, YAxis axis)
| +| `IsAnyCategoryOfYAxis()` |public static bool IsAnyCategoryOfYAxis(List components)
| + +## `CoordOptionsAttribute` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `CoordOptionsAttribute()` |public CoordOptionsAttribute(Type coord)
| +| `CoordOptionsAttribute()` |public CoordOptionsAttribute(Type coord, Type coord2)
| +| `CoordOptionsAttribute()` |public CoordOptionsAttribute(Type coord, Type coord2, Type coord3)
| +| `CoordOptionsAttribute()` |public CoordOptionsAttribute(Type coord, Type coord2, Type coord3, Type coord4)
| + +## `DataZoomContext` + +Inherits or Implemented: [MainComponentContext](#MainComponentContext) + +## `DataZoomHelper` + +|public method|description| +|--|--| +| `UpdateDataZoomRuntimeStartEndValue()` |public static void UpdateDataZoomRuntimeStartEndValue(DataZoom dataZoom, Serie serie)
| + +## `DateTimeUtil` + +|public method|description| +|--|--| +| `GetDateTime()` |public static DateTime GetDateTime(int timestamp)
| +| `GetTimestamp()` |public static int GetTimestamp()
| +| `GetTimestamp()` |public static int GetTimestamp(DateTime time)
| + +## `DefaultAnimationAttribute` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `DefaultAnimationAttribute()` |public DefaultAnimationAttribute(AnimationType handler)
| + +## `DefineSymbolsUtil` + +|public method|description| +|--|--| +| `AddGlobalDefine()` |public static void AddGlobalDefine(string symbol)
| +| `RemoveGlobalDefine()` |public static void RemoveGlobalDefine(string symbol)
| + +## `FormatterHelper` + +|public method|description| +|--|--| +| `NeedFormat()` |public static bool NeedFormat(string content)
| +| `ReplaceAxisLabelContent()` |public static void ReplaceAxisLabelContent(ref string content, string numericFormatter, double value)
| +| `ReplaceAxisLabelContent()` |public static void ReplaceAxisLabelContent(ref string content, string value)
| +| `TrimAndReplaceLine()` |public static string TrimAndReplaceLine(string content)
| +| `TrimAndReplaceLine()` |public static string TrimAndReplaceLine(StringBuilder sb)
| + +## `GridCoordContext` + +Inherits or Implemented: [MainComponentContext](#MainComponentContext) + +## `HeatmapChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `IgnoreDoc` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `IgnoreDoc()` |public IgnoreDoc()
| + +## `InteractData` + +|public method|description| +|--|--| +| `Reset()` |public void Reset()
| +| `SetColor()` |public void SetColor(ref bool needInteract, Color32 color)
| +| `SetColor()` |public void SetColor(ref bool needInteract, Color32 color, Color32 toColor)
| +| `SetValue()` |public void SetValue(ref bool needInteract, float size)
| +| `SetValue()` |public void SetValue(ref bool needInteract, float size, bool highlight, float rate = 1.3f)
| +| `SetValueAndColor()` |public void SetValueAndColor(ref bool needInteract, float value, Color32 color)
| +| `SetValueAndColor()` |public void SetValueAndColor(ref bool needInteract, float value, Color32 color, Color32 toColor)
| +| `TryGetColor()` |public bool TryGetColor(ref Color32 color, ref bool interacting, float animationDuration = 250)
| +| `TryGetColor()` |public bool TryGetColor(ref Color32 color, ref Color32 toColor, ref bool interacting, float animationDuration = 250)
| +| `TryGetValue()` |public bool TryGetValue(ref float value, ref bool interacting, float animationDuration = 250)
| +| `TryGetValueAndColor()` |public bool TryGetValueAndColor(ref float value, ref Color32 color, ref Color32 toColor, ref bool interacting, float animationDuration = 250)
| + +## `LayerHelper` + +|public method|description| +|--|--| +| `IsFixedWidthHeight()` |public static bool IsFixedWidthHeight(RectTransform rt)
| +| `IsStretchPivot()` |public static bool IsStretchPivot(RectTransform rt)
| + +## `LegendContext` + +Inherits or Implemented: [MainComponentContext](#MainComponentContext) + +## `LegendHelper` + +|public method|description| +|--|--| +| `CheckDataHighlighted()` |public static bool CheckDataHighlighted(Serie serie, string legendName, bool heighlight)
| +| `CheckDataShow()` |public static bool CheckDataShow(Serie serie, string legendName, bool show)
| +| `GetContentColor()` |public static Color GetContentColor(BaseChart chart, int legendIndex, string legendName, Legend legend, ThemeStyle theme, bool active)
| +| `GetIconColor()` |public static Color GetIconColor(BaseChart chart, Legend legend, int readIndex, string legendName, bool active)
| +| `ResetItemPosition()` |public static void ResetItemPosition(Legend legend, Vector3 chartPos, float chartWidth, float chartHeight)
| + +## `LegendItem` + +|public method|description| +|--|--| +| `GetIconColor()` |public Color GetIconColor()
| +| `GetIconRect()` |public Rect GetIconRect()
| +| `SetActive()` |public void SetActive(bool active)
| +| `SetButton()` |public void SetButton(Button button)
| +| `SetContent()` |public bool SetContent(string content)
| +| `SetContentBackgroundColor()` |public void SetContentBackgroundColor(Color color)
| +| `SetContentColor()` |public void SetContentColor(Color color)
| +| `SetContentPosition()` |public void SetContentPosition(Vector3 offset)
| +| `SetIcon()` |public void SetIcon(Image icon)
| +| `SetIconActive()` |public void SetIconActive(bool active)
| +| `SetIconColor()` |public void SetIconColor(Color color)
| +| `SetIconImage()` |public void SetIconImage(Sprite image)
| +| `SetIconSize()` |public void SetIconSize(float width, float height)
| +| `SetObject()` |public void SetObject(GameObject obj)
| +| `SetPosition()` |public void SetPosition(Vector3 position)
| +| `SetText()` |public void SetText(ChartText text)
| +| `SetTextBackground()` |public void SetTextBackground(Image image)
| + +## `LineChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `ListFor` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `ListFor()` |public ListFor(Type type)
| + +## `ListForComponent` + +Inherits or Implemented: [ListFor](#ListFor) + +|public method|description| +|--|--| +| `ListForComponent()` |public ListForComponent(Type type) : base(type)
| + +## `ListForSerie` + +Inherits or Implemented: [ListFor](#ListFor) + +|public method|description| +|--|--| +| `ListForSerie()` |public ListForSerie(Type type) : base(type)
| + +## `MainComponentContext` + +## `MainComponentHandler` + +## `MainComponentHandler` + +Inherits or Implemented: [MainComponentHandler](#MainComponentHandler) + +## `MathUtil` + +|public method|description| +|--|--| +| `Abs()` |public static double Abs(double d)
| +| `Approximately()` |public static bool Approximately(double a, double b)
| +| `Clamp()` |public static double Clamp(double d, double min, double max)
| +| `Clamp01()` |public static double Clamp01(double value)
| +| `Lerp()` |public static double Lerp(double a, double b, double t)
| + +## `ObjectPool where T` + +Inherits or Implemented: [new()](#new()) + +|public method|description| +|--|--| +| `ClearAll()` |public void ClearAll()
| +| `Get()` |public T Get()
| +| `new()` |public class ObjectPool where T : new()
| +| `ObjectPool()` |public ObjectPool(UnityAction actionOnGet, UnityAction actionOnRelease, bool newIfEmpty = true)
| +| `Release()` |public void Release(T element)
| + +## `Painter` + +Inherits or Implemented: [MaskableGraphic](#MaskableGraphic) + +|public method|description| +|--|--| +| `Init()` |public void Init()
| +| `Refresh()` |public void Refresh()
| +| `SetActive()` |public void SetActive(bool flag, bool isDebugMode = false)
| + +## `ParallelChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `ParallelCoordContext` + +Inherits or Implemented: [MainComponentContext](#MainComponentContext) + +## `PieChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `PolarChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `PolarCoordContext` + +Inherits or Implemented: [MainComponentContext](#MainComponentContext) + +## `ProgressBar` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `PropertyUtil` + +|public method|description| +|--|--| +| `SetColor()` |public static bool SetColor(ref Color currentValue, Color newValue)
| +| `SetColor()` |public static bool SetColor(ref Color32 currentValue, Color32 newValue)
| + +## `RadarChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `RadarCoordContext` + +Inherits or Implemented: [MainComponentContext](#MainComponentContext) + +## `ReflectionUtil` + +|public method|description| +|--|--| +| `DeepCloneSerializeField()` |public static object DeepCloneSerializeField(object obj)
| +| `InvokeListAdd()` |public static void InvokeListAdd(object obj, FieldInfo field, object item)
| +| `InvokeListAddTo()` |public static void InvokeListAddTo(object obj, FieldInfo field, Action callback)
| +| `InvokeListClear()` |public static void InvokeListClear(object obj, FieldInfo field)
| +| `InvokeListCount()` |public static int InvokeListCount(object obj, FieldInfo field)
| +| `InvokeListGet()` |public static T InvokeListGet(object obj, FieldInfo field, int i)
| + +## `RequireChartComponentAttribute` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `RequireChartComponentAttribute()` |public RequireChartComponentAttribute(Type requiredComponent)
| +| `RequireChartComponentAttribute()` |public RequireChartComponentAttribute(Type requiredComponent, Type requiredComponent2)
| +| `RequireChartComponentAttribute()` |public RequireChartComponentAttribute(Type requiredComponent, Type requiredComponent2, Type requiredComponent3)
| + +## `RingChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `RuntimeUtil` + +|public method|description| +|--|--| +| `GetAllAssemblyTypes()` |public static IEnumerable GetAllAssemblyTypes()
| +| `GetAllTypesDerivedFrom()` |public static IEnumerable GetAllTypesDerivedFrom(Type type)
| +| `GetAllTypesDerivedFrom()` |public static IEnumerable GetAllTypesDerivedFrom()
| +| `HasSubclass()` |public static bool HasSubclass(Type type)
| + +## `ScatterChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `SerieContext` + +## `SerieConvertAttribute` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `Contains()` |public bool Contains(Type type)
| +| `SerieConvertAttribute()` |public SerieConvertAttribute(Type serie)
| +| `SerieConvertAttribute()` |public SerieConvertAttribute(Type serie, Type serie2)
| +| `SerieConvertAttribute()` |public SerieConvertAttribute(Type serie, Type serie2, Type serie3)
| +| `SerieConvertAttribute()` |public SerieConvertAttribute(Type serie, Type serie2, Type serie3, Type serie4)
| + +## `SerieDataContext` + +|public method|description| +|--|--| +| `Reset()` |public void Reset()
| + +## `SerieDataExtraComponentAttribute` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `Contains()` |public bool Contains(Type type)
| +| `SerieDataExtraComponentAttribute()` |public SerieDataExtraComponentAttribute()
| +| `SerieDataExtraComponentAttribute()` |public SerieDataExtraComponentAttribute(Type type1)
| +| `SerieDataExtraComponentAttribute()` |public SerieDataExtraComponentAttribute(Type type1, Type type2)
| +| `SerieDataExtraComponentAttribute()` |public SerieDataExtraComponentAttribute(Type type1, Type type2, Type type3)
| +| `SerieDataExtraComponentAttribute()` |public SerieDataExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4)
| +| `SerieDataExtraComponentAttribute()` |public SerieDataExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5)
| +| `SerieDataExtraComponentAttribute()` |public SerieDataExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5, Type type6)
| +| `SerieDataExtraComponentAttribute()` |public SerieDataExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5, Type type6, Type type7)
| + +## `SerieDataExtraFieldAttribute` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `Contains()` |public bool Contains(string field)
| +| `SerieDataExtraFieldAttribute()` |public SerieDataExtraFieldAttribute()
| +| `SerieDataExtraFieldAttribute()` |public SerieDataExtraFieldAttribute(string field1)
| +| `SerieDataExtraFieldAttribute()` |public SerieDataExtraFieldAttribute(string field1, string field2)
| +| `SerieDataExtraFieldAttribute()` |public SerieDataExtraFieldAttribute(string field1, string field2, string field3)
| +| `SerieDataExtraFieldAttribute()` |public SerieDataExtraFieldAttribute(string field1, string field2, string field3, string field4)
| +| `SerieDataExtraFieldAttribute()` |public SerieDataExtraFieldAttribute(string field1, string field2, string field3, string field4, string field5)
| +| `SerieDataExtraFieldAttribute()` |public SerieDataExtraFieldAttribute(string field1, string field2, string field3, string field4, string field5, string field6)
| +| `SerieDataExtraFieldAttribute()` |public SerieDataExtraFieldAttribute(string field1, string field2, string field3, string field4, string field5, string field6, string field7)
| + +## `SerieExtraComponentAttribute` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `Contains()` |public bool Contains(Type type)
| +| `SerieExtraComponentAttribute()` |public SerieExtraComponentAttribute()
| +| `SerieExtraComponentAttribute()` |public SerieExtraComponentAttribute(Type type1)
| +| `SerieExtraComponentAttribute()` |public SerieExtraComponentAttribute(Type type1, Type type2)
| +| `SerieExtraComponentAttribute()` |public SerieExtraComponentAttribute(Type type1, Type type2, Type type3)
| +| `SerieExtraComponentAttribute()` |public SerieExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4)
| +| `SerieExtraComponentAttribute()` |public SerieExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5)
| +| `SerieExtraComponentAttribute()` |public SerieExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5, Type type6)
| +| `SerieExtraComponentAttribute()` |public SerieExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5, Type type6, Type type7)
| + +## `SerieHandler` + +## `SerieHandler` + +Inherits or Implemented: [SerieHandler where T](#SerieHandler where T),[Serie](#Serie) + +|public method|description| +|--|--| +| `GetSerieDataAutoColor()` |public virtual Color GetSerieDataAutoColor(SerieData serieData)
| +| `GetSerieDataLabelOffset()` |public virtual Vector3 GetSerieDataLabelOffset(SerieData serieData, LabelStyle label)
| +| `GetSerieDataLabelPosition()` |public virtual Vector3 GetSerieDataLabelPosition(SerieData serieData, LabelStyle label)
| +| `GetSerieDataTitlePosition()` |public virtual Vector3 GetSerieDataTitlePosition(SerieData serieData, TitleStyle titleStyle)
| +| `InitComponent()` |public override void InitComponent()
| +| `OnLegendButtonClick()` |public override void OnLegendButtonClick(int index, string legendName, bool show)
| +| `OnLegendButtonEnter()` |public override void OnLegendButtonEnter(int index, string legendName)
| +| `OnLegendButtonExit()` |public override void OnLegendButtonExit(int index, string legendName)
| +| `RefreshEndLabelInternal()` |public virtual void RefreshEndLabelInternal()
| +| `RefreshLabelInternal()` |public override void RefreshLabelInternal()
| +| `RefreshLabelNextFrame()` |public override void RefreshLabelNextFrame()
| +| `RemoveComponent()` |public override void RemoveComponent()
| +| `Update()` |public override void Update()
| + +## `SerieHandlerAttribute` + +Inherits or Implemented: [Attribute](#Attribute) + +|public method|description| +|--|--| +| `SerieHandlerAttribute()` |public SerieHandlerAttribute(Type handler)
| +| `SerieHandlerAttribute()` |public SerieHandlerAttribute(Type handler, bool allowMultiple)
| + +## `SerieHelper` + +|public method|description| +|--|--| +| `CopySerie()` |public static void CopySerie(Serie oldSerie, Serie newSerie)
| +| `GetAllMinMaxData()` |public static void GetAllMinMaxData(Serie serie, int ceilRate = 0, DataZoom dataZoom = null)
| +| `GetAreaColor()` |public static Color32 GetAreaColor(Serie serie, SerieData serieData, ThemeStyle theme, int index, bool highlight)
| +| `GetAreaStyle()` |public static AreaStyle GetAreaStyle(Serie serie, SerieData serieData)
| +| `GetAreaToColor()` |public static Color32 GetAreaToColor(Serie serie, SerieData serieData, ThemeStyle theme, int index, bool highlight)
| +| `GetAverageData()` |public static double GetAverageData(Serie serie, int dimension = 1, DataZoom dataZoom = null)
| +| `GetItemColor()` |public static Color32 GetItemColor(Serie serie, SerieData serieData, ThemeStyle theme, int index, bool highlight, bool opacity = true)
| +| `GetItemColor0()` |public static Color32 GetItemColor0(Serie serie, SerieData serieData, ThemeStyle theme, bool highlight, Color32 defaultColor)
| +| `GetItemFormatter()` |public static string GetItemFormatter(Serie serie, SerieData serieData, string defaultFormatter = null)
| +| `GetItemMarker()` |public static string GetItemMarker(Serie serie, SerieData serieData, string defaultMarker = null)
| +| `GetItemStyle()` |public static ItemStyle GetItemStyle(Serie serie, SerieData serieData, bool highlight = false)
| +| `GetItemStyleEmphasis()` |public static ItemStyle GetItemStyleEmphasis(Serie serie, SerieData serieData)
| +| `GetItemToColor()` |public static Color32 GetItemToColor(Serie serie, SerieData serieData, ThemeStyle theme, int index, bool highlight, bool opacity = true)
| +| `GetLineColor()` |public static Color32 GetLineColor(Serie serie, SerieData serieData, ThemeStyle theme, int index, bool highlight)
| +| `GetLineStyle()` |public static LineStyle GetLineStyle(Serie serie, SerieData serieData)
| +| `GetMaxData()` |public static double GetMaxData(Serie serie, int dimension = 1, DataZoom dataZoom = null)
| +| `GetMaxSerieData()` |public static SerieData GetMaxSerieData(Serie serie, int dimension = 1, DataZoom dataZoom = null)
| +| `GetMedianData()` |public static double GetMedianData(Serie serie, int dimension = 1, DataZoom dataZoom = null)
| +| `GetMinData()` |public static double GetMinData(Serie serie, int dimension = 1, DataZoom dataZoom = null)
| +| `GetMinMaxData()` |public static void GetMinMaxData(Serie serie, out double min, out double max, DataZoom dataZoom = null, int dimension = 0)
获得系列所有数据的最大最小值。 | +| `GetMinSerieData()` |public static SerieData GetMinSerieData(Serie serie, int dimension = 1, DataZoom dataZoom = null)
| +| `GetNumericFormatter()` |public static string GetNumericFormatter(Serie serie, SerieData serieData, string defaultFormatter = null)
| +| `GetSerieEmphasisLabel()` |public static LabelStyle GetSerieEmphasisLabel(Serie serie, SerieData serieData)
| +| `GetSerieLabel()` |public static LabelStyle GetSerieLabel(Serie serie, SerieData serieData, bool highlight = false)
| +| `GetSerieLabelLine()` |public static LabelLine GetSerieLabelLine(Serie serie, SerieData serieData, bool highlight = false)
| +| `GetSerieSymbol()` |public static SerieSymbol GetSerieSymbol(Serie serie, SerieData serieData)
| +| `GetSymbolBorder()` |public static float GetSymbolBorder(Serie serie, SerieData serieData, ThemeStyle theme, bool highlight)
| +| `GetSymbolBorder()` |public static float GetSymbolBorder(Serie serie, SerieData serieData, ThemeStyle theme, bool highlight, float defaultWidth)
| +| `GetSymbolBorderColor()` |public static Color32 GetSymbolBorderColor(Serie serie, SerieData serieData, ThemeStyle theme, bool highlight)
| +| `GetSymbolCornerRadius()` |public static float[] GetSymbolCornerRadius(Serie serie, SerieData serieData, bool highlight)
| +| `GetTitleStyle()` |public static TitleStyle GetTitleStyle(Serie serie, SerieData serieData)
| +| `IsAllZeroValue()` |public static bool IsAllZeroValue(Serie serie, int dimension = 1)
系列指定维数的数据是否全部为0。 | +| `IsDownPoint()` |public static bool IsDownPoint(Serie serie, int index)
| +| `UpdateCenter()` |public static void UpdateCenter(Serie serie, Vector3 chartPosition, float chartWidth, float chartHeight)
更新运行时中心点和半径 | +| `UpdateFilterData()` |public static void UpdateFilterData(Serie serie, DataZoom dataZoom)
根据dataZoom更新数据列表缓存 | +| `UpdateMinMaxData()` |public static void UpdateMinMaxData(Serie serie, int dimension, int ceilRate = 0, DataZoom dataZoom = null)
获得指定维数的最大最小值 | +| `UpdateRect()` |public static void UpdateRect(Serie serie, Vector3 chartPosition, float chartWidth, float chartHeight)
| +| `UpdateSerieRuntimeFilterData()` |public static void UpdateSerieRuntimeFilterData(Serie serie, bool filterInvisible = true)
| + +## `SerieLabelHelper` + +|public method|description| +|--|--| +| `AvoidLabelOverlap()` |public static void AvoidLabelOverlap(Serie serie, ComponentTheme theme)
| +| `CanShowLabel()` |public static bool CanShowLabel(Serie serie, SerieData serieData, LabelStyle label, int dimesion)
| +| `GetLabelColor()` |public static Color GetLabelColor(Serie serie, ThemeStyle theme, int index)
| +| `GetRealLabelPosition()` |public static Vector3 GetRealLabelPosition(Serie serie, SerieData serieData, LabelStyle label, LabelLine labelLine)
| +| `SetGaugeLabelText()` |public static void SetGaugeLabelText(Serie serie)
| +| `UpdatePieLabelPosition()` |public static void UpdatePieLabelPosition(Serie serie, SerieData serieData)
| + +## `SerieLabelPool` + +|public method|description| +|--|--| +| `ClearAll()` |public static void ClearAll()
| +| `Release()` |public static void Release(GameObject element)
| +| `ReleaseAll()` |public static void ReleaseAll(Transform parent)
| + +## `SerieParams` + +## `SeriesHelper` + +|public method|description| +|--|--| +| `GetLastStackSerie()` |public static Serie GetLastStackSerie(List series, Serie serie)
获得上一个同堆叠且显示的serie。 | +| `GetLegalSerieNameList()` |public static List GetLegalSerieNameList(List series)
| +| `GetMaxSerieDataCount()` |public static int GetMaxSerieDataCount(List series)
| +| `GetNameColor()` |public static Color GetNameColor(BaseChart chart, int index, string name)
| +| `GetSerieByVesselIndex()` |public static Serie GetSerieByVesselIndex(List series, int vesselIndex)
| +| `GetStackSeries()` |public static void GetStackSeries(List series, ref Dictionary> stackSeries)
获得堆叠系列列表 | +| `IsAnyClipSerie()` |public static bool IsAnyClipSerie(List series)
是否有需裁剪的serie。 | +| `IsLegalLegendName()` |public static bool IsLegalLegendName(string name)
| +| `IsStack()` |public static bool IsStack(List series)
是否由数据堆叠 | +| `UpdateSerieNameList()` |public static void UpdateSerieNameList(BaseChart chart, ref List serieNameList)
获得所有系列名,不包含空名字。 | +| `UpdateStackDataList()` |public static void UpdateStackDataList(List series, Serie currSerie, DataZoom dataZoom, List> dataList)
| + +## `SimplifiedBarChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `SimplifiedCandlestickChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `SimplifiedLineChart` + +Inherits or Implemented: [BaseChart](#BaseChart) + +## `SVG` + +|public method|description| +|--|--| +| `DrawPath()` |public static void DrawPath(VertexHelper vh, string path)
| +| `DrawPath()` |public static void DrawPath(VertexHelper vh, SVGPath path)
| +| `Test()` |public static void Test(VertexHelper vh)
| + +## `SVGImage` + +Inherits or Implemented: [MaskableGraphic](#MaskableGraphic) + +## `SVGPath` + +|public method|description| +|--|--| +| `AddSegment()` |public void AddSegment(SVGPathSeg seg)
| +| `Draw()` |public void Draw(VertexHelper vh)
| +| `Parse()` |public static SVGPath Parse(string path)
| + +## `SVGPathSeg` + +|public method|description| +|--|--| +| `SVGPathSeg()` |public SVGPathSeg(SVGPathSegType type)
| + +## `TooltipContext` + +## `TooltipData` + +## `TooltipHelper` + +|public method|description| +|--|--| +| `GetItemNumericFormatter()` |public static string GetItemNumericFormatter(Tooltip tooltip, Serie serie, SerieData serieData)
| +| `GetLineColor()` |public static Color32 GetLineColor(Tooltip tooltip, ThemeStyle theme)
| +| `IsIgnoreItemFormatter()` |public static bool IsIgnoreItemFormatter(string itemFormatter)
| +| `LimitInRect()` |public static void LimitInRect(Tooltip tooltip, Rect chartRect)
| + +## `TooltipView` + +|public method|description| +|--|--| +| `CreateView()` |public static TooltipView CreateView(Tooltip tooltip, ThemeStyle theme, Transform parent)
| +| `GetCurrentPos()` |public Vector3 GetCurrentPos()
| +| `GetTargetPos()` |public Vector3 GetTargetPos()
| +| `Refresh()` |public void Refresh()
| +| `SetActive()` |public void SetActive(bool flag)
| +| `Update()` |public void Update()
| +| `UpdatePosition()` |public void UpdatePosition(Vector3 pos)
| + +## `TooltipViewItem` + +## `UGL` + +|public method|description| +|--|--| +| `DrawDiamond()` |public static void DrawDiamond(VertexHelper vh, Vector3 center, float size, Color32 color)
Draw a diamond. 画菱形(钻石形状) | +| `DrawDiamond()` |public static void DrawDiamond(VertexHelper vh, Vector3 center, float size, Color32 color, Color32 toColor)
Draw a diamond. 画菱形(钻石形状) | +| `DrawEllipse()` |public static void DrawEllipse(VertexHelper vh, Vector3 center, float w, float h, Color32 color, float smoothness = 1)
| +| `DrawLine()` |public static void DrawLine(VertexHelper vh, List points, float width, Color32 color, bool smooth, bool closepath = false)
| +| `DrawLine()` |public static void DrawLine(VertexHelper vh, Vector3 startPoint, Vector3 endPoint, float width, Color32 color)
Draw a line. 画直线 | +| `DrawLine()` |public static void DrawLine(VertexHelper vh, Vector3 startPoint, Vector3 endPoint, float width, Color32 color, Color32 toColor)
Draw a line. 画直线 | +| `DrawRectangle()` |public static void DrawRectangle(VertexHelper vh, Rect rect, Color32 color)
| +| `DrawRectangle()` |public static void DrawRectangle(VertexHelper vh, Rect rect, Color32 color, Color32 toColor)
| +| `DrawRectangle()` |public static void DrawRectangle(VertexHelper vh, Rect rect, float border, Color32 color)
| +| `DrawRectangle()` |public static void DrawRectangle(VertexHelper vh, Rect rect, float border, Color32 color, Color32 toColor)
| +| `DrawRectangle()` |public static void DrawRectangle(VertexHelper vh, Vector3 p1, Vector3 p2, float radius, Color32 color)
Draw a rectangle. 画带长方形 | +| `DrawSquare()` |public static void DrawSquare(VertexHelper vh, Vector3 center, float radius, Color32 color)
Draw a square. 画正方形 | +| `DrawSvgPath()` |public static void DrawSvgPath(VertexHelper vh, string path)
| +| `DrawTriangle()` |public static void DrawTriangle(VertexHelper vh, Vector3 pos, float size, Color32 color)
| +| `DrawTriangle()` |public static void DrawTriangle(VertexHelper vh, Vector3 pos, float size, Color32 color, Color32 toColor)
| + +## `UGLExample` + +Inherits or Implemented: [MaskableGraphic](#MaskableGraphic) + +## `UGLHelper` + +|public method|description| +|--|--| +| `GetAngle360()` |public static float GetAngle360(Vector2 from, Vector2 to)
获得0-360的角度(12点钟方向为0度) | +| `GetBezier()` |public static Vector3 GetBezier(float t, Vector3 sp, Vector3 cp, Vector3 ep)
| +| `GetBezier2()` |public static Vector3 GetBezier2(float t, Vector3 sp, Vector3 p1, Vector3 p2, Vector3 ep)
| +| `GetBezierList()` |public static List GetBezierList(Vector3 sp, Vector3 ep, int segment, Vector3 cp)
| +| `GetDire()` |public static Vector3 GetDire(float angle, bool isDegree = false)
| +| `GetIntersection()` |public static bool GetIntersection(Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4, ref Vector3 intersection)
获得两直线的交点 | +| `GetPos()` |public static Vector3 GetPos(Vector3 center, float radius, float angle, bool isDegree = false)
| +| `GetVertialDire()` |public static Vector3 GetVertialDire(Vector3 dire)
| +| `IsClearColor()` |public static bool IsClearColor(Color color)
| +| `IsClearColor()` |public static bool IsClearColor(Color32 color)
| +| `IsPointInPolygon()` |public static bool IsPointInPolygon(Vector3 p, List polyons)
| +| `IsPointInPolygon()` |public static bool IsPointInPolygon(Vector3 p, List polyons)
| +| `IsPointInTriangle()` |public static bool IsPointInTriangle(Vector3 p1, Vector3 p2, Vector3 p3, Vector3 check)
| +| `IsValueEqualsColor()` |public static bool IsValueEqualsColor(Color color1, Color color2)
| +| `IsValueEqualsColor()` |public static bool IsValueEqualsColor(Color32 color1, Color32 color2)
| +| `IsValueEqualsList()` |public static bool IsValueEqualsList(List list1, List list2)
| +| `IsValueEqualsString()` |public static bool IsValueEqualsString(string str1, string str2)
| +| `IsValueEqualsVector2()` |public static bool IsValueEqualsVector2(Vector2 v1, Vector2 v2)
| +| `IsValueEqualsVector3()` |public static bool IsValueEqualsVector3(Vector3 v1, Vector2 v2)
| +| `IsValueEqualsVector3()` |public static bool IsValueEqualsVector3(Vector3 v1, Vector3 v2)
| +| `IsZeroVector()` |public static bool IsZeroVector(Vector3 pos)
| +| `RotateRound()` |public static Vector3 RotateRound(Vector3 position, Vector3 center, Vector3 axis, float angle)
| + +## `VisualMapContext` + +Inherits or Implemented: [MainComponentContext](#MainComponentContext) + +## `VisualMapHelper` + +|public method|description| +|--|--| +| `AutoSetLineMinMax()` |public static void AutoSetLineMinMax(VisualMap visualMap, Serie serie, bool isY, Axis axis, Axis relativedAxis)
| +| `GetDimension()` |public static int GetDimension(VisualMap visualMap, int serieDataCount)
| +| `IsNeedAreaGradient()` |public static bool IsNeedAreaGradient(VisualMap visualMap)
| +| `IsNeedGradient()` |public static bool IsNeedGradient(VisualMap visualMap)
| +| `IsNeedLineGradient()` |public static bool IsNeedLineGradient(VisualMap visualMap)
| +| `SetMinMax()` |public static void SetMinMax(VisualMap visualMap, double min, double max)
| + +## `XChartsMgr` + +|public method|description| +|--|--| +| `AddChart()` |public static void AddChart(BaseChart chart)
| +| `ContainsChart()` |public static bool ContainsChart(BaseChart chart)
| +| `ContainsChart()` |public static bool ContainsChart(string chartName)
| +| `DisableTextMeshPro()` |public static void DisableTextMeshPro()
| +| `EnableTextMeshPro()` |public static void EnableTextMeshPro()
| +| `GetChart()` |public static BaseChart GetChart(string chartName)
| +| `GetCharts()` |public static List GetCharts(string chartName)
| +| `GetPackageFullPath()` |public static string GetPackageFullPath()
| +| `GetRepeatChartNameInfo()` |public static string GetRepeatChartNameInfo(BaseChart chart, string chartName)
| +| `IsExistTMPAssembly()` |public static bool IsExistTMPAssembly()
| +| `IsRepeatChartName()` |public static bool IsRepeatChartName(BaseChart chart, string chartName = null)
| +| `ModifyTMPRefence()` |public static bool ModifyTMPRefence(bool removeTMP = false)
| +| `RemoveAllChartObject()` |public static void RemoveAllChartObject()
| +| `RemoveChart()` |public static void RemoveChart(string chartName)
| + +## `XCResourceImporterWindow` + +Inherits or Implemented: [UnityEditor.EditorWindow](#UnityEditor.EditorWindow) + +|public method|description| +|--|--| +| `ShowPackageImporterWindow()` |public static void ShowPackageImporterWindow()
| + +## `XCThemeMgr` + +|public method|description| +|--|--| +| `AddTheme()` |public static void AddTheme(Theme theme)
| +| `CheckReloadTheme()` |public static void CheckReloadTheme()
| +| `ContainsTheme()` |public static bool ContainsTheme(string themeName)
| +| `ExportTheme()` |public static bool ExportTheme(Theme theme)
| +| `ExportTheme()` |public static bool ExportTheme(Theme theme, string themeNewName)
| +| `GetAllThemeNames()` |public static List GetAllThemeNames()
| +| `GetTheme()` |public static Theme GetTheme(string themeName)
| +| `GetTheme()` |public static Theme GetTheme(ThemeType type)
| +| `GetThemeAssetPath()` |public static string GetThemeAssetPath(string themeName)
| +| `GetThemeList()` |public static List GetThemeList()
| +| `LoadTheme()` |public static Theme LoadTheme(string themeName)
| +| `LoadTheme()` |public static Theme LoadTheme(ThemeType type)
| +| `ReloadThemeList()` |public static void ReloadThemeList()
重新加载主题列表 | +| `SwitchTheme()` |public static void SwitchTheme(BaseChart chart, string themeName)
| + +[XCharts主页](https://github.com/XCharts-Team/XCharts)
+[XCharts配置项手册](XChartsConfiguration-ZH.md)
+[XCharts问答](XChartsFAQ-ZH.md) diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsAPI-ZH.md.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsAPI-ZH.md.meta new file mode 100644 index 0000000..79944bc --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsAPI-ZH.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2c38d275e62c6471ea2f4ef69b87b220 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsConfiguration-EN.md b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsConfiguration-EN.md new file mode 100644 index 0000000..8a251fc --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsConfiguration-EN.md @@ -0,0 +1,1528 @@ +# Chart Configuration + +[XCharts Homepage](https://github.com/XCharts-Team/XCharts)
+[XCharts API](XChartsAPI-EN.md)
+[XCharts FAQ](XChartsFAQ-EN.md) + +## Serie + +- [Bar](#Bar) +- [BaseScatter](#BaseScatter) +- [Candlestick](#Candlestick) +- [EffectScatter](#EffectScatter) +- [Heatmap](#Heatmap) +- [Line](#Line) +- [Parallel](#Parallel) +- [Pie](#Pie) +- [Radar](#Radar) +- [Ring](#Ring) +- [Scatter](#Scatter) +- [Serie](#Serie) +- [SimplifiedBar](#SimplifiedBar) +- [SimplifiedCandlestick](#SimplifiedCandlestick) +- [SimplifiedLine](#SimplifiedLine) + +## Theme + +- [AngleAxisTheme](#AngleAxisTheme) +- [AxisTheme](#AxisTheme) +- [BaseAxisTheme](#BaseAxisTheme) +- [ComponentTheme](#ComponentTheme) +- [DataZoomTheme](#DataZoomTheme) +- [LegendTheme](#LegendTheme) +- [PolarAxisTheme](#PolarAxisTheme) +- [RadarAxisTheme](#RadarAxisTheme) +- [RadiusAxisTheme](#RadiusAxisTheme) +- [SerieTheme](#SerieTheme) +- [SubTitleTheme](#SubTitleTheme) +- [Theme](#Theme) +- [ThemeStyle](#ThemeStyle) +- [TitleTheme](#TitleTheme) +- [TooltipTheme](#TooltipTheme) +- [VisualMapTheme](#VisualMapTheme) + +## MainComponent + +- [AngleAxis](#AngleAxis) +- [Axis](#Axis) +- [Background](#Background) +- [CalendarCoord](#CalendarCoord) +- [Comment](#Comment) +- [CoordSystem](#CoordSystem) +- [DataZoom](#DataZoom) +- [GridCoord](#GridCoord) +- [Legend](#Legend) +- [MarkArea](#MarkArea) +- [MarkLine](#MarkLine) +- [ParallelAxis](#ParallelAxis) +- [ParallelCoord](#ParallelCoord) +- [PolarCoord](#PolarCoord) +- [RadarCoord](#RadarCoord) +- [RadiusAxis](#RadiusAxis) +- [Settings](#Settings) +- [SingleAxis](#SingleAxis) +- [SingleAxisCoord](#SingleAxisCoord) +- [Title](#Title) +- [Tooltip](#Tooltip) +- [VisualMap](#VisualMap) +- [XAxis](#XAxis) +- [YAxis](#YAxis) + +## ChildComponent + +- [AngleAxisTheme](#AngleAxisTheme) +- [AnimationStyle](#AnimationStyle) +- [AreaStyle](#AreaStyle) +- [ArrowStyle](#ArrowStyle) +- [AxisLabel](#AxisLabel) +- [AxisLine](#AxisLine) +- [AxisName](#AxisName) +- [AxisSplitArea](#AxisSplitArea) +- [AxisSplitLine](#AxisSplitLine) +- [AxisTheme](#AxisTheme) +- [AxisTick](#AxisTick) +- [BaseAxisTheme](#BaseAxisTheme) +- [BaseLine](#BaseLine) +- [CommentItem](#CommentItem) +- [CommentMarkStyle](#CommentMarkStyle) +- [ComponentTheme](#ComponentTheme) +- [DataZoomTheme](#DataZoomTheme) +- [Emphasis](#Emphasis) +- [EmphasisItemStyle](#EmphasisItemStyle) +- [EmphasisLabelLine](#EmphasisLabelLine) +- [EmphasisLabelStyle](#EmphasisLabelStyle) +- [EndLabelStyle](#EndLabelStyle) +- [IconStyle](#IconStyle) +- [ImageStyle](#ImageStyle) +- [ItemStyle](#ItemStyle) +- [LabelLine](#LabelLine) +- [LabelStyle](#LabelStyle) +- [LegendTheme](#LegendTheme) +- [Level](#Level) +- [LevelStyle](#LevelStyle) +- [LineArrow](#LineArrow) +- [LineStyle](#LineStyle) +- [Location](#Location) +- [MarkAreaData](#MarkAreaData) +- [MarkLineData](#MarkLineData) +- [PolarAxisTheme](#PolarAxisTheme) +- [RadarAxisTheme](#RadarAxisTheme) +- [RadiusAxisTheme](#RadiusAxisTheme) +- [SerieData](#SerieData) +- [SerieSymbol](#SerieSymbol) +- [SerieTheme](#SerieTheme) +- [StageColor](#StageColor) +- [SubTitleTheme](#SubTitleTheme) +- [SymbolStyle](#SymbolStyle) +- [TextLimit](#TextLimit) +- [TextPadding](#TextPadding) +- [TextStyle](#TextStyle) +- [ThemeStyle](#ThemeStyle) +- [TitleStyle](#TitleStyle) +- [TitleTheme](#TitleTheme) +- [TooltipTheme](#TooltipTheme) +- [VisualMapRange](#VisualMapRange) +- [VisualMapTheme](#VisualMapTheme) + +## ISerieExtraComponent + +- [AreaStyle](#AreaStyle) +- [Emphasis](#Emphasis) +- [EmphasisItemStyle](#EmphasisItemStyle) +- [EmphasisLabelLine](#EmphasisLabelLine) +- [EmphasisLabelStyle](#EmphasisLabelStyle) +- [ImageStyle](#ImageStyle) +- [LabelLine](#LabelLine) +- [LabelStyle](#LabelStyle) +- [LineArrow](#LineArrow) +- [TitleStyle](#TitleStyle) + +## ISerieDataComponent + +- [AreaStyle](#AreaStyle) +- [Emphasis](#Emphasis) +- [EmphasisItemStyle](#EmphasisItemStyle) +- [EmphasisLabelLine](#EmphasisLabelLine) +- [EmphasisLabelStyle](#EmphasisLabelStyle) +- [ImageStyle](#ImageStyle) +- [ItemStyle](#ItemStyle) +- [LabelLine](#LabelLine) +- [LabelStyle](#LabelStyle) +- [LineStyle](#LineStyle) +- [SerieSymbol](#SerieSymbol) +- [TitleStyle](#TitleStyle) + +## Other + +- [BaseSerie](#BaseSerie) +- [ChartText](#ChartText) +- [ChildComponent](#ChildComponent) +- [DebugInfo](#DebugInfo) +- [Indicator](#Indicator) +- [Lang](#Lang) +- [LangCandlestick](#LangCandlestick) +- [LangTime](#LangTime) +- [MainComponent](#MainComponent) +- [XCResourcesImporter](#XCResourcesImporter) +- [XCSettings](#XCSettings) + +## `AngleAxis` + +Inherits or Implemented: [Axis](#Axis) + +Angle axis of Polar Coordinate. + +|field|default|comment| +|--|--|--| +| `startAngle` |0 | Starting angle of axis. 0 degrees by default, standing for right position of center. | + +## `AngleAxisTheme` + +Inherits or Implemented: [BaseAxisTheme](#BaseAxisTheme) + + +## `AnimationStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +the animation of serie. + +|field|default|comment| +|--|--|--| +| `enable` |true | Whether to enable animation. | +| `type` | | The type of animation.
`AnimationType`:
- `Default`: he default. An animation playback mode will be selected according to the actual situation.
- `LeftToRight`: Play the animation from left to right.
- `BottomToTop`: Play the animation from bottom to top.
- `InsideOut`: Play animations from the inside out.
- `AlongPath`: Play the animation along the path.
- `Clockwise`: Play the animation clockwise.
| +| `easting` | | Easing method used for the first animation.
`AnimationEasing`:
- `Linear`:
| +| `threshold` |2000 | Whether to set graphic number threshold to animation. Animation will be disabled when graphic number is larger than threshold. | +| `fadeInDuration` |1000 | The milliseconds duration of the fadeIn animation. | +| `fadeInDelay` |0 | The milliseconds delay before updating the first animation. | +| `fadeOutDuration` |1000f | The milliseconds duration of the fadeOut animation. | +| `fadeOutDelay` |0 | 渐出动画延时(毫秒)。如果要设置单个数据项的延时,可以用代码定制:customFadeOutDelay。 | +| `dataChangeEnable` |true | 是否开启数据变更动画。 | +| `dataChangeDuration` |500 | The milliseconds duration of the data change animation. | +| `actualDuration` | | The milliseconds actual duration of the first animation. | + +## `AreaStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent),[ISerieExtraComponent](#ISerieExtraComponent),[ISerieDataComponent](#ISerieDataComponent) + +The style of area. + +|field|default|comment| +|--|--|--| +| `show` |true | Set this to false to prevent the areafrom showing. | +| `origin` | | the origin of area.
`AreaStyle.AreaOrigin`:
- `Auto`: to fill between axis line to data.
- `Start`: to fill between min axis value (when not inverse) to data.
- `End`: to fill between max axis value (when not inverse) to data.
| +| `color` | | the color of area,default use serie color. | +| `toColor` | | Gradient color, start color to toColor. | +| `opacity` |0.6f | Opacity of the component. Supports value from 0 to 1, and the component will not be drawn when set to 0. | +| `highlightColor` | | the color of area,default use serie color. | +| `highlightToColor` | | Gradient color, start highlightColor to highlightToColor. | + +## `ArrowStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +|field|default|comment| +|--|--|--| +| `width` |10 | The widht of arrow. | +| `height` |15 | The height of arrow. | +| `offset` |0 | The offset of arrow. | +| `dent` |3 | The dent of arrow. | +| `color` |Color.clear | the color of arrow. | + +## `Axis` + +Inherits or Implemented: [MainComponent](#MainComponent) + +The axis in rectangular coordinate. + +|field|default|comment| +|--|--|--| +| `show` |true | Whether to show axis. | +| `type` | | the type of axis.
`Axis.AxisType`:
- `Value`: Numerical axis, suitable for continuous data.
- `Category`: Category axis, suitable for discrete category data. Data should only be set via data for this type.
- `Log`: Log axis, suitable for log data.
- `Time`: Time axis, suitable for continuous time series data.
| +| `minMaxType` | | the type of axis minmax.
`Axis.AxisMinMaxType`:
- `Default`: 0 - maximum.
- `MinMax`: minimum - maximum.
- `Custom`: Customize the minimum and maximum.
| +| `gridIndex` | | The index of the grid on which the axis are located, by default, is in the first grid. | +| `polarIndex` | | The index of the polar on which the axis are located, by default, is in the first polar. | +| `parallelIndex` | | The index of the parallel on which the axis are located, by default, is in the first parallel. | +| `position` | | the position of axis in grid.
`Axis.AxisPosition`:
- `Left`: the position of axis in grid.
- `Right`: the position of axis in grid.
- `Bottom`: the position of axis in grid.
- `Top`: the position of axis in grid.
| +| `offset` | | the offset of axis from the default position. Useful when the same position has multiple axes. | +| `min` | | The minimun value of axis.Valid when `minMaxType` is `Custom` | +| `max` | | The maximum value of axis.Valid when `minMaxType` is `Custom` | +| `splitNumber` |0 | Number of segments that the axis is split into. | +| `interval` |0 | Compulsively set segmentation interval for axis.This is unavailable for category axis. | +| `boundaryGap` |true | The boundary gap on both sides of a coordinate axis, which is valid only for category axis with type: 'Category'. | +| `maxCache` |0 | The max number of axis data cache. | +| `logBase` |10 | Base of logarithm, which is valid only for numeric axes with type: 'Log'. | +| `logBaseE` |false | On the log axis, if base e is the natural number, and is true, logBase fails. | +| `ceilRate` |0 | The ratio of maximum and minimum values rounded upward. The default is 0, which is automatically calculated. | +| `inverse` |false | Whether the axis are reversed or not. Invalid in `Category` axis. | +| `clockwise` |true | Whether the positive position of axis is in clockwise. True for clockwise by default. | +| `insertDataToHead` | | Whether to add new data at the head or at the end of the list. | +| `icons` | | 类目数据对应的图标。 | +| `data` | | Category data, available in type: 'Category' axis. | +| `axisLine` | | axis Line. [AxisLine](AxisLine)| +| `axisName` | | axis name. [AxisName](AxisName)| +| `axisTick` | | axis tick. [AxisTick](AxisTick)| +| `axisLabel` | | axis label. [AxisLabel](AxisLabel)| +| `splitLine` | | axis split line. [AxisSplitLine](AxisSplitLine)| +| `splitArea` | | axis split area. [AxisSplitArea](AxisSplitArea)| + +## `AxisLabel` + +Inherits or Implemented: [LabelStyle](#LabelStyle) + +Settings related to axis label. + +|field|default|comment| +|--|--|--| +| `interval` |0 | The display interval of the axis label. | +| `inside` |false | Set this to true so the axis labels face the inside direction. | +| `showAsPositiveNumber` |false | Show negative number as positive number. | +| `onZero` |false | 刻度标签显示在0刻度上。 | +| `showStartLabel` |true | Whether to display the first label. | +| `showEndLabel` |true | Whether to display the last label. | +| `textLimit` | | 文本限制。 [TextLimit](TextLimit)| + +## `AxisLine` + +Inherits or Implemented: [BaseLine](#BaseLine) + +Settings related to axis line. + +|field|default|comment| +|--|--|--| +| `onZero` | | When mutiple axes exists, this option can be used to specify which axis can be "onZero" to. | +| `showArrow` | | Whether to show the arrow symbol of axis. | +| `arrow` | | the arrow of line. [ArrowStyle](ArrowStyle)| + +## `AxisName` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +the name of axis. + +|field|default|comment| +|--|--|--| +| `show` | | Whether to show axis name. | +| `name` | | the name of axis. | +| `labelStyle` | | The text style of axis name. [LabelStyle](LabelStyle)| + +## `AxisSplitArea` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +Split area of axis in grid area, not shown by default. + +|field|default|comment| +|--|--|--| +| `show` | | Set this to true to show the splitArea. | +| `color` | | Color of split area. SplitArea color could also be set in color array, which the split lines would take as their colors in turns. Dark and light colors in turns are used by default. | + +## `AxisSplitLine` + +Inherits or Implemented: [BaseLine](#BaseLine) + +Split line of axis in grid area. + +|field|default|comment| +|--|--|--| +| `interval` | | Interval of Axis splitLine. | +| `distance` | | The distance between the split line and axis line. | +| `autoColor` | | auto color. | + +## `AxisTheme` + +Inherits or Implemented: [BaseAxisTheme](#BaseAxisTheme) + + +## `AxisTick` + +Inherits or Implemented: [BaseLine](#BaseLine) + +Settings related to axis tick. + +|field|default|comment| +|--|--|--| +| `alignWithLabel` | | Align axis tick with label, which is available only when boundaryGap is set to be true in category axis. | +| `inside` | | Set this to true so the axis labels face the inside direction. | +| `showStartTick` | | Whether to display the first tick. | +| `showEndTick` | | Whether to display the last tick. | +| `distance` | | The distance between the tick line and axis line. | +| `splitNumber` |0 | Number of segments that the axis is split into. | +| `autoColor` | | | + +## `Background` + +Inherits or Implemented: [MainComponent](#MainComponent) + +Background component. + +|field|default|comment| +|--|--|--| +| `show` |true | Whether to enable the background component. | +| `image` | | the image of background. | +| `imageType` | | the fill type of background image. | +| `imageColor` | | 背景图颜色。 | +| `autoColor` |true | Whether to use theme background color for component color when the background component is on. | + +## `Bar` + +Inherits or Implemented: [Serie](#Serie),[INeedSerieContainer](#INeedSerieContainer) + + +## `BaseAxisTheme` + +Inherits or Implemented: [ComponentTheme](#ComponentTheme) + +|field|default|comment| +|--|--|--| +| `lineType` | | the type of line. | +| `lineWidth` |1f | the width of line. | +| `lineLength` |0f | the length of line. | +| `lineColor` | | the color of line. | +| `splitLineType` | | the type of split line. | +| `splitLineWidth` |1f | the width of split line. | +| `splitLineLength` |0f | the length of split line. | +| `splitLineColor` | | the color of line. | +| `tickWidth` |1f | the width of tick. | +| `tickLength` |5f | the length of tick. | +| `tickColor` | | the color of tick. | +| `splitAreaColors` | | | + +## `BaseLine` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +Settings related to base line. + +|field|default|comment| +|--|--|--| +| `show` | | Set this to false to prevent the axis line from showing. | +| `lineStyle` | | 线条样式 [LineStyle](LineStyle)| + +## `BaseScatter` + +Inherits or Implemented: [Serie](#Serie),[INeedSerieContainer](#INeedSerieContainer) + + +## `BaseSerie` + + +## `CalendarCoord` + +Inherits or Implemented: [CoordSystem](#CoordSystem),[IUpdateRuntimeData](#IUpdateRuntimeData),[ISerieContainer](#ISerieContainer) + + +## `Candlestick` + +Inherits or Implemented: [Serie](#Serie),[INeedSerieContainer](#INeedSerieContainer) + + +## `ChartText` + + +## `ChildComponent` + + +## `Comment` + +Inherits or Implemented: [MainComponent](#MainComponent) + +comment of chart. + +|field|default|comment| +|--|--|--| +| `show` |true | Set this to false to prevent the comment from showing. | +| `labelStyle` | | The text style of all comments. [LabelStyle](LabelStyle)| +| `markStyle` | | The text style of all comments. [CommentMarkStyle](CommentMarkStyle)| +| `items` | | | + +## `CommentItem` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +comment of chart. + +|field|default|comment| +|--|--|--| +| `show` |true | Set this to false to prevent this comment item from showing. | +| `content` | | content of comment. | +| `position` | | position of comment. | +| `markRect` | | the mark rect of comment. | +| `markStyle` | | the mark rect style. [CommentMarkStyle](CommentMarkStyle)| +| `labelStyle` | | The text style of all comments. [LabelStyle](LabelStyle)| + +## `CommentMarkStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +the comment mark style. + +|field|default|comment| +|--|--|--| +| `show` |true | Set this to false to prevent this comment item from showing. | +| `lineStyle` | | line style of comment mark area. [LineStyle](LineStyle)| + +## `ComponentTheme` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +|field|default|comment| +|--|--|--| +| `font` | | the font of text. | +| `textColor` | | the color of text. | +| `textBackgroundColor` | | the color of text. | +| `fontSize` |18 | the font size of text. | +| `tMPFont` | | the font of chart text。 | + +## `CoordSystem` + +Inherits or Implemented: [MainComponent](#MainComponent) + +Coordinate system component. + + +## `DataZoom` + +Inherits or Implemented: [MainComponent](#MainComponent),[IUpdateRuntimeData](#IUpdateRuntimeData) + +DataZoom component is used for zooming a specific area, which enables user to investigate data in detail, or get an overview of the data, or get rid of outlier points. + +|field|default|comment| +|--|--|--| +| `enable` |true | Whether to show dataZoom. | +| `filterMode` | | The mode of data filter.
`DataZoom.FilterMode`:
- `Filter`: data that outside the window will be filtered, which may lead to some changes of windows of other axes. For each data item, it will be filtered if one of the relevant dimensions is out of the window.
- `WeakFilter`: data that outside the window will be filtered, which may lead to some changes of windows of other axes. For each data item, it will be filtered only if all of the relevant dimensions are out of the same side of the window.
- `Empty`: data that outside the window will be set to NaN, which will not lead to changes of windows of other axes.
- `None`: Do not filter data.
| +| `xAxisIndexs` | | Specify which xAxis is controlled by the dataZoom. | +| `yAxisIndexs` | | Specify which yAxis is controlled by the dataZoom. | +| `supportInside` | | Whether built-in support is supported. Built into the coordinate system to allow the user to zoom in and out of the coordinate system by mouse dragging, mouse wheel, finger swiping (on the touch screen). | +| `supportInsideScroll` |true | 是否支持坐标系内滚动 | +| `supportInsideDrag` |true | 是否支持坐标系内拖拽 | +| `supportSlider` | | Whether a slider is supported. There are separate sliders on which the user zooms or roams. | +| `supportSelect` | | 是否支持框选。提供一个选框进行数据区域缩放。 | +| `showDataShadow` | | Whether to show data shadow, to indicate the data tendency in brief. | +| `showDetail` | | Whether to show detail, that is, show the detailed data information when dragging. | +| `zoomLock` | | Specify whether to lock the size of window (selected area). | +| `fillerColor` | | the color of dataZoom data area. | +| `borderColor` | | the color of dataZoom border. | +| `borderWidth` | | 边框宽。 | +| `backgroundColor` | | The background color of the component. | +| `left` | | Distance between dataZoom component and the left side of the container. left value is a instant pixel value like 10 or float value [0-1]. | +| `right` | | Distance between dataZoom component and the right side of the container. right value is a instant pixel value like 10 or float value [0-1]. | +| `top` | | Distance between dataZoom component and the top side of the container. top value is a instant pixel value like 10 or float value [0-1]. | +| `bottom` | | Distance between dataZoom component and the bottom side of the container. bottom value is a instant pixel value like 10 or float value [0-1]. | +| `rangeMode` | | Use absolute value or percent value in DataZoom.start and DataZoom.end.
`DataZoom.RangeMode`:
- `//Value`: The value type of start and end.取值类型
- `Percent`: percent value.
| +| `start` | | The start percentage of the window out of the data extent, in the range of 0 ~ 100. | +| `end` | | The end percentage of the window out of the data extent, in the range of 0 ~ 100. | +| `minShowNum` |1 | Minimum number of display data. Minimum number of data displayed when DataZoom is enlarged to maximum. | +| `scrollSensitivity` |1.1f | The sensitivity of dataZoom scroll. The larger the number, the more sensitive it is. | +| `orient` | | Specify whether the layout of dataZoom component is horizontal or vertical. What's more, it indicates whether the horizontal axis or vertical axis is controlled by default in catesian coordinate system.
`Orient`:
- `Horizonal`: 水平
- `Vertical`: 垂直
| +| `labelStyle` | | label style. [LabelStyle](LabelStyle)| +| `lineStyle` | | 阴影线条样式。 [LineStyle](LineStyle)| +| `areaStyle` | | 阴影填充样式。 [AreaStyle](AreaStyle)| + +## `DataZoomTheme` + +Inherits or Implemented: [ComponentTheme](#ComponentTheme) + +|field|default|comment| +|--|--|--| +| `borderWidth` | | the width of border line. | +| `dataLineWidth` | | the width of data line. | +| `fillerColor` | | the color of dataZoom data area. | +| `borderColor` | | the color of dataZoom border. | +| `dataLineColor` | | the color of data area line. | +| `dataAreaColor` | | the color of data area line. | +| `backgroundColor` | | the background color of datazoom. | + +## `DebugInfo` + +|field|default|comment| +|--|--|--| +| `show` |true | | +| `showDebugInfo` |false | | +| `showAllChartObject` |false | | +| `foldSeries` |false | | +| `labelStyle` | | [LabelStyle](LabelStyle)| + +## `EffectScatter` + +Inherits or Implemented: [BaseScatter](#BaseScatter) + + +## `Emphasis` + +Inherits or Implemented: [ChildComponent](#ChildComponent),[ISerieExtraComponent](#ISerieExtraComponent),[ISerieDataComponent](#ISerieDataComponent) + +高亮的图形样式和文本标签样式。 + +|field|default|comment| +|--|--|--| +| `show` | | 是否启用高亮样式。 | +| `label` | | 图形文本标签。 [LabelStyle](LabelStyle)| +| `labelLine` | | 图形文本引导线样式。 [LabelLine](LabelLine)| +| `itemStyle` | | 图形样式。 [ItemStyle](ItemStyle)| + +## `EmphasisItemStyle` + +Inherits or Implemented: [ItemStyle](#ItemStyle),[ISerieExtraComponent](#ISerieExtraComponent),[ISerieDataComponent](#ISerieDataComponent) + +高亮的图形样式 + + +## `EmphasisLabelLine` + +Inherits or Implemented: [LabelLine](#LabelLine),[ISerieExtraComponent](#ISerieExtraComponent),[ISerieDataComponent](#ISerieDataComponent) + +高亮的标签引导线样式 + + +## `EmphasisLabelStyle` + +Inherits or Implemented: [LabelStyle](#LabelStyle),[ISerieExtraComponent](#ISerieExtraComponent),[ISerieDataComponent](#ISerieDataComponent) + +高亮的标签样式 + + +## `EndLabelStyle` + +Inherits or Implemented: [LabelStyle](#LabelStyle) + + +## `GridCoord` + +Inherits or Implemented: [CoordSystem](#CoordSystem),[IUpdateRuntimeData](#IUpdateRuntimeData),[ISerieContainer](#ISerieContainer) + +Grid component. + +|field|default|comment| +|--|--|--| +| `show` |true | Whether to show the grid in rectangular coordinate. | +| `left` |0.1f | Distance between grid component and the left side of the container. | +| `right` |0.08f | Distance between grid component and the right side of the container. | +| `top` |0.22f | Distance between grid component and the top side of the container. | +| `bottom` |0.12f | Distance between grid component and the bottom side of the container. | +| `backgroundColor` | | Background color of grid, which is transparent by default. | +| `showBorder` |false | Whether to show the grid border. | +| `borderWidth` |0f | Border width of grid. | +| `borderColor` | | The color of grid border. | + +## `Heatmap` + +Inherits or Implemented: [Serie](#Serie),[INeedSerieContainer](#INeedSerieContainer) + + +## `IconStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +|field|default|comment| +|--|--|--| +| `show` |false | Whether the data icon is show. | +| `layer` | | 显示在上层还是在下层。
`IconStyle.Layer`:
- `UnderText`: The icon is display under the label text. 图标在标签文字下
- `AboveText`: The icon is display above the label text. 图标在标签文字上
| +| `align` | | 水平方向对齐方式。
`Align`:
- `Center`: 对齐方式
- `Left`: 对齐方式
- `Right`: 对齐方式
| +| `sprite` | | The image of icon. | +| `type` | | How to display the icon. | +| `color` | | 图标颜色。 | +| `width` |20 | 图标宽。 | +| `height` |20 | 图标高。 | +| `offset` | | 图标偏移。 | +| `autoHideWhenLabelEmpty` |false | 当label内容为空时是否自动隐藏图标 | + +## `ImageStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent),[ISerieExtraComponent](#ISerieExtraComponent),[ISerieDataComponent](#ISerieDataComponent) + +|field|default|comment| +|--|--|--| +| `show` |true | Whether the data icon is show. | +| `sprite` | | The image of icon. | +| `type` | | How to display the image. | +| `autoColor` | | 是否自动颜色。 | +| `color` | | 图标颜色。 | +| `width` |0 | 图标宽。 | +| `height` |0 | 图标高。 | + +## `Indicator` + +Indicator of radar chart, which is used to assign multiple variables(dimensions) in radar chart. + +|field|default|comment| +|--|--|--| +| `name` | | | +| `max` | | The maximum value of indicator, with default value of 0, but we recommend to set it manually. | +| `min` | | The minimum value of indicator, with default value of 0. | +| `range` | | Normal range. When the value is outside this range, the display color is automatically changed. | +| `show` | | [default:true] Set this to false to prevent the radar from showing. | +| `shape` | | Radar render type, in which 'Polygon' and 'Circle' are supported.
`RadarCoord.Shape`:
- `Polygon`: Radar render type, in which 'Polygon' and 'Circle' are supported.
- `Circle`: Radar render type, in which 'Polygon' and 'Circle' are supported.
| +| `radius` |100 | the radius of radar. | +| `splitNumber` |5 | Segments of indicator axis. | +| `center` | | the center of radar chart. | +| `axisLine` | | axis line. [AxisLine](AxisLine)| +| `axisName` | | Name options for radar indicators. [AxisName](AxisName)| +| `splitLine` | | split line. [AxisSplitLine](AxisSplitLine)| +| `splitArea` | | Split area of axis in grid area. [AxisSplitArea](AxisSplitArea)| +| `indicator` |true | Whether to show indicator. | +| `positionType` | | The position type of indicator.
`RadarCoord.PositionType`:
- `Vertice`: Display at the vertex.
- `Between`: Display at the middle of line.
| +| `indicatorGap` |10 | The gap of indicator and radar. | +| `ceilRate` |0 | The ratio of maximum and minimum values rounded upward. The default is 0, which is automatically calculated. | +| `isAxisTooltip` | | 是否Tooltip显示轴线上的所有数据。 | +| `outRangeColor` |Color.red | The color displayed when data out of range. | +| `connectCenter` |false | Whether serie data connect to radar center with line. | +| `lineGradient` |true | Whether need gradient for data line. | +| `indicatorList` | | the indicator list. | + +## `ItemStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent),[ISerieDataComponent](#ISerieDataComponent) + +图形样式。 + +|field|default|comment| +|--|--|--| +| `show` |true | 是否启用。 | +| `color` | | 数据项颜色。 | +| `color0` | | 数据项颜色。 | +| `toColor` | | Gradient color1. | +| `toColor2` | | Gradient color2.Only valid in line diagrams. | +| `backgroundColor` | | 数据项背景颜色。 | +| `backgroundWidth` | | 数据项背景宽度。 | +| `centerColor` | | 中心区域颜色。 | +| `centerGap` | | 中心区域间隙。 | +| `borderWidth` |0 | 边框宽。 | +| `borderGap` |0 | 边框间隙。 | +| `borderColor` | | 边框的颜色。 | +| `borderColor0` | | 边框的颜色。 | +| `borderToColor` | | 边框的渐变色。 | +| `opacity` |1 | 透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。 | +| `itemMarker` | | 提示框单项的字符标志。用在Tooltip中。 | +| `itemFormatter` | | 提示框单项的字符串模版格式器。具体配置参考`Tooltip`的`formatter` | +| `numericFormatter` | | Standard numeric format strings. | +| `cornerRadius` | | The radius of rounded corner. Its unit is px. Use array to respectively specify the 4 corner radiuses((clockwise upper left, upper right, bottom right and bottom left)). | + +## `LabelLine` + +Inherits or Implemented: [ChildComponent](#ChildComponent),[ISerieExtraComponent](#ISerieExtraComponent),[ISerieDataComponent](#ISerieDataComponent) + +标签的引导线 + +|field|default|comment| +|--|--|--| +| `show` |true | Whether the label line is showed. | +| `lineType` | | the type of visual guide line.
`LineType`:
- `Normal`: the normal line chart,
- `Smooth`: the smooth line chart,
- `StepStart`: step line.
- `StepMiddle`: step line.
- `StepEnd`: step line.
| +| `lineColor` |ChartConst.clearColor32 | the color of visual guild line. | +| `lineAngle` |0 | the angle of visual guild line. | +| `lineWidth` |1.0f | the width of visual guild line. | +| `lineGap` |1.0f | the gap of container and guild line. | +| `lineLength1` |25f | The length of the first segment of visual guide line. | +| `lineLength2` |15f | The length of the second segment of visual guide line. | +| `startSymbol` | | The symbol of the start point of labelline. [SymbolStyle](SymbolStyle)| +| `endSymbol` | | The symbol of the end point of labelline. [SymbolStyle](SymbolStyle)| + +## `LabelStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent),[ISerieExtraComponent](#ISerieExtraComponent),[ISerieDataComponent](#ISerieDataComponent) + +Text label of chart, to explain some data information about graphic item like value, name and so on. + +|field|default|comment| +|--|--|--| +| `show` |true | Whether the label is showed. | +| `Position` | | The position of label. | +| `autoOffset` |false | 是否开启自动偏移。当开启时,Y的偏移会自动判断曲线的开口来决定向上还是向下偏移。 | +| `offset` | | offset to the host graphic element. | +| `rotate` | | Rotation of label. | +| `distance` | | 距离轴线的距离。 | +| `formatter` | | formatter of label. | +| `numericFormatter` | | Standard numeric format strings. | +| `width` |0 | the width of label. If set as default value 0, it means than the label width auto set as the text width. | +| `height` |0 | the height of label. If set as default value 0, it means than the label height auto set as the text height. | +| `icon` | | the sytle of icon. [IconStyle](IconStyle)| +| `background` | | the sytle of background. [ImageStyle](ImageStyle)| +| `textPadding` | | the text padding of label. [TextPadding](TextPadding)| +| `textStyle` | | the sytle of text. [TextStyle](TextStyle)| + +## `Lang` + +Inherits or Implemented: [ScriptableObject](#ScriptableObject) + +Language. + + +## `LangCandlestick` + + +## `LangTime` + + +## `Legend` + +Inherits or Implemented: [MainComponent](#MainComponent),[IPropertyChanged](#IPropertyChanged) + +Legend component.The legend component shows different sets of tags, colors, and names. You can control which series are not displayed by clicking on the legend. + +|field|default|comment| +|--|--|--| +| `show` |true | Whether to show legend component. | +| `iconType` | | Type of legend.
`Painter.Type`:
- `Base`:
- `Serie`:
- `Top`:
| +| `selectedMode` | | Selected mode of legend, which controls whether series can be toggled displaying by clicking legends.
`VisualMap.SelectedMode`:
- `Multiple`: 多选。
- `Single`: 单选。
| +| `orient` | | Specify whether the layout of legend component is horizontal or vertical.
`Orient`:
- `Horizonal`: 水平
- `Vertical`: 垂直
| +| `location` | | The location of legend. [Location](Location)| +| `itemWidth` |25.0f | Image width of legend symbol. | +| `itemHeight` |12.0f | Image height of legend symbol. | +| `itemGap` |10f | The distance between each legend, horizontal distance in horizontal layout, and vertical distance in vertical layout. | +| `itemAutoColor` |true | Whether the legend symbol matches the color automatically. | +| `itemOpacity` |1 | the opacity of item color. | +| `formatter` | | Legend content string template formatter. Support for wrapping lines with \n. Template:{value}. | +| `numericFormatter` | | Standard numeric format strings. | +| `labelStyle` | | the style of text. [LabelStyle](LabelStyle)| +| `data` | | Data array of legend. An array item is usually a name representing string. (If it is a pie chart, it could also be the name of a single data in the pie chart) of a series. | +| `icons` | | 自定义的图例标记图形。 | +| `colors` | | the colors of legend item. 图例标记的颜色列表。 | + +## `LegendTheme` + +Inherits or Implemented: [ComponentTheme](#ComponentTheme) + +|field|default|comment| +|--|--|--| +| `unableColor` | | the color of text. | + +## `Level` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +|field|default|comment| +|--|--|--| +| `label` | | 文本标签样式。 [LabelStyle](LabelStyle)| +| `upperLabel` | | 上方的文本标签样式。 [LabelStyle](LabelStyle)| +| `itemStyle` | | 数据项样式。 [ItemStyle](ItemStyle)| + +## `LevelStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +|field|default|comment| +|--|--|--| +| `show` |false | 是否启用LevelStyle | +| `levels` | | 各层节点对应的配置。当enableLevels为true时生效,levels[0]对应的第一层的配置,levels[1]对应第二层,依次类推。当levels中没有对应层时用默认的设置。 | + +## `Line` + +Inherits or Implemented: [Serie](#Serie),[INeedSerieContainer](#INeedSerieContainer) + + +## `LineArrow` + +Inherits or Implemented: [ChildComponent](#ChildComponent),[ISerieExtraComponent](#ISerieExtraComponent) + +|field|default|comment| +|--|--|--| +| `show` | | Whether to show the arrow. | +| `position` | | The position of arrow.
`LabelStyle.Position`:
- `Default`: The position of label.
- `Outside`: Outside of sectors of pie chart, which relates to corresponding sector through visual guide line.
- `Inside`: Inside the sectors of pie chart.
- `Center`: In the center of pie chart.
- `Top`: top of symbol.
- `Bottom`: the bottom of symbol.
- `Left`: the left of symbol.
- `Right`: the right of symbol.
- `Start`: the start of line.
- `Middle`: the middle of line.
- `End`: the end of line.
| +| `arrow` | | the arrow of line. [ArrowStyle](ArrowStyle)| + +## `LineStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent),[ISerieDataComponent](#ISerieDataComponent) + +The style of line. + +|field|default|comment| +|--|--|--| +| `show` |true | Whether show line. | +| `type` | | the type of line.
`Painter.Type`:
- `Base`:
- `Serie`:
- `Top`:
| +| `color` | | the color of line, default use serie color. | +| `toColor` | | the middle color of line, default use serie color. | +| `toColor2` | | the end color of line, default use serie color. | +| `width` |0 | the width of line. | +| `length` |0 | the length of line. | +| `opacity` |1 | Opacity of the line. Supports value from 0 to 1, and the line will not be drawn when set to 0. | + +## `Location` + +Inherits or Implemented: [ChildComponent](#ChildComponent),[IPropertyChanged](#IPropertyChanged) + +Location type. Quick to set the general location. + +|field|default|comment| +|--|--|--| +| `align` | | 对齐方式。
`Align`:
- `Center`: 对齐方式
- `Left`: 对齐方式
- `Right`: 对齐方式
| +| `left` | | Distance between component and the left side of the container. | +| `right` | | Distance between component and the left side of the container. | +| `top` | | Distance between component and the left side of the container. | +| `bottom` | | Distance between component and the left side of the container. | + +## `MainComponent` + +Inherits or Implemented: [IComparable](#IComparable) + + +## `MarkArea` + +Inherits or Implemented: [MainComponent](#MainComponent) + +Used to mark an area in chart. For example, mark a time interval. + +|field|default|comment| +|--|--|--| +| `show` |true | 是否显示标域。 | +| `text` | | The text of markArea. 标域显示的文本。 | +| `serieIndex` |0 | Serie index of markArea. 标域影响的Serie索引。 | +| `start` | | 标域范围的起始数据。 [MarkAreaData](MarkAreaData)| +| `end` | | 标域范围的结束数据。 [MarkAreaData](MarkAreaData)| +| `itemStyle` | | 标域样式。 [ItemStyle](ItemStyle)| +| `label` | | 标域文本样式。 [LabelStyle](LabelStyle)| + +## `MarkAreaData` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +标域的数据。 + +|field|default|comment| +|--|--|--| +| `type` | | Special markArea types, are used to label maximum value, minimum value and so on.
`MarkAreaType`:
- `None`: 标域类型
- `Min`: 最小值。
- `Max`: 最大值。
- `Average`: 平均值。
- `Median`: 中位数。
| +| `name` | | Name of the marker, which will display as a label. | +| `dimension` |1 | From which dimension of data to calculate the maximum and minimum value and so on. | +| `xPosition` | | The x coordinate relative to the origin, in pixels. | +| `yPosition` | | The y coordinate relative to the origin, in pixels. | +| `xValue` | | The value specified on the X-axis. A value specified when the X-axis is the category axis represents the index of the category axis data, otherwise a specific value. | +| `yValue` | | That's the value on the Y-axis. The value specified when the Y axis is the category axis represents the index of the category axis data, otherwise the specific value. | + +## `MarkLine` + +Inherits or Implemented: [MainComponent](#MainComponent) + +Use a line in the chart to illustrate. + +|field|default|comment| +|--|--|--| +| `show` |true | Whether to display the marking line. | +| `serieIndex` |0 | The serie index of markLine. | +| `animation` | | The animation of markline. [AnimationStyle](AnimationStyle)| +| `data` | | A list of marked data. When the group of data item is 0, each data item represents a line; When the group is not 0, two data items of the same group represent the starting point and the ending point of the line respectively to form a line. In this case, the relevant style parameters of the line are the parameters of the starting point. | + +## `MarkLineData` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +Data of marking line. + +|field|default|comment| +|--|--|--| +| `type` | | Special label types, are used to label maximum value, minimum value and so on.
`MarkLineType`:
- `None`: 标线类型
- `Min`: 最小值。
- `Max`: 最大值。
- `Average`: 平均值。
- `Median`: 中位数。
| +| `name` | | Name of the marker, which will display as a label. | +| `dimension` |1 | From which dimension of data to calculate the maximum and minimum value and so on. | +| `xPosition` | | The x coordinate relative to the origin, in pixels. | +| `yPosition` | | The y coordinate relative to the origin, in pixels. | +| `xValue` | | The value specified on the X-axis. A value specified when the X-axis is the category axis represents the index of the category axis data, otherwise a specific value. | +| `yValue` | | That's the value on the Y-axis. The value specified when the Y axis is the category axis represents the index of the category axis data, otherwise the specific value. | +| `group` |0 | Grouping. When the group is not 0, it means that this data is the starting point or end point of the marking line. Data consistent with the group form a marking line. | +| `zeroPosition` |false | Is the origin of the coordinate system. | +| `startSymbol` | | The symbol of the start point of markline. [SymbolStyle](SymbolStyle)| +| `endSymbol` | | The symbol of the end point of markline. [SymbolStyle](SymbolStyle)| +| `lineStyle` | | The line style of markline. [LineStyle](LineStyle)| +| `label` | | Text styles of label. You can set position to Start, Middle, and End to display text in different locations. [LabelStyle](LabelStyle)| + +## `Parallel` + +Inherits or Implemented: [Serie](#Serie),[INeedSerieContainer](#INeedSerieContainer) + + +## `ParallelAxis` + +Inherits or Implemented: [Axis](#Axis) + + +## `ParallelCoord` + +Inherits or Implemented: [CoordSystem](#CoordSystem),[IUpdateRuntimeData](#IUpdateRuntimeData),[ISerieContainer](#ISerieContainer) + +Grid component. + +|field|default|comment| +|--|--|--| +| `show` |true | Whether to show the grid in rectangular coordinate. | +| `orient` | | Orientation of the axis. By default, it's 'Vertical'. You can set it to be 'Horizonal' to make a vertical axis.
`Orient`:
- `Horizonal`: 水平
- `Vertical`: 垂直
| +| `left` |0.1f | Distance between grid component and the left side of the container. | +| `right` |0.08f | Distance between grid component and the right side of the container. | +| `top` |0.22f | Distance between grid component and the top side of the container. | +| `bottom` |0.12f | Distance between grid component and the bottom side of the container. | +| `backgroundColor` | | Background color of grid, which is transparent by default. | + +## `Pie` + +Inherits or Implemented: [Serie](#Serie) + + +## `PolarAxisTheme` + +Inherits or Implemented: [BaseAxisTheme](#BaseAxisTheme) + + +## `PolarCoord` + +Inherits or Implemented: [CoordSystem](#CoordSystem),[ISerieContainer](#ISerieContainer) + +Polar coordinate can be used in scatter and line chart. Every polar coordinate has an angleAxis and a radiusAxis. + +|field|default|comment| +|--|--|--| +| `show` |true | Whether to show the polor component. | +| `center` | | The center of ploar. The center[0] is the x-coordinate, and the center[1] is the y-coordinate. When value between 0 and 1 represents a percentage relative to the chart. | +| `radius` |0.35f | the radius of polar. | +| `backgroundColor` | | Background color of polar, which is transparent by default. | + +## `Radar` + +Inherits or Implemented: [Serie](#Serie),[INeedSerieContainer](#INeedSerieContainer) + + +## `RadarAxisTheme` + +Inherits or Implemented: [BaseAxisTheme](#BaseAxisTheme) + + +## `RadarCoord` + +Inherits or Implemented: [CoordSystem](#CoordSystem),[ISerieContainer](#ISerieContainer) + +Radar coordinate conponnet for radar charts. 雷达图坐标系组件,只适用于雷达图。 + + +## `RadiusAxis` + +Inherits or Implemented: [Axis](#Axis) + +Radial axis of polar coordinate. + + +## `RadiusAxisTheme` + +Inherits or Implemented: [BaseAxisTheme](#BaseAxisTheme) + + +## `Ring` + +Inherits or Implemented: [Serie](#Serie) + + +## `Scatter` + +Inherits or Implemented: [BaseScatter](#BaseScatter) + + +## `Serie` + +Inherits or Implemented: [BaseSerie](#BaseSerie),[IComparable](#IComparable) + +系列。 + +|field|default|comment| +|--|--|--| +| `index` | | The index of serie. | +| `show` |true | Whether to show serie in chart. | +| `coordSystem` | | the chart coord system of serie. | +| `serieType` | | the type of serie. | +| `serieName` | | Series name used for displaying in tooltip and filtering with legend. | +| `stack` | | If stack the value. On the same category axis, the series with the same stack name would be put on top of each other. | +| `xAxisIndex` |0 | the index of XAxis. | +| `yAxisIndex` |0 | the index of YAxis. | +| `radarIndex` |0 | Index of radar component that radar chart uses. | +| `vesselIndex` |0 | Index of vesel component that liquid chart uses. | +| `polarIndex` |0 | Index of polar component that serie uses. | +| `singleAxisIndex` |0 | Index of single axis component that serie uses. | +| `parallelIndex` |0 | Index of parallel coord component that serie uses. | +| `minShow` | | The min number of data to show in chart. | +| `maxShow` | | The max number of data to show in chart. | +| `maxCache` | | The max number of serie data cache. The first data will be remove when the size of serie data is larger then maxCache. | +| `sampleDist` |0 | the min pixel dist of sample. | +| `sampleType` | | the type of sample.
`SampleType`:
- `Peak`: Take a peak. When the average value of the filter point is greater than or equal to 'sampleAverage', take the maximum value; If you do it the other way around, you get the minimum.
- `Average`: Take the average of the filter points.
- `Max`: Take the maximum value of the filter point.
- `Min`: Take the minimum value of the filter point.
- `Sum`: Take the sum of the filter points.
| +| `sampleAverage` |0 | 设定的采样平均值。当sampleType 为 Peak 时,用于和过滤数据的平均值做对比是取最大值还是最小值。默认为0时会实时计算所有数据的平均值。 | +| `lineType` | | The type of line chart.
`LineType`:
- `Normal`: the normal line chart,
- `Smooth`: the smooth line chart,
- `StepStart`: step line.
- `StepMiddle`: step line.
- `StepEnd`: step line.
| +| `barType` | | 柱形图类型。
`BarType`:
- `Normal`: normal bar.
- `Zebra`: zebra bar.
- `Capsule`: capsule bar.
| +| `barPercentStack` |false | 柱形图是否为百分比堆积。相同stack的serie只要有一个barPercentStack为true,则就显示成百分比堆叠柱状图。 | +| `barWidth` |0 | The width of the bar. Adaptive when default 0. | +| `barGap` |0.1f | The gap between bars between different series, is a percent value like '0.3f' , which means 30% of the bar width, can be set as a fixed value. Set barGap as '-1' can overlap bars that belong to different series, which is useful when making a series of bar be background. In a single coodinate system, this attribute is shared by multiple 'bar' series. This attribute should be set on the last 'bar' series in the coodinate system, then it will be adopted by all 'bar' series in the coordinate system. | +| `barZebraWidth` |4f | 斑马线的粗细。 | +| `barZebraGap` |2f | 斑马线的间距。 | +| `min` | | 最小值。 | +| `max` | | 最大值。 | +| `minSize` |0f | 数据最小值 min 映射的宽度。 | +| `maxSize` |1f | 数据最大值 max 映射的宽度。 | +| `startAngle` | | 起始角度。和时钟一样,12点钟位置是0度,顺时针到360度。 | +| `endAngle` | | 结束角度。和时钟一样,12点钟位置是0度,顺时针到360度。 | +| `minAngle` | | The minimum angle of sector(0-360). It prevents some sector from being too small when value is small. | +| `clockwise` |true | 是否顺时针。 | +| `roundCap` | | 是否开启圆弧效果。 | +| `splitNumber` | | 刻度分割段数。最大可设置36。 | +| `clickOffset` |true | Whether offset when mouse click pie chart item. | +| `roseType` | | Whether to show as Nightingale chart.
`RoseType`:
- `None`: Don't show as Nightingale chart.
- `Radius`: Use central angle to show the percentage of data, radius to show data size.
- `Area`: All the sectors will share the same central angle, the data size is shown only through radiuses.
| +| `gap` | | gap of item. | +| `center` | | the center of chart. | +| `radius` | | the radius of chart. | +| `showDataDimension` | | 数据项里的数据维数。 | +| `showDataName` | | 在Editor的inpsector上是否显示name参数 | +| `clip` |false | If clip the overflow on the coordinate system. | +| `ignore` |false | 是否开启忽略数据。当为 true 时,数据值为 ignoreValue 时不进行绘制。 | +| `ignoreValue` |0 | 忽略数据的默认值。当ignore为true才有效。 | +| `ignoreLineBreak` |false | 忽略数据时折线是断开还是连接。默认false为连接。 | +| `showAsPositiveNumber` |false | Show negative number as positive number. | +| `large` |true | 是否开启大数据量优化,在数据图形特别多而出现卡顿时候可以开启。 开启后配合 largeThreshold 在数据量大于指定阈值的时候对绘制进行优化。 缺点:优化后不能自定义设置单个数据项的样式,不能显示Label。 | +| `largeThreshold` |200 | 开启大数量优化的阈值。只有当开启了large并且数据量大于该阀值时才进入性能模式。 | +| `avoidLabelOverlap` |false | 在饼图且标签外部显示的情况下,是否启用防止标签重叠策略,默认关闭,在标签拥挤重叠的情况下会挪动各个标签的位置,防止标签间的重叠。 | +| `radarType` | | 雷达图类型。
`RadarType`:
- `Multiple`: multiple radar.
- `Single`: single radar.
| +| `placeHolder` |false | 占位模式。占位模式时,数据有效但不参与渲染和显示。 | +| `dataSortType` | | 组件的数据排序。
`SerieDataSortType`:
- `None`: 按 data 的顺序
- `Ascending`: 升序
- `Descending`: 降序
| +| `orient` | | 组件的朝向。
`Orient`:
- `Horizonal`: 水平
- `Vertical`: 垂直
| +| `align` | | 组件水平方向对齐方式。
`Align`:
- `Center`: 对齐方式
- `Left`: 对齐方式
- `Right`: 对齐方式
| +| `left` | | Distance between component and the left side of the container. | +| `right` | | Distance between component and the right side of the container. | +| `top` | | Distance between component and the top side of the container. | +| `bottom` | | Distance between component and the bottom side of the container. | +| `insertDataToHead` | | Whether to add new data at the head or at the end of the list. | +| `lineStyle` | | The style of line. [LineStyle](LineStyle)| +| `symbol` | | the symbol of serie data item. [SerieSymbol](SerieSymbol)| +| `animation` | | The start animation. [AnimationStyle](AnimationStyle)| +| `itemStyle` | | The style of data item. [ItemStyle](ItemStyle)| +| `data` | | 系列中的数据内容数组。SerieData可以设置1到n维数据。 | + +## `SerieData` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +A data item of serie. + +|field|default|comment| +|--|--|--| +| `index` | | the index of SerieData. | +| `name` | | the name of data item. | +| `id` | | the id of data. | +| `parentId` | | the id of parent SerieData. | +| `ignore` | | 是否忽略数据。当为 true 时,数据不进行绘制。 | +| `selected` | | Whether the data item is selected. | +| `radius` | | 自定义半径。可用在饼图中自定义某个数据项的半径。 | +| `data` | | An arbitrary dimension data list of data item. | + +## `SerieSymbol` + +Inherits or Implemented: [SymbolStyle](#SymbolStyle),[ISerieDataComponent](#ISerieDataComponent) + +系列数据项的标记的图形 + +|field|default|comment| +|--|--|--| +| `sizeType` | | the type of symbol size.
`SymbolSizeType`:
- `Custom`: Specify constant for symbol size.
- `FromData`: Specify the dataIndex and dataScale to calculate symbol size.
- `Function`: Specify function for symbol size.
| +| `selectedSize` |0f | the size of selected symbol. | +| `dataIndex` |1 | whitch data index is when the sizeType assined as FromData. | +| `dataScale` |1 | the scale of data when sizeType assined as FromData. | +| `selectedDataScale` |1.5f | the scale of selected data when sizeType assined as FromData. | +| `sizeFunction` | | the function of size when sizeType assined as Function. | +| `selectedSizeFunction` | | the function of size when sizeType assined as Function. | +| `startIndex` | | the index start to show symbol. | +| `interval` | | the interval of show symbol. | +| `forceShowLast` |false | whether to show the last symbol. | +| `repeat` |false | 图形是否重复。 | + +## `SerieTheme` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +|field|default|comment| +|--|--|--| +| `lineWidth` | | the color of text. | +| `lineSymbolSize` | | | +| `scatterSymbolSize` | | | +| `pieTooltipExtraRadius` | | 饼图鼠标移到高亮时的额外半径 | +| `selectedRate` |1.3f | | +| `pieSelectedOffset` | | 饼图选中时的中心点偏移 | +| `candlestickColor` |Color32(235, 84, 84, 255) | K线图阳线(涨)填充色 | +| `candlestickColor0` |Color32(71, 178, 98, 255) | K线图阴线(跌)填充色 | +| `candlestickBorderWidth` |1 | K线图边框宽度 | +| `candlestickBorderColor` |Color32(235, 84, 84, 255) | K线图阳线(跌)边框色 | +| `candlestickBorderColor0` |Color32(71, 178, 98, 255) | K线图阴线(跌)边框色 | + +## `Settings` + +Inherits or Implemented: [MainComponent](#MainComponent) + +Global parameter setting component. The default value can be used in general, and can be adjusted when necessary. + +|field|default|comment| +|--|--|--| +| `show` |true | | +| `maxPainter` |10 | max painter. | +| `reversePainter` |false | Painter是否逆序。逆序时index大的serie最先绘制。 | +| `basePainterMaterial` | | Base Pointer 材质球,设置后会影响Axis等。 | +| `seriePainterMaterial` | | Serie Pointer 材质球,设置后会影响所有Serie。 | +| `topPainterMaterial` | | Top Pointer 材质球,设置后会影响Tooltip等。 | +| `lineSmoothStyle` |3f | Curve smoothing factor. By adjusting the smoothing coefficient, the curvature of the curve can be changed, and different curves with slightly different appearance can be obtained. | +| `lineSmoothness` |2f | Smoothness of curve. The smaller the value, the smoother the curve, but the number of vertices will increase. | +| `lineSegmentDistance` |3f | The partition distance of a line segment. A line in a normal line chart is made up of many segments, the number of which is determined by the change in value. The smaller the number of segments, the higher the number of vertices. When the area with gradient is filled, the larger the value, the worse the transition effect. | +| `cicleSmoothness` |2f | the smoothess of cricle. | +| `legendIconLineWidth` |2 | the width of line serie legend. | +| `legendIconCornerRadius` | | The radius of rounded corner. Its unit is px. Use array to respectively specify the 4 corner radiuses((clockwise upper left, upper right, bottom right and bottom left)). | + +## `SimplifiedBar` + +Inherits or Implemented: [Serie](#Serie),[INeedSerieContainer](#INeedSerieContainer),[ISimplifiedSerie](#ISimplifiedSerie) + + +## `SimplifiedCandlestick` + +Inherits or Implemented: [Serie](#Serie),[INeedSerieContainer](#INeedSerieContainer),[ISimplifiedSerie](#ISimplifiedSerie) + + +## `SimplifiedLine` + +Inherits or Implemented: [Serie](#Serie),[INeedSerieContainer](#INeedSerieContainer),[ISimplifiedSerie](#ISimplifiedSerie) + + +## `SingleAxis` + +Inherits or Implemented: [Axis](#Axis),[IUpdateRuntimeData](#IUpdateRuntimeData) + +Single axis. + +|field|default|comment| +|--|--|--| +| `orient` | | Orientation of the axis. By default, it's 'Horizontal'. You can set it to be 'Vertical' to make a vertical axis.
`Orient`:
- `Horizonal`: 水平
- `Vertical`: 垂直
| +| `left` |0.1f | Distance between component and the left side of the container. | +| `right` |0.1f | Distance between component and the right side of the container. | +| `top` |0f | Distance between component and the top side of the container. | +| `bottom` |0.2f | Distance between component and the bottom side of the container. | +| `width` |0 | width of axis. | +| `height` |50 | height of axis. | + +## `SingleAxisCoord` + +Inherits or Implemented: [CoordSystem](#CoordSystem) + + +## `StageColor` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +|field|default|comment| +|--|--|--| +| `percent` | | 结束位置百分比。 | +| `color` | | 颜色。 | + +## `SubTitleTheme` + +Inherits or Implemented: [ComponentTheme](#ComponentTheme) + + +## `SymbolStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +系列数据项的标记的图形 + +|field|default|comment| +|--|--|--| +| `show` |true | Whether the symbol is showed. | +| `type` | | the type of symbol.
`SymbolType`:
- `None`: 不显示标记。
- `Custom`: 自定义标记。
- `Circle`: 圆形。
- `EmptyCircle`: 空心圆。
- `Rect`: 正方形。可通过设置`itemStyle`的`cornerRadius`变成圆角矩形。
- `EmptyRect`: 空心正方形。
- `Triangle`: 三角形。
- `EmptyTriangle`: 空心三角形。
- `Diamond`: 菱形。
- `EmptyDiamond`: 空心菱形。
- `Arrow`: 箭头。
- `EmptyArrow`: 空心箭头。
| +| `size` |0f | the size of symbol. | +| `gap` |0 | the gap of symbol and line segment. | +| `width` |0f | 图形的宽。 | +| `height` |0f | 图形的高。 | +| `offset` |Vector2.zero | 图形的偏移。 | +| `image` | | 自定义的标记图形。 | +| `imageType` | | the fill type of image. | +| `color` | | 图形的颜色。 | + +## `TextLimit` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +Text character limitation and adaptation component. When the length of the text exceeds the set length, it is cropped and suffixes are appended to the end.Only valid in the category axis. + +|field|default|comment| +|--|--|--| +| `enable` |false | Whether to enable text limit. | +| `maxWidth` |0 | Set the maximum width. A default of 0 indicates automatic fetch; otherwise, custom. | +| `gap` |1 | White pixel distance at both ends. | +| `suffix` | | Suffixes when the length exceeds. | + +## `TextPadding` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +Settings related to text. + +|field|default|comment| +|--|--|--| +| `show` |true | show padding. 是否显示。 | +| `top` |2 | padding of top. | +| `right` |4 | padding of right. | +| `left` |4 | padding of left. | +| `bottom` |2 | padding of bottom. | + +## `TextStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +Settings related to text. + +|field|default|comment| +|--|--|--| +| `show` |true | Settings related to text. | +| `font` | | the font of text. When `null`, the theme's font is used by default. | +| `autoWrap` |false | 是否自动换行。 | +| `autoAlign` |true | 文本是否让系统自动选对齐方式。为false时才会用alignment。 | +| `rotate` |0 | Rotation of text. | +| `autoColor` |false | 是否开启自动颜色。当开启时,会自动设置颜色。 | +| `color` | | the color of text. | +| `fontSize` |0 | font size. | +| `fontStyle` | | font style. | +| `lineSpacing` |1f | text line spacing. | +| `alignment` | | 对齐方式。 | +| `tMPFont` | | the font of textmeshpro. | +| `tMPFontStyle` | | | +| `tMPAlignment` | | | + +## `Theme` + +Inherits or Implemented: [ScriptableObject](#ScriptableObject) + +Theme. + +|field|default|comment| +|--|--|--| +| `themeType` | | the theme of chart.
`ThemeType`:
- `Default`: 默认主题。
- `Light`: 亮主题。
- `Dark`: 暗主题。
- `Custom`: 自定义主题。
| +| `themeName` | | the name of theme. | +| `font` | | the font of chart text。 | +| `tMPFont` | | the font of chart text。 | +| `contrastColor` | | the contrast color of chart. | +| `backgroundColor` | | the background color of chart. | +| `colorPalette` | | The color list of palette. If no color is set in series, the colors would be adopted sequentially and circularly from this list as the colors of series. | +| `common` | | [ComponentTheme](ComponentTheme)| +| `title` | | [TitleTheme](TitleTheme)| +| `subTitle` | | [SubTitleTheme](SubTitleTheme)| +| `legend` | | [LegendTheme](LegendTheme)| +| `axis` | | [AxisTheme](AxisTheme)| +| `tooltip` | | [TooltipTheme](TooltipTheme)| +| `dataZoom` | | [DataZoomTheme](DataZoomTheme)| +| `visualMap` | | [VisualMapTheme](VisualMapTheme)| +| `serie` | | [SerieTheme](SerieTheme)| + +## `ThemeStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +Theme. + +|field|default|comment| +|--|--|--| +| `show` |true | | +| `sharedTheme` | | [Theme](Theme)| +| `transparentBackground` |false | Whether the background color is transparent. When true, the background color is not drawn. |是否透明背景颜色。当设置为true时,不绘制背景颜色。 | +| `enableCustomTheme` |false | Whether to customize theme colors. When set to true, you can use 'sync color to custom' to synchronize the theme color to the custom color. It can also be set manually. | +| `customFont` | | | +| `customBackgroundColor` | | the custom background color of chart. | +| `customColorPalette` | | | + +## `Title` + +Inherits or Implemented: [MainComponent](#MainComponent),[IPropertyChanged](#IPropertyChanged) + +Title component, including main title and subtitle. + +|field|default|comment| +|--|--|--| +| `show` |true | [default:true] Set this to false to prevent the title from showing. | +| `text` | | The main title text, supporting \n for newlines. | +| `subText` | | Subtitle text, supporting for \n for newlines. | +| `labelStyle` | | The text style of main title. [LabelStyle](LabelStyle)| +| `subLabelStyle` | | The text style of sub title. [LabelStyle](LabelStyle)| +| `itemGap` |0 | [default:8] The gap between the main title and subtitle. | +| `location` | | The location of title component. [Location](Location)| + +## `TitleStyle` + +Inherits or Implemented: [LabelStyle](#LabelStyle),[ISerieDataComponent](#ISerieDataComponent),[ISerieExtraComponent](#ISerieExtraComponent) + +the title of serie. + + +## `TitleTheme` + +Inherits or Implemented: [ComponentTheme](#ComponentTheme) + + +## `Tooltip` + +Inherits or Implemented: [MainComponent](#MainComponent) + +Tooltip component. + +|field|default|comment| +|--|--|--| +| `show` |true | Whether to show the tooltip component. | +| `type` | | Indicator type.
`Painter.Type`:
- `Base`:
- `Serie`:
- `Top`:
| +| `trigger` | | Type of triggering.
`Tooltip.Trigger`:
- `Item`: Triggered by data item, which is mainly used for charts that don't have a category axis like scatter charts or pie charts.
- `Axis`: Triggered by axes, which is mainly used for charts that have category axes, like bar charts or line charts.
- `None`: Trigger nothing.
| +| `itemFormatter` | | a string template formatter for a single Serie or data item content. Support for wrapping lines with \n. Template variables are {.}, {a}, {b}, {c}, {d}.
{.} is the dot of the corresponding color of a Serie that is currently indicated or whose index is 0.
{a} is the series name of the serie that is currently indicated or whose index is 0.
{b} is the name of the data item serieData that is currently indicated or whose index is 0, or a category value (such as the X-axis of a line chart).
{c} is the value of a Y-dimension (dimesion is 1) from a Serie that is currently indicated or whose index is 0.
{d} is the percentage value of Y-dimensions (dimesion is 1) from serie that is currently indicated or whose index is 0, with no % sign.
{e} is the name of the data item serieData that is currently indicated or whose index is 0.
{f} is sum of data.
{.1} represents a dot from serie corresponding color that specifies index as 1.
1 in {a1}, {b1}, {c1} represents a serie that specifies an index of 1.
{c1:2} represents the third data from serie's current indication data item indexed to 1 (a data item has multiple data, index 2 represents the third data).
{c1:2-2} represents the third data item from serie's third data item indexed to 1 (i.e., which data item must be specified to specify).
{d1:2: F2} indicates that a formatted string with a value specified separately is F2 (numericFormatter is used when numericFormatter is not specified).
{d:0.##} indicates that a formatted string with a value specified separately is 0.## (used for percentage, reserved 2 valid digits while avoiding the situation similar to "100.00%" when using f2 ).
Example: "{a}, {c}", "{a1}, {c1: f1}", "{a1}, {c1:0: f1}", "{a1} : {c1:1-1: f1}"
| +| `titleFormatter` | | The string template formatter for the tooltip title content. Support for wrapping lines with \n. The placeholder {I} can be set separately to indicate that the title is ignored and not displayed. Template see itemFormatter. | +| `marker` | | the marker of serie. | +| `fixedWidth` |0 | Fixed width. Higher priority than minWidth. | +| `fixedHeight` |0 | Fixed height. Higher priority than minHeight. | +| `minWidth` |0 | Minimum width. If fixedWidth has a value, get fixedWidth first. | +| `minHeight` |0 | Minimum height. If fixedHeight has a value, take priority over fixedHeight. | +| `numericFormatter` | | Standard numeric format string. Used to format numeric values to display as strings. Using 'Axx' form: 'A' is the single character of the format specifier, supporting 'C' currency, 'D' decimal, 'E' exponent, 'F' number of vertices, 'G' regular, 'N' digits, 'P' percentage, 'R' round tripping, 'X' hex etc. 'XX' is the precision specification, from '0' - '99'. | +| `paddingLeftRight` |10 | the text padding of left and right. defaut:5. | +| `paddingTopBottom` |10 | the text padding of top and bottom. defaut:5. | +| `ignoreDataShow` |false | Whether to show ignored data on tooltip. | +| `ignoreDataDefaultContent` | | The default display character information for ignored data. | +| `showContent` |true | Whether to show the tooltip floating layer, whose default value is true. It should be configurated to be false, if you only need tooltip to trigger the event or show the axisPointer without content. | +| `alwayShowContent` |false | Whether to trigger after always display. | +| `offset` |Vector2(18f, -25f) | The position offset of tooltip relative to the mouse position. | +| `backgroundImage` | | The background image of tooltip. | +| `backgroundType` | | The background type of tooltip. | +| `backgroundColor` | | The background color of tooltip. | +| `borderWidth` |2f | the width of tooltip border. | +| `fixedXEnable` |false | enable fixedX. | +| `fixedX` |0f | the x positionn of fixedX. | +| `fixedYEnable` |false | enable fixedY. | +| `fixedY` |0f | the y position of fixedY. | +| `titleHeight` |25f | height of title text. | +| `itemHeight` |25f | height of content text. | +| `borderColor` |Color32(230, 230, 230, 255) | the color of tooltip border. | +| `lineStyle` | | the line style of indicator line. [LineStyle](LineStyle)| +| `indicatorLabelStyle` | | the label style of tooltip axis indicator label. [LabelStyle](LabelStyle)| +| `titleLabelStyle` | | the textstyle of title. [LabelStyle](LabelStyle)| +| `contentLabelStyles` | | the textstyle list of content. | + +## `TooltipTheme` + +Inherits or Implemented: [ComponentTheme](#ComponentTheme) + +|field|default|comment| +|--|--|--| +| `lineType` | | the type of line. | +| `lineWidth` |1f | the width of line. | +| `lineColor` | | the color of line. | +| `areaColor` | | the color of line. | +| `labelTextColor` | | the text color of tooltip cross indicator's axis label. | +| `labelBackgroundColor` | | the background color of tooltip cross indicator's axis label. | + +## `VisualMap` + +Inherits or Implemented: [MainComponent](#MainComponent) + +VisualMap component. Mapping data to visual elements such as colors. + +|field|default|comment| +|--|--|--| +| `show` |true | Whether to enable components. | +| `showUI` |false | Whether to display components. If set to false, it will not show up, but the data mapping function still exists. | +| `type` | | the type of visualmap component.
`Painter.Type`:
- `Base`:
- `Serie`:
- `Top`:
| +| `selectedMode` | | the selected mode for Piecewise visualMap.
`VisualMap.SelectedMode`:
- `Multiple`: 多选。
- `Single`: 单选。
| +| `serieIndex` |0 | the serie index of visualMap. | +| `min` |0 | 范围最小值 | +| `max` |100 | 范围最大值 | +| `range` | | Specifies the position of the numeric value corresponding to the handle. Range should be within the range of [min,max]. | +| `text` | | Text on both ends. | +| `textGap` | | The distance between the two text bodies. | +| `splitNumber` |5 | For continuous data, it is automatically evenly divided into several segments and automatically matches the size of inRange color list when the default is 0. | +| `calculable` |false | Whether the handle used for dragging is displayed (the handle can be dragged to adjust the selected range). | +| `realtime` |true | Whether to update in real time while dragging. | +| `itemWidth` |20f | The width of the figure, that is, the width of the color bar. | +| `itemHeight` |140f | The height of the figure, that is, the height of the color bar. | +| `itemGap` |10f | 每个图元之间的间隔距离。 | +| `borderWidth` |0 | Border line width. | +| `dimension` |-1 | Specifies "which dimension" of the data to map to the visual element. "Data" is series.data. | +| `hoverLink` |true | When the hoverLink function is turned on, when the mouse hovers over the visualMap component, the corresponding value of the mouse position is highlighted in the corresponding graphic element in the diagram. | +| `autoMinMax` |true | Automatically set min, Max value 自动设置min,max的值 | +| `orient` | | Specify whether the layout of component is horizontal or vertical.
`Orient`:
- `Horizonal`: 水平
- `Vertical`: 垂直
| +| `location` | | The location of component. [Location](Location)| +| `workOnLine` |true | Whether the visualmap is work on linestyle of linechart. | +| `workOnArea` |false | Whether the visualmap is work on areaStyle of linechart. | +| `outOfRange` | | Defines a visual color outside of the selected range. | +| `inRange` | | 分段式每一段的相关配置。 | + +## `VisualMapRange` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +|field|default|comment| +|--|--|--| +| `min` | | 范围最小值 | +| `max` | | 范围最大值 | +| `label` | | 文字描述 | +| `color` | | 颜色 | + +## `VisualMapTheme` + +Inherits or Implemented: [ComponentTheme](#ComponentTheme) + +|field|default|comment| +|--|--|--| +| `borderWidth` | | the width of border. | +| `borderColor` | | the color of dataZoom border. | +| `backgroundColor` | | the background color of visualmap. | +| `triangeLen` |20f | 可视化组件的调节三角形边长。 | + +## `XAxis` + +Inherits or Implemented: [Axis](#Axis) + +The x axis in cartesian(rectangular) coordinate. + + +## `XCResourcesImporter` + + +## `XCSettings` + +Inherits or Implemented: [ScriptableObject](#ScriptableObject) + +|field|default|comment| +|--|--|--| +| `lang` | | [Lang](Lang)| +| `font` | | | +| `tMPFont` | | | +| `fontSizeLv1` |28 | 一级字体大小。 | +| `fontSizeLv2` |24 | | +| `fontSizeLv3` |20 | | +| `fontSizeLv4` |18 | | +| `axisLineType` | | | +| `axisLineWidth` |0.8f | | +| `axisSplitLineType` | | | +| `axisSplitLineWidth` |0.8f | | +| `axisTickWidth` |0.8f | | +| `axisTickLength` |5f | | +| `gaugeAxisLineWidth` |15f | | +| `gaugeAxisSplitLineWidth` |0.8f | | +| `gaugeAxisSplitLineLength` |15f | | +| `gaugeAxisTickWidth` |0.8f | | +| `gaugeAxisTickLength` |5f | | +| `tootipLineWidth` |0.8f | | +| `dataZoomBorderWidth` |0.5f | | +| `dataZoomDataLineWidth` |0.5f | | +| `visualMapBorderWidth` |0f | | +| `serieLineWidth` |1.8f | | +| `serieLineSymbolSize` |5f | | +| `serieScatterSymbolSize` |20f | | +| `serieSelectedRate` |1.3f | | +| `serieCandlestickBorderWidth` |1f | | +| `editorShowAllListData` |false | | +| `maxPainter` |10 | | +| `lineSmoothStyle` |3f | | +| `lineSmoothness` |2f | | +| `lineSegmentDistance` |3f | | +| `cicleSmoothness` |2f | | +| `visualMapTriangeLen` |20f | | +| `pieTooltipExtraRadius` |8f | | +| `pieSelectedOffset` |8f | | +| `customThemes` | | | + +## `YAxis` + +Inherits or Implemented: [Axis](#Axis) + +The x axis in cartesian(rectangular) coordinate. + + +[XCharts Homepage](https://github.com/XCharts-Team/XCharts)
+[XCharts API](XChartsAPI-EN.md)
+[XCharts FAQ](XChartsFAQ-EN.md) diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsConfiguration-EN.md.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsConfiguration-EN.md.meta new file mode 100644 index 0000000..68d7840 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsConfiguration-EN.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1fdd2e77324c84364bf033ffefa41123 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsConfiguration-ZH.md b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsConfiguration-ZH.md new file mode 100644 index 0000000..dd7d5d4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsConfiguration-ZH.md @@ -0,0 +1,1528 @@ +# 配置项手册 + +[XCharts主页](https://github.com/XCharts-Team/XCharts)
+[XChartsAPI接口](XChartsAPI-ZH.md)
+[XCharts问答](XChartsFAQ-ZH.md) + +## Serie 系列 + +- [Bar](#Bar) +- [BaseScatter](#BaseScatter) +- [Candlestick](#Candlestick) +- [EffectScatter](#EffectScatter) +- [Heatmap](#Heatmap) +- [Line](#Line) +- [Parallel](#Parallel) +- [Pie](#Pie) +- [Radar](#Radar) +- [Ring](#Ring) +- [Scatter](#Scatter) +- [Serie](#Serie) +- [SimplifiedBar](#SimplifiedBar) +- [SimplifiedCandlestick](#SimplifiedCandlestick) +- [SimplifiedLine](#SimplifiedLine) + +## Theme 主题 + +- [AngleAxisTheme](#AngleAxisTheme) +- [AxisTheme](#AxisTheme) +- [BaseAxisTheme](#BaseAxisTheme) +- [ComponentTheme](#ComponentTheme) +- [DataZoomTheme](#DataZoomTheme) +- [LegendTheme](#LegendTheme) +- [PolarAxisTheme](#PolarAxisTheme) +- [RadarAxisTheme](#RadarAxisTheme) +- [RadiusAxisTheme](#RadiusAxisTheme) +- [SerieTheme](#SerieTheme) +- [SubTitleTheme](#SubTitleTheme) +- [Theme](#Theme) +- [ThemeStyle](#ThemeStyle) +- [TitleTheme](#TitleTheme) +- [TooltipTheme](#TooltipTheme) +- [VisualMapTheme](#VisualMapTheme) + +## MainComponent 主组件 + +- [AngleAxis](#AngleAxis) +- [Axis](#Axis) +- [Background](#Background) +- [CalendarCoord](#CalendarCoord) +- [Comment](#Comment) +- [CoordSystem](#CoordSystem) +- [DataZoom](#DataZoom) +- [GridCoord](#GridCoord) +- [Legend](#Legend) +- [MarkArea](#MarkArea) +- [MarkLine](#MarkLine) +- [ParallelAxis](#ParallelAxis) +- [ParallelCoord](#ParallelCoord) +- [PolarCoord](#PolarCoord) +- [RadarCoord](#RadarCoord) +- [RadiusAxis](#RadiusAxis) +- [Settings](#Settings) +- [SingleAxis](#SingleAxis) +- [SingleAxisCoord](#SingleAxisCoord) +- [Title](#Title) +- [Tooltip](#Tooltip) +- [VisualMap](#VisualMap) +- [XAxis](#XAxis) +- [YAxis](#YAxis) + +## ChildComponent 子组件 + +- [AngleAxisTheme](#AngleAxisTheme) +- [AnimationStyle](#AnimationStyle) +- [AreaStyle](#AreaStyle) +- [ArrowStyle](#ArrowStyle) +- [AxisLabel](#AxisLabel) +- [AxisLine](#AxisLine) +- [AxisName](#AxisName) +- [AxisSplitArea](#AxisSplitArea) +- [AxisSplitLine](#AxisSplitLine) +- [AxisTheme](#AxisTheme) +- [AxisTick](#AxisTick) +- [BaseAxisTheme](#BaseAxisTheme) +- [BaseLine](#BaseLine) +- [CommentItem](#CommentItem) +- [CommentMarkStyle](#CommentMarkStyle) +- [ComponentTheme](#ComponentTheme) +- [DataZoomTheme](#DataZoomTheme) +- [Emphasis](#Emphasis) +- [EmphasisItemStyle](#EmphasisItemStyle) +- [EmphasisLabelLine](#EmphasisLabelLine) +- [EmphasisLabelStyle](#EmphasisLabelStyle) +- [EndLabelStyle](#EndLabelStyle) +- [IconStyle](#IconStyle) +- [ImageStyle](#ImageStyle) +- [ItemStyle](#ItemStyle) +- [LabelLine](#LabelLine) +- [LabelStyle](#LabelStyle) +- [LegendTheme](#LegendTheme) +- [Level](#Level) +- [LevelStyle](#LevelStyle) +- [LineArrow](#LineArrow) +- [LineStyle](#LineStyle) +- [Location](#Location) +- [MarkAreaData](#MarkAreaData) +- [MarkLineData](#MarkLineData) +- [PolarAxisTheme](#PolarAxisTheme) +- [RadarAxisTheme](#RadarAxisTheme) +- [RadiusAxisTheme](#RadiusAxisTheme) +- [SerieData](#SerieData) +- [SerieSymbol](#SerieSymbol) +- [SerieTheme](#SerieTheme) +- [StageColor](#StageColor) +- [SubTitleTheme](#SubTitleTheme) +- [SymbolStyle](#SymbolStyle) +- [TextLimit](#TextLimit) +- [TextPadding](#TextPadding) +- [TextStyle](#TextStyle) +- [ThemeStyle](#ThemeStyle) +- [TitleStyle](#TitleStyle) +- [TitleTheme](#TitleTheme) +- [TooltipTheme](#TooltipTheme) +- [VisualMapRange](#VisualMapRange) +- [VisualMapTheme](#VisualMapTheme) + +## ISerieExtraComponent Serie额外组件 + +- [AreaStyle](#AreaStyle) +- [Emphasis](#Emphasis) +- [EmphasisItemStyle](#EmphasisItemStyle) +- [EmphasisLabelLine](#EmphasisLabelLine) +- [EmphasisLabelStyle](#EmphasisLabelStyle) +- [ImageStyle](#ImageStyle) +- [LabelLine](#LabelLine) +- [LabelStyle](#LabelStyle) +- [LineArrow](#LineArrow) +- [TitleStyle](#TitleStyle) + +## ISerieDataComponent SerieData额外组件 + +- [AreaStyle](#AreaStyle) +- [Emphasis](#Emphasis) +- [EmphasisItemStyle](#EmphasisItemStyle) +- [EmphasisLabelLine](#EmphasisLabelLine) +- [EmphasisLabelStyle](#EmphasisLabelStyle) +- [ImageStyle](#ImageStyle) +- [ItemStyle](#ItemStyle) +- [LabelLine](#LabelLine) +- [LabelStyle](#LabelStyle) +- [LineStyle](#LineStyle) +- [SerieSymbol](#SerieSymbol) +- [TitleStyle](#TitleStyle) + +## Other 其他 + +- [BaseSerie](#BaseSerie) +- [ChartText](#ChartText) +- [ChildComponent](#ChildComponent) +- [DebugInfo](#DebugInfo) +- [Indicator](#Indicator) +- [Lang](#Lang) +- [LangCandlestick](#LangCandlestick) +- [LangTime](#LangTime) +- [MainComponent](#MainComponent) +- [XCResourcesImporter](#XCResourcesImporter) +- [XCSettings](#XCSettings) + +## `AngleAxis` + +Inherits or Implemented: [Axis](#Axis) + +极坐标系的角度轴。 + +|field|default|comment| +|--|--|--| +| `startAngle` |0 | 起始刻度的角度,默认为 0 度,即圆心的正右方。 | + +## `AngleAxisTheme` + +Inherits or Implemented: [BaseAxisTheme](#BaseAxisTheme) + + +## `AnimationStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +动画表现。 + +|field|default|comment| +|--|--|--| +| `enable` |true | 是否开启动画效果。 | +| `type` | | 动画类型。
`AnimationType`:
- `Default`: 默认。内部会根据实际情况选择一种动画播放方式。
- `LeftToRight`: 从左往右播放动画。
- `BottomToTop`: 从下往上播放动画。
- `InsideOut`: 由内到外播放动画。
- `AlongPath`: 沿着路径播放动画。
- `Clockwise`: 顺时针播放动画。
| +| `easting` | | 动画的缓动效果。
`AnimationEasing`:
- `Linear`:
| +| `threshold` |2000 | 是否开启动画的阈值,当单个系列显示的图形数量大于这个阈值时会关闭动画。 | +| `fadeInDuration` |1000 | 设定的渐入动画时长(毫秒)。如果要设置单个数据项的渐入时长,可以用代码定制:customFadeInDuration。 | +| `fadeInDelay` |0 | 渐入动画延时(毫秒)。如果要设置单个数据项的延时,可以用代码定制:customFadeInDelay。 | +| `fadeOutDuration` |1000f | 设定的渐出动画时长(毫秒)。如果要设置单个数据项的渐出时长,可以用代码定制:customFadeOutDuration。 | +| `fadeOutDelay` |0 | 渐出动画延时(毫秒)。如果要设置单个数据项的延时,可以用代码定制:customFadeOutDelay。 | +| `dataChangeEnable` |true | 是否开启数据变更动画。 | +| `dataChangeDuration` |500 | 数据变更的动画时长(毫秒)。 | +| `actualDuration` | | 实际的动画时长(毫秒)。 | + +## `AreaStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent),[ISerieExtraComponent](#ISerieExtraComponent),[ISerieDataComponent](#ISerieDataComponent) + +区域填充样式。 + +|field|default|comment| +|--|--|--| +| `show` |true | 是否显示区域填充。 | +| `origin` | | 区域填充的起始位置。
`AreaStyle.AreaOrigin`:
- `Auto`: 填充坐标轴轴线到数据间的区域。
- `Start`: 填充坐标轴底部到数据间的区域。
- `End`: 填充坐标轴顶部到数据间的区域。
| +| `color` | | 区域填充的颜色,如果toColor不是默认值,则表示渐变色的起点颜色。 | +| `toColor` | | 渐变色的终点颜色。 | +| `opacity` |0.6f | 图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。 | +| `highlightColor` | | 高亮时区域填充的颜色,如果highlightToColor不是默认值,则表示渐变色的起点颜色。 | +| `highlightToColor` | | 高亮时渐变色的终点颜色。 | + +## `ArrowStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +|field|default|comment| +|--|--|--| +| `width` |10 | 箭头宽。 | +| `height` |15 | 箭头高。 | +| `offset` |0 | 箭头偏移。 | +| `dent` |3 | 箭头的凹度。 | +| `color` |Color.clear | 箭头颜色。 | + +## `Axis` + +Inherits or Implemented: [MainComponent](#MainComponent) + +直角坐标系的坐标轴组件。 + +|field|default|comment| +|--|--|--| +| `show` |true | 是否显示坐标轴。 | +| `type` | | 坐标轴类型。
`Axis.AxisType`:
- `Value`:
- `Category`:
- `Log`: 对数轴。适用于对数数据。
- `Time`: 时间轴。适用于连续的时序数据。
| +| `minMaxType` | | 坐标轴刻度最大最小值显示类型。
`Axis.AxisMinMaxType`:
- `Default`: 0-最大值。
- `MinMax`: 最小值-最大值。
- `Custom`: 自定义最小值最大值。
| +| `gridIndex` | | 坐标轴所在的 grid 的索引,默认位于第一个 grid。 | +| `polarIndex` | | 坐标轴所在的 ploar 的索引,默认位于第一个 polar。 | +| `parallelIndex` | | 坐标轴所在的 parallel 的索引,默认位于第一个 parallel。 | +| `position` | | 坐标轴在Grid中的位置。
`Axis.AxisPosition`:
- `Left`: 坐标轴在Grid中的位置
- `Right`: 坐标轴在Grid中的位置
- `Bottom`: 坐标轴在Grid中的位置
- `Top`: 坐标轴在Grid中的位置
| +| `offset` | | 坐标轴相对默认位置的偏移。在相同position有多个坐标轴时有用。 | +| `min` | | 设定的坐标轴刻度最小值,当minMaxType为Custom时有效。 | +| `max` | | 设定的坐标轴刻度最大值,当minMaxType为Custom时有效。 | +| `splitNumber` |0 | 坐标轴的期望的分割段数。默认为0表示自动分割。 | +| `interval` |0 | 强制设置坐标轴分割间隔。无法在类目轴中使用。 | +| `boundaryGap` |true | 坐标轴两边是否留白。只对类目轴有效。 | +| `maxCache` |0 | The first data will be remove when the size of axis data is larger then maxCache. | +| `logBase` |10 | 对数轴的底数,只在对数轴(type:'Log')中有效。 | +| `logBaseE` |false | 对数轴是否以自然数 e 为底数,为 true 时 logBase 失效。 | +| `ceilRate` |0 | 最大最小值向上取整的倍率。默认为0时自动计算。 | +| `inverse` |false | 是否反向坐标轴。在类目轴中无效。 | +| `clockwise` |true | 刻度增长是否按顺时针,默认顺时针。 | +| `insertDataToHead` | | 添加新数据时是在列表的头部还是尾部加入。 | +| `icons` | | 类目数据对应的图标。 | +| `data` | | 类目数据,在类目轴(type: 'category')中有效。 | +| `axisLine` | | 坐标轴轴线。 [AxisLine](AxisLine)| +| `axisName` | | 坐标轴名称。 [AxisName](AxisName)| +| `axisTick` | | 坐标轴刻度。 [AxisTick](AxisTick)| +| `axisLabel` | | 坐标轴刻度标签。 [AxisLabel](AxisLabel)| +| `splitLine` | | 坐标轴分割线。 [AxisSplitLine](AxisSplitLine)| +| `splitArea` | | 坐标轴分割区域。 [AxisSplitArea](AxisSplitArea)| + +## `AxisLabel` + +Inherits or Implemented: [LabelStyle](#LabelStyle) + +坐标轴刻度标签的相关设置。 + +|field|default|comment| +|--|--|--| +| `interval` |0 | 坐标轴刻度标签的显示间隔,在类目轴中有效。0表示显示所有标签,1表示隔一个隔显示一个标签,以此类推。 | +| `inside` |false | 刻度标签是否朝内,默认朝外。 | +| `showAsPositiveNumber` |false | 将负数数值显示为正数。一般和`Serie`的`showAsPositiveNumber`配合使用。 | +| `onZero` |false | 刻度标签显示在0刻度上。 | +| `showStartLabel` |true | 是否显示第一个文本。 | +| `showEndLabel` |true | 是否显示最后一个文本。 | +| `textLimit` | | 文本限制。 [TextLimit](TextLimit)| + +## `AxisLine` + +Inherits or Implemented: [BaseLine](#BaseLine) + +坐标轴轴线。 + +|field|default|comment| +|--|--|--| +| `onZero` | | X 轴或者 Y 轴的轴线是否在另一个轴的 0 刻度上,只有在另一个轴为数值轴且包含 0 刻度时有效。 | +| `showArrow` | | 是否显示箭头。 | +| `arrow` | | 轴线箭头。 [ArrowStyle](ArrowStyle)| + +## `AxisName` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +坐标轴名称。 + +|field|default|comment| +|--|--|--| +| `show` | | 是否显示坐标名称。 | +| `name` | | 坐标轴名称。 | +| `labelStyle` | | 文本样式。 [LabelStyle](LabelStyle)| + +## `AxisSplitArea` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +坐标轴在 grid 区域中的分隔区域,默认不显示。 + +|field|default|comment| +|--|--|--| +| `show` | | 是否显示分隔区域。 | +| `color` | | 分隔区域颜色。分隔区域会按数组中颜色的顺序依次循环设置颜色。默认是一个深浅的间隔色。 | + +## `AxisSplitLine` + +Inherits or Implemented: [BaseLine](#BaseLine) + +坐标轴在 grid 区域中的分隔线。 + +|field|default|comment| +|--|--|--| +| `interval` | | 坐标轴分隔线的显示间隔。 | +| `distance` | | 刻度线与轴线的距离。 | +| `autoColor` | | 自动设置颜色。 | + +## `AxisTheme` + +Inherits or Implemented: [BaseAxisTheme](#BaseAxisTheme) + + +## `AxisTick` + +Inherits or Implemented: [BaseLine](#BaseLine) + +坐标轴刻度相关设置。 + +|field|default|comment| +|--|--|--| +| `alignWithLabel` | | 类目轴中在 boundaryGap 为 true 的时候有效,可以保证刻度线和标签对齐。 | +| `inside` | | 坐标轴刻度是否朝内,默认朝外。 | +| `showStartTick` | | 是否显示第一个刻度。 | +| `showEndTick` | | 是否显示最后一个刻度。 | +| `distance` | | 刻度线与轴线的距离。 | +| `splitNumber` |0 | 分隔线之间分割的刻度数。 | +| `autoColor` | | | + +## `Background` + +Inherits or Implemented: [MainComponent](#MainComponent) + +背景组件。 + +|field|default|comment| +|--|--|--| +| `show` |true | 是否启用背景组件。 | +| `image` | | 背景图。 | +| `imageType` | | 背景图填充类型。 | +| `imageColor` | | 背景图颜色。 | +| `autoColor` |true | 当background组件开启时,是否自动使用主题背景色作为backgrounnd组件的颜色。当设置为false时,用imageColor作为颜色。 | + +## `Bar` + +Inherits or Implemented: [Serie](#Serie),[INeedSerieContainer](#INeedSerieContainer) + + +## `BaseAxisTheme` + +Inherits or Implemented: [ComponentTheme](#ComponentTheme) + +|field|default|comment| +|--|--|--| +| `lineType` | | 坐标轴线类型。 | +| `lineWidth` |1f | 坐标轴线宽。 | +| `lineLength` |0f | 坐标轴线长。 | +| `lineColor` | | 坐标轴线颜色。 | +| `splitLineType` | | 分割线线类型。 | +| `splitLineWidth` |1f | 分割线线宽。 | +| `splitLineLength` |0f | 分割线线长。 | +| `splitLineColor` | | 分割线线颜色。 | +| `tickWidth` |1f | 刻度线线宽。 | +| `tickLength` |5f | 刻度线线长。 | +| `tickColor` | | 坐标轴线颜色。 | +| `splitAreaColors` | | | + +## `BaseLine` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +线条基础配置。 + +|field|default|comment| +|--|--|--| +| `show` | | 是否显示坐标轴轴线。 | +| `lineStyle` | | 线条样式 [LineStyle](LineStyle)| + +## `BaseScatter` + +Inherits or Implemented: [Serie](#Serie),[INeedSerieContainer](#INeedSerieContainer) + + +## `BaseSerie` + + +## `CalendarCoord` + +Inherits or Implemented: [CoordSystem](#CoordSystem),[IUpdateRuntimeData](#IUpdateRuntimeData),[ISerieContainer](#ISerieContainer) + + +## `Candlestick` + +Inherits or Implemented: [Serie](#Serie),[INeedSerieContainer](#INeedSerieContainer) + + +## `ChartText` + + +## `ChildComponent` + + +## `Comment` + +Inherits or Implemented: [MainComponent](#MainComponent) + +图表注解组件。 + +|field|default|comment| +|--|--|--| +| `show` |true | 是否显示注解组件。 | +| `labelStyle` | | 所有组件的文本样式。 [LabelStyle](LabelStyle)| +| `markStyle` | | 所有组件的文本样式。 [CommentMarkStyle](CommentMarkStyle)| +| `items` | | | + +## `CommentItem` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +注解项。 + +|field|default|comment| +|--|--|--| +| `show` |true | 是否显示当前注解项。 | +| `content` | | 注解的文本内容。支持模板参数,可以参考Tooltip的itemFormatter。 | +| `position` | | 注解项的位置坐标。 | +| `markRect` | | 注解区域。 | +| `markStyle` | | 注解标记区域样式。 [CommentMarkStyle](CommentMarkStyle)| +| `labelStyle` | | 注解项的文本样式。 [LabelStyle](LabelStyle)| + +## `CommentMarkStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +注解项区域样式。 + +|field|default|comment| +|--|--|--| +| `show` |true | 是否显示当前注解项。 | +| `lineStyle` | | 线条样式。 [LineStyle](LineStyle)| + +## `ComponentTheme` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +|field|default|comment| +|--|--|--| +| `font` | | 字体。 | +| `textColor` | | 文本颜色。 | +| `textBackgroundColor` | | 文本颜色。 | +| `fontSize` |18 | 文本字体大小。 | +| `tMPFont` | | 字体。 | + +## `CoordSystem` + +Inherits or Implemented: [MainComponent](#MainComponent) + +坐标系系统。 + + +## `DataZoom` + +Inherits or Implemented: [MainComponent](#MainComponent),[IUpdateRuntimeData](#IUpdateRuntimeData) + +DataZoom 组件 用于区域缩放,从而能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响。 + +|field|default|comment| +|--|--|--| +| `enable` |true | 是否显示缩放区域。 | +| `filterMode` | | 数据过滤类型。
`DataZoom.FilterMode`:
- `Filter`: 当前数据窗口外的数据,被 过滤掉。即 会 影响其他轴的数据范围。每个数据项,只要有一个维度在数据窗口外,整个数据项就会被过滤掉。
- `WeakFilter`: 当前数据窗口外的数据,被 过滤掉。即 会 影响其他轴的数据范围。每个数据项,只有当全部维度都在数据窗口同侧外部,整个数据项才会被过滤掉。
- `Empty`: 当前数据窗口外的数据,被 设置为空。即 不会 影响其他轴的数据范围。
- `None`: 不过滤数据,只改变数轴范围。
| +| `xAxisIndexs` | | 控制的 x 轴索引列表。 | +| `yAxisIndexs` | | 控制的 y 轴索引列表。 | +| `supportInside` | | 是否支持内置。内置于坐标系中,使用户可以在坐标系上通过鼠标拖拽、鼠标滚轮、手指滑动(触屏上)来缩放或漫游坐标系。 | +| `supportInsideScroll` |true | 是否支持坐标系内滚动 | +| `supportInsideDrag` |true | 是否支持坐标系内拖拽 | +| `supportSlider` | | 是否支持滑动条。有单独的滑动条,用户在滑动条上进行缩放或漫游。 | +| `supportSelect` | | 是否支持框选。提供一个选框进行数据区域缩放。 | +| `showDataShadow` | | 是否显示数据阴影。数据阴影可以简单地反应数据走势。 | +| `showDetail` | | 是否显示detail,即拖拽时候显示详细数值信息。 | +| `zoomLock` | | 是否锁定选择区域(或叫做数据窗口)的大小。 如果设置为 true 则锁定选择区域的大小,也就是说,只能平移,不能缩放。 | +| `fillerColor` | | 数据区域颜色。 | +| `borderColor` | | 边框颜色。 | +| `borderWidth` | | 边框宽。 | +| `backgroundColor` | | 组件的背景颜色。 | +| `left` | | 组件离容器左侧的距离。 | +| `right` | | 组件离容器右侧的距离。 | +| `top` | | 组件离容器上侧的距离。 | +| `bottom` | | 组件离容器下侧的距离。 | +| `rangeMode` | | 取绝对值还是百分比。
`DataZoom.RangeMode`:
- `//Value`: The value type of start and end.取值类型
- `Percent`: 百分比。
| +| `start` | | 数据窗口范围的起始百分比。范围是:0 ~ 100。 | +| `end` | | 数据窗口范围的结束百分比。范围是:0 ~ 100。 | +| `minShowNum` |1 | 最小显示数据个数。当DataZoom放大到最大时,最小显示的数据个数。 | +| `scrollSensitivity` |1.1f | 缩放区域组件的敏感度。值越高每次缩放所代表的数据越多。 | +| `orient` | | 布局方式是横还是竖。不仅是布局方式,对于直角坐标系而言,也决定了,缺省情况控制横向数轴还是纵向数轴。
`Orient`:
- `Horizonal`: 水平
- `Vertical`: 垂直
| +| `labelStyle` | | 文本标签格式。 [LabelStyle](LabelStyle)| +| `lineStyle` | | 阴影线条样式。 [LineStyle](LineStyle)| +| `areaStyle` | | 阴影填充样式。 [AreaStyle](AreaStyle)| + +## `DataZoomTheme` + +Inherits or Implemented: [ComponentTheme](#ComponentTheme) + +|field|default|comment| +|--|--|--| +| `borderWidth` | | 边框线宽。 | +| `dataLineWidth` | | 数据阴影线宽。 | +| `fillerColor` | | 数据区域颜色。 | +| `borderColor` | | 边框颜色。 | +| `dataLineColor` | | 数据阴影的线条颜色。 | +| `dataAreaColor` | | 数据阴影的填充颜色。 | +| `backgroundColor` | | 背景颜色。 | + +## `DebugInfo` + +|field|default|comment| +|--|--|--| +| `show` |true | | +| `showDebugInfo` |false | | +| `showAllChartObject` |false | | +| `foldSeries` |false | | +| `labelStyle` | | [LabelStyle](LabelStyle)| + +## `EffectScatter` + +Inherits or Implemented: [BaseScatter](#BaseScatter) + + +## `Emphasis` + +Inherits or Implemented: [ChildComponent](#ChildComponent),[ISerieExtraComponent](#ISerieExtraComponent),[ISerieDataComponent](#ISerieDataComponent) + +高亮的图形样式和文本标签样式。 + +|field|default|comment| +|--|--|--| +| `show` | | 是否启用高亮样式。 | +| `label` | | 图形文本标签。 [LabelStyle](LabelStyle)| +| `labelLine` | | 图形文本引导线样式。 [LabelLine](LabelLine)| +| `itemStyle` | | 图形样式。 [ItemStyle](ItemStyle)| + +## `EmphasisItemStyle` + +Inherits or Implemented: [ItemStyle](#ItemStyle),[ISerieExtraComponent](#ISerieExtraComponent),[ISerieDataComponent](#ISerieDataComponent) + +高亮的图形样式 + + +## `EmphasisLabelLine` + +Inherits or Implemented: [LabelLine](#LabelLine),[ISerieExtraComponent](#ISerieExtraComponent),[ISerieDataComponent](#ISerieDataComponent) + +高亮的标签引导线样式 + + +## `EmphasisLabelStyle` + +Inherits or Implemented: [LabelStyle](#LabelStyle),[ISerieExtraComponent](#ISerieExtraComponent),[ISerieDataComponent](#ISerieDataComponent) + +高亮的标签样式 + + +## `EndLabelStyle` + +Inherits or Implemented: [LabelStyle](#LabelStyle) + + +## `GridCoord` + +Inherits or Implemented: [CoordSystem](#CoordSystem),[IUpdateRuntimeData](#IUpdateRuntimeData),[ISerieContainer](#ISerieContainer) + +Drawing grid in rectangular coordinate. Line chart, bar chart, and scatter chart can be drawn in grid. + +|field|default|comment| +|--|--|--| +| `show` |true | 是否显示直角坐标系网格。 | +| `left` |0.1f | grid 组件离容器左侧的距离。 | +| `right` |0.08f | grid 组件离容器右侧的距离。 | +| `top` |0.22f | grid 组件离容器上侧的距离。 | +| `bottom` |0.12f | grid 组件离容器下侧的距离。 | +| `backgroundColor` | | 网格背景色,默认透明。 | +| `showBorder` |false | 是否显示网格边框。 | +| `borderWidth` |0f | 网格边框宽。 | +| `borderColor` | | 网格边框颜色。 | + +## `Heatmap` + +Inherits or Implemented: [Serie](#Serie),[INeedSerieContainer](#INeedSerieContainer) + + +## `IconStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +|field|default|comment| +|--|--|--| +| `show` |false | 是否显示图标。 | +| `layer` | | 显示在上层还是在下层。
`IconStyle.Layer`:
- `UnderText`: The icon is display under the label text. 图标在标签文字下
- `AboveText`: The icon is display above the label text. 图标在标签文字上
| +| `align` | | 水平方向对齐方式。
`Align`:
- `Center`: 对齐方式
- `Left`: 对齐方式
- `Right`: 对齐方式
| +| `sprite` | | 图标的图片。 | +| `type` | | 图片的显示类型。 | +| `color` | | 图标颜色。 | +| `width` |20 | 图标宽。 | +| `height` |20 | 图标高。 | +| `offset` | | 图标偏移。 | +| `autoHideWhenLabelEmpty` |false | 当label内容为空时是否自动隐藏图标 | + +## `ImageStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent),[ISerieExtraComponent](#ISerieExtraComponent),[ISerieDataComponent](#ISerieDataComponent) + +|field|default|comment| +|--|--|--| +| `show` |true | 是否显示图标。 | +| `sprite` | | 图标的图片。 | +| `type` | | 图片的显示类型。 | +| `autoColor` | | 是否自动颜色。 | +| `color` | | 图标颜色。 | +| `width` |0 | 图标宽。 | +| `height` |0 | 图标高。 | + +## `Indicator` + +雷达图的指示器,用来指定雷达图中的多个变量(维度)。 + +|field|default|comment| +|--|--|--| +| `name` | | | +| `max` | | 指示器的最大值,默认为 0 无限制。 | +| `min` | | 指示器的最小值,默认为 0 无限制。 | +| `range` | | 正常值范围。当数值不在这个范围时,会自动变更显示颜色。 | +| `show` | | 是否显示雷达坐标系组件。 | +| `shape` | | 雷达图绘制类型,支持 'Polygon' 和 'Circle'。
`RadarCoord.Shape`:
- `Polygon`: 雷达图绘制类型,支持 'Polygon' 和 'Circle'。
- `Circle`: 雷达图绘制类型,支持 'Polygon' 和 'Circle'。
| +| `radius` |100 | 雷达图的半径。 | +| `splitNumber` |5 | 指示器轴的分割段数。 | +| `center` | | 雷达图的中心点。数组的第一项是横坐标,第二项是纵坐标。 当值为0-1之间时表示百分比,设置成百分比时第一项是相对于容器宽度,第二项是相对于容器高度。 | +| `axisLine` | | 轴线。 [AxisLine](AxisLine)| +| `axisName` | | 雷达图每个指示器名称的配置项。 [AxisName](AxisName)| +| `splitLine` | | 分割线。 [AxisSplitLine](AxisSplitLine)| +| `splitArea` | | 分割区域。 [AxisSplitArea](AxisSplitArea)| +| `indicator` |true | 是否显示指示器。 | +| `positionType` | | 显示位置类型。
`RadarCoord.PositionType`:
- `Vertice`: 显示在顶点处。
- `Between`: 显示在两者之间。
| +| `indicatorGap` |10 | 指示器和雷达的间距。 | +| `ceilRate` |0 | 最大最小值向上取整的倍率。默认为0时自动计算。 | +| `isAxisTooltip` | | 是否Tooltip显示轴线上的所有数据。 | +| `outRangeColor` |Color.red | 数值超出范围时显示的颜色。 | +| `connectCenter` |false | 数值是否连线到中心点。 | +| `lineGradient` |true | 数值线段是否需要渐变。 | +| `indicatorList` | | 指示器列表。 | + +## `ItemStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent),[ISerieDataComponent](#ISerieDataComponent) + +图形样式。 + +|field|default|comment| +|--|--|--| +| `show` |true | 是否启用。 | +| `color` | | 数据项颜色。 | +| `color0` | | 数据项颜色。 | +| `toColor` | | 渐变色的颜色1。 | +| `toColor2` | | 渐变色的颜色2。只在折线图中有效。 | +| `backgroundColor` | | 数据项背景颜色。 | +| `backgroundWidth` | | 数据项背景宽度。 | +| `centerColor` | | 中心区域颜色。 | +| `centerGap` | | 中心区域间隙。 | +| `borderWidth` |0 | 边框宽。 | +| `borderGap` |0 | 边框间隙。 | +| `borderColor` | | 边框的颜色。 | +| `borderColor0` | | 边框的颜色。 | +| `borderToColor` | | 边框的渐变色。 | +| `opacity` |1 | 透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。 | +| `itemMarker` | | 提示框单项的字符标志。用在Tooltip中。 | +| `itemFormatter` | | 提示框单项的字符串模版格式器。具体配置参考`Tooltip`的`formatter` | +| `numericFormatter` | | 标准数字格式字符串。用于将数值格式化显示为字符串。 使用Axx的形式:A是格式说明符的单字符,支持C货币、D十进制、E指数、F定点数、G常规、N数字、P百分比、R往返、X十六进制的。xx是精度说明,从0-99。 参考:https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/standard-numeric-format-strings | +| `cornerRadius` | | 圆角半径。用数组分别指定4个圆角半径(顺时针左上,右上,右下,左下)。 | + +## `LabelLine` + +Inherits or Implemented: [ChildComponent](#ChildComponent),[ISerieExtraComponent](#ISerieExtraComponent),[ISerieDataComponent](#ISerieDataComponent) + +标签的引导线 + +|field|default|comment| +|--|--|--| +| `show` |true | 是否显示视觉引导线。 | +| `lineType` | | 视觉引导线类型。
`LineType`:
- `Normal`: 普通折线图。
- `Smooth`: 平滑曲线。
- `StepStart`: 阶梯线图:当前点。
- `StepMiddle`: 阶梯线图:当前点和下一个点的中间。
- `StepEnd`: 阶梯线图:下一个拐点。
| +| `lineColor` |ChartConst.clearColor32 | 视觉引导线颜色。默认和serie一致取自调色板。 | +| `lineAngle` |0 | 视觉引导线的固定角度。对折线和曲线有效。 | +| `lineWidth` |1.0f | 视觉引导线的宽度。 | +| `lineGap` |1.0f | 视觉引导线和容器的间距。 | +| `lineLength1` |25f | 视觉引导线第一段的长度。 | +| `lineLength2` |15f | 视觉引导线第二段的长度。 | +| `startSymbol` | | 起始点的图形标记。 [SymbolStyle](SymbolStyle)| +| `endSymbol` | | 结束点的图形标记。 [SymbolStyle](SymbolStyle)| + +## `LabelStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent),[ISerieExtraComponent](#ISerieExtraComponent),[ISerieDataComponent](#ISerieDataComponent) + +图形上的文本标签,可用于说明图形的一些数据信息,比如值,名称等。 + +|field|default|comment| +|--|--|--| +| `show` |true | 是否显示文本标签。 | +| `Position` | | 标签的位置。 | +| `autoOffset` |false | 是否开启自动偏移。当开启时,Y的偏移会自动判断曲线的开口来决定向上还是向下偏移。 | +| `offset` | | 距离图形元素的偏移 | +| `rotate` | | 文本的旋转。 | +| `distance` | | 距离轴线的距离。 | +| `formatter` | | 标签内容字符串模版格式器。支持用 \n 换行。 模板变量有: {.}:圆点标记。 {a}:系列名。 {a}:系列名。 {b}:类目值或数据名。 {c}:数据值。 {d}:百分比。 {e}:数据名。 {f}:数据和。 示例:“{b}:{c}” | +| `numericFormatter` | | 标准数字格式字符串。用于将数值格式化显示为字符串。 使用Axx的形式:A是格式说明符的单字符,支持C货币、D十进制、E指数、F定点数、G常规、N数字、P百分比、R往返、X十六进制的。xx是精度说明,从0-99。 参考:https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/standard-numeric-format-strings | +| `width` |0 | 标签的宽度。一般不用指定,不指定时则自动是文字的宽度。 | +| `height` |0 | 标签的高度。一般不用指定,不指定时则自动是文字的高度。 | +| `icon` | | 图标样式。 [IconStyle](IconStyle)| +| `background` | | 背景图样式。 [ImageStyle](ImageStyle)| +| `textPadding` | | 文本的边距。 [TextPadding](TextPadding)| +| `textStyle` | | 文本样式。 [TextStyle](TextStyle)| + +## `Lang` + +Inherits or Implemented: [ScriptableObject](#ScriptableObject) + +国际化语言表。 + + +## `LangCandlestick` + + +## `LangTime` + + +## `Legend` + +Inherits or Implemented: [MainComponent](#MainComponent),[IPropertyChanged](#IPropertyChanged) + +图例组件。 图例组件展现了不同系列的标记,颜色和名字。可以通过点击图例控制哪些系列不显示。 + +|field|default|comment| +|--|--|--| +| `show` |true | 是否显示图例组件。 | +| `iconType` | | 图例类型。 [default:Type.Auto]
`Painter.Type`:
- `Base`:
- `Serie`:
- `Top`:
| +| `selectedMode` | | 选择模式。控制是否可以通过点击图例改变系列的显示状态。默认开启图例选择,可以设成 None 关闭。 [default:SelectedMode.Multiple]
`VisualMap.SelectedMode`:
- `Multiple`: 多选。
- `Single`: 单选。
| +| `orient` | | 布局方式是横还是竖。 [default:Orient.Horizonal]
`Orient`:
- `Horizonal`: 水平
- `Vertical`: 垂直
| +| `location` | | 图例显示的位置。 [default:Location.defaultTop] [Location](Location)| +| `itemWidth` |25.0f | 图例标记的图形宽度。 [default:24f] | +| `itemHeight` |12.0f | 图例标记的图形高度。 [default:12f] | +| `itemGap` |10f | 图例每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。 [default:10f] | +| `itemAutoColor` |true | 图例标记的图形是否自动匹配颜色。 [default:true] | +| `itemOpacity` |1 | 图例标记的图形的颜色透明度。 | +| `formatter` | | 图例内容字符串模版格式器。支持用 \n 换行。 模板变量为图例名称 {value}。其他模板变量参考Toolip的itemFormatter。 | +| `numericFormatter` | | 标准数字格式字符串。用于将数值格式化显示为字符串。 使用Axx的形式:A是格式说明符的单字符,支持C货币、D十进制、E指数、F定点数、G常规、N数字、P百分比、R往返、X十六进制的。xx是精度说明,从0-99。 参考:https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/standard-numeric-format-strings | +| `labelStyle` | | 文本样式。 [LabelStyle](LabelStyle)| +| `data` | | If data is not specified, it will be auto collected from series. | +| `icons` | | 自定义的图例标记图形。 | +| `colors` | | the colors of legend item. 图例标记的颜色列表。 | + +## `LegendTheme` + +Inherits or Implemented: [ComponentTheme](#ComponentTheme) + +|field|default|comment| +|--|--|--| +| `unableColor` | | 文本颜色。 | + +## `Level` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +|field|default|comment| +|--|--|--| +| `label` | | 文本标签样式。 [LabelStyle](LabelStyle)| +| `upperLabel` | | 上方的文本标签样式。 [LabelStyle](LabelStyle)| +| `itemStyle` | | 数据项样式。 [ItemStyle](ItemStyle)| + +## `LevelStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +|field|default|comment| +|--|--|--| +| `show` |false | 是否启用LevelStyle | +| `levels` | | 各层节点对应的配置。当enableLevels为true时生效,levels[0]对应的第一层的配置,levels[1]对应第二层,依次类推。当levels中没有对应层时用默认的设置。 | + +## `Line` + +Inherits or Implemented: [Serie](#Serie),[INeedSerieContainer](#INeedSerieContainer) + + +## `LineArrow` + +Inherits or Implemented: [ChildComponent](#ChildComponent),[ISerieExtraComponent](#ISerieExtraComponent) + +|field|default|comment| +|--|--|--| +| `show` | | 是否显示箭头。 | +| `position` | | 箭头位置。
`LabelStyle.Position`:
- `Default`: 标签的位置。
- `Outside`: 饼图扇区外侧,通过视觉引导线连到相应的扇区。
- `Inside`: 饼图扇区内部。
- `Center`: 在饼图中心位置。
- `Top`: 图形标志的顶部。
- `Bottom`: 图形标志的底部。
- `Left`: 图形标志的左边。
- `Right`: 图形标志的右边。
- `Start`: 线的起始点。
- `Middle`: 线的中点。
- `End`: 线的结束点。
| +| `arrow` | | 箭头。 [ArrowStyle](ArrowStyle)| + +## `LineStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent),[ISerieDataComponent](#ISerieDataComponent) + +线条样式。 注: 修改 lineStyle 中的颜色不会影响图例颜色,如果需要图例颜色和折线图颜色一致,需修改 itemStyle.color,线条颜色默认也会取该颜色。 toColor,toColor2可设置水平方向的渐变,如需要设置垂直方向的渐变,可使用VisualMap。 + +|field|default|comment| +|--|--|--| +| `show` |true | 是否显示线条。当作为子组件,它的父组件有参数控制是否显示时,改参数无效。 | +| `type` | | 线的类型。
`Painter.Type`:
- `Base`:
- `Serie`:
- `Top`:
| +| `color` | | 线的颜色。 | +| `toColor` | | 线的渐变颜色(需要水平方向渐变时)。 | +| `toColor2` | | 线的渐变颜色2(需要水平方向三个渐变色的渐变时)。 | +| `width` |0 | 线宽。 | +| `length` |0 | 线长。 | +| `opacity` |1 | 线的透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。 | + +## `Location` + +Inherits or Implemented: [ChildComponent](#ChildComponent),[IPropertyChanged](#IPropertyChanged) + +位置类型。通过Align快速设置大体位置,再通过left,right,top,bottom微调具体位置。 + +|field|default|comment| +|--|--|--| +| `align` | | 对齐方式。
`Align`:
- `Center`: 对齐方式
- `Left`: 对齐方式
- `Right`: 对齐方式
| +| `left` | | 离容器左侧的距离。 | +| `right` | | 离容器右侧的距离。 | +| `top` | | 离容器上侧的距离。 | +| `bottom` | | 离容器下侧的距离。 | + +## `MainComponent` + +Inherits or Implemented: [IComparable](#IComparable) + + +## `MarkArea` + +Inherits or Implemented: [MainComponent](#MainComponent) + +图表标域,常用于标记图表中某个范围的数据。 + +|field|default|comment| +|--|--|--| +| `show` |true | 是否显示标域。 | +| `text` | | The text of markArea. 标域显示的文本。 | +| `serieIndex` |0 | Serie index of markArea. 标域影响的Serie索引。 | +| `start` | | 标域范围的起始数据。 [MarkAreaData](MarkAreaData)| +| `end` | | 标域范围的结束数据。 [MarkAreaData](MarkAreaData)| +| `itemStyle` | | 标域样式。 [ItemStyle](ItemStyle)| +| `label` | | 标域文本样式。 [LabelStyle](LabelStyle)| + +## `MarkAreaData` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +标域的数据。 + +|field|default|comment| +|--|--|--| +| `type` | | 特殊的标域类型,用于标注最大值最小值等。
`MarkAreaType`:
- `None`: 标域类型
- `Min`: 最小值。
- `Max`: 最大值。
- `Average`: 平均值。
- `Median`: 中位数。
| +| `name` | | 标注名称。会作为文字显示。 | +| `dimension` |1 | 从哪个维度的数据计算最大最小值等。 | +| `xPosition` | | 相对原点的 x 坐标,单位像素。当type为None时有效。 | +| `yPosition` | | 相对原点的 y 坐标,单位像素。当type为None时有效。 | +| `xValue` | | X轴上的指定值。当X轴为类目轴时指定值表示类目轴数据的索引,否则为具体的值。当type为None时有效。 | +| `yValue` | | Y轴上的指定值。当Y轴为类目轴时指定值表示类目轴数据的索引,否则为具体的值。当type为None时有效。 | + +## `MarkLine` + +Inherits or Implemented: [MainComponent](#MainComponent) + +图表标线。 + +|field|default|comment| +|--|--|--| +| `show` |true | 是否显示标线。 | +| `serieIndex` |0 | 标线影响的Serie索引。 | +| `animation` | | 标线的动画样式。 [AnimationStyle](AnimationStyle)| +| `data` | | 标线的数据列表。当数据项的group为0时,每个数据项表示一条标线;当group不为0时,相同group的两个数据项分别表 示标线的起始点和终止点来组成一条标线,此时标线的相关样式参数取起始点的参数。 | + +## `MarkLineData` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +图表标线的数据。 + +|field|default|comment| +|--|--|--| +| `type` | | 特殊的标线类型,用于标注最大值最小值等。
`MarkLineType`:
- `None`: 标线类型
- `Min`: 最小值。
- `Max`: 最大值。
- `Average`: 平均值。
- `Median`: 中位数。
| +| `name` | | 标线名称,将会作为文字显示。label的formatter可通过{b}显示名称,通过{c}显示数值。 | +| `dimension` |1 | 从哪个维度的数据计算最大最小值等。 | +| `xPosition` | | 相对原点的 x 坐标,单位像素。当type为None时有效。 | +| `yPosition` | | 相对原点的 y 坐标,单位像素。当type为None时有效。 | +| `xValue` | | X轴上的指定值。当X轴为类目轴时指定值表示类目轴数据的索引,否则为具体的值。当type为None时有效。 | +| `yValue` | | Y轴上的指定值。当Y轴为类目轴时指定值表示类目轴数据的索引,否则为具体的值。当type为None时有效。 | +| `group` |0 | 分组。当group不为0时,表示这个data是标线的起点或终点,group一致的data组成一条标线。 | +| `zeroPosition` |false | 是否为坐标系原点。 | +| `startSymbol` | | 起始点的图形标记。 [SymbolStyle](SymbolStyle)| +| `endSymbol` | | 结束点的图形标记。 [SymbolStyle](SymbolStyle)| +| `lineStyle` | | 标线样式。 [LineStyle](LineStyle)| +| `label` | | 文本样式。可设置position为Start、Middle和End在不同的位置显示文本。 [LabelStyle](LabelStyle)| + +## `Parallel` + +Inherits or Implemented: [Serie](#Serie),[INeedSerieContainer](#INeedSerieContainer) + + +## `ParallelAxis` + +Inherits or Implemented: [Axis](#Axis) + + +## `ParallelCoord` + +Inherits or Implemented: [CoordSystem](#CoordSystem),[IUpdateRuntimeData](#IUpdateRuntimeData),[ISerieContainer](#ISerieContainer) + +Drawing grid in rectangular coordinate. Line chart, bar chart, and scatter chart can be drawn in grid. + +|field|default|comment| +|--|--|--| +| `show` |true | 是否显示直角坐标系网格。 | +| `orient` | | 坐标轴朝向。默认为垂直朝向。
`Orient`:
- `Horizonal`: 水平
- `Vertical`: 垂直
| +| `left` |0.1f | grid 组件离容器左侧的距离。 | +| `right` |0.08f | grid 组件离容器右侧的距离。 | +| `top` |0.22f | grid 组件离容器上侧的距离。 | +| `bottom` |0.12f | grid 组件离容器下侧的距离。 | +| `backgroundColor` | | 网格背景色,默认透明。 | + +## `Pie` + +Inherits or Implemented: [Serie](#Serie) + + +## `PolarAxisTheme` + +Inherits or Implemented: [BaseAxisTheme](#BaseAxisTheme) + + +## `PolarCoord` + +Inherits or Implemented: [CoordSystem](#CoordSystem),[ISerieContainer](#ISerieContainer) + +极坐标系组件。 极坐标系,可以用于散点图和折线图。每个极坐标系拥有一个角度轴和一个半径轴。 + +|field|default|comment| +|--|--|--| +| `show` |true | 是否显示极坐标。 | +| `center` | | 极坐标的中心点。数组的第一项是横坐标,第二项是纵坐标。 当值为0-1之间时表示百分比,设置成百分比时第一项是相对于容器宽度,第二项是相对于容器高度。 | +| `radius` |0.35f | 极坐标的半径。 | +| `backgroundColor` | | 极坐标的背景色,默认透明。 | + +## `Radar` + +Inherits or Implemented: [Serie](#Serie),[INeedSerieContainer](#INeedSerieContainer) + + +## `RadarAxisTheme` + +Inherits or Implemented: [BaseAxisTheme](#BaseAxisTheme) + + +## `RadarCoord` + +Inherits or Implemented: [CoordSystem](#CoordSystem),[ISerieContainer](#ISerieContainer) + +Radar coordinate conponnet for radar charts. 雷达图坐标系组件,只适用于雷达图。 + + +## `RadiusAxis` + +Inherits or Implemented: [Axis](#Axis) + +极坐标系的径向轴。 + + +## `RadiusAxisTheme` + +Inherits or Implemented: [BaseAxisTheme](#BaseAxisTheme) + + +## `Ring` + +Inherits or Implemented: [Serie](#Serie) + + +## `Scatter` + +Inherits or Implemented: [BaseScatter](#BaseScatter) + + +## `Serie` + +Inherits or Implemented: [BaseSerie](#BaseSerie),[IComparable](#IComparable) + +系列。 + +|field|default|comment| +|--|--|--| +| `index` | | 系列索引。 | +| `show` |true | 系列是否显示在图表上。 | +| `coordSystem` | | 使用的坐标系。 | +| `serieType` | | 系列类型。 | +| `serieName` | | 系列名称,用于 tooltip 的显示,legend 的图例筛选。 | +| `stack` | | 数据堆叠,同个类目轴上系列配置相同的stack值后,后一个系列的值会在前一个系列的值上相加。 | +| `xAxisIndex` |0 | 使用X轴的index。 | +| `yAxisIndex` |0 | 使用Y轴的index。 | +| `radarIndex` |0 | 雷达图所使用的 radar 组件的 index。 | +| `vesselIndex` |0 | 水位图所使用的 vessel 组件的 index。 | +| `polarIndex` |0 | 所使用的 polar 组件的 index。 | +| `singleAxisIndex` |0 | 所使用的 singleAxis 组件的 index。 | +| `parallelIndex` |0 | 所使用的 parallel coord 组件的 index。 | +| `minShow` | | 系列所显示数据的最小索引 | +| `maxShow` | | 系列所显示数据的最大索引 | +| `maxCache` | | 系列中可缓存的最大数据量。默认为0没有限制,大于0时超过指定值会移除旧数据再插入新数据。 | +| `sampleDist` |0 | 采样的最小像素距离,默认为0时不采样。当两个数据点间的水平距离小于改值时,开启采样,保证两点间的水平距离不小于改值。 | +| `sampleType` | | 采样类型。当sampleDist大于0时有效。
`SampleType`:
- `Peak`: 取峰值。
- `Average`: 取过滤点的平均值。
- `Max`: 取过滤点的最大值。
- `Min`: 取过滤点的最小值。
- `Sum`: 取过滤点的和。
| +| `sampleAverage` |0 | 设定的采样平均值。当sampleType 为 Peak 时,用于和过滤数据的平均值做对比是取最大值还是最小值。默认为0时会实时计算所有数据的平均值。 | +| `lineType` | | 折线图样式类型。
`LineType`:
- `Normal`: 普通折线图。
- `Smooth`: 平滑曲线。
- `StepStart`: 阶梯线图:当前点。
- `StepMiddle`: 阶梯线图:当前点和下一个点的中间。
- `StepEnd`: 阶梯线图:下一个拐点。
| +| `barType` | | 柱形图类型。
`BarType`:
- `Normal`: 普通柱形图。
- `Zebra`: 斑马柱形图。
- `Capsule`: 胶囊柱形图。
| +| `barPercentStack` |false | 柱形图是否为百分比堆积。相同stack的serie只要有一个barPercentStack为true,则就显示成百分比堆叠柱状图。 | +| `barWidth` |0 | 柱条的宽度,不设时自适应。支持设置成相对于类目宽度的百分比。 | +| `barGap` |0.1f | 不同系列的柱间距离。为百分比(如 '0.3f',表示柱子宽度的 30%) 如果想要两个系列的柱子重叠,可以设置 barGap 为 '-1f'。这在用柱子做背景的时候有用。 在同一坐标系上,此属性会被多个 'bar' 系列共享。此属性应设置于此坐标系中最后一个 'bar' 系列上才会生效,并且是对此坐标系中所有 'bar' 系列生效。 | +| `barZebraWidth` |4f | 斑马线的粗细。 | +| `barZebraGap` |2f | 斑马线的间距。 | +| `min` | | 最小值。 | +| `max` | | 最大值。 | +| `minSize` |0f | 数据最小值 min 映射的宽度。 | +| `maxSize` |1f | 数据最大值 max 映射的宽度。 | +| `startAngle` | | 起始角度。和时钟一样,12点钟位置是0度,顺时针到360度。 | +| `endAngle` | | 结束角度。和时钟一样,12点钟位置是0度,顺时针到360度。 | +| `minAngle` | | 最小的扇区角度(0-360)。用于防止某个值过小导致扇区太小影响交互。 | +| `clockwise` |true | 是否顺时针。 | +| `roundCap` | | 是否开启圆弧效果。 | +| `splitNumber` | | 刻度分割段数。最大可设置36。 | +| `clickOffset` |true | 鼠标点击时是否开启偏移,一般用在PieChart图表中。 | +| `roseType` | | 是否展示成南丁格尔图,通过半径区分数据大小。
`RoseType`:
- `None`: 不展示成南丁格尔玫瑰图。
- `Radius`: 扇区圆心角展现数据的百分比,半径展现数据的大小。
- `Area`: 所有扇区圆心角相同,仅通过半径展现数据大小。
| +| `gap` | | 间距。 | +| `center` | | 中心点。 | +| `radius` | | 半径。radius[0]表示内径,radius[1]表示外径。 | +| `showDataDimension` | | 数据项里的数据维数。 | +| `showDataName` | | 在Editor的inpsector上是否显示name参数 | +| `clip` |false | 是否裁剪超出坐标系部分的图形。 | +| `ignore` |false | 是否开启忽略数据。当为 true 时,数据值为 ignoreValue 时不进行绘制。 | +| `ignoreValue` |0 | 忽略数据的默认值。当ignore为true才有效。 | +| `ignoreLineBreak` |false | 忽略数据时折线是断开还是连接。默认false为连接。 | +| `showAsPositiveNumber` |false | 将负数数值显示为正数。一般和`AxisLabel`的`showAsPositiveNumber`配合使用。仅在折线图和柱状图中有效。 | +| `large` |true | 是否开启大数据量优化,在数据图形特别多而出现卡顿时候可以开启。 开启后配合 largeThreshold 在数据量大于指定阈值的时候对绘制进行优化。 缺点:优化后不能自定义设置单个数据项的样式,不能显示Label。 | +| `largeThreshold` |200 | 开启大数量优化的阈值。只有当开启了large并且数据量大于该阀值时才进入性能模式。 | +| `avoidLabelOverlap` |false | 在饼图且标签外部显示的情况下,是否启用防止标签重叠策略,默认关闭,在标签拥挤重叠的情况下会挪动各个标签的位置,防止标签间的重叠。 | +| `radarType` | | 雷达图类型。
`RadarType`:
- `Multiple`: 多圈雷达图。此时可一个雷达里绘制多个圈,一个serieData就可组成一个圈(多维数据)。
- `Single`: 单圈雷达图。此时一个雷达只能绘制一个圈,多个serieData组成一个圈,数据取自`data[1]`。
| +| `placeHolder` |false | 占位模式。占位模式时,数据有效但不参与渲染和显示。 | +| `dataSortType` | | 组件的数据排序。
`SerieDataSortType`:
- `None`: 按 data 的顺序
- `Ascending`: 升序
- `Descending`: 降序
| +| `orient` | | 组件的朝向。
`Orient`:
- `Horizonal`: 水平
- `Vertical`: 垂直
| +| `align` | | 组件水平方向对齐方式。
`Align`:
- `Center`: 对齐方式
- `Left`: 对齐方式
- `Right`: 对齐方式
| +| `left` | | 组件离容器左侧的距离。 | +| `right` | | 组件离容器右侧的距离。 | +| `top` | | 组件离容器上侧的距离。 | +| `bottom` | | 组件离容器下侧的距离。 | +| `insertDataToHead` | | 添加新数据时是在列表的头部还是尾部加入。 | +| `lineStyle` | | 线条样式。 [LineStyle](LineStyle)| +| `symbol` | | 标记的图形。 [SerieSymbol](SerieSymbol)| +| `animation` | | 起始动画。 [AnimationStyle](AnimationStyle)| +| `itemStyle` | | 图形样式。 [ItemStyle](ItemStyle)| +| `data` | | 系列中的数据内容数组。SerieData可以设置1到n维数据。 | + +## `SerieData` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +系列中的一个数据项。可存储数据名和1-n维个数据。 + +|field|default|comment| +|--|--|--| +| `index` | | 数据项索引。 | +| `name` | | 数据项名称。 | +| `id` | | 数据项的唯一id。唯一id不是必须设置的。 | +| `parentId` | | 父节点id。父节点id不是必须设置的。 | +| `ignore` | | 是否忽略数据。当为 true 时,数据不进行绘制。 | +| `selected` | | 该数据项是否被选中。 | +| `radius` | | 自定义半径。可用在饼图中自定义某个数据项的半径。 | +| `data` | | 可指定任意维数的数值列表。 | + +## `SerieSymbol` + +Inherits or Implemented: [SymbolStyle](#SymbolStyle),[ISerieDataComponent](#ISerieDataComponent) + +系列数据项的标记的图形 + +|field|default|comment| +|--|--|--| +| `sizeType` | | 标记图形的大小获取方式。
`SymbolSizeType`:
- `Custom`: 自定义大小。
- `FromData`: 通过 dataIndex 从数据中获取,再乘以一个比例系数 dataScale 。
- `Function`: 通过委托函数获取。
| +| `selectedSize` |0f | 被选中的标记的大小。 | +| `dataIndex` |1 | 当sizeType指定为FromData时,指定的数据源索引。 | +| `dataScale` |1 | 当sizeType指定为FromData时,指定的倍数系数。 | +| `selectedDataScale` |1.5f | 当sizeType指定为FromData时,指定的高亮倍数系数。 | +| `sizeFunction` | | 当sizeType指定为Function时,指定的委托函数。 | +| `selectedSizeFunction` | | 当sizeType指定为Function时,指定的高亮委托函数。 | +| `startIndex` | | 开始显示图形标记的索引。 | +| `interval` | | 显示图形标记的间隔。0表示显示所有标签,1表示隔一个隔显示一个标签,以此类推。 | +| `forceShowLast` |false | 是否强制显示最后一个图形标记。 | +| `repeat` |false | 图形是否重复。 | + +## `SerieTheme` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +|field|default|comment| +|--|--|--| +| `lineWidth` | | 文本颜色。 | +| `lineSymbolSize` | | | +| `scatterSymbolSize` | | | +| `pieTooltipExtraRadius` | | 饼图鼠标移到高亮时的额外半径 | +| `selectedRate` |1.3f | | +| `pieSelectedOffset` | | 饼图选中时的中心点偏移 | +| `candlestickColor` |Color32(235, 84, 84, 255) | K线图阳线(涨)填充色 | +| `candlestickColor0` |Color32(71, 178, 98, 255) | K线图阴线(跌)填充色 | +| `candlestickBorderWidth` |1 | K线图边框宽度 | +| `candlestickBorderColor` |Color32(235, 84, 84, 255) | K线图阳线(跌)边框色 | +| `candlestickBorderColor0` |Color32(71, 178, 98, 255) | K线图阴线(跌)边框色 | + +## `Settings` + +Inherits or Implemented: [MainComponent](#MainComponent) + +全局参数设置组件。一般情况下可使用默认值,当有需要时可进行调整。 + +|field|default|comment| +|--|--|--| +| `show` |true | | +| `maxPainter` |10 | 设定的painter数量。 | +| `reversePainter` |false | Painter是否逆序。逆序时index大的serie最先绘制。 | +| `basePainterMaterial` | | Base Pointer 材质球,设置后会影响Axis等。 | +| `seriePainterMaterial` | | Serie Pointer 材质球,设置后会影响所有Serie。 | +| `topPainterMaterial` | | Top Pointer 材质球,设置后会影响Tooltip等。 | +| `lineSmoothStyle` |3f | 曲线平滑系数。通过调整平滑系数可以改变曲线的曲率,得到外观稍微有变化的不同曲线。 | +| `lineSmoothness` |2f | When the area with gradient is filled, the larger the value, the worse the transition effect. | +| `lineSegmentDistance` |3f | 线段的分割距离。普通折线图的线是由很多线段组成,段数由该数值决定。值越小段数越多,但顶点数也会随之增加。当开启有渐变的区域填充时,数值越大渐变过渡效果越差。 | +| `cicleSmoothness` |2f | 圆形的平滑度。数越小圆越平滑,但顶点数也会随之增加。 | +| `legendIconLineWidth` |2 | Line类型图例图标的线条宽度。 | +| `legendIconCornerRadius` | | 图例圆角半径。用数组分别指定4个圆角半径(顺时针左上,右上,右下,左下)。 | + +## `SimplifiedBar` + +Inherits or Implemented: [Serie](#Serie),[INeedSerieContainer](#INeedSerieContainer),[ISimplifiedSerie](#ISimplifiedSerie) + + +## `SimplifiedCandlestick` + +Inherits or Implemented: [Serie](#Serie),[INeedSerieContainer](#INeedSerieContainer),[ISimplifiedSerie](#ISimplifiedSerie) + + +## `SimplifiedLine` + +Inherits or Implemented: [Serie](#Serie),[INeedSerieContainer](#INeedSerieContainer),[ISimplifiedSerie](#ISimplifiedSerie) + + +## `SingleAxis` + +Inherits or Implemented: [Axis](#Axis),[IUpdateRuntimeData](#IUpdateRuntimeData) + +单轴。 + +|field|default|comment| +|--|--|--| +| `orient` | | 坐标轴朝向。默认为水平朝向。
`Orient`:
- `Horizonal`: 水平
- `Vertical`: 垂直
| +| `left` |0.1f | 组件离容器左侧的距离。 | +| `right` |0.1f | 组件离容器右侧的距离。 | +| `top` |0f | 组件离容器上侧的距离。 | +| `bottom` |0.2f | 组件离容器下侧的距离。 | +| `width` |0 | 坐标轴宽。 | +| `height` |50 | 坐标轴高。 | + +## `SingleAxisCoord` + +Inherits or Implemented: [CoordSystem](#CoordSystem) + + +## `StageColor` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +|field|default|comment| +|--|--|--| +| `percent` | | 结束位置百分比。 | +| `color` | | 颜色。 | + +## `SubTitleTheme` + +Inherits or Implemented: [ComponentTheme](#ComponentTheme) + + +## `SymbolStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +系列数据项的标记的图形 + +|field|default|comment| +|--|--|--| +| `show` |true | 是否显示标记。 | +| `type` | | 标记类型。
`SymbolType`:
- `None`: 不显示标记。
- `Custom`: 自定义标记。
- `Circle`: 圆形。
- `EmptyCircle`: 空心圆。
- `Rect`: 正方形。可通过设置`itemStyle`的`cornerRadius`变成圆角矩形。
- `EmptyRect`: 空心正方形。
- `Triangle`: 三角形。
- `EmptyTriangle`: 空心三角形。
- `Diamond`: 菱形。
- `EmptyDiamond`: 空心菱形。
- `Arrow`: 箭头。
- `EmptyArrow`: 空心箭头。
| +| `size` |0f | 标记的大小。 | +| `gap` |0 | 图形标记和线条的间隙距离。 | +| `width` |0f | 图形的宽。 | +| `height` |0f | 图形的高。 | +| `offset` |Vector2.zero | 图形的偏移。 | +| `image` | | 自定义的标记图形。 | +| `imageType` | | 图形填充类型。 | +| `color` | | 图形的颜色。 | + +## `TextLimit` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +文本字符限制和自适应。当文本长度超过设定的长度时进行裁剪,并将后缀附加在最后。 只在类目轴中有效。 + +|field|default|comment| +|--|--|--| +| `enable` |false | 是否启用文本自适应。 [default:true] | +| `maxWidth` |0 | Clipping occurs when the width of the text is greater than this value. | +| `gap` |1 | 两边留白像素距离。 [default:10f] | +| `suffix` | | 长度超出时的后缀。 [default: "..."] | + +## `TextPadding` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +文本的内边距设置。 + +|field|default|comment| +|--|--|--| +| `show` |true | show padding. 是否显示。 | +| `top` |2 | 顶部间距。 | +| `right` |4 | 右部间距。 | +| `left` |4 | 左边间距。 | +| `bottom` |2 | 底部间距。 | + +## `TextStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +文本的相关设置。 + +|field|default|comment| +|--|--|--| +| `show` |true | 文本的相关设置。 | +| `font` | | 文本字体。 [default: null] | +| `autoWrap` |false | 是否自动换行。 | +| `autoAlign` |true | 文本是否让系统自动选对齐方式。为false时才会用alignment。 | +| `rotate` |0 | 文本的旋转。 [default: `0f`] | +| `autoColor` |false | 是否开启自动颜色。当开启时,会自动设置颜色。 | +| `color` | | 文本的颜色。 [default: `Color.clear`] | +| `fontSize` |0 | 文本字体大小。 [default: 18] | +| `fontStyle` | | 文本字体的风格。 [default: FontStyle.Normal] | +| `lineSpacing` |1f | 行间距。 [default: 1f] | +| `alignment` | | 对齐方式。 | +| `tMPFont` | | TextMeshPro字体。 | +| `tMPFontStyle` | | | +| `tMPAlignment` | | | + +## `Theme` + +Inherits or Implemented: [ScriptableObject](#ScriptableObject) + +主题相关配置。 + +|field|default|comment| +|--|--|--| +| `themeType` | | 主题类型。
`ThemeType`:
- `Default`: 默认主题。
- `Light`: 亮主题。
- `Dark`: 暗主题。
- `Custom`: 自定义主题。
| +| `themeName` | | 主题名称。 | +| `font` | | 主题字体。 | +| `tMPFont` | | 主题字体。 | +| `contrastColor` | | 对比色。 | +| `backgroundColor` | | 背景颜色。 | +| `colorPalette` | | 调色盘颜色列表。如果系列没有设置颜色,则会依次循环从该列表中取颜色作为系列颜色。 | +| `common` | | [ComponentTheme](ComponentTheme)| +| `title` | | [TitleTheme](TitleTheme)| +| `subTitle` | | [SubTitleTheme](SubTitleTheme)| +| `legend` | | [LegendTheme](LegendTheme)| +| `axis` | | [AxisTheme](AxisTheme)| +| `tooltip` | | [TooltipTheme](TooltipTheme)| +| `dataZoom` | | [DataZoomTheme](DataZoomTheme)| +| `visualMap` | | [VisualMapTheme](VisualMapTheme)| +| `serie` | | [SerieTheme](SerieTheme)| + +## `ThemeStyle` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +主题相关配置。 + +|field|default|comment| +|--|--|--| +| `show` |true | | +| `sharedTheme` | | [Theme](Theme)| +| `transparentBackground` |false | Whether the background color is transparent. When true, the background color is not drawn. |是否透明背景颜色。当设置为true时,不绘制背景颜色。 | +| `enableCustomTheme` |false | 是否自定义主题颜色。当设置为true时,可以用‘sync color to custom’同步主题的颜色到自定义颜色。也可以手动设置。 | +| `customFont` | | | +| `customBackgroundColor` | | 自定义的背景颜色。 | +| `customColorPalette` | | | + +## `Title` + +Inherits or Implemented: [MainComponent](#MainComponent),[IPropertyChanged](#IPropertyChanged) + +标题组件,包含主标题和副标题。 + +|field|default|comment| +|--|--|--| +| `show` |true | 是否显示标题组件。 | +| `text` | | 主标题文本,支持使用 \n 换行。 | +| `subText` | | 副标题文本,支持使用 \n 换行。 | +| `labelStyle` | | 主标题文本样式。 [LabelStyle](LabelStyle)| +| `subLabelStyle` | | 副标题文本样式。 [LabelStyle](LabelStyle)| +| `itemGap` |0 | 主副标题之间的间距。 | +| `location` | | 标题显示位置。 [Location](Location)| + +## `TitleStyle` + +Inherits or Implemented: [LabelStyle](#LabelStyle),[ISerieDataComponent](#ISerieDataComponent),[ISerieExtraComponent](#ISerieExtraComponent) + +标题相关设置。 + + +## `TitleTheme` + +Inherits or Implemented: [ComponentTheme](#ComponentTheme) + + +## `Tooltip` + +Inherits or Implemented: [MainComponent](#MainComponent) + +提示框组件。 + +|field|default|comment| +|--|--|--| +| `show` |true | 是否显示提示框组件。 | +| `type` | | 提示框指示器类型。
`Painter.Type`:
- `Base`:
- `Serie`:
- `Top`:
| +| `trigger` | | 触发类型。
`Tooltip.Trigger`:
- `Item`: 数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用。
- `Axis`: 坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用。
- `None`: 什么都不触发。
| +| `itemFormatter` | | 提示框单个serie或数据项内容的字符串模版格式器。支持用 \n 换行。 模板变量有{.}、{a}、{b}、{c}、{d}、{e}。
{.}为当前所指示或index为0的serie的对应颜色的圆点。
{a}为当前所指示或index为0的serie的系列名name。
{b}为当前所指示或index为0的serie的数据项serieData的name,或者类目值(如折线图的X轴)。
{c}为当前所指示或index为0的serie的y维(dimesion为1)的数值。
{d}为当前所指示或index为0的serie的y维(dimesion为1)百分比值,注意不带%号。
{e}为当前所指示或index为0的serie的数据项serieData的name。
{f}为数据总和。
{.1}表示指定index为1的serie对应颜色的圆点。
{a1}、{b1}、{c1}中的1表示指定index为1的serie。
{c1:2}表示索引为1的serie的当前指示数据项的第3个数据(一个数据项有多个数据,index为2表示第3个数据)。
{c1:2-2}表示索引为1的serie的第3个数据项的第3个数据(也就是要指定第几个数据项时必须要指定第几个数据)。
{d1:2:f2}表示单独指定了数值的格式化字符串为f2(不指定时用numericFormatter)。
{d:0.##} 表示单独指定了数值的格式化字符串为 0.## (用于百分比,保留2位有效数同时又能避免使用 f2 而出现的类似于"100.00%"的情况 )。
示例:"{a}:{c}"、"{a1}:{c1:f1}"、"{a1}:{c1:0:f1}"、"{a1}:{c1:1-1:f1}" | +| `titleFormatter` | | 提示框标题内容的字符串模版格式器。支持用 \n 换行。可以单独设置占位符{i}表示忽略不显示title。 模板变量参考Toolip的itemFormatter。 | +| `marker` | | serie的符号标志。 | +| `fixedWidth` |0 | 固定宽度。比 minWidth 优先。 | +| `fixedHeight` |0 | 固定高度。比 minHeight 优先。 | +| `minWidth` |0 | 最小宽度。如若 fixedWidth 设有值,优先取 fixedWidth。 | +| `minHeight` |0 | 最小高度。如若 fixedHeight 设有值,优先取 fixedHeight。 | +| `numericFormatter` | | 标准数字格式字符串。用于将数值格式化显示为字符串。 使用Axx的形式:A是格式说明符的单字符,支持C货币、D十进制、E指数、F定点数、G常规、N数字、P百分比、R往返、X十六进制的。xx是精度说明,从0-99。 参考:https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/standard-numeric-format-strings | +| `paddingLeftRight` |10 | 左右边距。 | +| `paddingTopBottom` |10 | 上下边距。 | +| `ignoreDataShow` |false | 是否显示忽略数据在tooltip上。 | +| `ignoreDataDefaultContent` | | 被忽略数据的默认显示字符信息。 | +| `showContent` |true | 是否显示提示框浮层,默认显示。只需tooltip触发事件或显示axisPointer而不需要显示内容时可配置该项为false。 | +| `alwayShowContent` |false | 是否触发后一直显示提示框浮层。 | +| `offset` |Vector2(18f, -25f) | 提示框相对于鼠标位置的偏移。 | +| `backgroundImage` | | 提示框的背景图片。 | +| `backgroundType` | | 提示框的背景图片显示类型。 | +| `backgroundColor` | | 提示框的背景颜色。 | +| `borderWidth` |2f | 边框线宽。 | +| `fixedXEnable` |false | 是否固定X位置。 | +| `fixedX` |0f | 固定X位置的坐标。 | +| `fixedYEnable` |false | 是否固定Y位置。 | +| `fixedY` |0f | 固定Y位置的坐标。 | +| `titleHeight` |25f | 标题文本的高。 | +| `itemHeight` |25f | 数据项文本的高。 | +| `borderColor` |Color32(230, 230, 230, 255) | 边框颜色。 | +| `lineStyle` | | 指示线样式。 [LineStyle](LineStyle)| +| `indicatorLabelStyle` | | 提示框的坐标轴指示器文本的样式。 [LabelStyle](LabelStyle)| +| `titleLabelStyle` | | 标题的文本样式。 [LabelStyle](LabelStyle)| +| `contentLabelStyles` | | 内容部分的文本样式列表。和列一一对应。 | + +## `TooltipTheme` + +Inherits or Implemented: [ComponentTheme](#ComponentTheme) + +|field|default|comment| +|--|--|--| +| `lineType` | | 坐标轴线类型。 | +| `lineWidth` |1f | 指示线线宽。 | +| `lineColor` | | 指示线颜色。 | +| `areaColor` | | 区域指示的颜色。 | +| `labelTextColor` | | 十字指示器坐标轴标签的文本颜色。 | +| `labelBackgroundColor` | | 十字指示器坐标轴标签的背景颜色。 | + +## `VisualMap` + +Inherits or Implemented: [MainComponent](#MainComponent) + +视觉映射组件。用于进行『视觉编码』,也就是将数据映射到视觉元素(视觉通道)。 + +|field|default|comment| +|--|--|--| +| `show` |true | 组件是否生效。 | +| `showUI` |false | 是否显示组件。如果设置为 false,不会显示,但是数据映射的功能还存在。 | +| `type` | | 组件类型。
`Painter.Type`:
- `Base`:
- `Serie`:
- `Top`:
| +| `selectedMode` | | 选择模式。
`VisualMap.SelectedMode`:
- `Multiple`: 多选。
- `Single`: 单选。
| +| `serieIndex` |0 | 影响的serie索引。 | +| `min` |0 | 范围最小值 | +| `max` |100 | 范围最大值 | +| `range` | | 指定手柄对应数值的位置。range 应在[min,max]范围内。 | +| `text` | | 两端的文本,如 ['High', 'Low']。 | +| `textGap` | | 两端文字主体之间的距离,单位为px。 | +| `splitNumber` |5 | 对于连续型数据,自动平均切分成几段,默认为0时自动匹配inRange颜色列表大小。 | +| `calculable` |false | 是否显示拖拽用的手柄(手柄能拖拽调整选中范围)。 | +| `realtime` |true | 拖拽时,是否实时更新。 | +| `itemWidth` |20f | 图形的宽度,即颜色条的宽度。 | +| `itemHeight` |140f | 图形的高度,即颜色条的高度。 | +| `itemGap` |10f | 每个图元之间的间隔距离。 | +| `borderWidth` |0 | 边框线宽,单位px。 | +| `dimension` |-1 | Starting at 1, the default is 0 to take the last dimension in data. | +| `hoverLink` |true | Conversely, when the mouse hovers over a graphic element in a diagram, the corresponding value of the visualMap component is triangulated in the corresponding position. | +| `autoMinMax` |true | Automatically set min, Max value 自动设置min,max的值 | +| `orient` | | 布局方式是横还是竖。
`Orient`:
- `Horizonal`: 水平
- `Vertical`: 垂直
| +| `location` | | 组件显示的位置。 [Location](Location)| +| `workOnLine` |true | 组件是否对LineChart的LineStyle有效。 | +| `workOnArea` |false | 组件是否对LineChart的AreaStyle有效。 | +| `outOfRange` | | 定义 在选中范围外 的视觉颜色。 | +| `inRange` | | 分段式每一段的相关配置。 | + +## `VisualMapRange` + +Inherits or Implemented: [ChildComponent](#ChildComponent) + +|field|default|comment| +|--|--|--| +| `min` | | 范围最小值 | +| `max` | | 范围最大值 | +| `label` | | 文字描述 | +| `color` | | 颜色 | + +## `VisualMapTheme` + +Inherits or Implemented: [ComponentTheme](#ComponentTheme) + +|field|default|comment| +|--|--|--| +| `borderWidth` | | 边框线宽。 | +| `borderColor` | | 边框颜色。 | +| `backgroundColor` | | 背景颜色。 | +| `triangeLen` |20f | 可视化组件的调节三角形边长。 | + +## `XAxis` + +Inherits or Implemented: [Axis](#Axis) + +直角坐标系 grid 中的 x 轴。 + + +## `XCResourcesImporter` + + +## `XCSettings` + +Inherits or Implemented: [ScriptableObject](#ScriptableObject) + +|field|default|comment| +|--|--|--| +| `lang` | | [Lang](Lang)| +| `font` | | | +| `tMPFont` | | | +| `fontSizeLv1` |28 | 一级字体大小。 | +| `fontSizeLv2` |24 | | +| `fontSizeLv3` |20 | | +| `fontSizeLv4` |18 | | +| `axisLineType` | | | +| `axisLineWidth` |0.8f | | +| `axisSplitLineType` | | | +| `axisSplitLineWidth` |0.8f | | +| `axisTickWidth` |0.8f | | +| `axisTickLength` |5f | | +| `gaugeAxisLineWidth` |15f | | +| `gaugeAxisSplitLineWidth` |0.8f | | +| `gaugeAxisSplitLineLength` |15f | | +| `gaugeAxisTickWidth` |0.8f | | +| `gaugeAxisTickLength` |5f | | +| `tootipLineWidth` |0.8f | | +| `dataZoomBorderWidth` |0.5f | | +| `dataZoomDataLineWidth` |0.5f | | +| `visualMapBorderWidth` |0f | | +| `serieLineWidth` |1.8f | | +| `serieLineSymbolSize` |5f | | +| `serieScatterSymbolSize` |20f | | +| `serieSelectedRate` |1.3f | | +| `serieCandlestickBorderWidth` |1f | | +| `editorShowAllListData` |false | | +| `maxPainter` |10 | | +| `lineSmoothStyle` |3f | | +| `lineSmoothness` |2f | | +| `lineSegmentDistance` |3f | | +| `cicleSmoothness` |2f | | +| `visualMapTriangeLen` |20f | | +| `pieTooltipExtraRadius` |8f | | +| `pieSelectedOffset` |8f | | +| `customThemes` | | | + +## `YAxis` + +Inherits or Implemented: [Axis](#Axis) + +直角坐标系 grid 中的 y 轴。 + + +[XCharts主页](https://github.com/XCharts-Team/XCharts)
+[XChartsAPI接口](XChartsAPI-ZH.md)
+[XCharts问答](XChartsFAQ-ZH.md) diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsConfiguration-ZH.md.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsConfiguration-ZH.md.meta new file mode 100644 index 0000000..597b60c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsConfiguration-ZH.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1d5cdb90dc99540768bfb21ea8243d04 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsFAQ-EN.md b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsFAQ-EN.md new file mode 100644 index 0000000..d3b00d5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsFAQ-EN.md @@ -0,0 +1,150 @@ +# XCharts FAQ + +[XCharts Homepage](https://github.com/XCharts-Team/XCharts)
+[XCharts API](XChartsAPI-EN.md)
+[XCharts Configuration](XChartsConfiguration-EN.md) + +[QA 1: How to adjust the margin between the axis and the background?](#How-to-adjust-the-margin-between-the-axis-and-the=-background) +[QA 2: How to play agian the fadeIn animation?](#How-to-play-agian-the-fadeIn-animation) +[QA 3: How to customize the color of data item in line chart and pie chart?](#How-to-customize-the-color-of-data-item-in-line-chart-and-pie-chart) +[QA 4: How to formatter the text of axis label, such as add a units text?](#How-to-formatter-the-text-of-axis-label-such-as-add-a-units-text) +[QA 5: How to stack the bar of bar chart](#How-to-stack-the-bar-of-bar-chart) +[QA 6: How to make the bar serie in the same bar but not stack?](#How-to-make-the-bar-serie-in-the-same-bar-but-not-stack) +[QA 7: How to adjust the bar width and gap of barchart?](#How-to-adjust-the-bar-width-and-gap-of-barchart) +[QA 8: How to adjust the color of bar?](#How-to-adjust-the-color-of-bar) +[QA 9: Can I adjust the anchor of chart?](#Can-I-adjust-the-anchor-of-chart) +[QA 10: Can display more than 1000 data?](#Can-display-more-than-1000-data) +[QA 11: Can line chart drawing be dash, dot and dash-dot?](#Can-line-chart-drawing-be-dash-dot-and-dash-dot) +[QA 12: How to limit the value range of the Y-axis?](#How-to-limit-the-value-range-of-the-Y-axis) +[QA 13: How to customize the tick value range of value axis?](#How-to-customize-the-tick-value-range-of-value-axis) +[QA 14: How to display text at the top of data items?](#How-to-display-text-at-the-top-of-data-items) +[QA 15: How do I customize icons for data items?](#How-do-I-customize-icons-for-data-items) +[QA 16: How to anti-aliasing and make the chart smoother?](#How-to-anti-aliasing-and-make-the-chart-smoother) +[QA 17: Why does mouse over chart Tooltip not show?](#Why-does-mouse-over-chart-Tooltip-not-show) +[QA 18: How not to display the bar line of Tooltip?](#How-not-to-display-the-bar-line-of-Tooltip) +[QA 19: How do I customize the display of Tooltip?](#How-do-I-customize-the-display-of-Tooltip) +[QA 20: How do I get the Y-axis to display multiple decimal places?](#How-do-I-get-the-Y-axis-to-display-multiple-decimal-places) +[QA 21: How do I dynamically update data with code?](#How-do-I-dynamically-update-data-with-code) +[QA 22: How to display legend? Why are legends sometimes not displayed?](#How-to-display-legend?Why-are-legends-sometimes-not-displayed) +[QA 23: How to make chart as prefab?](#How-to-make-chart-as-prefab) +[QA 24: How do I draw custom graphic in chart,such as line or dot?](#How-do-I-draw-custom-content-in-chart-such-as-line-or-dot) +[QA 25: How to achieve similar data movement effect of ELECTRO cardiogram?](#How-to-achieve-similar-data-movement-effect-of-ELECTRO-cardiogram) +[QA 26: How do I use the background component? What are the conditions?](#How-do-I-use-the-background-component-What-are-the-conditions) +[QA 27: Mesh can not have more than 65000 vertices?](#Mesh-cannot-have-more-than-65000-vertices) +[QA 28: Why are the parameters set in Serie reset after they run?](#Why-are-the-parameters-set-in-Serie-reset-after-they-run) + +## How-to-adjust-the-margin-between-the-axis-and-the=-background + +A: `Grid` conponent,which can adjust the left, right, up, down margins of chart. + +## How-to-play-agian-the-fadeIn-animation + +A: call the `chart.AnimationReset()` API. + +## How-to-customize-the-color-of-data-item-in-line chart-and-pie-chart + +A: `Theme`->`colorPalette`, or the sub component `LineStyle` and `ItemStyle` of `Serie`. + +## How-to-formatter-the-text-of-axis-label-such-as-add-a-units-text + +A: Adjust `formatter` and `numericFormatter` parameter of `Legend`, `AxisLabel`, `Tooltop`, `SerieLabel`. + +## How-to-stack-the-bar-of-bar-chart + +A: Set the `stack` parameter of `Serie`, the series will stack in a bar with the same `stack`. + +## How-to-make-the-bar-serie-in-the-same-bar-but-not-stack + +A: Set the `barGap` of `Serie` to `-1`,`stack` to null. + +## How-to-adjust-the-bar-width-and-gap-of-barchart + +A: Adjust the `barWidth` and `barGap` parameter of `Serie`, the last `serie`'s `barWidth` and `barGap` are valid when multiple `serie`. + +## How-to-adjust-the-color-of-bar + +A: Adjust the `ItemStyle` of `Data` in `inspector`. + +## Can-I-adjust-the-anchor-of-chart + +A: Yes, you can set any one of 16 anchors but the value use default. + +## Can-display-more-than-1000-data + +A: Yes. But `UGUI` limits `65000` vertices to a single `Graphic`, so too much data may not be displayed completely. The sampling simplification curve can be turned on by setting the sampling distance `sampleDist`. You can also set some parameters to reduce the number of vertices in the chart to help show more data. Such as reducing the size of the chart, close or reduce the axis of the client drawing, close `Symbol` and `Label` display. A `Normal` line chart occupies fewer vertices than a `Smooth` line chart. The `1.5.0` and above versions can set `large` and `largeThreshold` parameters to enable performance mode. + +## Can-line-chart-drawing-be-dash-dot-and-dash-dot + +A: Yes. Adjust the `lineType` of `Serie`. + +## How-to-limit-the-value-range-of-the-Y-axis + +A: Select the `minMaxType` of `Axis` as `Custom`, then set `min` and `max` to the values you want. + +## How-to-customize-the-tick-value-range-of-value-axis + +A: By default, it is automatically split by the `splitNumber` of `Axis`. Also, you can customize the `interval` to the range you want. + +## How-to-display-text-at-the-top-of-data-items + +A: Adjust the `Label` of `Serie`. + +## How-do-I-customize-icons-for-data-items + +A: Set the `Icon` of `Data` in `Serie`. + +## How-to-anti-aliasing-and-make-the-chart-smoother + +A: Open the `Anti-Aliasing` setting in `Unity`. Selected the UI Canvas `Render Mode` as `Screen Space-Camera`, selected `MSAA`, set `4` times or higher anti-aliasing. The sawtooth can only be reduced and unavoidable. The higher the pixel, the less obvious the sawtooth is. + +## Why-does-mouse-over-chart-Tooltip-not-show + +A: Verify `Toolip` is opened. Verify that the parent node of chart has turned off mouse events. + +## How-not-to-display-the-bar-line-of-Tooltip + +A: Set the `type` of `Tooltup` as `None`. Or adjust the parameters of `lineStyle`. + +## How-do-I-customize-the-display-of-Tooltip + +A: See the `formatter`, `itemFormatter`, `titleFormatter` parameters of `Tooltip`. + +## How-do-I-get-the-Y-axis-to-display-multiple-decimal-places + +A: Set the `numericFormatter` parameter of `AxisLabel`. + +## How-do-I-dynamically-update-data-with-code + +A: See example: `Example01_UpdateData.cs` + +## How-to-display-legend?Why-are-legends-sometimes-not-displayed + +A: First, the `name` in `Serie` must have a value that is not null. Then set `Legend` is `show`, where `data` can be empty by default, indicating that all legends are displayed. If you only want to display part of the `Serie` legend, fill in `data` with the `name` of the legend you want to display. If none of the values in `data` are `name` of the series, the legend will not be displayed. + +## How-to-make-chart-as-prefab + +A: Before make prefab, please delete all sub gameObject under chart which auto-created by `XCharts`. + +## How-do-I-draw-custom-content-in-chart-such-as-line-or-dot + +A: Implement `onCustomDraw` of chart, see `Example12_CustomDrawing.cs`. + +## How-to-achieve-similar-data-movement-effect-of-ELECTRO-cardiogram + +A: See `Example_Dynamic.cs`. + +## How-do-I-use-the-background-component-What-are-the-conditions + +A: Setting `show` to `true` for the `background` component. + +## Mesh-cannot-have-more-than-65000-vertices + +A: This is the limit of `UGUI` on the number of vertices for a single `Graphic`. `XCharts` is draw chart on a single `Graphic`, so there is also this limitation. The solution can be referred to: [QA 10: Can display more than 1000 data](#Can-display-more-than-1000-data) + +## Why-are-the-parameters-set-in-Serie-reset-after-they-run + +A: Check whether `RemoveData()` and add new `Serie` in the code. If you want to keep the configuration of `Serie`, you can only `ClearData()` which just clear data and then readd the data to the old serie. + +[XCharts Homepage](https://github.com/XCharts-Team/XCharts)
+[XCharts API](XChartsAPI-EN.md)
+[XCharts Configuration](XChartsConfiguration-EN.md) \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsFAQ-EN.md.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsFAQ-EN.md.meta new file mode 100644 index 0000000..6474319 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsFAQ-EN.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e803ae0ae73794ec6891fed7551fe01d +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsFAQ-ZH.md b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsFAQ-ZH.md new file mode 100644 index 0000000..f9d051c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsFAQ-ZH.md @@ -0,0 +1,154 @@ +# XCharts问答 + +[XCharts主页](https://github.com/XCharts-Team/XCharts) +[XChartsAPI](XChartsAPI-ZH.md) +[XCharts配置项手册](XChartsConfiguration-ZH.md) + +[QA 1:如何调整坐标轴与背景的边距?](#如何调整坐标轴与背景的边距) +[QA 2:如何让初始动画重新播放?](#如何让初始动画重新播放) +[QA 3:如何自定义折线图、饼图等数据项的颜色?](#如何自定义折线图_饼图等数据项的颜色) +[QA 4:如何格式化文字,如我想给坐标轴标签加上单位?](#如何格式化文字_如我想给坐标轴标签加上单位) +[QA 5:如何让柱形图的柱子堆叠显示?](#如何让柱形图的柱子堆叠显示) +[QA 6:如何让柱形图的柱子同柱但不重叠?](#如何让柱形图的柱子同柱但不重叠) +[QA 7:如何调整柱形图的柱子宽度和间距?](#如何调整柱形图的柱子宽度和间距) +[QA 8:如何调整柱形图单个柱子的颜色?](#如何调整柱形图单个柱子的颜色) +[QA 9:如何调整图表的对齐方式?](#如何调整图表的对齐方式) +[QA 10:可以显示超过1000以上的大数据吗?](#可以显示超过1000以上的大数据吗) +[QA 11:折线图可以画虚线、点线、点划线吗?](#折线图可以画虚线_点线_点划线吗) +[QA 12:如何限定Y轴(Value轴)的值范围?](#如何限定Y轴的值范围) +[QA 13:如何自定义数值轴刻度大小?](#如何自定义数值轴刻度大小) +[QA 14:如何在数据项顶上显示文本?](#如何在数据项顶上显示文本) +[QA 15:如何给数据项自定义图标?](#如何给数据项自定义图标) +[QA 16:锯齿太严重,如何让图表更顺滑?](#锯齿太严重_如何让图表更顺滑) +[QA 17:为什么鼠标移上图表 Tooltip 不显示?](#为什么鼠标移上图表Tooltip不显示) +[QA 18:如何取消 Tooltip 的竖线?](#如何取消Tooltip的竖线) +[QA 19:如何自定义 Tooltip 的显示内容?](#如何自定义Tooltip的显示内容) +[QA 20:如何让Y轴(数值轴)显示多位小数?](#如何让Y轴显示多位小数) +[QA 21:如何用代码动态更新数据?](#如何用代码动态更新数据) +[QA 22:如何显示图例?为什么有时候图例无法显示?](#如何显示图例_为什么有时候图例无法显示) +[QA 23:如何做成预设?](#如何做成预设) +[QA 24:如何在图表上画点画线等自定义内容?](#如何在图表上画点画线等自定义内容) +[QA 25:如何实现心电图类似的数据移动效果?](#如何实现心电图类似的数据移动效果) +[QA 26:如何使用背景组件?有什么条件限制?](#如何使用背景组件_有什么条件限制) +[QA 27:Mesh can not have more than 65000 vertices?](#Mesh_cannot_have_more_than_65000_vertices) +[QA 28:为什么serie里设置的参数运行后又被重置了?](#为什么serie里设置的参数运行后又被重置了) + +## 如何调整坐标轴与背景的边距 + +答:`Grid`组件,可调整上下左右边距。 + +## 如何让初始动画重新播放 + +答:调用`AnimationReset()`接口。 + +## 如何自定义折线图_饼图等数据项的颜色 + +答:通过`Theme`的`colorPalette`调整,或者部分`Serie`下的`LineStyle`和`ItemStyle`。 + +## 如何格式化文字_如我想给坐标轴标签加上单位 + +答:通过`formatter`和`numericFormatter`参数,在`Legend`、`Axis`的`AxisLabel`、`Tooltop`、`Serie`的`Label`都提供该参数的配置。 + +## 如何让柱形图的柱子堆叠显示 + +答:设置`Serie`下的`stack`,`stack`相同的`serie`会堆叠显示在一个柱子上。 + +## 如何让柱形图的柱子同柱但不重叠 + +答:设置`Serie`下的`barGap`为`-1`,`stack`为空。 + +## 如何调整柱形图的柱子宽度和间距 + +答:调整`Serie`下的`barWidth`和`barGap`,多个`serie`时最后一个`serie`的`barWidth`和`barGap`有效。 + +## 如何调整柱形图单个柱子的颜色 + +答:可通过调整单个`Data`下的`ItemStyle`调整,也可以通过两个`serie`同柱不堆叠来实现,通过设置数据项为`0`来达到类似效果。 + +## 如何调整图表的对齐方式 + +答:默认为左下角对齐,暂不支持调整。可以通过包一层parent来辅助控制。(最新版本`1.5.0`及以上已支持任意锚点,可和做UI一样任意调整对其方式)。 + +## 可以显示超过1000以上的大数据吗 + +答:可以。但`UGUI`对单个`Graphic`限制`65000`个顶点,所以太多的数据不一定能显示完全。可通过设置采样距离`sampleDist`开启采样简化过密曲线。也可以通过设置一些参数来减少图表的顶点数有助于显示更多数据。如缩小图表的尺寸,关闭或减少坐标轴的客户端绘制,关闭`Serie`的`symbol`和`label`显示等。折线图的普通线图`Normal`比平滑线图`Smooth`占用顶点数更少。`1.5.0`以上版本可以设置`large`和`largeThreshold`参数来开启性能模式。 + +## 折线图可以画虚线_点线_点划线吗 + +答:可以。通过`Serie`下的`lineType`选择线条样式。当要显示的数据过多(成千以上)数据间过密时建议使用`Normal`或者`Step`样式。 + +## 如何限定Y轴的值范围 + +答:设置`Axis`下的`minMaxType`为`Custom`,自定义`min`和`max`。 + +## 如何自定义数值轴刻度大小 + +答:默认时通过`Axis`下的`splitNumer`进行自动划分。也可以设置`interval`自定义刻度大小。 + +## 如何在数据项顶上显示文本 + +答:通过设置`Serie`下的`Label`。 + +## 如何给数据项自定义图标 + +答:通过设置`Serie`的`data`下的数据项可单独设置`icon`相关参数。 + +## 锯齿太严重_如何让图表更顺滑 + +答:开启抗锯齿设置(在`Unity`里设置)。调整UI渲染模式为`Camera`模式,开启`MSAA`,设置`4`倍或更高抗锯齿。 + +## 为什么鼠标移上图表Tooltip不显示 + +答:确认`Tooltip`是否开启;确认父节点是否关闭了鼠标事件。 + +## 如何取消Tooltip的竖线 + +答:设置`Tooltip`的`type`为`None`。或者调整`lineStyle`的参数。 + +## 如何自定义Tooltip的显示内容 + +答:自定义总的内容可以通过`Tooltip`的`formatter`。如果只是想调整所有的`serie`的显示格式可以用`itemFormatter`和`titleFormatter`结合。如果想每个`serie`的显示格式不一样,可以定制`serie`的`itemStyle`里的`tooltipFormatter`。具体的用法请查阅[XCharts配置项手册](XChartsConfiguration-ZH.md)。 + +## 如何让Y轴显示多位小数 + +答:设置`Axis`下的`AxisLabel`中的`formatter`为`{value:f1}`或`{value:f2}`。`1.5.0`及以上版本通过`numericFormatter`设置。 + +## 如何用代码动态更新数据 + +答:请查阅`Example`下的代码,`Example13_LineSimple.cs`就是一个简单添加数据构建折线图的例子,其他`Demo`也都是通过代码控制不同的组件实现不同的功能,相关API请查看文档:[XChartsAPI接口](XChartsAPI-ZH.md) 。 + +## 如何显示图例_为什么有时候图例无法显示 + +答:首先,你的`serie`里的`name`需有值不为空。然后开启`Legend`显示,里面的`data`可以默认为空,表示显示所有的图例。如果你只想显示部分`serie`的图例,在`data`中填入要显示的图例的`name`即可。如果`data`中的值都不是系列的`name`,那图例就不会显示。 + +## 如何做成预设 + +答:请删除chart下所有的子组件再拖成预设。 + +## 如何在图表上画点画线等自定义内容 + +答:`XCharts`有自定义绘制回调`onCustomDraw`,具体可参考`Example12_CustomDrawing.cs` + +## 如何实现心电图类似的数据移动效果 + +答:参考`Example`目录下的`Example_Dynamic.cs`。主要通过设置`maxCache`参数实现。`axis`和`serie`都设置相同的`maxCache`。`maxCache`可固定数据个数,当数据超过设定时会先删除第一个在添加新数据,实现数据移动效果。 + +## 如何使用背景组件_有什么条件限制 + +答:设置`background`组件的`show`为`true`。 + +## 区域折线图在用半透明颜色时有时候会一条叠加的线 + +答:这是区域折线图绘制的bug。可以用浅的不透的颜色替代半透明颜色。 + +## Mesh_cannot_have_more_than_65000_vertices + +答:这是`UGUI`对单个`Graphic`的顶点数限制。`XCharts`是将图形绘制在单个`Graphic`上,所以也会有这个限制。解决的办法可以参考:[QA 10:可以显示超过1000以上的大数据吗?](#可以显示超过1000以上的大数据吗) + +## 为什么serie里设置的参数运行后又被重置了 + +答:检测下代码里是否调用了`RemoveData()`并重新添加`Serie`了。如果想保留`Serie`的配置可以只`ClearData()`,然后重新添加数据。 + +[XCharts主页](https://github.com/XCharts-Team/XCharts) +[XChartsAPI](XChartsAPI-ZH.md) +[XCharts配置项手册](XChartsConfiguration-ZH.md) diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsFAQ-ZH.md.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsFAQ-ZH.md.meta new file mode 100644 index 0000000..57f6035 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsFAQ-ZH.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4df833a2a1e6c4a7da37a08379dd2e18 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsTutorial01-EN.md b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsTutorial01-EN.md new file mode 100644 index 0000000..216e3e8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsTutorial01-EN.md @@ -0,0 +1,262 @@ +# 教程:5分钟上手 XCharts 3.0 + +[XCharts主页](https://github.com/XCharts-Team/XCharts)
+[XCharts问答](XChartsFAQ-ZH.md)
+[XChartsAPI接口](XChartsAPI-ZH.md)
+[XCharts配置项手册](XChartsConfiguration-ZH.md) + +## 获取和导入 XCharts + +XCharts可通过以下任意一种方式导入到项目: + +- 直接将XCharts源码到项目 + + 下载好XCharts源码后,直接将XCharts目录拷贝到Unity项目工程的Assets目录下。 + +- 通过`Assets/Import Package`导入XCharts + + 下载好XCharts的.unitypackage文件后,打开Unity,菜单栏 Assets-->Import Package-->选中.unitypackage导入即可开始使用XCharts。 + +- 通过`Package Manager`导入XCharts + + 对于Unity 2018.3以上版本,可通过 Package Manager来导入XCharts,打开Package Manager后,通过 `Add package form git URL...`,输入XCharts3.0的GitHub URL: `https://github.com/XCharts-Team/XCharts.git#3.0` 稍等片刻后即可使用XCharts。 + + 也可以直接将package加入到`manifest.json`文件:打开`Packages`目录下的`manifest.json`文件,在`dependencies`下加入: + + ``` json + "com.monitor1394.xcharts": "https://github.com/XCharts-Team/XCharts.git#3.0", + ``` + + 如需更新`XCharts`,删除`manifest.json`文件(部分Unity版本可能是packages-lock.json文件)的`lock`下的`com.monitor1394.xcharts`相关内容即会重新下载编译。 + +## 添加一个简单图表 + +在`Hierarchy`视图下右键或菜单栏`GameObject`下拉选择`XCharts->LineChart`,即可快速创建一个默认的折线图出来: + +![linechart1](res/linechart1.png) + +## 添加多个Seire + +在`Inspector`视图,找到`LineChart`的面板,通过`Add Serie`按钮,可以添加第二条`Line`折线: + +![op_addserie](res/op_addserie.png) +![linechart2](res/linechart2.png) + +## 添加其他组件 + +默认图表没有`Legend`,需要`Legend`组件可通过`Add Component`按钮添加: + +![op_addcomponent](res/op_addcomponent.png) + +## 添加Serie组件 + +Serie只自带了几个常见的组件,其他组件按需额外添加。比如,需要给折线图区域填充颜色,可单独给`Serie`添加`AreaStyle`组件: + +![op_addseriecomponent](res/op_addseriecomponent.png) +![linechart3](res/linechart3.png) + +## 添加SerieData组件 + +如果需要个性化定制每个数据项的配置,可以单独给每个`SerieData`添加`Component`。比如我们给折线图的第二个数据单独显示`Label`: + +![op_addseriedatacomponent](res/op_addseriedatacomponent.png) +![linechart4](res/linechart4.png) + +## 更多组件和配置参数 + +功能越丰富就越需要更多的组件和参数支持。XCharts有多达几十种的主组件和子组件,每个组件有几个至几十个不等的可配置参数,以支持各种灵活而复杂的功能。 + +首次接触XCharts者可在 `Inspector` 视图下可以添加和调整各个组件,`Game` 视图会实时反馈调整的效果,以熟悉各种组件实现的效果。各个组件的详细参数说明可查阅[XCharts配置项手册](XChartsConfiguration-ZH.md)。 + +## 如何快速调整参数 + +`XCharts`是配置参数驱动。想要什么效果,你只需要去调整对应组件下的配置参数就可以,不需要去改`Hierarchy`视图下的节点,因为那些节点是由`XCharts`内部根据配置参数生成的,即使改了也会在刷新时被还原回来。 + +快速定位你想要改的效果对应的组件。这就需要对组件有一定的了解。比如我们想要让X轴的轴线末端显示箭头,如何定位?第一步,X轴定位到`XAxis0`;第二步,轴线定位到`AxisLine`;最后,再去看`AxisLine`组件下有没有这样的参数可以实现这个效果。 + +`XCharts`提供从全局`Theme`、系列`Serie`、单个数据项`SerieData`全方位的参数配置。优先级从大到小为:`SerieData`->`Serie`->`Theme`。以`ItemStyle`的颜色为例: + +1. 如果`SerieData`的`ItemStyle`配置有非`0000`颜色值,则优先用这个颜色值。 +2. 如果`Serie`的`ItemStyle`配置有非`0000`颜色值,则优先用这个颜色值。 +3. 否则颜色值取自主题`Theme`的`Color Palette`。 + +通常颜色值为0000时表示用主题默认颜色,配置为0或null时表示用主题默认配置。 + +## 用代码添加折线图 + +给`gameObject`挂上`LineChart`脚本: + +```C# +var chart = gameObject.GetComponent(); +if (chart == null) +{ + chart = gameObject.AddComponent(); + chart.Init(); +} +``` + +调整大小: + +```C# +chart.SetSize(580, 300);//代码动态设置尺寸,或直接操作chart.rectTransform,或直接在Inspector上改 +``` + +设置标题: + +```C# +var title = chart.GetOrAddChartComponent(); +title.text = "Simple Line"; +``` + +设置提示框和图例是否显示: + +```C# +var tooltip = chart.GetOrAddChartComponent<Tooltip>(); +tooltip.show = true; + +var legend = chart.GetOrAddChartComponent<Legend>(); +legend.show = false; +``` + +设置坐标轴: + +```C# +var xAxis = chart.GetOrAddChartComponent<XAxis>(); +xAxis.splitNumber = 10; +xAxis.boundaryGap = true; +xAxis.type = Axis.AxisType.Category; + +var yAxis = chart.GetOrAddChartComponent<YAxis>(); +yAxis.type = Axis.AxisType.Value; +``` + +清空默认数据,添加`Line`类型的`Serie`用于接收数据: + +```C# +chart.RemoveData(); +chart.AddSerie<Line>("line"); +``` + +添加10个数据: + +```C# +for (int i = 0; i < 10; i++) +{ + chart.AddXAxisData("x" + i); + chart.AddData(0, Random.Range(10, 20)); +} +``` + +这样一个简单的折线图就出来了: + +![linechart-simple](res/linechart-simple.png) + +如果一个Chart里面有多个系列时,则Axis的data只需要加一次,不要多个循环加重复了。记住:Axis的数据个数要和Serie的数据个数一致。 + +完整代码请查阅`Examples`:`Example13_LineSimple.cs` + +你还可以用代码控制更多的参数,`Examples`下还有更多的其他例子,凡是`Inspector`上看到的可配置的参数,都可以通过代码来设置。[XCharts配置项手册](XChartsConfiguration-ZH.md)里面的所有参数都是可以通过代码控制的。 + +另外,除非定制,建议调用`Chart`下提供的`public`接口,特别是数据相关操作部分。这些接口内部会做一些关联处理,比如刷新图表等。常见的接口有: + +1. `chart.ClearData()`:清空图表数据(不移除Series) +2. `chart.RemoveData()`:清除图表数据(会移除所有Serie) +3. `chart.AddSerie()`:添加Serie +4. `chart.AddXAxisData()`:添加X轴数据 +5. `chart.AddData()`:添加Serie数据 +6. `chart.UpdateData()`:更新Serie数据 +7. `chart.UpdateXAxisData()`:更新X轴数据 +8. `chart.UpdateDataName()`:更新Serie数据的名字 + +XCharts内部有自动刷新机制,但也是在一定条件下。如果自己调用了内部组件的接口,碰到组件没有刷新,确实找不到原因的话,可以用以下两个接口强制刷新: + +1. `chart.RefreshAllComponent()`:刷新图表组件,会重新初始化所有组件,不建议频繁待用。 +2. `chart.RefreshChart()`:刷新图表绘制,只刷新绘制部分,不会刷新组件文本,位置等部分。 + +## 使用TextMeshPro + +XCharts支持TextMeshPro,但默认是不开启的,需要自己手动切换。可通过以下方式开启和关闭: + +![textmeshpro1](res/op_textmeshpro.png) + +开启后需要设置好TextMeshPro要用的全局字体,也可以在主题Theme里单独设置: + +![textmeshpro-font](res/op_textmeshpro3.png) + +建议在项目初就规划好是否使用TextMeshPro,并设置好字体。在已有很多图表的情况下切换TMP时,可能某些图表无法自动刷新,可以手动点击`Rebuild Chart Object`按钮来重建图表,即可正常初始化。 + +开启了TMP项目在更新XCharts时,可能会碰到丢失了TMP引用而无法编译通过的问题,可通过以下两种方式解决: + +1. 找到`XCharts.Runtime.asmdef`和`XCharts.Editor.asmdef`,手动加上 `TextMeshPro`的引用 +2. 移除`PlayerSetting`中`Scripting Define Symbols`的`dUI_TextMeshPro`宏 + +## 用代码改图表参数 + +`Inspector`上看到的所有参数都可以用代码来修改,关键是要定位好你要改的参数是在组件上、还是serie上、还是在具体的数据项上改。 + +### 改主组件上的参数 + +需要先获取组件,再修改里面的参数: + +```C# +var title = chart.GetOrAddChartComponent<Title>(); +title.text = "Simple LineChart"; +title.subText = "normal line"; + +var xAxis = chart.GetOrAddChartComponent<XAxis>(); +xAxis.splitNumber = 10; +xAxis.boundaryGap = true; +xAxis.type = Axis.AxisType.Category; +``` + +### 改Serie的参数 + +新添加的Serie: + +```C# +var serie = chart.AddSerie<Pie>(); +serie.center[0] = 0.5f; +serie.center[1] = 0.5f; +serie.radius[0] = 80; +serie.radius[1] = 90; +serie.animation.dataChangeEnable = true; +serie.roundCap = true; +``` + +已存在的Serie: + +```C# +var serie = chart.GetSerie<Pie>(); +serie.center[0] = 0.5f; +serie.center[1] = 0.5f; +serie.radius[0] = 80; +serie.radius[1] = 90; +serie.animation.dataChangeEnable = true; +serie.roundCap = true; +``` + +给Serie添加额外组件: + +```C# +serie.AddExtraComponent<AreaStyle>(); + +var label = serie1.AddExtraComponent<LabelStyle>(); +label.offset = new Vector3(0,20,0); +``` + +### 改数据项SerieData上的参数 + +```C# +var serieData = chart.AddData(0, 20); +//var serieData = serie.GetSerieData(0); //从已有数据中获取 +serieData.radius = 10; + +var itemStyle = serieData.GetOrAddComponent<ItemStyle>(); //给数据项添加ItemStyle组件 +itemStyle.color = Color.blue; + +``` + +[XCharts主页](https://github.com/XCharts-Team/XCharts)</br> +[XCharts问答](XChartsFAQ-ZH.md)</br> +[XChartsAPI接口](XChartsAPI-ZH.md)</br> +[XCharts配置项手册](XChartsConfiguration-ZH.md) diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsTutorial01-EN.md.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsTutorial01-EN.md.meta new file mode 100644 index 0000000..2b2b77a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsTutorial01-EN.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a772f2d2a3f994d439db4a07365b9554 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsTutorial01-ZH.md b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsTutorial01-ZH.md new file mode 100644 index 0000000..216e3e8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsTutorial01-ZH.md @@ -0,0 +1,262 @@ +# 教程:5分钟上手 XCharts 3.0 + +[XCharts主页](https://github.com/XCharts-Team/XCharts)</br> +[XCharts问答](XChartsFAQ-ZH.md)</br> +[XChartsAPI接口](XChartsAPI-ZH.md)</br> +[XCharts配置项手册](XChartsConfiguration-ZH.md) + +## 获取和导入 XCharts + +XCharts可通过以下任意一种方式导入到项目: + +- 直接将XCharts源码到项目 + + 下载好XCharts源码后,直接将XCharts目录拷贝到Unity项目工程的Assets目录下。 + +- 通过`Assets/Import Package`导入XCharts + + 下载好XCharts的.unitypackage文件后,打开Unity,菜单栏 Assets-->Import Package-->选中.unitypackage导入即可开始使用XCharts。 + +- 通过`Package Manager`导入XCharts + + 对于Unity 2018.3以上版本,可通过 Package Manager来导入XCharts,打开Package Manager后,通过 `Add package form git URL...`,输入XCharts3.0的GitHub URL: `https://github.com/XCharts-Team/XCharts.git#3.0` 稍等片刻后即可使用XCharts。 + + 也可以直接将package加入到`manifest.json`文件:打开`Packages`目录下的`manifest.json`文件,在`dependencies`下加入: + + ``` json + "com.monitor1394.xcharts": "https://github.com/XCharts-Team/XCharts.git#3.0", + ``` + + 如需更新`XCharts`,删除`manifest.json`文件(部分Unity版本可能是packages-lock.json文件)的`lock`下的`com.monitor1394.xcharts`相关内容即会重新下载编译。 + +## 添加一个简单图表 + +在`Hierarchy`视图下右键或菜单栏`GameObject`下拉选择`XCharts->LineChart`,即可快速创建一个默认的折线图出来: + +![linechart1](res/linechart1.png) + +## 添加多个Seire + +在`Inspector`视图,找到`LineChart`的面板,通过`Add Serie`按钮,可以添加第二条`Line`折线: + +![op_addserie](res/op_addserie.png) +![linechart2](res/linechart2.png) + +## 添加其他组件 + +默认图表没有`Legend`,需要`Legend`组件可通过`Add Component`按钮添加: + +![op_addcomponent](res/op_addcomponent.png) + +## 添加Serie组件 + +Serie只自带了几个常见的组件,其他组件按需额外添加。比如,需要给折线图区域填充颜色,可单独给`Serie`添加`AreaStyle`组件: + +![op_addseriecomponent](res/op_addseriecomponent.png) +![linechart3](res/linechart3.png) + +## 添加SerieData组件 + +如果需要个性化定制每个数据项的配置,可以单独给每个`SerieData`添加`Component`。比如我们给折线图的第二个数据单独显示`Label`: + +![op_addseriedatacomponent](res/op_addseriedatacomponent.png) +![linechart4](res/linechart4.png) + +## 更多组件和配置参数 + +功能越丰富就越需要更多的组件和参数支持。XCharts有多达几十种的主组件和子组件,每个组件有几个至几十个不等的可配置参数,以支持各种灵活而复杂的功能。 + +首次接触XCharts者可在 `Inspector` 视图下可以添加和调整各个组件,`Game` 视图会实时反馈调整的效果,以熟悉各种组件实现的效果。各个组件的详细参数说明可查阅[XCharts配置项手册](XChartsConfiguration-ZH.md)。 + +## 如何快速调整参数 + +`XCharts`是配置参数驱动。想要什么效果,你只需要去调整对应组件下的配置参数就可以,不需要去改`Hierarchy`视图下的节点,因为那些节点是由`XCharts`内部根据配置参数生成的,即使改了也会在刷新时被还原回来。 + +快速定位你想要改的效果对应的组件。这就需要对组件有一定的了解。比如我们想要让X轴的轴线末端显示箭头,如何定位?第一步,X轴定位到`XAxis0`;第二步,轴线定位到`AxisLine`;最后,再去看`AxisLine`组件下有没有这样的参数可以实现这个效果。 + +`XCharts`提供从全局`Theme`、系列`Serie`、单个数据项`SerieData`全方位的参数配置。优先级从大到小为:`SerieData`->`Serie`->`Theme`。以`ItemStyle`的颜色为例: + +1. 如果`SerieData`的`ItemStyle`配置有非`0000`颜色值,则优先用这个颜色值。 +2. 如果`Serie`的`ItemStyle`配置有非`0000`颜色值,则优先用这个颜色值。 +3. 否则颜色值取自主题`Theme`的`Color Palette`。 + +通常颜色值为0000时表示用主题默认颜色,配置为0或null时表示用主题默认配置。 + +## 用代码添加折线图 + +给`gameObject`挂上`LineChart`脚本: + +```C# +var chart = gameObject.GetComponent<LineChart>(); +if (chart == null) +{ + chart = gameObject.AddComponent<LineChart>(); + chart.Init(); +} +``` + +调整大小: + +```C# +chart.SetSize(580, 300);//代码动态设置尺寸,或直接操作chart.rectTransform,或直接在Inspector上改 +``` + +设置标题: + +```C# +var title = chart.GetOrAddChartComponent<Title>(); +title.text = "Simple Line"; +``` + +设置提示框和图例是否显示: + +```C# +var tooltip = chart.GetOrAddChartComponent<Tooltip>(); +tooltip.show = true; + +var legend = chart.GetOrAddChartComponent<Legend>(); +legend.show = false; +``` + +设置坐标轴: + +```C# +var xAxis = chart.GetOrAddChartComponent<XAxis>(); +xAxis.splitNumber = 10; +xAxis.boundaryGap = true; +xAxis.type = Axis.AxisType.Category; + +var yAxis = chart.GetOrAddChartComponent<YAxis>(); +yAxis.type = Axis.AxisType.Value; +``` + +清空默认数据,添加`Line`类型的`Serie`用于接收数据: + +```C# +chart.RemoveData(); +chart.AddSerie<Line>("line"); +``` + +添加10个数据: + +```C# +for (int i = 0; i < 10; i++) +{ + chart.AddXAxisData("x" + i); + chart.AddData(0, Random.Range(10, 20)); +} +``` + +这样一个简单的折线图就出来了: + +![linechart-simple](res/linechart-simple.png) + +如果一个Chart里面有多个系列时,则Axis的data只需要加一次,不要多个循环加重复了。记住:Axis的数据个数要和Serie的数据个数一致。 + +完整代码请查阅`Examples`:`Example13_LineSimple.cs` + +你还可以用代码控制更多的参数,`Examples`下还有更多的其他例子,凡是`Inspector`上看到的可配置的参数,都可以通过代码来设置。[XCharts配置项手册](XChartsConfiguration-ZH.md)里面的所有参数都是可以通过代码控制的。 + +另外,除非定制,建议调用`Chart`下提供的`public`接口,特别是数据相关操作部分。这些接口内部会做一些关联处理,比如刷新图表等。常见的接口有: + +1. `chart.ClearData()`:清空图表数据(不移除Series) +2. `chart.RemoveData()`:清除图表数据(会移除所有Serie) +3. `chart.AddSerie()`:添加Serie +4. `chart.AddXAxisData()`:添加X轴数据 +5. `chart.AddData()`:添加Serie数据 +6. `chart.UpdateData()`:更新Serie数据 +7. `chart.UpdateXAxisData()`:更新X轴数据 +8. `chart.UpdateDataName()`:更新Serie数据的名字 + +XCharts内部有自动刷新机制,但也是在一定条件下。如果自己调用了内部组件的接口,碰到组件没有刷新,确实找不到原因的话,可以用以下两个接口强制刷新: + +1. `chart.RefreshAllComponent()`:刷新图表组件,会重新初始化所有组件,不建议频繁待用。 +2. `chart.RefreshChart()`:刷新图表绘制,只刷新绘制部分,不会刷新组件文本,位置等部分。 + +## 使用TextMeshPro + +XCharts支持TextMeshPro,但默认是不开启的,需要自己手动切换。可通过以下方式开启和关闭: + +![textmeshpro1](res/op_textmeshpro.png) + +开启后需要设置好TextMeshPro要用的全局字体,也可以在主题Theme里单独设置: + +![textmeshpro-font](res/op_textmeshpro3.png) + +建议在项目初就规划好是否使用TextMeshPro,并设置好字体。在已有很多图表的情况下切换TMP时,可能某些图表无法自动刷新,可以手动点击`Rebuild Chart Object`按钮来重建图表,即可正常初始化。 + +开启了TMP项目在更新XCharts时,可能会碰到丢失了TMP引用而无法编译通过的问题,可通过以下两种方式解决: + +1. 找到`XCharts.Runtime.asmdef`和`XCharts.Editor.asmdef`,手动加上 `TextMeshPro`的引用 +2. 移除`PlayerSetting`中`Scripting Define Symbols`的`dUI_TextMeshPro`宏 + +## 用代码改图表参数 + +`Inspector`上看到的所有参数都可以用代码来修改,关键是要定位好你要改的参数是在组件上、还是serie上、还是在具体的数据项上改。 + +### 改主组件上的参数 + +需要先获取组件,再修改里面的参数: + +```C# +var title = chart.GetOrAddChartComponent<Title>(); +title.text = "Simple LineChart"; +title.subText = "normal line"; + +var xAxis = chart.GetOrAddChartComponent<XAxis>(); +xAxis.splitNumber = 10; +xAxis.boundaryGap = true; +xAxis.type = Axis.AxisType.Category; +``` + +### 改Serie的参数 + +新添加的Serie: + +```C# +var serie = chart.AddSerie<Pie>(); +serie.center[0] = 0.5f; +serie.center[1] = 0.5f; +serie.radius[0] = 80; +serie.radius[1] = 90; +serie.animation.dataChangeEnable = true; +serie.roundCap = true; +``` + +已存在的Serie: + +```C# +var serie = chart.GetSerie<Pie>(); +serie.center[0] = 0.5f; +serie.center[1] = 0.5f; +serie.radius[0] = 80; +serie.radius[1] = 90; +serie.animation.dataChangeEnable = true; +serie.roundCap = true; +``` + +给Serie添加额外组件: + +```C# +serie.AddExtraComponent<AreaStyle>(); + +var label = serie1.AddExtraComponent<LabelStyle>(); +label.offset = new Vector3(0,20,0); +``` + +### 改数据项SerieData上的参数 + +```C# +var serieData = chart.AddData(0, 20); +//var serieData = serie.GetSerieData(0); //从已有数据中获取 +serieData.radius = 10; + +var itemStyle = serieData.GetOrAddComponent<ItemStyle>(); //给数据项添加ItemStyle组件 +itemStyle.color = Color.blue; + +``` + +[XCharts主页](https://github.com/XCharts-Team/XCharts)</br> +[XCharts问答](XChartsFAQ-ZH.md)</br> +[XChartsAPI接口](XChartsAPI-ZH.md)</br> +[XCharts配置项手册](XChartsConfiguration-ZH.md) diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsTutorial01-ZH.md.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsTutorial01-ZH.md.meta new file mode 100644 index 0000000..a0596c7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/XChartsTutorial01-ZH.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2ab7eabdc796a45aea5bc457dc9e27f8 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res.meta new file mode 100644 index 0000000..46be5fd --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 377ae219d15f048108309cb7a04de87e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/alipay.png b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/alipay.png new file mode 100644 index 0000000..209d49d Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/alipay.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/alipay.png.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/alipay.png.meta new file mode 100644 index 0000000..04fcfd5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/alipay.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 9619faeb62a184c94b83e389fd22f692 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart-simple.png b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart-simple.png new file mode 100644 index 0000000..39e521f Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart-simple.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart-simple.png.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart-simple.png.meta new file mode 100644 index 0000000..5f03582 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart-simple.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 1e91cbf448b1c44769054375b1686439 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart.png b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart.png new file mode 100644 index 0000000..6bb2eea Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart.png.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart.png.meta new file mode 100644 index 0000000..9417852 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 172962e9e20c74c8a8428f507843b6d3 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart1.png b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart1.png new file mode 100644 index 0000000..703c690 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart1.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart1.png.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart1.png.meta new file mode 100644 index 0000000..2d41701 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart1.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: e610f9feea0064345909b632bba12e2e +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart2.png b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart2.png new file mode 100644 index 0000000..308870d Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart2.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart2.png.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart2.png.meta new file mode 100644 index 0000000..09d9eba --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart2.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: ba7e7b5180b354b26baf5314d5da59f6 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart3.png b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart3.png new file mode 100644 index 0000000..a91064e Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart3.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart3.png.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart3.png.meta new file mode 100644 index 0000000..e3665c6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart3.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 42bd080b0812b4bdcb8685adad22cd1e +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart4.png b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart4.png new file mode 100644 index 0000000..929591e Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart4.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart4.png.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart4.png.meta new file mode 100644 index 0000000..20e6da9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/linechart4.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 52450d00759b44e678862b5ca8895072 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addcomponent.png b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addcomponent.png new file mode 100644 index 0000000..420e39a Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addcomponent.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addcomponent.png.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addcomponent.png.meta new file mode 100644 index 0000000..649700d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addcomponent.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: c7e8baa3a53ba41e9bb63d02176b87ff +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addserie.png b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addserie.png new file mode 100644 index 0000000..294b5fe Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addserie.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addserie.png.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addserie.png.meta new file mode 100644 index 0000000..d610927 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addserie.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 4fa12bb2901d144b88abb5f304979291 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addseriecomponent.png b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addseriecomponent.png new file mode 100644 index 0000000..ecc517f Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addseriecomponent.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addseriecomponent.png.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addseriecomponent.png.meta new file mode 100644 index 0000000..7b2c01f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addseriecomponent.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: b1eb790b2091e4df380350030c6d8d8d +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addseriedatacomponent.png b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addseriedatacomponent.png new file mode 100644 index 0000000..6f74e89 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addseriedatacomponent.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addseriedatacomponent.png.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addseriedatacomponent.png.meta new file mode 100644 index 0000000..3eca7ba --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_addseriedatacomponent.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 1ca6fe245906a453284b526f09c44eff +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_textmeshpro.png b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_textmeshpro.png new file mode 100644 index 0000000..8ea4172 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_textmeshpro.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_textmeshpro.png.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_textmeshpro.png.meta new file mode 100644 index 0000000..6c13d6f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_textmeshpro.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 9031f7bed8c7f4350affc32cc7016b5e +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_textmeshpro3.png b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_textmeshpro3.png new file mode 100644 index 0000000..52f71b7 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_textmeshpro3.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_textmeshpro3.png.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_textmeshpro3.png.meta new file mode 100644 index 0000000..c74cfa5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/op_textmeshpro3.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 1777b9bc4f1df446eaf01931cb0b07ed +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/wechat.png b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/wechat.png new file mode 100644 index 0000000..c2f8b67 Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/wechat.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/wechat.png.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/wechat.png.meta new file mode 100644 index 0000000..a66a7c3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Documentation/res/wechat.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: c62c735b2989c4367b8c97b8ca75c216 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor.meta new file mode 100644 index 0000000..792fad1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 98b750952a34c427693ac70f09008bae +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Attributes.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Attributes.meta new file mode 100644 index 0000000..b4b5c1a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Attributes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8e7c19967ca244147b0fcbb129201b46 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Attributes/ComponentEditorAttribute.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Attributes/ComponentEditorAttribute.cs new file mode 100644 index 0000000..3e5d460 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Attributes/ComponentEditorAttribute.cs @@ -0,0 +1,15 @@ +using System; + +namespace XCharts.Editor +{ + [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] + public sealed class ComponentEditorAttribute : Attribute + { + public readonly Type componentType; + + public ComponentEditorAttribute(Type componentType) + { + this.componentType = componentType; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Attributes/ComponentEditorAttribute.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Attributes/ComponentEditorAttribute.cs.meta new file mode 100644 index 0000000..5db1e6c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Attributes/ComponentEditorAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f433acf13ec404a6d91eb78352d18d4d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Attributes/SerieEditorAttribute.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Attributes/SerieEditorAttribute.cs new file mode 100644 index 0000000..c747be6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Attributes/SerieEditorAttribute.cs @@ -0,0 +1,15 @@ +using System; + +namespace XCharts.Editor +{ + [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] + public sealed class SerieEditorAttribute : Attribute + { + public readonly Type serieType; + + public SerieEditorAttribute(Type serieType) + { + this.serieType = serieType; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Attributes/SerieEditorAttribute.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Attributes/SerieEditorAttribute.cs.meta new file mode 100644 index 0000000..a94ad04 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Attributes/SerieEditorAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dcdc7a72224af419d96584fa40f822c9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Charts.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Charts.meta new file mode 100644 index 0000000..412c017 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Charts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9e4407eed14ec4e518a373f4d8ae9b3c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Charts/BaseChartEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Charts/BaseChartEditor.cs new file mode 100644 index 0000000..617d12e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Charts/BaseChartEditor.cs @@ -0,0 +1,320 @@ +using System; +using System.Collections.Generic; +using System.Text; +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomEditor(typeof(BaseChart), true)] + public class BaseChartEditor : UnityEditor.Editor + { + class Styles + { + public static readonly GUIContent btnAddSerie = new GUIContent("Add Serie", ""); + public static readonly GUIContent btnAddComponent = new GUIContent("Add Main Component", ""); + public static readonly GUIContent btnCovertXYAxis = new GUIContent("Covert XY Axis", ""); + public static readonly GUIContent btnRebuildChartObject = new GUIContent("Rebuild Chart Object", ""); + public static readonly GUIContent btnCheckWarning = new GUIContent("Check Warning", ""); + public static readonly GUIContent btnHideWarning = new GUIContent("Hide Warning", ""); + } + protected BaseChart m_Chart; + protected SerializedProperty m_Script; + protected SerializedProperty m_EnableTextMeshPro; + protected SerializedProperty m_Settings; + protected SerializedProperty m_Theme; + protected SerializedProperty m_ChartName; + protected SerializedProperty m_DebugInfo; + protected SerializedProperty m_RaycastTarget; + + protected List<SerializedProperty> m_Components = new List<SerializedProperty>(); + protected List<SerializedProperty> m_Series = new List<SerializedProperty>(); + + private bool m_BaseFoldout; + + private bool m_CheckWarning = false; + private int m_LastComponentCount = 0; + private int m_LastSerieCount = 0; + private string m_VersionString = ""; + private StringBuilder sb = new StringBuilder(); + MainComponentListEditor m_ComponentList; + SerieListEditor m_SerieList; + + protected virtual void OnEnable() + { + if (target == null) return; + m_Chart = (BaseChart) target; + m_Script = serializedObject.FindProperty("m_Script"); + m_EnableTextMeshPro = serializedObject.FindProperty("m_EnableTextMeshPro"); + m_ChartName = serializedObject.FindProperty("m_ChartName"); + m_Theme = serializedObject.FindProperty("m_Theme"); + m_Settings = serializedObject.FindProperty("m_Settings"); + m_DebugInfo = serializedObject.FindProperty("m_DebugInfo"); + m_RaycastTarget = serializedObject.FindProperty("m_RaycastTarget"); + + RefreshComponent(); + m_ComponentList = new MainComponentListEditor(this); + m_ComponentList.Init(m_Chart, serializedObject, m_Components); + + RefreshSeries(); + m_SerieList = new SerieListEditor(this); + m_SerieList.Init(m_Chart, serializedObject, m_Series); + + m_VersionString = "v" + XChartsMgr.fullVersion; + if (m_EnableTextMeshPro.boolValue) + m_VersionString += "-tmp"; + } + + public List<SerializedProperty> RefreshComponent() + { + m_Components.Clear(); + serializedObject.UpdateIfRequiredOrScript(); + foreach (var kv in m_Chart.typeListForComponent) + { + InitComponent(kv.Value.Name); + } + return m_Components; + } + + public List<SerializedProperty> RefreshSeries() + { + m_Series.Clear(); + serializedObject.UpdateIfRequiredOrScript(); + foreach (var kv in m_Chart.typeListForSerie) + { + InitSerie(kv.Value.Name); + } + return m_Series; + } + + public override void OnInspectorGUI() + { + if (m_Chart == null && target == null) + { + base.OnInspectorGUI(); + return; + } + serializedObject.UpdateIfRequiredOrScript(); + if (m_LastComponentCount != m_Chart.components.Count) + { + m_LastComponentCount = m_Chart.components.Count; + RefreshComponent(); + m_ComponentList.UpdateComponentsProperty(m_Components); + + } + if (m_LastSerieCount != m_Chart.series.Count) + { + m_LastSerieCount = m_Chart.series.Count; + RefreshSeries(); + m_SerieList.UpdateSeriesProperty(m_Series); + } + OnStartInspectorGUI(); + OnDebugInspectorGUI(); + EditorGUILayout.Space(); + serializedObject.ApplyModifiedProperties(); + } + + protected virtual void OnStartInspectorGUI() + { + ShowVersion(); + m_BaseFoldout = ChartEditorHelper.DrawHeader("Base", m_BaseFoldout, false, null, null); + if (m_BaseFoldout) + { + EditorGUILayout.PropertyField(m_Script); + EditorGUILayout.PropertyField(m_ChartName); + EditorGUILayout.PropertyField(m_RaycastTarget); + if (XChartsMgr.IsRepeatChartName(m_Chart, m_ChartName.stringValue)) + { + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.HelpBox("chart name is repeated: " + m_ChartName.stringValue, MessageType.Error); + EditorGUILayout.EndHorizontal(); + } + } + EditorGUILayout.PropertyField(m_Theme); + EditorGUILayout.PropertyField(m_Settings); + m_ComponentList.OnGUI(); + m_SerieList.OnGUI(); + } + + protected virtual void OnDebugInspectorGUI() + { + EditorGUILayout.PropertyField(m_DebugInfo, true); + EditorGUILayout.Space(); + AddSerie(); + AddComponent(); + CheckWarning(); + } + + protected void PropertyComponnetList(SerializedProperty prop) + { + for (int i = 0; i < prop.arraySize; i++) + { + EditorGUILayout.PropertyField(prop.GetArrayElementAtIndex(i), true); + } + } + + private void InitComponent(string propName) + { + var prop = serializedObject.FindProperty(propName); + for (int i = 0; i < prop.arraySize; i++) + { + m_Components.Add(prop.GetArrayElementAtIndex(i)); + } + m_Components.Sort((a, b) => { return a.propertyPath.CompareTo(b.propertyPath); }); + } + + private void InitSerie(string propName) + { + var prop = serializedObject.FindProperty(propName); + for (int i = 0; i < prop.arraySize; i++) + { + m_Series.Add(prop.GetArrayElementAtIndex(i)); + } + m_Series.Sort(delegate(SerializedProperty a, SerializedProperty b) + { + var index1 = a.FindPropertyRelative("m_Index").intValue; + var index2 = b.FindPropertyRelative("m_Index").intValue; + return index1.CompareTo(index2); + }); + } + + private void ShowVersion() + { + EditorGUILayout.HelpBox(m_VersionString, MessageType.None); + } + + private void AddComponent() + { + if (GUILayout.Button(Styles.btnAddComponent)) + { + var menu = new GenericMenu(); + foreach (var type in GetMainComponentTypeNames()) + { + var title = ChartEditorHelper.GetContent(type.Name); + bool exists = !m_Chart.CanAddChartComponent(type); + if (!exists) + menu.AddItem(title, false, () => + { + m_ComponentList.AddChartComponent(type); + }); + else + { + menu.AddDisabledItem(title); + } + } + + menu.ShowAsContext(); + } + } + private void AddSerie() + { + if (GUILayout.Button(Styles.btnAddSerie)) + { + var menu = new GenericMenu(); + foreach (var type in GetSerieTypeNames()) + { + var title = ChartEditorHelper.GetContent(type.Name); + if (m_Chart.CanAddSerie(type)) + { + menu.AddItem(title, false, () => + { + m_SerieList.AddSerie(type); + }); + } + else + { + menu.AddDisabledItem(title); + } + } + menu.ShowAsContext(); + } + } + + private List<Type> GetMainComponentTypeNames() + { + var list = new List<Type>(); + var typeMap = RuntimeUtil.GetAllTypesDerivedFrom<MainComponent>(); + foreach (var kvp in typeMap) + { + var type = kvp; + if (RuntimeUtil.HasSubclass(type)) continue; + + if (type.IsDefined(typeof(ComponentHandlerAttribute), false)) + { + var attribute = type.GetAttribute<ComponentHandlerAttribute>(); + if (attribute != null && attribute.handler != null) + list.Add(type); + } + else + { + list.Add(type); + } + } + list.Sort((a, b) => { return a.Name.CompareTo(b.Name); }); + return list; + } + private List<Type> GetSerieTypeNames() + { + var list = new List<Type>(); + var typeMap = RuntimeUtil.GetAllTypesDerivedFrom<Serie>(); + foreach (var kvp in typeMap) + { + var type = kvp; + if (type.IsDefined(typeof(SerieHandlerAttribute), false)) + list.Add(type); + } + list.Sort((a, b) => { return a.Name.CompareTo(b.Name); }); + return list; + } + + private void CheckWarning() + { + if (m_Chart.HasChartComponent<XAxis>() && m_Chart.HasChartComponent<YAxis>()) + { + if (GUILayout.Button(Styles.btnCovertXYAxis)) + m_Chart.CovertXYAxis(0); + } + if (GUILayout.Button(Styles.btnRebuildChartObject)) + { + m_Chart.RebuildChartObject(); + } + if (m_CheckWarning) + { + EditorGUILayout.BeginHorizontal(); + if (GUILayout.Button(Styles.btnCheckWarning)) + { + m_CheckWarning = true; + m_Chart.CheckWarning(); + } + if (GUILayout.Button(Styles.btnHideWarning)) + { + m_CheckWarning = false; + } + EditorGUILayout.EndHorizontal(); + sb.Length = 0; + sb.AppendFormat("v{0}", XChartsMgr.fullVersion); + if (!string.IsNullOrEmpty(m_Chart.warningInfo)) + { + sb.AppendLine(); + sb.Append(m_Chart.warningInfo); + } + else + { + sb.AppendLine(); + sb.Append("Perfect! No warning!"); + } + EditorGUILayout.HelpBox(sb.ToString(), MessageType.Warning); + } + else + { + if (GUILayout.Button(Styles.btnCheckWarning)) + { + m_CheckWarning = true; + m_Chart.CheckWarning(); + } + + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Charts/BaseChartEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Charts/BaseChartEditor.cs.meta new file mode 100644 index 0000000..2916db0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Charts/BaseChartEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d7f1cff1e5bae244a872040086b1cfa8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents.meta new file mode 100644 index 0000000..b2aa5c5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7861b681552cf4bc9b2c2f16d25c628c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/AnimationDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/AnimationDrawer.cs new file mode 100644 index 0000000..8d7a59c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/AnimationDrawer.cs @@ -0,0 +1,29 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(AnimationStyle), true)] + public class AnimationDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "Animation"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Enable", true)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_Type"); + PropertyField(prop, "m_FadeInDuration"); + PropertyField(prop, "m_FadeInDelay"); + PropertyField(prop, "m_FadeOutDuration"); + PropertyField(prop, "m_FadeOutDelay"); + PropertyField(prop, "m_DataChangeEnable"); + PropertyField(prop, "m_DataChangeDuration"); + PropertyField(prop, "m_ActualDuration"); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/AnimationDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/AnimationDrawer.cs.meta new file mode 100644 index 0000000..5a9ff4d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/AnimationDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 844042f92a581474ba0491427f3fd592 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/AreaStyleDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/AreaStyleDrawer.cs new file mode 100644 index 0000000..25aa9bc --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/AreaStyleDrawer.cs @@ -0,0 +1,27 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(AreaStyle), true)] + public class AreaStyleDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "AreaStyle"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", true)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_Origin"); + PropertyField(prop, "m_Color"); + PropertyField(prop, "m_ToColor"); + PropertyField(prop, "m_HighlightColor"); + PropertyField(prop, "m_HighlightToColor"); + PropertyField(prop, "m_Opacity"); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/AreaStyleDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/AreaStyleDrawer.cs.meta new file mode 100644 index 0000000..78e98cf --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/AreaStyleDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c51fd822c8be44490832d81652d1aef5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/BasePropertyDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/BasePropertyDrawer.cs new file mode 100644 index 0000000..77ae7b0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/BasePropertyDrawer.cs @@ -0,0 +1,211 @@ +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +namespace XCharts.Editor +{ + public delegate void DelegateMenuAction(Vector2 postion); + public class BasePropertyDrawer : PropertyDrawer + { + protected int m_Index; + protected int m_DataSize; + protected float m_DefaultWidth; + protected string m_DisplayName; + protected string m_KeyName; + protected Rect m_DrawRect; + protected Dictionary<string, float> m_Heights = new Dictionary<string, float>(); + protected Dictionary<string, bool> m_PropToggles = new Dictionary<string, bool>(); + protected Dictionary<string, bool> m_DataToggles = new Dictionary<string, bool>(); + + public virtual string ClassName { get { return ""; } } + public virtual List<string> IngorePropertys { get { return new List<string> { }; } } + + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + m_DrawRect = pos; + m_DrawRect.height = EditorGUIUtility.singleLineHeight; + m_DefaultWidth = pos.width; + var list = prop.displayName.Split(' '); + if (list.Length > 0) + { + if (!int.TryParse(list[list.Length - 1], out m_Index)) + { + m_Index = 0; + m_DisplayName = prop.displayName; + m_KeyName = prop.propertyPath + "_" + m_Index; + } + else + { + m_DisplayName = ClassName + " " + m_Index; + m_KeyName = prop.propertyPath + "_" + m_Index; + } + } + else + { + m_DisplayName = prop.displayName; + } + if (!m_PropToggles.ContainsKey(m_KeyName)) + { + m_PropToggles.Add(m_KeyName, false); + } + if (!m_DataToggles.ContainsKey(m_KeyName)) + { + m_DataToggles.Add(m_KeyName, false); + } + if (!m_Heights.ContainsKey(m_KeyName)) + { + m_Heights.Add(m_KeyName, 0); + } + else + { + m_Heights[m_KeyName] = 0; + } + } + + private string GetKeyName(SerializedProperty prop) + { + var index = 0; + var list = prop.displayName.Split(' '); + if (list.Length > 0) + { + int.TryParse(list[list.Length - 1], out index); + } + return prop.propertyPath + "_" + index; + } + + protected void AddSingleLineHeight() + { + m_Heights[m_KeyName] += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; + m_DrawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; + } + + protected void AddHeight(float height) + { + m_Heights[m_KeyName] += height; + m_DrawRect.y += height; + } + + protected void PropertyListField(SerializedProperty prop, string relativePropName, bool showOrder = true) + { + if (IngorePropertys.Contains(relativePropName)) return; + var height = m_Heights[m_KeyName]; + var toggleKeyName = m_KeyName + relativePropName; + m_DataToggles[toggleKeyName] = ChartEditorHelper.MakeListWithFoldout(ref m_DrawRect, ref height, + prop.FindPropertyRelative(relativePropName), + m_DataToggles.ContainsKey(toggleKeyName) && m_DataToggles[toggleKeyName], showOrder, true); + m_Heights[m_KeyName] = height; + } + + protected void PropertyField(SerializedProperty prop, string relativePropName) + { + if (IngorePropertys.Contains(relativePropName)) return; + if (!ChartEditorHelper.PropertyField(ref m_DrawRect, m_Heights, m_KeyName, prop, relativePropName)) + { + Debug.LogError("PropertyField ERROR:" + prop.displayName + ", " + relativePropName); + } + } + + protected void PropertyFieldLimitMin(SerializedProperty prop, string relativePropName, float minValue) + { + if (IngorePropertys.Contains(relativePropName)) return; + if (!ChartEditorHelper.PropertyFieldWithMinValue(ref m_DrawRect, m_Heights, m_KeyName, prop, + relativePropName, minValue)) + { + Debug.LogError("PropertyField ERROR:" + prop.displayName + ", " + relativePropName); + } + } + protected void PropertyFieldLimitMax(SerializedProperty prop, string relativePropName, float maxValue) + { + if (IngorePropertys.Contains(relativePropName)) return; + if (!ChartEditorHelper.PropertyFieldWithMaxValue(ref m_DrawRect, m_Heights, m_KeyName, prop, + relativePropName, maxValue)) + { + Debug.LogError("PropertyField ERROR:" + prop.displayName + ", " + relativePropName); + } + } + + protected void PropertyField(SerializedProperty prop, SerializedProperty relativeProp) + { + if (!ChartEditorHelper.PropertyField(ref m_DrawRect, m_Heights, m_KeyName, relativeProp)) + { + Debug.LogError("PropertyField ERROR:" + prop.displayName + ", " + relativeProp); + } + } + + protected void PropertyTwoFiled(SerializedProperty prop, string relativeListProp, string labelName = null) + { + PropertyTwoFiled(prop, prop.FindPropertyRelative(relativeListProp), labelName); + } + protected void PropertyTwoFiled(SerializedProperty prop, SerializedProperty relativeListProp, + string labelName = null) + { + if (string.IsNullOrEmpty(labelName)) + { + labelName = relativeListProp.displayName; + } + ChartEditorHelper.MakeTwoField(ref m_DrawRect, m_DefaultWidth, relativeListProp, labelName); + m_Heights[m_KeyName] += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; + } + + protected bool MakeFoldout(SerializedProperty prop, string relativePropName) + { + if (string.IsNullOrEmpty(relativePropName)) + { + return ChartEditorHelper.MakeFoldout(ref m_DrawRect, m_Heights, m_PropToggles, m_KeyName, + m_DisplayName, null); + } + else + { + var relativeProp = prop.FindPropertyRelative(relativePropName); + return ChartEditorHelper.MakeFoldout(ref m_DrawRect, m_Heights, m_PropToggles, m_KeyName, + m_DisplayName, relativeProp); + } + } + protected bool MakeComponentFoldout(SerializedProperty prop, string relativePropName, bool relativePropEnable, + params HeaderMenuInfo[] menus) + { + if (string.IsNullOrEmpty(relativePropName)) + { + return ChartEditorHelper.MakeComponentFoldout(ref m_DrawRect, m_Heights, m_PropToggles, m_KeyName, + m_DisplayName, null, null, relativePropEnable, menus); + } + else + { + var relativeProp = prop.FindPropertyRelative(relativePropName); + return ChartEditorHelper.MakeComponentFoldout(ref m_DrawRect, m_Heights, m_PropToggles, m_KeyName, + m_DisplayName, relativeProp, null, relativePropEnable, menus); + } + } + + protected bool MakeComponentFoldout(SerializedProperty prop, string relativePropName, string relativePropName2, + bool relativePropEnable, params HeaderMenuInfo[] menus) + { + if (string.IsNullOrEmpty(relativePropName)) + { + return ChartEditorHelper.MakeComponentFoldout(ref m_DrawRect, m_Heights, m_PropToggles, m_KeyName, + m_DisplayName, null, null, relativePropEnable, menus); + } + else + { + var relativeProp = prop.FindPropertyRelative(relativePropName); + var relativeProp2 = prop.FindPropertyRelative(relativePropName2); + return ChartEditorHelper.MakeComponentFoldout(ref m_DrawRect, m_Heights, m_PropToggles, m_KeyName, + m_DisplayName, relativeProp, relativeProp2, relativePropEnable, menus); + } + } + + protected virtual void DrawExtendeds(SerializedProperty prop) { } + + public override float GetPropertyHeight(SerializedProperty prop, GUIContent label) + { + var key = GetKeyName(prop); + if (m_Heights.ContainsKey(key)) return m_Heights[key] + GetExtendedHeight(); + else return EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; + } + + protected virtual float GetExtendedHeight() + { + return 0; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/BasePropertyDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/BasePropertyDrawer.cs.meta new file mode 100644 index 0000000..51f7228 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/BasePropertyDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4e5a04ce1f0a841b9b966a6d74de00e4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/CommentItemDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/CommentItemDrawer.cs new file mode 100644 index 0000000..962ba61 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/CommentItemDrawer.cs @@ -0,0 +1,26 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(CommentItem), true)] + public class CommentItemDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "CommentItem"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", "m_Content", true)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_Content"); + PropertyField(prop, "m_Position"); + //PropertyField(prop, "m_MarkRect"); + //PropertyField(prop, "m_MarkStyle"); + PropertyField(prop, "m_LabelStyle"); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/CommentItemDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/CommentItemDrawer.cs.meta new file mode 100644 index 0000000..dc4966b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/CommentItemDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d485d6a729a1449cdb5032f380fba70f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/CommentMarkStyleDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/CommentMarkStyleDrawer.cs new file mode 100644 index 0000000..126d7cd --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/CommentMarkStyleDrawer.cs @@ -0,0 +1,22 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(CommentMarkStyle), true)] + public class CommentMarkStyleDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "MarkStyle"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", true)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_LineStyle"); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/CommentMarkStyleDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/CommentMarkStyleDrawer.cs.meta new file mode 100644 index 0000000..d54117b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/CommentMarkStyleDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d74ed458b24774b129611ed816b6b6cd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ComponentThemeDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ComponentThemeDrawer.cs new file mode 100644 index 0000000..06bec27 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ComponentThemeDrawer.cs @@ -0,0 +1,163 @@ +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; +#if dUI_TextMeshPro +using TMPro; +#endif +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(ComponentTheme), true)] + public class ComponentThemeDrawer : BasePropertyDrawer + { + public override string ClassName { get { return ""; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "", true)) + { + ++EditorGUI.indentLevel; +#if dUI_TextMeshPro + PropertyField(prop, "m_TMPFont"); +#else + PropertyField(prop, "m_Font"); +#endif + PropertyField(prop, "m_FontSize"); + PropertyField(prop, "m_TextColor"); + DrawExtendeds(prop); + --EditorGUI.indentLevel; + } + } + } + + [CustomPropertyDrawer(typeof(BaseAxisTheme), true)] + public class BaseAxisThemeDrawer : ComponentThemeDrawer + { + public override string ClassName { get { return "Axis"; } } + protected override void DrawExtendeds(SerializedProperty prop) + { + base.DrawExtendeds(prop); + PropertyField(prop, "m_LineType"); + PropertyField(prop, "m_LineWidth"); + PropertyField(prop, "m_LineLength"); + PropertyField(prop, "m_LineColor"); + PropertyField(prop, "m_SplitLineType"); + PropertyField(prop, "m_SplitLineWidth"); + PropertyField(prop, "m_SplitLineLength"); + PropertyField(prop, "m_SplitLineColor"); + PropertyField(prop, "m_TickWidth"); + PropertyField(prop, "m_TickLength"); + PropertyField(prop, "m_TickColor"); + PropertyField(prop, "m_SplitAreaColors"); + } + } + + [CustomPropertyDrawer(typeof(AxisTheme), true)] + public class AxisThemeDrawer : BaseAxisThemeDrawer + { + public override string ClassName { get { return "Axis"; } } + } + + [CustomPropertyDrawer(typeof(RadiusAxisTheme), true)] + public class RadiusAxisThemeDrawer : BaseAxisThemeDrawer + { + public override string ClassName { get { return "Radius Axis"; } } + public override List<string> IngorePropertys + { + get + { + return new List<string> + { + "m_TextBackgroundColor", + "m_LineLength", + "m_SplitLineLength", + }; + } + } + } + + [CustomPropertyDrawer(typeof(DataZoomTheme), true)] + public class DataZoomThemeDrawer : ComponentThemeDrawer + { + public override string ClassName { get { return "DataZoom"; } } + protected override void DrawExtendeds(SerializedProperty prop) + { + base.DrawExtendeds(prop); + PropertyField(prop, "m_BackgroundColor"); + PropertyField(prop, "m_BorderWidth"); + PropertyField(prop, "m_BorderColor"); + PropertyField(prop, "m_DataLineWidth"); + PropertyField(prop, "m_DataLineColor"); + PropertyField(prop, "m_FillerColor"); + PropertyField(prop, "m_DataAreaColor"); + + } + } + + [CustomPropertyDrawer(typeof(LegendTheme), true)] + public class LegendThemeDrawer : ComponentThemeDrawer + { + public override string ClassName { get { return "Legend"; } } + protected override void DrawExtendeds(SerializedProperty prop) + { + base.DrawExtendeds(prop); + PropertyField(prop, "m_UnableColor"); + } + } + + [CustomPropertyDrawer(typeof(TooltipTheme), true)] + public class TooltipThemeDrawer : ComponentThemeDrawer + { + public override string ClassName { get { return "Tooltip"; } } + protected override void DrawExtendeds(SerializedProperty prop) + { + base.DrawExtendeds(prop); + PropertyField(prop, "m_LineType"); + PropertyField(prop, "m_LineWidth"); + PropertyField(prop, "m_LineColor"); + PropertyField(prop, "m_AreaColor"); + PropertyField(prop, "m_LabelTextColor"); + PropertyField(prop, "m_LabelBackgroundColor"); + } + } + + [CustomPropertyDrawer(typeof(VisualMapTheme), true)] + public class VisualMapThemeDrawer : ComponentThemeDrawer + { + public override string ClassName { get { return "VisualMap"; } } + protected override void DrawExtendeds(SerializedProperty prop) + { + base.DrawExtendeds(prop); + // PropertyField(prop, "m_BorderWidth"); + // PropertyField(prop, "m_BorderColor"); + // PropertyField(prop, "m_BackgroundColor"); + } + } + + [CustomPropertyDrawer(typeof(SerieTheme), true)] + public class SerieThemeDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "Serie"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "", true)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_LineWidth"); + PropertyField(prop, "m_LineSymbolSize"); + PropertyField(prop, "m_ScatterSymbolSize"); + PropertyField(prop, "m_SelectedRate"); + PropertyField(prop, "m_PieTooltipExtraRadius"); + PropertyField(prop, "m_PieSelectedOffset"); + PropertyField(prop, "m_CandlestickColor"); + PropertyField(prop, "m_CandlestickColor0"); + PropertyField(prop, "m_CandlestickBorderColor"); + PropertyField(prop, "m_CandlestickBorderColor0"); + PropertyField(prop, "m_CandlestickBorderWidth"); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ComponentThemeDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ComponentThemeDrawer.cs.meta new file mode 100644 index 0000000..5ddef75 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ComponentThemeDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c7937a2a7addd42299e960c5cfb75e34 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/DebugInfoDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/DebugInfoDrawer.cs new file mode 100644 index 0000000..af03faf --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/DebugInfoDrawer.cs @@ -0,0 +1,25 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(DebugInfo), true)] + public class DebugInfoDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "Debug"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", false)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_FoldSeries"); + PropertyField(prop, "m_ShowDebugInfo"); + PropertyField(prop, "m_ShowAllChartObject"); + PropertyField(prop, "m_LabelStyle"); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/DebugInfoDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/DebugInfoDrawer.cs.meta new file mode 100644 index 0000000..34acfda --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/DebugInfoDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 99bd61acea264400fb4747b17a2731e4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/EmphasisStyleDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/EmphasisStyleDrawer.cs new file mode 100644 index 0000000..89377f3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/EmphasisStyleDrawer.cs @@ -0,0 +1,43 @@ +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(Emphasis), true)] + public class EmphasisDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "Emphasis"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", true)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_Label"); + PropertyField(prop, "m_LabelLine"); + PropertyField(prop, "m_ItemStyle"); + --EditorGUI.indentLevel; + } + } + } + + [CustomPropertyDrawer(typeof(EmphasisItemStyle), true)] + public class EmphasisItemStyleDrawer : ItemStyleDrawer + { + public override string ClassName { get { return "EmphasisItemStyle"; } } + } + + [CustomPropertyDrawer(typeof(EmphasisLabelStyle), true)] + public class EmphasisLabelStyleDrawer : LabelStyleDrawer + { + public override string ClassName { get { return "EmphasisLabel"; } } + } + + [CustomPropertyDrawer(typeof(EmphasisLabelLine), true)] + public class EmphasisLabelLineDrawer : LabelLineDrawer + { + public override string ClassName { get { return "EmphasisLabelLine"; } } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/EmphasisStyleDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/EmphasisStyleDrawer.cs.meta new file mode 100644 index 0000000..a6cdfc4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/EmphasisStyleDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7de9b5e4c5d474fdd88ebb89f0924305 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/IconStyleDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/IconStyleDrawer.cs new file mode 100644 index 0000000..2f2e1a6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/IconStyleDrawer.cs @@ -0,0 +1,30 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(IconStyle), true)] + public class IconStyleDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "IconStyle"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", true)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_Layer"); + PropertyField(prop, "m_Align"); + PropertyField(prop, "m_Sprite"); + PropertyField(prop, "m_Type"); + PropertyField(prop, "m_Color"); + PropertyField(prop, "m_Width"); + PropertyField(prop, "m_Height"); + PropertyField(prop, "m_Offset"); + PropertyField(prop, "m_AutoHideWhenLabelEmpty"); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/IconStyleDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/IconStyleDrawer.cs.meta new file mode 100644 index 0000000..fb19ace --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/IconStyleDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9cae26ad61d224d8a97d41bdc52ec0b7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ImageStyleDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ImageStyleDrawer.cs new file mode 100644 index 0000000..8ad71d4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ImageStyleDrawer.cs @@ -0,0 +1,27 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(ImageStyle), true)] + public class ImageStyleDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "ImageStyle"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", true)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_Sprite"); + PropertyField(prop, "m_Type"); + PropertyField(prop, "m_AutoColor"); + PropertyField(prop, "m_Color"); + PropertyField(prop, "m_Width"); + PropertyField(prop, "m_Height"); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ImageStyleDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ImageStyleDrawer.cs.meta new file mode 100644 index 0000000..6907fec --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ImageStyleDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4649856b17dfd4f628eb975040fb791c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ItemStyleDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ItemStyleDrawer.cs new file mode 100644 index 0000000..50978b0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ItemStyleDrawer.cs @@ -0,0 +1,39 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(ItemStyle), true)] + public class ItemStyleDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "ItemStyle"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", false)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_Color"); + PropertyField(prop, "m_Color0"); + PropertyField(prop, "m_ToColor"); + PropertyField(prop, "m_ToColor2"); + PropertyField(prop, "m_BackgroundColor"); + PropertyField(prop, "m_BackgroundWidth"); + PropertyField(prop, "m_CenterColor"); + PropertyField(prop, "m_CenterGap"); + PropertyField(prop, "m_BorderWidth"); + PropertyField(prop, "m_BorderGap"); + PropertyField(prop, "m_BorderColor"); + PropertyField(prop, "m_BorderColor0"); + PropertyField(prop, "m_BorderToColor"); + PropertyField(prop, "m_Opacity"); + PropertyField(prop, "m_ItemMarker"); + PropertyField(prop, "m_ItemFormatter"); + PropertyField(prop, "m_NumericFormatter"); + PropertyListField(prop, "m_CornerRadius", true); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ItemStyleDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ItemStyleDrawer.cs.meta new file mode 100644 index 0000000..78d018c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ItemStyleDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f40830a3b05574467ad0d8873c6c8790 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LabelLineDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LabelLineDrawer.cs new file mode 100644 index 0000000..dcd2d6c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LabelLineDrawer.cs @@ -0,0 +1,30 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(LabelLine), true)] + public class LabelLineDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "LabelLine"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", true)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_LineType"); + PropertyField(prop, "m_LineColor"); + PropertyField(prop, "m_LineAngle"); + PropertyField(prop, "m_LineWidth"); + PropertyField(prop, "m_LineGap"); + PropertyField(prop, "m_LineLength1"); + PropertyField(prop, "m_LineLength2"); + PropertyField(prop, "m_StartSymbol"); + PropertyField(prop, "m_EndSymbol"); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LabelLineDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LabelLineDrawer.cs.meta new file mode 100644 index 0000000..72f2076 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LabelLineDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 29a267a45c6e64454a982032947046c6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LabelStyleDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LabelStyleDrawer.cs new file mode 100644 index 0000000..103b345 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LabelStyleDrawer.cs @@ -0,0 +1,40 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(LabelStyle), true)] + public class LabelStyleDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "Label"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", true)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_Position"); + PropertyField(prop, "m_Formatter"); + PropertyField(prop, "m_NumericFormatter"); + PropertyField(prop, "m_AutoOffset"); + PropertyField(prop, "m_Offset"); + PropertyField(prop, "m_Distance"); + PropertyField(prop, "m_Rotate"); + PropertyField(prop, "m_Width"); + PropertyField(prop, "m_Height"); + PropertyField(prop, "m_Icon"); + PropertyField(prop, "m_Background"); + PropertyField(prop, "m_TextStyle"); + PropertyField(prop, "m_TextPadding"); + --EditorGUI.indentLevel; + } + } + } + + [CustomPropertyDrawer(typeof(EndLabelStyle), true)] + public class EndLabelStyleDrawer : LabelStyleDrawer + { + public override string ClassName { get { return "End Label"; } } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LabelStyleDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LabelStyleDrawer.cs.meta new file mode 100644 index 0000000..390d611 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LabelStyleDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: abd47f4015a9840b9acae8efb21db7c3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LevelStyleDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LevelStyleDrawer.cs new file mode 100644 index 0000000..8879a5e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LevelStyleDrawer.cs @@ -0,0 +1,37 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(LevelStyle), true)] + public class LevelStyleDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "LevelStyle"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", true)) + { + ++EditorGUI.indentLevel; + PropertyListField(prop, "m_Levels"); + --EditorGUI.indentLevel; + } + } + } + + [CustomPropertyDrawer(typeof(Level), true)] + public class LevelDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "Level"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + ++EditorGUI.indentLevel; + PropertyField(prop, "m_Label"); + PropertyField(prop, "m_UpperLabel"); + PropertyField(prop, "m_ItemStyle"); + --EditorGUI.indentLevel; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LevelStyleDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LevelStyleDrawer.cs.meta new file mode 100644 index 0000000..37b74c7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LevelStyleDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7a1ff119a53a44e5abe2ef6f57816aa6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LineArrowDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LineArrowDrawer.cs new file mode 100644 index 0000000..031498f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LineArrowDrawer.cs @@ -0,0 +1,43 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(ArrowStyle), true)] + public class ArrowDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "Arrow"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "", true)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_Width"); + PropertyField(prop, "m_Height"); + PropertyField(prop, "m_Offset"); + PropertyField(prop, "m_Dent"); + PropertyField(prop, "m_Color"); + --EditorGUI.indentLevel; + } + } + } + + [CustomPropertyDrawer(typeof(LineArrow), true)] + public class LineArrowStyleDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "LineArrow"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", true)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_Position"); + PropertyField(prop, "m_Arrow"); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LineArrowDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LineArrowDrawer.cs.meta new file mode 100644 index 0000000..3c9213f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LineArrowDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 817d27d232da94f6c9dab9e3d0c22631 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LineDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LineDrawer.cs new file mode 100644 index 0000000..b3d4896 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LineDrawer.cs @@ -0,0 +1,66 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(BaseLine), true)] + public class BaseLineDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "Line"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", true)) + { + ++EditorGUI.indentLevel; + DrawExtendeds(prop); + PropertyField(prop, "m_LineStyle"); + --EditorGUI.indentLevel; + } + } + } + + [CustomPropertyDrawer(typeof(AxisLine), true)] + public class AxisLineDrawer : BaseLineDrawer + { + public override string ClassName { get { return "AxisLine"; } } + protected override void DrawExtendeds(SerializedProperty prop) + { + base.DrawExtendeds(prop); + PropertyField(prop, "m_OnZero"); + PropertyField(prop, "m_ShowArrow"); + PropertyField(prop, "m_Arrow"); + } + } + + [CustomPropertyDrawer(typeof(AxisSplitLine), true)] + public class AxisSplitLineDrawer : BaseLineDrawer + { + public override string ClassName { get { return "SplitLine"; } } + protected override void DrawExtendeds(SerializedProperty prop) + { + base.DrawExtendeds(prop); + PropertyField(prop, "m_Interval"); + PropertyField(prop, "m_Distance"); + PropertyField(prop, "m_AutoColor"); + } + } + + [CustomPropertyDrawer(typeof(AxisTick), true)] + public class AxisTickDrawer : BaseLineDrawer + { + public override string ClassName { get { return "AxisTick"; } } + protected override void DrawExtendeds(SerializedProperty prop) + { + base.DrawExtendeds(prop); + PropertyField(prop, "m_AlignWithLabel"); + PropertyField(prop, "m_Inside"); + PropertyField(prop, "m_ShowStartTick"); + PropertyField(prop, "m_ShowEndTick"); + PropertyField(prop, "m_SplitNumber"); + PropertyField(prop, "m_Distance"); + PropertyField(prop, "m_AutoColor"); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LineDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LineDrawer.cs.meta new file mode 100644 index 0000000..5830eeb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LineDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2e69f60c7d200439abcf3407c15f8c4d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LineStyleDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LineStyleDrawer.cs new file mode 100644 index 0000000..17d6fac --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LineStyleDrawer.cs @@ -0,0 +1,28 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(LineStyle), true)] + public class LineStyleDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "LineStyle"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", true)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_Type"); + PropertyField(prop, "m_Color"); + PropertyField(prop, "m_ToColor"); + PropertyField(prop, "m_ToColor2"); + PropertyField(prop, "m_Width"); + PropertyField(prop, "m_Length"); + PropertyField(prop, "m_Opacity"); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LineStyleDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LineStyleDrawer.cs.meta new file mode 100644 index 0000000..e4bda69 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LineStyleDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4a36d5076e1414d619b53d1ef998806f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LocationDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LocationDrawer.cs new file mode 100644 index 0000000..2cfe596 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LocationDrawer.cs @@ -0,0 +1,25 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(Location), true)] + public class LocationDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "Location"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Align", true)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_Top"); + PropertyField(prop, "m_Bottom"); + PropertyField(prop, "m_Left"); + PropertyField(prop, "m_Right"); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LocationDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LocationDrawer.cs.meta new file mode 100644 index 0000000..4b0c2f5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/LocationDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 34092595791508d4b94b074a8788c388 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/SerieSymbolDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/SerieSymbolDrawer.cs new file mode 100644 index 0000000..0f3e214 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/SerieSymbolDrawer.cs @@ -0,0 +1,52 @@ +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(SerieSymbol), true)] + public class SerieSymbolDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "Symbol"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", true)) + { + ++EditorGUI.indentLevel; + var type = (SymbolType) prop.FindPropertyRelative("m_Type").enumValueIndex; + PropertyField(prop, "m_Type"); + if (type == SymbolType.Custom) + { + PropertyField(prop, "m_Image"); + PropertyField(prop, "m_ImageType"); + PropertyField(prop, "m_Width"); + // PropertyField(prop, "m_Height"); + // PropertyField(prop, "m_Offset"); + } + PropertyField(prop, "m_Gap"); + PropertyField(prop, "m_SizeType"); + switch ((SymbolSizeType) prop.FindPropertyRelative("m_SizeType").enumValueIndex) + { + case SymbolSizeType.Custom: + PropertyField(prop, "m_Size"); + PropertyField(prop, "m_SelectedSize"); + break; + case SymbolSizeType.FromData: + PropertyField(prop, "m_DataIndex"); + PropertyField(prop, "m_DataScale"); + PropertyField(prop, "m_SelectedDataScale"); + break; + case SymbolSizeType.Function: + break; + } + PropertyField(prop, "m_StartIndex"); + PropertyField(prop, "m_Interval"); + PropertyField(prop, "m_ForceShowLast"); + PropertyField(prop, "m_Repeat"); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/SerieSymbolDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/SerieSymbolDrawer.cs.meta new file mode 100644 index 0000000..f780f98 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/SerieSymbolDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8a164822bc0fd4e5291f00c5a4ee86f6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/SettingsDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/SettingsDrawer.cs new file mode 100644 index 0000000..ac79899 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/SettingsDrawer.cs @@ -0,0 +1,36 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(Settings), true)] + public class SettingsDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "Settings"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", false, new HeaderMenuInfo("Reset", () => + { + var chart = prop.serializedObject.targetObject as BaseChart; + chart.settings.Reset(); + }))) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_ReversePainter"); + PropertyField(prop, "m_MaxPainter"); + PropertyField(prop, "m_BasePainterMaterial"); + PropertyField(prop, "m_SeriePainterMaterial"); + PropertyField(prop, "m_TopPainterMaterial"); + PropertyField(prop, "m_LineSmoothStyle"); + PropertyField(prop, "m_LineSmoothness"); + PropertyField(prop, "m_LineSegmentDistance"); + PropertyField(prop, "m_CicleSmoothness"); + PropertyField(prop, "m_LegendIconLineWidth"); + PropertyListField(prop, "m_LegendIconCornerRadius", true); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/SettingsDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/SettingsDrawer.cs.meta new file mode 100644 index 0000000..11a0c6c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/SettingsDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 70536a1ba3af245e7ad3b11e97682d8d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/SymbolStyleDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/SymbolStyleDrawer.cs new file mode 100644 index 0000000..d30ac90 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/SymbolStyleDrawer.cs @@ -0,0 +1,35 @@ +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(SymbolStyle), true)] + public class SymbolStyleDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "Symbol"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", true)) + { + ++EditorGUI.indentLevel; + var type = (SymbolType) prop.FindPropertyRelative("m_Type").enumValueIndex; + PropertyField(prop, "m_Type"); + if (type == SymbolType.Custom) + { + PropertyField(prop, "m_Image"); + PropertyField(prop, "m_ImageType"); + PropertyField(prop, "m_Width"); + PropertyField(prop, "m_Height"); + // PropertyField(prop, "m_Offset"); + } + PropertyField(prop, "m_Color"); + PropertyField(prop, "m_Size"); + PropertyField(prop, "m_Gap"); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/SymbolStyleDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/SymbolStyleDrawer.cs.meta new file mode 100644 index 0000000..f8294f2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/SymbolStyleDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 72d557cf0b7134953b457ab973364520 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TextLimitDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TextLimitDrawer.cs new file mode 100644 index 0000000..cbc0bbf --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TextLimitDrawer.cs @@ -0,0 +1,24 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(TextLimit), true)] + public class TextLimitDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "TextLimit"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Enable", true)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_MaxWidth"); + PropertyField(prop, "m_Gap"); + PropertyField(prop, "m_Suffix"); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TextLimitDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TextLimitDrawer.cs.meta new file mode 100644 index 0000000..708bf5d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TextLimitDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 842d3986d1c1747d8b0668649e8b1a0e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TextPaddingDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TextPaddingDrawer.cs new file mode 100644 index 0000000..608605d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TextPaddingDrawer.cs @@ -0,0 +1,25 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(TextPadding), true)] + public class TextPaddingDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "Padding"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", true)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_Top"); + PropertyField(prop, "m_Right"); + PropertyField(prop, "m_Bottom"); + PropertyField(prop, "m_Left"); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TextPaddingDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TextPaddingDrawer.cs.meta new file mode 100644 index 0000000..dccf74b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TextPaddingDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 46cc25f4c9fc846938a06cf3b8fc75bd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TextStyleDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TextStyleDrawer.cs new file mode 100644 index 0000000..edaf6d0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TextStyleDrawer.cs @@ -0,0 +1,43 @@ +using UnityEditor; +using UnityEngine; +#if dUI_TextMeshPro +using TMPro; +#endif +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(TextStyle), true)] + public class TextStyleDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "TextStyle"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", true)) + { + ++EditorGUI.indentLevel; +#if dUI_TextMeshPro + PropertyField(prop, "m_TMPFont"); +#else + PropertyField(prop, "m_Font"); +#endif + PropertyField(prop, "m_Rotate"); + PropertyField(prop, "m_AutoColor"); + PropertyField(prop, "m_Color"); + PropertyField(prop, "m_FontSize"); + PropertyField(prop, "m_LineSpacing"); +#if dUI_TextMeshPro + PropertyField(prop, "m_TMPFontStyle"); + PropertyField(prop, "m_TMPAlignment"); +#else + PropertyField(prop, "m_FontStyle"); + PropertyField(prop, "m_Alignment"); + PropertyField(prop, "m_AutoAlign"); + PropertyField(prop, "m_AutoWrap"); +#endif + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TextStyleDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TextStyleDrawer.cs.meta new file mode 100644 index 0000000..faa64c5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TextStyleDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f14c425fb2bff44f2bf9ddb8d6ff1741 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ThemeDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ThemeDrawer.cs new file mode 100644 index 0000000..573fb02 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ThemeDrawer.cs @@ -0,0 +1,136 @@ +using System.IO; +using UnityEditor; +using UnityEngine; +#if dUI_TextMeshPro +using TMPro; +#endif +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(ThemeStyle), true)] + public class ThemeStyleDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "Theme"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + var defaultWidth = pos.width; + var defaultX = pos.x; + var chart = prop.serializedObject.targetObject as BaseChart; + if (MakeComponentFoldout(prop, "m_Show", false, new HeaderMenuInfo("Reset|Reset to theme default color", () => + { + chart.theme.sharedTheme.ResetTheme(); + chart.RefreshAllComponent(); + }), new HeaderMenuInfo("Export|Export theme to asset for a new theme", () => + { + ExportThemeWindow.target = chart; + EditorWindow.GetWindow(typeof(ExportThemeWindow)); + }), new HeaderMenuInfo("Sync color to custom|Sync shared theme color to custom color", () => + { + chart.theme.SyncSharedThemeColorToCustom(); + }))) + { + ++EditorGUI.indentLevel; + var chartNameList = XCThemeMgr.GetAllThemeNames(); + var lastIndex = chartNameList.IndexOf(chart.theme.themeName); + var y = pos.y + EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; + var selectedIndex = EditorGUI.Popup(new Rect(pos.x, y, pos.width, EditorGUIUtility.singleLineHeight), + "Shared Theme", lastIndex, chartNameList.ToArray()); + AddSingleLineHeight(); + if (lastIndex != selectedIndex) + { + XCThemeMgr.SwitchTheme(chart, chartNameList[selectedIndex]); + } + PropertyField(prop, "m_SharedTheme"); + PropertyField(prop, "m_TransparentBackground"); + PropertyField(prop, "m_EnableCustomTheme"); + using(new EditorGUI.DisabledScope(!prop.FindPropertyRelative("m_EnableCustomTheme").boolValue)) + { + PropertyField(prop, "m_CustomBackgroundColor"); + PropertyField(prop, "m_CustomColorPalette"); + } + --EditorGUI.indentLevel; + } + } + + private void AddPropertyField(Rect pos, SerializedProperty prop, ref float y) + { + float height = EditorGUI.GetPropertyHeight(prop, new GUIContent(prop.displayName), true); + EditorGUI.PropertyField(new Rect(pos.x, y, pos.width, height), prop, true); + y += height + EditorGUIUtility.standardVerticalSpacing; + m_Heights[m_KeyName] += height + EditorGUIUtility.standardVerticalSpacing; + } + } + + public class ExportThemeWindow : UnityEditor.EditorWindow + { + public static BaseChart target; + private static ExportThemeWindow window; + private string m_ChartName; + static void Init() + { + window = (ExportThemeWindow) EditorWindow.GetWindow(typeof(ExportThemeWindow), false, "Export Theme", true); + window.minSize = new Vector2(600, 50); + window.maxSize = new Vector2(600, 50); + window.Show(); + } + + void OnInspectorUpdate() + { + Repaint(); + } + + private void OnGUI() + { + if (target == null) + { + Close(); + return; + } + GUILayout.Space(10); + GUILayout.Label("Input a new name for theme:"); + m_ChartName = GUILayout.TextField(m_ChartName); + + GUILayout.Space(10); + GUILayout.Label("Export path:"); + if (string.IsNullOrEmpty(m_ChartName)) + { + GUILayout.Label("Need input a new name."); + } + else + { + GUILayout.Label(XCThemeMgr.GetThemeAssetPath(m_ChartName)); + } + + GUILayout.Space(20); + if (GUILayout.Button("Export")) + { + if (string.IsNullOrEmpty(m_ChartName)) + { + ShowNotification(new GUIContent("ERROR:Need input a new name!")); + } + else if (XCThemeMgr.ContainsTheme(m_ChartName)) + { + ShowNotification(new GUIContent("ERROR:The name you entered is already in use!")); + } + else if (IsAssetsExist(XCThemeMgr.GetThemeAssetPath(m_ChartName))) + { + ShowNotification(new GUIContent("ERROR:The asset is exist! \npath=" + + XCThemeMgr.GetThemeAssetPath(m_ChartName))); + } + else + { + XCThemeMgr.ExportTheme(target.theme.sharedTheme, m_ChartName); + ShowNotification(new GUIContent("SUCCESS:The theme is exported. \npath=" + + XCThemeMgr.GetThemeAssetPath(m_ChartName))); + } + } + } + + private bool IsAssetsExist(string path) + { + return File.Exists(Application.dataPath + "/../" + path); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ThemeDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ThemeDrawer.cs.meta new file mode 100644 index 0000000..107eab6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/ThemeDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 704e7c2793bca4050821c6e0756c8316 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TitleStyleDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TitleStyleDrawer.cs new file mode 100644 index 0000000..66ad6d6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TitleStyleDrawer.cs @@ -0,0 +1,12 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomPropertyDrawer(typeof(TitleStyle), true)] + public class TitleStyleDrawer : LabelStyleDrawer + { + public override string ClassName { get { return "TitleStyle"; } } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TitleStyleDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TitleStyleDrawer.cs.meta new file mode 100644 index 0000000..ad95f9b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/ChildComponents/TitleStyleDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e451ee4c9f65a414784fd5fd9cad6ec1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents.meta new file mode 100644 index 0000000..6cc4e5e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f98ff753316eb48d58325ecd996f2a1f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/AxisEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/AxisEditor.cs new file mode 100644 index 0000000..652d0d3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/AxisEditor.cs @@ -0,0 +1,205 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [ComponentEditor(typeof(Axis))] + public class AxisEditor : MainComponentEditor<Axis> + { + public override void OnInspectorGUI() + { + var m_Type = baseProperty.FindPropertyRelative("m_Type"); + var m_LogBase = baseProperty.FindPropertyRelative("m_LogBase"); + var m_MinMaxType = baseProperty.FindPropertyRelative("m_MinMaxType"); + var type = (Axis.AxisType) m_Type.enumValueIndex; + EditorGUI.indentLevel++; + if (component is ParallelAxis) + { + PropertyField("m_ParallelIndex"); + } + else if (!(component is SingleAxis)) + { + PropertyField("m_GridIndex"); + PropertyField("m_PolarIndex"); + } + PropertyField("m_Type"); + PropertyField("m_Position"); + PropertyField("m_Offset"); + if (type == Axis.AxisType.Log) + { + PropertyField("m_LogBaseE"); + EditorGUI.BeginChangeCheck(); + PropertyField("m_LogBase"); + if (m_LogBase.floatValue <= 0 || m_LogBase.floatValue == 1) + { + m_LogBase.floatValue = 10; + } + EditorGUI.EndChangeCheck(); + } + if (type == Axis.AxisType.Value || type == Axis.AxisType.Time) + { + PropertyField("m_MinMaxType"); + Axis.AxisMinMaxType minMaxType = (Axis.AxisMinMaxType) m_MinMaxType.enumValueIndex; + switch (minMaxType) + { + case Axis.AxisMinMaxType.Default: + break; + case Axis.AxisMinMaxType.MinMax: + break; + case Axis.AxisMinMaxType.Custom: + EditorGUI.indentLevel++; + PropertyField("m_Min"); + PropertyField("m_Max"); + EditorGUI.indentLevel--; + break; + } + PropertyField("m_CeilRate"); + if (type == Axis.AxisType.Value) + { + PropertyField("m_Inverse"); + } + } + PropertyField("m_SplitNumber"); + if (type == Axis.AxisType.Category) + { + //PropertyField("m_InsertDataToHead"); + PropertyField("m_MaxCache"); + PropertyField("m_BoundaryGap"); + } + else + { + PropertyField("m_Interval"); + PropertyField("m_BoundaryGap"); + } + DrawExtendeds(); + PropertyField("m_AxisLine"); + PropertyField("m_AxisName"); + PropertyField("m_AxisTick"); + PropertyField("m_AxisLabel"); + PropertyField("m_SplitLine"); + PropertyField("m_SplitArea"); + PropertyListField("m_Icons", true); + if (type == Axis.AxisType.Category) + { + PropertyListField("m_Data", true, new HeaderMenuInfo("Import ECharts Axis Data", () => + { + PraseExternalDataEditor.UpdateData(chart, null, component as Axis); + PraseExternalDataEditor.ShowWindow(); + })); + } + EditorGUI.indentLevel--; + } + } + + [ComponentEditor(typeof(XAxis))] + public class XAxisEditor : AxisEditor + { } + + [ComponentEditor(typeof(YAxis))] + public class YAxisEditor : AxisEditor + { } + + [ComponentEditor(typeof(SingleAxis))] + public class SingleAxisEditor : AxisEditor + { + protected override void DrawExtendeds() + { + base.DrawExtendeds(); + PropertyField("m_Orient"); + PropertyField("m_Left"); + PropertyField("m_Right"); + PropertyField("m_Top"); + PropertyField("m_Bottom"); + PropertyField("m_Width"); + PropertyField("m_Height"); + } + } + + [ComponentEditor(typeof(AngleAxis))] + public class AngleAxisEditor : AxisEditor + { + protected override void DrawExtendeds() + { + base.DrawExtendeds(); + PropertyField("m_StartAngle"); + PropertyField("m_Clockwise"); + } + } + + [ComponentEditor(typeof(RadiusAxis))] + public class RadiusAxisEditor : AxisEditor + { } + + [ComponentEditor(typeof(ParallelAxis))] + public class ParallelAxisEditor : AxisEditor + { } + + [CustomPropertyDrawer(typeof(AxisLabel), true)] + public class AxisLabelDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "AxisLabel"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", true)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_Inside"); + PropertyField(prop, "m_Interval"); + + PropertyField(prop, "m_ShowAsPositiveNumber"); + PropertyField(prop, "m_OnZero"); + PropertyField(prop, "m_ShowStartLabel"); + PropertyField(prop, "m_ShowEndLabel"); + + PropertyField(prop, "m_Rotate"); + PropertyField(prop, "m_Offset"); + PropertyField(prop, "m_Distance"); + PropertyField(prop, "m_Formatter"); + PropertyField(prop, "m_NumericFormatter"); + PropertyField(prop, "m_Width"); + PropertyField(prop, "m_Height"); + PropertyField(prop, "m_Icon"); + PropertyField(prop, "m_Background"); + PropertyField(prop, "m_TextStyle"); + PropertyField(prop, "m_TextPadding"); + PropertyField(prop, "m_TextLimit"); + --EditorGUI.indentLevel; + } + } + } + + [CustomPropertyDrawer(typeof(AxisName), true)] + public class AxisNameDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "AxisName"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", true)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_Name"); + PropertyField(prop, "m_LabelStyle"); + --EditorGUI.indentLevel; + } + } + } + + [CustomPropertyDrawer(typeof(AxisSplitArea), true)] + public class AxisSplitAreaDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "SplitArea"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "m_Show", true)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_Color"); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/AxisEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/AxisEditor.cs.meta new file mode 100644 index 0000000..5ffd445 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/AxisEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2e6d7780afa9b49aa9081bf55d301955 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/BackgroundEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/BackgroundEditor.cs new file mode 100644 index 0000000..25c867f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/BackgroundEditor.cs @@ -0,0 +1,20 @@ +using UnityEditor; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [ComponentEditor(typeof(Background))] + internal sealed class BackgroundEditor : MainComponentEditor<Background> + { + public override void OnInspectorGUI() + { + + ++EditorGUI.indentLevel; + PropertyField("m_Image"); + PropertyField("m_ImageType"); + PropertyField("m_ImageColor"); + PropertyField("m_AutoColor"); + --EditorGUI.indentLevel; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/BackgroundEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/BackgroundEditor.cs.meta new file mode 100644 index 0000000..96466f3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/BackgroundEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 89d95a9a994ad4b4692832e9a548e9e4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/CommentEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/CommentEditor.cs new file mode 100644 index 0000000..922e44a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/CommentEditor.cs @@ -0,0 +1,18 @@ +using UnityEditor; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [ComponentEditor(typeof(Comment))] + public class CommentEditor : MainComponentEditor<Comment> + { + public override void OnInspectorGUI() + { + ++EditorGUI.indentLevel; + PropertyField("m_LabelStyle"); + //PropertyField("m_MarkStyle"); + PropertyListField("m_Items", true); + --EditorGUI.indentLevel; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/CommentEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/CommentEditor.cs.meta new file mode 100644 index 0000000..8c2401f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/CommentEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f2364066bf3174aa39b79020266ce72d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/DataZoomEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/DataZoomEditor.cs new file mode 100644 index 0000000..f54c001 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/DataZoomEditor.cs @@ -0,0 +1,60 @@ +using UnityEditor; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [ComponentEditor(typeof(DataZoom))] + public class DataZoomEditor : MainComponentEditor<DataZoom> + { + public override void OnInspectorGUI() + { + var m_SupportInside = baseProperty.FindPropertyRelative("m_SupportInside"); + var m_SupportSlider = baseProperty.FindPropertyRelative("m_SupportSlider"); + var m_Start = baseProperty.FindPropertyRelative("m_Start"); + var m_End = baseProperty.FindPropertyRelative("m_End"); + var m_MinShowNum = baseProperty.FindPropertyRelative("m_MinShowNum"); + ++EditorGUI.indentLevel; + PropertyField("m_Orient"); + PropertyField("m_SupportInside"); + if (m_SupportInside.boolValue) + { + PropertyField("m_SupportInsideScroll"); + PropertyField("m_SupportInsideDrag"); + } + PropertyField(m_SupportSlider); + PropertyField("m_ZoomLock"); + PropertyField("m_ScrollSensitivity"); + PropertyField("m_RangeMode"); + PropertyField(m_Start); + PropertyField(m_End); + PropertyField(m_MinShowNum); + if (m_Start.floatValue < 0) m_Start.floatValue = 0; + if (m_End.floatValue > 100) m_End.floatValue = 100; + if (m_MinShowNum.intValue < 0) m_MinShowNum.intValue = 0; + if (m_SupportSlider.boolValue) + { + PropertyField("m_ShowDataShadow"); + PropertyField("m_ShowDetail"); + PropertyField("m_BackgroundColor"); + PropertyField("m_BorderWidth"); + PropertyField("m_BorderColor"); + PropertyField("m_FillerColor"); + PropertyField("m_Left"); + PropertyField("m_Right"); + PropertyField("m_Top"); + PropertyField("m_Bottom"); + PropertyField("m_LineStyle"); + PropertyField("m_AreaStyle"); + PropertyField("m_LabelStyle"); + PropertyListField("m_XAxisIndexs", true); + PropertyListField("m_YAxisIndexs", true); + } + else + { + PropertyListField("m_XAxisIndexs", true); + PropertyListField("m_YAxisIndexs", true); + } + --EditorGUI.indentLevel; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/DataZoomEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/DataZoomEditor.cs.meta new file mode 100644 index 0000000..78d0550 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/DataZoomEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 06bc176df52bf4953b8d46254523d2ca +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/GridCoordEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/GridCoordEditor.cs new file mode 100644 index 0000000..460161c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/GridCoordEditor.cs @@ -0,0 +1,23 @@ +using UnityEditor; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [ComponentEditor(typeof(GridCoord))] + public class GridCoordEditor : MainComponentEditor<GridCoord> + { + public override void OnInspectorGUI() + { + ++EditorGUI.indentLevel; + PropertyField("m_Left"); + PropertyField("m_Right"); + PropertyField("m_Top"); + PropertyField("m_Bottom"); + PropertyField("m_BackgroundColor"); + PropertyField("m_ShowBorder"); + PropertyField("m_BorderWidth"); + PropertyField("m_BorderColor"); + --EditorGUI.indentLevel; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/GridCoordEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/GridCoordEditor.cs.meta new file mode 100644 index 0000000..7df3d86 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/GridCoordEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bb28a0ae5edd34b63ae9cbce0986585b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/LegendEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/LegendEditor.cs new file mode 100644 index 0000000..34fc324 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/LegendEditor.cs @@ -0,0 +1,29 @@ +using UnityEditor; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [ComponentEditor(typeof(Legend))] + public class LegendEditor : MainComponentEditor<Legend> + { + public override void OnInspectorGUI() + { + ++EditorGUI.indentLevel; + PropertyField("m_IconType"); + PropertyField("m_ItemWidth"); + PropertyField("m_ItemHeight"); + PropertyField("m_ItemGap"); + PropertyField("m_ItemAutoColor"); + PropertyField("m_ItemOpacity"); + PropertyField("m_SelectedMode"); + PropertyField("m_Orient"); + PropertyField("m_Formatter"); + PropertyField("m_Location"); + PropertyField("m_LabelStyle"); + PropertyListField("m_Icons"); + PropertyListField("m_Colors"); + PropertyListField("m_Data"); + --EditorGUI.indentLevel; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/LegendEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/LegendEditor.cs.meta new file mode 100644 index 0000000..8429e30 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/LegendEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5ef040b104aa2452f80d91c7c33775c4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MainComponentBaseEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MainComponentBaseEditor.cs new file mode 100644 index 0000000..eb7b9b0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MainComponentBaseEditor.cs @@ -0,0 +1,116 @@ +using UnityEditor; +using UnityEngine; +using UnityEngine.Assertions; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + public class MainComponentBaseEditor + { + protected const string MORE = "More"; + protected bool m_MoreFoldout = false; + public BaseChart chart { get; private set; } + public MainComponent component { get; private set; } + + public SerializedProperty baseProperty; + public SerializedProperty showProperty; + + internal void Init(BaseChart chart, MainComponent target, SerializedProperty property, UnityEditor.Editor inspector) + { + this.chart = chart; + this.component = target; + this.baseProperty = property; + showProperty = baseProperty.FindPropertyRelative("m_Show"); + if (showProperty == null) + showProperty = baseProperty.FindPropertyRelative("m_Enable"); + OnEnable(); + } + + public virtual void OnEnable() + { } + + public virtual void OnDisable() + { } + + internal void OnInternalInspectorGUI() + { + OnInspectorGUI(); + EditorGUILayout.Space(); + } + + public virtual void OnInspectorGUI() + { } + + protected virtual void DrawExtendeds() + { } + + public virtual string GetDisplayTitle() + { + var num = chart.GetChartComponentNum(component.GetType()); + if (num > 1) + return ObjectNames.NicifyVariableName(component.GetType().Name) + " " + component.index; + else + return ObjectNames.NicifyVariableName(component.GetType().Name); + } + + protected SerializedProperty FindProperty(string path) + { + return baseProperty.FindPropertyRelative(path); + } + + protected void PropertyField(string path) + { + var property = FindProperty(path); + if (property != null) + { + var title = ChartEditorHelper.GetContent(property.displayName); + PropertyField(property, title); + } + else + { + Debug.LogError("Property not exist:" + baseProperty.propertyPath + "," + path); + } + } + + protected void PropertyFiledMore(System.Action action) + { + m_MoreFoldout = ChartEditorHelper.DrawHeader(MORE, m_MoreFoldout, false, null, null); + if (m_MoreFoldout) + { + if (action != null) action(); + } + } + + protected void PropertyField(SerializedProperty property) + { + Assert.IsNotNull(property); + var title = ChartEditorHelper.GetContent(property.displayName); + PropertyField(property, title); + } + + protected void PropertyField(SerializedProperty property, GUIContent title) + { + EditorGUILayout.PropertyField(property, title); + } + + protected void PropertyListField(string relativePropName, bool showOrder = true, params HeaderMenuInfo[] menus) + { + var m_DrawRect = GUILayoutUtility.GetRect(1f, 17f); + var height = 0f; + var prop = FindProperty(relativePropName); + prop.isExpanded = ChartEditorHelper.MakeListWithFoldout(ref m_DrawRect, ref height, + prop, prop.isExpanded, showOrder, true, menus); + if (prop.isExpanded) + { + GUILayoutUtility.GetRect(1f, height - 17); + } + } + + protected void PropertyTwoFiled(string relativePropName) + { + var m_DrawRect = GUILayoutUtility.GetRect(1f, 17f); + var prop = FindProperty(relativePropName); + ChartEditorHelper.MakeTwoField(ref m_DrawRect, m_DrawRect.width, prop, prop.displayName); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MainComponentBaseEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MainComponentBaseEditor.cs.meta new file mode 100644 index 0000000..c0299b8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MainComponentBaseEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2909950e65ad44c2eb617a8b75845431 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MainComponentEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MainComponentEditor.cs new file mode 100644 index 0000000..05e2896 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MainComponentEditor.cs @@ -0,0 +1,8 @@ +using XCharts.Runtime; + +namespace XCharts.Editor +{ + public class MainComponentEditor<T> : MainComponentBaseEditor + where T : MainComponent + { } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MainComponentEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MainComponentEditor.cs.meta new file mode 100644 index 0000000..6e9b172 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MainComponentEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 276997094e92e4b6590591727cb21349 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MainComponentListEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MainComponentListEditor.cs new file mode 100644 index 0000000..211cb31 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MainComponentListEditor.cs @@ -0,0 +1,161 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEngine.Assertions; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + public sealed class MainComponentListEditor + { + public BaseChart chart { get; private set; } + BaseChartEditor m_BaseEditor; + + //SerializedObject m_SerializedObject; + List<SerializedProperty> m_ComponentsProperty; + SerializedProperty m_EnableProperty; + + Dictionary<Type, Type> m_EditorTypes; + List<MainComponentBaseEditor> m_Editors; + + public MainComponentListEditor(BaseChartEditor editor) + { + Assert.IsNotNull(editor); + m_BaseEditor = editor; + } + + public void Init(BaseChart chart, SerializedObject serializedObject, List<SerializedProperty> componentProps) + { + Assert.IsNotNull(chart); + + this.chart = chart; + m_ComponentsProperty = componentProps; + + Assert.IsNotNull(m_ComponentsProperty); + + m_Editors = new List<MainComponentBaseEditor>(); + m_EditorTypes = new Dictionary<Type, Type>(); + + var editorTypes = RuntimeUtil.GetAllTypesDerivedFrom<MainComponentBaseEditor>() + .Where(t => t.IsDefined(typeof(ComponentEditorAttribute), false) && !t.IsAbstract); + foreach (var editorType in editorTypes) + { + var attribute = editorType.GetAttribute<ComponentEditorAttribute>(); + m_EditorTypes.Add(attribute.componentType, editorType); + } + + RefreshEditors(); + } + + public void UpdateComponentsProperty(List<SerializedProperty> componentProps) + { + m_ComponentsProperty = componentProps; + RefreshEditors(); + } + + public void Clear() + { + if (m_Editors == null) + return; + + foreach (var editor in m_Editors) + editor.OnDisable(); + + m_Editors.Clear(); + m_EditorTypes.Clear(); + } + + public void OnGUI() + { + if (chart == null) + return; + + for (int i = 0; i < m_Editors.Count; i++) + { + var editor = m_Editors[i]; + string title = editor.GetDisplayTitle(); + int id = i; + + bool displayContent = ChartEditorHelper.DrawHeader( + title, + editor.baseProperty, + editor.showProperty, + () => { ResetComponentEditor(id); }, + () => { RemoveComponentEditor(id); } + ); + if (displayContent) + { + editor.OnInternalInspectorGUI(); + } + } + + if (m_Editors.Count == 0) + { + EditorGUILayout.HelpBox("No componnet.", MessageType.Info); + } + } + + void RefreshEditors() + { + foreach (var editor in m_Editors) + editor.OnDisable(); + + m_Editors.Clear(); + for (int i = 0; i < chart.components.Count; i++) + { + if (chart.components[i] != null) + { + CreateEditor(chart.components[i], m_ComponentsProperty[i]); + } + } + } + + void CreateEditor(MainComponent component, SerializedProperty property, int index = -1) + { + + var settingsType = component.GetType(); + Type editorType; + + if (!m_EditorTypes.TryGetValue(settingsType, out editorType)) + editorType = typeof(MainComponentBaseEditor); + var editor = (MainComponentBaseEditor) Activator.CreateInstance(editorType); + editor.Init(chart, component, property, m_BaseEditor); + + if (index < 0) + m_Editors.Add(editor); + else + m_Editors[index] = editor; + } + + public void AddChartComponent(Type type) + { + chart.AddChartComponent(type); + m_ComponentsProperty = m_BaseEditor.RefreshComponent(); + RefreshEditors(); + EditorUtility.SetDirty(chart); + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + } + + private void ResetComponentEditor(int id) + { + m_Editors[id].component.Reset(); + EditorUtility.SetDirty(chart); + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + } + + private void RemoveComponentEditor(int id) + { + m_Editors[id].OnDisable(); + chart.RemoveChartComponent(m_Editors[id].component); + m_Editors.RemoveAt(id); + m_ComponentsProperty = m_BaseEditor.RefreshComponent(); + RefreshEditors(); + EditorUtility.SetDirty(chart); + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MainComponentListEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MainComponentListEditor.cs.meta new file mode 100644 index 0000000..5810b63 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MainComponentListEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 62cc000ee006f492aadb05138ac6fe87 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MarkAreaEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MarkAreaEditor.cs new file mode 100644 index 0000000..43e2894 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MarkAreaEditor.cs @@ -0,0 +1,55 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [ComponentEditor(typeof(MarkArea))] + public class MarkAreaEditor : MainComponentEditor<MarkArea> + { + public override void OnInspectorGUI() + { + ++EditorGUI.indentLevel; + PropertyField("m_SerieIndex"); + PropertyField("m_Text"); + PropertyField("m_ItemStyle"); + PropertyField("m_Label"); + PropertyField("m_Start"); + PropertyField("m_End"); + --EditorGUI.indentLevel; + } + } + + [CustomPropertyDrawer(typeof(MarkAreaData), true)] + public class MarkAreaDataDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "MarkAreaData"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "", true)) + { + ++EditorGUI.indentLevel; + var type = (MarkAreaType) (prop.FindPropertyRelative("m_Type")).enumValueIndex; + PropertyField(prop, "m_Type"); + PropertyField(prop, "m_Name"); + switch (type) + { + case MarkAreaType.None: + PropertyField(prop, "m_XPosition"); + PropertyField(prop, "m_YPosition"); + PropertyField(prop, "m_XValue"); + PropertyField(prop, "m_YValue"); + break; + case MarkAreaType.Min: + case MarkAreaType.Max: + case MarkAreaType.Average: + case MarkAreaType.Median: + PropertyField(prop, "m_Dimension"); + break; + } + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MarkAreaEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MarkAreaEditor.cs.meta new file mode 100644 index 0000000..fd786ea --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MarkAreaEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 83cc6f39a078f4ecfb2c3da09b116355 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MarkLineEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MarkLineEditor.cs new file mode 100644 index 0000000..6c8530a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MarkLineEditor.cs @@ -0,0 +1,59 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [ComponentEditor(typeof(MarkLine))] + public class MarkLineEditor : MainComponentEditor<MarkLine> + { + public override void OnInspectorGUI() + { + ++EditorGUI.indentLevel; + PropertyField("m_SerieIndex"); + PropertyField("m_Animation"); + PropertyListField("m_Data", true); + --EditorGUI.indentLevel; + } + } + + [CustomPropertyDrawer(typeof(MarkLineData), true)] + public class MarkLineDataDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "MarkLineData"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "", true)) + { + ++EditorGUI.indentLevel; + var type = (MarkLineType) (prop.FindPropertyRelative("m_Type")).enumValueIndex; + var group = prop.FindPropertyRelative("m_Group").intValue; + PropertyField(prop, "m_Type"); + PropertyField(prop, "m_Name"); + switch (type) + { + case MarkLineType.None: + PropertyField(prop, "m_XPosition"); + PropertyField(prop, "m_YPosition"); + PropertyField(prop, "m_XValue"); + PropertyField(prop, "m_YValue"); + break; + case MarkLineType.Min: + case MarkLineType.Max: + case MarkLineType.Average: + case MarkLineType.Median: + PropertyField(prop, "m_Dimension"); + break; + } + PropertyField(prop, "m_Group"); + if (group > 0 && type == MarkLineType.None) PropertyField(prop, "m_ZeroPosition"); + PropertyField(prop, "m_LineStyle"); + PropertyField(prop, "m_StartSymbol"); + PropertyField(prop, "m_EndSymbol"); + PropertyField(prop, "m_Label"); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MarkLineEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MarkLineEditor.cs.meta new file mode 100644 index 0000000..0793155 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/MarkLineEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 341fcecf4884e47519a2aff6defb30de +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/ParallelCoordEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/ParallelCoordEditor.cs new file mode 100644 index 0000000..3a216f3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/ParallelCoordEditor.cs @@ -0,0 +1,21 @@ +using UnityEditor; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [ComponentEditor(typeof(ParallelCoord))] + public class ParallelCoordEditor : MainComponentEditor<ParallelCoord> + { + public override void OnInspectorGUI() + { + ++EditorGUI.indentLevel; + PropertyField("m_Orient"); + PropertyField("m_Left"); + PropertyField("m_Right"); + PropertyField("m_Top"); + PropertyField("m_Bottom"); + PropertyField("m_BackgroundColor"); + --EditorGUI.indentLevel; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/ParallelCoordEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/ParallelCoordEditor.cs.meta new file mode 100644 index 0000000..339b121 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/ParallelCoordEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f3d4d8d4d5c4b4197b021a25a7125390 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/PolarCoordEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/PolarCoordEditor.cs new file mode 100644 index 0000000..8d359e7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/PolarCoordEditor.cs @@ -0,0 +1,18 @@ +using UnityEditor; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [ComponentEditor(typeof(PolarCoord))] + public class PolarCoordEditor : MainComponentEditor<PolarCoord> + { + public override void OnInspectorGUI() + { + ++EditorGUI.indentLevel; + PropertyTwoFiled("m_Center"); + PropertyField("m_Radius"); + PropertyField("m_BackgroundColor"); + --EditorGUI.indentLevel; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/PolarCoordEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/PolarCoordEditor.cs.meta new file mode 100644 index 0000000..aeb2e65 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/PolarCoordEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5f488cf12ded545de8737a2cde8bfead +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/RadarCoordEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/RadarCoordEditor.cs new file mode 100644 index 0000000..752ec81 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/RadarCoordEditor.cs @@ -0,0 +1,50 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [ComponentEditor(typeof(RadarCoord))] + public class RadarCoordEditor : MainComponentEditor<RadarCoord> + { + public override void OnInspectorGUI() + { + ++EditorGUI.indentLevel; + PropertyField("m_Shape"); + PropertyField("m_PositionType"); + PropertyTwoFiled("m_Center"); + PropertyField("m_Radius"); + PropertyField("m_SplitNumber"); + PropertyField("m_CeilRate"); + PropertyField("m_IsAxisTooltip"); + PropertyField("m_OutRangeColor"); + PropertyField("m_ConnectCenter"); + PropertyField("m_LineGradient"); + PropertyField("m_AxisLine"); + PropertyField("m_AxisName"); + PropertyField("m_SplitLine"); + PropertyField("m_SplitArea"); + PropertyField("m_IndicatorList"); + --EditorGUI.indentLevel; + } + } + + [CustomPropertyDrawer(typeof(RadarCoord.Indicator), true)] + public class RadarIndicatorDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "Indicator"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeComponentFoldout(prop, "", true)) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_Name"); + PropertyField(prop, "m_Min"); + PropertyField(prop, "m_Max"); + PropertyTwoFiled(prop, "m_Range"); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/RadarCoordEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/RadarCoordEditor.cs.meta new file mode 100644 index 0000000..484b250 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/RadarCoordEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f1bfbd3f054624d42b854bcac720a58b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/ThemeEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/ThemeEditor.cs new file mode 100644 index 0000000..86fcf5f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/ThemeEditor.cs @@ -0,0 +1,39 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; +#if dUI_TextMeshPro +using TMPro; +#endif + +namespace XCharts.Editor +{ + [CustomEditor(typeof(Theme))] + public class ThemeEditor : UnityEditor.Editor + { + static class Styles + { + internal static GUIContent btnReset = new GUIContent("Reset", "Reset to default theme"); + internal static GUIContent btnSync = new GUIContent("Sync Font", "Sync main theme font to sub theme font"); + } + + private Theme m_Theme; + + void OnEnable() + { + m_Theme = target as Theme; + } + + public override void OnInspectorGUI() + { + base.OnInspectorGUI(); + if (GUILayout.Button(Styles.btnReset)) + { + m_Theme.ResetTheme(); + } + if (GUILayout.Button(Styles.btnSync)) + { + m_Theme.SyncFontToSubComponent(); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/ThemeEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/ThemeEditor.cs.meta new file mode 100644 index 0000000..b14f798 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/ThemeEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7856321df80e646c99317e95964991bc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/TitleEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/TitleEditor.cs new file mode 100644 index 0000000..2a22c05 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/TitleEditor.cs @@ -0,0 +1,21 @@ +using UnityEditor; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [ComponentEditor(typeof(Title))] + public class TitleEditor : MainComponentEditor<Title> + { + public override void OnInspectorGUI() + { + ++EditorGUI.indentLevel; + PropertyField("m_Text"); + PropertyField("m_SubText"); + PropertyField("m_ItemGap"); + PropertyField("m_Location"); + PropertyField("m_LabelStyle"); + PropertyField("m_SubLabelStyle"); + --EditorGUI.indentLevel; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/TitleEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/TitleEditor.cs.meta new file mode 100644 index 0000000..7780391 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/TitleEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c50c4d317d9274b32a5f137db0d66038 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/TooltipEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/TooltipEditor.cs new file mode 100644 index 0000000..af7b434 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/TooltipEditor.cs @@ -0,0 +1,49 @@ +using UnityEditor; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [ComponentEditor(typeof(Tooltip))] + public class TooltipEditor : MainComponentEditor<Tooltip> + { + public override void OnInspectorGUI() + { + ++EditorGUI.indentLevel; + PropertyField("m_Type"); + PropertyField("m_Trigger"); + PropertyField("m_ShowContent"); + PropertyField("m_AlwayShowContent"); + PropertyField("m_TitleFormatter"); + PropertyField("m_ItemFormatter"); + PropertyField("m_NumericFormatter"); + PropertyFiledMore(() => + { + PropertyField("m_TitleHeight"); + PropertyField("m_ItemHeight"); + PropertyField("m_Marker"); + PropertyField("m_BorderWidth"); + PropertyField("m_BorderColor"); + PropertyField("m_PaddingLeftRight"); + PropertyField("m_PaddingTopBottom"); + PropertyField("m_BackgroundImage"); + PropertyField("m_BackgroundType"); + PropertyField("m_BackgroundColor"); + PropertyField("m_FixedWidth"); + PropertyField("m_FixedHeight"); + PropertyField("m_MinWidth"); + PropertyField("m_MinHeight"); + PropertyField("m_IgnoreDataDefaultContent"); + PropertyField("m_Offset"); + PropertyField("m_FixedXEnable"); + PropertyField("m_FixedX"); + PropertyField("m_FixedYEnable"); + PropertyField("m_FixedY"); + }); + PropertyField("m_LineStyle"); + PropertyField("m_IndicatorLabelStyle"); + PropertyField("m_TitleLabelStyle"); + PropertyListField("m_ContentLabelStyles"); + --EditorGUI.indentLevel; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/TooltipEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/TooltipEditor.cs.meta new file mode 100644 index 0000000..0952d61 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/TooltipEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9179fea7bb2354601acce0feb82f8b17 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/VisualMapEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/VisualMapEditor.cs new file mode 100644 index 0000000..059f3c4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/VisualMapEditor.cs @@ -0,0 +1,64 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [ComponentEditor(typeof(VisualMap))] + public class VisualMapEditor : MainComponentEditor<VisualMap> + { + public override void OnInspectorGUI() + { + ++EditorGUI.indentLevel; + var type = (VisualMap.Type) baseProperty.FindPropertyRelative("m_Type").enumValueIndex; + var isPiece = type == VisualMap.Type.Piecewise; + PropertyField("m_Type"); + PropertyField("m_SerieIndex"); + PropertyField("m_AutoMinMax"); + PropertyField("m_Min"); + PropertyField("m_Max"); + PropertyField("m_SplitNumber"); + PropertyField("m_Dimension"); + PropertyField("m_WorkOnLine"); + PropertyField("m_WorkOnArea"); + PropertyField("m_ShowUI"); + if (baseProperty.FindPropertyRelative("m_ShowUI").boolValue) + { + PropertyField("m_SelectedMode"); + PropertyTwoFiled("m_Range"); + PropertyTwoFiled("m_Text"); + PropertyTwoFiled("m_TextGap"); + PropertyField("m_HoverLink"); + PropertyField("m_Calculable"); + PropertyField("m_ItemWidth"); + PropertyField("m_ItemHeight"); + if (isPiece) PropertyField("m_ItemGap"); + PropertyField("m_BorderWidth"); + PropertyField("m_Orient"); + PropertyField("m_Location"); + } + PropertyListField("m_OutOfRange"); + PropertyListField("m_InRange"); + --EditorGUI.indentLevel; + } + } + + [CustomPropertyDrawer(typeof(VisualMapRange), true)] + public class VisualMapRangeDrawer : BasePropertyDrawer + { + public override string ClassName { get { return "Range"; } } + public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) + { + base.OnGUI(pos, prop, label); + if (MakeFoldout(prop, "m_Color")) + { + ++EditorGUI.indentLevel; + PropertyField(prop, "m_Min"); + PropertyField(prop, "m_Max"); + PropertyField(prop, "m_Label"); + PropertyField(prop, "m_Color"); + --EditorGUI.indentLevel; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/VisualMapEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/VisualMapEditor.cs.meta new file mode 100644 index 0000000..288d90a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/MainComponents/VisualMapEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 38b6413ab74484d6599bebbca7f5d437 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series.meta new file mode 100644 index 0000000..9afafc7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 303691ade88f04660abab870b613cc3a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/BarEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/BarEditor.cs new file mode 100644 index 0000000..c06a04e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/BarEditor.cs @@ -0,0 +1,47 @@ +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [SerieEditor(typeof(Bar))] + public class BarEditor : SerieEditor<Bar> + { + public override void OnCustomInspectorGUI() + { + PropertyField("m_Stack"); + if (serie.IsUseCoord<PolarCoord>()) + { + PropertyField("m_PolarIndex"); + } + else + { + PropertyField("m_XAxisIndex"); + PropertyField("m_YAxisIndex"); + } + PropertyField("m_BarType"); + PropertyField("m_BarPercentStack"); + PropertyField("m_BarWidth"); + PropertyField("m_BarGap"); + if (serie.barType == BarType.Zebra) + { + PropertyField("m_BarZebraWidth"); + PropertyField("m_BarZebraGap"); + } + PropertyField("m_Clip"); + PropertyFiledMore(() => + { + PropertyFieldLimitMin("m_MinShow", 0); + PropertyFieldLimitMin("m_MaxShow", 0); + PropertyFieldLimitMin("m_MaxCache", 0); + PropertyField("m_Ignore"); + PropertyField("m_IgnoreValue"); + PropertyField("m_IgnoreLineBreak"); + PropertyField("m_ShowAsPositiveNumber"); + PropertyField("m_Large"); + PropertyField("m_LargeThreshold"); + PropertyField("m_PlaceHolder"); + }); + PropertyField("m_ItemStyle"); + PropertyField("m_Animation"); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/BarEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/BarEditor.cs.meta new file mode 100644 index 0000000..afc8184 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/BarEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3b924d2e0412243769e4ac6ee8bd5fa6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/CandlestickEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/CandlestickEditor.cs new file mode 100644 index 0000000..ff77a8d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/CandlestickEditor.cs @@ -0,0 +1,25 @@ +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [SerieEditor(typeof(Candlestick))] + public class CandlestickEditor : SerieEditor<Candlestick> + { + public override void OnCustomInspectorGUI() + { + PropertyField("m_XAxisIndex"); + PropertyField("m_YAxisIndex"); + PropertyFieldLimitMin("m_MinShow", 0); + PropertyFieldLimitMin("m_MaxShow", 0); + PropertyFieldLimitMin("m_MaxCache", 0); + PropertyField("m_BarWidth"); + PropertyField("m_Clip"); + PropertyField("m_ShowAsPositiveNumber"); + PropertyField("m_Large"); + PropertyField("m_LargeThreshold"); + + PropertyField("m_ItemStyle"); + PropertyField("m_Animation"); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/CandlestickEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/CandlestickEditor.cs.meta new file mode 100644 index 0000000..e10eb32 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/CandlestickEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 713afd224d3194435b9559720035a5fb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/EffectScatterEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/EffectScatterEditor.cs new file mode 100644 index 0000000..b686744 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/EffectScatterEditor.cs @@ -0,0 +1,26 @@ +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [SerieEditor(typeof(EffectScatter))] + public class EffectScatterEditor : SerieEditor<EffectScatter> + { + public override void OnCustomInspectorGUI() + { + if (serie.IsUseCoord<SingleAxisCoord>()) + { + PropertyField("m_SingleAxisIndex"); + } + else + { + PropertyField("m_XAxisIndex"); + PropertyField("m_YAxisIndex"); + } + PropertyField("m_Clip"); + PropertyField("m_Symbol"); + + PropertyField("m_ItemStyle"); + PropertyField("m_Animation"); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/EffectScatterEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/EffectScatterEditor.cs.meta new file mode 100644 index 0000000..a94c3a7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/EffectScatterEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fc8fce25209234fa3b6c3cb79d02b47e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/HeatmapEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/HeatmapEditor.cs new file mode 100644 index 0000000..739952b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/HeatmapEditor.cs @@ -0,0 +1,17 @@ +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [SerieEditor(typeof(Heatmap))] + public class HeatmapEditor : SerieEditor<Heatmap> + { + public override void OnCustomInspectorGUI() + { + PropertyField("m_Ignore"); + PropertyField("m_IgnoreValue"); + + PropertyField("m_ItemStyle"); + PropertyField("m_Animation"); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/HeatmapEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/HeatmapEditor.cs.meta new file mode 100644 index 0000000..f630b51 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/HeatmapEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3137acf1aff4f4cd29af0d3c3ca78bca +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/LineEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/LineEditor.cs new file mode 100644 index 0000000..5d6c234 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/LineEditor.cs @@ -0,0 +1,43 @@ +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [SerieEditor(typeof(Line))] + public class LineEditor : SerieEditor<Line> + { + public override void OnCustomInspectorGUI() + { + PropertyField("m_Stack"); + if (serie.IsUseCoord<PolarCoord>()) + { + PropertyField("m_PolarIndex"); + } + else + { + PropertyField("m_XAxisIndex"); + PropertyField("m_YAxisIndex"); + } + PropertyField("m_LineType"); + //PropertyField("m_Clip"); + PropertyFiledMore(() => + { + PropertyFieldLimitMin("m_MinShow", 0); + PropertyFieldLimitMin("m_MaxShow", 0); + PropertyFieldLimitMin("m_MaxCache", 0); + PropertyField("m_SampleDist"); + PropertyField("m_SampleType"); + PropertyField("m_SampleAverage"); + PropertyField("m_Ignore"); + PropertyField("m_IgnoreValue"); + PropertyField("m_IgnoreLineBreak"); + PropertyField("m_ShowAsPositiveNumber"); + PropertyField("m_Large"); + PropertyField("m_LargeThreshold"); + }); + PropertyField("m_Symbol"); + PropertyField("m_LineStyle"); + PropertyField("m_ItemStyle"); + PropertyField("m_Animation"); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/LineEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/LineEditor.cs.meta new file mode 100644 index 0000000..c817b49 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/LineEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 065fbd043ce6e40609cfb52114aaaa6a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/ParallelEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/ParallelEditor.cs new file mode 100644 index 0000000..c0d7b2c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/ParallelEditor.cs @@ -0,0 +1,16 @@ +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [SerieEditor(typeof(Parallel))] + public class ParallelEditor : SerieEditor<Parallel> + { + public override void OnCustomInspectorGUI() + { + PropertyField("m_ParallelIndex"); + PropertyField("m_LineType"); + PropertyField("m_LineStyle"); + PropertyField("m_Animation"); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/ParallelEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/ParallelEditor.cs.meta new file mode 100644 index 0000000..b368384 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/ParallelEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 01af34b37a31d4876bd2d9ca7687ccd1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/PieEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/PieEditor.cs new file mode 100644 index 0000000..7a66372 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/PieEditor.cs @@ -0,0 +1,26 @@ +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [SerieEditor(typeof(Pie))] + public class PieEditor : SerieEditor<Pie> + { + public override void OnCustomInspectorGUI() + { + PropertyField("m_RoseType"); + PropertyField("m_Gap"); + PropertyTwoFiled("m_Center"); + PropertyTwoFiled("m_Radius"); + PropertyField("m_AvoidLabelOverlap"); + PropertyFiledMore(() => + { + PropertyField("m_MinAngle"); + PropertyField("m_RoundCap"); + PropertyField("m_Ignore"); + PropertyField("m_IgnoreValue"); + }); + PropertyField("m_ItemStyle"); + PropertyField("m_Animation"); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/PieEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/PieEditor.cs.meta new file mode 100644 index 0000000..b0486f5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/PieEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3e7ae042a30a3433d8ae63a82bf37278 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/RadarEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/RadarEditor.cs new file mode 100644 index 0000000..aedf983 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/RadarEditor.cs @@ -0,0 +1,19 @@ +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [SerieEditor(typeof(Radar))] + public class RadarEditor : SerieEditor<Radar> + { + public override void OnCustomInspectorGUI() + { + PropertyField("m_RadarType"); + PropertyField("m_RadarIndex"); + + PropertyField("m_Symbol"); + PropertyField("m_LineStyle"); + PropertyField("m_ItemStyle"); + PropertyField("m_Animation"); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/RadarEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/RadarEditor.cs.meta new file mode 100644 index 0000000..179183d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/RadarEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7b6a9ab6dd1ea4e3a98bef73e90d42a9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/RingEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/RingEditor.cs new file mode 100644 index 0000000..71ec6db --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/RingEditor.cs @@ -0,0 +1,21 @@ +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [SerieEditor(typeof(Ring))] + public class RingEditor : SerieEditor<Ring> + { + public override void OnCustomInspectorGUI() + { + PropertyTwoFiled("m_Center"); + PropertyTwoFiled("m_Radius"); + PropertyField("m_StartAngle"); + PropertyField("m_Gap"); + PropertyField("m_RoundCap"); + PropertyField("m_Clockwise"); + + PropertyField("m_ItemStyle"); + PropertyField("m_Animation"); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/RingEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/RingEditor.cs.meta new file mode 100644 index 0000000..4664e80 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/RingEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 647f8e564429a4b76833d3b428f5ab13 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/ScatterEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/ScatterEditor.cs new file mode 100644 index 0000000..77cd8bb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/ScatterEditor.cs @@ -0,0 +1,26 @@ +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [SerieEditor(typeof(Scatter))] + public class ScatterEditor : SerieEditor<Scatter> + { + public override void OnCustomInspectorGUI() + { + if (serie.IsUseCoord<SingleAxisCoord>()) + { + PropertyField("m_SingleAxisIndex"); + } + else + { + PropertyField("m_XAxisIndex"); + PropertyField("m_YAxisIndex"); + } + PropertyField("m_Clip"); + + PropertyField("m_Symbol"); + PropertyField("m_ItemStyle"); + PropertyField("m_Animation"); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/ScatterEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/ScatterEditor.cs.meta new file mode 100644 index 0000000..7b59778 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/ScatterEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3dfef7780c8cc412f87d00e437c94715 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SerieBaseEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SerieBaseEditor.cs new file mode 100644 index 0000000..1022c1f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SerieBaseEditor.cs @@ -0,0 +1,160 @@ +using System; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; +using UnityEngine.Assertions; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + public class SerieBaseEditor + { + internal BaseChart chart { get; private set; } + internal Serie serie { get; private set; } + + //Editor m_Inspector; + internal SerializedProperty baseProperty; + internal SerializedProperty showProperty; + internal List<HeaderMenuInfo> menus = new List<HeaderMenuInfo>(); + internal List<HeaderMenuInfo> serieDataMenus = new List<HeaderMenuInfo>(); + protected Dictionary<string, Type> m_CoordOptionsDic; + protected List<string> m_CoordOptionsNames; + private string m_DisplayName; + + internal void Init(BaseChart chart, Serie target, SerializedProperty property, UnityEditor.Editor inspector) + { + this.chart = chart; + this.serie = target; + this.baseProperty = property; + m_DisplayName = string.Format("Serie {0}: {1}", serie.index, serie.GetType().Name); + //m_Inspector = inspector; + showProperty = baseProperty.FindPropertyRelative("m_Show"); + if (showProperty == null) + showProperty = baseProperty.FindPropertyRelative("m_Enable"); + OnEnable(); + + if (serie.GetType().IsDefined(typeof(CoordOptionsAttribute), false)) + { + var attribute = serie.GetType().GetAttribute<CoordOptionsAttribute>(); + m_CoordOptionsDic = new Dictionary<string, Type>(); + m_CoordOptionsNames = new List<string>(); + if (attribute.type0 != null) + { + m_CoordOptionsDic[attribute.type0.Name] = attribute.type0; + m_CoordOptionsNames.Add(attribute.type0.Name); + } + if (attribute.type1 != null) + { + m_CoordOptionsDic[attribute.type1.Name] = attribute.type1; + m_CoordOptionsNames.Add(attribute.type1.Name); + } + if (attribute.type2 != null) + { + m_CoordOptionsDic[attribute.type2.Name] = attribute.type2; + m_CoordOptionsNames.Add(attribute.type2.Name); + } + if (attribute.type3 != null) + { + m_CoordOptionsDic[attribute.type3.Name] = attribute.type3; + m_CoordOptionsNames.Add(attribute.type3.Name); + } + } + } + + public virtual void OnEnable() + { } + + public virtual void OnDisable() + { } + + internal void OnInternalInspectorGUI() + { + OnInspectorGUI(); + EditorGUILayout.Space(); + } + + public virtual void OnInspectorGUI() + { } + + protected virtual void DrawExtendeds() + { } + + public virtual string GetDisplayTitle() + { + // var title = string.Format("serie {0}: {1}", serie.index, serie.GetType().Name); + // return ObjectNames.NicifyVariableName(title); + return m_DisplayName; + } + + internal SerializedProperty FindProperty(string path) + { + return baseProperty.FindPropertyRelative(path); + } + + protected SerializedProperty PropertyField(string path) + { + Assert.IsNotNull(path); + var property = FindProperty(path); + Assert.IsNotNull(property, "Can't find:" + path); + var title = ChartEditorHelper.GetContent(property.displayName); + PropertyField(property, title); + return property; + } + + protected void PropertyField(SerializedProperty property) + { + Assert.IsNotNull(property); + var title = ChartEditorHelper.GetContent(property.displayName); + PropertyField(property, title); + } + + protected void PropertyField(SerializedProperty property, GUIContent title) + { + EditorGUILayout.PropertyField(property, title); + } + + protected void PropertyListField(string relativePropName, bool showOrder = true) + { + //TODO: + PropertyField(relativePropName); + } + + protected void PropertyTwoFiled(string relativePropName) + { + var m_DrawRect = GUILayoutUtility.GetRect(1f, 17f); + var prop = FindProperty(relativePropName); + ChartEditorHelper.MakeTwoField(ref m_DrawRect, m_DrawRect.width, prop, prop.displayName); + } + protected void PropertyFieldLimitMin(string relativePropName, double min) + { + var prop = PropertyField(relativePropName); + switch (prop.propertyType) + { + case SerializedPropertyType.Float: + if (prop.floatValue < min) + prop.floatValue = (float) min; + break; + case SerializedPropertyType.Integer: + if (prop.intValue < min) + prop.intValue = (int) min; + break; + } + + } + protected void PropertyFieldLimitMax(string relativePropName, int max) + { + var prop = PropertyField(relativePropName); + switch (prop.propertyType) + { + case SerializedPropertyType.Float: + if (prop.floatValue > max) + prop.floatValue = (float) max; + break; + case SerializedPropertyType.Integer: + if (prop.intValue > max) + prop.intValue = (int) max; + break; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SerieBaseEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SerieBaseEditor.cs.meta new file mode 100644 index 0000000..fad64c3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SerieBaseEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 991edc42b5abf429b8062fd202278a4d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SerieEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SerieEditor.cs new file mode 100644 index 0000000..9b410ea --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SerieEditor.cs @@ -0,0 +1,244 @@ +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + public class SerieEditor<T> : SerieBaseEditor where T : Serie + { + protected const string MORE = "More"; + protected bool m_MoreFoldout = false; + private bool m_DataFoldout = false; + private bool m_DataComponentFoldout = true; + private Dictionary<int, bool> m_DataElementFoldout = new Dictionary<int, bool>(); + + public override void OnInspectorGUI() + { + ++EditorGUI.indentLevel; + //PropertyField("m_InsertDataToHead"); + PropertyField("m_SerieName"); + if (m_CoordOptionsNames != null && m_CoordOptionsNames.Count > 1) + { + var index = m_CoordOptionsNames.IndexOf(serie.coordSystem); + var selectedIndex = EditorGUILayout.Popup("Coord System", index, m_CoordOptionsNames.ToArray()); + if (selectedIndex != index) + { + var typeName = m_CoordOptionsNames[selectedIndex]; + serie.coordSystem = m_CoordOptionsDic[typeName].Name; + } + } + OnCustomInspectorGUI(); + OnExtraInspectorGUI(); + PropertyFieldData(); + --EditorGUI.indentLevel; + } + + public virtual void OnCustomInspectorGUI() + { } + + private void OnExtraInspectorGUI() + { + foreach (var kv in Serie.extraComponentMap) + { + var prop = FindProperty(kv.Value); + if (prop.arraySize > 0) + PropertyField(prop.GetArrayElementAtIndex(0)); + } + } + + private void PropertyFieldData() + { + m_DataFoldout = ChartEditorHelper.DrawHeader("Data", m_DataFoldout, false, null, null, + new HeaderMenuInfo("Import ECharts Data", () => + { + PraseExternalDataEditor.UpdateData(chart, serie, null); + PraseExternalDataEditor.ShowWindow(); + })); + if (!m_DataFoldout) return; + EditorGUI.indentLevel++; + var m_Datas = FindProperty("m_Data"); + var m_DataDimension = FindProperty("m_ShowDataDimension"); + var m_ShowDataName = FindProperty("m_ShowDataName"); + PropertyField(m_ShowDataName); + PropertyField(m_DataDimension); + var listSize = m_Datas.arraySize; + listSize = EditorGUILayout.IntField("Size", listSize); + if (listSize < 0) listSize = 0; + if (m_DataDimension.intValue < 1) m_DataDimension.intValue = 1; + int dimension = m_DataDimension.intValue; + bool showName = m_ShowDataName.boolValue; + if (listSize != m_Datas.arraySize) + { + while (listSize > m_Datas.arraySize) m_Datas.arraySize++; + while (listSize < m_Datas.arraySize) m_Datas.arraySize--; + } + if (listSize > 30) // && !XCSettings.editorShowAllListData) + { + int num = listSize > 10 ? 10 : listSize; + for (int i = 0; i < num; i++) + { + DrawSerieData(dimension, m_Datas, i, showName); + } + if (num >= 10) + { + ChartEditorHelper.DrawHeader("... ", false, false, null, null); + DrawSerieData(dimension, m_Datas, listSize - 1, showName); + } + } + else + { + for (int i = 0; i < m_Datas.arraySize; i++) + { + DrawSerieData(dimension, m_Datas, i, showName); + } + } + EditorGUI.indentLevel--; + } + + protected void PropertyFiledMore(System.Action action) + { + m_MoreFoldout = ChartEditorHelper.DrawHeader(MORE, m_MoreFoldout, false, null, null); + if (m_MoreFoldout) + { + if (action != null) action(); + } + } + + private void DrawSerieData(int dimension, SerializedProperty m_Datas, int index, bool showName) + { + bool flag; + if (!m_DataElementFoldout.TryGetValue(index, out flag)) + { + flag = false; + m_DataElementFoldout[index] = false; + } + var fieldCount = dimension + (showName ? 1 : 0); + m_DataElementFoldout[index] = ChartEditorHelper.DrawHeader("SerieData " + index, flag, false, null, + delegate(Rect drawRect) + { + //drawRect.width -= 2f; + var maxX = drawRect.xMax; + var currentWidth = drawRect.width; + var lastX = drawRect.x; + var lastWid = drawRect.width; + var lastFieldWid = EditorGUIUtility.fieldWidth; + var lastLabelWid = EditorGUIUtility.labelWidth; + var serieData = m_Datas.GetArrayElementAtIndex(index); + var sereName = serieData.FindPropertyRelative("m_Name"); + var data = serieData.FindPropertyRelative("m_Data"); +#if UNITY_2019_3_OR_NEWER + var gap = 2; + var namegap = 3; +#else + var gap = 0; + var namegap = 0; +#endif + if (fieldCount <= 1) + { + while (2 > data.arraySize) + { + var value = data.arraySize == 0 ? index : 0; + data.arraySize++; + data.GetArrayElementAtIndex(data.arraySize - 1).floatValue = value; + } + SerializedProperty element = data.GetArrayElementAtIndex(1); + var startX = drawRect.x + EditorGUIUtility.labelWidth - EditorGUI.indentLevel * 15 + gap; + drawRect.x = startX; + drawRect.xMax = maxX; + EditorGUI.PropertyField(drawRect, element, GUIContent.none); + } + else + { + var startX = drawRect.x + EditorGUIUtility.labelWidth - EditorGUI.indentLevel * 15 + gap; + var dataWidTotal = (currentWidth - (startX + 20.5f + 1)); + var dataWid = dataWidTotal / fieldCount; + var xWid = dataWid - 2; + for (int i = 0; i < dimension; i++) + { + var dataCount = i < 1 ? 2 : i + 1; + while (dataCount > data.arraySize) + { + var value = data.arraySize == 0 ? index : 0; + data.arraySize++; + data.GetArrayElementAtIndex(data.arraySize - 1).floatValue = value; + } + drawRect.x = startX + i * xWid; + drawRect.width = dataWid + 25; + SerializedProperty element = data.GetArrayElementAtIndex(dimension <= 1 ? 1 : i); + EditorGUI.PropertyField(drawRect, element, GUIContent.none); + } + if (showName) + { + drawRect.x = startX + (fieldCount - 1) * xWid; + drawRect.width = dataWid + 40 + dimension * namegap - 2.5f; + EditorGUI.PropertyField(drawRect, sereName, GUIContent.none); + } + EditorGUIUtility.fieldWidth = lastFieldWid; + EditorGUIUtility.labelWidth = lastLabelWid; + } + }); + if (m_DataElementFoldout[index]) + { + if (!(serie is ISimplifiedSerie)) + DrawSerieDataDetail(m_Datas, index); + } + } + + private void DrawSerieDataDetail(SerializedProperty m_Datas, int index) + { + EditorGUI.indentLevel++; + var serieData = m_Datas.GetArrayElementAtIndex(index); + var m_Name = serieData.FindPropertyRelative("m_Name"); + + PropertyField(m_Name); + if (serie.GetType().IsDefined(typeof(SerieDataExtraFieldAttribute), false)) + { + var attribute = serie.GetType().GetAttribute<SerieDataExtraFieldAttribute>(); + foreach (var field in attribute.fields) + { + PropertyField(serieData.FindPropertyRelative(field)); + } + } + + serieDataMenus.Clear(); + if (serie.GetType().IsDefined(typeof(SerieDataExtraComponentAttribute), false)) + { + var attribute = serie.GetType().GetAttribute<SerieDataExtraComponentAttribute>(); + foreach (var type in attribute.types) + { + var size = serieData.FindPropertyRelative(SerieData.extraComponentMap[type]).arraySize; + serieDataMenus.Add(new HeaderMenuInfo("Add " + type.Name, () => + { + serie.GetSerieData(index).GetOrAddComponent(type); + EditorUtility.SetDirty(chart); + }, size == 0)); + } + foreach (var type in attribute.types) + { + var size = serieData.FindPropertyRelative(SerieData.extraComponentMap[type]).arraySize; + serieDataMenus.Add(new HeaderMenuInfo("Remove " + type.Name, () => + { + serie.GetSerieData(index).RemoveComponent(type); + EditorUtility.SetDirty(chart); + }, size > 0)); + } + } + serieDataMenus.Add(new HeaderMenuInfo("Remove All", () => + { + serie.GetSerieData(index).RemoveAllComponent(); + }, true)); + m_DataComponentFoldout = ChartEditorHelper.DrawHeader("Component", m_DataComponentFoldout, false, null, null, serieDataMenus); + if (m_DataComponentFoldout) + { + foreach (var kv in SerieData.extraComponentMap) + { + var prop = serieData.FindPropertyRelative(kv.Value); + if (prop.arraySize > 0) + PropertyField(prop.GetArrayElementAtIndex(0)); + } + } + EditorGUI.indentLevel--; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SerieEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SerieEditor.cs.meta new file mode 100644 index 0000000..58ee781 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SerieEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6a03d2daaabd8465398b1ff06a9889cb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SerieListEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SerieListEditor.cs new file mode 100644 index 0000000..280ee25 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SerieListEditor.cs @@ -0,0 +1,268 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using UnityEditor; +using UnityEngine.Assertions; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + public sealed class SerieListEditor + { + public BaseChart chart { get; private set; } + BaseChartEditor m_BaseEditor; + + SerializedObject m_SerializedObject; + List<SerializedProperty> m_SeriesProperty; + SerializedProperty m_EnableProperty; + + Dictionary<Type, Type> m_EditorTypes; + List<SerieBaseEditor> m_Editors; + private bool m_SerieFoldout; + + public SerieListEditor(BaseChartEditor editor) + { + Assert.IsNotNull(editor); + m_BaseEditor = editor; + } + + public void Init(BaseChart chart, SerializedObject serializedObject, List<SerializedProperty> componentProps) + { + Assert.IsNotNull(chart); + Assert.IsNotNull(serializedObject); + + this.chart = chart; + m_SerializedObject = serializedObject; + m_SeriesProperty = componentProps; + + m_Editors = new List<SerieBaseEditor>(); + m_EditorTypes = new Dictionary<Type, Type>(); + + var editorTypes = RuntimeUtil.GetAllTypesDerivedFrom<SerieBaseEditor>() + .Where(t => t.IsDefined(typeof(SerieEditorAttribute), false) && !t.IsAbstract); + foreach (var editorType in editorTypes) + { + var attribute = editorType.GetAttribute<SerieEditorAttribute>(); + m_EditorTypes.Add(attribute.serieType, editorType); + } + + RefreshEditors(); + } + + public void UpdateSeriesProperty(List<SerializedProperty> componentProps) + { + m_SeriesProperty = componentProps; + RefreshEditors(); + } + + public void Clear() + { + if (m_Editors == null) + return; + + foreach (var editor in m_Editors) + editor.OnDisable(); + + m_Editors.Clear(); + m_EditorTypes.Clear(); + } + + public void OnGUI() + { + if (chart == null) + return; + if (chart.debug.foldSeries) + { + m_SerieFoldout = ChartEditorHelper.DrawHeader("Series", m_SerieFoldout, false, null, null); + if (m_SerieFoldout) + { + DrawSeries(); + } + } + else + { + DrawSeries(); + } + } + + void DrawSeries() + { + for (int i = 0; i < m_Editors.Count; i++) + { + var editor = m_Editors[i]; + string title = editor.GetDisplayTitle(); + bool displayContent = ChartEditorHelper.DrawHeader( + title, + editor.baseProperty, + editor.showProperty, + editor.menus); + if (displayContent) + { + editor.OnInternalInspectorGUI(); + } + } + if (m_Editors.Count <= 0) + { + EditorGUILayout.HelpBox("No serie.", MessageType.Info); + } + } + + void RefreshEditors() + { + m_SerializedObject.UpdateIfRequiredOrScript(); + foreach (var editor in m_Editors) + editor.OnDisable(); + + m_Editors.Clear(); + + for (int i = 0; i < chart.series.Count; i++) + { + var serie = chart.series[i]; + if (serie != null) + { + CreateEditor(serie, m_SeriesProperty[i]); + } + } + } + + void CreateEditor(Serie serie, SerializedProperty property, int index = -1) + { + var id = index >= 0 ? index : m_Editors.Count; + var settingsType = serie.GetType(); + Type editorType; + + if (!m_EditorTypes.TryGetValue(settingsType, out editorType)) + editorType = typeof(SerieBaseEditor); + var editor = (SerieBaseEditor) Activator.CreateInstance(editorType); + editor.Init(chart, serie, property, m_BaseEditor); + editor.menus.Clear(); + editor.menus.Add(new HeaderMenuInfo("Clone", () => + { + CloneSerie(editor.serie); + })); + editor.menus.Add(new HeaderMenuInfo("Remove", () => + { + if (EditorUtility.DisplayDialog("", "Sure remove serie?", "Yes", "Cancel")) + RemoveSerieEditor(id); + })); + editor.menus.Add(new HeaderMenuInfo("Move Down", () => + { + if (chart.MoveDownSerie(id)) + { + m_SeriesProperty = m_BaseEditor.RefreshSeries(); + RefreshEditors(); + } + })); + editor.menus.Add(new HeaderMenuInfo("Move Up", () => + { + if (chart.MoveUpSerie(id)) + { + m_SeriesProperty = m_BaseEditor.RefreshSeries(); + RefreshEditors(); + } + })); + foreach (var type in GetCovertToSerie(editor.serie.GetType())) + { + editor.menus.Add(new HeaderMenuInfo("Covert to " + type.Name, () => + { + CovertSerie(editor.serie, type); + })); + } + if (editor.serie.GetType().IsDefined(typeof(SerieExtraComponentAttribute), false)) + { + var attribute = editor.serie.GetType().GetAttribute<SerieExtraComponentAttribute>(); + foreach (var type in attribute.types) + { + var size = editor.FindProperty(Serie.extraComponentMap[type]).arraySize; + editor.menus.Add(new HeaderMenuInfo("Add " + type.Name, () => + { + editor.serie.AddExtraComponent(type); + RefreshEditors(); + chart.RefreshAllComponent(); + EditorUtility.SetDirty(chart); + }, size == 0)); + } + foreach (var type in attribute.types) + { + var size = editor.FindProperty(Serie.extraComponentMap[type]).arraySize; + editor.menus.Add(new HeaderMenuInfo("Remove " + type.Name, () => + { + editor.serie.RemoveExtraComponent(type); + RefreshEditors(); + chart.RefreshAllComponent(); + EditorUtility.SetDirty(chart); + }, size > 0)); + } + } + if (index < 0) + m_Editors.Add(editor); + else + m_Editors[index] = editor; + } + + public void AddSerie(Type type) + { + m_SerializedObject.Update(); + var serieName = chart.GenerateDefaultSerieName(); + type.InvokeMember("AddDefaultSerie", + BindingFlags.InvokeMethod | BindingFlags.Static | BindingFlags.Public, null, null, + new object[] { chart, serieName }); + m_SerializedObject.Update(); + m_SerializedObject.ApplyModifiedProperties(); + m_SeriesProperty = m_BaseEditor.RefreshSeries(); + RefreshEditors(); + EditorUtility.SetDirty(chart); + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + } + + public void CovertSerie(Serie serie, Type type) + { + chart.CovertSerie(serie, type); + m_SeriesProperty = m_BaseEditor.RefreshSeries(); + RefreshEditors(); + } + + public void CloneSerie(Serie serie) + { + var newSerie = serie.Clone(); + newSerie.serieName = chart.GenerateDefaultSerieName(); + chart.InsertSerie(newSerie); + m_SeriesProperty = m_BaseEditor.RefreshSeries(); + RefreshEditors(); + } + + private void RemoveSerieEditor(int id) + { + m_Editors[id].OnDisable(); + chart.RemoveSerie(m_Editors[id].serie); + m_Editors.RemoveAt(id); + m_SerializedObject.Update(); + m_SerializedObject.ApplyModifiedProperties(); + m_SeriesProperty = m_BaseEditor.RefreshSeries(); + RefreshEditors(); + EditorUtility.SetDirty(chart); + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + } + + private List<Type> GetCovertToSerie(Type serie) + { + var list = new List<Type>(); + var typeMap = RuntimeUtil.GetAllTypesDerivedFrom<Serie>(); + foreach (var kvp in typeMap) + { + var type = kvp; + if (type.IsDefined(typeof(SerieConvertAttribute), false)) + { + var attribute = type.GetAttribute<SerieConvertAttribute>(); + if (attribute != null && attribute.Contains(serie)) + list.Add(type); + } + } + list.Sort((a, b) => { return a.Name.CompareTo(b.Name); }); + return list; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SerieListEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SerieListEditor.cs.meta new file mode 100644 index 0000000..f8d7bf2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SerieListEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5fbdf672386ce40bb803a8bb3bb2a3ca +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SimplifiedBarEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SimplifiedBarEditor.cs new file mode 100644 index 0000000..c09d3ee --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SimplifiedBarEditor.cs @@ -0,0 +1,19 @@ +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [SerieEditor(typeof(SimplifiedBar))] + public class SimplifiedBarEditor : SerieEditor<SimplifiedBar> + { + public override void OnCustomInspectorGUI() + { + PropertyField("m_XAxisIndex"); + PropertyField("m_YAxisIndex"); + PropertyField("m_BarWidth"); + PropertyField("m_BarGap"); + PropertyField("m_Clip"); + PropertyField("m_ItemStyle"); + PropertyField("m_Animation"); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SimplifiedBarEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SimplifiedBarEditor.cs.meta new file mode 100644 index 0000000..a1b72e9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SimplifiedBarEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 99f8e53a5ab7c49e6b87aedee03cf856 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SimplifiedCandlestickEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SimplifiedCandlestickEditor.cs new file mode 100644 index 0000000..d180a57 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SimplifiedCandlestickEditor.cs @@ -0,0 +1,17 @@ +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [SerieEditor(typeof(SimplifiedCandlestick))] + public class SimplifiedCandlestickEditor : SerieEditor<SimplifiedCandlestick> + { + public override void OnCustomInspectorGUI() + { + PropertyField("m_XAxisIndex"); + PropertyField("m_YAxisIndex"); + PropertyField("m_BarWidth"); + PropertyField("m_ItemStyle"); + PropertyField("m_Animation"); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SimplifiedCandlestickEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SimplifiedCandlestickEditor.cs.meta new file mode 100644 index 0000000..9562375 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SimplifiedCandlestickEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 73d22e02d33e948d6981d537ba1f680e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SimplifiedLineEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SimplifiedLineEditor.cs new file mode 100644 index 0000000..b5be0c2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SimplifiedLineEditor.cs @@ -0,0 +1,19 @@ +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [SerieEditor(typeof(SimplifiedLine))] + public class LineHPEditor : SerieEditor<SimplifiedLine> + { + public override void OnCustomInspectorGUI() + { + PropertyField("m_XAxisIndex"); + PropertyField("m_YAxisIndex"); + PropertyField("m_LineType"); + //PropertyField("m_Clip"); + PropertyField("m_LineStyle"); + PropertyField("m_ItemStyle"); + PropertyField("m_Animation"); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SimplifiedLineEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SimplifiedLineEditor.cs.meta new file mode 100644 index 0000000..4e85e3d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Series/SimplifiedLineEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cedf2a45756cd415cb5a74f3188ebd72 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities.meta new file mode 100644 index 0000000..51eefcd --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b4c4e4069901c4c3089878f483167df8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities/ChartEditorHelper.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities/ChartEditorHelper.cs new file mode 100644 index 0000000..647e716 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities/ChartEditorHelper.cs @@ -0,0 +1,734 @@ +using System; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + public class HeaderMenuInfo + { + public string name; + public Action action; + public bool enable = true; + + public HeaderMenuInfo() { } + public HeaderMenuInfo(string name, Action action) + { + this.name = name; + this.action = action; + } + public HeaderMenuInfo(string name, Action action, bool enable) + { + this.name = name; + this.action = action; + this.enable = enable; + } + } + + public static class ChartEditorHelper + { + public const float HEADER_HEIGHT = 17f; + public const float FOLDOUT_WIDTH = 13f; +#if UNITY_2019_3_OR_NEWER + public const float INDENT_WIDTH = 15; + public const float BOOL_WIDTH = 15; + public const float ARROW_WIDTH = 20; + public const float GAP_WIDTH = 2; + public const float DIFF_WIDTH = 0; +#else + public const float INDENT_WIDTH = 15; + public const float BOOL_WIDTH = 15; + public const float ARROW_WIDTH = 14f; + public const float GAP_WIDTH = 0; + public const float DIFF_WIDTH = 1; +#endif + static Dictionary<string, GUIContent> s_GUIContentCache; + + static ChartEditorHelper() + { + s_GUIContentCache = new Dictionary<string, GUIContent>(); + } + + public static void SecondField(Rect drawRect, SerializedProperty prop) + { + RectOffset offset = new RectOffset(-(int) EditorGUIUtility.labelWidth, 0, 0, 0); + drawRect = offset.Add(drawRect); + EditorGUI.PropertyField(drawRect, prop, GUIContent.none); + drawRect = offset.Remove(drawRect); + } + + public static void MakeTwoField(ref Rect drawRect, float rectWidth, SerializedProperty arrayProp, + string name) + { + while (arrayProp.arraySize < 2) arrayProp.arraySize++; + var prop1 = arrayProp.GetArrayElementAtIndex(0); + var prop2 = arrayProp.GetArrayElementAtIndex(1); + MakeTwoField(ref drawRect, rectWidth, prop1, prop2, name); + } + + public static void MakeDivideList(ref Rect drawRect, float rectWidth, SerializedProperty arrayProp, + string name, int showNum) + { + while (arrayProp.arraySize < showNum) arrayProp.arraySize++; + EditorGUI.LabelField(drawRect, name); +#if UNITY_2019_3_OR_NEWER + var gap = 2; +#else + var gap = 0; +#endif + var startX = drawRect.x + EditorGUIUtility.labelWidth - EditorGUI.indentLevel * INDENT_WIDTH + gap; + var dataWidTotal = (rectWidth - (startX + INDENT_WIDTH + 1)); + EditorGUI.DrawRect(new Rect(startX, drawRect.y, dataWidTotal, drawRect.height), Color.grey); + var dataWid = dataWidTotal / showNum; + var xWid = dataWid - gap; + for (int i = 0; i < 1; i++) + { + drawRect.x = startX + i * xWid; + drawRect.width = dataWid + (EditorGUI.indentLevel - 2) * 40.5f; + EditorGUI.PropertyField(drawRect, arrayProp.GetArrayElementAtIndex(i), GUIContent.none); + } + drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; + } + + public static void MakeTwoField(ref Rect drawRect, float rectWidth, SerializedProperty prop1, + SerializedProperty prop2, string name) + { + EditorGUI.LabelField(drawRect, name); + var startX = drawRect.x + EditorGUIUtility.labelWidth - EditorGUI.indentLevel * INDENT_WIDTH + GAP_WIDTH; + var diff = 13 + EditorGUI.indentLevel * 14; + var offset = diff - INDENT_WIDTH; + var tempWidth = (rectWidth - startX + diff) / 2; + var centerXRect = new Rect(startX, drawRect.y, tempWidth, drawRect.height - 1); + var centerYRect = new Rect(centerXRect.x + tempWidth - offset, drawRect.y, tempWidth - 1, drawRect.height - 1); + EditorGUI.PropertyField(centerXRect, prop1, GUIContent.none); + EditorGUI.PropertyField(centerYRect, prop2, GUIContent.none); + drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; + } + + public static void MakeVector2(ref Rect drawRect, float rectWidth, SerializedProperty prop, string name) + { + EditorGUI.LabelField(drawRect, name); + var startX = drawRect.x + EditorGUIUtility.labelWidth - EditorGUI.indentLevel * INDENT_WIDTH + GAP_WIDTH; + var diff = 14 + EditorGUI.indentLevel * 14; + var offset = diff - INDENT_WIDTH; + var tempWidth = (rectWidth - startX + diff) / 2; + var centerXRect = new Rect(startX, drawRect.y, tempWidth, drawRect.height); + var centerYRect = new Rect(centerXRect.x + tempWidth - offset, drawRect.y, tempWidth, drawRect.height); + var x = EditorGUI.FloatField(centerXRect, prop.vector3Value.x); + var y = EditorGUI.FloatField(centerYRect, prop.vector3Value.y); + prop.vector3Value = new Vector3(x, y); + drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; + } + + public static bool MakeFoldout(ref Rect drawRect, ref bool moduleToggle, string content, + SerializedProperty prop = null, bool bold = false) + { + float defaultWidth = drawRect.width; + float defaultX = drawRect.x; + var style = bold ? EditorCustomStyles.foldoutStyle : UnityEditor.EditorStyles.foldout; + drawRect.width = EditorGUIUtility.labelWidth - EditorGUI.indentLevel * INDENT_WIDTH; + moduleToggle = EditorGUI.Foldout(drawRect, moduleToggle, content, true, style); + MakeBool(drawRect, prop); + drawRect.width = defaultWidth; + drawRect.x = defaultX; + return moduleToggle; + } + + public static bool MakeFoldout(ref Rect drawRect, Dictionary<string, float> heights, + Dictionary<string, bool> moduleToggle, string key, string content, SerializedProperty prop, bool bold = false) + { + float defaultWidth = drawRect.width; + float defaultX = drawRect.x; + var style = bold ? EditorCustomStyles.foldoutStyle : UnityEditor.EditorStyles.foldout; + drawRect.width = EditorGUIUtility.labelWidth; + moduleToggle[key] = EditorGUI.Foldout(drawRect, moduleToggle[key], content, true, style); + if (prop != null) + { + if (prop.propertyType == SerializedPropertyType.Boolean) + { + MakeBool(drawRect, prop); + } + else + { + drawRect.x = EditorGUIUtility.labelWidth - EditorGUI.indentLevel * INDENT_WIDTH + ARROW_WIDTH; + drawRect.width = defaultWidth - drawRect.x + ARROW_WIDTH - 2; + EditorGUI.PropertyField(drawRect, prop, GUIContent.none); + } + } + + drawRect.width = defaultWidth; + drawRect.x = defaultX; + drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; + heights[key] += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; + return moduleToggle[key]; + } + public static bool MakeComponentFoldout(ref Rect drawRect, Dictionary<string, float> heights, + Dictionary<string, bool> moduleToggle, string key, string content, SerializedProperty prop, + SerializedProperty prop2, bool propEnable, params HeaderMenuInfo[] menus) + { + var sourRect = drawRect; + float defaultWidth = drawRect.width; + float defaultX = drawRect.x; + float headerHeight = DrawSplitterAndBackground(drawRect); + + drawRect.width = EditorGUIUtility.labelWidth; + + moduleToggle[key] = EditorGUI.Foldout(drawRect, moduleToggle[key], content, true, EditorStyles.foldout); + if (prop != null) + { + if (prop.propertyType == SerializedPropertyType.Boolean) + { + if (!propEnable) + using(new EditorGUI.DisabledScope(true)) + MakeBool(drawRect, prop); + else + MakeBool(drawRect, prop); + if (prop2 != null && !moduleToggle[key]) + { + drawRect.x = EditorGUIUtility.labelWidth - EditorGUI.indentLevel * INDENT_WIDTH + ARROW_WIDTH + BOOL_WIDTH; + drawRect.width = defaultWidth - drawRect.x + ARROW_WIDTH; + EditorGUI.PropertyField(drawRect, prop2, GUIContent.none); + } + } + else + { + drawRect.x = EditorGUIUtility.labelWidth - EditorGUI.indentLevel * INDENT_WIDTH + ARROW_WIDTH; + drawRect.width = defaultWidth - drawRect.x + ARROW_WIDTH - 2; + EditorGUI.PropertyField(drawRect, prop, GUIContent.none); + } + } + DrawMenu(sourRect, menus); + drawRect.width = defaultWidth; + drawRect.x = defaultX; + drawRect.y += headerHeight; + heights[key] += headerHeight; + return moduleToggle[key]; + } + + public static void MakeBool(Rect drawRect, SerializedProperty boolProp, int index = 0, string name = null) + { + float defaultWidth = drawRect.width; + float defaultX = drawRect.x; + float boolWidth = index * (BOOL_WIDTH + GAP_WIDTH); + drawRect.x = EditorGUIUtility.labelWidth - EditorGUI.indentLevel * INDENT_WIDTH + ARROW_WIDTH + boolWidth; + drawRect.width = (EditorGUI.indentLevel + 1) * BOOL_WIDTH + index * 110; + if (boolProp != null) + { + EditorGUI.PropertyField(drawRect, boolProp, GUIContent.none); + if (!string.IsNullOrEmpty(name)) + { + drawRect.x += BOOL_WIDTH; + drawRect.width = 200; + EditorGUI.LabelField(drawRect, name); + } + } + drawRect.width = defaultWidth; + drawRect.x = defaultX; + } + + public static bool MakeFoldout(ref Rect drawRect, ref float height, ref Dictionary<string, bool> moduleToggle, + SerializedProperty prop, string moduleName, string showPropName, bool bold = false) + { + var relativeProp = prop.FindPropertyRelative(showPropName); + var flag = MakeFoldout(ref drawRect, ref moduleToggle, prop, moduleName, relativeProp, bold); + drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; + height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; + return flag; + } + + public static bool MakeFoldout(ref Rect drawRect, ref Dictionary<string, bool> moduleToggle, SerializedProperty prop, + string moduleName, SerializedProperty showProp = null, bool bold = false) + { + var key = prop.propertyPath; + if (!moduleToggle.ContainsKey(key)) + { + moduleToggle.Add(key, false); + } + var toggle = moduleToggle[key]; + + float defaultWidth = drawRect.width; + float defaultX = drawRect.x; +#if UNITY_2019_3_OR_NEWER + drawRect.width = EditorGUIUtility.labelWidth - EditorGUI.indentLevel * INDENT_WIDTH; +#else + drawRect.width = EditorGUIUtility.labelWidth; +#endif + var displayName = string.IsNullOrEmpty(moduleName) ? prop.displayName : moduleName; + var foldoutStyle = bold ? EditorCustomStyles.foldoutStyle : UnityEditor.EditorStyles.foldout; + toggle = EditorGUI.Foldout(drawRect, toggle, displayName, true, foldoutStyle); + + if (moduleToggle[key] != toggle) + { + moduleToggle[key] = toggle; + } + if (showProp != null) + { + drawRect.x = EditorGUIUtility.labelWidth - EditorGUI.indentLevel * INDENT_WIDTH + ARROW_WIDTH; + if (showProp.propertyType == SerializedPropertyType.Boolean) + { + drawRect.width = (EditorGUI.indentLevel + 1) * BOOL_WIDTH; + } + else + { + drawRect.width = defaultWidth - drawRect.x + ARROW_WIDTH - GAP_WIDTH; + } + EditorGUI.PropertyField(drawRect, showProp, GUIContent.none); + } + drawRect.width = defaultWidth; + drawRect.x = defaultX; + return toggle; + } + + public static bool MakeListWithFoldout(ref Rect drawRect, SerializedProperty listProp, bool foldout, + bool showOrder, bool showSize, params HeaderMenuInfo[] menus) + { + var height = 0f; + return MakeListWithFoldout(ref drawRect, ref height, listProp, foldout, showOrder, showSize, menus); + } + + public static bool MakeListWithFoldout(ref Rect drawRect, ref float height, SerializedProperty listProp, + bool foldout, bool showOrder, bool showSize, params HeaderMenuInfo[] menus) + { + var rawWidth = drawRect.width; + var headerHeight = DrawSplitterAndBackground(drawRect); + var foldoutRect = drawRect; + foldoutRect.xMax -= 10; + bool flag = EditorGUI.Foldout(foldoutRect, foldout, listProp.displayName, true); + ChartEditorHelper.DrawMenu(drawRect, menus); + height += headerHeight; + drawRect.y += headerHeight; + drawRect.width = rawWidth; + if (flag) + { + MakeList(ref drawRect, ref height, listProp, showOrder, showSize); + } + return flag; + } + + public static void MakeList(ref Rect drawRect, SerializedProperty listProp, bool showOrder = false, + bool showSize = true) + { + var height = 0f; + MakeList(ref drawRect, ref height, listProp, showOrder, showSize); + } + + public static void MakeList(ref Rect drawRect, ref float height, SerializedProperty listProp, + bool showOrder = false, bool showSize = true) + { + EditorGUI.indentLevel++; + var listSize = listProp.arraySize; + var iconWidth = 14; + var iconGap = 3f; + + if (showSize) + { + var headerHeight = DrawSplitterAndBackground(drawRect); + if (showOrder) + { + var elementRect = new Rect(drawRect.x, drawRect.y, drawRect.width - iconWidth + 2, drawRect.height); + var oldColor = GUI.contentColor; + GUI.contentColor = Color.black; + GUI.contentColor = oldColor; + listSize = listProp.arraySize; + listSize = EditorGUI.IntField(elementRect, "Size", listSize); + } + else + { + listSize = EditorGUI.IntField(drawRect, "Size", listSize); + } + if (listSize < 0) listSize = 0; + drawRect.y += headerHeight; + height += headerHeight; + + if (listSize != listProp.arraySize) + { + while (listSize > listProp.arraySize) listProp.arraySize++; + while (listSize < listProp.arraySize) listProp.arraySize--; + } + } + if (listSize > 30 && !XCSettings.editorShowAllListData) + { + SerializedProperty element; + int num = listSize > 10 ? 10 : listSize; + for (int i = 0; i < num; i++) + { + element = listProp.GetArrayElementAtIndex(i); + DrawSplitterAndBackground(drawRect); + EditorGUI.PropertyField(drawRect, element, new GUIContent("Element " + i)); + drawRect.y += EditorGUI.GetPropertyHeight(element); + height += EditorGUI.GetPropertyHeight(element); + } + if (num >= 10) + { + EditorGUI.LabelField(drawRect, "..."); + drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; + height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; + element = listProp.GetArrayElementAtIndex(listSize - 1); + DrawSplitterAndBackground(drawRect); + EditorGUI.PropertyField(drawRect, element, new GUIContent("Element " + (listSize - 1))); + drawRect.y += EditorGUI.GetPropertyHeight(element) + EditorGUIUtility.standardVerticalSpacing; + height += EditorGUI.GetPropertyHeight(element) + EditorGUIUtility.standardVerticalSpacing; + } + } + else + { + for (int i = 0; i < listProp.arraySize; i++) + { + SerializedProperty element = listProp.GetArrayElementAtIndex(i); + DrawSplitterAndBackground(drawRect); + if (showOrder) + { + var temp = INDENT_WIDTH + GAP_WIDTH + iconGap; + var isSerie = "Serie".Equals(element.type); + var elementRect = isSerie ? + new Rect(drawRect.x, drawRect.y, drawRect.width + INDENT_WIDTH - 2 * iconGap, drawRect.height) : + new Rect(drawRect.x, drawRect.y, drawRect.width - 3 * iconWidth, drawRect.height); + EditorGUI.PropertyField(elementRect, element, new GUIContent("Element " + i)); + var iconRect = new Rect(drawRect.width - 3 * iconWidth + temp, drawRect.y, iconWidth, drawRect.height); + var oldColor = GUI.contentColor; + GUI.contentColor = Color.black; + if (GUI.Button(iconRect, EditorCustomStyles.iconUp, EditorCustomStyles.invisibleButton)) + { + if (i > 0) listProp.MoveArrayElement(i, i - 1); + } + iconRect = new Rect(drawRect.width - 2 * iconWidth + temp, drawRect.y, iconWidth, drawRect.height); + if (GUI.Button(iconRect, EditorCustomStyles.iconDown, EditorCustomStyles.invisibleButton)) + { + if (i < listProp.arraySize - 1) listProp.MoveArrayElement(i, i + 1); + } + iconRect = new Rect(drawRect.width - iconWidth + temp, drawRect.y, iconWidth, drawRect.height); + if (GUI.Button(iconRect, EditorCustomStyles.iconRemove, EditorCustomStyles.invisibleButton)) + { + if (i < listProp.arraySize && i >= 0) listProp.DeleteArrayElementAtIndex(i); + } + else + { + drawRect.y += EditorGUI.GetPropertyHeight(element); + height += EditorGUI.GetPropertyHeight(element); + } + GUI.contentColor = oldColor; + } + else + { + EditorGUI.PropertyField(drawRect, element, new GUIContent("Element " + i)); + drawRect.y += EditorGUI.GetPropertyHeight(element); + height += EditorGUI.GetPropertyHeight(element); + } + } + } + EditorGUI.indentLevel--; + } + + public static bool PropertyField(ref Rect drawRect, Dictionary<string, float> heights, string key, + SerializedProperty prop) + { + if (prop == null) return false; + EditorGUI.PropertyField(drawRect, prop, true); + var hig = EditorGUI.GetPropertyHeight(prop); + drawRect.y += hig; + heights[key] += hig; + return true; + } + + public static bool PropertyFieldWithMinValue(ref Rect drawRect, Dictionary<string, float> heights, string key, + SerializedProperty prop, float minValue) + { + if (prop == null) return false; + EditorGUI.PropertyField(drawRect, prop, true); + if (prop.propertyType == SerializedPropertyType.Float && prop.floatValue < minValue) + prop.floatValue = minValue; + if (prop.propertyType == SerializedPropertyType.Integer && prop.intValue < minValue) + prop.intValue = (int) minValue; + var hig = EditorGUI.GetPropertyHeight(prop); + drawRect.y += hig; + heights[key] += hig; + return true; + } + + public static bool PropertyFieldWithMaxValue(ref Rect drawRect, Dictionary<string, float> heights, string key, + SerializedProperty prop, float maxValue) + { + if (prop == null) return false; + EditorGUI.PropertyField(drawRect, prop, true); + if (prop.propertyType == SerializedPropertyType.Float && prop.floatValue > maxValue) + prop.floatValue = maxValue; + if (prop.propertyType == SerializedPropertyType.Integer && prop.intValue > maxValue) + prop.intValue = (int) maxValue; + var hig = EditorGUI.GetPropertyHeight(prop); + drawRect.y += hig; + heights[key] += hig; + return true; + } + + public static bool PropertyField(ref Rect drawRect, Dictionary<string, float> heights, string key, + SerializedProperty parentProp, string relativeName) + { + return PropertyField(ref drawRect, heights, key, parentProp.FindPropertyRelative(relativeName)); + } + public static bool PropertyFieldWithMinValue(ref Rect drawRect, Dictionary<string, float> heights, string key, + SerializedProperty parentProp, string relativeName, float minValue) + { + var relativeProp = parentProp.FindPropertyRelative(relativeName); + return PropertyFieldWithMinValue(ref drawRect, heights, key, relativeProp, minValue); + } + public static bool PropertyFieldWithMaxValue(ref Rect drawRect, Dictionary<string, float> heights, string key, + SerializedProperty parentProp, string relativeName, float maxValue) + { + var relativeProp = parentProp.FindPropertyRelative(relativeName); + return PropertyFieldWithMaxValue(ref drawRect, heights, key, relativeProp, maxValue); + } + + public static GUIContent GetContent(string textAndTooltip) + { + if (string.IsNullOrEmpty(textAndTooltip)) + return GUIContent.none; + + GUIContent content; + + if (!s_GUIContentCache.TryGetValue(textAndTooltip, out content)) + { + var s = textAndTooltip.Split('|'); + content = new GUIContent(s[0]); + + if (s.Length > 1 && !string.IsNullOrEmpty(s[1])) + content.tooltip = s[1]; + + s_GUIContentCache.Add(textAndTooltip, content); + } + + return content; + } + + public static void DrawSplitter() + { + var rect = GUILayoutUtility.GetRect(1f, 1f); + rect.xMin = 0f; + rect.width += 4f; + DrawSplitter(rect); + } + public static void DrawSplitter(Rect rect) + { + if (Event.current.type != EventType.Repaint) + return; + EditorGUI.DrawRect(rect, EditorCustomStyles.splitter); + } + + public static float DrawSplitterAndBackground(Rect drawRect, bool drawBackground = false) + { + float defaultWidth = drawRect.width; + float defaultX = drawRect.x; + + var splitRect = drawRect; + splitRect.y = drawRect.y; + splitRect.x = EditorGUI.indentLevel * INDENT_WIDTH + 4; + splitRect.xMax = drawRect.xMax; + splitRect.height = 1f; + + DrawSplitter(splitRect); + + if (drawBackground) + { + var bgRect = drawRect; + bgRect.y = drawRect.y; + bgRect.x -= 10 - EditorGUI.indentLevel * INDENT_WIDTH; + bgRect.xMax = drawRect.xMax; + bgRect.height = HEADER_HEIGHT + (EditorGUI.indentLevel < 1 ? 2 : 0); + EditorGUI.DrawRect(bgRect, EditorCustomStyles.headerBackground); + } + return HEADER_HEIGHT; + } + + internal static bool DrawHeader(string title, bool state, bool drawBackground, SerializedProperty activeField, + Action<Rect> drawCallback, params HeaderMenuInfo[] menus) + { + var rect = GUILayoutUtility.GetRect(1f, HEADER_HEIGHT); + var labelRect = DrawHeaderInternal(rect, title, ref state, drawBackground, activeField); + DrawMenu(rect, menus); + if (drawCallback != null) + { + drawCallback(rect); + } + var e = Event.current; + if (e.type == EventType.MouseDown) + { + if (labelRect.Contains(e.mousePosition)) + { + if (e.button == 0) + { + state = !state; + e.Use(); + } + } + } + return state; + } + + internal static bool DrawHeader(string title, bool state, bool drawBackground, SerializedProperty activeField, + Action<Rect> drawCallback, List<HeaderMenuInfo> menus) + { + var rect = GUILayoutUtility.GetRect(1f, HEADER_HEIGHT); + var labelRect = DrawHeaderInternal(rect, title, ref state, drawBackground, activeField); + DrawMenu(rect, menus); + if (drawCallback != null) + { + drawCallback(rect); + } + var e = Event.current; + if (e.type == EventType.MouseDown) + { + if (labelRect.Contains(e.mousePosition)) + { + if (e.button == 0) + { + state = !state; + e.Use(); + } + } + } + return state; + } + + private static Rect DrawHeaderInternal(Rect rect, string title, ref bool state, bool drawBackground, SerializedProperty activeField) + { + var splitRect = rect; + splitRect.x = EditorGUI.indentLevel * INDENT_WIDTH + 4; + splitRect.xMax = rect.xMax; + splitRect.height = 1f; + + var backgroundRect = rect; + backgroundRect.x = splitRect.x; + backgroundRect.xMax = rect.xMax; + + var labelRect = rect; + labelRect.xMin += 0f; + labelRect.xMax -= 35f; + + var foldoutRect = rect; + //foldoutRect.x -= 12f - EditorGUI.indentLevel * INDENT_WIDTH ; + foldoutRect.x = rect.x - FOLDOUT_WIDTH + EditorGUI.indentLevel * INDENT_WIDTH + DIFF_WIDTH; + foldoutRect.y += 1f; + foldoutRect.width = FOLDOUT_WIDTH; + foldoutRect.height = FOLDOUT_WIDTH; + + DrawSplitter(splitRect); + if (drawBackground) + EditorGUI.DrawRect(backgroundRect, EditorCustomStyles.headerBackground); + if (!string.IsNullOrEmpty(title)) + EditorGUI.LabelField(labelRect, GetContent(title)); + state = GUI.Toggle(foldoutRect, state, GUIContent.none, EditorStyles.foldout); + if (activeField != null) + { + var toggleRect = backgroundRect; + toggleRect.x = rect.x + EditorGUIUtility.labelWidth - EditorGUI.indentLevel * INDENT_WIDTH + GAP_WIDTH; + toggleRect.y += 1f; + toggleRect.width = 13f; + toggleRect.height = 13f; + activeField.boolValue = GUI.Toggle(toggleRect, activeField.boolValue, GUIContent.none); + } + return labelRect; + } + + internal static bool DrawHeader(string title, SerializedProperty group, SerializedProperty activeField, + Action resetAction, Action removeAction) + { + if (group == null) return false; + group.isExpanded = DrawHeader(title, group.isExpanded, false, activeField, null, + new HeaderMenuInfo("Reset", resetAction), new HeaderMenuInfo("Remove", removeAction)); + return group.isExpanded; + } + + internal static bool DrawHeader(string title, SerializedProperty group, SerializedProperty activeField, + params HeaderMenuInfo[] menus) + { + group.isExpanded = DrawHeader(title, group.isExpanded, false, activeField, null, menus); + return group.isExpanded; + } + + internal static bool DrawHeader(string title, SerializedProperty group, SerializedProperty activeField, + List<HeaderMenuInfo> menus) + { + group.isExpanded = DrawHeader(title, group.isExpanded, false, activeField, null, menus); + return group.isExpanded; + } + + internal static void DrawMenu(Rect parentRect, params HeaderMenuInfo[] menus) + { + if (menus == null || menus.Length <= 0) return; + var menuIcon = EditorCustomStyles.paneOptionsIcon; + var menuRect = new Rect(parentRect.xMax - menuIcon.width, parentRect.y + 2f, + menuIcon.width, menuIcon.height); + GUI.DrawTexture(menuRect, menuIcon); + var e = Event.current; + if (e.type == EventType.MouseDown) + { + if (menuRect.Contains(e.mousePosition)) + { + ShowHeaderContextMenu(new Vector2(menuRect.x, menuRect.yMax), menus); + e.Use(); + } + else if (parentRect.Contains(e.mousePosition)) + { + if (e.button != 0) + { + ShowHeaderContextMenu(e.mousePosition, menus); + e.Use(); + } + } + } + } + + internal static void DrawMenu(Rect parentRect, List<HeaderMenuInfo> menus) + { + if (menus == null || menus.Count <= 0) return; + var menuIcon = EditorCustomStyles.paneOptionsIcon; + var menuRect = new Rect(parentRect.xMax - menuIcon.width, parentRect.y + 2f, + menuIcon.width, menuIcon.height); + GUI.DrawTexture(menuRect, menuIcon); + var e = Event.current; + if (e.type == EventType.MouseDown) + { + if (menuRect.Contains(e.mousePosition)) + { + ShowHeaderContextMenu(new Vector2(menuRect.x, menuRect.yMax), menus); + e.Use(); + } + else if (parentRect.Contains(e.mousePosition)) + { + if (e.button != 0) + { + ShowHeaderContextMenu(e.mousePosition, menus); + e.Use(); + } + } + } + } + + static void ShowHeaderContextMenu(Vector2 position, params HeaderMenuInfo[] menus) + { + if (menus == null || menus.Length <= 0) return; + var menu = new GenericMenu(); + foreach (var info in menus) + { + if (info.enable) + menu.AddItem(GetContent(info.name), false, () => info.action()); + else + menu.AddDisabledItem(GetContent(info.name)); + } + menu.DropDown(new Rect(position, Vector2.zero)); + } + static void ShowHeaderContextMenu(Vector2 position, List<HeaderMenuInfo> menus) + { + if (menus == null || menus.Count <= 0) return; + var menu = new GenericMenu(); + foreach (var info in menus) + { + if (info.enable) + menu.AddItem(GetContent(info.name), false, () => info.action()); + else + menu.AddDisabledItem(GetContent(info.name)); + } + menu.DropDown(new Rect(position, Vector2.zero)); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities/ChartEditorHelper.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities/ChartEditorHelper.cs.meta new file mode 100644 index 0000000..570f008 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities/ChartEditorHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bd22466b776d93c4cb0b252ee510cc7a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities/EditorStyles.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities/EditorStyles.cs new file mode 100644 index 0000000..602a269 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities/EditorStyles.cs @@ -0,0 +1,32 @@ +using UnityEditor; +using UnityEngine; + +namespace XCharts.Editor +{ + public class EditorCustomStyles + { + static readonly Color splitterDark = new Color(0.12f, 0.12f, 0.12f, 0.5f); + static readonly Color splitterLight = new Color(0.6f, 0.6f, 0.6f, 0.5f); + static readonly Texture2D paneOptionsIconDark = (Texture2D) EditorGUIUtility.Load("Builtin Skins/DarkSkin/Images/pane options.png"); + static readonly Texture2D paneOptionsIconLight = (Texture2D) EditorGUIUtility.Load("Builtin Skins/LightSkin/Images/pane options.png"); + static readonly Color headerBackgroundDark = new Color(0.1f, 0.1f, 0.1f, 0.2f); + static readonly Color headerBackgroundLight = new Color(1f, 1f, 1f, 0.2f); + + public static readonly GUIStyle headerStyle = UnityEditor.EditorStyles.boldLabel; + public static readonly GUIStyle foldoutStyle = new GUIStyle(UnityEditor.EditorStyles.foldout) + { + font = headerStyle.font, + fontStyle = headerStyle.fontStyle, + }; + public static readonly GUIContent iconAdd = new GUIContent("+", "Add"); + public static readonly GUIContent iconRemove = new GUIContent("-", "Remove"); + public static readonly GUIContent iconUp = new GUIContent("↑", "Up"); + public static readonly GUIContent iconDown = new GUIContent("↓", "Down"); + public static readonly GUIStyle invisibleButton = "InvisibleButton"; + public static readonly GUIStyle smallTickbox = new GUIStyle("ShurikenToggle"); + + public static Color splitter { get { return EditorGUIUtility.isProSkin ? splitterDark : splitterLight; } } + public static Texture2D paneOptionsIcon { get { return EditorGUIUtility.isProSkin ? paneOptionsIconDark : paneOptionsIconLight; } } + public static Color headerBackground { get { return EditorGUIUtility.isProSkin ? headerBackgroundDark : headerBackgroundLight; } } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities/EditorStyles.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities/EditorStyles.cs.meta new file mode 100644 index 0000000..7e7555c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities/EditorStyles.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f91656ebb897d40d49795e4701f255f9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities/ThemeCheck.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities/ThemeCheck.cs new file mode 100644 index 0000000..bb31b35 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities/ThemeCheck.cs @@ -0,0 +1,71 @@ +using System.IO; +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + internal static class ThemeCheck + { + public class ThemeAssetPostprocessor : AssetPostprocessor + { + static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, + string[] movedFromAssetsPaths) + { + foreach (var assetPath in importedAssets) + { + CheckAddedAsset(assetPath); + } + foreach (var assetPath in deletedAssets) + { + CheckDeletedAsset(assetPath); + } + } + } + + public static void CheckAddedAsset(string assetPath) + { + var fileName = Path.GetFileName(assetPath); + if (fileName.Equals("XCSettings.asset")) + { + XCThemeMgr.ReloadThemeList(); + return; + } + if (!IsThemeAsset(assetPath)) return; + var theme = AssetDatabase.LoadAssetAtPath<Theme>(assetPath); + if (XCSettings.AddCustomTheme(theme)) + { + XCThemeMgr.ReloadThemeList(); + } + } + + public static void CheckDeletedAsset(string assetPath) + { + if (!IsThemeAsset(assetPath)) return; + if (XCSettings.Instance == null) return; + var themes = XCSettings.customThemes; + var changed = false; + + for (int i = themes.Count - 1; i >= 0; i--) + { + if (themes[i] == null) + { + themes.RemoveAt(i); + changed = true; + } + } + if (changed) + { + XCThemeMgr.ReloadThemeList(); + } + } + + private static bool IsThemeAsset(string assetPath) + { + if (!assetPath.EndsWith(".asset")) return false; + var assetName = Path.GetFileNameWithoutExtension(assetPath); + if (!assetName.StartsWith(XCSettings.THEME_ASSET_NAME_PREFIX)) return false; + return true; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities/ThemeCheck.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities/ThemeCheck.cs.meta new file mode 100644 index 0000000..17375c1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Utilities/ThemeCheck.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4b4ba2a9503ae46b1b7b1ae94ec59127 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Widgets.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Widgets.meta new file mode 100644 index 0000000..cd48390 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Widgets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b92d575a960f54e9a9417cca092d1e11 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Widgets/ProgressBarEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Widgets/ProgressBarEditor.cs new file mode 100644 index 0000000..112269b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Widgets/ProgressBarEditor.cs @@ -0,0 +1,51 @@ +using UnityEditor; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomEditor(typeof(ProgressBar), false)] + public class ProgressBarEditor : UnityEditor.Editor + { + + [MenuItem("XCharts/ProgressBar", priority = 200)] + [MenuItem("GameObject/XCharts/ProgressBar", priority = 200)] + public static void AddPyramidChart() + { + XChartsEditor.AddChart<ProgressBar>("ProgressBar"); + } + + protected SerializedProperty m_Script; + protected SerializedProperty m_Value; + protected SerializedProperty m_BackgroundColor; + protected SerializedProperty m_StartColor; + protected SerializedProperty m_EndColor; + protected SerializedProperty m_CornerRadius; + + protected virtual void OnEnable() + { + m_Script = serializedObject.FindProperty("m_Script"); + m_Value = serializedObject.FindProperty("m_Value"); + m_BackgroundColor = serializedObject.FindProperty("m_BackgroundColor"); + m_StartColor = serializedObject.FindProperty("m_StartColor"); + m_EndColor = serializedObject.FindProperty("m_EndColor"); + m_CornerRadius = serializedObject.FindProperty("m_CornerRadius"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + OnStartInspectorGUI(); + serializedObject.ApplyModifiedProperties(); + } + + protected virtual void OnStartInspectorGUI() + { + EditorGUILayout.PropertyField(m_Script); + EditorGUILayout.PropertyField(m_BackgroundColor); + EditorGUILayout.PropertyField(m_StartColor); + EditorGUILayout.PropertyField(m_EndColor); + EditorGUILayout.PropertyField(m_Value); + EditorGUILayout.PropertyField(m_CornerRadius); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Widgets/ProgressBarEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Widgets/ProgressBarEditor.cs.meta new file mode 100644 index 0000000..37bbd28 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Widgets/ProgressBarEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 17cd5e3604edc43e5b7b6bfc3c71857b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows.meta new file mode 100644 index 0000000..6e597ab --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ac8865193d4f548d2aaf66163c4192d9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows/PraseExternalDataEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows/PraseExternalDataEditor.cs new file mode 100644 index 0000000..2e7667a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows/PraseExternalDataEditor.cs @@ -0,0 +1,238 @@ +using System; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + public class PraseExternalDataEditor : UnityEditor.EditorWindow + { + private static BaseChart s_Chart; + private static Serie s_Serie; + private static Axis s_Axis; + private static PraseExternalDataEditor window; + private static string inputJsonText = ""; + + public static void ShowWindow() + { + window = GetWindow<PraseExternalDataEditor>(); + window.titleContent = new GUIContent("PraseExternalData"); + window.minSize = new Vector2(450, 550); + window.Focus(); + window.Show(); + } + + public static void UpdateData(BaseChart chart, Serie serie, Axis axis) + { + s_Chart = chart; + s_Serie = serie; + s_Axis = axis; + inputJsonText = UnityEngine.GUIUtility.systemCopyBuffer; + } + + void OnInspectorUpdate() + { + Repaint(); + } + + private void OnGUI() + { + if (s_Chart == null) + { + Close(); + return; + } + EditorGUILayout.LabelField("Input external data (echarts data):"); + inputJsonText = EditorGUILayout.TextArea(inputJsonText, GUILayout.Height(400)); + if (GUILayout.Button("Add")) + { + if (s_Serie != null) + { + if (!ParseArrayData(s_Serie, inputJsonText)) + { + if (ParseJsonData(s_Serie, inputJsonText)) + inputJsonText = ""; + } + else + { + inputJsonText = ""; + } + } + else if (s_Axis != null) + { + if (!ParseArrayData(s_Axis, inputJsonText)) + { + if (ParseJsonData(s_Axis, inputJsonText)) + inputJsonText = ""; + } + else + { + inputJsonText = ""; + } + } + } + } + + private static bool ParseArrayData(Axis axis, string arrayData) + { + arrayData = arrayData.Trim(); + if (!arrayData.StartsWith("data: Array")) return false; + axis.data.Clear(); + var list = arrayData.Split('\n'); + for (int i = 1; i < list.Length; i++) + { + var temp = list[i].Split(':'); + if (temp.Length == 2) + { + var category = temp[1].Replace("\"", "").Trim(); + axis.data.Add(category); + } + } + axis.SetAllDirty(); + return true; + } + + private static bool ParseArrayData(Serie serie, string arrayData) + { + arrayData = arrayData.Trim(); + if (!arrayData.StartsWith("data: Array")) return false; + serie.ClearData(); + var list = arrayData.Split('\n'); + for (int i = 1; i < list.Length; i++) + { + var temp = list[i].Split(':'); + if (temp.Length == 2) + { + var strvalue = temp[1].Replace("\"", "").Trim(); + var value = 0d; + var flag = double.TryParse(strvalue, out value); + if (flag) + { + serie.AddYData(value); + } + } + } + serie.SetAllDirty(); + return true; + } + + private static bool ParseJsonData(Axis axis, string jsonData) + { + if (!CheckJsonData(ref jsonData)) return false; + axis.data.Clear(); + string[] datas = jsonData.Split(','); + for (int i = 0; i < datas.Length; i++) + { + var txt = datas[i].Trim().Replace("[", "").Replace("]", ""); + var value = 0d; + if (!double.TryParse(txt, out value)) + axis.data.Add(txt.Replace("\'", "").Replace("\"", "")); + } + axis.SetAllDirty(); + return true; + } + + /// <summary> + /// 从json中导入数据 + /// </summary> + /// <param name="jsonData"></param> + private static bool ParseJsonData(Serie serie, string jsonData) + { + if (!CheckJsonData(ref jsonData)) return false; + serie.ClearData(); + if (jsonData.IndexOf("],") > -1 || jsonData.IndexOf("] ,") > -1) + { + string[] datas = jsonData.Split(new string[] { "],", "] ," }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < datas.Length; i++) + { + var data = datas[i].Replace("[", "").Replace("]", "").Split(new char[] { '[', ',' }, StringSplitOptions.RemoveEmptyEntries); + var serieData = new SerieData(); + double value = 0; + if (data.Length == 2 && !double.TryParse(data[0], out value)) + { + double.TryParse(data[1], out value); + serieData.data = new List<double>() { i, value }; + serieData.name = data[0].Replace("\"", "").Trim(); + } + else + { + for (int j = 0; j < data.Length; j++) + { + var txt = data[j].Trim().Replace("]", ""); + var flag = double.TryParse(txt, out value); + if (flag) + { + serieData.data.Add(value); + } + else serieData.name = txt.Replace("\"", "").Trim(); + } + } + serie.AddSerieData(serieData); + } + } + else if (jsonData.IndexOf("value") > -1 && jsonData.IndexOf("name") > -1) + { + string[] datas = jsonData.Split(new string[] { "},", "} ,", "}" }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < datas.Length; i++) + { + var arr = datas[i].Replace("{", "").Split(','); + var serieData = new SerieData(); + foreach (var a in arr) + { + if (a.StartsWith("value:")) + { + double value = double.Parse(a.Substring(6, a.Length - 6)); + serieData.data = new List<double>() { i, value }; + } + else if (a.StartsWith("name:")) + { + string name = a.Substring(6, a.Length - 6 - 1); + serieData.name = name; + } + else if (a.StartsWith("selected:")) + { + string selected = a.Substring(9, a.Length - 9); + serieData.selected = bool.Parse(selected); + } + } + serie.AddSerieData(serieData); + } + } + else + { + string[] datas = jsonData.Split(','); + for (int i = 0; i < datas.Length; i++) + { + double value; + var flag = double.TryParse(datas[i].Trim(), out value); + if (flag) + { + var serieData = new SerieData(); + serieData.data = new List<double>() { i, value }; + serie.AddSerieData(serieData); + } + } + } + serie.SetAllDirty(); + return true; + } + + private static bool CheckJsonData(ref string jsonData) + { + if (string.IsNullOrEmpty(jsonData)) return false; + jsonData = jsonData.Replace("\r\n", ""); + jsonData = jsonData.Replace(" ", ""); + jsonData = jsonData.Replace("\n", ""); + int startIndex = jsonData.IndexOf("["); + int endIndex = jsonData.LastIndexOf("]"); + if (startIndex == -1 || endIndex == -1) + { + Debug.LogError("json data need include in [ ]"); + return false; + } + jsonData = jsonData.Substring(startIndex + 1, endIndex - startIndex - 1); + return true; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows/PraseExternalDataEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows/PraseExternalDataEditor.cs.meta new file mode 100644 index 0000000..045abf1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows/PraseExternalDataEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b41bbccd77d88460aba5bcf81b4920ce +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows/XCSettingsEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows/XCSettingsEditor.cs new file mode 100644 index 0000000..c03ef5b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows/XCSettingsEditor.cs @@ -0,0 +1,59 @@ +using UnityEditor; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + [CustomEditor(typeof(XCSettings))] + public class XCSettingsEditor : UnityEditor.Editor + { + internal class Styles + { + public static readonly GUIContent defaultFontAssetLabel = new GUIContent("Default Font Asset", "The Font Asset that will be assigned by default to newly created text objects when no Font Asset is specified."); + public static readonly GUIContent defaultFontAssetPathLabel = new GUIContent("Path: Resources/", "The relative path to a Resources folder where the Font Assets and Material Presets are located.\nExample \"Fonts & Materials/\""); + } + } + +#if UNITY_2018_3_OR_NEWER + class XCResourceImporterProvider : SettingsProvider + { + XCResourcesImporter m_ResourceImporter; + + public XCResourceImporterProvider() : base("Project/XCharts", SettingsScope.Project) + { } + + public override void OnGUI(string searchContext) + { + if (m_ResourceImporter == null) + m_ResourceImporter = new XCResourcesImporter(); + + m_ResourceImporter.OnGUI(); + } + + public override void OnDeactivate() + { + if (m_ResourceImporter != null) + m_ResourceImporter.OnDestroy(); + } + + static UnityEngine.Object GetSettings() + { + return Resources.Load<XCSettings>("XCSettings"); + } + + [SettingsProviderGroup] + static SettingsProvider[] CreateXCSettingsProvider() + { + var providers = new System.Collections.Generic.List<SettingsProvider> { new XCResourceImporterProvider() }; + if (GetSettings() != null) + { + var provider = new AssetSettingsProvider("Project/XCharts/Settings", GetSettings); + provider.PopulateSearchKeywordsFromGUIContentProperties<XCSettingsEditor.Styles>(); + providers.Add(provider); + } + + return providers.ToArray(); + } + } +#endif +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows/XCSettingsEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows/XCSettingsEditor.cs.meta new file mode 100644 index 0000000..dedbd2d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows/XCSettingsEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4a1acb5e9cc3740aabbaaccd4ec9b8b8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows/XChartsEditor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows/XChartsEditor.cs new file mode 100644 index 0000000..47042a7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows/XChartsEditor.cs @@ -0,0 +1,197 @@ +using UnityEditor; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +using XCharts.Runtime; + +namespace XCharts.Editor +{ + public class XChartsEditor : UnityEditor.Editor + { + private static Transform GetParent() + { + GameObject selectObj = Selection.activeGameObject; + if (selectObj == null) + { + var canvas = GameObject.FindObjectOfType<Canvas>(); + if (canvas != null) return canvas.transform; + else + { + var canvasObject = new GameObject(); + canvasObject.name = "Canvas"; + canvas = canvasObject.AddComponent<Canvas>(); + canvas.renderMode = RenderMode.ScreenSpaceOverlay; + canvasObject.AddComponent<CanvasScaler>(); + canvasObject.AddComponent<GraphicRaycaster>(); + var eventSystem = new GameObject(); + eventSystem.name = "EventSystem"; + eventSystem.AddComponent<EventSystem>(); + eventSystem.AddComponent<StandaloneInputModule>(); + return canvas.transform; + } + } + else + { + return selectObj.transform; + } + } + + private static string GetName(Transform parent, string name) + { + if (parent.Find(name) == null) return name; + for (int i = 1; i <= 10; i++) + { + var newName = string.Format("{0} ({1})", name, i); + if (parent.Find(newName) == null) + { + return newName; + } + } + return name; + } + + public static T AddChart<T>(string chartName) where T : BaseChart + { + var parent = GetParent(); + if (parent == null) return null; + XCThemeMgr.CheckReloadTheme(); + var chart = new GameObject(); + chart.name = GetName(parent, chartName); + var t = chart.AddComponent<T>(); + chart.transform.SetParent(parent); + chart.transform.localScale = Vector3.one; + chart.transform.localPosition = Vector3.zero; + var rect = chart.GetComponent<RectTransform>(); + rect.anchorMin = new Vector2(0.5f, 0.5f); + rect.anchorMax = new Vector2(0.5f, 0.5f); + rect.pivot = new Vector2(0.5f, 0.5f); + Selection.activeGameObject = chart; + EditorUtility.SetDirty(chart); + return t; + } + + [MenuItem("XCharts/EmptyChart", priority = 43)] + [MenuItem("GameObject/XCharts/EmptyChart", priority = 43)] + public static void AddBaseChart() + { + var chart = AddChart<BaseChart>("EmptyChart"); + chart.GetChartComponent<Title>().text = "EmptyChart"; + } + + [MenuItem("XCharts/LineChart", priority = 44)] + [MenuItem("GameObject/XCharts/LineChart", priority = 44)] + public static void AddLineChart() + { + AddChart<LineChart>("LineChart"); + } + + [MenuItem("XCharts/BarChart", priority = 45)] + [MenuItem("GameObject/XCharts/BarChart", priority = 45)] + public static void AddBarChart() + { + AddChart<BarChart>("BarChart"); + } + + [MenuItem("XCharts/PieChart", priority = 46)] + [MenuItem("GameObject/XCharts/PieChart", priority = 46)] + public static void AddPieChart() + { + AddChart<PieChart>("PieChart"); + } + + [MenuItem("XCharts/RadarChart", priority = 47)] + [MenuItem("GameObject/XCharts/RadarChart", priority = 47)] + public static void AddRadarChart() + { + AddChart<RadarChart>("RadarChart"); + } + + [MenuItem("XCharts/ScatterChart", priority = 48)] + [MenuItem("GameObject/XCharts/ScatterChart", priority = 48)] + public static void AddScatterChart() + { + AddChart<ScatterChart>("ScatterChart"); + } + + [MenuItem("XCharts/HeatmapChart", priority = 49)] + [MenuItem("GameObject/XCharts/HeatmapChart", priority = 49)] + public static void AddHeatmapChart() + { + AddChart<HeatmapChart>("HeatmapChart"); + } + + [MenuItem("XCharts/RingChart", priority = 51)] + [MenuItem("GameObject/XCharts/RingChart", priority = 51)] + public static void AddRingChart() + { + AddChart<RingChart>("RingChart"); + } + + [MenuItem("XCharts/CandlestickChart", priority = 54)] + [MenuItem("GameObject/XCharts/CandlestickChart", priority = 54)] + public static void CandlestickChart() + { + AddChart<CandlestickChart>("CandlestickChart"); + } + + [MenuItem("XCharts/PolarChart", priority = 54)] + [MenuItem("GameObject/XCharts/PolarChart", priority = 54)] + public static void PolarChart() + { + AddChart<PolarChart>("PolarChart"); + } + + [MenuItem("XCharts/ParallelChart", priority = 55)] + [MenuItem("GameObject/XCharts/ParallelChart", priority = 55)] + public static void ParallelChart() + { + AddChart<ParallelChart>("ParallelChart"); + } + + [MenuItem("XCharts/SimplifiedLineChart", priority = 56)] + [MenuItem("GameObject/XCharts/SimplifiedLineChart", priority = 56)] + public static void SimplifiedLineChart() + { + AddChart<SimplifiedLineChart>("SimplifiedLineChart"); + } + + [MenuItem("XCharts/SimplifiedBarChart", priority = 57)] + [MenuItem("GameObject/XCharts/SimplifiedBarChart", priority = 57)] + public static void SimplifiedBarChart() + { + AddChart<SimplifiedBarChart>("SimplifiedBarChart"); + } + + [MenuItem("XCharts/SimplifiedCandlestickChart", priority = 58)] + [MenuItem("GameObject/XCharts/SimplifiedCandlestickChart", priority = 58)] + public static void SimplifiedCandlestickChart() + { + AddChart<SimplifiedCandlestickChart>("SimplifiedCandlestickChart"); + } + + [MenuItem("XCharts/Themes Reload")] + public static void ReloadTheme() + { + XCThemeMgr.ReloadThemeList(); + } + + [MenuItem("XCharts/TextMeshPro Enable")] + public static void EnableTextMeshPro() + { + if (!XChartsMgr.IsExistTMPAssembly()) + { + Debug.LogError("TextMeshPro is not in the project, please import TextMeshPro package first."); + return; + } + XChartsMgr.EnableTextMeshPro(); + XChartsMgr.ModifyTMPRefence(); + } + + [MenuItem("XCharts/TextMeshPro Disable")] + public static void DisableTextMeshPro() + { + XChartsMgr.ModifyTMPRefence(true); + XChartsMgr.DisableTextMeshPro(); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows/XChartsEditor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows/XChartsEditor.cs.meta new file mode 100644 index 0000000..00e4a88 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/Windows/XChartsEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 941beb76fdaa64a27a2df6561893157e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/XCharts.Editor.asmdef b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/XCharts.Editor.asmdef new file mode 100644 index 0000000..4371b9b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/XCharts.Editor.asmdef @@ -0,0 +1,17 @@ +{ + "name": "XCharts.Editor", + "references": [ + "XCharts.Runtime" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/XCharts.Editor.asmdef.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/XCharts.Editor.asmdef.meta new file mode 100644 index 0000000..a0fad90 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Editor/XCharts.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9639efc34ea6e4056830a23233b99b16 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples.meta new file mode 100644 index 0000000..574f1ff --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0cfb5d7eeb260491b9d2545237eab7ce +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example00_CheatSheet.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example00_CheatSheet.cs new file mode 100644 index 0000000..99bce3d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example00_CheatSheet.cs @@ -0,0 +1,322 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + public class Example00_CheatSheet : MonoBehaviour + { + private LineChart chart; + private float speed = 100f; + + void Awake() + { + LoopDemo(); + } + + private void OnEnable() + { + LoopDemo(); + } + + void LoopDemo() + { + StopAllCoroutines(); + StartCoroutine(CheatSheet()); + } + + IEnumerator CheatSheet() + { + StartCoroutine(InitChart()); + StartCoroutine(ComponentTitle()); + yield return new WaitForSeconds(2); + StartCoroutine(ComponentAxis()); + yield return new WaitForSeconds(2); + StartCoroutine(ComponentGrid()); + yield return new WaitForSeconds(2); + StartCoroutine(ComponentSerie()); + yield return new WaitForSeconds(4); + StartCoroutine(ComponentLegend()); + yield return new WaitForSeconds(4); + StartCoroutine(ComponentTheme()); + yield return new WaitForSeconds(4); + StartCoroutine(ComponentDataZoom()); + yield return new WaitForSeconds(5); + StartCoroutine(ComponentVisualMap()); + yield return new WaitForSeconds(3); + LoopDemo(); + } + + IEnumerator InitChart() + { + chart = gameObject.GetComponent<LineChart>(); + if (chart == null) gameObject.AddComponent<LineChart>(); + + chart.GetChartComponent<Title>().show = true; + chart.GetChartComponent<Title>().text = "术语解析-组件"; + + var grid = chart.GetOrAddChartComponent<GridCoord>(); + grid.bottom = 30; + grid.right = 30; + grid.left = 50; + grid.top = 80; + + chart.RemoveChartComponent<VisualMap>(); + + chart.RemoveData(); + + chart.AddSerie<Bar>("Bar"); + chart.AddSerie<Line>("Line"); + + for (int i = 0; i < 8; i++) + { + chart.AddXAxisData("x" + (i + 1)); + chart.AddData(0, Random.Range(10, 100)); + chart.AddData(1, Random.Range(30, 100)); + } + yield return null; + } + + IEnumerator ComponentTitle() + { + chart.GetChartComponent<Title>().text = "术语解析 - 组件"; + chart.GetChartComponent<Title>().subText = "Title 标题:可指定主标题和子标题"; + chart.GetChartComponent<XAxis>().show = true; + chart.GetChartComponent<YAxis>().show = true; + chart.GetChartComponent<Legend>().show = false; + chart.series[0].show = false; + chart.series[1].show = false; + + for (int i = 0; i < 4; i++) + { + chart.GetChartComponent<Title>().show = !chart.GetChartComponent<Title>().show; + chart.RefreshChart(); + yield return new WaitForSeconds(0.2f); + } + chart.GetChartComponent<Title>().show = true; + chart.RefreshChart(); + } + + IEnumerator ComponentAxis() + { + chart.GetChartComponent<Title>().subText = "Axis 坐标轴:配置X和Y轴的轴线、刻度、标签等样式外观配置"; + chart.series[0].show = false; + chart.series[1].show = false; + var xAxis = chart.GetChartComponent<XAxis>(); + var yAxis = chart.GetChartComponent<YAxis>(); + for (int i = 0; i < 4; i++) + { + xAxis.show = !xAxis.show; + yAxis.show = !yAxis.show; + chart.RefreshChart(); + yield return new WaitForSeconds(0.2f); + } + xAxis.show = true; + yAxis.show = true; + chart.RefreshChart(); + yield return new WaitForSeconds(1f); + } + + IEnumerator ComponentGrid() + { + chart.GetChartComponent<Title>().subText = "Grid 网格:调整坐标系边距和颜色等"; + var grid = chart.GetChartComponent<GridCoord>(); + for (int i = 0; i < 4; i++) + { + grid.backgroundColor = i % 2 == 0 ? Color.clear : Color.grey; + chart.RefreshChart(); + yield return new WaitForSeconds(0.2f); + } + grid.backgroundColor = Color.clear; + chart.RefreshChart(); + yield return new WaitForSeconds(1f); + } + + IEnumerator ComponentSerie() + { + chart.GetChartComponent<Title>().subText = "Serie 系列:调整坐标系边距和颜色等"; + chart.series[0].show = true; + chart.series[1].show = true; + chart.AnimationReset(); + chart.RefreshChart(); + yield return new WaitForSeconds(1.2f); + for (int i = 0; i < 4; i++) + { + chart.series[0].show = !chart.series[0].show; + chart.series[1].show = !chart.series[1].show; + chart.RefreshChart(); + yield return new WaitForSeconds(0.2f); + } + chart.series[0].show = true; + chart.series[1].show = true; + chart.RefreshChart(); + yield return new WaitForSeconds(1f); + } + + IEnumerator ComponentLegend() + { + chart.GetChartComponent<Title>().subText = "Legend 图例:展示不同系列的名字和颜色,可控制系列显示等"; + var legend = chart.GetChartComponent<Legend>(); + legend.show = true; + var grid = chart.GetChartComponent<GridCoord>(); + grid.top = 80; + legend.location.top = 50; + chart.RefreshChart(); + yield return new WaitForSeconds(1f); + for (int i = 0; i < 4; i++) + { + legend.show = !legend.show; + chart.RefreshChart(); + yield return new WaitForSeconds(0.2f); + } + legend.show = true; + chart.RefreshChart(); + yield return new WaitForSeconds(1f); + chart.ClickLegendButton(0, "Line", false); + yield return new WaitForSeconds(0.2f); + chart.ClickLegendButton(0, "Line", true); + yield return new WaitForSeconds(0.5f); + + chart.ClickLegendButton(1, "Bar", false); + yield return new WaitForSeconds(0.2f); + chart.ClickLegendButton(1, "Bar", true); + yield return new WaitForSeconds(0.5f); + } + + IEnumerator ComponentTheme() + { + chart.GetChartComponent<Title>().subText = "Theme 主题:可从全局上配置图表的颜色、字体等效果,支持默认主题切换"; + yield return new WaitForSeconds(1f); + chart.GetChartComponent<Title>().subText = "Theme 主题:Light主题"; + chart.UpdateTheme(ThemeType.Light); + yield return new WaitForSeconds(1f); + chart.GetChartComponent<Title>().subText = "Theme 主题:Dark主题"; + chart.UpdateTheme(ThemeType.Dark); + yield return new WaitForSeconds(1f); + chart.GetChartComponent<Title>().subText = "Theme 主题:Default主题"; + chart.UpdateTheme(ThemeType.Default); + yield return new WaitForSeconds(1f); + } + + IEnumerator ComponentDataZoom() + { + chart.GetChartComponent<Title>().subText = "DataZoom 区域缩放:可通过拖、拽、缩小、放大来观察细节数据"; + var grid = chart.GetChartComponent<GridCoord>(); + grid.bottom = 70; + + var dataZoom = chart.GetOrAddChartComponent<DataZoom>(); + dataZoom.enable = true; + dataZoom.supportInside = true; + dataZoom.supportSlider = true; + dataZoom.start = 0; + dataZoom.end = 100; + + chart.RefreshChart(); + for (int i = 0; i < 4; i++) + { + dataZoom.supportSlider = !dataZoom.supportSlider; + chart.RefreshChart(); + yield return new WaitForSeconds(0.2f); + } + dataZoom.supportSlider = true; + chart.RefreshChart(); + yield return new WaitForSeconds(1f); + while (dataZoom.start < 40) + { + dataZoom.start += speed * Time.deltaTime * 0.8f; + chart.RefreshDataZoom(); + chart.RefreshChart(); + yield return null; + } + while (dataZoom.end > 60) + { + dataZoom.end -= speed * Time.deltaTime * 0.8f; + chart.RefreshDataZoom(); + chart.RefreshChart(); + yield return null; + } + while (dataZoom.start > 0) + { + dataZoom.start -= speed * Time.deltaTime * 0.8f; + dataZoom.end -= speed * Time.deltaTime * 0.8f; + chart.RefreshDataZoom(); + chart.RefreshChart(); + yield return null; + } + while (dataZoom.end < 100) + { + dataZoom.start += speed * Time.deltaTime * 0.8f; + dataZoom.end += speed * Time.deltaTime * 0.8f; + chart.RefreshDataZoom(); + chart.RefreshChart(); + yield return null; + } + while (dataZoom.start > 0 || dataZoom.end < 100) + { + dataZoom.start -= speed * Time.deltaTime * 0.8f; + dataZoom.end += speed * Time.deltaTime * 0.8f; + chart.RefreshDataZoom(); + chart.RefreshChart(); + yield return null; + } + } + + IEnumerator ComponentVisualMap() + { + chart.GetChartComponent<Title>().subText = "VisualMap 视觉映射:可从全局上配置图表的颜色、字体等效果,支持默认主题切换"; + + var visualMap = chart.GetOrAddChartComponent<VisualMap>(); + visualMap.show = true; + visualMap.showUI = true; + visualMap.orient = Orient.Vertical; + visualMap.calculable = true; + visualMap.min = 0; + visualMap.max = 100; + visualMap.range[0] = 0; + visualMap.range[1] = 100; + + var colors = new List<string> + { + "#313695", + "#4575b4", + "#74add1", + "#abd9e9", + "#e0f3f8", + "#ffffbf", + "#fee090", + "#fdae61", + "#f46d43", + "#d73027", + "#a50026" + }; + visualMap.AddColors(colors); + var grid = chart.GetChartComponent<GridCoord>(); + grid.left = 80; + grid.bottom = 100; + chart.RefreshChart(); + + yield return new WaitForSeconds(1f); + while (visualMap.rangeMin < 40) + { + visualMap.rangeMin += speed * Time.deltaTime; + chart.RefreshChart(); + yield return null; + } + while (visualMap.rangeMax > 60) + { + visualMap.rangeMax -= speed * Time.deltaTime; + chart.RefreshChart(); + yield return null; + } + while (visualMap.rangeMin > 0 || visualMap.rangeMax < 100) + { + visualMap.rangeMin -= speed * Time.deltaTime; + visualMap.rangeMax += speed * Time.deltaTime; + chart.RefreshChart(); + yield return null; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example00_CheatSheet.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example00_CheatSheet.cs.meta new file mode 100644 index 0000000..2cfe1ac --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example00_CheatSheet.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 677b2673e728a4e308f26a5a9b236277 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example01_UpdateData.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example01_UpdateData.cs new file mode 100644 index 0000000..171de5d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example01_UpdateData.cs @@ -0,0 +1,46 @@ +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + [ExecuteInEditMode] + public class Example01_UpdateData : MonoBehaviour + { + private float updateTime = 0; + BaseChart chart; + void Awake() + { + chart = gameObject.GetComponent<BaseChart>(); + } + + void Update() + { + updateTime += Time.deltaTime; + if (chart && updateTime > 2) + { + updateTime = 0; + var serie = chart.GetSerie(0); + //serie.animation.dataChangeEnable = true; + var dataCount = serie.dataCount; + if (chart is RadarChart) + { + var dimension = serie.GetSerieData(0).data.Count - 1; + chart.UpdateData(0, 0, Random.Range(0, dimension + 1), Random.Range(0, 100)); + } + else if (chart is HeatmapChart) + { + var dimension = serie.GetSerieData(0).data.Count - 1; + for (int i = 0; i < dataCount; i++) + { + chart.UpdateData(0, i, dimension, Random.Range(0, 10)); + } + } + else + { + chart.UpdateData(0, Random.Range(0, dataCount), Random.Range(10, 90)); + } + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example01_UpdateData.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example01_UpdateData.cs.meta new file mode 100644 index 0000000..827c051 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example01_UpdateData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d369a0cba6716422cb15efa26bef0918 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example02_ChartEvent.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example02_ChartEvent.cs new file mode 100644 index 0000000..59066a4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example02_ChartEvent.cs @@ -0,0 +1,58 @@ +using UnityEngine; +using UnityEngine.EventSystems; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + [ExecuteInEditMode] + public class Example02_ChartEvent : MonoBehaviour + { + BaseChart chart; + + void Awake() + { + chart = gameObject.GetComponent<BaseChart>(); + if (chart == null) + { + chart = gameObject.AddComponent<LineChart>(); + } + chart.onPointerEnter = OnPointerEnter; + chart.onPointerExit = OnPointerExit; + chart.onPointerDown = OnPointerDown; + chart.onPointerUp = OnPointerUp; + chart.onPointerClick = OnPointerClick; + chart.onScroll = OnScroll; + } + + void OnPointerEnter(PointerEventData eventData, BaseGraph chart) + { + //Debug.LogError("enter:" + chart); + } + + void OnPointerExit(PointerEventData eventData, BaseGraph chart) + { + //Debug.LogError("exit:" + chart); + } + + void OnPointerDown(PointerEventData eventData, BaseGraph chart) + { + //Debug.LogError("down:" + chart); + } + + void OnPointerUp(PointerEventData eventData, BaseGraph chart) + { + //Debug.LogError("up:" + chart); + } + + void OnPointerClick(PointerEventData eventData, BaseGraph chart) + { + //Debug.LogError("click:" + chart); + } + + void OnScroll(PointerEventData eventData, BaseGraph chart) + { + //Debug.LogError("scroll:" + chart); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example02_ChartEvent.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example02_ChartEvent.cs.meta new file mode 100644 index 0000000..a57357a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example02_ChartEvent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c549dc496cd86467e8286252906562cc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example03_ChartAnimation.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example03_ChartAnimation.cs new file mode 100644 index 0000000..736ff80 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example03_ChartAnimation.cs @@ -0,0 +1,37 @@ +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + [ExecuteInEditMode] + public class Example03_ChartAnimation : MonoBehaviour + { + BaseChart chart; + + void Awake() + { + chart = gameObject.GetComponent<BaseChart>(); + if (chart == null) + { + chart = gameObject.AddComponent<BarChart>(); + } + var serie = chart.GetSerie(0); + serie.animation.enable = true; + //自定义每个数据项的渐入延时 + serie.animation.fadeInDelayFunction = CustomFadeInDelay; + //自定义每个数据项的渐入时长 + serie.animation.fadeInDurationFunction = CustomFadeInDuration; + } + + float CustomFadeInDelay(int dataIndex) + { + return dataIndex * 1000; + } + + float CustomFadeInDuration(int dataIndex) + { + return dataIndex * 1000 + 1000; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example03_ChartAnimation.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example03_ChartAnimation.cs.meta new file mode 100644 index 0000000..93e6d6b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example03_ChartAnimation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6258ca3b055714eac92804f501011b53 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example10_LineChart.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example10_LineChart.cs new file mode 100644 index 0000000..1067b99 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example10_LineChart.cs @@ -0,0 +1,266 @@ +using System.Collections; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + public class Example10_LineChart : MonoBehaviour + { + private LineChart chart; + private Serie serie; + private int m_DataNum = 8; + + void Awake() + { + LoopDemo(); + } + + private void OnEnable() + { + LoopDemo(); + } + + void LoopDemo() + { + StopAllCoroutines(); + StartCoroutine(PieDemo()); + } + + IEnumerator PieDemo() + { + StartCoroutine(AddSimpleLine()); + yield return new WaitForSeconds(2); + StartCoroutine(ChangeLineType()); + yield return new WaitForSeconds(8); + StartCoroutine(LineAreaStyleSettings()); + yield return new WaitForSeconds(5); + StartCoroutine(LineArrowSettings()); + yield return new WaitForSeconds(2); + StartCoroutine(LineSymbolSettings()); + yield return new WaitForSeconds(7); + StartCoroutine(LineLabelSettings()); + yield return new WaitForSeconds(3); + StartCoroutine(LineMutilSerie()); + yield return new WaitForSeconds(5); + LoopDemo(); + } + + IEnumerator AddSimpleLine() + { + chart = gameObject.GetComponent<LineChart>(); + if (chart == null) chart = gameObject.AddComponent<LineChart>(); + chart.GetChartComponent<Title>().text = "LineChart - 折线图"; + chart.GetChartComponent<Title>().subText = "普通折线图"; + + var yAxis = chart.GetChartComponent<YAxis>(); + yAxis.minMaxType = Axis.AxisMinMaxType.Custom; + yAxis.min = 0; + yAxis.max = 100; + + chart.RemoveData(); + serie = chart.AddSerie<Line>("Line"); + + for (int i = 0; i < m_DataNum; i++) + { + chart.AddXAxisData("x" + (i + 1)); + chart.AddData(0, UnityEngine.Random.Range(30, 90)); + } + yield return new WaitForSeconds(1); + } + + IEnumerator ChangeLineType() + { + chart.GetChartComponent<Title>().subText = "LineTyle - 曲线图"; + serie.lineType = LineType.Smooth; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + + chart.GetChartComponent<Title>().subText = "LineTyle - 阶梯线图"; + serie.lineType = LineType.StepStart; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + + serie.lineType = LineType.StepMiddle; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + + serie.lineType = LineType.StepEnd; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + + chart.GetChartComponent<Title>().subText = "LineTyle - 虚线"; + serie.lineStyle.type = LineStyle.Type.Dashed; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + + chart.GetChartComponent<Title>().subText = "LineTyle - 点线"; + serie.lineStyle.type = LineStyle.Type.Dotted; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + + chart.GetChartComponent<Title>().subText = "LineTyle - 点划线"; + serie.lineStyle.type = LineStyle.Type.DashDot; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + + chart.GetChartComponent<Title>().subText = "LineTyle - 双点划线"; + serie.lineStyle.type = LineStyle.Type.DashDotDot; + chart.RefreshChart(); + + serie.lineType = LineType.Normal; + chart.RefreshChart(); + } + + IEnumerator LineAreaStyleSettings() + { + chart.GetChartComponent<Title>().subText = "AreaStyle 面积图"; + + serie.AddExtraComponent<AreaStyle>(); + serie.areaStyle.show = true; + chart.RefreshChart(); + yield return new WaitForSeconds(1f); + + chart.GetChartComponent<Title>().subText = "AreaStyle 面积图"; + serie.lineType = LineType.Smooth; + serie.areaStyle.show = true; + chart.RefreshChart(); + yield return new WaitForSeconds(1f); + + chart.GetChartComponent<Title>().subText = "AreaStyle 面积图 - 调整透明度"; + while (serie.areaStyle.opacity > 0.4) + { + serie.areaStyle.opacity -= 0.6f * Time.deltaTime; + chart.RefreshChart(); + yield return null; + } + yield return new WaitForSeconds(1); + + chart.GetChartComponent<Title>().subText = "AreaStyle 面积图 - 渐变"; + serie.areaStyle.toColor = Color.white; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + } + + IEnumerator LineArrowSettings() + { + chart.GetChartComponent<Title>().subText = "LineArrow 头部箭头"; + chart.GetSerie(0).AddExtraComponent<LineArrow>(); + serie.lineArrow.show = true; + serie.lineArrow.position = LineArrow.Position.Start; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + + chart.GetChartComponent<Title>().subText = "LineArrow 尾部箭头"; + serie.lineArrow.position = LineArrow.Position.End; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + serie.lineArrow.show = false; + } + + /// <summary> + /// SerieSymbol 相关设置 + /// </summary> + /// <returns></returns> + IEnumerator LineSymbolSettings() + { + chart.GetChartComponent<Title>().subText = "SerieSymbol 图形标记"; + while (serie.symbol.size < 5) + { + serie.symbol.size += 2.5f * Time.deltaTime; + chart.RefreshChart(); + yield return null; + } + chart.GetChartComponent<Title>().subText = "SerieSymbol 图形标记 - 空心圆"; + yield return new WaitForSeconds(1); + + chart.GetChartComponent<Title>().subText = "SerieSymbol 图形标记 - 实心圆"; + serie.symbol.type = SymbolType.Circle; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + + chart.GetChartComponent<Title>().subText = "SerieSymbol 图形标记 - 三角形"; + serie.symbol.type = SymbolType.Triangle; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + + chart.GetChartComponent<Title>().subText = "SerieSymbol 图形标记 - 正方形"; + serie.symbol.type = SymbolType.Rect; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + + chart.GetChartComponent<Title>().subText = "SerieSymbol 图形标记 - 菱形"; + serie.symbol.type = SymbolType.Diamond; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + + chart.GetChartComponent<Title>().subText = "SerieSymbol 图形标记"; + serie.symbol.type = SymbolType.EmptyCircle; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + } + + /// <summary> + /// SerieLabel相关配置 + /// </summary> + /// <returns></returns> + IEnumerator LineLabelSettings() + { + chart.GetChartComponent<Title>().subText = "SerieLabel 文本标签"; + serie.AddExtraComponent<LabelStyle>(); + chart.RefreshChart(); + while (serie.label.offset[1] < 20) + { + serie.label.offset = new Vector3(serie.label.offset.x, serie.label.offset.y + 20f * Time.deltaTime); + chart.RefreshChart(); + yield return null; + } + yield return new WaitForSeconds(1); + + chart.RefreshChart(); + yield return new WaitForSeconds(1); + + serie.label.textStyle.color = Color.white; + serie.label.background.color = Color.grey; + serie.labelDirty = true; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + + serie.label.show = false; + chart.RefreshChart(); + } + + /// <summary> + /// 添加多条线图 + /// </summary> + /// <returns></returns> + IEnumerator LineMutilSerie() + { + chart.GetChartComponent<Title>().subText = "多系列"; + var serie2 = chart.AddSerie<Line>("Line2"); + serie2.lineType = LineType.Normal; + for (int i = 0; i < m_DataNum; i++) + { + chart.AddData(1, UnityEngine.Random.Range(30, 90)); + } + yield return new WaitForSeconds(1); + + var serie3 = chart.AddSerie<Line>("Line3"); + serie3.lineType = LineType.Normal; + for (int i = 0; i < m_DataNum; i++) + { + chart.AddData(2, UnityEngine.Random.Range(30, 90)); + } + yield return new WaitForSeconds(1); + + var yAxis = chart.GetChartComponent<YAxis>(); + yAxis.minMaxType = Axis.AxisMinMaxType.Default; + chart.GetChartComponent<Title>().subText = "多系列 - 堆叠"; + serie.stack = "samename"; + serie2.stack = "samename"; + serie3.stack = "samename"; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example10_LineChart.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example10_LineChart.cs.meta new file mode 100644 index 0000000..b2fcde5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example10_LineChart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6155c7e0df4504ebfaf0c671ae200197 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example11_AddSinCurve.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example11_AddSinCurve.cs new file mode 100644 index 0000000..3149117 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example11_AddSinCurve.cs @@ -0,0 +1,62 @@ +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + [ExecuteInEditMode] + public class Example11_AddSinCurve : MonoBehaviour + { + private float time; + public int angle; + private LineChart chart; + + void Awake() + { + chart = gameObject.GetComponent<LineChart>(); + if (chart == null) + { + chart = gameObject.AddComponent<LineChart>(); + } + chart.GetChartComponent<Title>().show = true; + chart.GetChartComponent<Title>().text = "Sin Curve"; + + chart.GetChartComponent<Tooltip>().show = true; + chart.GetChartComponent<Legend>().show = false; + + var xAxis = chart.GetChartComponent<XAxis>(); + var yAxis = chart.GetChartComponent<YAxis>(); + + xAxis.show = true; + yAxis.show = true; + + xAxis.type = Axis.AxisType.Value; + yAxis.type = Axis.AxisType.Value; + + xAxis.boundaryGap = false; + xAxis.maxCache = 0; + chart.series[0].maxCache = 0; + + chart.RemoveData(); + + var serie = chart.AddSerie<Line>(); + serie.symbol.show = false; + serie.lineType = LineType.Normal; + for (angle = 0; angle < 1080; angle++) + { + float xvalue = Mathf.PI / 180 * angle; + float yvalue = Mathf.Sin(xvalue); + chart.AddData(0, xvalue, yvalue); + } + } + + void Update() + { + if (angle > 3000) return; + angle++; + float xvalue = Mathf.PI / 180 * angle; + float yvalue = Mathf.Sin(xvalue); + chart.AddData(0, xvalue, yvalue); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example11_AddSinCurve.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example11_AddSinCurve.cs.meta new file mode 100644 index 0000000..1f7901b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example11_AddSinCurve.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b380753d3cb4149c4a3a65a1816e0cc7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example12_CustomDrawing.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example12_CustomDrawing.cs new file mode 100644 index 0000000..ace1318 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example12_CustomDrawing.cs @@ -0,0 +1,41 @@ +using UnityEngine; +using UnityEngine.UI; +using XCharts.Runtime; +using XUGL; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + [ExecuteInEditMode] + public class Example12_CustomDrawing : MonoBehaviour + { + LineChart chart; + void Awake() + { + chart = gameObject.GetComponent<LineChart>(); + if (chart == null) return; + + chart.onDraw = delegate(VertexHelper vh) { }; + // or + chart.onDrawBeforeSerie = delegate(VertexHelper vh, Serie serie) { }; + // or + chart.onDrawAfterSerie = delegate(VertexHelper vh, Serie serie) + { + if (serie.index != 0) return; + var dataPoints = serie.context.dataPoints; + if (dataPoints.Count > 0) + { + var pos = dataPoints[3]; + var grid = chart.GetChartComponent<GridCoord>(); + var zeroPos = new Vector3(grid.context.x, grid.context.y); + var startPos = new Vector3(pos.x, zeroPos.y); + var endPos = new Vector3(pos.x, zeroPos.y + grid.context.height); + UGL.DrawLine(vh, startPos, endPos, chart.theme.serie.lineWidth, Color.blue); + UGL.DrawCricle(vh, pos, 5, Color.blue); + } + }; + // or + chart.onDrawTop = delegate(VertexHelper vh) { }; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example12_CustomDrawing.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example12_CustomDrawing.cs.meta new file mode 100644 index 0000000..c81c939 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example12_CustomDrawing.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: da550ad36be5f442e96ad021cc10ca68 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example13_LineSimple.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example13_LineSimple.cs new file mode 100644 index 0000000..153ef57 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example13_LineSimple.cs @@ -0,0 +1,59 @@ +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + [ExecuteInEditMode] + public class Example13_LineSimple : MonoBehaviour + { + void Awake() + { + AddData(); + } + + void Update() + { + if (Input.GetKeyDown(KeyCode.Space)) + { + AddData(); + } + } + + void AddData() + { + var chart = gameObject.GetComponent<SimplifiedLineChart>(); + if (chart == null) + { + chart = gameObject.AddComponent<SimplifiedLineChart>(); + chart.Init(); + chart.SetSize(580, 300); + } + chart.GetOrAddChartComponent<Title>().show = true; + chart.GetOrAddChartComponent<Title>().text = "Line Simple"; + + chart.GetOrAddChartComponent<Tooltip>().show = true; + chart.GetOrAddChartComponent<Legend>().show = false; + + var xAxis = chart.GetOrAddChartComponent<XAxis>(); + var yAxis = chart.GetOrAddChartComponent<YAxis>(); + xAxis.show = true; + yAxis.show = true; + xAxis.type = Axis.AxisType.Category; + yAxis.type = Axis.AxisType.Value; + + xAxis.splitNumber = 10; + xAxis.boundaryGap = true; + + chart.RemoveData(); + chart.AddSerie<SimplifiedLine>(); + chart.AddSerie<SimplifiedLine>(); + for (int i = 0; i < 200; i++) + { + chart.AddXAxisData("x" + i); + chart.AddData(0, Random.Range(10, 20)); + chart.AddData(1, Random.Range(10, 20)); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example13_LineSimple.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example13_LineSimple.cs.meta new file mode 100644 index 0000000..4587607 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example13_LineSimple.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c6d0f65efd8e14ebdafa172e0ccbd562 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example20_BarChart.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example20_BarChart.cs new file mode 100644 index 0000000..270321a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example20_BarChart.cs @@ -0,0 +1,158 @@ +using System.Collections; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + public class Example20_BarChart : MonoBehaviour + { + private BarChart chart; + private Serie serie, serie2; + private int m_DataNum = 5; + + void Awake() + { + LoopDemo(); + } + + private void OnEnable() + { + LoopDemo(); + } + + void LoopDemo() + { + StopAllCoroutines(); + StartCoroutine(PieDemo()); + } + + IEnumerator PieDemo() + { + StartCoroutine(AddSimpleBar()); + yield return new WaitForSeconds(2); + StartCoroutine(BarMutilSerie()); + yield return new WaitForSeconds(3); + StartCoroutine(ZebraBar()); + yield return new WaitForSeconds(3); + StartCoroutine(SameBarAndNotStack()); + yield return new WaitForSeconds(3); + StartCoroutine(SameBarAndStack()); + yield return new WaitForSeconds(3); + StartCoroutine(SameBarAndPercentStack()); + yield return new WaitForSeconds(10); + + LoopDemo(); + } + + IEnumerator AddSimpleBar() + { + chart = gameObject.GetComponent<BarChart>(); + if (chart == null) chart = gameObject.AddComponent<BarChart>(); + chart.GetChartComponent<Title>().text = "BarChart - 柱状图"; + chart.GetChartComponent<Title>().subText = "普通柱状图"; + + var yAxis = chart.GetChartComponent<YAxis>(); + yAxis.minMaxType = Axis.AxisMinMaxType.Default; + + chart.RemoveData(); + serie = chart.AddSerie<Bar>("Bar1"); + + for (int i = 0; i < m_DataNum; i++) + { + chart.AddXAxisData("x" + (i + 1)); + chart.AddData(0, UnityEngine.Random.Range(30, 90)); + } + yield return new WaitForSeconds(1); + } + + IEnumerator BarMutilSerie() + { + chart.GetChartComponent<Title>().subText = "多条柱状图"; + + float now = serie.barWidth - 0.35f; + while (serie.barWidth > 0.35f) + { + serie.barWidth -= now * Time.deltaTime; + chart.RefreshChart(); + yield return null; + } + + serie2 = chart.AddSerie<Bar>("Bar2"); + serie2.lineType = LineType.Normal; + serie2.barWidth = 0.35f; + for (int i = 0; i < m_DataNum; i++) + { + chart.AddData(1, UnityEngine.Random.Range(20, 90)); + } + yield return new WaitForSeconds(1); + } + + IEnumerator ZebraBar() + { + chart.GetChartComponent<Title>().subText = "斑马柱状图"; + serie.barType = BarType.Zebra; + serie2.barType = BarType.Zebra; + serie.barZebraWidth = serie.barZebraGap = 4; + serie2.barZebraWidth = serie2.barZebraGap = 4; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + } + + IEnumerator SameBarAndNotStack() + { + chart.GetChartComponent<Title>().subText = "非堆叠同柱"; + serie.barType = serie2.barType = BarType.Normal; + serie.stack = ""; + serie2.stack = ""; + serie.barGap = -1; + serie2.barGap = -1; + yield return new WaitForSeconds(1); + } + + IEnumerator SameBarAndStack() + { + chart.GetChartComponent<Title>().subText = "堆叠同柱"; + serie.barType = serie2.barType = BarType.Normal; + serie.stack = "samename"; + serie2.stack = "samename"; + yield return new WaitForSeconds(1); + float now = 0.6f - serie.barWidth; + while (serie.barWidth < 0.6f) + { + serie.barWidth += now * Time.deltaTime; + serie2.barWidth += now * Time.deltaTime; + chart.RefreshChart(); + yield return null; + } + serie.barWidth = serie2.barWidth; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + } + + IEnumerator SameBarAndPercentStack() + { + chart.GetChartComponent<Title>().subText = "百分比堆叠同柱"; + serie.barType = serie2.barType = BarType.Normal; + serie.stack = "samename"; + serie2.stack = "samename"; + + serie.barPercentStack = true; + + serie.AddExtraComponent<LabelStyle>(); + serie.label.show = true; + serie.label.position = LabelStyle.Position.Center; + serie.label.textStyle.color = Color.white; + serie.label.formatter = "{d:f0}%"; + + serie2.label.show = true; + serie2.label.position = LabelStyle.Position.Center; + serie2.label.textStyle.color = Color.white; + serie2.label.formatter = "{d:f0}%"; + serie2.labelDirty = true; + + chart.RefreshChart(); + yield return new WaitForSeconds(1); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example20_BarChart.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example20_BarChart.cs.meta new file mode 100644 index 0000000..c5ef6fd --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example20_BarChart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 03916f7ca858b446883197ae17e50f16 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example21_BarRace.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example21_BarRace.cs new file mode 100644 index 0000000..c14e3ff --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example21_BarRace.cs @@ -0,0 +1,46 @@ +using System.Collections; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + public class Example21_BarRace : MonoBehaviour + { + private BarChart chart; + private float lastTime; + + void Awake() + { + chart = gameObject.GetComponent<BarChart>(); + chart.ClearData(); + for (int i = 0; i < 5; i++) + { + chart.AddYAxisData("y" + i); + chart.AddData(0, Random.Range(0, 200)); + } + } + + void Update() + { + if (Time.time - lastTime >= 3f) + { + lastTime = Time.time; + UpdateData(); + } + } + + void UpdateData() + { + var serie = chart.GetSerie(0); + + for (int i = 0; i < serie.dataCount; i++) + { + if (Random.Range(0, 1f) > 0.9f) + chart.UpdateData(0, i, chart.GetData(0, i) + Mathf.Round(Random.Range(0, 2000))); + else + chart.UpdateData(0, i, chart.GetData(0, i) + Mathf.Round(Random.Range(0, 200))); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example21_BarRace.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example21_BarRace.cs.meta new file mode 100644 index 0000000..70e9a19 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example21_BarRace.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9842ca7fe07044666950b6f53ef65fdb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example30_PieChart.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example30_PieChart.cs new file mode 100644 index 0000000..e40f063 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example30_PieChart.cs @@ -0,0 +1,205 @@ +using System.Collections; +using UnityEngine; +using UnityEngine.EventSystems; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + public class Example30_PieChart : MonoBehaviour + { + private PieChart chart; + private Serie serie, serie1; + private float m_RadiusSpeed = 100f; + private float m_CenterSpeed = 1f; + + void Awake() + { + LoopDemo(); + } + + private void OnEnable() + { + LoopDemo(); + } + + void LoopDemo() + { + StopAllCoroutines(); + StartCoroutine(PieDemo()); + } + + IEnumerator PieDemo() + { + StartCoroutine(PieAdd()); + yield return new WaitForSeconds(2); + StartCoroutine(PieShowLabel()); + yield return new WaitForSeconds(4); + StartCoroutine(Doughnut()); + yield return new WaitForSeconds(3); + StartCoroutine(DoublePie()); + yield return new WaitForSeconds(2); + StartCoroutine(RosePie()); + yield return new WaitForSeconds(5); + LoopDemo(); + } + + IEnumerator PieAdd() + { + chart = gameObject.GetComponent<PieChart>(); + if (chart == null) chart = gameObject.AddComponent<PieChart>(); + chart.GetChartComponent<Title>().text = "PieChart - 饼图"; + chart.GetChartComponent<Title>().subText = "基础饼图"; + + var legend = chart.GetChartComponent<Legend>(); + legend.show = true; + legend.location.align = Location.Align.TopLeft; + legend.location.top = 60; + legend.location.left = 2; + legend.itemWidth = 70; + legend.itemHeight = 20; + legend.orient = Orient.Vertical; + + chart.RemoveData(); + serie = chart.AddSerie<Bar>("访问来源"); + serie.radius[0] = 0; + serie.radius[1] = 110; + serie.center[0] = 0.5f; + serie.center[1] = 0.4f; + chart.AddData(0, 335, "直接访问"); + chart.AddData(0, 310, "邮件营销"); + chart.AddData(0, 243, "联盟广告"); + chart.AddData(0, 135, "视频广告"); + chart.AddData(0, 1548, "搜索引擎"); + + chart.onPointerClickPie = delegate(PointerEventData e, int serieIndex, int dataIndex) + { + + }; + yield return new WaitForSeconds(1); + } + + IEnumerator PieShowLabel() + { + chart.GetChartComponent<Title>().subText = "显示文本标签"; + + serie.AddExtraComponent<LabelStyle>(); + serie.label.show = true; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + serie.labelLine.lineType = LabelLine.LineType.Curves; + chart.RefreshChart(); + + yield return new WaitForSeconds(1); + serie.labelLine.lineType = LabelLine.LineType.HorizontalLine; + chart.RefreshChart(); + + yield return new WaitForSeconds(1); + serie.labelLine.lineType = LabelLine.LineType.BrokenLine; + chart.RefreshChart(); + + yield return new WaitForSeconds(1); + serie.labelLine.show = false; + chart.RefreshChart(); + } + + IEnumerator Doughnut() + { + chart.GetChartComponent<Title>().subText = "圆环图"; + serie.radius[0] = 2f; + while (serie.radius[0] < serie.radius[1] * 0.7f) + { + serie.radius[0] += m_RadiusSpeed * Time.deltaTime; + chart.RefreshChart(); + yield return null; + } + serie.gap = 1f; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + + serie.data[0].selected = true; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + + serie.gap = 0f; + serie.data[0].selected = false; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + } + + IEnumerator DoublePie() + { + chart.GetChartComponent<Title>().subText = "多图组合"; + + serie1 = chart.AddSerie<Pie>("访问来源2"); + chart.AddData(1, 335, "直达"); + chart.AddData(1, 679, "营销广告"); + chart.AddData(1, 1548, "搜索引擎"); + serie1.radius[0] = 0; + serie1.radius[1] = 2f; + serie1.center[0] = 0.5f; + serie1.center[1] = 0.4f; + chart.RefreshChart(); + while (serie1.radius[1] < serie.radius[0] * 0.75f) + { + serie1.radius[1] += m_RadiusSpeed * Time.deltaTime; + chart.RefreshChart(); + yield return null; + } + + serie1.label.show = true; + serie1.label.position = LabelStyle.Position.Inside; + serie1.label.textStyle.color = Color.white; + serie1.label.textStyle.fontSize = 14; + + chart.RefreshChart(); + yield return new WaitForSeconds(1); + } + + IEnumerator RosePie() + { + chart.GetChartComponent<Title>().subText = "玫瑰图"; + chart.GetChartComponent<Legend>().show = false; + serie1.ClearData(); + serie.ClearData(); + serie1.radius = serie.radius = new float[2] { 0, 80 }; + serie1.label.position = LabelStyle.Position.Outside; + serie1.labelLine.lineType = LabelLine.LineType.Curves; + serie1.label.textStyle.color = Color.clear; + for (int i = 0; i < 2; i++) + { + chart.AddData(i, 10, "rose1"); + chart.AddData(i, 5, "rose2"); + chart.AddData(i, 15, "rose3"); + chart.AddData(i, 25, "rose4"); + chart.AddData(i, 20, "rose5"); + chart.AddData(i, 35, "rose6"); + chart.AddData(i, 30, "rose7"); + chart.AddData(i, 40, "rose8"); + } + + while (serie.center[0] > 0.25f || serie1.center[0] < 0.7f) + { + if (serie.center[0] > 0.25f) serie.center[0] -= m_CenterSpeed * Time.deltaTime; + if (serie1.center[0] < 0.7f) serie1.center[0] += m_CenterSpeed * Time.deltaTime; + chart.RefreshChart(); + yield return null; + } + yield return new WaitForSeconds(1); + while (serie.radius[0] > 3f) + { + serie.radius[0] -= m_RadiusSpeed * Time.deltaTime; + serie1.radius[0] -= m_RadiusSpeed * Time.deltaTime; + chart.RefreshChart(); + yield return null; + } + + serie.radius[0] = 0; + serie1.radius[0] = 0; + serie.pieRoseType = RoseType.Area; + serie1.pieRoseType = RoseType.Radius; + chart.RefreshChart(); + yield return new WaitForSeconds(1); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example30_PieChart.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example30_PieChart.cs.meta new file mode 100644 index 0000000..fb74aa5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example30_PieChart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0b8649d38981b4b5bbdf16e8f303fa1e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example31_PieUpdateName.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example31_PieUpdateName.cs new file mode 100644 index 0000000..8509105 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example31_PieUpdateName.cs @@ -0,0 +1,74 @@ +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + [ExecuteInEditMode] + public class Example31_PieUpdateName : MonoBehaviour + { + PieChart chart; + + void Awake() + { + chart = gameObject.GetComponent<PieChart>(); + if (chart == null) + { + chart = gameObject.AddComponent<PieChart>(); + } + var serieIndex = 0; + var serie = chart.GetSerie(serieIndex); + if (serie == null) return; + serie.AddExtraComponent<LabelStyle>(); + serie.label.show = true; + serie.label.position = LabelStyle.Position.Outside; + } + + void Update() + { + if (Input.GetKeyDown(KeyCode.Space)) + { + ClearAndAddData(); + //UpdateDataName(); + //UpdateDataName(); + } + } + + void UpdateDataName() + { + var serieIndex = 0; + var serie = chart.GetSerie(serieIndex); + if (serie == null) return; + for (int i = 0; i < serie.dataCount; i++) + { + var value = Random.Range(10, 100); + chart.UpdateData(serieIndex, i, value); + chart.UpdateDataName(serieIndex, i, "value=" + value); + } + } + + void ResetSameName() + { + var serieIndex = 0; + var serie = chart.GetSerie(serieIndex); + if (serie == null) return; + for (int i = 0; i < serie.dataCount; i++) + { + chart.UpdateDataName(serieIndex, i, "piename"); + } + } + + void ClearAndAddData() + { + var serieIndex = 0; + var serie = chart.GetSerie(serieIndex); + if (serie == null) return; + int count = serie.dataCount; + serie.ClearData(); + for (int i = 0; i < count; i++) + { + chart.AddData(0, Random.Range(0, 100), "pie" + i); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example31_PieUpdateName.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example31_PieUpdateName.cs.meta new file mode 100644 index 0000000..2afd8a2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example31_PieUpdateName.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 41195ee7a652f4ef79c22c365d314621 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example40_Radar.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example40_Radar.cs new file mode 100644 index 0000000..f33dc25 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example40_Radar.cs @@ -0,0 +1,135 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + public class Example40_Radar : MonoBehaviour + { + private RadarChart chart; + private Serie serie, serie1; + void Awake() + { + LoopDemo(); + } + + private void OnEnable() + { + LoopDemo(); + } + + void LoopDemo() + { + StopAllCoroutines(); + StartCoroutine(RadarDemo()); + } + + IEnumerator RadarDemo() + { + StartCoroutine(RadarAdd()); + yield return new WaitForSeconds(2); + StartCoroutine(RadarUpdate()); + yield return new WaitForSeconds(2); + StartCoroutine(RadarAddMultiple()); + yield return new WaitForSeconds(2); + LoopDemo(); + } + + IEnumerator RadarAdd() + { + chart = gameObject.GetComponent<RadarChart>(); + if (chart == null) chart = gameObject.AddComponent<RadarChart>(); + + chart.RemoveChartComponents<RadarCoord>(); + chart.RemoveData(); + + chart.GetChartComponent<Title>().text = "RadarChart - 雷达图"; + chart.GetChartComponent<Title>().subText = ""; + + var legend = chart.GetChartComponent<Legend>(); + legend.show = true; + legend.location.align = Location.Align.TopLeft; + legend.location.top = 60; + legend.location.left = 2; + legend.itemWidth = 70; + legend.itemHeight = 20; + legend.orient = Orient.Vertical; + + var radarCoord = chart.AddChartComponent<RadarCoord>(); + radarCoord.shape = RadarCoord.Shape.Polygon; + radarCoord.center[0] = 0.5f; + radarCoord.center[1] = 0.4f; + radarCoord.radius = 0.4f; + + radarCoord.AddIndicator("indicator1", 0, 100); + radarCoord.AddIndicator("indicator2", 0, 100); + radarCoord.AddIndicator("indicator3", 0, 100); + radarCoord.AddIndicator("indicator4", 0, 100); + radarCoord.AddIndicator("indicator5", 0, 100); + + serie = chart.AddSerie<Radar>("test"); + serie.radarIndex = 0; + chart.AddData(0, new List<double> { 10, 20, 60, 40, 20 }, "data1"); + chart.AddData(0, new List<double> { 40, 60, 90, 80, 70 }, "data2"); + yield return new WaitForSeconds(1); + } + + IEnumerator RadarUpdate() + { + var radarCoord = chart.GetChartComponent<RadarCoord>(); + radarCoord.UpdateIndicator(0, "new1", 0, 100); + chart.UpdateData(0, 0, new List<double> { 15, 30, 50, 60, 50 }); + chart.UpdateDataName(0, 0, "new1"); + yield return new WaitForSeconds(1); + } + + IEnumerator RadarAddMultiple() + { + chart.RemoveChartComponents<RadarCoord>(); + chart.RemoveData(); + + chart.GetChartComponent<Title>().text = "RadarChart - 多雷达图"; + chart.GetChartComponent<Title>().subText = ""; + + var legend = chart.GetChartComponent<Legend>(); + legend.show = true; + legend.location.align = Location.Align.TopLeft; + legend.location.top = 60; + legend.location.left = 2; + legend.itemWidth = 70; + legend.itemHeight = 20; + legend.orient = Orient.Vertical; + + var radarCoord = chart.AddChartComponent<RadarCoord>(); + radarCoord.shape = RadarCoord.Shape.Polygon; + radarCoord.center[0] = 0.25f; + radarCoord.center[1] = 0.4f; + radarCoord.radius = 0.25f; + for (int i = 1; i <= 5; i++) + { + radarCoord.AddIndicator("radar1" + i, 0, 100); + } + + var radarCoord2 = chart.AddChartComponent<RadarCoord>(); + radarCoord2.shape = RadarCoord.Shape.Polygon; + radarCoord2.center[0] = 0.75f; + radarCoord2.center[1] = 0.4f; + radarCoord2.radius = 0.25f; + for (int i = 1; i <= 5; i++) + { + radarCoord2.AddIndicator("radar2" + i, 0, 100); + } + + serie = chart.AddSerie<Radar>("test1"); + serie.radarIndex = 0; + chart.AddData(0, new List<double> { 10, 20, 60, 40, 20 }, "data1"); + + serie1 = chart.AddSerie<Radar>("test2"); + serie1.radarIndex = 1; + chart.AddData(1, new List<double> { 10, 20, 60, 40, 20 }, "data2"); + yield return new WaitForSeconds(1); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example40_Radar.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example40_Radar.cs.meta new file mode 100644 index 0000000..2421445 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example40_Radar.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 95a60d7e7a0fc41ecaec5f48823b70bd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example41_RadarUpdate.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example41_RadarUpdate.cs new file mode 100644 index 0000000..baaa46b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example41_RadarUpdate.cs @@ -0,0 +1,73 @@ +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + [ExecuteInEditMode] + public class Example41_RadarUpdate : MonoBehaviour + { + RadarChart chart; + int count = 0; + double max = 0; + + void Awake() + { + chart = gameObject.GetComponent<RadarChart>(); + if (chart == null) + { + chart = gameObject.AddComponent<RadarChart>(); + } + } + + void Update() + { + if (Input.GetKeyDown(KeyCode.Space)) + { + UpdateData(); + count++; + } + UpdateMax(); + } + + void UpdateData() + { + var serieIndex = 0; + var serie = chart.GetSerie(serieIndex); + if (serie == null) return; + if (serie.radarType == RadarType.Multiple) + { + for (int i = 0; i < serie.dataCount; i++) + { + var serieData = serie.GetSerieData(i); + for (int j = 0; j < serieData.data.Count; j++) + { + var value = Random.Range(10, 100); + chart.UpdateData(serieIndex, i, j, value); + } + } + } + else + { + for (int i = 0; i < serie.dataCount; i++) + { + var value = Random.Range(10, 100); + chart.UpdateData(serieIndex, i, value); + } + } + chart.GetChartComponent<Title>().subText = "max:" + serie.context.dataMax; + } + + void UpdateMax() + { + var serieIndex = 0; + var serie = chart.GetSerie(serieIndex); + if (serie == null) return; + if (serie.context.dataMax != max) + { + chart.GetChartComponent<Title>().subText = "max:" + serie.context.dataMax; + max = serie.context.dataMax; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example41_RadarUpdate.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example41_RadarUpdate.cs.meta new file mode 100644 index 0000000..b0a750e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example41_RadarUpdate.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7a2ad6907bd5045ec920b4f0e359535e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example50_Scatter.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example50_Scatter.cs new file mode 100644 index 0000000..74b8d6c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example50_Scatter.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + [ExecuteInEditMode] + public class Example50_Scatter : MonoBehaviour + { + private ScatterChart chart; + + void Awake() + { + chart = gameObject.GetComponent<ScatterChart>(); + if (chart == null) return; + foreach (var serie in chart.series) + { + serie.symbol.sizeFunction = SymbolSize; + serie.symbol.selectedSizeFunction = SymbolSelectedSize; + } + } + + float SymbolSize(List<double> data) + { + return (float) (Math.Sqrt(data[2]) / 6e2); + } + + float SymbolSelectedSize(List<double> data) + { + return (float) (Math.Sqrt(data[2]) / 5e2); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example50_Scatter.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example50_Scatter.cs.meta new file mode 100644 index 0000000..62269c7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example50_Scatter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5e6c9b864ab644b45ae93df3878ab1dd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example60_Heatmap.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example60_Heatmap.cs new file mode 100644 index 0000000..9627324 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example60_Heatmap.cs @@ -0,0 +1,111 @@ +using System.Collections.Generic; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + [ExecuteInEditMode] + public class Example60_Heatmap : MonoBehaviour + { + private HeatmapChart chart; + + void Awake() + { + chart = gameObject.GetComponent<HeatmapChart>(); + if (chart == null) + { + chart = gameObject.AddComponent<HeatmapChart>(); + } + chart.GetChartComponent<Title>().text = "HeatmapChart"; + chart.GetChartComponent<Tooltip>().type = Tooltip.Type.None; + + var grid = chart.GetChartComponent<GridCoord>(); + grid.left = 100; + grid.right = 60; + grid.bottom = 60; + + var xAxis = chart.GetChartComponent<XAxis>(); + var yAxis = chart.GetChartComponent<YAxis>(); + //目前只支持Category + xAxis.type = Axis.AxisType.Category; + yAxis.type = Axis.AxisType.Category; + + xAxis.boundaryGap = true; + xAxis.boundaryGap = true; + + xAxis.splitNumber = 10; + yAxis.splitNumber = 10; + + //清空数据重新添加 + chart.RemoveData(); + var serie = chart.AddSerie<Heatmap>("serie1"); + + //设置样式 + serie.itemStyle.show = true; + serie.itemStyle.borderWidth = 1; + serie.itemStyle.borderColor = Color.clear; + + //设置高亮样式 + serie.AddExtraComponent<EmphasisItemStyle>(); + serie.emphasisItemStyle.show = true; + serie.emphasisItemStyle.borderWidth = 1; + serie.emphasisItemStyle.borderColor = Color.black; + + //设置视觉映射组件 + var visualMap = chart.GetChartComponent<VisualMap>(); + visualMap.max = 10; + visualMap.range[0] = 0f; + visualMap.range[1] = 10f; + visualMap.orient = Orient.Vertical; + visualMap.calculable = true; + visualMap.location.align = Location.Align.BottomLeft; + visualMap.location.bottom = 100; + visualMap.location.left = 30; + + //清空颜色重新添加 + + var heatmapGridWid = 10f; + int xSplitNumber = (int) (grid.context.width / heatmapGridWid); + int ySplitNumber = (int) (grid.context.height / heatmapGridWid); + var colors = new List<string> + { + "#313695", + "#4575b4", + "#74add1", + "#abd9e9", + "#e0f3f8", + "#ffffbf", + "#fee090", + "#fdae61", + "#f46d43", + "#d73027", + "#a50026" + }; + visualMap.AddColors(colors); + //添加xAxis的数据 + for (int i = 0; i < xSplitNumber; i++) + { + chart.AddXAxisData((i + 1).ToString()); + } + //添加yAxis的数据 + for (int i = 0; i < ySplitNumber; i++) + { + chart.AddYAxisData((i + 1).ToString()); + } + for (int i = 0; i < xSplitNumber; i++) + { + for (int j = 0; j < ySplitNumber; j++) + { + var value = 0f; + var rate = Random.Range(0, 101); + if (rate > 70) value = Random.Range(8f, 10f); + else value = Random.Range(1f, 8f); + var list = new List<double> { i, j, value }; + //至少是一个三位数据:(x,y,value) + chart.AddData(0, list); + } + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example60_Heatmap.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example60_Heatmap.cs.meta new file mode 100644 index 0000000..9ec94e3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example60_Heatmap.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e702e0ac05be84dbe9622180d4f6ef71 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example80_Polar.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example80_Polar.cs new file mode 100644 index 0000000..fdfb0b0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example80_Polar.cs @@ -0,0 +1,52 @@ +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + [ExecuteInEditMode] + public class Example80_Polar : MonoBehaviour + { + private BaseChart chart; + private float updateTime; + + void Awake() + { + chart = gameObject.GetComponent<BaseChart>(); + if (chart == null) + { + chart = gameObject.AddComponent<BaseChart>(); + } + chart.GetOrAddChartComponent<PolarCoord>(); + } + + void Update() + { + if (Input.GetKeyDown(KeyCode.Space)) + { + AddData(); + } + } + + void AddData() + { + chart.RemoveData(); + chart.GetChartComponent<Tooltip>().type = Tooltip.Type.Corss; + var angleAxis = chart.GetChartComponent<AngleAxis>(); + angleAxis.type = Axis.AxisType.Value; + angleAxis.minMaxType = Axis.AxisMinMaxType.Custom; + angleAxis.min = 0; + angleAxis.max = 360; + angleAxis.startAngle = Random.Range(0, 90); + chart.AddSerie<Line>("line1"); + + var rate = Random.Range(1, 4); + for (int i = 0; i <= 360; i++) + { + var t = i / 180f * Mathf.PI; + var r = Mathf.Sin(2 * t) * Mathf.Cos(2 * t) * rate; + chart.AddData(0, Mathf.Abs(r), i); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example80_Polar.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example80_Polar.cs.meta new file mode 100644 index 0000000..ea734cf --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example80_Polar.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ca29783da761a4e0e9c5204d5b24b610 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example90_Candlestick.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example90_Candlestick.cs new file mode 100644 index 0000000..895e305 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example90_Candlestick.cs @@ -0,0 +1,68 @@ +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + [ExecuteInEditMode] + public class Example90_Candlestick : MonoBehaviour + { + private CandlestickChart chart; + private float updateTime; + public int dataCount = 100; + + void Awake() + { + chart = gameObject.GetComponent<CandlestickChart>(); + if (chart == null) + { + chart = gameObject.AddComponent<CandlestickChart>(); + } + GenerateOHLC(dataCount); + } + + void Update() + { + if (Input.GetKeyDown(KeyCode.Space)) + { + AddData(); + } + } + + void AddData() { } + + void GenerateOHLC(int count) + { + chart.ClearData(); + + var xValue = System.DateTime.Now; + var baseValue = Random.Range(0f, 1f) * 12000; + var boxVals = new float[4]; + var dayRange = 12; + + for (int i = 0; i < count; i++) + { + baseValue = baseValue + Random.Range(0f, 1f) * 30 - 10; + for (int j = 0; j < 4; j++) + { + boxVals[j] = (Random.Range(0f, 1f) - 0.5f) * dayRange + baseValue; + } + System.Array.Sort(boxVals); + var openIdx = Mathf.RoundToInt(Random.Range(0f, 1f) * 3); + var closeIdx = Mathf.RoundToInt(Random.Range(0f, 1f) * 2); + if (openIdx == closeIdx) + { + closeIdx++; + } + //var volumn = boxVals[3]*(1000+Random.Range(0f,1f) * 500); + var open = boxVals[openIdx]; + var close = boxVals[closeIdx]; + var lowest = boxVals[0]; + var heighest = boxVals[3]; + + chart.AddXAxisData(i.ToString()); + chart.AddData(0, open, close, lowest, heighest); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example90_Candlestick.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example90_Candlestick.cs.meta new file mode 100644 index 0000000..189a372 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example90_Candlestick.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 69c7f3bf337c843888b4a7031eef1027 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_AddChart.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_AddChart.cs new file mode 100644 index 0000000..8035976 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_AddChart.cs @@ -0,0 +1,66 @@ +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + //[ExecuteInEditMode] + public class Example_AddChart : MonoBehaviour + { + BaseChart chart; + void Awake() + { + //AddChart(); + } + + void Update() + { + if (Input.GetKeyDown(KeyCode.Space)) + { + AddChart(); + } + } + + void AddChart() + { + chart = gameObject.GetComponent<BaseChart>(); + if (chart == null) + { + chart = gameObject.AddComponent<LineChart>(); + chart.Init(); + chart.SetSize(1200, 600); + } + var title = chart.GetOrAddChartComponent<Title>(); + title.text = "Simple LineChart"; + title.subText = "normal line"; + + var tooltip = chart.GetOrAddChartComponent<Tooltip>(); + tooltip.show = true; + + var legend = chart.GetOrAddChartComponent<Legend>(); + legend.show = false; + + var xAxis = chart.GetOrAddChartComponent<XAxis>(); + xAxis.splitNumber = 10; + xAxis.boundaryGap = true; + xAxis.type = Axis.AxisType.Category; + + var yAxis = chart.GetOrAddChartComponent<YAxis>(); + yAxis.type = Axis.AxisType.Value; + + chart.RemoveData(); + chart.AddSerie<Line>("line"); + + for (int i = 0; i < 5; i++) + { + chart.AddXAxisData("x" + i); + chart.AddData(0, Random.Range(10, 20)); + } + } + + void ModifyComponent() + { + + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_AddChart.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_AddChart.cs.meta new file mode 100644 index 0000000..2fdb2ea --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_AddChart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8e5c24ed461624b8d924dfb1285e0a95 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_Component.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_Component.cs new file mode 100644 index 0000000..9847c97 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_Component.cs @@ -0,0 +1,35 @@ +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + //[ExecuteInEditMode] + public class Example_Component : MonoBehaviour + { + BaseChart chart; + void Awake() + { + chart = gameObject.GetComponent<BaseChart>(); + } + + void ModifyComponent() + { + var title = chart.GetOrAddChartComponent<Title>(); + title.text = "Simple LineChart"; + title.subText = "normal line"; + + var serie1 = chart.AddSerie<Line>(); + //var serie2 = chart.GetSerie<Line>(); + + serie1.AddExtraComponent<AreaStyle>(); + var label = serie1.AddExtraComponent<LabelStyle>(); + label.offset = new Vector3(0, 20, 0); + + var serieData = chart.AddData(0, 20); + serieData.radius = 10; + var itemStyle = serieData.GetOrAddComponent<ItemStyle>(); + itemStyle.color = Color.blue; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_Component.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_Component.cs.meta new file mode 100644 index 0000000..add53bc --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_Component.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2e9941e7d67e44b18899e6048d4ef25a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_Dynamic.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_Dynamic.cs new file mode 100644 index 0000000..e2a2f94 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_Dynamic.cs @@ -0,0 +1,70 @@ +using System; +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + //[ExecuteInEditMode] + [RequireComponent(typeof(BaseChart))] + public class Example_Dynamic : MonoBehaviour + { + public int maxCacheDataNumber = 100; + public float initDataTime = 2; + public bool insertDataToHead = true; + + private BaseChart chart; + private float updateTime; + private float initTime; + private int initCount; + private int count; + private bool isInited; + private DateTime timeNow; + + void Awake() + { + chart = gameObject.GetComponent<BaseChart>(); + var serie = chart.GetSerie(0); + serie.symbol.show = false; + serie.maxCache = maxCacheDataNumber; + + var xAxis = chart.GetOrAddChartComponent<XAxis>(); + xAxis.maxCache = maxCacheDataNumber; + timeNow = DateTime.Now; + timeNow = timeNow.AddSeconds(-maxCacheDataNumber); + + serie.insertDataToHead = insertDataToHead; + xAxis.insertDataToHead = insertDataToHead; + } + + void Update() + { + if (initCount < maxCacheDataNumber) + { + int count = (int) (maxCacheDataNumber / initDataTime * Time.deltaTime); + for (int i = 0; i < count; i++) + { + timeNow = timeNow.AddSeconds(1); + var category = timeNow.ToString("hh:mm:ss"); + var value = UnityEngine.Random.Range(60, 150); + chart.AddXAxisData(category); + chart.AddData(0, value); + initCount++; + if (initCount > maxCacheDataNumber) break; + } + chart.RefreshChart(); + } + updateTime += Time.deltaTime; + if (updateTime >= 1) + { + var category = DateTime.Now.ToString("hh:mm:ss"); + var value = UnityEngine.Random.Range(60, 150); + updateTime = 0; + count++; + chart.AddXAxisData(category); + chart.AddData(0, value); + chart.RefreshChart(); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_Dynamic.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_Dynamic.cs.meta new file mode 100644 index 0000000..4dd42ea --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_Dynamic.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 310037ac5daa645058285cf176cc9eab +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_LargeData.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_LargeData.cs new file mode 100644 index 0000000..6165c14 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_LargeData.cs @@ -0,0 +1,52 @@ +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + [ExecuteInEditMode] + [RequireComponent(typeof(BaseChart))] + public class Example_LargeData : MonoBehaviour + { + public int maxCacheDataNumber = 1000; + public float initDataTime = 5; + + private BaseChart chart; + private float initTime; + private int initCount = 0; + private System.DateTime timeNow; + + void Awake() + { + chart = gameObject.GetComponentInChildren<BaseChart>(); + timeNow = System.DateTime.Now; + chart.ClearData(); + chart.SetMaxCache(maxCacheDataNumber); + chart.GetChartComponent<Title>().text = maxCacheDataNumber + "数据"; + } + + private double lastValue = 0d; + + private void Update() + { + if (initCount < maxCacheDataNumber) + { + for (int i = 0; i < 20; i++) + { + initCount++; + if (initCount > maxCacheDataNumber) break; + chart.GetChartComponent<Title>().text = initCount + "数据"; + + timeNow = timeNow.AddSeconds(1); + if (lastValue < 20) + lastValue += UnityEngine.Random.Range(0, 5); + else + lastValue += UnityEngine.Random.Range(-5f, 5f); + chart.AddData(0, lastValue); + + chart.AddXAxisData(timeNow.ToString("hh:mm:ss")); + } + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_LargeData.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_LargeData.cs.meta new file mode 100644 index 0000000..f832dd3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_LargeData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 188d38c155a804c7d9d31730d3b12885 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_PieChart.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_PieChart.cs new file mode 100644 index 0000000..173b55c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_PieChart.cs @@ -0,0 +1,40 @@ +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + [ExecuteInEditMode] + [RequireComponent(typeof(PieChart))] + public class Example_PieChart : MonoBehaviour + { + private PieChart chart; + private float time; + private int count = 0; + + private void Awake() + { + chart = transform.GetComponent<PieChart>(); + chart.ClearData(); + } + + private void Update() + { + time += Time.deltaTime; + if (time > 1) + { + time = 0; + if (count < 5) + { + chart.AddData(0, Random.Range(10, 100), "time" + count); + } + else + { + int index = count % 5; + chart.UpdateData(0, Random.Range(10, 100), index); + } + count++; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_PieChart.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_PieChart.cs.meta new file mode 100644 index 0000000..925d44c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_PieChart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a36ce96ed11a24212aafad603286a3ad +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_Test.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_Test.cs new file mode 100644 index 0000000..f105bc7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_Test.cs @@ -0,0 +1,66 @@ +using UnityEngine; +using UnityEngine.UI; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + [ExecuteInEditMode] + public class Example_Test : MonoBehaviour + { + BaseChart chart; + void Awake() + { + chart = gameObject.GetComponent<BaseChart>(); + var btnTrans = transform.parent.Find("Button"); + if (btnTrans) + { + btnTrans.gameObject.GetComponent<Button>().onClick.AddListener(OnTestBtn); + } + } + + void Update() + { + if (Input.GetKeyDown(KeyCode.Space)) + { + AddData(); + //OnTestBtn(); + } + } + + void OnTestBtn() + { + object[][] m_TestData = new object[][] + { + new object[] { "01/06/20", 2.2d, 5.6d }, + new object[] { "22/06/20", 2.4d, 5.3d }, + new object[] { "04/08/21", 4.5d, 5.4d }, + new object[] { "05/08/21", 6.3d, 6.4d }, + new object[] { "06/08/21", 3.1d, 6.4d }, + new object[] { "09/08/21", 3.9d, 6.3d }, + new object[] { "10/08/21", 1.9d, 4.6d }, + }; + chart.ClearData(); + foreach (var list in m_TestData) + { + chart.AddXAxisData((string) list[0]); + chart.AddData(0, (double) list[1]); + chart.AddData(1, (double) list[2]); + } + } + + void AddData() + { + chart.ClearData(); + int count = Random.Range(5, 100); + for (int i = 0; i < count; i++) + { + chart.AddXAxisData("x" + i); + if (Random.Range(1, 3) == 2) + chart.AddData(0, Random.Range(-110, 200)); + else + chart.AddData(0, Random.Range(-100, 100)); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_Test.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_Test.cs.meta new file mode 100644 index 0000000..7ee7459 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_Test.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bac63bf58d06d47be8e1759189fbd9ed +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_TestTime.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_TestTime.cs new file mode 100644 index 0000000..59f813d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_TestTime.cs @@ -0,0 +1,50 @@ +using UnityEngine; +using XCharts.Runtime; + +namespace XCharts.Example +{ + [DisallowMultipleComponent] + [ExecuteInEditMode] + public class Example_TestTime : MonoBehaviour + { + public int maxCache = 100; + LineChart chart; + int timestamp; + void Awake() + { + chart = gameObject.GetComponent<LineChart>(); + AddData(); + chart.SetMaxCache(maxCache); + } + + float m_LastTime = 0; + double m_Value = 100; + void Update() + { + if (Input.GetKeyDown(KeyCode.Space)) + { + //AddData(); + } + if (Time.time - m_LastTime > 0.1f) + { + timestamp += 3600; + m_Value += 10; + chart.AddData(0, timestamp, m_Value); + m_LastTime = Time.time; + + } + } + + void AddData() + { + chart.ClearData(); + timestamp = DateTimeUtil.GetTimestamp() - 10; + for (int i = 0; i < 10; i++) + { + timestamp += i * 3600; + double value = Random.Range(50, 200); + chart.AddData(0, timestamp, value); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_TestTime.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_TestTime.cs.meta new file mode 100644 index 0000000..98f3d2d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example_TestTime.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 43b48222f7ffc420098593a8fe4bfc24 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/XCharts.Examples.asmdef b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/XCharts.Examples.asmdef new file mode 100644 index 0000000..638b296 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/XCharts.Examples.asmdef @@ -0,0 +1,14 @@ +{ + "name": "XCharts.Examples", + "references": [ + "XCharts.Runtime" + ], + "optionalUnityReferences": [], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [] +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/XCharts.Examples.asmdef.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/XCharts.Examples.asmdef.meta new file mode 100644 index 0000000..454b078 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/XCharts.Examples.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9ca8daef375784f86b76407e76c9045a +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/LICENSE.md b/Aimbot-PPO-MultiScene/Assets/XCharts/LICENSE.md new file mode 100644 index 0000000..f250a04 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 - 2022 monitor1394 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/LICENSE.md.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/LICENSE.md.meta new file mode 100644 index 0000000..6a70383 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/LICENSE.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: effab8d087eba4ef1957a08a3607a0b1 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/README.md b/Aimbot-PPO-MultiScene/Assets/XCharts/README.md new file mode 100644 index 0000000..4f5bfd4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/README.md @@ -0,0 +1,153 @@ +<p align="center"> + <a href=""> + <img src="" alt="" width="" height=""> + </a> +</p> +<h2 align="center">XCharts</h3> +<p align="center"> + A powerful, easy-to-use, configurable charting and data visualization library for Unity. + <br> + Unity数据可视化图表插件。 + <br> + <a href="Documentation/README-EN.md">English README</a> +</p> +<p align="center"> + <a href="https://github.com/XCharts-Team/XCharts/blob/master/LICENSE"> + <img src="https://img.shields.io/github/license/XCharts-Team/XCharts"> + </a> + <a href="https://github.com/XCharts-Team/XCharts/releases"> + <img src="https://img.shields.io/github/v/release/XCharts-Team/XCharts?include_prereleases"> + </a> + <a href=""> + <img src="https://img.shields.io/github/repo-size/monitor1394/unity-ugui-xcharts"> + </a> + <a href=""> + <img src="https://img.shields.io/github/languages/code-size/monitor1394/unity-ugui-xcharts"> + </a> + <a href=""> + <img src="https://img.shields.io/badge/Unity-5.6+-green"> + </a> + <a href=""> + <img src="https://img.shields.io/badge/TextMeshPro-YES-green"> + </a> +</p> +<p align="center"> + <a href=""> + <img src="https://img.shields.io/github/stars/XCharts-Team/XCharts?style=social"> + </a> + <a href=""> + <img src="https://img.shields.io/github/forks/XCharts-Team/XCharts?style=social"> + </a> + <a href=""> + <img src="https://img.shields.io/github/issues-closed/XCharts-Team/XCharts?color=green&label=%20%20%20%20issues&logoColor=green&style=social"> + </a> +</p> + +一款基于`UGUI`的功能强大、易用、参数可配置的数据可视化图表插件。支持`折线图`、`柱状图`、`饼图`、`雷达图`、`散点图`、`热力图`、`环形图`、`K线图`、`极坐标`、`平行坐标`等十种常见免费内置图表,以及`3D饼图`、`3D柱图`、`3D金字塔`、`漏斗图`、`仪表盘`、`水位图`、`象形柱图`、`甘特图`、`矩形树图`等多种扩展图表。 + +[XCharts3.0 教程](Documentation/XChartsTutorial01-ZH.md) +[XCharts3.0 API](Documentation/XChartsAPI-ZH.md) +[XCharts3.0 问答](Documentation/XChartsFAQ-ZH.md) +[XCharts3.0 配置项手册](Documentation/XChartsConfiguration-ZH.md) +[XCharts3.0 更新日志](CHANGELOG.md) +[XCharts3.0 订阅服务](Documentation/SUPPORT.md) + +## 特性 + +- 参数可视化配置,效果实时预览,纯代码绘制,无需额外资源。 +- 支持折线图、柱状图、饼图、雷达图、散点图、热力图、环形图、K线图、极坐标、平行坐标等十种常见免费内置图表。 +- 支持3D柱图、漏斗图、金字塔、仪表盘、水位图、象形柱图、甘特图、矩形树图等多种付费扩展图表。 +- 支持直线图、曲线图、面积图、阶梯线图等折线图。 +- 支持并列柱图、堆叠柱图、堆积百分比柱图、斑马柱图等柱状图。 +- 支持环形图、玫瑰图等饼图。 +- 支持内置图表的任意组合,同一图表中可同时显示多个相同或不同类型的图表。 +- 支持实线、曲线、阶梯线、虚线、点线、点划线、双点划线等线条。 +- 支持主题定制、导入和导出,内置两种默认主题。 +- 支持自定义图表内容绘制,提供绘制点、直线、曲线、三角形、四边形、圆形、环形、扇形、边框、箭头等强大的绘图API。 +- 支持PC端和手机端上的数据筛选、视图缩放、细节展示等交互操作。 +- 支持万级大数据绘制。 +- 支持`TexMeshPro`。 + +## `XCharts3.0` 新功能 + +- 增加`Time`时间轴。 +- 增加`SingleAxis`单轴。 +- 增加多种坐标系:`Grid`、`Polar`、`Radar`、`SingleAxis`。 +- 增加多种动画方式。 +- 增加多种图表交互。 +- 增加国际化支持。 +- 增加`Widgets`小组件。 +- 增加多种扩展图表。 + +## `XCharts3.0` 相比 `XCharts2.0` 的改进 + +- 更健壮的底层框架。 +- 更强大的性能。 +- 更小的序列化文件。 +- 更好的交互体验。 +- 更多的组件支持。 +- 更强大的文本自述能力。 +- 更合理的组件调整。 +- 更灵活的组件插拔。 +- 更高效的二次开发。 +- 更丰富的Demo示例。 + +## `XCharts3.0` 和 `2.0` 数据对比 + +| Case | XCharts2.0 | XCharts3.0 | Note | +| -- | -- | -- | -- | +| 2000数据折线图的帧频 | `20` | `83` | 性能提升 `3` 倍 | +| 2000数据折线图的顶点数 | `36.5k` | `6.7k` | 顶点数减少 `4` 倍 | +| 2000数据折线图的Prefab大小 | `11.1MB` | `802KB` | 序列化文件大小减少 `10` 倍 | +| 单条折线图数据最大容量 | `4.1k` | `19k` | 单Serie数据容量提升 `4` 倍 | +| 支持的图表 | `11种` |`23种` | 支持的图表多 `1` 倍 | + +## 注意 + +- `XCharts3.0` 不兼容 `XCharts2.0` 版本,建议旧项目还是继续使用`XCharts2.0`,新项目使用`XCharts3.0`。 +- `XCharts2.0` 进入维护阶段,后续只修复严重`bug`,理论上不再加新功能。 +- `XCharts` 理论上支持`Unity 5.6`及以上版本,但由于版本测试有限难免疏漏,发现版本兼容问题可提`Issue`。 +- `XCharts` 内置图表都为常见的图表,可以免费使用;扩展图表大部分为不常使用的图表,有需要的可付费获取,详情[☞ 看这里](Documentation/SUPPORT.md) +- 本仓库只包含`XCharts`源码,不包含`Demo`示例部分。需要查看`Demo`示例请到[XCharts-Demo](https://github.com/XCharts-Team/XCharts-Demo) + +## 截图 + +![buildinchart](https://github.com/XCharts-Team/XCharts-Demo/blob/master/buildinchart.png) + +![extendchart](https://github.com/XCharts-Team/XCharts-Demo/blob/master/extendchart.png) + +更多示例请看 [XCharts-Demo](https://github.com/XCharts-Team/XCharts-Demo),也可以到 [在线Demo](https://xcharts-team.github.io/demo/) 查看`WebGL`下的运行效果。 + +## 使用 + +1. 导入`XCharts`的`unitypackage`或者源码到项目 +2. 在`Hierarchy`视图下右键选择`XCharts->LineChart`,即可创建一个默认的折线图 +3. 在`Inspector`试图可以调整各个组件的参数,并在`Game`视图看到实时效果 + +更多教程请看:[XCharts教程:5分钟上手教程](Documentation/XChartsTutorial01-ZH.md) + +## FAQ + +1. `XCharts`可以免费使用吗? + 答:`XCharts`使用`MIT`协议,可以免费使用。也可以订阅`VIP`享受更多增值服务。 + +2. `XCharts`支持代码动态添加和修改数据吗?支持从`Excel`或数据库中获取数据吗? + 答:支持代码动态添加和修改数据,但数据需要自己解析或获取,再调用`XCharts`的接口添加到`XCharts`。 + +3. 这个插件除了用在`Unity`,还能用在其他平台(如`Winform`或`WPF`)吗? + 答:目前只支持在`Unity`平台使用。理论上任何支持`UGUI`的`Unity`版本都能运行`XCharts`。 + +## 日志 + +[更新日志](CHANGELOG.md) + +## Licenses + +[MIT License](LICENSE.md) + +## 其他 + +邮箱:`monitor1394@gmail.com` +QQ群:XCharts交流群(`202030963`) +VIP群:XCharts技术支持VIP群(`867291970`) +捐助和技术支持:[☞ 看这里](Documentation/SUPPORT.md) diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/README.md.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/README.md.meta new file mode 100644 index 0000000..760d09c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 393c8e8ab781b4041b141f93eb407380 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Resources.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources.meta new file mode 100644 index 0000000..f5614c7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0e3168b99564b477a83640c24b713f0c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCLang-EN.asset b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCLang-EN.asset new file mode 100644 index 0000000..05e55c4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCLang-EN.asset @@ -0,0 +1,57 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b65fc8b25febc4b9e8acb500d16770b2, type: 3} + m_Name: XCLang-EN + m_EditorClassIdentifier: + langName: EN + time: + months: + - January + - February + - March + - April + - May + - June + - July + - August + - September + - October + - November + - December + monthAbbr: + - Jan + - Feb + - Mar + - Apr + - May + - Jun + - Jul + - Aug + - Sep + - Oct + - Nov + - Dec + dayOfWeek: + - Sunday + - Monday + - Tuesday + - Wednesday + - Thursday + - Friday + - Saturday + dayOfWeekAbbr: + - Sun + - Mon + - Tue + - Wed + - Thu + - Fri + - Sat diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCLang-EN.asset.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCLang-EN.asset.meta new file mode 100644 index 0000000..e0f7d44 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCLang-EN.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cfc5541268f414098950441fd8b6f4a7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCLang-ZH.asset b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCLang-ZH.asset new file mode 100644 index 0000000..2e53acc --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCLang-ZH.asset @@ -0,0 +1,89 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b65fc8b25febc4b9e8acb500d16770b2, type: 3} + m_Name: XCLang-ZH + m_EditorClassIdentifier: + langName: ZH + time: + months: + - "\u4E00\u6708" + - "\u4E8C\u6708" + - "\u4E09\u6708" + - "\u56DB\u6708" + - "\u4E94\u6708" + - "\u516D\u6708" + - "\u4E03\u6708" + - "\u516B\u6708" + - "\u4E5D\u6708" + - "\u5341\u6708" + - "\u5341\u4E00\u6708" + - "\u5341\u4E8C\u6708" + monthAbbr: + - "1\u6708" + - "2\u6708" + - "3\u6708" + - "4\u6708" + - "5\u6708" + - "6\u6708" + - "7\u6708" + - "8\u6708" + - "9\u6708" + - "10\u6708" + - "11\u6708" + - "12\u6708" + dayOfMonth: + - "1\u65E5" + - "2\u65E5" + - "3\u65E5" + - "4\u65E5" + - "5\u65E5" + - "6\u65E5" + - "7\u65E5" + - "8\u65E5" + - "9\u65E5" + - "10\u65E5" + - "11\u65E5" + - "12\u65E5" + - "13\u65E5" + - "14\u65E5" + - "15\u65E5" + - "16\u65E5" + - "17\u65E5" + - "18\u65E5" + - "19\u65E5" + - "20\u65E5" + - "21\u65E5" + - "22\u65E5" + - "23\u65E5" + - "24\u65E5" + - "25\u65E5" + - "26\u65E5" + - "27\u65E5" + - "28\u65E5" + - "29\u65E5" + - "30\u65E5" + - "31\u65E5" + dayOfWeek: + - "\u661F\u671F\u65E5" + - "\u661F\u671F\u4E00" + - "\u661F\u671F\u4E8C" + - "\u661F\u671F\u4E09" + - "\u661F\u671F\u56DB" + - "\u661F\u671F\u4E94" + - "\u661F\u671F\u516D" + dayOfWeekAbbr: + - "\u65E5" + - "\u4E00" + - "\u4E8C" + - "\u4E09" + - "\u56DB" + - "\u4E94" + - "\u516D" diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCLang-ZH.asset.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCLang-ZH.asset.meta new file mode 100644 index 0000000..f638b16 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCLang-ZH.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 79b252423c47d4cf380e489ed55e05d4 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCSettings.asset b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCSettings.asset new file mode 100644 index 0000000..5b89701 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCSettings.asset @@ -0,0 +1,52 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3694d869548264b718bdfc6c8009dcf1, type: 3} + m_Name: XCSettings + m_EditorClassIdentifier: + m_Lang: {fileID: 11400000, guid: 79b252423c47d4cf380e489ed55e05d4, type: 2} + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSizeLv1: 24 + m_FontSizeLv2: 22 + m_FontSizeLv3: 20 + m_FontSizeLv4: 18 + m_AxisLineType: 0 + m_AxisLineWidth: 0.8 + m_AxisSplitLineType: 0 + m_AxisSplitLineWidth: 0.8 + m_AxisTickWidth: 0.8 + m_AxisTickLength: 5 + m_GaugeAxisLineWidth: 15 + m_GaugeAxisSplitLineWidth: 0.8 + m_GaugeAxisSplitLineLength: 15 + m_GaugeAxisTickWidth: 0.8 + m_GaugeAxisTickLength: 5 + m_TootipLineWidth: 0.8 + m_DataZoomBorderWidth: 0.5 + m_DataZoomDataLineWidth: 0.5 + m_VisualMapBorderWidth: 0 + m_SerieLineWidth: 1.8 + m_SerieLineSymbolSize: 5 + m_SerieScatterSymbolSize: 20 + m_SerieSelectedRate: 1.3 + m_SerieCandlestickBorderWidth: 1 + m_EditorShowAllListData: 0 + m_MaxPainter: 10 + m_LineSmoothStyle: 3 + m_LineSmoothness: 2 + m_LineSegmentDistance: 3 + m_CicleSmoothness: 2 + m_VisualMapTriangeLen: 20 + m_PieTooltipExtraRadius: 8 + m_PieSelectedOffset: 8 + m_CustomThemes: + - {fileID: 11400000, guid: 289d2fc7f4ce24f73b9ed8ec52639f72, type: 2} + - {fileID: 11400000, guid: e1dc23a10de1e4c5dbfbaf74c4dfd218, type: 2} diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCSettings.asset.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCSettings.asset.meta new file mode 100644 index 0000000..c83763d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 676e1e322123d4fe2a761de3ef14235f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCTheme-Dark.asset b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCTheme-Dark.asset new file mode 100644 index 0000000..11c2806 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCTheme-Dark.asset @@ -0,0 +1,206 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6c59330ca0f4443b69f06b890a44f32e, type: 3} + m_Name: XCTheme-Dark + m_EditorClassIdentifier: + m_ThemeType: 2 + m_ThemeName: Dark + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_ContrastColor: + serializedVersion: 2 + rgba: 0 + m_BackgroundColor: + serializedVersion: 2 + rgba: 4280945680 + m_ColorPalette: + - serializedVersion: 2 + rgba: 4294939209 + - serializedVersion: 2 + rgba: 4289920892 + - serializedVersion: 2 + rgba: 4284538365 + - serializedVersion: 2 + rgba: 4285951743 + - serializedVersion: 2 + rgba: 4294564184 + - serializedVersion: 2 + rgba: 4287741957 + - serializedVersion: 2 + rgba: 4282747647 + - serializedVersion: 2 + rgba: 4293085325 + - serializedVersion: 2 + rgba: 4294932957 + m_Common: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0.7254902, g: 0.72156864, b: 0.80784315, a: 1} + m_TextBackgroundColor: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 20 + m_Title: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0.93333334, g: 0.94509804, b: 0.98039216, a: 1} + m_TextBackgroundColor: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 24 + m_SubTitle: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0.7254902, g: 0.72156864, b: 0.80784315, a: 1} + m_TextBackgroundColor: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 22 + m_Legend: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0.7254902, g: 0.72156864, b: 0.80784315, a: 1} + m_TextBackgroundColor: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 20 + m_UnableColor: {r: 0.8, g: 0.8, b: 0.8, a: 1} + m_Axis: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0.7254902, g: 0.72156864, b: 0.80784315, a: 1} + m_TextBackgroundColor: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 18 + m_LineType: 0 + m_LineWidth: 0.8 + m_LineLength: 0 + m_LineColor: + serializedVersion: 2 + rgba: 4291737785 + m_SplitLineType: 0 + m_SplitLineWidth: 0.8 + m_SplitLineLength: 0 + m_SplitLineColor: + serializedVersion: 2 + rgba: 4283647816 + m_TickWidth: 0.8 + m_TickLength: 5 + m_TickColor: + serializedVersion: 2 + rgba: 4291737785 + m_SplitAreaColors: + - serializedVersion: 2 + rgba: 100663295 + - serializedVersion: 2 + rgba: 218103807 + m_Gauge: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0.7254902, g: 0.72156864, b: 0.80784315, a: 1} + m_TextBackgroundColor: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 18 + m_LineType: 0 + m_LineWidth: 15 + m_LineLength: 0 + m_LineColor: + serializedVersion: 2 + rgba: 4291737785 + m_SplitLineType: 0 + m_SplitLineWidth: 0.8 + m_SplitLineLength: 15 + m_SplitLineColor: + serializedVersion: 2 + rgba: 4294967295 + m_TickWidth: 0.8 + m_TickLength: 5 + m_TickColor: + serializedVersion: 2 + rgba: 4294967295 + m_SplitAreaColors: + - serializedVersion: 2 + rgba: 100663295 + - serializedVersion: 2 + rgba: 218103807 + m_BarBackgroundColor: + serializedVersion: 2 + rgba: 4291348680 + m_StageColor: + - m_Percent: 0.2 + m_Color: + serializedVersion: 2 + rgba: 4289644433 + - m_Percent: 0.8 + m_Color: + serializedVersion: 2 + rgba: 4288579171 + - m_Percent: 1 + m_Color: + serializedVersion: 2 + rgba: 4281415106 + m_Tooltip: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_TextBackgroundColor: {r: 0.31764707, g: 0.31764707, b: 0.31764707, a: 0.78431374} + m_FontSize: 22 + m_LineType: 0 + m_LineWidth: 0.8 + m_LineColor: + serializedVersion: 2 + rgba: 4293848814 + m_AreaColor: + serializedVersion: 2 + rgba: 542200145 + m_LabelTextColor: + serializedVersion: 2 + rgba: 4294967295 + m_LabelBackgroundColor: + serializedVersion: 2 + rgba: 4289177511 + m_DataZoom: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0.7254902, g: 0.72156864, b: 0.80784315, a: 1} + m_TextBackgroundColor: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 20 + m_BorderWidth: 0.5 + m_DataLineWidth: 0.5 + m_FillerColor: + serializedVersion: 2 + rgba: 869180295 + m_BorderColor: + serializedVersion: 2 + rgba: 4287262833 + m_DataLineColor: + serializedVersion: 2 + rgba: 4287262833 + m_DataAreaColor: + serializedVersion: 2 + rgba: 4287262833 + m_BackgroundColor: + serializedVersion: 2 + rgba: 0 + m_VisualMap: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0.7254902, g: 0.72156864, b: 0.80784315, a: 1} + m_TextBackgroundColor: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 18 + m_BorderWidth: 0 + m_BorderColor: + serializedVersion: 2 + rgba: 4291611852 + m_BackgroundColor: + serializedVersion: 2 + rgba: 0 + m_TriangeLen: 20 + m_Serie: + m_LineWidth: 1.8 + m_LineSymbolSize: 5 + m_ScatterSymbolSize: 20 + m_PieTooltipExtraRadius: 8 + m_SelectedRate: 1.3 + m_PieSelectedOffset: 8 + m_CandlestickColor: + serializedVersion: 2 + rgba: 4283846390 + m_CandlestickColor0: + serializedVersion: 2 + rgba: 4287818324 + m_CandlestickBorderWidth: 1 + m_CandlestickBorderColor: + serializedVersion: 2 + rgba: 4283846390 + m_CandlestickBorderColor0: + serializedVersion: 2 + rgba: 4287818324 diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCTheme-Dark.asset.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCTheme-Dark.asset.meta new file mode 100644 index 0000000..c6e8422 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCTheme-Dark.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 289d2fc7f4ce24f73b9ed8ec52639f72 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCTheme-Default.asset b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCTheme-Default.asset new file mode 100644 index 0000000..e05e578 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCTheme-Default.asset @@ -0,0 +1,163 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6c59330ca0f4443b69f06b890a44f32e, type: 3} + m_Name: XCTheme-Default + m_EditorClassIdentifier: + m_ThemeType: 0 + m_ThemeName: Default + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_ContrastColor: + serializedVersion: 2 + rgba: 0 + m_BackgroundColor: + serializedVersion: 2 + rgba: 4294967295 + m_ColorPalette: + - serializedVersion: 2 + rgba: 4291194964 + - serializedVersion: 2 + rgba: 4285910161 + - serializedVersion: 2 + rgba: 4284008698 + - serializedVersion: 2 + rgba: 4284901102 + - serializedVersion: 2 + rgba: 4292788339 + - serializedVersion: 2 + rgba: 4285702715 + - serializedVersion: 2 + rgba: 4283598076 + - serializedVersion: 2 + rgba: 4290011290 + - serializedVersion: 2 + rgba: 4291591402 + m_Common: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_TextBackgroundColor: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 20 + m_Title: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_TextBackgroundColor: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 24 + m_SubTitle: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + m_TextBackgroundColor: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 22 + m_Legend: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_TextBackgroundColor: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 20 + m_UnableColor: {r: 0.8, g: 0.8, b: 0.8, a: 1} + m_Axis: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0.31764707, g: 0.3019608, b: 0.3019608, a: 1} + m_TextBackgroundColor: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 18 + m_LineType: 0 + m_LineWidth: 0.8 + m_LineLength: 0 + m_LineColor: + serializedVersion: 2 + rgba: 4283256145 + m_SplitLineType: 0 + m_SplitLineWidth: 0.8 + m_SplitLineLength: 0 + m_SplitLineColor: + serializedVersion: 2 + rgba: 542200145 + m_TickWidth: 0.8 + m_TickLength: 5 + m_TickColor: + serializedVersion: 2 + rgba: 4283256145 + m_SplitAreaColors: + - serializedVersion: 2 + rgba: 1308293882 + - serializedVersion: 2 + rgba: 1305004232 + m_Tooltip: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_TextBackgroundColor: {r: 1, g: 1, b: 1, a: 1} + m_FontSize: 20 + m_LineType: 0 + m_LineWidth: 0.8 + m_LineColor: + serializedVersion: 2 + rgba: 1680419113 + m_AreaColor: + serializedVersion: 2 + rgba: 542200145 + m_LabelTextColor: + serializedVersion: 2 + rgba: 4294967295 + m_LabelBackgroundColor: + serializedVersion: 2 + rgba: 4280887593 + m_DataZoom: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_TextBackgroundColor: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 20 + m_BorderWidth: 0.5 + m_DataLineWidth: 0.5 + m_FillerColor: + serializedVersion: 2 + rgba: 1858910119 + m_BorderColor: + serializedVersion: 2 + rgba: 4292730333 + m_DataLineColor: + serializedVersion: 2 + rgba: 4283712815 + m_DataAreaColor: + serializedVersion: 2 + rgba: 1431586095 + m_BackgroundColor: + serializedVersion: 2 + rgba: 0 + m_VisualMap: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_TextColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_TextBackgroundColor: {r: 0, g: 0, b: 0, a: 0} + m_FontSize: 18 + m_BorderWidth: 0 + m_BorderColor: + serializedVersion: 2 + rgba: 4291611852 + m_BackgroundColor: + serializedVersion: 2 + rgba: 0 + m_TriangeLen: 20 + m_Serie: + m_LineWidth: 1.8 + m_LineSymbolSize: 5 + m_ScatterSymbolSize: 20 + m_PieTooltipExtraRadius: 8 + m_SelectedRate: 1.3 + m_PieSelectedOffset: 8 + m_CandlestickColor: + serializedVersion: 2 + rgba: 4283716843 + m_CandlestickColor0: + serializedVersion: 2 + rgba: 4284658247 + m_CandlestickBorderWidth: 1 + m_CandlestickBorderColor: + serializedVersion: 2 + rgba: 4283716843 + m_CandlestickBorderColor0: + serializedVersion: 2 + rgba: 4284658247 diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCTheme-Default.asset.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCTheme-Default.asset.meta new file mode 100644 index 0000000..059fff7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Resources/XCTheme-Default.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e1dc23a10de1e4c5dbfbaf74c4dfd218 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime.meta new file mode 100644 index 0000000..bfcc193 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b33410c335fd5440483c5cabb05c3e5d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart.meta new file mode 100644 index 0000000..8fe8fd6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 900b05585ba864df1aa05dcdb36b324b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/BarChart.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/BarChart.cs new file mode 100644 index 0000000..65cb0d7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/BarChart.cs @@ -0,0 +1,29 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + [AddComponentMenu("XCharts/BarChart", 14)] + [ExecuteInEditMode] + [RequireComponent(typeof(RectTransform))] + [DisallowMultipleComponent] + public class BarChart : BaseChart + { + protected override void DefaultChart() + { + AddChartComponentWhenNoExist<GridCoord>(); + AddChartComponentWhenNoExist<XAxis>(); + AddChartComponentWhenNoExist<YAxis>(); + + var tooltip = GetOrAddChartComponent<Tooltip>(); + tooltip.type = Tooltip.Type.Shadow; + tooltip.trigger = Tooltip.Trigger.Axis; + + RemoveData(); + Bar.AddDefaultSerie(this, GenerateDefaultSerieName()); + for (int i = 0; i < 5; i++) + { + AddXAxisData("x" + (i + 1)); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/BarChart.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/BarChart.cs.meta new file mode 100644 index 0000000..76be77d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/BarChart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 535d2697503c2a94a887354e22a5414d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/CandlestickChart.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/CandlestickChart.cs new file mode 100644 index 0000000..be7e026 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/CandlestickChart.cs @@ -0,0 +1,29 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + [AddComponentMenu("XCharts/CandlestickChart", 23)] + [ExecuteInEditMode] + [RequireComponent(typeof(RectTransform))] + [DisallowMultipleComponent] + public class CandlestickChart : BaseChart + { + protected override void DefaultChart() + { + AddChartComponentWhenNoExist<GridCoord>(); + AddChartComponentWhenNoExist<XAxis>(); + AddChartComponentWhenNoExist<YAxis>(); + + var tooltip = GetOrAddChartComponent<Tooltip>(); + tooltip.type = Tooltip.Type.Shadow; + tooltip.trigger = Tooltip.Trigger.Axis; + + RemoveData(); + var serie = Candlestick.AddDefaultSerie(this, GenerateDefaultSerieName()); + for (int i = 0; i < serie.dataCount; i++) + { + AddXAxisData("x" + (i + 1)); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/CandlestickChart.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/CandlestickChart.cs.meta new file mode 100644 index 0000000..359211c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/CandlestickChart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7b64f0bb738cc4acfa72fff2c30212b4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/HeatmapChart.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/HeatmapChart.cs new file mode 100644 index 0000000..421ae09 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/HeatmapChart.cs @@ -0,0 +1,84 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + [AddComponentMenu("XCharts/HeatmapChart", 18)] + [ExecuteInEditMode] + [RequireComponent(typeof(RectTransform))] + [DisallowMultipleComponent] + public class HeatmapChart : BaseChart + { + protected override void DefaultChart() + { + var tooltip = GetChartComponent<Tooltip>(); + tooltip.type = Tooltip.Type.None; + tooltip.trigger = Tooltip.Trigger.Axis; + + var grid = GetOrAddChartComponent<GridCoord>(); + grid.left = 0.12f; + + var xAxis = GetOrAddChartComponent<XAxis>(); + xAxis.type = Axis.AxisType.Category; + xAxis.boundaryGap = true; + xAxis.splitNumber = 10; + + var yAxis = GetOrAddChartComponent<YAxis>(); + yAxis.type = Axis.AxisType.Category; + yAxis.boundaryGap = true; + yAxis.splitNumber = 10; + RemoveData(); + + var heatmapGridWid = 10f; + int xSplitNumber = (int) (grid.context.width / heatmapGridWid); + int ySplitNumber = (int) (grid.context.height / heatmapGridWid); + + Heatmap.AddDefaultSerie(this, GenerateDefaultSerieName()); + + var visualMap = GetOrAddChartComponent<VisualMap>(); + visualMap.max = 10; + visualMap.range[0] = 0f; + visualMap.range[1] = 10f; + visualMap.orient = Orient.Vertical; + visualMap.calculable = true; + visualMap.location.align = Location.Align.BottomLeft; + visualMap.location.bottom = 100; + visualMap.location.left = 30; + var colors = new List<string> + { + "#313695", + "#4575b4", + "#74add1", + "#abd9e9", + "#e0f3f8", + "#ffffbf", + "#fee090", + "#fdae61", + "#f46d43", + "#d73027", + "#a50026" + }; + visualMap.AddColors(colors); + for (int i = 0; i < xSplitNumber; i++) + { + xAxis.data.Add((i + 1).ToString()); + } + for (int i = 0; i < ySplitNumber; i++) + { + yAxis.data.Add((i + 1).ToString()); + } + for (int i = 0; i < xSplitNumber; i++) + { + for (int j = 0; j < ySplitNumber; j++) + { + var value = 0f; + var rate = Random.Range(0, 101); + if (rate > 70) value = Random.Range(8f, 10f); + else value = Random.Range(1f, 8f); + var list = new List<double> { i, j, value }; + AddData(0, list); + } + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/HeatmapChart.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/HeatmapChart.cs.meta new file mode 100644 index 0000000..0cceaa5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/HeatmapChart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 31aa03cd4ce594c239ae746791b3b59f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/LineChart.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/LineChart.cs new file mode 100644 index 0000000..c5317f5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/LineChart.cs @@ -0,0 +1,29 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + [AddComponentMenu("XCharts/LineChart", 13)] + [ExecuteInEditMode] + [RequireComponent(typeof(RectTransform))] + [DisallowMultipleComponent] + public class LineChart : BaseChart + { + protected override void DefaultChart() + { + AddChartComponentWhenNoExist<GridCoord>(); + AddChartComponentWhenNoExist<XAxis>(); + AddChartComponentWhenNoExist<YAxis>(); + + var tooltip = GetOrAddChartComponent<Tooltip>(); + tooltip.type = Tooltip.Type.Line; + tooltip.trigger = Tooltip.Trigger.Axis; + + RemoveData(); + Line.AddDefaultSerie(this, GenerateDefaultSerieName()); + for (int i = 0; i < 5; i++) + { + AddXAxisData("x" + (i + 1)); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/LineChart.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/LineChart.cs.meta new file mode 100644 index 0000000..f345666 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/LineChart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b4f38bd00b4648c448cabfc167538f7c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/ParallelChart.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/ParallelChart.cs new file mode 100644 index 0000000..63abdf6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/ParallelChart.cs @@ -0,0 +1,30 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + [AddComponentMenu("XCharts/ParallelChart", 25)] + [ExecuteInEditMode] + [RequireComponent(typeof(RectTransform))] + [DisallowMultipleComponent] + public class ParallelChart : BaseChart + { + protected override void DefaultChart() + { + RemoveData(); + AddChartComponent<ParallelCoord>(); + + for (int i = 0; i < 3; i++) + { + var valueAxis = AddChartComponent<ParallelAxis>(); + valueAxis.type = Axis.AxisType.Value; + } + var categoryAxis = AddChartComponent<ParallelAxis>(); + categoryAxis.type = Axis.AxisType.Category; + categoryAxis.position = Axis.AxisPosition.Right; + categoryAxis.data = new List<string>() { "x1", "x2", "x3", "x4", "x5" }; + + Parallel.AddDefaultSerie(this, GenerateDefaultSerieName()); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/ParallelChart.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/ParallelChart.cs.meta new file mode 100644 index 0000000..e2e2f61 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/ParallelChart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 161753d0d6ce541c89483f8c3a21343f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/PieChart.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/PieChart.cs new file mode 100644 index 0000000..f6ef9d3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/PieChart.cs @@ -0,0 +1,20 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + [AddComponentMenu("XCharts/PieChart", 15)] + [ExecuteInEditMode] + [RequireComponent(typeof(RectTransform))] + [DisallowMultipleComponent] + public class PieChart : BaseChart + { + protected override void DefaultChart() + { + var legend = GetOrAddChartComponent<Legend>(); + legend.show = true; + + RemoveData(); + Pie.AddDefaultSerie(this, GenerateDefaultSerieName()); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/PieChart.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/PieChart.cs.meta new file mode 100644 index 0000000..a2a53c5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/PieChart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d44276ba809fd92408b296835f6f7658 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/PolarChart.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/PolarChart.cs new file mode 100644 index 0000000..580efb9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/PolarChart.cs @@ -0,0 +1,33 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + [AddComponentMenu("XCharts/PolarChart", 23)] + [ExecuteInEditMode] + [RequireComponent(typeof(RectTransform))] + [DisallowMultipleComponent] + public class PolarChart : BaseChart + { + protected override void DefaultChart() + { + AddChartComponentWhenNoExist<PolarCoord>(); + AddChartComponentWhenNoExist<AngleAxis>(); + AddChartComponentWhenNoExist<RadiusAxis>(); + + var tooltip = GetChartComponent<Tooltip>(); + tooltip.type = Tooltip.Type.Corss; + tooltip.trigger = Tooltip.Trigger.Axis; + + RemoveData(); + var serie = Line.AddDefaultSerie(this, GenerateDefaultSerieName()); + serie.SetCoord<PolarCoord>(); + serie.ClearData(); + for (int i = 0; i <= 360; i++) + { + var t = i / 180f * Mathf.PI; + var r = Mathf.Sin(2 * t) * Mathf.Cos(2 * t) * 2; + AddData(0, Mathf.Abs(r), i); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/PolarChart.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/PolarChart.cs.meta new file mode 100644 index 0000000..29ae5a6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/PolarChart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 574bcbd917fc148e8bb8735acda07f77 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/RadarChart.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/RadarChart.cs new file mode 100644 index 0000000..ca01353 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/RadarChart.cs @@ -0,0 +1,19 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + [AddComponentMenu("XCharts/RadarChart", 16)] + [ExecuteInEditMode] + [RequireComponent(typeof(RectTransform))] + [DisallowMultipleComponent] + public class RadarChart : BaseChart + { + protected override void DefaultChart() + { + RemoveData(); + RemoveChartComponents<RadarCoord>(); + AddChartComponent<RadarCoord>(); + Radar.AddDefaultSerie(this, GenerateDefaultSerieName()); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/RadarChart.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/RadarChart.cs.meta new file mode 100644 index 0000000..2e638a3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/RadarChart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d2231a0d3e3a5b043b074f6739be4a86 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/RingChart.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/RingChart.cs new file mode 100644 index 0000000..ae04dd2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/RingChart.cs @@ -0,0 +1,18 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + [AddComponentMenu("XCharts/RingChart", 20)] + [ExecuteInEditMode] + [RequireComponent(typeof(RectTransform))] + [DisallowMultipleComponent] + public class RingChart : BaseChart + { + protected override void DefaultChart() + { + GetChartComponent<Tooltip>().type = Tooltip.Type.Line; + RemoveData(); + Ring.AddDefaultSerie(this, GenerateDefaultSerieName()); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/RingChart.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/RingChart.cs.meta new file mode 100644 index 0000000..a46c903 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/RingChart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0ad8949f652ee4376a4a4fe5cb32029f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/ScatterChart.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/ScatterChart.cs new file mode 100644 index 0000000..a6ce4d9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/ScatterChart.cs @@ -0,0 +1,31 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + [AddComponentMenu("XCharts/ScatterChart", 17)] + [ExecuteInEditMode] + [RequireComponent(typeof(RectTransform))] + [DisallowMultipleComponent] + public class ScatterChart : BaseChart + { + protected override void DefaultChart() + { + AddChartComponentWhenNoExist<GridCoord>(); + + var tooltip = GetOrAddChartComponent<Tooltip>(); + tooltip.type = Tooltip.Type.None; + tooltip.trigger = Tooltip.Trigger.Item; + + var xAxis = GetOrAddChartComponent<XAxis>(); + xAxis.type = Axis.AxisType.Value; + xAxis.boundaryGap = false; + + var yAxis = GetOrAddChartComponent<YAxis>(); + yAxis.type = Axis.AxisType.Value; + yAxis.boundaryGap = false; + + RemoveData(); + Scatter.AddDefaultSerie(this, GenerateDefaultSerieName()); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/ScatterChart.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/ScatterChart.cs.meta new file mode 100644 index 0000000..efbd890 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/ScatterChart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bf16aac0bd6c24a8da75846c34c5193e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/SimplifiedBarChart.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/SimplifiedBarChart.cs new file mode 100644 index 0000000..f2079b3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/SimplifiedBarChart.cs @@ -0,0 +1,29 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + [AddComponentMenu("XCharts/SimplifiedBarChart", 27)] + [ExecuteInEditMode] + [RequireComponent(typeof(RectTransform))] + [DisallowMultipleComponent] + public class SimplifiedBarChart : BaseChart + { + protected override void DefaultChart() + { + AddChartComponentWhenNoExist<GridCoord>(); + AddChartComponentWhenNoExist<XAxis>(); + AddChartComponentWhenNoExist<YAxis>(); + + var tooltip = GetChartComponent<Tooltip>(); + tooltip.type = Tooltip.Type.Line; + tooltip.trigger = Tooltip.Trigger.Axis; + + RemoveData(); + SimplifiedBar.AddDefaultSerie(this, GenerateDefaultSerieName()); + for (int i = 0; i < GetSerie(0).dataCount; i++) + { + AddXAxisData("x" + (i + 1)); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/SimplifiedBarChart.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/SimplifiedBarChart.cs.meta new file mode 100644 index 0000000..7dcf138 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/SimplifiedBarChart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: aa86c3bbf8877409c9d45716fbaf92f4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/SimplifiedCandlestickChart.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/SimplifiedCandlestickChart.cs new file mode 100644 index 0000000..0d2d8ef --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/SimplifiedCandlestickChart.cs @@ -0,0 +1,29 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + [AddComponentMenu("XCharts/SimplifiedCandlestickChart", 28)] + [ExecuteInEditMode] + [RequireComponent(typeof(RectTransform))] + [DisallowMultipleComponent] + public class SimplifiedCandlestickChart : BaseChart + { + protected override void DefaultChart() + { + AddChartComponentWhenNoExist<GridCoord>(); + AddChartComponentWhenNoExist<XAxis>(); + AddChartComponentWhenNoExist<YAxis>(); + + var tooltip = GetChartComponent<Tooltip>(); + tooltip.type = Tooltip.Type.Shadow; + tooltip.trigger = Tooltip.Trigger.Axis; + + RemoveData(); + SimplifiedCandlestick.AddDefaultSerie(this, GenerateDefaultSerieName()); + for (int i = 0; i < GetSerie(0).dataCount; i++) + { + AddXAxisData("x" + (i + 1)); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/SimplifiedCandlestickChart.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/SimplifiedCandlestickChart.cs.meta new file mode 100644 index 0000000..26ff0a3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/SimplifiedCandlestickChart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6dcc9bd1ca8344d938f386e6b32e8946 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/SimplifiedLineChart.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/SimplifiedLineChart.cs new file mode 100644 index 0000000..4553cbb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/SimplifiedLineChart.cs @@ -0,0 +1,29 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + [AddComponentMenu("XCharts/SimplifiedLineChart", 26)] + [ExecuteInEditMode] + [RequireComponent(typeof(RectTransform))] + [DisallowMultipleComponent] + public class SimplifiedLineChart : BaseChart + { + protected override void DefaultChart() + { + AddChartComponentWhenNoExist<GridCoord>(); + AddChartComponentWhenNoExist<XAxis>(); + AddChartComponentWhenNoExist<YAxis>(); + + var tooltip = GetChartComponent<Tooltip>(); + tooltip.type = Tooltip.Type.Line; + tooltip.trigger = Tooltip.Trigger.Axis; + + RemoveData(); + SimplifiedLine.AddDefaultSerie(this, GenerateDefaultSerieName()); + for (int i = 0; i < GetSerie(0).dataCount; i++) + { + AddXAxisData("x" + (i + 1)); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/SimplifiedLineChart.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/SimplifiedLineChart.cs.meta new file mode 100644 index 0000000..0ab5605 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Chart/SimplifiedLineChart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a8233997c1b324ecd875a03af4d90972 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component.meta new file mode 100644 index 0000000..73353b5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3be5f1d3b129a47dd8e41cffe3b8e428 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation.meta new file mode 100644 index 0000000..4c94e65 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9f827513754e8436bbc63e64c5b5e6c3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation/AnimationStyle.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation/AnimationStyle.cs new file mode 100644 index 0000000..00761b4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation/AnimationStyle.cs @@ -0,0 +1,630 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + public enum AnimationType + { + /// <summary> + /// he default. An animation playback mode will be selected according to the actual situation. + /// |默认。内部会根据实际情况选择一种动画播放方式。 + /// </summary> + Default, + /// <summary> + /// Play the animation from left to right. + /// |从左往右播放动画。 + /// </summary> + LeftToRight, + /// <summary> + /// Play the animation from bottom to top. + /// |从下往上播放动画。 + /// </summary> + BottomToTop, + /// <summary> + /// Play animations from the inside out. + /// |由内到外播放动画。 + /// </summary> + InsideOut, + /// <summary> + /// Play the animation along the path. + /// |沿着路径播放动画。 + /// </summary> + AlongPath, + /// <summary> + /// Play the animation clockwise. + /// |顺时针播放动画。 + /// </summary> + Clockwise, + } + + public enum AnimationEasing + { + Linear, + } + + /// <summary> + /// the animation of serie. + /// |动画表现。 + /// </summary> + [System.Serializable] + public class AnimationStyle : ChildComponent + { + [SerializeField] private bool m_Enable = true; + [SerializeField] private AnimationType m_Type; + [SerializeField] private AnimationEasing m_Easting; + [SerializeField] private int m_Threshold = 2000; + [SerializeField] private float m_FadeInDuration = 1000; + [SerializeField] private float m_FadeInDelay = 0; + [SerializeField] private float m_FadeOutDuration = 1000f; + [SerializeField] private float m_FadeOutDelay = 0; + [SerializeField] private bool m_DataChangeEnable = true; + [SerializeField] private float m_DataChangeDuration = 500; + [SerializeField] private float m_ActualDuration; + /// <summary> + /// 自定义渐入动画延时函数。返回ms值。 + /// </summary> + public AnimationDelayFunction fadeInDelayFunction; + /// <summary> + /// 自定义渐入动画时长函数。返回ms值。 + /// </summary> + public AnimationDurationFunction fadeInDurationFunction; + /// <summary> + /// 自定义渐出动画延时函数。返回ms值。 + /// </summary> + public AnimationDelayFunction fadeOutDelayFunction; + /// <summary> + /// 自定义渐出动画时长函数。返回ms值。 + /// </summary> + public AnimationDurationFunction fadeOutDurationFunction; + public AnimationStyleContext context = new AnimationStyleContext(); + + /// <summary> + /// Whether to enable animation. + /// |是否开启动画效果。 + /// </summary> + public bool enable { get { return m_Enable; } set { m_Enable = value; } } + /// <summary> + /// The type of animation. + /// |动画类型。 + /// </summary> + public AnimationType type { get { return m_Type; } set { m_Type = value; } } + /// <summary> + /// Easing method used for the first animation. + /// |动画的缓动效果。 + /// </summary> + //public Easing easting { get { return m_Easting; } set { m_Easting = value; } } + /// <summary> + /// The milliseconds duration of the fadeIn animation. + /// |设定的渐入动画时长(毫秒)。如果要设置单个数据项的渐入时长,可以用代码定制:customFadeInDuration。 + /// </summary> + public float fadeInDuration { get { return m_FadeInDuration; } set { m_FadeInDuration = value < 0 ? 0 : value; } } + /// <summary> + /// The milliseconds duration of the fadeOut animation. + /// |设定的渐出动画时长(毫秒)。如果要设置单个数据项的渐出时长,可以用代码定制:customFadeOutDuration。 + /// </summary> + public float fadeOutDuration { get { return m_FadeOutDuration; } set { m_FadeOutDuration = value < 0 ? 0 : value; } } + /// <summary> + /// The milliseconds actual duration of the first animation. + /// |实际的动画时长(毫秒)。 + /// </summary> + public float actualDuration { get { return m_ActualDuration; } } + /// <summary> + /// Whether to set graphic number threshold to animation. Animation will be disabled when graphic number is larger than threshold. + /// |是否开启动画的阈值,当单个系列显示的图形数量大于这个阈值时会关闭动画。 + /// </summary> + public int threshold { get { return m_Threshold; } set { m_Threshold = value; } } + /// <summary> + /// The milliseconds delay before updating the first animation. + /// |渐入动画延时(毫秒)。如果要设置单个数据项的延时,可以用代码定制:customFadeInDelay。 + /// </summary> + public float fadeInDelay { get { return m_FadeInDelay; } set { m_FadeInDelay = value < 0 ? 0 : value; } } + /// <summary> + /// 渐出动画延时(毫秒)。如果要设置单个数据项的延时,可以用代码定制:customFadeOutDelay。 + /// </summary> + public float fadeOutDelay { get { return m_FadeOutDelay; } set { m_FadeInDelay = value < 0 ? 0 : value; } } + /// <summary> + /// 是否开启数据变更动画。 + /// </summary> + public bool dataChangeEnable { get { return m_DataChangeEnable; } set { m_DataChangeEnable = value; } } + /// <summary> + /// The milliseconds duration of the data change animation. + /// |数据变更的动画时长(毫秒)。 + /// </summary> + public float dataChangeDuration { get { return m_DataChangeDuration; } set { m_DataChangeDuration = value < 0 ? 0 : value; } } + /// <summary> + /// 渐入动画完成回调 + /// </summary> + public Action fadeInFinishCallback { get; set; } + /// <summary> + /// 渐出动画完成回调 + /// </summary> + public Action fadeOutFinishCallback { get; set; } + private Dictionary<int, float> m_ItemCurrProgress = new Dictionary<int, float>(); + private Dictionary<int, float> m_ItemDestProgress = new Dictionary<int, float>(); + private bool m_FadeIn = false; + private bool m_IsEnd = true; + private bool m_IsPause = false; + private bool m_FadeOut = false; + private bool m_FadeOuted = false; + private bool m_IsInit = false; + + private float startTime { get; set; } + private float m_CurrDetailProgress; + private float m_DestDetailProgress; + private float m_TotalDetailProgress; + private float m_CurrSymbolProgress; + private Vector3 m_LinePathLastPos; + + public void FadeIn() + { + if (m_FadeOut) + return; + + if (m_IsPause) + { + m_IsPause = false; + return; + } + + if (m_FadeIn) + return; + + startTime = Time.time; + m_FadeIn = true; + m_IsEnd = false; + m_IsInit = false; + m_IsPause = false; + m_FadeOuted = false; + m_CurrDetailProgress = 0; + m_DestDetailProgress = 1; + m_CurrSymbolProgress = 0; + m_ItemCurrProgress.Clear(); + m_ItemDestProgress.Clear(); + } + + public void Restart() + { + Reset(); + FadeIn(); + } + + public void FadeOut() + { + if (m_IsPause) + { + m_IsPause = false; + return; + } + + m_FadeOut = true; + startTime = Time.time; + m_FadeIn = true; + m_IsEnd = false; + m_IsInit = false; + m_IsPause = false; + m_CurrDetailProgress = 0; + m_DestDetailProgress = 1; + m_CurrSymbolProgress = 0; + m_ItemCurrProgress.Clear(); + m_ItemDestProgress.Clear(); + } + + public void Pause() + { + if (!m_IsPause) + { + m_IsPause = true; + } + } + + public void Resume() + { + if (m_IsPause) + { + m_IsPause = false; + } + } + + private void End() + { + if (m_IsEnd) + return; + + m_ActualDuration = (int) ((Time.time - startTime) * 1000) - (m_FadeOut ? fadeOutDelay : fadeInDelay); + m_IsEnd = true; + m_IsInit = false; + + if (m_FadeIn) + { + m_FadeIn = false; + if (fadeInFinishCallback != null) + { + fadeInFinishCallback(); + } + } + if (m_FadeOut) + { + m_FadeOut = false; + m_FadeOuted = true; + if (fadeOutFinishCallback != null) + { + fadeOutFinishCallback(); + } + } + } + + public void Reset() + { + m_FadeIn = false; + m_IsEnd = true; + m_IsInit = false; + m_IsPause = false; + m_FadeOut = false; + m_FadeOuted = false; + m_ItemCurrProgress.Clear(); + } + + public void InitProgress(float curr, float dest) + { + if (m_IsInit || m_IsEnd) + return; + if (curr > dest) + return; + + m_IsInit = true; + m_TotalDetailProgress = dest - curr; + + if (m_FadeOut) + { + m_CurrDetailProgress = dest; + m_DestDetailProgress = curr; + } + else + { + m_CurrDetailProgress = curr; + m_DestDetailProgress = dest; + } + } + + public void InitProgress(List<Vector3> paths, bool isY) + { + if (paths.Count < 1) return; + var sp = paths[0]; + var ep = paths[paths.Count - 1]; + var currDetailProgress = isY ? sp.y : sp.x; + var totalDetailProgress = isY ? ep.y : ep.x; + if (context.type == AnimationType.AlongPath) + { + currDetailProgress = 0; + totalDetailProgress = 0; + var lp = sp; + for (int i = 1; i < paths.Count; i++) + { + var np = paths[i]; + totalDetailProgress += Vector3.Distance(np, lp); + lp = np; + } + m_LinePathLastPos = sp; + context.currentPathDistance = 0; + } + InitProgress(currDetailProgress, totalDetailProgress); + } + + private void SetDataCurrProgress(int index, float state) + { + m_ItemCurrProgress[index] = state; + } + + private float GetDataCurrProgress(int index, float initValue, float destValue, ref bool isBarEnd) + { + if (IsInDelay()) + { + isBarEnd = false; + return initValue; + } + var c1 = !m_ItemCurrProgress.ContainsKey(index); + var c2 = !m_ItemDestProgress.ContainsKey(index); + if (c1 || c2) + { + if (c1) + m_ItemCurrProgress.Add(index, initValue); + + if (c2) + m_ItemDestProgress.Add(index, destValue); + + isBarEnd = false; + } + else + { + isBarEnd = m_ItemCurrProgress[index] == m_ItemDestProgress[index]; + } + return m_ItemCurrProgress[index]; + } + + public bool IsFinish() + { +#if UNITY_EDITOR + if (!Application.isPlaying) + return true; +#endif + if (!m_Enable || m_IsEnd) + return true; + + if (IsIndexAnimation()) + return m_CurrDetailProgress > m_DestDetailProgress; + if (IsItemAnimation()) + return false; + return true; + } + + public bool IsInFadeOut() + { + return m_FadeOut; + } + + public bool IsInDelay() + { + if (m_FadeOut) + return (fadeOutDelay > 0 && Time.time - startTime < fadeOutDelay / 1000); + else + return (fadeInDelay > 0 && Time.time - startTime < fadeInDelay / 1000); + } + + public bool IsItemAnimation() + { + return context.type == AnimationType.BottomToTop || context.type == AnimationType.InsideOut; + } + + public bool IsIndexAnimation() + { + return context.type == AnimationType.LeftToRight || + context.type == AnimationType.Clockwise || + context.type == AnimationType.AlongPath; + } + + public float GetIndexDelay(int dataIndex) + { + if (m_FadeOut && fadeOutDelayFunction != null) + return fadeOutDelayFunction(dataIndex); + else if (m_FadeIn && fadeInDelayFunction != null) + return fadeInDelayFunction(dataIndex); + else + return 0; + } + + public bool IsInIndexDelay(int dataIndex) + { + return Time.time - startTime < GetIndexDelay(dataIndex) / 1000f; + } + + public bool IsAllOutDelay(int dataCount) + { + var nowTime = Time.time - startTime; + for (int i = 0; i < dataCount; i++) + { + if (nowTime < GetIndexDelay(i) / 1000) + return false; + } + return true; + } + + public bool CheckDetailBreak(float detail) + { + if (!IsIndexAnimation()) + return false; + return !IsFinish() && detail > m_CurrDetailProgress; + } + + public bool CheckDetailBreak(Vector3 pos, bool isYAxis) + { + if (!IsIndexAnimation()) + return false; + + if (IsFinish()) + return false; + + if (context.type == AnimationType.AlongPath) + { + context.currentPathDistance += Vector3.Distance(pos, m_LinePathLastPos); + m_LinePathLastPos = pos; + return CheckDetailBreak(context.currentPathDistance); + } + else + { + if (isYAxis) + return pos.y > m_CurrDetailProgress; + else + return pos.x > m_CurrDetailProgress; + } + } + + public void CheckProgress() + { + if (IsItemAnimation() && context.isAllItemAnimationEnd) + { + End(); + return; + } + CheckProgress(m_TotalDetailProgress); + } + + public void CheckProgress(double total) + { + if (IsFinish()) + return; + + if (!m_IsInit || m_IsPause || m_IsEnd) + return; + + if (IsInDelay()) + return; + + m_ActualDuration = (int) ((Time.time - startTime) * 1000) - fadeInDelay; + var duration = GetCurrAnimationDuration(); + var delta = (float) (total / duration * Time.deltaTime); + if (m_FadeOut) + { + m_CurrDetailProgress -= delta; + if (m_CurrDetailProgress <= m_DestDetailProgress) + { + m_CurrDetailProgress = m_DestDetailProgress; + End(); + } + } + else + { + m_CurrDetailProgress += delta; + if (m_CurrDetailProgress >= m_DestDetailProgress) + { + m_CurrDetailProgress = m_DestDetailProgress; + End(); + } + } + } + + internal float GetCurrAnimationDuration(int dataIndex = -1) + { + if (dataIndex >= 0) + { + if (m_FadeOut && fadeOutDurationFunction != null) + return fadeOutDurationFunction(dataIndex) / 1000f; + if (m_FadeIn && fadeInDurationFunction != null) + return fadeInDurationFunction(dataIndex) / 1000f; + } + + if (m_FadeOut) + return m_FadeOutDuration > 0 ? m_FadeOutDuration / 1000 : 1f; + else + return m_FadeInDuration > 0 ? m_FadeInDuration / 1000 : 1f; + } + + internal float CheckItemProgress(int dataIndex, float destProgress, ref bool isEnd, float startProgress = 0) + { + isEnd = false; + var initHig = m_FadeOut ? destProgress : startProgress; + var destHig = m_FadeOut ? startProgress : destProgress; + var currHig = GetDataCurrProgress(dataIndex, initHig, destHig, ref isEnd); + if (isEnd || IsFinish()) + { + return m_FadeOuted ? startProgress : destProgress; + } + else if (IsInDelay() || IsInIndexDelay(dataIndex)) + { + return m_FadeOut ? destProgress : startProgress; + } + else if (m_IsPause) + { + return currHig; + } + else + { + var duration = GetCurrAnimationDuration(dataIndex); + var delta = (destProgress - startProgress) / duration * Time.deltaTime; + currHig = currHig + (m_FadeOut ? -delta : delta); + if (m_FadeOut) + { + if ((initHig > 0 && currHig <= 0) || (initHig < 0 && currHig >= 0)) + { + currHig = 0; + isEnd = true; + } + } + else + { + if ((destProgress - startProgress > 0 && currHig > destProgress) || + (destProgress - startProgress < 0 && currHig < destProgress)) + { + currHig = destProgress; + isEnd = true; + } + } + SetDataCurrProgress(dataIndex, currHig); + return currHig; + } + } + + public void CheckSymbol(float dest) + { + if (!enable || m_IsEnd || m_IsPause || !m_IsInit) + return; + + if (IsInDelay()) + return; + + var duration = GetCurrAnimationDuration(); + var delta = dest / duration * Time.deltaTime; + if (m_FadeOut) + { + m_CurrSymbolProgress -= delta; + if (m_CurrSymbolProgress < 0) + m_CurrSymbolProgress = 0; + } + else + { + m_CurrSymbolProgress += delta; + if (m_CurrSymbolProgress > dest) + m_CurrSymbolProgress = dest; + } + } + + public float GetSysmbolSize(float dest) + { +#if UNITY_EDITOR + if (!Application.isPlaying) + return dest; +#endif + if (!enable) + return dest; + + if (m_IsEnd) + return m_FadeOut ? 0 : dest; + + return m_CurrSymbolProgress; + } + + public float GetCurrDetail() + { +#if UNITY_EDITOR + if (!Application.isPlaying) + return m_DestDetailProgress; +#endif + return m_CurrDetailProgress; + } + + public float GetCurrRate() + { +#if UNITY_EDITOR + if (!Application.isPlaying) + return 1; +#endif + if (!enable || m_IsEnd) + return 1; + return m_CurrDetailProgress; + } + + public int GetCurrIndex() + { +#if UNITY_EDITOR + if (!Application.isPlaying) + return -1; +#endif + if (!enable || m_IsEnd) + return -1; + return (int) m_CurrDetailProgress; + } + + public float GetUpdateAnimationDuration() + { + if (m_Enable && m_DataChangeEnable && IsFinish()) + return m_DataChangeDuration; + else + return 0; + } + + public bool HasFadeOut() + { + return enable && m_FadeOuted && m_IsEnd; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation/AnimationStyle.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation/AnimationStyle.cs.meta new file mode 100644 index 0000000..87c8cd8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation/AnimationStyle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e31c30f2ef61c48718a626f93307ce92 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation/AnimationStyleContext.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation/AnimationStyleContext.cs new file mode 100644 index 0000000..9184e0a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation/AnimationStyleContext.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + public struct AnimationStyleContext + { + public AnimationType type; + public float currentPathDistance; + public bool isAllItemAnimationEnd; + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation/AnimationStyleContext.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation/AnimationStyleContext.cs.meta new file mode 100644 index 0000000..572eb5b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation/AnimationStyleContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b3dc504960589413fa6a76267067775c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation/AnimationStyleHelper.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation/AnimationStyleHelper.cs new file mode 100644 index 0000000..332236d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation/AnimationStyleHelper.cs @@ -0,0 +1,65 @@ +using UnityEngine; +using XUGL; + +namespace XCharts.Runtime +{ + public static class AnimationStyleHelper + { + public static float CheckDataAnimation(BaseChart chart, Serie serie, int dataIndex, float destProgress, float startPorgress = 0) + { + if (!serie.animation.IsItemAnimation()) + { + serie.animation.context.isAllItemAnimationEnd = false; + return destProgress; + } + if (serie.animation.IsFinish()) + { + serie.animation.context.isAllItemAnimationEnd = false; + return destProgress; + } + var isDataAnimationEnd = true; + var currHig = serie.animation.CheckItemProgress(dataIndex, destProgress, ref isDataAnimationEnd, startPorgress); + if (!isDataAnimationEnd) + { + serie.animation.context.isAllItemAnimationEnd = false; + } + return currHig; + } + + public static void UpdateSerieAnimation(Serie serie) + { + var serieType = serie.GetType(); + var animationType = AnimationType.LeftToRight; + if (serieType.IsDefined(typeof(DefaultAnimationAttribute), false)) + { + animationType = serieType.GetAttribute<DefaultAnimationAttribute>().type; + } + UpdateAnimationType(serie.animation, animationType); + } + + public static void UpdateAnimationType(AnimationStyle animation, AnimationType defaultType) + { + animation.context.type = animation.type == AnimationType.Default ? + defaultType : + animation.type; + } + + public static bool GetAnimationPosition(AnimationStyle animation, bool isY, Vector3 lp, Vector3 cp, float progress, ref Vector3 ip) + { + if (animation.context.type == AnimationType.AlongPath) + { + var dist = Vector3.Distance(lp, cp); + var rate = (dist - animation.context.currentPathDistance + animation.GetCurrDetail()) / dist; + ip = Vector3.Lerp(lp, cp, rate); + return true; + } + else + { + var startPos = isY ? new Vector3(-10000, progress) : new Vector3(progress, -10000); + var endPos = isY ? new Vector3(10000, progress) : new Vector3(progress, 10000); + + return UGLHelper.GetIntersection(lp, cp, startPos, endPos, ref ip); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation/AnimationStyleHelper.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation/AnimationStyleHelper.cs.meta new file mode 100644 index 0000000..eed1235 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Animation/AnimationStyleHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 54cadaee0856b4f7085787fd450eec37 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis.meta new file mode 100644 index 0000000..61797b1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 194a62edf7ec2484fa2eebbf5bde3e95 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AngleAxis.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AngleAxis.meta new file mode 100644 index 0000000..0b8a740 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AngleAxis.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 28b88ca3453f04fbdb23a53b5bcb4bf7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AngleAxis/AngleAxis.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AngleAxis/AngleAxis.cs new file mode 100644 index 0000000..46909d7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AngleAxis/AngleAxis.cs @@ -0,0 +1,48 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// Angle axis of Polar Coordinate. + /// |极坐标系的角度轴。 + /// </summary> + [System.Serializable] + [RequireChartComponent(typeof(PolarCoord))] + [ComponentHandler(typeof(AngleAxisHandler), true)] + public class AngleAxis : Axis + { + [SerializeField] private float m_StartAngle = 0; + + /// <summary> + /// Starting angle of axis. 0 degrees by default, standing for right position of center. + /// |起始刻度的角度,默认为 0 度,即圆心的正右方。 + /// </summary> + public float startAngle + { + get { return m_StartAngle; } + set { if (PropertyUtil.SetStruct(ref m_StartAngle, value)) SetAllDirty(); } + } + + public float GetValueAngle(float value) + { + return (value + context.startAngle + 360) % 360; + } + + public override void SetDefaultValue() + { + m_Show = true; + m_Type = AxisType.Value; + m_SplitNumber = 12; + m_StartAngle = 0; + m_BoundaryGap = false; + m_Data = new List<string>(12); + splitLine.show = true; + splitLine.lineStyle.type = LineStyle.Type.Solid; + axisLabel.textLimit.enable = false; + minMaxType = AxisMinMaxType.Custom; + min = 0; + max = 360; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AngleAxis/AngleAxis.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AngleAxis/AngleAxis.cs.meta new file mode 100644 index 0000000..ea0bbb0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AngleAxis/AngleAxis.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 787015be923a74e1da4000c7abc2dcdf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AngleAxis/AngleAxisHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AngleAxis/AngleAxisHandler.cs new file mode 100644 index 0000000..b57b5a4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AngleAxis/AngleAxisHandler.cs @@ -0,0 +1,164 @@ +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class AngleAxisHandler : AxisHandler<AngleAxis> + { + public override void InitComponent() + { + InitAngleAxis(component); + } + + public override void Update() + { + component.context.startAngle = 90 - component.startAngle; + UpdateAxisMinMaxValue(component); + UpdatePointerValue(component); + } + + public override void DrawBase(VertexHelper vh) + { + DrawAngleAxis(vh, component); + } + + private void UpdateAxisMinMaxValue(AngleAxis axis, bool updateChart = true) + { + if (axis.IsCategory() || !axis.show) return; + double tempMinValue = 0; + double tempMaxValue = 0; + SeriesHelper.GetYMinMaxValue(chart.series, null, axis.polarIndex, true, axis.inverse, out tempMinValue, + out tempMaxValue, true); + AxisHelper.AdjustMinMaxValue(axis, ref tempMinValue, ref tempMaxValue, true); + if (tempMinValue != axis.context.minValue || tempMaxValue != axis.context.maxValue) + { + axis.UpdateMinMaxValue(tempMinValue, tempMaxValue); + axis.context.offset = 0; + axis.context.lastCheckInverse = axis.inverse; + UpdateAxisTickValueList(axis); + + if (updateChart) + { + UpdateAxisLabelText(axis); + chart.RefreshChart(); + } + } + } + + internal void UpdateAxisLabelText(AngleAxis axis) + { + var runtimeWidth = 360; + if (axis.context.labelObjectList.Count <= 0) + InitAngleAxis(axis); + else + axis.UpdateLabelText(runtimeWidth, null, false); + } + + private void InitAngleAxis(AngleAxis axis) + { + var polar = chart.GetChartComponent<PolarCoord>(axis.polarIndex); + if (polar == null) return; + PolarHelper.UpdatePolarCenter(polar, chart.chartPosition, chart.chartWidth, chart.chartHeight); + var radius = polar.context.radius; + axis.context.labelObjectList.Clear(); + axis.context.startAngle = 90 - axis.startAngle; + + string objName = component.GetType().Name + axis.index; + var axisObj = ChartHelper.AddObject(objName, chart.transform, chart.chartMinAnchor, + chart.chartMaxAnchor, chart.chartPivot, chart.chartSizeDelta); + axisObj.transform.localPosition = Vector3.zero; + axisObj.SetActive(axis.show); + axisObj.hideFlags = chart.chartHideFlags; + ChartHelper.HideAllObject(axisObj); + var splitNumber = AxisHelper.GetSplitNumber(axis, radius, null); + var totalAngle = axis.context.startAngle; + var total = 360; + var cenPos = polar.context.center; + var txtHig = axis.axisLabel.textStyle.GetFontSize(chart.theme.axis) + 2; + var margin = axis.axisLabel.distance + axis.axisTick.GetLength(chart.theme.axis.tickLength); + var isCategory = axis.IsCategory(); + var isPercentStack = SeriesHelper.IsPercentStack<Bar>(chart.series); + for (int i = 0; i < splitNumber; i++) + { + float scaleAngle = AxisHelper.GetScaleWidth(axis, total, i + 1, null); + bool inside = axis.axisLabel.inside; + var labelName = AxisHelper.GetLabelName(axis, total, i, axis.context.minValue, axis.context.maxValue, + null, isPercentStack); + var label = ChartHelper.AddAxisLabelObject(splitNumber, i, objName + i, axisObj.transform, + new Vector2(scaleAngle, txtHig), axis, + chart.theme.axis, labelName, Color.clear); + label.text.SetAlignment(axis.axisLabel.textStyle.GetAlignment(TextAnchor.MiddleCenter)); + var pos = ChartHelper.GetPos(cenPos, radius + margin, + isCategory ? (totalAngle + scaleAngle / 2) : totalAngle, true); + AxisHelper.AdjustCircleLabelPos(label, pos, cenPos, txtHig, Vector3.zero); + if (i == 0) axis.axisLabel.SetRelatedText(label.text, scaleAngle); + axis.context.labelObjectList.Add(label); + + totalAngle += scaleAngle; + } + } + + private void DrawAngleAxis(VertexHelper vh, AngleAxis angleAxis) + { + var polar = chart.GetChartComponent<PolarCoord>(angleAxis.polarIndex); + var radius = polar.context.radius; + var cenPos = polar.context.center; + var total = 360; + var size = AxisHelper.GetScaleNumber(angleAxis, total, null); + var currAngle = angleAxis.context.startAngle; + var tickWidth = angleAxis.axisTick.GetWidth(chart.theme.axis.tickWidth); + var tickLength = angleAxis.axisTick.GetLength(chart.theme.axis.tickLength); + var tickColor = angleAxis.axisTick.GetColor(chart.theme.axis.lineColor); + var lineColor = angleAxis.axisLine.GetColor(chart.theme.axis.lineColor); + var splitLineColor = angleAxis.splitLine.GetColor(chart.theme.axis.splitLineColor); + for (int i = 1; i < size; i++) + { + var scaleWidth = AxisHelper.GetScaleWidth(angleAxis, total, i); + var pos = ChartHelper.GetPos(cenPos, radius, currAngle, true); + if (angleAxis.show && angleAxis.splitLine.show) + { + var lineWidth = angleAxis.splitLine.GetWidth(chart.theme.axis.splitLineWidth); + UGL.DrawLine(vh, cenPos, pos, lineWidth, splitLineColor); + } + if (angleAxis.show && angleAxis.axisTick.show) + { + if ((i == 1 && angleAxis.axisTick.showStartTick) || + (i == size - 1 && angleAxis.axisTick.showEndTick) || + (i > 1 && i < size - 1)) + { + var tickY = radius + tickLength; + var tickPos = ChartHelper.GetPos(cenPos, tickY, currAngle, true); + UGL.DrawLine(vh, pos, tickPos, tickWidth, tickColor); + } + } + currAngle += scaleWidth; + } + if (angleAxis.show && angleAxis.axisLine.show) + { + var lineWidth = angleAxis.axisLine.GetWidth(chart.theme.axis.lineWidth); + var outsideRaidus = radius + lineWidth * 2; + UGL.DrawDoughnut(vh, cenPos, radius, outsideRaidus, lineColor, Color.clear); + } + } + + protected override void UpdatePointerValue(Axis axis) + { + var polar = chart.GetChartComponent<PolarCoord>(axis.polarIndex); + if (polar == null) + return; + + if (!polar.context.isPointerEnter) + { + axis.context.pointerValue = double.PositiveInfinity; + return; + } + + var dir = (chart.pointerPos - new Vector2(polar.context.center.x, polar.context.center.y)).normalized; + var angle = ChartHelper.GetAngle360(Vector2.up, dir); + axis.context.pointerValue = (angle - component.context.startAngle + 360) % 360; + axis.context.pointerLabelPosition = polar.context.center + new Vector3(dir.x, dir.y) * (polar.context.radius + 25); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AngleAxis/AngleAxisHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AngleAxis/AngleAxisHandler.cs.meta new file mode 100644 index 0000000..b3408f6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AngleAxis/AngleAxisHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 83f228c42435c4619943a2f187c98e7b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/Axis.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/Axis.cs new file mode 100644 index 0000000..23f2c83 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/Axis.cs @@ -0,0 +1,791 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// The axis in rectangular coordinate. + /// |直角坐标系的坐标轴组件。 + /// </summary> + [System.Serializable] + public class Axis : MainComponent + { + /// <summary> + /// the type of axis. + /// |坐标轴类型。 + /// </summary> + public enum AxisType + { + /// <summary> + /// Numerical axis, suitable for continuous data. + /// ||数值轴。适用于连续数据。 + /// </summary> + Value, + /// <summary> + /// Category axis, suitable for discrete category data. Data should only be set via data for this type. + /// ||类目轴。适用于离散的类目数据,为该类型时必须通过 data 设置类目数据。 + /// </summary> + Category, + /// <summary> + /// Log axis, suitable for log data. + /// |对数轴。适用于对数数据。 + /// </summary> + Log, + /// <summary> + /// Time axis, suitable for continuous time series data. + /// |时间轴。适用于连续的时序数据。 + /// </summary> + Time + } + + /// <summary> + /// the type of axis min and max value. + /// |坐标轴最大最小刻度显示类型。 + /// </summary> + public enum AxisMinMaxType + { + /// <summary> + /// 0 - maximum. + /// |0-最大值。 + /// </summary> + Default, + /// <summary> + /// minimum - maximum. + /// |最小值-最大值。 + /// </summary> + MinMax, + /// <summary> + /// Customize the minimum and maximum. + /// |自定义最小值最大值。 + /// </summary> + Custom + } + /// <summary> + /// the position of axis in grid. + /// |坐标轴在Grid中的位置 + /// </summary> + public enum AxisPosition + { + Left, + Right, + Bottom, + Top + } + + [SerializeField] protected bool m_Show = true; + [SerializeField] protected AxisType m_Type; + [SerializeField] protected AxisMinMaxType m_MinMaxType; + [SerializeField] protected int m_GridIndex; + [SerializeField] protected int m_PolarIndex; + [SerializeField] protected int m_ParallelIndex; + [SerializeField] protected AxisPosition m_Position; + [SerializeField] protected float m_Offset; + [SerializeField] protected double m_Min; + [SerializeField] protected double m_Max; + [SerializeField] protected int m_SplitNumber = 0; + [SerializeField] protected double m_Interval = 0; + [SerializeField] protected bool m_BoundaryGap = true; + [SerializeField] protected int m_MaxCache = 0; + [SerializeField] protected float m_LogBase = 10; + [SerializeField] protected bool m_LogBaseE = false; + [SerializeField] protected int m_CeilRate = 0; + [SerializeField] protected bool m_Inverse = false; + [SerializeField] private bool m_Clockwise = true; + [SerializeField] private bool m_InsertDataToHead; + [SerializeField] protected List<Sprite> m_Icons = new List<Sprite>(); + [SerializeField] protected List<string> m_Data = new List<string>(); + [SerializeField] protected AxisLine m_AxisLine = AxisLine.defaultAxisLine; + [SerializeField] protected AxisName m_AxisName = AxisName.defaultAxisName; + [SerializeField] protected AxisTick m_AxisTick = AxisTick.defaultTick; + [SerializeField] protected AxisLabel m_AxisLabel = AxisLabel.defaultAxisLabel; + [SerializeField] protected AxisSplitLine m_SplitLine = AxisSplitLine.defaultSplitLine; + [SerializeField] protected AxisSplitArea m_SplitArea = AxisSplitArea.defaultSplitArea; + + public AxisContext context = new AxisContext(); + + /// <summary> + /// Whether to show axis. + /// |是否显示坐标轴。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetAllDirty(); } + } + /// <summary> + /// the type of axis. + /// |坐标轴类型。 + /// </summary> + public AxisType type + { + get { return m_Type; } + set { if (PropertyUtil.SetStruct(ref m_Type, value)) SetAllDirty(); } + } + /// <summary> + /// the type of axis minmax. + /// |坐标轴刻度最大最小值显示类型。 + /// </summary> + public AxisMinMaxType minMaxType + { + get { return m_MinMaxType; } + set { if (PropertyUtil.SetStruct(ref m_MinMaxType, value)) SetAllDirty(); } + } + /// <summary> + /// The index of the grid on which the axis are located, by default, is in the first grid. + /// |坐标轴所在的 grid 的索引,默认位于第一个 grid。 + /// </summary> + public int gridIndex + { + get { return m_GridIndex; } + set { if (PropertyUtil.SetStruct(ref m_GridIndex, value)) SetAllDirty(); } + } + /// <summary> + /// The index of the polar on which the axis are located, by default, is in the first polar. + /// |坐标轴所在的 ploar 的索引,默认位于第一个 polar。 + /// </summary> + public int polarIndex + { + get { return m_PolarIndex; } + set { if (PropertyUtil.SetStruct(ref m_PolarIndex, value)) SetAllDirty(); } + } + /// <summary> + /// The index of the parallel on which the axis are located, by default, is in the first parallel. + /// |坐标轴所在的 parallel 的索引,默认位于第一个 parallel。 + /// </summary> + public int parallelIndex + { + get { return m_ParallelIndex; } + set { if (PropertyUtil.SetStruct(ref m_ParallelIndex, value)) SetAllDirty(); } + } + /// <summary> + /// the position of axis in grid. + /// |坐标轴在Grid中的位置。 + /// </summary> + public AxisPosition position + { + get { return m_Position; } + set { if (PropertyUtil.SetStruct(ref m_Position, value)) SetAllDirty(); } + } + /// <summary> + /// the offset of axis from the default position. Useful when the same position has multiple axes. + /// |坐标轴相对默认位置的偏移。在相同position有多个坐标轴时有用。 + /// </summary> + public float offset + { + get { return m_Offset; } + set { if (PropertyUtil.SetStruct(ref m_Offset, value)) SetAllDirty(); } + } + /// <summary> + /// The minimun value of axis.Valid when `minMaxType` is `Custom` + /// |设定的坐标轴刻度最小值,当minMaxType为Custom时有效。 + /// </summary> + public double min + { + get { return m_Min; } + set { if (PropertyUtil.SetStruct(ref m_Min, value)) SetAllDirty(); } + } + /// <summary> + /// The maximum value of axis.Valid when `minMaxType` is `Custom` + /// |设定的坐标轴刻度最大值,当minMaxType为Custom时有效。 + /// </summary> + public double max + { + get { return m_Max; } + set { if (PropertyUtil.SetStruct(ref m_Max, value)) SetAllDirty(); } + } + /// <summary> + /// Number of segments that the axis is split into. + /// |坐标轴的期望的分割段数。默认为0表示自动分割。 + /// </summary> + public int splitNumber + { + get { return m_SplitNumber; } + set { if (PropertyUtil.SetStruct(ref m_SplitNumber, value)) SetAllDirty(); } + } + /// <summary> + /// Compulsively set segmentation interval for axis.This is unavailable for category axis. + /// |强制设置坐标轴分割间隔。无法在类目轴中使用。 + /// </summary> + public double interval + { + get { return m_Interval; } + set { if (PropertyUtil.SetStruct(ref m_Interval, value)) SetAllDirty(); } + } + /// <summary> + /// The boundary gap on both sides of a coordinate axis, which is valid only for category axis with type: 'Category'. + /// |坐标轴两边是否留白。只对类目轴有效。 + /// </summary> + public bool boundaryGap + { + get { return IsCategory() ? m_BoundaryGap : false; } + set { if (PropertyUtil.SetStruct(ref m_BoundaryGap, value)) SetAllDirty(); } + } + /// <summary> + /// Base of logarithm, which is valid only for numeric axes with type: 'Log'. + /// |对数轴的底数,只在对数轴(type:'Log')中有效。 + /// </summary> + public float logBase + { + get { return m_LogBase; } + set + { + if (value <= 0 || value == 1) value = 10; + if (PropertyUtil.SetStruct(ref m_LogBase, value)) SetAllDirty(); + } + } + /// <summary> + /// On the log axis, if base e is the natural number, and is true, logBase fails. + /// |对数轴是否以自然数 e 为底数,为 true 时 logBase 失效。 + /// </summary> + public bool logBaseE + { + get { return m_LogBaseE; } + set { if (PropertyUtil.SetStruct(ref m_LogBaseE, value)) SetAllDirty(); } + } + /// <summary> + /// The max number of axis data cache. + /// |The first data will be remove when the size of axis data is larger then maxCache. + /// |可缓存的最大数据量。默认为0没有限制,大于0时超过指定值会移除旧数据再插入新数据。 + /// </summary> + public int maxCache + { + get { return m_MaxCache; } + set { if (PropertyUtil.SetStruct(ref m_MaxCache, value < 0 ? 0 : value)) SetAllDirty(); } + } + /// <summary> + /// The ratio of maximum and minimum values rounded upward. The default is 0, which is automatically calculated. + /// |最大最小值向上取整的倍率。默认为0时自动计算。 + /// </summary> + public int ceilRate + { + get { return m_CeilRate; } + set { if (PropertyUtil.SetStruct(ref m_CeilRate, value < 0 ? 0 : value)) SetAllDirty(); } + } + /// <summary> + /// Whether the axis are reversed or not. Invalid in `Category` axis. + /// |是否反向坐标轴。在类目轴中无效。 + /// </summary> + public bool inverse + { + get { return m_Inverse; } + set { if (m_Type == AxisType.Value && PropertyUtil.SetStruct(ref m_Inverse, value)) SetAllDirty(); } + } + /// <summary> + /// Whether the positive position of axis is in clockwise. True for clockwise by default. + /// |刻度增长是否按顺时针,默认顺时针。 + /// </summary> + public bool clockwise + { + get { return m_Clockwise; } + set { if (PropertyUtil.SetStruct(ref m_Clockwise, value)) SetAllDirty(); } + } + /// <summary> + /// Category data, available in type: 'Category' axis. + /// |类目数据,在类目轴(type: 'category')中有效。 + /// </summary> + public List<string> data + { + get { return m_Data; } + set { if (value != null) { m_Data = value; SetAllDirty(); } } + } + /// <summary> + /// 类目数据对应的图标。 + /// </summary> + public List<Sprite> icons + { + get { return m_Icons; } + set { if (value != null) { m_Icons = value; SetAllDirty(); } } + } + /// <summary> + /// axis Line. + /// |坐标轴轴线。 + /// </summary> + public AxisLine axisLine + { + get { return m_AxisLine; } + set { if (value != null) { m_AxisLine = value; SetVerticesDirty(); } } + } + /// <summary> + /// axis name. + /// |坐标轴名称。 + /// </summary> + public AxisName axisName + { + get { return m_AxisName; } + set { if (value != null) { m_AxisName = value; SetComponentDirty(); } } + } + /// <summary> + /// axis tick. + /// |坐标轴刻度。 + /// </summary> + public AxisTick axisTick + { + get { return m_AxisTick; } + set { if (value != null) { m_AxisTick = value; SetVerticesDirty(); } } + } + /// <summary> + /// axis label. + /// |坐标轴刻度标签。 + /// </summary> + public AxisLabel axisLabel + { + get { return m_AxisLabel; } + set { if (value != null) { m_AxisLabel = value; SetComponentDirty(); } } + } + /// <summary> + /// axis split line. + /// |坐标轴分割线。 + /// </summary> + public AxisSplitLine splitLine + { + get { return m_SplitLine; } + set { if (value != null) { m_SplitLine = value; SetVerticesDirty(); } } + } + /// <summary> + /// axis split area. + /// |坐标轴分割区域。 + /// </summary> + public AxisSplitArea splitArea + { + get { return m_SplitArea; } + set { if (value != null) { m_SplitArea = value; SetVerticesDirty(); } } + } + /// <summary> + /// Whether to add new data at the head or at the end of the list. + /// |添加新数据时是在列表的头部还是尾部加入。 + /// </summary> + public bool insertDataToHead + { + get { return m_InsertDataToHead; } + set { if (PropertyUtil.SetStruct(ref m_InsertDataToHead, value)) SetAllDirty(); } + } + + public override bool vertsDirty + { + get + { + return m_VertsDirty || + axisLine.anyDirty || + axisTick.anyDirty || + splitLine.anyDirty || + splitArea.anyDirty; + } + } + + public override bool componentDirty + { + get + { + return m_ComponentDirty || + axisName.anyDirty || + axisLabel.anyDirty; + } + } + + public override void ClearComponentDirty() + { + base.ClearComponentDirty(); + axisName.ClearComponentDirty(); + axisLabel.ClearComponentDirty(); + } + + public override void ClearVerticesDirty() + { + base.ClearVerticesDirty(); + axisLine.ClearVerticesDirty(); + axisTick.ClearVerticesDirty(); + splitLine.ClearVerticesDirty(); + splitArea.ClearVerticesDirty(); + } + + public override void SetComponentDirty() + { + context.isNeedUpdateFilterData = true; + base.SetComponentDirty(); + } + + public Axis Clone() + { + var axis = new Axis(); + axis.show = show; + axis.type = type; + axis.gridIndex = 0; + axis.minMaxType = minMaxType; + axis.min = min; + axis.max = max; + axis.splitNumber = splitNumber; + axis.interval = interval; + axis.boundaryGap = boundaryGap; + axis.maxCache = maxCache; + axis.logBase = logBase; + axis.logBaseE = logBaseE; + axis.ceilRate = ceilRate; + axis.insertDataToHead = insertDataToHead; + axis.axisLine = axisLine.Clone(); + axis.axisName = axisName.Clone(); + axis.axisTick = axisTick.Clone(); + axis.axisLabel = axisLabel.Clone(); + axis.splitLine = splitLine.Clone(); + axis.splitArea = splitArea.Clone(); + axis.icons = new List<Sprite>(); + axis.data = new List<string>(); + ChartHelper.CopyList(axis.data, data); + return axis; + } + + public void Copy(Axis axis) + { + show = axis.show; + type = axis.type; + minMaxType = axis.minMaxType; + gridIndex = axis.gridIndex; + min = axis.min; + max = axis.max; + splitNumber = axis.splitNumber; + interval = axis.interval; + boundaryGap = axis.boundaryGap; + maxCache = axis.maxCache; + logBase = axis.logBase; + logBaseE = axis.logBaseE; + ceilRate = axis.ceilRate; + insertDataToHead = axis.insertDataToHead; + axisLine.Copy(axis.axisLine); + axisName.Copy(axis.axisName); + axisTick.Copy(axis.axisTick); + axisLabel.Copy(axis.axisLabel); + splitLine.Copy(axis.splitLine); + splitArea.Copy(axis.splitArea); + ChartHelper.CopyList(data, axis.data); + ChartHelper.CopyList<Sprite>(icons, axis.icons); + } + + /// <summary> + /// 清空类目数据 + /// </summary> + public override void ClearData() + { + m_Data.Clear(); + m_Icons.Clear(); + context.Clear(); + SetAllDirty(); + } + + /// <summary> + /// 是否为类目轴。 + /// </summary> + /// <returns></returns> + public bool IsCategory() + { + return m_Type == AxisType.Category; + } + + /// <summary> + /// 是否为数值轴。 + /// </summary> + /// <returns></returns> + public bool IsValue() + { + return m_Type == AxisType.Value; + } + + /// <summary> + /// 是否为对数轴。 + /// </summary> + /// <returns></returns> + public bool IsLog() + { + return m_Type == AxisType.Log; + } + + /// <summary> + /// 是否为时间轴。 + /// </summary> + public bool IsTime() + { + return m_Type == AxisType.Time; + } + + public bool IsLeft() + { + return m_Position == AxisPosition.Left; + } + + public bool IsRight() + { + return m_Position == AxisPosition.Right; + } + + public bool IsTop() + { + return m_Position == AxisPosition.Top; + } + + public bool IsBottom() + { + return m_Position == AxisPosition.Bottom; + } + + public void SetNeedUpdateFilterData() + { + context.isNeedUpdateFilterData = true; + } + + /// <summary> + /// 添加一个类目到类目数据列表 + /// </summary> + /// <param name="category"></param> + public void AddData(string category) + { + if (maxCache > 0) + { + while (m_Data.Count >= maxCache) + { + RemoveData(m_InsertDataToHead ? m_Data.Count - 1 : 0); + } + } + + if (m_InsertDataToHead) + m_Data.Insert(0, category); + else + m_Data.Add(category); + + SetAllDirty(); + } + + public void RemoveData(int dataIndex) + { + context.isNeedUpdateFilterData = true; + m_Data.RemoveAt(dataIndex); + } + + /// <summary> + /// 更新类目数据 + /// </summary> + /// <param name="index"></param> + /// <param name="category"></param> + public void UpdateData(int index, string category) + { + if (index >= 0 && index < m_Data.Count) + { + m_Data[index] = category; + SetComponentDirty(); + } + } + + /// <summary> + /// 添加图标 + /// </summary> + /// <param name="icon"></param> + public void AddIcon(Sprite icon) + { + if (maxCache > 0) + { + while (m_Icons.Count > maxCache) + { + m_Icons.RemoveAt(m_InsertDataToHead ? m_Icons.Count - 1 : 0); + } + } + if (m_InsertDataToHead) m_Icons.Insert(0, icon); + else m_Icons.Add(icon); + SetAllDirty(); + } + + /// <summary> + /// 更新图标 + /// </summary> + /// <param name="index"></param> + /// <param name="icon"></param> + public void UpdateIcon(int index, Sprite icon) + { + if (index >= 0 && index < m_Icons.Count) + { + m_Icons[index] = icon; + SetComponentDirty(); + } + } + + /// <summary> + /// 获得指定索引的类目数据 + /// </summary> + /// <param name="index"></param> + /// <returns></returns> + public string GetData(int index) + { + if (index >= 0 && index < m_Data.Count) + return m_Data[index]; + else + return null; + } + + /// <summary> + /// 获得在dataZoom范围内指定索引的类目数据 + /// </summary> + /// <param name="index">类目数据索引</param> + /// <param name="dataZoom">区域缩放</param> + /// <returns></returns> + public string GetData(int index, DataZoom dataZoom) + { + var showData = GetDataList(dataZoom); + if (index >= 0 && index < showData.Count) + return showData[index]; + else + return ""; + } + + public Sprite GetIcon(int index) + { + if (index >= 0 && index < m_Icons.Count) + return m_Icons[index]; + else + return null; + } + + /// <summary> + /// 获得值在坐标轴上的距离 + /// </summary> + /// <param name="value"></param> + /// <param name="axisLength"></param> + /// <returns></returns> + public float GetDistance(double value, float axisLength) + { + if (context.minMaxRange == 0) + return 0; + + if (IsCategory() && boundaryGap) + { + var each = axisLength / data.Count; + return (float) (each * (value + 0.5f)); + } + else + { + return axisLength * (float) ((value - context.minValue) / context.minMaxRange); + } + } + + /// <summary> + /// 获得指定区域缩放的类目数据列表 + /// </summary> + /// <param name="dataZoom">区域缩放</param> + /// <returns></returns> + internal List<string> GetDataList(DataZoom dataZoom) + { + if (dataZoom != null && dataZoom.enable && dataZoom.IsContainsAxis(this)) + { + UpdateFilterData(dataZoom); + return context.filterData; + } + else + { + return m_Data.Count > 0 ? m_Data : context.runtimeData; + } + } + + internal List<string> GetDataList() + { + return m_Data.Count > 0 ? m_Data : context.runtimeData; + } + + /// <summary> + /// 更新dataZoom对应的类目数据列表 + /// </summary> + /// <param name="dataZoom"></param> + internal void UpdateFilterData(DataZoom dataZoom) + { + if (dataZoom != null && dataZoom.enable && dataZoom.IsContainsAxis(this)) + { + var data = GetDataList(); + context.UpdateFilterData(data, dataZoom); + } + } + + /// <summary> + /// 获得类目数据个数 + /// </summary> + /// <param name="dataZoom"></param> + /// <returns></returns> + internal int GetDataCount(DataZoom dataZoom) + { + return IsCategory() ? GetDataList(dataZoom).Count : 0; + } + + /// <summary> + /// 更新刻度标签文字 + /// </summary> + /// <param name="dataZoom"></param> + internal void UpdateLabelText(float coordinateWidth, DataZoom dataZoom, bool forcePercent) + { + for (int i = 0; i < context.labelObjectList.Count; i++) + { + if (context.labelObjectList[i] != null) + { + var text = AxisHelper.GetLabelName(this, coordinateWidth, i, context.minValue, context.maxValue, dataZoom, forcePercent); + context.labelObjectList[i].SetText(text); + } + } + } + + internal Vector3 GetLabelObjectPosition(int index) + { + if (context.labelObjectList != null && index < context.labelObjectList.Count) + return context.labelObjectList[index].GetPosition(); + else + return Vector3.zero; + } + + internal void UpdateMinMaxValue(double minValue, double maxValue) + { + context.minValue = minValue; + context.maxValue = maxValue; + double tempRange = maxValue - minValue; + if (context.minMaxRange != tempRange) + { + context.minMaxRange = tempRange; + if (type == Axis.AxisType.Value && interval > 0) + { + SetComponentDirty(); + } + } + } + + public float GetLogValue(double value) + { + if (value <= 0 || value == 1) + return 0; + else + return logBaseE ? (float) Math.Log(value) : (float) Math.Log(value, logBase); + } + + public int GetLogMinIndex() + { + return logBaseE ? + (int) Math.Log(context.minValue) : + (int) Math.Log(context.minValue, logBase); + } + + public int GetLogMaxIndex() + { + return logBaseE ? + (int) Math.Log(context.maxValue) : + (int) Math.Log(context.maxValue, logBase); + } + + public double GetLabelValue(int index) + { + if (index < 0) + return context.minValue; + else if (index > context.labelValueList.Count - 1) + return context.maxValue; + else + return context.labelValueList[index]; + } + + public double GetLastLabelValue() + { + if (context.labelValueList.Count > 0) + return context.labelValueList[context.labelValueList.Count - 1]; + else + return 0; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/Axis.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/Axis.cs.meta new file mode 100644 index 0000000..c86a648 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/Axis.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d5c29555575e04db98ee243c3b17f0ed +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisContext.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisContext.cs new file mode 100644 index 0000000..c47d5a6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisContext.cs @@ -0,0 +1,125 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + public class AxisContext : MainComponentContext + { + public Orient orient; + public float x; + public float y; + public float zeroX; + public float zeroY; + public float width; + public float height; + public Vector3 position; + public float left; + public float right; + public float bottom; + public float top; + /// <summary> + /// the current minimun value. + /// |当前最小值。 + /// </summary> + public double minValue; + /// <summary> + /// the current maximum value. + /// |当前最大值。 + /// </summary> + public double maxValue; + /// <summary> + /// the offset of zero position. + /// |坐标轴原点在坐标轴的偏移。 + /// </summary> + public float offset; + public double minMaxRange; + public float scaleWidth; + public float startAngle; + public double pointerValue; + public Vector3 pointerLabelPosition; + public double axisTooltipValue; + public List<string> runtimeData { get { return m_RuntimeData; } } + public List<double> labelValueList { get { return m_LabelValueList; } } + public List<ChartLabel> labelObjectList { get { return m_AxisLabelList; } } + + internal List<string> filterData; + internal bool lastCheckInverse; + internal bool isNeedUpdateFilterData; + + private int filterStart; + private int filterEnd; + private int filterMinShow; + + private List<ChartLabel> m_AxisLabelList = new List<ChartLabel>(); + private List<double> m_LabelValueList = new List<double>(); + private List<string> m_RuntimeData = new List<string>(); + + internal void Clear() + { + m_RuntimeData.Clear(); + } + + private List<string> m_EmptyFliter = new List<string>(); + /// <summary> + /// 更新dataZoom对应的类目数据列表 + /// </summary> + /// <param name="dataZoom"></param> + internal void UpdateFilterData(List<string> data, DataZoom dataZoom) + { + int start = 0, end = 0; + var range = Mathf.RoundToInt(data.Count * (dataZoom.end - dataZoom.start) / 100); + if (range <= 0) + range = 1; + + if (dataZoom.context.invert) + { + end = Mathf.CeilToInt(data.Count * dataZoom.end / 100); + start = end - range; + if (start < 0) start = 0; + } + else + { + start = Mathf.FloorToInt(data.Count * dataZoom.start / 100); + end = start + range; + if (end > data.Count) end = data.Count; + } + + if (start != filterStart || + end != filterEnd || + dataZoom.minShowNum != filterMinShow || + isNeedUpdateFilterData) + { + filterStart = start; + filterEnd = end; + filterMinShow = dataZoom.minShowNum; + isNeedUpdateFilterData = false; + + if (data.Count > 0) + { + if (range < dataZoom.minShowNum) + { + if (dataZoom.minShowNum > data.Count) + range = data.Count; + else + range = dataZoom.minShowNum; + } + if (range > data.Count - start - 1) + start = data.Count - range - 1; + if (start >= 0) + filterData = data.GetRange(start, range); + else + filterData = data; + } + else + { + filterData = data; + } + } + else if (end == 0) + { + filterData = m_EmptyFliter; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisContext.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisContext.cs.meta new file mode 100644 index 0000000..5f2226c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6525f065fa5d04663ab7026a3467f56e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisHandler.cs new file mode 100644 index 0000000..109fa87 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisHandler.cs @@ -0,0 +1,782 @@ +using System; +using UnityEngine; +using UnityEngine.UI; +using XCharts.Runtime; +using XUGL; + +namespace XCharts +{ + public abstract class AxisHandler<T> : MainComponentHandler + where T : Axis + { + private static readonly string s_DefaultAxisName = "name"; + private double m_LastInterval = double.MinValue; + private int m_LastSplitNumber = int.MinValue; + public T component { get; internal set; } + + internal override void SetComponent(MainComponent component) + { + this.component = (T) component; + } + + protected virtual Vector3 GetLabelPosition(float scaleWid, int i) + { + return Vector3.zero; + } + + protected virtual float GetAxisLineXOrY() + { + return 0; + } + + protected virtual Orient orient { get; set; } + + protected virtual void UpdatePointerValue(Axis axis) + { + var grid = chart.GetChartComponent<GridCoord>(axis.gridIndex); + if (grid == null) + return; + if (!grid.context.isPointerEnter) + { + axis.context.pointerValue = double.PositiveInfinity; + } + else + { + var lastPointerValue = axis.context.pointerValue; + if (axis.IsCategory()) + { + var dataZoom = chart.GetDataZoomOfAxis(axis); + var dataCount = chart.series.Count > 0 ? chart.series[0].GetDataList(dataZoom).Count : 0; + var local = chart.pointerPos; + if (axis is YAxis) + { + float splitWid = AxisHelper.GetDataWidth(axis, grid.context.height, dataCount, dataZoom); + for (int j = 0; j < axis.GetDataCount(dataZoom); j++) + { + float pY = grid.context.y + j * splitWid; + if ((axis.boundaryGap && (local.y > pY && local.y <= pY + splitWid)) || + (!axis.boundaryGap && (local.y > pY - splitWid / 2 && local.y <= pY + splitWid / 2))) + { + axis.context.pointerValue = j; + axis.context.pointerLabelPosition = axis.GetLabelObjectPosition(j); + if (j != lastPointerValue) + { + if (chart.onAxisPointerValueChanged != null) + chart.onAxisPointerValueChanged(axis, j); + } + break; + } + } + } + else + { + float splitWid = AxisHelper.GetDataWidth(axis, grid.context.width, dataCount, dataZoom); + for (int j = 0; j < axis.GetDataCount(dataZoom); j++) + { + float pX = grid.context.x + j * splitWid; + if ((axis.boundaryGap && (local.x > pX && local.x <= pX + splitWid)) || + (!axis.boundaryGap && (local.x > pX - splitWid / 2 && local.x <= pX + splitWid / 2))) + { + axis.context.pointerValue = j; + axis.context.pointerLabelPosition = axis.GetLabelObjectPosition(j); + if (j != lastPointerValue) + { + if (chart.onAxisPointerValueChanged != null) + chart.onAxisPointerValueChanged(axis, j); + } + break; + } + } + } + } + else + { + if (axis is YAxis) + { + var yRate = axis.context.minMaxRange / grid.context.height; + var yValue = yRate * (chart.pointerPos.y - grid.context.y - axis.context.offset); + if (axis.context.minValue > 0) + yValue += axis.context.minValue; + + var labelX = axis.GetLabelObjectPosition(0).x; + axis.context.pointerValue = yValue; + axis.context.pointerLabelPosition = new Vector3(labelX, chart.pointerPos.y); + if (yValue != lastPointerValue) + { + if (chart.onAxisPointerValueChanged != null) + chart.onAxisPointerValueChanged(axis, yValue); + } + } + else + { + var xRate = axis.context.minMaxRange / grid.context.width; + var xValue = xRate * (chart.pointerPos.x - grid.context.x - axis.context.offset); + if (axis.context.minValue > 0) + xValue += axis.context.minValue; + + var labelY = axis.GetLabelObjectPosition(0).y; + axis.context.pointerValue = xValue; + axis.context.pointerLabelPosition = new Vector3(chart.pointerPos.x, labelY); + if (xValue != lastPointerValue) + { + if (chart.onAxisPointerValueChanged != null) + chart.onAxisPointerValueChanged(axis, xValue); + } + } + } + } + } + + internal void UpdateAxisMinMaxValue(int axisIndex, Axis axis, bool updateChart = true) + { + if (!axis.show) + return; + + if (axis.IsCategory()) + { + axis.context.minValue = 0; + axis.context.maxValue = SeriesHelper.GetMaxSerieDataCount(chart.series) - 1; + axis.context.minMaxRange = axis.context.maxValue; + return; + } + + double tempMinValue = 0; + double tempMaxValue = 0; + chart.GetSeriesMinMaxValue(axis, axisIndex, out tempMinValue, out tempMaxValue); + + if (tempMinValue != axis.context.minValue || + tempMaxValue != axis.context.maxValue || + m_LastInterval != axis.interval || + m_LastSplitNumber != axis.splitNumber) + { + m_LastSplitNumber = axis.splitNumber; + m_LastInterval = axis.interval; + + axis.UpdateMinMaxValue(tempMinValue, tempMaxValue); + axis.context.offset = 0; + axis.context.lastCheckInverse = axis.inverse; + UpdateAxisTickValueList(axis); + + if (tempMinValue != 0 || tempMaxValue != 0) + { + var grid = chart.GetChartComponent<GridCoord>(axis.gridIndex); + if (grid != null && axis is XAxis && axis.IsValue()) + { + axis.context.offset = axis.context.minValue > 0 ? + 0 : + (axis.context.maxValue < 0 ? + grid.context.width : + (float) (Math.Abs(axis.context.minValue) * (grid.context.width / + (Math.Abs(axis.context.minValue) + Math.Abs(axis.context.maxValue)))) + ); + axis.context.x = grid.context.x; + axis.context.y = GetAxisLineXOrY(); + axis.context.zeroY = grid.context.y; + axis.context.zeroX = grid.context.x - (float) (axis.context.minValue * grid.context.width / axis.context.minMaxRange); + } + if (grid != null && axis is YAxis && axis.IsValue()) + { + axis.context.offset = axis.context.minValue > 0 ? + 0 : + (axis.context.maxValue < 0 ? + grid.context.height : + (float) (Math.Abs(axis.context.minValue) * (grid.context.height / + (Math.Abs(axis.context.minValue) + Math.Abs(axis.context.maxValue)))) + ); + axis.context.x = GetAxisLineXOrY(); + axis.context.y = grid.context.y; + axis.context.zeroX = grid.context.x; + axis.context.zeroY = grid.context.y - (float) (axis.context.minValue * grid.context.height / axis.context.minMaxRange); + } + } + var dataZoom = chart.GetDataZoomOfAxis(axis); + if (dataZoom != null && dataZoom.enable) + { + if (axis is XAxis) + dataZoom.SetXAxisIndexValueInfo(axisIndex, tempMinValue, tempMaxValue); + else + dataZoom.SetYAxisIndexValueInfo(axisIndex, tempMinValue, tempMaxValue); + } + if (updateChart) + { + UpdateAxisLabelText(axis); + chart.RefreshChart(); + } + } + } + + internal virtual void UpdateAxisLabelText(Axis axis) + { + var grid = chart.GetChartComponent<GridCoord>(axis.gridIndex); + if (grid == null || axis == null) + return; + + float runtimeWidth = axis is XAxis ? grid.context.width : grid.context.height; + var isPercentStack = SeriesHelper.IsPercentStack<Bar>(chart.series); + var dataZoom = chart.GetDataZoomOfAxis(axis); + + axis.UpdateLabelText(runtimeWidth, dataZoom, isPercentStack); + } + + internal static void UpdateAxisTickValueList(Axis axis) + { + if (axis.IsTime()) + { + var lastCount = axis.context.labelValueList.Count; + DateTimeUtil.UpdateTimeAxisDateTimeList(axis.context.labelValueList, (int) axis.context.minValue, + (int) axis.context.maxValue, axis.splitNumber); + + if (axis.context.labelValueList.Count != lastCount) + axis.SetAllDirty(); + } + else if (axis.IsValue()) + { + var list = axis.context.labelValueList; + var lastCount = list.Count; + list.Clear(); + + var range = axis.context.maxValue - axis.context.minValue; + if (range <= 0) + return; + + double tick = axis.interval; + + if (axis.interval == 0) + { + if (axis.splitNumber > 0) + { + tick = range / axis.splitNumber; + } + else + { + var each = GetTick(range); + tick = each; + if (range / tick > 8) + tick = 2 * each; + else if (range / tick < 4) + tick = each / 2; + } + } + var value = 0d; + if (Mathf.Approximately((float) (axis.context.minValue % tick), 0)) + { + value = axis.context.minValue; + } + else + { + list.Add(axis.context.minValue); + value = Math.Ceiling(axis.context.minValue / tick) * tick; + } + while (value <= axis.context.maxValue) + { + list.Add(value); + value += tick; + + if (list.Count > 20) + break; + } + if (!ChartHelper.IsEquals(axis.context.maxValue, list[list.Count - 1])) + { + list.Add(axis.context.maxValue); + } + if (lastCount != list.Count) + { + axis.SetAllDirty(); + } + } + } + + private static double GetTick(double max) + { + if (max <= 1) return max / 5; + var bigger = Math.Ceiling(Math.Abs(max)); + int n = 1; + while (bigger / (Mathf.Pow(10, n)) > 10) + { + n++; + } + return Math.Pow(10, n); + } + + internal void CheckValueLabelActive(Axis axis, int i, ChartLabel label, Vector3 pos) + { + if (!axis.show || !axis.axisLabel.show) + { + label.SetTextActive(false); + return; + } + if (axis.IsValue()) + { + if (orient == Orient.Horizonal) + { + if (i == 0) + { + var dist = GetLabelPosition(0, 1).x - pos.x; + label.SetTextActive(dist > label.text.GetPreferredWidth()); + } + else if (i == axis.context.labelValueList.Count - 1) + { + var dist = pos.x - GetLabelPosition(0, i - 1).x; + label.SetTextActive(dist > label.text.GetPreferredWidth()); + } + } + else + { + if (i == 0) + { + var dist = GetLabelPosition(0, 1).y - pos.y; + label.SetTextActive(dist > label.text.GetPreferredHeight()); + } + else if (i == axis.context.labelValueList.Count - 1) + { + var dist = pos.y - GetLabelPosition(0, i - 1).y; + label.SetTextActive(dist > label.text.GetPreferredHeight()); + } + } + } + } + + protected void InitAxis(Axis relativedAxis, Orient orient, + float axisStartX, float axisStartY, float axisLength, float relativedLength) + { + Axis axis = component; + chart.InitAxisRuntimeData(axis); + + var objName = ChartCached.GetComponentObjectName(axis); + var axisObj = ChartHelper.AddObject(objName, + chart.transform, + chart.chartMinAnchor, + chart.chartMaxAnchor, + chart.chartPivot, + chart.chartSizeDelta); + + axisObj.SetActive(axis.show); + axisObj.hideFlags = chart.chartHideFlags; + ChartHelper.HideAllObject(axisObj); + + axis.gameObject = axisObj; + axis.context.labelObjectList.Clear(); + + if (!axis.show) + return; + + var axisLabelTextStyle = axis.axisLabel.textStyle; + var dataZoom = chart.GetDataZoomOfAxis(axis); + var splitNumber = AxisHelper.GetScaleNumber(axis, axisLength, dataZoom); + var totalWidth = 0f; + var eachWidth = AxisHelper.GetEachWidth(axis, axisLength, dataZoom); + var gapWidth = axis.boundaryGap ? eachWidth / 2 : 0; + + var textWidth = axis.axisLabel.width > 0 ? + axis.axisLabel.width : + (orient == Orient.Horizonal ? + AxisHelper.GetScaleWidth(axis, axisLength, 0, dataZoom) : + (axisStartX - chart.chartX) + ); + + var textHeight = axis.axisLabel.height > 0 ? + axis.axisLabel.height : + 20f; + + var isPercentStack = SeriesHelper.IsPercentStack<Bar>(chart.series); + var inside = axis.axisLabel.inside; + var defaultAlignment = orient == Orient.Horizonal ? TextAnchor.MiddleCenter : + ((inside && axis.IsLeft()) || (!inside && axis.IsRight()) ? + TextAnchor.MiddleLeft : + TextAnchor.MiddleRight); + + if (axis.IsCategory() && axis.boundaryGap) + splitNumber -= 1; + + for (int i = 0; i < splitNumber; i++) + { + var labelWidth = AxisHelper.GetScaleWidth(axis, axisLength, i + 1, dataZoom); + var labelName = AxisHelper.GetLabelName(axis, axisLength, i, + axis.context.minValue, + axis.context.maxValue, + dataZoom, isPercentStack); + + var label = ChartHelper.AddAxisLabelObject(splitNumber, i, + ChartCached.GetAxisLabelName(i), + axisObj.transform, + new Vector2(textWidth, textHeight), + axis, chart.theme.axis, labelName, + Color.clear, + defaultAlignment); + + if (i == 0) + axis.axisLabel.SetRelatedText(label.text, labelWidth); + + var pos = GetLabelPosition(totalWidth + gapWidth, i); + label.SetPosition(pos); + CheckValueLabelActive(axis, i, label, pos); + + axis.context.labelObjectList.Add(label); + + totalWidth += labelWidth; + } + if (axis.axisName.show) + { + ChartLabel label = null; + var relativedDist = (relativedAxis == null ? 0 : relativedAxis.context.offset); + var zeroPos = new Vector3(axisStartX, axisStartY + relativedDist); + var offset = axis.axisName.labelStyle.offset; + var autoColor = axis.axisLine.GetColor(chart.theme.axis.lineColor); + if (orient == Orient.Horizonal) + { + var posY = GetAxisLineXOrY() + offset.y; + switch (axis.axisName.labelStyle.position) + { + case LabelStyle.Position.Start: + + label = ChartHelper.AddChartLabel(s_DefaultAxisName, axisObj.transform, axis.axisName.labelStyle, + chart.theme.axis, axis.axisName.name, autoColor, TextAnchor.MiddleRight); + label.SetActive(axis.axisName.labelStyle.show); + label.SetPosition(axis.position == Axis.AxisPosition.Top ? + new Vector2(zeroPos.x - offset.x, axisStartY + relativedLength + offset.y + axis.offset) : + new Vector2(zeroPos.x - offset.x, posY)); + break; + + case LabelStyle.Position.Middle: + + label = ChartHelper.AddChartLabel(s_DefaultAxisName, axisObj.transform, axis.axisName.labelStyle, + chart.theme.axis, axis.axisName.name, autoColor, TextAnchor.MiddleCenter); + label.SetActive(axis.axisName.labelStyle.show); + label.SetPosition(axis.position == Axis.AxisPosition.Top ? + new Vector2(axisStartX + axisLength / 2 + offset.x, axisStartY + relativedLength - offset.y + axis.offset) : + new Vector2(axisStartX + axisLength / 2 + offset.x, posY)); + break; + + default: + + label = ChartHelper.AddChartLabel(s_DefaultAxisName, axisObj.transform, axis.axisName.labelStyle, + chart.theme.axis, axis.axisName.name, autoColor, TextAnchor.MiddleLeft); + label.SetActive(axis.axisName.labelStyle.show); + label.SetPosition(axis.position == Axis.AxisPosition.Top ? + new Vector2(axisStartX + axisLength + offset.x, axisStartY + relativedLength + offset.y + axis.offset) : + new Vector2(axisStartX + axisLength + offset.x, posY)); + break; + } + } + else + { + var posX = GetAxisLineXOrY() + offset.x; + switch (axis.axisName.labelStyle.position) + { + case LabelStyle.Position.Start: + + label = ChartHelper.AddChartLabel(s_DefaultAxisName, axisObj.transform, axis.axisName.labelStyle, + chart.theme.axis, axis.axisName.name, autoColor, TextAnchor.MiddleCenter); + label.SetActive(axis.axisName.labelStyle.show); + label.SetPosition(axis.position == Axis.AxisPosition.Right ? + new Vector2(axisStartX + relativedLength + offset.x + axis.offset, axisStartY - offset.y) : + new Vector2(posX, axisStartY - offset.y)); + break; + + case LabelStyle.Position.Middle: + + label = ChartHelper.AddChartLabel(s_DefaultAxisName, axisObj.transform, axis.axisName.labelStyle, + chart.theme.axis, axis.axisName.name, autoColor, TextAnchor.MiddleCenter); + label.SetActive(axis.axisName.labelStyle.show); + label.SetPosition(axis.position == Axis.AxisPosition.Right ? + new Vector2(axisStartX + relativedLength - offset.x + axis.offset, axisStartY + axisLength / 2 + offset.y) : + new Vector2(posX, axisStartY + axisLength / 2 + offset.y)); + break; + + default: + //LabelStyle.Position + label = ChartHelper.AddChartLabel(s_DefaultAxisName, axisObj.transform, axis.axisName.labelStyle, + chart.theme.axis, axis.axisName.name, autoColor, TextAnchor.MiddleCenter); + label.SetActive(axis.axisName.labelStyle.show); + label.SetPosition(axis.position == Axis.AxisPosition.Right ? + new Vector2(axisStartX + relativedLength + offset.x + axis.offset, axisStartY + axisLength + offset.y) : + new Vector2(posX, axisStartY + axisLength + offset.y)); + break; + } + } + } + } + + internal static Vector3 GetLabelPosition(int i, Orient orient, Axis axis, Axis relativedAxis, AxisTheme theme, + float scaleWid, float axisStartX, float axisStartY, float axisLength, float relativedLength) + { + var inside = axis.axisLabel.inside; + var fontSize = axis.axisLabel.textStyle.GetFontSize(theme); + var current = axis.offset; + + if (axis.IsTime() || axis.IsValue()) + { + scaleWid = axis.context.minMaxRange != 0 ? + axis.GetDistance(axis.GetLabelValue(i), axisLength) : + 0; + } + + if (orient == Orient.Horizonal) + { + if (axis.axisLabel.onZero && relativedAxis != null) + axisStartY += relativedAxis.context.offset; + + if (axis.IsTop()) + axisStartY += relativedLength; + + if ((inside && axis.IsBottom()) || (!inside && axis.IsTop())) + current += axisStartY + axis.axisLabel.distance + fontSize / 2; + else + current += axisStartY - axis.axisLabel.distance - fontSize / 2; + + return new Vector3(axisStartX + scaleWid, current) + axis.axisLabel.offset; + } + else + { + if (axis.axisLabel.onZero && relativedAxis != null) + axisStartX += relativedAxis.context.offset; + + if (axis.IsRight()) + axisStartX += relativedLength; + + if ((inside && axis.IsLeft()) || (!inside && axis.IsRight())) + current += axisStartX + axis.axisLabel.distance; + else + current += axisStartX - axis.axisLabel.distance; + + return new Vector3(current, axisStartY + scaleWid) + axis.axisLabel.offset; + } + } + + internal static void DrawAxisLine(VertexHelper vh, Axis axis, AxisTheme theme, Orient orient, + float startX, float startY, float axisLength) + { + var inverse = axis.IsValue() && axis.inverse; + var offset = AxisHelper.GetAxisLineArrowOffset(axis); + + var lineWidth = axis.axisLine.GetWidth(theme.lineWidth); + var lineType = axis.axisLine.GetType(theme.lineType); + var lineColor = axis.axisLine.GetColor(theme.lineColor); + + if (orient == Orient.Horizonal) + { + var left = new Vector3(startX - lineWidth - (inverse ? offset : 0), startY); + var right = new Vector3(startX + axisLength + lineWidth + (!inverse ? offset : 0), startY); + ChartDrawer.DrawLineStyle(vh, lineType, lineWidth, left, right, lineColor); + } + else + { + var bottom = new Vector3(startX, startY - lineWidth - (inverse ? offset : 0)); + var top = new Vector3(startX, startY + axisLength + lineWidth + (!inverse ? offset : 0)); + ChartDrawer.DrawLineStyle(vh, lineType, lineWidth, bottom, top, lineColor); + } + } + + internal static void DrawAxisTick(VertexHelper vh, Axis axis, AxisTheme theme, DataZoom dataZoom, + Orient orient, float startX, float startY, float axisLength) + { + var lineWidth = axis.axisLine.GetWidth(theme.lineWidth); + var tickLength = axis.axisTick.GetLength(theme.tickLength); + + if (AxisHelper.NeedShowSplit(axis)) + { + var size = AxisHelper.GetScaleNumber(axis, axisLength, dataZoom); + + var current = orient == Orient.Horizonal ? + startX : + startY; + + for (int i = 0; i < size; i++) + { + var scaleWidth = AxisHelper.GetScaleWidth(axis, axisLength, i + 1, dataZoom); + if (i == 0 && (!axis.axisTick.showStartTick || axis.axisTick.alignWithLabel)) + { + current += scaleWidth; + continue; + } + if (i == size - 1 && !axis.axisTick.showEndTick) + { + current += scaleWidth; + continue; + } + if (axis.axisTick.show) + { + if (orient == Orient.Horizonal) + { + float pX = axis.IsTime() ? + (startX + axis.GetDistance(axis.GetLabelValue(i), axisLength)) : + current; + + if (axis.boundaryGap && axis.axisTick.alignWithLabel) + pX -= scaleWidth / 2; + + var sY = 0f; + var eY = 0f; + if ((axis.axisTick.inside && axis.IsBottom()) || + (!axis.axisTick.inside && axis.IsTop())) + { + sY = startY + axis.offset + lineWidth; + eY = sY + tickLength; + } + else + { + sY = startY + axis.offset - lineWidth; + eY = sY - tickLength; + } + + UGL.DrawLine(vh, new Vector3(pX, sY), new Vector3(pX, eY), + axis.axisTick.GetWidth(theme.tickWidth), + axis.axisTick.GetColor(theme.tickColor)); + } + else + { + float pY = axis.IsTime() ? + (startY + axis.GetDistance(axis.GetLabelValue(i), axisLength)) : + current; + + if (axis.boundaryGap && axis.axisTick.alignWithLabel) + pY -= scaleWidth / 2; + + var sX = 0f; + var eX = 0f; + if ((axis.axisTick.inside && axis.IsLeft()) || + (!axis.axisTick.inside && axis.IsRight())) + { + sX = startX + axis.offset + lineWidth; + eX = sX + tickLength; + } + else + { + sX = startX + axis.offset - lineWidth; + eX = sX - tickLength; + } + + UGL.DrawLine(vh, new Vector3(sX, pY), new Vector3(eX, pY), + axis.axisTick.GetWidth(theme.tickWidth), + axis.axisTick.GetColor(theme.tickColor)); + } + } + current += scaleWidth; + } + } + if (axis.show && axis.axisLine.show && axis.axisLine.showArrow) + { + var lineY = startY + axis.offset; + var inverse = axis.IsValue() && axis.inverse; + var axisArrow = axis.axisLine.arrow; + if (orient == Orient.Horizonal) + { + if (inverse) + { + var startPos = new Vector3(startX + axisLength, lineY); + var arrowPos = new Vector3(startX, lineY); + UGL.DrawArrow(vh, startPos, arrowPos, axisArrow.width, axisArrow.height, + axisArrow.offset, axisArrow.dent, + axisArrow.GetColor(axis.axisLine.GetColor(theme.lineColor))); + } + else + { + var arrowPosX = startX + axisLength + lineWidth; + var startPos = new Vector3(startX, lineY); + var arrowPos = new Vector3(arrowPosX, lineY); + UGL.DrawArrow(vh, startPos, arrowPos, axisArrow.width, axisArrow.height, + axisArrow.offset, axisArrow.dent, + axisArrow.GetColor(axis.axisLine.GetColor(theme.lineColor))); + } + } + else + { + if (inverse) + { + var startPos = new Vector3(startX, startY + axisLength); + var arrowPos = new Vector3(startX, startY); + UGL.DrawArrow(vh, startPos, arrowPos, axisArrow.width, axisArrow.height, + axisArrow.offset, axisArrow.dent, + axisArrow.GetColor(axis.axisLine.GetColor(theme.lineColor))); + } + else + { + var startPos = new Vector3(startX, startY); + var arrowPos = new Vector3(startX, startY + axisLength + lineWidth); + UGL.DrawArrow(vh, startPos, arrowPos, axisArrow.width, axisArrow.height, + axisArrow.offset, axisArrow.dent, + axisArrow.GetColor(axis.axisLine.GetColor(theme.lineColor))); + } + } + } + } + + protected void DrawAxisSplit(VertexHelper vh, AxisTheme theme, DataZoom dataZoom, + Orient orient, float startX, float startY, float axisLength, float splitLength, Axis relativedAxis = null) + { + Axis axis = component; + var lineColor = axis.splitLine.GetColor(theme.splitLineColor); + var lineWidth = axis.splitLine.GetWidth(theme.lineWidth); + var lineType = axis.splitLine.GetType(theme.splitLineType); + + var size = AxisHelper.GetScaleNumber(axis, axisLength, dataZoom); + if (axis.IsTime()) + { + size += 1; + if (!ChartHelper.IsEquals(axis.GetLastLabelValue(), axis.context.maxValue)) + size += 1; + } + + var current = orient == Orient.Horizonal ? + startX : + startY; + for (int i = 0; i < size; i++) + { + var scaleWidth = AxisHelper.GetScaleWidth(axis, axisLength, axis.IsTime() ? i : i + 1, dataZoom); + + if (axis.boundaryGap && axis.axisTick.alignWithLabel) + current -= scaleWidth / 2; + + if (axis.splitArea.show && i <= size - 1) + { + if (orient == Orient.Horizonal) + { + UGL.DrawQuadrilateral(vh, + new Vector2(current, startY), + new Vector2(current, startY + splitLength), + new Vector2(current + scaleWidth, startY + splitLength), + new Vector2(current + scaleWidth, startY), + axis.splitArea.GetColor(i, theme)); + } + else + { + UGL.DrawQuadrilateral(vh, + new Vector2(startX, current), + new Vector2(startX + splitLength, current), + new Vector2(startX + splitLength, current + scaleWidth), + new Vector2(startX, current + scaleWidth), + axis.splitArea.GetColor(i, theme)); + } + + } + if (axis.splitLine.show) + { + if (axis.splitLine.NeedShow(i)) + { + if (orient == Orient.Horizonal) + { + if (relativedAxis == null || !MathUtil.Approximately(current, GetAxisLineXOrY())) + ChartDrawer.DrawLineStyle(vh, + lineType, + lineWidth, + new Vector3(current, startY), + new Vector3(current, startY + splitLength), + lineColor); + } + else + { + if (relativedAxis == null || !MathUtil.Approximately(current, GetAxisLineXOrY())) + ChartDrawer.DrawLineStyle(vh, + lineType, + lineWidth, + new Vector3(startX, current), + new Vector3(startX + splitLength, current), + lineColor); + } + } + } + current += scaleWidth; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisHandler.cs.meta new file mode 100644 index 0000000..319549f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0babef8a2708b4745bbb0a0648913a35 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisHelper.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisHelper.cs new file mode 100644 index 0000000..8a1d31e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisHelper.cs @@ -0,0 +1,561 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + public static class AxisHelper + { + + /// <summary> + /// 包含箭头偏移的轴线长度 + /// </summary> + /// <param name="axis"></param> + /// <returns></returns> + public static float GetAxisLineArrowOffset(Axis axis) + { + if (axis.axisLine.show && axis.axisLine.showArrow && axis.axisLine.arrow.offset > 0) + { + return axis.axisLine.arrow.offset; + } + return 0; + } + + /// <summary> + /// 获得分割段数 + /// </summary> + /// <param name="dataZoom"></param> + /// <returns></returns> + public static int GetSplitNumber(Axis axis, float coordinateWid, DataZoom dataZoom) + { + if (axis.type == Axis.AxisType.Value) + { + return axis.context.labelValueList.Count - 1; + } + else if (axis.type == Axis.AxisType.Time) + { + return axis.context.labelValueList.Count; + } + else if (axis.type == Axis.AxisType.Log) + { + return axis.splitNumber > 0 ? axis.splitNumber : 4; + } + else if (axis.type == Axis.AxisType.Category) + { + int dataCount = axis.GetDataList(dataZoom).Count; + if (!axis.boundaryGap) + dataCount -= 1; + if (dataCount <= 0) + dataCount = 1; + + if (axis.splitNumber <= 0) + { + if (dataCount <= 10) return dataCount; + else + { + for (int i = 4; i < 6; i++) + { + if (dataCount % i == 0) return i; + } + return 5; + } + } + else + { + if (axis.splitNumber <= 0 || axis.splitNumber > dataCount) + return dataCount; + if (dataCount >= axis.splitNumber * 2) + return axis.splitNumber; + else + return dataCount; + } + } + return 0; + } + + /// <summary> + /// 获得一个类目数据在坐标系中代表的宽度 + /// </summary> + /// <param name="coordinateWidth"></param> + /// <param name="dataZoom"></param> + /// <returns></returns> + public static float GetDataWidth(Axis axis, float coordinateWidth, int dataCount, DataZoom dataZoom) + { + if (dataCount < 1) + dataCount = 1; + if (axis.IsValue()) + return dataCount > 1 ? coordinateWidth / (dataCount - 1) : coordinateWidth; + var categoryCount = axis.GetDataCount(dataZoom); + int segment = (axis.boundaryGap ? categoryCount : categoryCount - 1); + segment = segment <= 0 ? dataCount : segment; + if (segment <= 0) + segment = 1; + + return coordinateWidth / segment; + } + + /// <summary> + /// 获得标签显示的名称 + /// </summary> + /// <param name="index"></param> + /// <param name="minValue"></param> + /// <param name="maxValue"></param> + /// <param name="dataZoom"></param> + /// <returns></returns> + public static string GetLabelName(Axis axis, float coordinateWidth, int index, double minValue, double maxValue, + DataZoom dataZoom, bool forcePercent) + { + int split = GetSplitNumber(axis, coordinateWidth, dataZoom); + if (axis.type == Axis.AxisType.Value) + { + if (minValue == 0 && maxValue == 0) + maxValue = axis.max != 0 ? axis.max : 1; + double value = 0; + if (forcePercent) + maxValue = 100; + + value = axis.GetLabelValue(index); + if (axis.inverse) + { + value = -value; + minValue = -minValue; + maxValue = -maxValue; + } + if (forcePercent) + return string.Format("{0}%", (int) value); + else + return axis.axisLabel.GetFormatterContent(index, value, minValue, maxValue); + } + else if (axis.type == Axis.AxisType.Log) + { + double value = axis.logBaseE ? + System.Math.Exp(axis.GetLogMinIndex() + index) : + System.Math.Pow(axis.logBase, axis.GetLogMinIndex() + index); + if (axis.inverse) + { + value = -value; + minValue = -minValue; + maxValue = -maxValue; + } + return axis.axisLabel.GetFormatterContent(index, value, minValue, maxValue, true); + } + else if (axis.type == Axis.AxisType.Time) + { + if (minValue == 0 && maxValue == 0) + return string.Empty; + if (index > axis.context.labelValueList.Count - 1) + return string.Empty; + + var value = axis.GetLabelValue(index); + return axis.axisLabel.GetFormatterDateTime(index, value, minValue, maxValue); + } + var showData = axis.GetDataList(dataZoom); + int dataCount = showData.Count; + if (dataCount <= 0) + return ""; + int rate = axis.boundaryGap ? (dataCount / split) : (dataCount - 1) / split; + if (rate == 0) rate = 1; + if (axis.insertDataToHead) + { + if (index > 0) + { + var residue = (dataCount - 1) - split * rate; + var newIndex = residue + (index - 1) * rate; + if (newIndex < 0) + newIndex = 0; + return axis.axisLabel.GetFormatterContent(newIndex, showData[newIndex]); + } + else + { + if (axis.boundaryGap && coordinateWidth / dataCount > 5) + return string.Empty; + else + return axis.axisLabel.GetFormatterContent(0, showData[0]); + } + } + else + { + int newIndex = index * rate; + if (newIndex < dataCount) + { + return axis.axisLabel.GetFormatterContent(newIndex, showData[newIndex]); + } + else + { + if (axis.boundaryGap && coordinateWidth / dataCount > 5) + return string.Empty; + else + return axis.axisLabel.GetFormatterContent(dataCount - 1, showData[dataCount - 1]); + } + } + } + + /// <summary> + /// 获得分割线条数 + /// </summary> + /// <param name="dataZoom"></param> + /// <returns></returns> + public static int GetScaleNumber(Axis axis, float coordinateWidth, DataZoom dataZoom = null) + { + int splitNum = GetSplitNumber(axis, coordinateWidth, dataZoom); + if (splitNum == 0) + return 0; + + if (axis.IsCategory()) + { + var dataCount = axis.GetDataList(dataZoom).Count; + var scaleNum = 0; + + if (axis.boundaryGap) + { + scaleNum = dataCount > 2 && dataCount % splitNum == 0 ? + splitNum + 1 : + splitNum + 2; + } + else + { + if (dataCount < splitNum) scaleNum = splitNum; + else scaleNum = dataCount > 2 && dataCount % splitNum == 0 ? + splitNum : + splitNum + 1; + } + return scaleNum; + } + else if (axis.IsTime()) + return splitNum; + else + return splitNum + 1; + } + + /// <summary> + /// 获得分割段宽度 + /// </summary> + /// <param name="coordinateWidth"></param> + /// <param name="dataZoom"></param> + /// <returns></returns> + public static float GetScaleWidth(Axis axis, float coordinateWidth, int index, DataZoom dataZoom = null) + { + if (index < 0) + return 0; + + int num = GetScaleNumber(axis, coordinateWidth, dataZoom); + int splitNum = GetSplitNumber(axis, coordinateWidth, dataZoom); + if (num <= 0) + num = 1; + + if (axis.IsTime() || axis.IsValue()) + { + var value = axis.GetLabelValue(index); + var lastValue = axis.GetLabelValue(index - 1); + return axis.context.minMaxRange == 0 ? + 0 : + (float) (coordinateWidth * (value - lastValue) / axis.context.minMaxRange); + } + else + { + var data = axis.GetDataList(dataZoom); + if (axis.IsCategory() && data.Count > 0) + { + var count = axis.boundaryGap ? data.Count : data.Count - 1; + int tick = count / splitNum; + if (count <= 0) + return 0; + + var each = coordinateWidth / count; + if (axis.insertDataToHead) + { + var max = axis.boundaryGap ? splitNum : splitNum - 1; + if (index == 1) + { + if (axis.axisTick.alignWithLabel) + return each * tick; + else + return coordinateWidth - each * tick * max; + } + else + { + if (count < splitNum) + return each; + else + return each * (count / splitNum); + } + } + else + { + var max = axis.boundaryGap ? num - 1 : num; + if (index >= max) + { + if (axis.axisTick.alignWithLabel) + return each * tick; + else + return coordinateWidth - each * tick * (index - 1); + } + else + { + if (count < splitNum) + return each; + else + return each * (count / splitNum); + } + } + } + else + { + if (splitNum <= 0) + return 0; + else + return coordinateWidth / splitNum; + } + } + } + + public static float GetEachWidth(Axis axis, float coordinateWidth, DataZoom dataZoom = null) + { + var data = axis.GetDataList(dataZoom); + if (data.Count > 0) + { + var count = axis.boundaryGap ? data.Count : data.Count - 1; + return count > 0 ? coordinateWidth / count : coordinateWidth; + } + else + { + int num = GetScaleNumber(axis, coordinateWidth, dataZoom) - 1; + return num > 0 ? coordinateWidth / num : coordinateWidth; + } + } + + /// <summary> + /// 调整最大最小值 + /// </summary> + /// <param name="minValue"></param> + /// <param name="maxValue"></param> + public static void AdjustMinMaxValue(Axis axis, ref double minValue, ref double maxValue, bool needFormat, int ceilRate = 0) + { + if (axis.type == Axis.AxisType.Log) + { + int minSplit = 0; + int maxSplit = 0; + maxValue = ChartHelper.GetMaxLogValue(maxValue, axis.logBase, axis.logBaseE, out maxSplit); + minValue = ChartHelper.GetMinLogValue(minValue, axis.logBase, axis.logBaseE, out minSplit); + axis.splitNumber = (minSplit > 0 && maxSplit > 0) ? (maxSplit + minSplit - 1) : (maxSplit + minSplit); + return; + } + if (axis.type == Axis.AxisType.Time) + { } + else if (axis.minMaxType == Axis.AxisMinMaxType.Custom) + { + if (axis.min != 0 || axis.max != 0) + { + if (axis.inverse) + { + minValue = -axis.max; + maxValue = -axis.min; + } + else + { + minValue = axis.min; + maxValue = axis.max; + } + } + } + else + { + if (ceilRate == 0) ceilRate = axis.ceilRate; + switch (axis.minMaxType) + { + case Axis.AxisMinMaxType.Default: + + if (minValue == 0 && maxValue == 0) + { } + else if (minValue > 0 && maxValue > 0) + { + minValue = 0; + maxValue = needFormat ? ChartHelper.GetMaxDivisibleValue(maxValue, ceilRate) : maxValue; + } + else if (minValue < 0 && maxValue < 0) + { + minValue = needFormat ? ChartHelper.GetMinDivisibleValue(minValue, ceilRate) : minValue; + maxValue = 0; + } + else + { + minValue = needFormat ? ChartHelper.GetMinDivisibleValue(minValue, ceilRate) : minValue; + maxValue = needFormat ? ChartHelper.GetMaxDivisibleValue(maxValue, ceilRate) : maxValue; + } + break; + + case Axis.AxisMinMaxType.MinMax: + + minValue = ceilRate != 0 ? ChartHelper.GetMinDivisibleValue(minValue, ceilRate) : minValue; + maxValue = ceilRate != 0 ? ChartHelper.GetMaxDivisibleValue(maxValue, ceilRate) : maxValue; + break; + } + } + } + + public static bool NeedShowSplit(Axis axis) + { + if (!axis.show) + return false; + if (axis.IsCategory() && axis.GetDataList().Count <= 0) + return false; + else + return true; + } + + public static void AdjustCircleLabelPos(ChartLabel txt, Vector3 pos, Vector3 cenPos, float txtHig, Vector3 offset) + { + var txtWidth = txt.text.GetPreferredWidth(); + var sizeDelta = new Vector2(txtWidth, txt.text.GetPreferredHeight()); + txt.text.SetSizeDelta(sizeDelta); + var diff = pos.x - cenPos.x; + if (diff < -1f) //left + { + pos = new Vector3(pos.x - txtWidth / 2, pos.y); + } + else if (diff > 1f) //right + { + pos = new Vector3(pos.x + txtWidth / 2, pos.y); + } + else + { + float y = pos.y > cenPos.y ? pos.y + txtHig / 2 : pos.y - txtHig / 2; + pos = new Vector3(pos.x, y); + } + txt.SetPosition(pos + offset); + } + + public static void AdjustRadiusAxisLabelPos(ChartLabel txt, Vector3 pos, Vector3 cenPos, float txtHig, Vector3 offset) + { + var txtWidth = txt.text.GetPreferredWidth(); + var sizeDelta = new Vector2(txtWidth, txt.text.GetPreferredHeight()); + txt.text.SetSizeDelta(sizeDelta); + var diff = pos.y - cenPos.y; + if (diff > 20f) //left + { + pos = new Vector3(pos.x - txtWidth / 2, pos.y); + } + else if (diff < -20f) //right + { + pos = new Vector3(pos.x + txtWidth / 2, pos.y); + } + else + { + float y = pos.y > cenPos.y ? pos.y + txtHig / 2 : pos.y - txtHig / 2; + pos = new Vector3(pos.x, y); + } + txt.SetPosition(pos); + } + + public static float GetAxisPosition(GridCoord grid, Axis axis, double value, int dataCount = 0, DataZoom dataZoom = null) + { + var gridHeight = axis is YAxis ? grid.context.height : grid.context.width; + var gridXY = axis is YAxis ? grid.context.y : grid.context.x; + if (axis.IsCategory()) + { + if (dataCount == 0) dataCount = axis.data.Count; + var categoryIndex = (int) value; + var scaleWid = AxisHelper.GetDataWidth(axis, gridHeight, dataCount, dataZoom); + float startY = gridXY + (axis.boundaryGap ? scaleWid / 2 : 0); + return startY + scaleWid * categoryIndex; + } + else + { + var yDataHig = (axis.context.minMaxRange == 0) ? 0f : + (float) ((value - axis.context.minValue) / axis.context.minMaxRange * gridHeight); + return gridXY + yDataHig; + + } + } + + public static double GetAxisPositionValue(GridCoord grid, Axis axis, Vector3 pos) + { + if (axis is YAxis) + return GetAxisPositionValue(pos.y, grid.context.height, axis.context.minMaxRange, grid.context.y, axis.context.offset); + else if (axis is XAxis) + return GetAxisPositionValue(pos.x, grid.context.width, axis.context.minMaxRange, grid.context.x, axis.context.offset); + else + return 0; + } + + public static double GetAxisPositionValue(float xy, float axisLength, double axisRange, float axisStart, float axisOffset) + { + var yRate = axisRange / axisLength; + return yRate * (xy - axisStart - axisOffset); + } + + /// <summary> + /// 获得数值value在坐标轴上的坐标位置 + /// </summary> + /// <param name="grid"></param> + /// <param name="axis"></param> + /// <param name="scaleWidth"></param> + /// <param name="value"></param> + /// <returns></returns> + public static float GetAxisValuePosition(GridCoord grid, Axis axis, float scaleWidth, double value) + { + return GetAxisPositionInternal(grid, axis, scaleWidth, value, true, false); + } + + /// <summary> + /// 获得数值value在坐标轴上相对起点的距离 + /// </summary> + /// <param name="grid"></param> + /// <param name="axis"></param> + /// <param name="scaleWidth"></param> + /// <param name="value"></param> + /// <returns></returns> + public static float GetAxisValueDistance(GridCoord grid, Axis axis, float scaleWidth, double value) + { + return GetAxisPositionInternal(grid, axis, scaleWidth, value, false, false); + } + + /// <summary> + /// 获得数值value在坐标轴上对应的长度 + /// </summary> + /// <param name="grid"></param> + /// <param name="axis"></param> + /// <param name="scaleWidth"></param> + /// <param name="value"></param> + /// <returns></returns> + public static float GetAxisValueLength(GridCoord grid, Axis axis, float scaleWidth, double value) + { + return GetAxisPositionInternal(grid, axis, scaleWidth, value, false, true); + } + + private static float GetAxisPositionInternal(GridCoord grid, Axis axis, float scaleWidth, double value, bool includeGridXY, bool realLength) + { + var isY = axis is YAxis; + var gridHeight = isY ? grid.context.height : grid.context.width; + var gridXY = isY ? grid.context.y : grid.context.x; + + if (axis.IsLog()) + { + int minIndex = axis.GetLogMinIndex(); + float nowIndex = axis.GetLogValue(value); + return includeGridXY ? + gridXY + (nowIndex - minIndex) / axis.splitNumber * gridHeight : + (nowIndex - minIndex) / axis.splitNumber * gridHeight; + } + else if (axis.IsCategory()) + { + var categoryIndex = (int) value; + return includeGridXY ? + gridXY + (axis.boundaryGap ? scaleWidth / 2 : 0) + scaleWidth * categoryIndex : + (axis.boundaryGap ? scaleWidth / 2 : 0) + scaleWidth * categoryIndex; + } + else + { + var yDataHig = 0f; + if (axis.context.minMaxRange != 0) + { + if (realLength) + yDataHig = (float) (value * gridHeight / axis.context.minMaxRange); + else + yDataHig = (float) ((value - axis.context.minValue) / axis.context.minMaxRange * gridHeight); + } + return includeGridXY ? + gridXY + yDataHig : + yDataHig; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisHelper.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisHelper.cs.meta new file mode 100644 index 0000000..ab5a3bc --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 566e3426780cc4339a1fb92d9604d21f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisLabel.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisLabel.cs new file mode 100644 index 0000000..acac616 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisLabel.cs @@ -0,0 +1,230 @@ +using System; +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + /// <summary> + /// Settings related to axis label. + /// |坐标轴刻度标签的相关设置。 + /// </summary> + [Serializable] + public class AxisLabel : LabelStyle + { + [SerializeField] private int m_Interval = 0; + [SerializeField] private bool m_Inside = false; + [SerializeField] private bool m_ShowAsPositiveNumber = false; + [SerializeField] private bool m_OnZero = false; + [SerializeField] private bool m_ShowStartLabel = true; + [SerializeField] private bool m_ShowEndLabel = true; + [SerializeField] private TextLimit m_TextLimit = new TextLimit(); + + /// <summary> + /// The display interval of the axis label. + /// |坐标轴刻度标签的显示间隔,在类目轴中有效。0表示显示所有标签,1表示隔一个隔显示一个标签,以此类推。 + /// </summary> + public int interval + { + get { return m_Interval; } + set { if (PropertyUtil.SetStruct(ref m_Interval, value)) SetComponentDirty(); } + } + /// <summary> + /// Set this to true so the axis labels face the inside direction. + /// |刻度标签是否朝内,默认朝外。 + /// </summary> + public bool inside + { + get { return m_Inside; } + set { if (PropertyUtil.SetStruct(ref m_Inside, value)) SetComponentDirty(); } + } + /// <summary> + /// Show negative number as positive number. + /// |将负数数值显示为正数。一般和`Serie`的`showAsPositiveNumber`配合使用。 + /// </summary> + public bool showAsPositiveNumber + { + get { return m_ShowAsPositiveNumber; } + set { if (PropertyUtil.SetStruct(ref m_ShowAsPositiveNumber, value)) SetComponentDirty(); } + } + + /// <summary> + /// 刻度标签显示在0刻度上。 + /// </summary> + public bool onZero + { + get { return m_OnZero; } + set { if (PropertyUtil.SetStruct(ref m_OnZero, value)) SetComponentDirty(); } + } + /// <summary> + /// Whether to display the first label. + /// |是否显示第一个文本。 + /// </summary> + public bool showStartLabel + { + get { return m_ShowStartLabel; } + set { if (PropertyUtil.SetStruct(ref m_ShowStartLabel, value)) SetComponentDirty(); } + } + /// <summary> + /// Whether to display the last label. + /// |是否显示最后一个文本。 + /// </summary> + public bool showEndLabel + { + get { return m_ShowEndLabel; } + set { if (PropertyUtil.SetStruct(ref m_ShowEndLabel, value)) SetComponentDirty(); } + } + /// <summary> + /// 文本限制。 + /// </summary> + public TextLimit textLimit + { + get { return m_TextLimit; } + set { if (value != null) { m_TextLimit = value; SetComponentDirty(); } } + } + + public override bool componentDirty { get { return m_ComponentDirty || m_TextLimit.componentDirty; } } + public override void ClearComponentDirty() + { + base.ClearComponentDirty(); + textLimit.ClearComponentDirty(); + } + + public static AxisLabel defaultAxisLabel + { + get + { + return new AxisLabel() + { + m_Show = true, + m_Interval = 0, + m_Inside = false, + m_Distance = 8, + m_TextStyle = new TextStyle(), + }; + } + } + + public new AxisLabel Clone() + { + var axisLabel = new AxisLabel(); + axisLabel.show = show; + axisLabel.formatter = formatter; + axisLabel.interval = interval; + axisLabel.inside = inside; + axisLabel.distance = distance; + axisLabel.numericFormatter = numericFormatter; + axisLabel.width = width; + axisLabel.height = height; + axisLabel.showStartLabel = showStartLabel; + axisLabel.showEndLabel = showEndLabel; + axisLabel.textLimit = textLimit.Clone(); + axisLabel.textStyle.Copy(textStyle); + return axisLabel; + } + + public void Copy(AxisLabel axisLabel) + { + show = axisLabel.show; + formatter = axisLabel.formatter; + interval = axisLabel.interval; + inside = axisLabel.inside; + distance = axisLabel.distance; + numericFormatter = axisLabel.numericFormatter; + width = axisLabel.width; + height = axisLabel.height; + showStartLabel = axisLabel.showStartLabel; + showEndLabel = axisLabel.showEndLabel; + textLimit.Copy(axisLabel.textLimit); + textStyle.Copy(axisLabel.textStyle); + } + + public void SetRelatedText(ChartText txt, float labelWidth) + { + m_TextLimit.SetRelatedText(txt, labelWidth); + } + + public string GetFormatterContent(int labelIndex, string category) + { + if (m_FormatterFunction != null) + { + return m_FormatterFunction(labelIndex, 0, category); + } + if (string.IsNullOrEmpty(category)) + return category; + + if (string.IsNullOrEmpty(m_Formatter)) + { + return m_TextLimit.GetLimitContent(category); + } + else + { + var content = m_Formatter; + FormatterHelper.ReplaceAxisLabelContent(ref content, category); + return m_TextLimit.GetLimitContent(content); + } + } + + public string GetFormatterContent(int labelIndex, double value, double minValue, double maxValue, bool isLog = false) + { + if (showAsPositiveNumber && value < 0) + { + value = Math.Abs(value); + } + if (m_FormatterFunction != null) + { + return m_FormatterFunction(labelIndex, value, null); + } + if (string.IsNullOrEmpty(m_Formatter)) + { + if (isLog) + { + return ChartCached.NumberToStr(value, numericFormatter); + } + if (minValue >= -1 && minValue <= 1 && maxValue >= -1 && maxValue <= 1) + { + int minAcc = ChartHelper.GetFloatAccuracy(minValue); + int maxAcc = ChartHelper.GetFloatAccuracy(maxValue); + int curAcc = ChartHelper.GetFloatAccuracy(value); + int acc = Mathf.Max(Mathf.Max(minAcc, maxAcc), curAcc); + return ChartCached.FloatToStr(value, numericFormatter, acc); + } + return ChartCached.NumberToStr(value, numericFormatter); + } + else + { + var content = m_Formatter; + FormatterHelper.ReplaceAxisLabelContent(ref content, numericFormatter, value); + return content; + } + } + + public string GetFormatterDateTime(int labelIndex, double value, double minValue, double maxValue) + { + if (m_FormatterFunction != null) + { + return m_FormatterFunction(labelIndex, value, null); + } + var timestamp = (int) value; + var dateTime = DateTimeUtil.GetDateTime(timestamp); + var dateString = string.Empty; + if (string.IsNullOrEmpty(numericFormatter)) + { + dateString = DateTimeUtil.GetDateTimeFormatString(dateTime, maxValue - minValue); + } + else + { + dateString = dateTime.ToString(numericFormatter); + } + if (!string.IsNullOrEmpty(m_Formatter)) + { + var content = m_Formatter; + FormatterHelper.ReplaceAxisLabelContent(ref content, dateString); + return m_TextLimit.GetLimitContent(content); + } + else + { + return m_TextLimit.GetLimitContent(dateString); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisLabel.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisLabel.cs.meta new file mode 100644 index 0000000..a735687 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisLabel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 051f9473d1beb4e0bb35aa1600cb44bd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisLine.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisLine.cs new file mode 100644 index 0000000..289a7ad --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisLine.cs @@ -0,0 +1,77 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// Settings related to axis line. + /// |坐标轴轴线。 + /// </summary> + [System.Serializable] + public class AxisLine : BaseLine + { + [SerializeField] private bool m_OnZero; + [SerializeField] private bool m_ShowArrow; + [SerializeField] private ArrowStyle m_Arrow = new ArrowStyle(); + + /// <summary> + /// When mutiple axes exists, this option can be used to specify which axis can be "onZero" to. + /// |X 轴或者 Y 轴的轴线是否在另一个轴的 0 刻度上,只有在另一个轴为数值轴且包含 0 刻度时有效。 + /// </summary> + public bool onZero + { + get { return m_OnZero; } + set { if (PropertyUtil.SetStruct(ref m_OnZero, value)) SetVerticesDirty(); } + } + /// <summary> + /// Whether to show the arrow symbol of axis. + /// |是否显示箭头。 + /// </summary> + public bool showArrow + { + get { return m_ShowArrow; } + set { if (PropertyUtil.SetStruct(ref m_ShowArrow, value)) SetVerticesDirty(); } + } + /// <summary> + /// the arrow of line. + /// |轴线箭头。 + /// </summary> + public ArrowStyle arrow + { + get { return m_Arrow; } + set { if (PropertyUtil.SetClass(ref m_Arrow, value)) SetVerticesDirty(); } + } + public static AxisLine defaultAxisLine + { + get + { + var axisLine = new AxisLine + { + m_Show = true, + m_OnZero = true, + m_ShowArrow = false, + m_Arrow = new ArrowStyle(), + m_LineStyle = new LineStyle(LineStyle.Type.None), + }; + return axisLine; + } + } + + public AxisLine Clone() + { + var axisLine = new AxisLine(); + axisLine.show = show; + axisLine.onZero = onZero; + axisLine.showArrow = showArrow; + axisLine.arrow = arrow.Clone(); + return axisLine; + } + + public void Copy(AxisLine axisLine) + { + base.Copy(axisLine); + onZero = axisLine.onZero; + showArrow = axisLine.showArrow; + arrow.Copy(axisLine.arrow); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisLine.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisLine.cs.meta new file mode 100644 index 0000000..7551798 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisLine.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2748c2a8789724709aa76f6056eb708d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisName.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisName.cs new file mode 100644 index 0000000..412df3f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisName.cs @@ -0,0 +1,76 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// the name of axis. + /// |坐标轴名称。 + /// </summary> + [Serializable] + public class AxisName : ChildComponent + { + [SerializeField] private bool m_Show; + [SerializeField] private string m_Name; + [SerializeField] private LabelStyle m_LabelStyle = new LabelStyle(); + + /// <summary> + /// Whether to show axis name. + /// |是否显示坐标名称。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetComponentDirty(); } + } + /// <summary> + /// the name of axis. + /// |坐标轴名称。 + /// </summary> + public string name + { + get { return m_Name; } + set { if (PropertyUtil.SetClass(ref m_Name, value)) SetComponentDirty(); } + } + /// <summary> + /// The text style of axis name. + /// |文本样式。 + /// </summary> + public LabelStyle labelStyle + { + get { return m_LabelStyle; } + set { if (PropertyUtil.SetClass(ref m_LabelStyle, value)) SetComponentDirty(); } + } + + public static AxisName defaultAxisName + { + get + { + var axisName = new AxisName() + { + m_Show = false, + m_Name = "axisName", + m_LabelStyle = new LabelStyle() + }; + axisName.labelStyle.position = LabelStyle.Position.End; + return axisName; + } + } + + public AxisName Clone() + { + var axisName = new AxisName(); + axisName.show = show; + axisName.name = name; + axisName.m_LabelStyle.Copy(m_LabelStyle); + return axisName; + } + + public void Copy(AxisName axisName) + { + show = axisName.show; + name = axisName.name; + m_LabelStyle.Copy(axisName.labelStyle); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisName.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisName.cs.meta new file mode 100644 index 0000000..e217ba8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisName.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 878555ba3c6b1479f94f38185700531e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisSplitArea.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisSplitArea.cs new file mode 100644 index 0000000..1440f85 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisSplitArea.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// Split area of axis in grid area, not shown by default. + /// |坐标轴在 grid 区域中的分隔区域,默认不显示。 + /// </summary> + [Serializable] + public class AxisSplitArea : ChildComponent + { + [SerializeField] private bool m_Show; + [SerializeField] private List<Color32> m_Color; + + /// <summary> + /// Set this to true to show the splitArea. + /// |是否显示分隔区域。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetVerticesDirty(); } + } + /// <summary> + /// Color of split area. SplitArea color could also be set in color array, + /// which the split lines would take as their colors in turns. + /// Dark and light colors in turns are used by default. + /// |分隔区域颜色。分隔区域会按数组中颜色的顺序依次循环设置颜色。默认是一个深浅的间隔色。 + /// </summary> + public List<Color32> color + { + get { return m_Color; } + set { if (value != null) { m_Color = value; SetVerticesDirty(); } } + } + + public static AxisSplitArea defaultSplitArea + { + get + { + return new AxisSplitArea() + { + m_Show = false, + m_Color = new List<Color32>() { } + }; + } + } + + public AxisSplitArea Clone() + { + var axisSplitArea = new AxisSplitArea(); + axisSplitArea.show = show; + axisSplitArea.color = new List<Color32>(); + ChartHelper.CopyList(axisSplitArea.color, color); + return axisSplitArea; + } + + public void Copy(AxisSplitArea splitArea) + { + show = splitArea.show; + color.Clear(); + ChartHelper.CopyList(color, splitArea.color); + } + + public Color32 GetColor(int index, BaseAxisTheme theme) + { + if (color.Count > 0) + { + var i = index % color.Count; + return color[i]; + } + else + { + var i = index % theme.splitAreaColors.Count; + return theme.splitAreaColors[i]; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisSplitArea.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisSplitArea.cs.meta new file mode 100644 index 0000000..76dbcd5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisSplitArea.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 18702fd7797054670af64546b7304bb4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisSplitLine.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisSplitLine.cs new file mode 100644 index 0000000..8e34527 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisSplitLine.cs @@ -0,0 +1,74 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// Split line of axis in grid area. + /// |坐标轴在 grid 区域中的分隔线。 + /// </summary> + [Serializable] + public class AxisSplitLine : BaseLine + { + [SerializeField] private int m_Interval; + [SerializeField] private float m_Distance; + [SerializeField] private bool m_AutoColor; + + /// <summary> + /// The distance between the split line and axis line. + /// |刻度线与轴线的距离。 + /// </summary> + public float distance { get { return m_Distance; } set { m_Distance = value; } } + /// <summary> + /// auto color. + /// |自动设置颜色。 + /// </summary> + public bool autoColor { get { return m_AutoColor; } set { m_AutoColor = value; } } + /// <summary> + /// Interval of Axis splitLine. + /// |坐标轴分隔线的显示间隔。 + /// </summary> + public int interval + { + get { return m_Interval; } + set { if (PropertyUtil.SetStruct(ref m_Interval, value)) SetVerticesDirty(); } + } + + public override bool vertsDirty { get { return m_VertsDirty || m_LineStyle.anyDirty; } } + public override void ClearVerticesDirty() + { + base.ClearVerticesDirty(); + m_LineStyle.ClearVerticesDirty(); + } + public static AxisSplitLine defaultSplitLine + { + get + { + return new AxisSplitLine() + { + m_Show = false, + }; + } + } + + public AxisSplitLine Clone() + { + var axisSplitLine = new AxisSplitLine(); + axisSplitLine.show = show; + axisSplitLine.interval = interval; + axisSplitLine.lineStyle = lineStyle.Clone(); + return axisSplitLine; + } + + public void Copy(AxisSplitLine splitLine) + { + base.Copy(splitLine); + interval = splitLine.interval; + } + + internal bool NeedShow(int index) + { + return show && (interval == 0 || index % (interval + 1) == 0); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisSplitLine.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisSplitLine.cs.meta new file mode 100644 index 0000000..4b8c3e4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisSplitLine.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3da942a7a6bea44e2998ed993c0641ab +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisTick.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisTick.cs new file mode 100644 index 0000000..ff3e719 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisTick.cs @@ -0,0 +1,110 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// Settings related to axis tick. + /// |坐标轴刻度相关设置。 + /// </summary> + [System.Serializable] + public class AxisTick : BaseLine + { + [SerializeField] private bool m_AlignWithLabel; + [SerializeField] private bool m_Inside; + [SerializeField] private bool m_ShowStartTick; + [SerializeField] private bool m_ShowEndTick; + [SerializeField] private float m_Distance; + [SerializeField] protected int m_SplitNumber = 0; + [SerializeField] private bool m_AutoColor; + + /// <summary> + /// The distance between the tick line and axis line. + /// |刻度线与轴线的距离。 + /// </summary> + public float distance { get { return m_Distance; } set { m_Distance = value; } } + + /// <summary> + /// Align axis tick with label, which is available only when boundaryGap is set to be true in category axis. + /// |类目轴中在 boundaryGap 为 true 的时候有效,可以保证刻度线和标签对齐。 + /// </summary> + public bool alignWithLabel + { + get { return m_AlignWithLabel; } + set { if (PropertyUtil.SetStruct(ref m_AlignWithLabel, value)) SetVerticesDirty(); } + } + /// <summary> + /// Set this to true so the axis labels face the inside direction. + /// |坐标轴刻度是否朝内,默认朝外。 + /// </summary> + public bool inside + { + get { return m_Inside; } + set { if (PropertyUtil.SetStruct(ref m_Inside, value)) SetVerticesDirty(); } + } + /// <summary> + /// Whether to display the first tick. + /// |是否显示第一个刻度。 + /// </summary> + public bool showStartTick + { + get { return m_ShowStartTick; } + set { if (PropertyUtil.SetStruct(ref m_ShowStartTick, value)) SetVerticesDirty(); } + } + /// <summary> + /// Whether to display the last tick. + /// |是否显示最后一个刻度。 + /// </summary> + public bool showEndTick + { + get { return m_ShowEndTick; } + set { if (PropertyUtil.SetStruct(ref m_ShowEndTick, value)) SetVerticesDirty(); } + } + /// <summary> + /// Number of segments that the axis is split into. + /// |分隔线之间分割的刻度数。 + /// </summary> + public int splitNumber + { + get { return m_SplitNumber; } + set { if (PropertyUtil.SetStruct(ref m_SplitNumber, value)) SetAllDirty(); } + } + public bool autoColor { get { return m_AutoColor; } set { m_AutoColor = value; } } + + public static AxisTick defaultTick + { + get + { + var tick = new AxisTick + { + m_Show = true, + m_AlignWithLabel = false, + m_Inside = false, + m_ShowStartTick = true, + m_ShowEndTick = true + }; + return tick; + } + } + + public AxisTick Clone() + { + var axisTick = new AxisTick(); + axisTick.show = show; + axisTick.alignWithLabel = alignWithLabel; + axisTick.inside = inside; + axisTick.showStartTick = showStartTick; + axisTick.showEndTick = showEndTick; + axisTick.lineStyle = lineStyle.Clone(); + return axisTick; + } + + public void Copy(AxisTick axisTick) + { + show = axisTick.show; + alignWithLabel = axisTick.alignWithLabel; + inside = axisTick.inside; + showStartTick = axisTick.showStartTick; + showEndTick = axisTick.showEndTick; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisTick.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisTick.cs.meta new file mode 100644 index 0000000..c4fdfad --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/AxisTick.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 60278762ed892450d85e27b7df8f997e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/ParallelAxis.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/ParallelAxis.meta new file mode 100644 index 0000000..7734a7d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/ParallelAxis.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 24693180b2a2e41b2ab4025b2bbebf01 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/ParallelAxis/ParallelAxis.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/ParallelAxis/ParallelAxis.cs new file mode 100644 index 0000000..18f8605 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/ParallelAxis/ParallelAxis.cs @@ -0,0 +1,29 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + [System.Serializable] + [RequireChartComponent(typeof(ParallelCoord))] + [ComponentHandler(typeof(ParallelAxisHander), true)] + public class ParallelAxis : Axis + { + public override void SetDefaultValue() + { + m_Show = true; + m_Type = AxisType.Value; + m_Min = 0; + m_Max = 0; + m_SplitNumber = 0; + m_BoundaryGap = true; + m_Position = AxisPosition.Bottom; + m_Offset = 0; + m_Data = new List<string>() { "x1", "x2", "x3", "x4", "x5" }; + m_Icons = new List<Sprite>(5); + splitLine.show = false; + splitLine.lineStyle.type = LineStyle.Type.None; + axisLabel.textLimit.enable = true; + } + + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/ParallelAxis/ParallelAxis.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/ParallelAxis/ParallelAxis.cs.meta new file mode 100644 index 0000000..4dd9fa4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/ParallelAxis/ParallelAxis.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d7bc01c54f4d6485389fd57c37810c74 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/ParallelAxis/ParallelAxisHander.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/ParallelAxis/ParallelAxisHander.cs new file mode 100644 index 0000000..7615222 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/ParallelAxis/ParallelAxisHander.cs @@ -0,0 +1,167 @@ +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class ParallelAxisHander : AxisHandler<ParallelAxis> + { + private Orient m_Orient; + private ParallelCoord m_Parallel; + + protected override Orient orient { get { return m_Orient; } } + + public override void InitComponent() + { + InitParallelAxis(component); + } + + public override void Update() + { + UpdateContext(component); + } + + public override void DrawBase(VertexHelper vh) + { + UpdateContext(component); + DrawParallelAxisSplit(vh, component); + DrawParallelAxisLine(vh, component); + DrawParallelAxisTick(vh, component); + } + + private void UpdateContext(ParallelAxis axis) + { + var parallel = chart.GetChartComponent<ParallelCoord>(axis.parallelIndex); + if (parallel == null) + return; + + m_Orient = parallel.orient; + m_Parallel = parallel; + var axisCount = chart.GetChartComponentNum<ParallelAxis>(); + + if (m_Orient == Orient.Horizonal) + { + var each = axisCount > 1 ? parallel.context.height / (axisCount - 1) : 0; + axis.context.x = parallel.context.x; + axis.context.y = parallel.context.y + (axis.index) * each; + axis.context.width = parallel.context.width; + } + else + { + var each = axisCount > 1 ? parallel.context.width / (axisCount - 1) : 0; + axis.context.x = parallel.context.x + (axis.index) * each; + axis.context.y = parallel.context.y; + axis.context.width = parallel.context.height; + } + axis.context.orient = m_Orient; + axis.context.height = 0; + axis.context.position = new Vector3(axis.context.x, axis.context.y); + } + + private void InitParallelAxis(ParallelAxis axis) + { + var theme = chart.theme; + var xAxisIndex = axis.index; + axis.painter = chart.painter; + axis.refreshComponent = delegate() + { + UpdateContext(axis); + InitAxis(null, + m_Orient, + axis.context.x, + axis.context.y, + axis.context.width, + axis.context.height); + }; + axis.refreshComponent(); + } + + internal override void UpdateAxisLabelText(Axis axis) + { + base.UpdateAxisLabelText(axis); + if (axis.IsTime() || axis.IsValue()) + { + for (int i = 0; i < axis.context.labelObjectList.Count; i++) + { + var label = axis.context.labelObjectList[i]; + if (label != null) + { + var pos = GetLabelPosition(0, i); + label.SetPosition(pos); + CheckValueLabelActive(component, i, label, pos); + } + } + } + } + + protected override Vector3 GetLabelPosition(float scaleWid, int i) + { + if (m_Parallel == null) + return Vector3.zero; + + return GetLabelPosition(i, m_Orient, component, null, + chart.theme.axis, + scaleWid, + component.context.x, + component.context.y, + component.context.width, + component.context.height); + } + + private void DrawParallelAxisSplit(VertexHelper vh, ParallelAxis axis) + { + if (AxisHelper.NeedShowSplit(axis)) + { + if (m_Parallel == null) + return; + + var dataZoom = chart.GetDataZoomOfAxis(axis); + + DrawAxisSplit(vh, chart.theme.axis, dataZoom, + m_Orient, + axis.context.x, + axis.context.y, + axis.context.width, + axis.context.height); + } + } + + private void DrawParallelAxisTick(VertexHelper vh, ParallelAxis axis) + { + if (AxisHelper.NeedShowSplit(axis)) + { + if (m_Parallel == null) + return; + + var dataZoom = chart.GetDataZoomOfAxis(axis); + + DrawAxisTick(vh, axis, chart.theme.axis, dataZoom, + m_Orient, + axis.context.x, + axis.context.y, + axis.context.width); + } + } + + private void DrawParallelAxisLine(VertexHelper vh, ParallelAxis axis) + { + if (axis.show && axis.axisLine.show) + { + if (m_Parallel == null) + return; + + DrawAxisLine(vh, axis, + chart.theme.axis, + m_Orient, + axis.context.x, + axis.context.y, + axis.context.width); + } + } + + protected override float GetAxisLineXOrY() + { + return component.context.y; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/ParallelAxis/ParallelAxisHander.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/ParallelAxis/ParallelAxisHander.cs.meta new file mode 100644 index 0000000..5b82d2f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/ParallelAxis/ParallelAxisHander.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 26ab25bf702c54ad38461c91ba1451af +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/RadiusAxis.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/RadiusAxis.meta new file mode 100644 index 0000000..a418bc2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/RadiusAxis.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7c8971958a94d47e68f7ebdff5872b71 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/RadiusAxis/RadiusAxis.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/RadiusAxis/RadiusAxis.cs new file mode 100644 index 0000000..ab12414 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/RadiusAxis/RadiusAxis.cs @@ -0,0 +1,28 @@ +using System.Collections.Generic; + +namespace XCharts.Runtime +{ + /// <summary> + /// Radial axis of polar coordinate. + /// |极坐标系的径向轴。 + /// </summary> + [System.Serializable] + [RequireChartComponent(typeof(PolarCoord))] + [ComponentHandler(typeof(RadiusAxisHandler), true)] + public class RadiusAxis : Axis + { + public override void SetDefaultValue() + { + m_Show = true; + m_Type = AxisType.Value; + m_Min = 0; + m_Max = 0; + m_SplitNumber = 5; + m_BoundaryGap = false; + m_Data = new List<string>(5); + splitLine.show = true; + splitLine.lineStyle.type = LineStyle.Type.Solid; + axisLabel.textLimit.enable = false; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/RadiusAxis/RadiusAxis.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/RadiusAxis/RadiusAxis.cs.meta new file mode 100644 index 0000000..d9c487e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/RadiusAxis/RadiusAxis.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f6429398a27934726ba49d387d681728 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/RadiusAxis/RadiusAxisHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/RadiusAxis/RadiusAxisHandler.cs new file mode 100644 index 0000000..630a061 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/RadiusAxis/RadiusAxisHandler.cs @@ -0,0 +1,188 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class RadiusAxisHandler : AxisHandler<RadiusAxis> + { + public override void InitComponent() + { + InitRadiusAxis(component); + } + + public override void Update() + { + UpdateAxisMinMaxValue(component); + UpdatePointerValue(component); + } + + public override void DrawBase(VertexHelper vh) + { + DrawRadiusAxis(vh, component); + } + + protected override void UpdatePointerValue(Axis axis) + { + var polar = chart.GetChartComponent<PolarCoord>(axis.polarIndex); + if (polar == null) + return; + + if (!polar.context.isPointerEnter) + { + axis.context.pointerValue = double.PositiveInfinity; + return; + } + + var angleAxis = ComponentHelper.GetAngleAxis(chart.components, polar.index); + if (angleAxis == null) + return; + + var dist = Vector3.Distance(chart.pointerPos, polar.context.center); + axis.context.pointerValue = axis.context.minValue + (dist / polar.context.radius) * axis.context.minMaxRange; + axis.context.pointerLabelPosition = GetLabelPosition(polar, axis, angleAxis.context.startAngle, dist); + } + + private void UpdateAxisMinMaxValue(RadiusAxis axis, bool updateChart = true) + { + if (axis.IsCategory() || !axis.show) return; + double tempMinValue = 0; + double tempMaxValue = 0; + SeriesHelper.GetXMinMaxValue(chart.series, null, axis.polarIndex, true, axis.inverse, out tempMinValue, + out tempMaxValue, true); + AxisHelper.AdjustMinMaxValue(axis, ref tempMinValue, ref tempMaxValue, true); + if (tempMinValue != axis.context.minValue || tempMaxValue != axis.context.maxValue) + { + axis.UpdateMinMaxValue(tempMinValue, tempMaxValue); + axis.context.offset = 0; + axis.context.lastCheckInverse = axis.inverse; + UpdateAxisTickValueList(axis); + + if (updateChart) + { + UpdateAxisLabelText(axis); + chart.RefreshChart(); + } + } + } + + internal void UpdateAxisLabelText(RadiusAxis axis) + { + var polar = chart.GetChartComponent<PolarCoord>(axis.polarIndex); + if (axis.context.labelObjectList.Count <= 0) + InitRadiusAxis(axis); + else + axis.UpdateLabelText(polar.context.radius, null, false); + } + + private void InitRadiusAxis(RadiusAxis axis) + { + var polar = chart.GetChartComponent<PolarCoord>(axis.index); + if (polar == null) + return; + + var angleAxis = ComponentHelper.GetAngleAxis(chart.components, polar.index); + if (angleAxis == null) + return; + + PolarHelper.UpdatePolarCenter(polar, chart.chartPosition, chart.chartWidth, chart.chartHeight); + axis.context.labelObjectList.Clear(); + var radius = polar.context.radius; + var objName = component.GetType().Name + axis.index; + var axisObj = ChartHelper.AddObject(objName, chart.transform, chart.chartMinAnchor, + chart.chartMaxAnchor, chart.chartPivot, chart.chartSizeDelta); + axisObj.transform.localPosition = Vector3.zero; + axisObj.SetActive(axis.show && axis.axisLabel.show); + axisObj.hideFlags = chart.chartHideFlags; + ChartHelper.HideAllObject(axisObj); + var textStyle = axis.axisLabel.textStyle; + var splitNumber = AxisHelper.GetScaleNumber(axis, radius, null); + var totalWidth = 0f; + var txtHig = textStyle.GetFontSize(chart.theme.axis) + 2; + for (int i = 0; i < splitNumber; i++) + { + var labelWidth = AxisHelper.GetScaleWidth(axis, radius, i + 1, null); + var inside = axis.axisLabel.inside; + var isPercentStack = SeriesHelper.IsPercentStack<Bar>(chart.series); + var labelName = AxisHelper.GetLabelName(axis, radius, i, axis.context.minValue, axis.context.maxValue, + null, isPercentStack); + var label = ChartHelper.AddAxisLabelObject(splitNumber, i, objName + i, axisObj.transform, + new Vector2(labelWidth, txtHig), axis, chart.theme.axis, labelName, Color.clear); + + if (i == 0) + axis.axisLabel.SetRelatedText(label.text, labelWidth); + + label.text.SetAlignment(textStyle.GetAlignment(TextAnchor.MiddleCenter)); + label.SetText(labelName); + label.SetPosition(GetLabelPosition(polar, axis, angleAxis.context.startAngle, totalWidth)); + label.SetActive(true); + label.SetTextActive(true); + + axis.context.labelObjectList.Add(label); + + totalWidth += labelWidth; + } + } + + private Vector3 GetLabelPosition(PolarCoord polar, Axis axis, float startAngle, float totalWidth) + { + var cenPos = polar.context.center; + var dire = ChartHelper.GetDire(startAngle, true).normalized; + var tickLength = axis.axisTick.GetLength(chart.theme.axis.tickLength); + var tickVector = ChartHelper.GetVertialDire(dire) * + (tickLength + axis.axisLabel.distance); + return ChartHelper.GetPos(cenPos, totalWidth, startAngle, true) + tickVector; + } + + private void DrawRadiusAxis(VertexHelper vh, RadiusAxis radiusAxis) + { + var polar = chart.GetChartComponent<PolarCoord>(radiusAxis.polarIndex); + if (polar == null) + return; + + var angleAxis = ComponentHelper.GetAngleAxis(chart.components, polar.index); + if (angleAxis == null) + return; + + var startAngle = angleAxis.context.startAngle; + var radius = polar.context.radius; + var cenPos = polar.context.center; + var size = AxisHelper.GetScaleNumber(radiusAxis, radius, null); + var totalWidth = 0f; + var dire = ChartHelper.GetDire(startAngle, true).normalized; + var tickWidth = radiusAxis.axisTick.GetWidth(chart.theme.axis.tickWidth); + var tickLength = radiusAxis.axisTick.GetLength(chart.theme.axis.tickLength); + var tickVetor = ChartHelper.GetVertialDire(dire) * tickLength; + for (int i = 0; i <= size; i++) + { + var scaleWidth = AxisHelper.GetScaleWidth(radiusAxis, radius, i); + var pos = ChartHelper.GetPos(cenPos, totalWidth + tickWidth, startAngle, true); + if (radiusAxis.show && radiusAxis.splitLine.show) + { + var outsideRaidus = totalWidth + radiusAxis.splitLine.GetWidth(chart.theme.axis.splitLineWidth) * 2; + var splitLineColor = radiusAxis.splitLine.GetColor(chart.theme.axis.splitLineColor); + UGL.DrawDoughnut(vh, cenPos, totalWidth, outsideRaidus, splitLineColor, Color.clear); + } + if (radiusAxis.show && radiusAxis.axisTick.show) + { + if ((i == 0 && radiusAxis.axisTick.showStartTick) || + (i == size && radiusAxis.axisTick.showEndTick) || + (i > 0 && i < size)) + { + UGL.DrawLine(vh, pos, pos + tickVetor, tickWidth, chart.theme.axis.lineColor); + } + } + totalWidth += scaleWidth; + } + if (radiusAxis.show && radiusAxis.axisLine.show) + { + var lineStartPos = polar.context.center - dire * tickWidth; + var lineEndPos = polar.context.center + dire * (radius + tickWidth); + var lineWidth = radiusAxis.axisLine.GetWidth(chart.theme.axis.lineWidth); + UGL.DrawLine(vh, lineStartPos, lineEndPos, lineWidth, chart.theme.axis.lineColor); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/RadiusAxis/RadiusAxisHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/RadiusAxis/RadiusAxisHandler.cs.meta new file mode 100644 index 0000000..5319e69 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/RadiusAxis/RadiusAxisHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3f2cb79bfe30c4f14a3117f9f30ed3bd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/SingleAxis.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/SingleAxis.meta new file mode 100644 index 0000000..09c6e70 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/SingleAxis.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 17498717d39c14b43a91c67401407410 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/SingleAxis/SingleAxis.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/SingleAxis/SingleAxis.cs new file mode 100644 index 0000000..263d37b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/SingleAxis/SingleAxis.cs @@ -0,0 +1,152 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// Single axis. + /// |单轴。 + /// </summary> + [System.Serializable] + [ComponentHandler(typeof(SingleAxisHander), true)] + public class SingleAxis : Axis, IUpdateRuntimeData + { + [SerializeField] protected Orient m_Orient = Orient.Horizonal; + [SerializeField] private float m_Left = 0.1f; + [SerializeField] private float m_Right = 0.1f; + [SerializeField] private float m_Top = 0f; + [SerializeField] private float m_Bottom = 0.2f; + [SerializeField] private float m_Width = 0; + [SerializeField] private float m_Height = 50; + + /// <summary> + /// Orientation of the axis. By default, it's 'Horizontal'. You can set it to be 'Vertical' to make a vertical axis. + /// |坐标轴朝向。默认为水平朝向。 + /// </summary> + public Orient orient + { + get { return m_Orient; } + set { if (PropertyUtil.SetStruct(ref m_Orient, value)) SetAllDirty(); } + } + /// <summary> + /// Distance between component and the left side of the container. + /// |组件离容器左侧的距离。 + /// </summary> + public float left + { + get { return m_Left; } + set { if (PropertyUtil.SetStruct(ref m_Left, value)) SetAllDirty(); } + } + /// <summary> + /// Distance between component and the right side of the container. + /// |组件离容器右侧的距离。 + /// </summary> + public float right + { + get { return m_Right; } + set { if (PropertyUtil.SetStruct(ref m_Right, value)) SetAllDirty(); } + } + /// <summary> + /// Distance between component and the top side of the container. + /// |组件离容器上侧的距离。 + /// </summary> + public float top + { + get { return m_Top; } + set { if (PropertyUtil.SetStruct(ref m_Top, value)) SetAllDirty(); } + } + /// <summary> + /// Distance between component and the bottom side of the container. + /// |组件离容器下侧的距离。 + /// </summary> + public float bottom + { + get { return m_Bottom; } + set { if (PropertyUtil.SetStruct(ref m_Bottom, value)) SetAllDirty(); } + } + /// <summary> + /// width of axis. + /// |坐标轴宽。 + /// </summary> + public float width + { + get { return m_Width; } + set { if (PropertyUtil.SetStruct(ref m_Width, value)) SetAllDirty(); } + } + /// <summary> + /// height of axis. + /// |坐标轴高。 + /// </summary> + public float height + { + get { return m_Height; } + set { if (PropertyUtil.SetStruct(ref m_Height, value)) SetAllDirty(); } + } + + public void UpdateRuntimeData(float chartX, float chartY, float chartWidth, float chartHeight) + { + context.left = left <= 1 ? left * chartWidth : left; + context.bottom = bottom <= 1 ? bottom * chartHeight : bottom; + context.top = top <= 1 ? top * chartHeight : top; + context.right = right <= 1 ? right * chartWidth : right; + + context.height = height <= 1 ? height * chartHeight : height; + + if (m_Orient == Orient.Horizonal) + { + context.width = width == 0 ? + chartWidth - context.left - context.right : + (width <= 1 ? chartWidth * width : width); + } + else + { + context.width = width == 0 ? + chartHeight - context.top - context.bottom : + (width <= 1 ? chartHeight * width : width); + } + + if (context.left != 0 && context.right == 0) + context.x = chartX + context.left; + else if (context.left == 0 && context.right != 0) + context.x = chartX + chartWidth - context.right - context.width; + else + context.x = chartX + context.left; + + if (context.bottom != 0 && context.top == 0) + context.y = chartY + context.bottom; + else if (context.bottom == 0 && context.top != 0) + context.y = chartY + chartHeight - context.top - context.height; + else + context.y = chartY + context.bottom; + + context.position = new Vector3(context.x, context.y); + } + + public override void SetDefaultValue() + { + m_Show = true; + m_Type = AxisType.Category; + m_Min = 0; + m_Max = 0; + m_SplitNumber = 0; + m_BoundaryGap = true; + m_Position = AxisPosition.Bottom; + m_Offset = 0; + + m_Left = 0.1f; + m_Right = 0.1f; + m_Top = 0; + m_Bottom = 0.2f; + m_Width = 0; + m_Height = 50; + + m_Data = new List<string>() { "x1", "x2", "x3", "x4", "x5" }; + m_Icons = new List<Sprite>(5); + splitLine.show = false; + splitLine.lineStyle.type = LineStyle.Type.None; + axisLabel.textLimit.enable = true; + axisTick.showStartTick = true; + axisTick.showEndTick = true; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/SingleAxis/SingleAxis.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/SingleAxis/SingleAxis.cs.meta new file mode 100644 index 0000000..1fe393d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/SingleAxis/SingleAxis.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: aeb871d6555744e609bd651306c601a8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/SingleAxis/SingleAxisHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/SingleAxis/SingleAxisHandler.cs new file mode 100644 index 0000000..cea0476 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/SingleAxis/SingleAxisHandler.cs @@ -0,0 +1,125 @@ +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class SingleAxisHander : AxisHandler<SingleAxis> + { + protected override Orient orient { get { return component.orient; } } + + public override void InitComponent() + { + InitXAxis(component); + } + + public override void Update() + { + UpdateAxisMinMaxValue(component.index, component); + UpdatePointerValue(component); + } + + public override void DrawBase(VertexHelper vh) + { + DrawSingleAxisSplit(vh, component); + DrawSingleAxisLine(vh, component); + DrawSingleAxisTick(vh, component); + } + + private void InitXAxis(SingleAxis axis) + { + var theme = chart.theme; + var xAxisIndex = axis.index; + axis.painter = chart.painter; + axis.refreshComponent = delegate() + { + axis.UpdateRuntimeData(chart.chartX, + chart.chartY, + chart.chartWidth, + chart.chartHeight); + + InitAxis(null, + axis.orient, + axis.context.x, + axis.context.y, + axis.context.width, + axis.context.height); + }; + axis.refreshComponent(); + } + + internal override void UpdateAxisLabelText(Axis axis) + { + base.UpdateAxisLabelText(axis); + if (axis.IsTime() || axis.IsValue()) + { + for (int i = 0; i < axis.context.labelObjectList.Count; i++) + { + var label = axis.context.labelObjectList[i]; + if (label != null) + { + var pos = GetLabelPosition(0, i); + label.SetPosition(pos); + CheckValueLabelActive(component, i, label, pos); + } + } + } + } + + protected override Vector3 GetLabelPosition(float scaleWid, int i) + { + return GetLabelPosition(i, component.orient, component, null, + chart.theme.axis, + scaleWid, + component.context.x, + component.context.y, + component.context.width, + component.context.height); + } + + private void DrawSingleAxisSplit(VertexHelper vh, SingleAxis axis) + { + if (AxisHelper.NeedShowSplit(axis)) + { + var dataZoom = chart.GetDataZoomOfAxis(axis); + DrawAxisSplit(vh, chart.theme.axis, dataZoom, + axis.orient, + axis.context.x, + axis.context.y, + axis.context.width, + axis.context.height); + } + } + + private void DrawSingleAxisTick(VertexHelper vh, SingleAxis axis) + { + if (AxisHelper.NeedShowSplit(axis)) + { + var dataZoom = chart.GetDataZoomOfAxis(axis); + DrawAxisTick(vh, axis, chart.theme.axis, dataZoom, + axis.orient, + axis.context.x, + axis.context.y, + axis.context.width); + } + } + + private void DrawSingleAxisLine(VertexHelper vh, SingleAxis axis) + { + if (axis.show && axis.axisLine.show) + { + DrawAxisLine(vh, axis, + chart.theme.axis, + axis.orient, + axis.context.x, + GetAxisLineXOrY(), + axis.context.width); + } + } + + protected override float GetAxisLineXOrY() + { + return component.context.y + component.offset; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/SingleAxis/SingleAxisHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/SingleAxis/SingleAxisHandler.cs.meta new file mode 100644 index 0000000..59d803e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/SingleAxis/SingleAxisHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 50b3514e3079543ea9000d21d809cad3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/XAxis.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/XAxis.meta new file mode 100644 index 0000000..e35422e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/XAxis.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e5e50f8f0f8bb406b99fb32d6b5c7769 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/XAxis/XAxis.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/XAxis/XAxis.cs new file mode 100644 index 0000000..8605906 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/XAxis/XAxis.cs @@ -0,0 +1,32 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// The x axis in cartesian(rectangular) coordinate. + /// |直角坐标系 grid 中的 x 轴。 + /// </summary> + [System.Serializable] + [RequireChartComponent(typeof(GridCoord))] + [ComponentHandler(typeof(XAxisHander), true)] + public class XAxis : Axis + { + public override void SetDefaultValue() + { + m_Show = true; + m_Type = AxisType.Category; + m_Min = 0; + m_Max = 0; + m_SplitNumber = 0; + m_BoundaryGap = true; + m_Position = AxisPosition.Bottom; + m_Offset = 0; + m_Data = new List<string>() { "x1", "x2", "x3", "x4", "x5" }; + m_Icons = new List<Sprite>(5); + splitLine.show = false; + splitLine.lineStyle.type = LineStyle.Type.None; + axisLabel.textLimit.enable = true; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/XAxis/XAxis.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/XAxis/XAxis.cs.meta new file mode 100644 index 0000000..11c03fd --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/XAxis/XAxis.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0a71be0d36b9745c2894e598b3d9188a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/XAxis/XAxisHander.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/XAxis/XAxisHander.cs new file mode 100644 index 0000000..e4020e0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/XAxis/XAxisHander.cs @@ -0,0 +1,152 @@ +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class XAxisHander : AxisHandler<XAxis> + { + protected override Orient orient { get { return Orient.Horizonal; } } + + public override void InitComponent() + { + InitXAxis(component); + } + + public override void Update() + { + UpdateAxisMinMaxValue(component.index, component); + UpdatePointerValue(component); + } + + public override void DrawBase(VertexHelper vh) + { + DrawXAxisSplit(vh, component); + DrawXAxisLine(vh, component); + DrawXAxisTick(vh, component); + } + + private void InitXAxis(XAxis xAxis) + { + var theme = chart.theme; + var xAxisIndex = xAxis.index; + xAxis.painter = chart.painter; + xAxis.refreshComponent = delegate() + { + var grid = chart.GetChartComponent<GridCoord>(xAxis.gridIndex); + if (grid != null) + { + var yAxis = chart.GetChartComponent<YAxis>(xAxis.index); + InitAxis(yAxis, + orient, + grid.context.x, + grid.context.y, + grid.context.width, + grid.context.height); + } + }; + xAxis.refreshComponent(); + } + + internal override void UpdateAxisLabelText(Axis axis) + { + base.UpdateAxisLabelText(axis); + if (axis.IsTime() || axis.IsValue()) + { + for (int i = 0; i < axis.context.labelObjectList.Count; i++) + { + var label = axis.context.labelObjectList[i]; + if (label != null) + { + var pos = GetLabelPosition(0, i); + label.SetPosition(pos); + CheckValueLabelActive(component, i, label, pos); + } + } + } + } + + protected override Vector3 GetLabelPosition(float scaleWid, int i) + { + var grid = chart.GetChartComponent<GridCoord>(component.gridIndex); + if (grid == null) + return Vector3.zero; + + var yAxis = chart.GetChartComponent<YAxis>(component.index); + return GetLabelPosition(i, Orient.Horizonal, component, yAxis, + chart.theme.axis, + scaleWid, + grid.context.x, + grid.context.y, + grid.context.width, + grid.context.height); + } + + private void DrawXAxisSplit(VertexHelper vh, XAxis xAxis) + { + if (AxisHelper.NeedShowSplit(xAxis)) + { + var grid = chart.GetChartComponent<GridCoord>(xAxis.gridIndex); + if (grid == null) + return; + + var relativedAxis = chart.GetChartComponent<YAxis>(xAxis.gridIndex); + var dataZoom = chart.GetDataZoomOfAxis(xAxis); + + DrawAxisSplit(vh, chart.theme.axis, dataZoom, + Orient.Horizonal, + grid.context.x, + grid.context.y, + grid.context.width, + grid.context.height, + relativedAxis); + } + } + + private void DrawXAxisTick(VertexHelper vh, XAxis xAxis) + { + if (AxisHelper.NeedShowSplit(xAxis)) + { + var grid = chart.GetChartComponent<GridCoord>(xAxis.gridIndex); + if (grid == null) + return; + + var dataZoom = chart.GetDataZoomOfAxis(xAxis); + + DrawAxisTick(vh, xAxis, chart.theme.axis, dataZoom, + Orient.Horizonal, + grid.context.x, + GetAxisLineXOrY(), + grid.context.width); + } + } + + private void DrawXAxisLine(VertexHelper vh, XAxis xAxis) + { + if (xAxis.show && xAxis.axisLine.show) + { + var grid = chart.GetChartComponent<GridCoord>(xAxis.gridIndex); + if (grid == null) + return; + + DrawAxisLine(vh, xAxis, chart.theme.axis, + Orient.Horizonal, + grid.context.x, + GetAxisLineXOrY(), + grid.context.width); + } + } + + protected override float GetAxisLineXOrY() + { + var xAxis = component; + var grid = chart.GetChartComponent<GridCoord>(xAxis.gridIndex); + var startY = grid.context.y + xAxis.offset; + if (xAxis.IsTop()) + startY += grid.context.height; + else + startY += ComponentHelper.GetXAxisOnZeroOffset(chart.components, xAxis); + return startY; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/XAxis/XAxisHander.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/XAxis/XAxisHander.cs.meta new file mode 100644 index 0000000..79717bd --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/XAxis/XAxisHander.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d7818e1175663412196de53f19b5ac08 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/YAxis.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/YAxis.meta new file mode 100644 index 0000000..ef2fe9c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/YAxis.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 69f8ba8fcc7d84b12b42f837f9f2b94b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/YAxis/YAxis.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/YAxis/YAxis.cs new file mode 100644 index 0000000..aee2bd1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/YAxis/YAxis.cs @@ -0,0 +1,30 @@ +using System.Collections.Generic; + +namespace XCharts.Runtime +{ + /// <summary> + /// The x axis in cartesian(rectangular) coordinate. + /// |直角坐标系 grid 中的 y 轴。 + /// </summary> + [System.Serializable] + [RequireChartComponent(typeof(GridCoord), typeof(XAxis))] + [ComponentHandler(typeof(YAxisHander), true)] + public class YAxis : Axis + { + public override void SetDefaultValue() + { + m_Show = true; + m_Type = AxisType.Value; + m_Min = 0; + m_Max = 0; + m_SplitNumber = 0; + m_BoundaryGap = false; + m_Position = AxisPosition.Left; + m_Data = new List<string>(5); + splitLine.show = true; + splitLine.lineStyle.type = LineStyle.Type.None; + axisLabel.textLimit.enable = false; + axisTick.showStartTick = true; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/YAxis/YAxis.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/YAxis/YAxis.cs.meta new file mode 100644 index 0000000..2e38816 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/YAxis/YAxis.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6ac60b8329f7a45c3898c7539d78f091 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/YAxis/YAxisHander.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/YAxis/YAxisHander.cs new file mode 100644 index 0000000..5d91b08 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/YAxis/YAxisHander.cs @@ -0,0 +1,149 @@ +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class YAxisHander : AxisHandler<YAxis> + { + protected override Orient orient { get { return Orient.Vertical; } } + + public override void InitComponent() + { + InitYAxis(component); + } + + public override void Update() + { + UpdateAxisMinMaxValue(component.index, component); + UpdatePointerValue(component); + } + + public override void DrawBase(VertexHelper vh) + { + DrawYAxisSplit(vh, component.index, component); + DrawYAxisLine(vh, component.index, component); + DrawYAxisTick(vh, component.index, component); + } + + private void InitYAxis(YAxis yAxis) + { + var theme = chart.theme; + var yAxisIndex = yAxis.index; + yAxis.painter = chart.painter; + yAxis.refreshComponent = delegate() + { + var grid = chart.GetChartComponent<GridCoord>(yAxis.gridIndex); + if (grid != null) + { + var xAxis = chart.GetChartComponent<YAxis>(yAxis.index); + InitAxis(xAxis, + orient, + grid.context.x, + grid.context.y, + grid.context.height, + grid.context.width); + } + }; + yAxis.refreshComponent(); + } + + internal override void UpdateAxisLabelText(Axis axis) + { + base.UpdateAxisLabelText(axis); + if (axis.IsTime() || axis.IsValue()) + { + for (int i = 0; i < axis.context.labelObjectList.Count; i++) + { + var label = axis.context.labelObjectList[i]; + if (label != null) + { + var pos = GetLabelPosition(0, i); + label.SetPosition(pos); + CheckValueLabelActive(axis, i, label, pos); + } + } + } + } + + protected override Vector3 GetLabelPosition(float scaleWid, int i) + { + var grid = chart.GetChartComponent<GridCoord>(component.gridIndex); + if (grid == null) + return Vector3.zero; + + return GetLabelPosition(i, Orient.Vertical, component, null, + chart.theme.axis, + scaleWid, + grid.context.x, + grid.context.y, + grid.context.height, + grid.context.width); + } + + private void DrawYAxisSplit(VertexHelper vh, int yAxisIndex, YAxis yAxis) + { + if (AxisHelper.NeedShowSplit(yAxis)) + { + var grid = chart.GetChartComponent<GridCoord>(yAxis.gridIndex); + if (grid == null) + return; + var relativedAxis = chart.GetChartComponent<XAxis>(yAxis.gridIndex); + var dataZoom = chart.GetDataZoomOfAxis(yAxis); + DrawAxisSplit(vh, chart.theme.axis, dataZoom, + Orient.Vertical, + grid.context.x, + grid.context.y, + grid.context.height, + grid.context.width, + relativedAxis); + } + } + + private void DrawYAxisTick(VertexHelper vh, int yAxisIndex, YAxis yAxis) + { + if (AxisHelper.NeedShowSplit(yAxis)) + { + var grid = chart.GetChartComponent<GridCoord>(yAxis.gridIndex); + if (grid == null) + return; + + var dataZoom = chart.GetDataZoomOfAxis(yAxis); + + DrawAxisTick(vh, yAxis, chart.theme.axis, dataZoom, + Orient.Vertical, + GetAxisLineXOrY(), + grid.context.y, + grid.context.height); + } + } + + private void DrawYAxisLine(VertexHelper vh, int yAxisIndex, YAxis yAxis) + { + if (yAxis.show && yAxis.axisLine.show) + { + var grid = chart.GetChartComponent<GridCoord>(yAxis.gridIndex); + if (grid == null) + return; + + DrawAxisLine(vh, yAxis, chart.theme.axis, + Orient.Vertical, + GetAxisLineXOrY(), + grid.context.y, + grid.context.height); + } + } + + protected override float GetAxisLineXOrY() + { + var yAxis = component; + var grid = chart.GetChartComponent<GridCoord>(yAxis.gridIndex); + var startX = grid.context.x + yAxis.offset; + if (yAxis.IsRight()) + startX += grid.context.width; + else + startX += ComponentHelper.GetYAxisOnZeroOffset(chart.components, yAxis); + return startX; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/YAxis/YAxisHander.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/YAxis/YAxisHander.cs.meta new file mode 100644 index 0000000..0ea465d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Axis/YAxis/YAxisHander.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f09b5dcb5fcc54583bcd7946f18dfa48 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Background.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Background.meta new file mode 100644 index 0000000..15e2676 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Background.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7db6fdcbbbfd148f58ff7a1f1a569d51 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Background/Background.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Background/Background.cs new file mode 100644 index 0000000..68f212c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Background/Background.cs @@ -0,0 +1,80 @@ +using System; +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + /// <summary> + /// Background component. + /// | + /// 背景组件。 + /// </summary> + [Serializable] + [DisallowMultipleComponent] + [ComponentHandler(typeof(BackgroundHandler), false)] + public class Background : MainComponent + { + [SerializeField] private bool m_Show = true; + [SerializeField] private Sprite m_Image; + [SerializeField] private Image.Type m_ImageType; + [SerializeField] private Color m_ImageColor = Color.white; + [SerializeField] private bool m_AutoColor = true; + + /// <summary> + /// Whether to enable the background component. + /// |是否启用背景组件。 + /// </summary> + public bool show + { + get { return m_Show; } + internal set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetComponentDirty(); } + } + /// <summary> + /// the image of background. + /// |背景图。 + /// </summary> + public Sprite image + { + get { return m_Image; } + set { if (PropertyUtil.SetClass(ref m_Image, value)) SetComponentDirty(); } + } + + /// <summary> + /// the fill type of background image. + /// |背景图填充类型。 + /// </summary> + public Image.Type imageType + { + get { return m_ImageType; } + set { if (PropertyUtil.SetStruct(ref m_ImageType, value)) SetComponentDirty(); } + } + + /// <summary> + /// 背景图颜色。 + /// </summary> + public Color imageColor + { + get { return m_ImageColor; } + set { if (PropertyUtil.SetColor(ref m_ImageColor, value)) SetComponentDirty(); } + } + + /// <summary> + /// Whether to use theme background color for component color when the background component is on. + /// |当background组件开启时,是否自动使用主题背景色作为backgrounnd组件的颜色。当设置为false时,用imageColor作为颜色。 + /// </summary> + public bool autoColor + { + get { return m_AutoColor; } + set { if (PropertyUtil.SetStruct(ref m_AutoColor, value)) SetVerticesDirty(); } + } + + public override void SetDefaultValue() + { + m_Show = true; + m_Image = null; + m_ImageType = Image.Type.Sliced; + m_ImageColor = Color.white; + m_AutoColor = true; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Background/Background.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Background/Background.cs.meta new file mode 100644 index 0000000..e531dbc --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Background/Background.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 524f7df5241cc4379ae241a73d5b2ff2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Background/BackgroundHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Background/BackgroundHandler.cs new file mode 100644 index 0000000..e99535c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Background/BackgroundHandler.cs @@ -0,0 +1,57 @@ +using System; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class BackgroundHandler : MainComponentHandler<Background> + { + private readonly string s_BackgroundObjectName = "background"; + public override void InitComponent() + { + component.painter = chart.painter; + component.refreshComponent = delegate() + { + var backgroundObj = ChartHelper.AddObject(s_BackgroundObjectName, chart.transform, chart.chartMinAnchor, + chart.chartMaxAnchor, chart.chartPivot, chart.chartSizeDelta); + component.gameObject = backgroundObj; + backgroundObj.hideFlags = chart.chartHideFlags; + + var backgroundImage = ChartHelper.GetOrAddComponent<Image>(backgroundObj); + ChartHelper.UpdateRectTransform(backgroundObj, chart.chartMinAnchor, + chart.chartMaxAnchor, chart.chartPivot, chart.chartSizeDelta); + backgroundImage.sprite = component.image; + backgroundImage.type = component.imageType; + backgroundImage.color = chart.theme.GetBackgroundColor(component); + + backgroundObj.transform.SetSiblingIndex(0); + backgroundObj.SetActive(component.show); + }; + component.refreshComponent(); + } + + public override void Update() + { + if (component.gameObject != null && component.gameObject.transform.GetSiblingIndex() != 0) + component.gameObject.transform.SetSiblingIndex(0); + } + + public override void DrawBase(VertexHelper vh) + { + if (!component.show) + return; + if (component.image != null) + return; + + var p1 = new Vector3(chart.chartX, chart.chartY + chart.chartHeight); + var p2 = new Vector3(chart.chartX + chart.chartWidth, chart.chartY + chart.chartHeight); + var p3 = new Vector3(chart.chartX + chart.chartWidth, chart.chartY); + var p4 = new Vector3(chart.chartX, chart.chartY); + var backgroundColor = chart.theme.GetBackgroundColor(component); + + UGL.DrawQuadrilateral(vh, p1, p2, p3, p4, backgroundColor); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Background/BackgroundHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Background/BackgroundHandler.cs.meta new file mode 100644 index 0000000..89ce4b6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Background/BackgroundHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f1cb3d1a2aa224bbe84eef2681cf3df4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child.meta new file mode 100644 index 0000000..3f52f89 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 20d31ade0390641698e6b846b4294b74 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/AreaStyle.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/AreaStyle.cs new file mode 100644 index 0000000..0b4a45b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/AreaStyle.cs @@ -0,0 +1,131 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// The style of area. + /// |区域填充样式。 + /// </summary> + [System.Serializable] + public class AreaStyle : ChildComponent, ISerieExtraComponent, ISerieDataComponent + { + /// <summary> + /// Origin position of area. + /// |图形区域的起始位置。默认情况下,图形会从坐标轴轴线到数据间进行填充。如果需要填充的区域是坐标轴最大值到数据间,或者坐标轴最小值到数据间,则可以通过这个配置项进行设置。 + /// </summary> + public enum AreaOrigin + { + /// <summary> + /// to fill between axis line to data. + /// |填充坐标轴轴线到数据间的区域。 + /// </summary> + Auto, + /// <summary> + /// to fill between min axis value (when not inverse) to data. + /// |填充坐标轴底部到数据间的区域。 + /// </summary> + Start, + /// <summary> + /// to fill between max axis value (when not inverse) to data. + /// |填充坐标轴顶部到数据间的区域。 + /// </summary> + End + } + + [SerializeField] private bool m_Show = true; + [SerializeField] private AreaOrigin m_Origin; + [SerializeField] private Color32 m_Color; + [SerializeField] private Color32 m_ToColor; + [SerializeField][Range(0, 1)] private float m_Opacity = 0.6f; + [SerializeField] private Color32 m_HighlightColor; + [SerializeField] private Color32 m_HighlightToColor; + + /// <summary> + /// Set this to false to prevent the areafrom showing. + /// |是否显示区域填充。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetVerticesDirty(); } + } + /// <summary> + /// the origin of area. + /// |区域填充的起始位置。 + /// </summary> + public AreaOrigin origin + { + get { return m_Origin; } + set { if (PropertyUtil.SetStruct(ref m_Origin, value)) SetVerticesDirty(); } + } + /// <summary> + /// the color of area,default use serie color. + /// |区域填充的颜色,如果toColor不是默认值,则表示渐变色的起点颜色。 + /// </summary> + public Color32 color + { + get { return m_Color; } + set { if (PropertyUtil.SetColor(ref m_Color, value)) SetVerticesDirty(); } + } + /// <summary> + /// Gradient color, start color to toColor. + /// |渐变色的终点颜色。 + /// </summary> + public Color32 toColor + { + get { return m_ToColor; } + set { if (PropertyUtil.SetColor(ref m_ToColor, value)) SetVerticesDirty(); } + } + /// <summary> + /// Opacity of the component. Supports value from 0 to 1, and the component will not be drawn when set to 0. + /// |图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。 + /// </summary> + public float opacity + { + get { return m_Opacity; } + set { if (PropertyUtil.SetStruct(ref m_Opacity, value)) SetVerticesDirty(); } + } + /// <summary> + /// the color of area,default use serie color. + /// |高亮时区域填充的颜色,如果highlightToColor不是默认值,则表示渐变色的起点颜色。 + /// </summary> + public Color32 highlightColor + { + get { return m_HighlightColor; } + set { if (PropertyUtil.SetColor(ref m_HighlightColor, value)) SetVerticesDirty(); } + } + /// <summary> + /// Gradient color, start highlightColor to highlightToColor. + /// |高亮时渐变色的终点颜色。 + /// </summary> + public Color32 highlightToColor + { + get { return m_HighlightToColor; } + set { if (PropertyUtil.SetColor(ref m_HighlightToColor, value)) SetVerticesDirty(); } + } + + public Color32 GetColor() + { + if (m_Opacity == 1) + return m_Color; + + var color = m_Color; + color.a = (byte) (color.a * m_Opacity); + return color; + } + + public Color32 GetColor(Color32 themeColor) + { + if (!ChartHelper.IsClearColor(color)) + { + return GetColor(); + } + else + { + var color = themeColor; + color.a = (byte) (color.a * opacity); + return color; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/AreaStyle.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/AreaStyle.cs.meta new file mode 100644 index 0000000..53d0f68 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/AreaStyle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ec0d95a9298bb4c159dcae36020beec9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/ArrowStyle.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/ArrowStyle.cs new file mode 100644 index 0000000..1b78233 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/ArrowStyle.cs @@ -0,0 +1,92 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// </summary> + [Serializable] + public class ArrowStyle : ChildComponent + { + [SerializeField] private float m_Width = 10; + [SerializeField] private float m_Height = 15; + [SerializeField] private float m_Offset = 0; + [SerializeField] private float m_Dent = 3; + [SerializeField] private Color32 m_Color = Color.clear; + + /// <summary> + /// The widht of arrow. + /// |箭头宽。 + /// </summary> + public float width + { + get { return m_Width; } + set { if (PropertyUtil.SetStruct(ref m_Width, value)) SetVerticesDirty(); } + } + /// <summary> + /// The height of arrow. + /// |箭头高。 + /// </summary> + public float height + { + get { return m_Height; } + set { if (PropertyUtil.SetStruct(ref m_Height, value)) SetVerticesDirty(); } + } + /// <summary> + /// The offset of arrow. + /// |箭头偏移。 + /// </summary> + public float offset + { + get { return m_Offset; } + set { if (PropertyUtil.SetStruct(ref m_Offset, value)) SetVerticesDirty(); } + } + /// <summary> + /// The dent of arrow. + /// |箭头的凹度。 + /// </summary> + public float dent + { + get { return m_Dent; } + set { if (PropertyUtil.SetStruct(ref m_Dent, value)) SetVerticesDirty(); } + } + + /// <summary> + /// the color of arrow. + /// |箭头颜色。 + /// </summary> + public Color32 color + { + get { return m_Color; } + set { if (PropertyUtil.SetColor(ref m_Color, value)) SetVerticesDirty(); } + } + + public ArrowStyle Clone() + { + var arrow = new ArrowStyle(); + arrow.width = width; + arrow.height = height; + arrow.offset = offset; + arrow.dent = dent; + arrow.color = color; + return arrow; + } + + public void Copy(ArrowStyle arrow) + { + width = arrow.width; + height = arrow.height; + offset = arrow.offset; + dent = arrow.dent; + color = arrow.color; + } + + public Color32 GetColor(Color32 defaultColor) + { + if (ChartHelper.IsClearColor(color)) + return defaultColor; + else + return color; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/ArrowStyle.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/ArrowStyle.cs.meta new file mode 100644 index 0000000..002958e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/ArrowStyle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2232b812c68f042d29c44863e38d0417 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/BaseLine.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/BaseLine.cs new file mode 100644 index 0000000..5472b77 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/BaseLine.cs @@ -0,0 +1,82 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// Settings related to base line. + /// |线条基础配置。 + /// </summary> + [System.Serializable] + public class BaseLine : ChildComponent + { + [SerializeField] protected bool m_Show; + [SerializeField] protected LineStyle m_LineStyle = new LineStyle(); + + /// <summary> + /// Set this to false to prevent the axis line from showing. + /// |是否显示坐标轴轴线。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetVerticesDirty(); } + } + /// <summary> + /// 线条样式 + /// </summary> + public LineStyle lineStyle + { + get { return m_LineStyle; } + set { if (value != null) { m_LineStyle = value; SetVerticesDirty(); } } + } + + public static BaseLine defaultBaseLine + { + get + { + var axisLine = new BaseLine + { + m_Show = true, + m_LineStyle = new LineStyle() + }; + return axisLine; + } + } + + public BaseLine() + { + lineStyle = new LineStyle(); + } + + public BaseLine(bool show) : base() + { + m_Show = show; + } + + public void Copy(BaseLine axisLine) + { + show = axisLine.show; + lineStyle.Copy(axisLine.lineStyle); + } + + public LineStyle.Type GetType(LineStyle.Type themeType) + { + return lineStyle.GetType(themeType); + } + + public float GetWidth(float themeWidth) + { + return lineStyle.GetWidth(themeWidth); + } + + public float GetLength(float themeLength) + { + return lineStyle.GetLength(themeLength); + } + + public Color32 GetColor(Color32 themeColor) + { + return lineStyle.GetColor(themeColor); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/BaseLine.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/BaseLine.cs.meta new file mode 100644 index 0000000..de0a9fa --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/BaseLine.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4c431b00ccffe4db4b61179b6df06eb2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/IconStyle.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/IconStyle.cs new file mode 100644 index 0000000..17d847c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/IconStyle.cs @@ -0,0 +1,118 @@ +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + [System.Serializable] + public class IconStyle : ChildComponent + { + public enum Layer + { + /// <summary> + /// The icon is display under the label text. + /// 图标在标签文字下 + /// </summary> + UnderText, + /// <summary> + /// The icon is display above the label text. + /// 图标在标签文字上 + /// </summary> + AboveText + } + + [SerializeField] private bool m_Show = false; + [SerializeField] private Layer m_Layer; + [SerializeField] private Align m_Align = Align.Left; + [SerializeField] private Sprite m_Sprite; + [SerializeField] private Image.Type m_Type; + [SerializeField] private Color m_Color = Color.white; + [SerializeField] private float m_Width = 20; + [SerializeField] private float m_Height = 20; + [SerializeField] private Vector3 m_Offset; + [SerializeField] private bool m_AutoHideWhenLabelEmpty = false; + + public void Reset() + { + m_Show = false; + m_Layer = Layer.UnderText; + m_Sprite = null; + m_Color = Color.white; + m_Width = 20; + m_Height = 20; + m_Offset = Vector3.zero; + m_AutoHideWhenLabelEmpty = false; + } + /// <summary> + /// Whether the data icon is show. + /// |是否显示图标。 + /// </summary> + public bool show { get { return m_Show; } set { m_Show = value; } } + /// <summary> + /// 显示在上层还是在下层。 + /// </summary> + public Layer layer { get { return m_Layer; } set { m_Layer = value; } } + /// <summary> + /// The image of icon. + /// |图标的图片。 + /// </summary> + public Sprite sprite { get { return m_Sprite; } set { m_Sprite = value; } } + /// <summary> + /// How to display the icon. + /// |图片的显示类型。 + /// </summary> + public Image.Type type { get { return m_Type; } set { m_Type = value; } } + /// <summary> + /// 图标颜色。 + /// </summary> + public Color color { get { return m_Color; } set { m_Color = value; } } + /// <summary> + /// 图标宽。 + /// </summary> + public float width { get { return m_Width; } set { m_Width = value; } } + /// <summary> + /// 图标高。 + /// </summary> + public float height { get { return m_Height; } set { m_Height = value; } } + /// <summary> + /// 图标偏移。 + /// </summary> + public Vector3 offset { get { return m_Offset; } set { m_Offset = value; } } + /// <summary> + /// 水平方向对齐方式。 + /// </summary> + public Align align { get { return m_Align; } set { m_Align = value; } } + /// <summary> + /// 当label内容为空时是否自动隐藏图标 + /// </summary> + public bool autoHideWhenLabelEmpty { get { return m_AutoHideWhenLabelEmpty; } set { m_AutoHideWhenLabelEmpty = value; } } + public IconStyle Clone() + { + var iconStyle = new IconStyle(); + iconStyle.show = show; + iconStyle.layer = layer; + iconStyle.sprite = sprite; + iconStyle.type = type; + iconStyle.color = color; + iconStyle.width = width; + iconStyle.height = height; + iconStyle.offset = offset; + iconStyle.align = align; + iconStyle.autoHideWhenLabelEmpty = autoHideWhenLabelEmpty; + return iconStyle; + } + + public void Copy(IconStyle iconStyle) + { + show = iconStyle.show; + layer = iconStyle.layer; + sprite = iconStyle.sprite; + type = iconStyle.type; + color = iconStyle.color; + width = iconStyle.width; + height = iconStyle.height; + offset = iconStyle.offset; + align = iconStyle.align; + autoHideWhenLabelEmpty = iconStyle.autoHideWhenLabelEmpty; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/IconStyle.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/IconStyle.cs.meta new file mode 100644 index 0000000..53609da --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/IconStyle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 82c4d360f7b5b4ee7845e9bbe611c8a3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/ImageStyle.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/ImageStyle.cs new file mode 100644 index 0000000..d37b392 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/ImageStyle.cs @@ -0,0 +1,81 @@ +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + [System.Serializable] + public class ImageStyle : ChildComponent, ISerieExtraComponent, ISerieDataComponent + { + [SerializeField] private bool m_Show = true; + [SerializeField] private Sprite m_Sprite; + [SerializeField] private Image.Type m_Type; + [SerializeField] private bool m_AutoColor; + [SerializeField] private Color m_Color = Color.clear; + [SerializeField] private float m_Width = 0; + [SerializeField] private float m_Height = 0; + + public void Reset() + { + m_Show = false; + m_Type = Image.Type.Simple; + m_Sprite = null; + m_AutoColor = false; + m_Color = Color.white; + m_Width = 0; + m_Height = 0; + } + + /// <summary> + /// Whether the data icon is show. + /// |是否显示图标。 + /// </summary> + public bool show { get { return m_Show; } set { m_Show = value; } } + /// <summary> + /// The image of icon. + /// |图标的图片。 + /// </summary> + public Sprite sprite { get { return m_Sprite; } set { m_Sprite = value; } } + /// <summary> + /// How to display the image. + /// |图片的显示类型。 + /// </summary> + public Image.Type type { get { return m_Type; } set { m_Type = value; } } + /// <summary> + /// 是否自动颜色。 + /// </summary> + public bool autoColor { get { return m_AutoColor; } set { m_AutoColor = value; } } + /// <summary> + /// 图标颜色。 + /// </summary> + public Color color { get { return m_Color; } set { m_Color = value; } } + /// <summary> + /// 图标宽。 + /// </summary> + public float width { get { return m_Width; } set { m_Width = value; } } + /// <summary> + /// 图标高。 + /// </summary> + public float height { get { return m_Height; } set { m_Height = value; } } + public ImageStyle Clone() + { + var imageStyle = new ImageStyle(); + imageStyle.type = type; + imageStyle.sprite = sprite; + imageStyle.autoColor = autoColor; + imageStyle.color = color; + imageStyle.width = width; + imageStyle.height = height; + return imageStyle; + } + + public void Copy(ImageStyle imageStyle) + { + type = imageStyle.type; + sprite = imageStyle.sprite; + autoColor = imageStyle.autoColor; + color = imageStyle.color; + width = imageStyle.width; + height = imageStyle.height; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/ImageStyle.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/ImageStyle.cs.meta new file mode 100644 index 0000000..8e9356e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/ImageStyle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5a76d1129783c4f55b0773da2eda9b67 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/ItemStyle.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/ItemStyle.cs new file mode 100644 index 0000000..79e9403 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/ItemStyle.cs @@ -0,0 +1,350 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// 图形样式。 + /// </summary> + [System.Serializable] + public class ItemStyle : ChildComponent, ISerieDataComponent + { + [SerializeField] private bool m_Show = true; + [SerializeField] private Color32 m_Color; + [SerializeField] private Color32 m_Color0; + [SerializeField] private Color32 m_ToColor; + [SerializeField] private Color32 m_ToColor2; + [SerializeField] private Color32 m_BackgroundColor; + [SerializeField] private float m_BackgroundWidth; + [SerializeField] private Color32 m_CenterColor; + [SerializeField] private float m_CenterGap; + [SerializeField] private float m_BorderWidth = 0; + [SerializeField] private float m_BorderGap = 0; + [SerializeField] private Color32 m_BorderColor; + [SerializeField] private Color32 m_BorderColor0; + [SerializeField] private Color32 m_BorderToColor; + [SerializeField][Range(0, 1)] private float m_Opacity = 1; + [SerializeField] private string m_ItemMarker; + [SerializeField] private string m_ItemFormatter; + [SerializeField] private string m_NumericFormatter = ""; + [SerializeField] private float[] m_CornerRadius = new float[] { 0, 0, 0, 0 }; + + public void Reset() + { + m_Show = false; + m_Color = Color.clear; + m_Color0 = Color.clear; + m_ToColor = Color.clear; + m_ToColor2 = Color.clear; + m_BackgroundColor = Color.clear; + m_BackgroundWidth = 0; + m_CenterColor = Color.clear; + m_CenterGap = 0; + m_BorderWidth = 0; + m_BorderGap = 0; + m_BorderColor = Color.clear; + m_BorderColor0 = Color.clear; + m_BorderToColor = Color.clear; + m_Opacity = 1; + m_ItemFormatter = null; + m_ItemMarker = null; + m_NumericFormatter = ""; + if (m_CornerRadius == null) + { + m_CornerRadius = new float[] { 0, 0, 0, 0 }; + } + else + { + for (int i = 0; i < m_CornerRadius.Length; i++) + m_CornerRadius[i] = 0; + } + } + + /// <summary> + /// 是否启用。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetVerticesDirty(); } + } + /// <summary> + /// 数据项颜色。 + /// </summary> + public Color32 color + { + get { return m_Color; } + set { if (PropertyUtil.SetColor(ref m_Color, value)) SetVerticesDirty(); } + } + /// <summary> + /// 数据项颜色。 + /// </summary> + public Color32 color0 + { + get { return m_Color0; } + set { if (PropertyUtil.SetColor(ref m_Color0, value)) SetVerticesDirty(); } + } + /// <summary> + /// Gradient color1. + /// |渐变色的颜色1。 + /// </summary> + public Color32 toColor + { + get { return m_ToColor; } + set { if (PropertyUtil.SetColor(ref m_ToColor, value)) SetVerticesDirty(); } + } + /// <summary> + /// Gradient color2.Only valid in line diagrams. + /// |渐变色的颜色2。只在折线图中有效。 + /// </summary> + public Color32 toColor2 + { + get { return m_ToColor2; } + set { if (PropertyUtil.SetColor(ref m_ToColor2, value)) SetVerticesDirty(); } + } + /// <summary> + /// 数据项背景颜色。 + /// </summary> + public Color32 backgroundColor + { + get { return m_BackgroundColor; } + set { if (PropertyUtil.SetColor(ref m_BackgroundColor, value)) SetVerticesDirty(); } + } + /// <summary> + /// 数据项背景宽度。 + /// </summary> + public float backgroundWidth + { + get { return m_BackgroundWidth; } + set { if (PropertyUtil.SetStruct(ref m_BackgroundWidth, value)) SetVerticesDirty(); } + } + /// <summary> + /// 中心区域颜色。 + /// </summary> + public Color32 centerColor + { + get { return m_CenterColor; } + set { if (PropertyUtil.SetColor(ref m_CenterColor, value)) SetVerticesDirty(); } + } + /// <summary> + /// 中心区域间隙。 + /// </summary> + public float centerGap + { + get { return m_CenterGap; } + set { if (PropertyUtil.SetStruct(ref m_CenterGap, value)) SetVerticesDirty(); } + } + /// <summary> + /// 边框的颜色。 + /// </summary> + public Color32 borderColor + { + get { return m_BorderColor; } + set { if (PropertyUtil.SetColor(ref m_BorderColor, value)) SetVerticesDirty(); } + } + /// <summary> + /// 边框的颜色。 + /// </summary> + public Color32 borderColor0 + { + get { return m_BorderColor0; } + set { if (PropertyUtil.SetColor(ref m_BorderColor0, value)) SetVerticesDirty(); } + } + /// <summary> + /// 边框的渐变色。 + /// </summary> + public Color32 borderToColor + { + get { return m_BorderToColor; } + set { if (PropertyUtil.SetColor(ref m_BorderToColor, value)) SetVerticesDirty(); } + } + /// <summary> + /// 边框宽。 + /// </summary> + public float borderWidth + { + get { return m_BorderWidth; } + set { if (PropertyUtil.SetStruct(ref m_BorderWidth, value)) SetVerticesDirty(); } + } + /// <summary> + /// 边框间隙。 + /// </summary> + public float borderGap + { + get { return m_BorderGap; } + set { if (PropertyUtil.SetStruct(ref m_BorderGap, value)) SetVerticesDirty(); } + } + /// <summary> + /// 透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。 + /// </summary> + public float opacity + { + get { return m_Opacity; } + set { if (PropertyUtil.SetStruct(ref m_Opacity, value)) SetVerticesDirty(); } + } + /// <summary> + /// 提示框单项的字符串模版格式器。具体配置参考`Tooltip`的`formatter` + /// </summary> + public string itemFormatter + { + get { return m_ItemFormatter; } + set { if (PropertyUtil.SetClass(ref m_ItemFormatter, value)) SetVerticesDirty(); } + } + /// <summary> + /// 提示框单项的字符标志。用在Tooltip中。 + /// </summary> + public string itemMarker + { + get { return m_ItemMarker; } + set { if (PropertyUtil.SetClass(ref m_ItemMarker, value)) SetVerticesDirty(); } + } + /// <summary> + /// Standard numeric format strings. + /// |标准数字格式字符串。用于将数值格式化显示为字符串。 + /// 使用Axx的形式:A是格式说明符的单字符,支持C货币、D十进制、E指数、F定点数、G常规、N数字、P百分比、R往返、X十六进制的。xx是精度说明,从0-99。 + /// 参考:https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/standard-numeric-format-strings + /// </summary> + /// <value></value> + public string numericFormatter + { + get { return m_NumericFormatter; } + set { if (PropertyUtil.SetClass(ref m_NumericFormatter, value)) SetComponentDirty(); } + } + /// <summary> + /// The radius of rounded corner. Its unit is px. Use array to respectively specify the 4 corner radiuses((clockwise upper left, upper right, bottom right and bottom left)). + /// |圆角半径。用数组分别指定4个圆角半径(顺时针左上,右上,右下,左下)。 + /// </summary> + public float[] cornerRadius + { + get { return m_CornerRadius; } + set { if (PropertyUtil.SetClass(ref m_CornerRadius, value, true)) SetVerticesDirty(); } + } + /// <summary> + /// 实际边框宽。边框不显示时为0。 + /// </summary> + public float runtimeBorderWidth { get { return NeedShowBorder() ? borderWidth : 0; } } + + /// <summary> + /// 是否需要显示边框。 + /// </summary> + public bool NeedShowBorder() + { + return borderWidth != 0 && !ChartHelper.IsClearColor(borderColor); + } + + public Color32 GetColor() + { + if (m_Opacity == 1 || m_Color.a == 0) + return m_Color; + + var color = m_Color; + color.a = (byte) (color.a * m_Opacity); + return color; + } + + public Color32 GetToColor() + { + if (m_Opacity == 1 || m_ToColor.a == 0) + return m_ToColor; + + var color = m_ToColor; + color.a = (byte) (color.a * m_Opacity); + return color; + } + + public Color32 GetColor0() + { + if (m_Opacity == 1 || m_Color0.a == 0) + return m_Color0; + + var color = m_Color0; + color.a = (byte) (color.a * m_Opacity); + return color; + } + + public Color32 GetColor(Color32 defaultColor) + { + var color = ChartHelper.IsClearColor(m_Color) ? defaultColor : m_Color; + + if (m_Opacity == 1 || color.a == 0) + return color; + + color.a = (byte) (color.a * m_Opacity); + return color; + } + + public Color32 GetColor0(Color32 defaultColor) + { + var color = ChartHelper.IsClearColor(m_Color0) ? defaultColor : m_Color0; + + if (m_Opacity == 1 || color.a == 0) + return color; + + color.a = (byte) (color.a * m_Opacity); + return color; + } + + public Color32 GetBorderColor(Color32 defaultColor) + { + var color = ChartHelper.IsClearColor(m_BorderColor) ? defaultColor : m_BorderColor; + + if (m_Opacity == 1 || color.a == 0) + return color; + + color.a = (byte) (color.a * m_Opacity); + return color; + } + + public Color32 GetBorderColor0(Color32 defaultColor) + { + var color = ChartHelper.IsClearColor(m_BorderColor0) ? defaultColor : m_BorderColor0; + + if (m_Opacity == 1 || color.a == 0) + return color; + + color.a = (byte) (color.a * m_Opacity); + return color; + } + + public bool IsNeedGradient() + { + return !ChartHelper.IsClearColor(m_ToColor) || !ChartHelper.IsClearColor(m_ToColor2); + } + + public Color32 GetGradientColor(float value, Color32 defaultColor) + { + if (!IsNeedGradient()) + return ChartConst.clearColor32; + + value = Mathf.Clamp01(value); + var startColor = ChartHelper.IsClearColor(m_Color) ? defaultColor : m_Color; + Color32 color; + + if (!ChartHelper.IsClearColor(m_ToColor2)) + { + if (value <= 0.5f) + color = Color32.Lerp(startColor, m_ToColor, 2 * value); + else + color = Color32.Lerp(m_ToColor, m_ToColor2, 2 * (value - 0.5f)); + } + else + { + color = Color32.Lerp(startColor, m_ToColor, value); + } + if (m_Opacity != 1) + { + color.a = (byte) (color.a * m_Opacity); + } + return color; + } + + public bool IsNeedCorner() + { + if (m_CornerRadius == null) return false; + foreach (var value in m_CornerRadius) + { + if (value != 0) return true; + } + return false; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/ItemStyle.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/ItemStyle.cs.meta new file mode 100644 index 0000000..83e8a6f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/ItemStyle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3ca9b30f9779c4a16b60cc21334828b0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/LevelStyle.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/LevelStyle.cs new file mode 100644 index 0000000..cdca241 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/LevelStyle.cs @@ -0,0 +1,41 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + [System.Serializable] + public class Level : ChildComponent + { + [SerializeField] private LabelStyle m_Label = new LabelStyle(); + [SerializeField] private LabelStyle m_UpperLabel = new LabelStyle(); + [SerializeField] private ItemStyle m_ItemStyle = new ItemStyle(); + /// <summary> + /// 文本标签样式。 + /// </summary> + public LabelStyle label { get { return m_Label; } } + /// <summary> + /// 上方的文本标签样式。 + /// </summary> + public LabelStyle upperLabel { get { return m_UpperLabel; } } + /// <summary> + /// 数据项样式。 + /// </summary> + public ItemStyle itemStyle { get { return m_ItemStyle; } } + } + + [System.Serializable] + public class LevelStyle : ChildComponent + { + [SerializeField] private bool m_Show = false; + [SerializeField] private List<Level> m_Levels = new List<Level>() { new Level() }; + + /// <summary> + /// 是否启用LevelStyle + /// </summary> + public bool show { get { return m_Show; } set { m_Show = value; } } + /// <summary> + /// 各层节点对应的配置。当enableLevels为true时生效,levels[0]对应的第一层的配置,levels[1]对应第二层,依次类推。当levels中没有对应层时用默认的设置。 + /// </summary> + public List<Level> levels { get { return m_Levels; } } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/LevelStyle.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/LevelStyle.cs.meta new file mode 100644 index 0000000..1193963 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/LevelStyle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3760e89d324d7413d95a2ac1d434a546 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/LineArrow.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/LineArrow.cs new file mode 100644 index 0000000..8b45aa8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/LineArrow.cs @@ -0,0 +1,63 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// </summary> + [Serializable] + public class LineArrow : ChildComponent, ISerieExtraComponent + { + public enum Position + { + /// <summary> + /// 末端箭头 + /// </summary> + End, + /// <summary> + /// 头端箭头 + /// </summary> + Start + } + + [SerializeField] private bool m_Show; + [SerializeField] private Position m_Position; + [SerializeField] + private ArrowStyle m_Arrow = new ArrowStyle() + { + width = 10, + height = 15, + offset = 0, + dent = 3 + }; + + /// <summary> + /// Whether to show the arrow. + /// |是否显示箭头。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetVerticesDirty(); } + } + /// <summary> + /// The position of arrow. + /// |箭头位置。 + /// </summary> + public Position position + { + get { return m_Position; } + set { if (PropertyUtil.SetStruct(ref m_Position, value)) SetVerticesDirty(); } + } + + /// <summary> + /// the arrow of line. + /// |箭头。 + /// </summary> + public ArrowStyle arrow + { + get { return m_Arrow; } + set { if (PropertyUtil.SetClass(ref m_Arrow, value)) SetVerticesDirty(); } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/LineArrow.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/LineArrow.cs.meta new file mode 100644 index 0000000..ee3425a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/LineArrow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8f2455acb3ba34409896bf03ddba593e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/LineStyle.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/LineStyle.cs new file mode 100644 index 0000000..d8909a6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/LineStyle.cs @@ -0,0 +1,238 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// The style of line. + /// |线条样式。 + /// 注: 修改 lineStyle 中的颜色不会影响图例颜色,如果需要图例颜色和折线图颜色一致,需修改 itemStyle.color,线条颜色默认也会取该颜色。 + /// toColor,toColor2可设置水平方向的渐变,如需要设置垂直方向的渐变,可使用VisualMap。 + /// </summary> + [System.Serializable] + public class LineStyle : ChildComponent, ISerieDataComponent + { + /// <summary> + /// 线的类型。 + /// </summary> + public enum Type + { + /// <summary> + /// 实线 + /// </summary> + Solid, + /// <summary> + /// 虚线 + /// </summary> + Dashed, + /// <summary> + /// 点线 + /// </summary> + Dotted, + /// <summary> + /// 点划线 + /// </summary> + DashDot, + /// <summary> + /// 双点划线 + /// </summary> + DashDotDot, + None, + } + + [SerializeField] private bool m_Show = true; + [SerializeField] private Type m_Type = Type.Solid; + [SerializeField] private Color32 m_Color; + [SerializeField] private Color32 m_ToColor; + [SerializeField] private Color32 m_ToColor2; + [SerializeField] private float m_Width = 0; + [SerializeField] private float m_Length = 0; + [SerializeField][Range(0, 1)] private float m_Opacity = 1; + + /// <summary> + /// Whether show line. + /// |是否显示线条。当作为子组件,它的父组件有参数控制是否显示时,改参数无效。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetVerticesDirty(); } + } + /// <summary> + /// the type of line. + /// |线的类型。 + /// </summary> + public Type type + { + get { return m_Type; } + set { if (PropertyUtil.SetStruct(ref m_Type, value)) SetVerticesDirty(); } + } + /// <summary> + /// the color of line, default use serie color. + /// |线的颜色。 + /// </summary> + public Color32 color + { + get { return m_Color; } + set { if (PropertyUtil.SetColor(ref m_Color, value)) SetVerticesDirty(); } + } + /// <summary> + /// the middle color of line, default use serie color. + /// |线的渐变颜色(需要水平方向渐变时)。 + /// </summary> + public Color32 toColor + { + get { return m_ToColor; } + set { if (PropertyUtil.SetColor(ref m_ToColor, value)) SetVerticesDirty(); } + } + /// <summary> + /// the end color of line, default use serie color. + /// |线的渐变颜色2(需要水平方向三个渐变色的渐变时)。 + /// </summary> + public Color32 toColor2 + { + get { return m_ToColor2; } + set { if (PropertyUtil.SetColor(ref m_ToColor2, value)) SetVerticesDirty(); } + } + /// <summary> + /// the width of line. + /// |线宽。 + /// </summary> + public float width + { + get { return m_Width; } + set { if (PropertyUtil.SetStruct(ref m_Width, value)) SetVerticesDirty(); } + } + /// <summary> + /// the length of line. + /// |线长。 + /// </summary> + public float length + { + get { return m_Length; } + set { if (PropertyUtil.SetStruct(ref m_Length, value)) SetVerticesDirty(); } + } + /// <summary> + /// Opacity of the line. Supports value from 0 to 1, and the line will not be drawn when set to 0. + /// |线的透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。 + /// </summary> + public float opacity + { + get { return m_Opacity; } + set { if (PropertyUtil.SetStruct(ref m_Opacity, value)) SetVerticesDirty(); } + } + + public LineStyle() + { } + + public LineStyle(float width) + { + this.width = width; + } + + public LineStyle(LineStyle.Type type) + { + this.type = type; + } + + public LineStyle(LineStyle.Type type, float width) + { + this.type = type; + this.width = width; + } + + public LineStyle Clone() + { + var lineStyle = new LineStyle(); + lineStyle.show = show; + lineStyle.type = type; + lineStyle.color = color; + lineStyle.toColor = toColor; + lineStyle.toColor2 = toColor2; + lineStyle.width = width; + lineStyle.opacity = opacity; + return lineStyle; + } + + public void Copy(LineStyle lineStyle) + { + show = lineStyle.show; + type = lineStyle.type; + color = lineStyle.color; + toColor = lineStyle.toColor; + toColor2 = lineStyle.toColor2; + width = lineStyle.width; + opacity = lineStyle.opacity; + } + + public Color32 GetColor() + { + if (m_Opacity == 1) + return m_Color; + + var color = m_Color; + color.a = (byte) (color.a * m_Opacity); + return color; + } + + public bool IsNeedGradient() + { + return !ChartHelper.IsClearColor(m_ToColor) || !ChartHelper.IsClearColor(m_ToColor2); + } + + public Color32 GetGradientColor(float value, Color32 defaultColor) + { + var color = ChartConst.clearColor32; + if (!IsNeedGradient()) + return color; + + value = Mathf.Clamp01(value); + var startColor = ChartHelper.IsClearColor(m_Color) ? defaultColor : m_Color; + + if (!ChartHelper.IsClearColor(m_ToColor2)) + { + if (value <= 0.5f) + color = Color32.Lerp(startColor, m_ToColor, 2 * value); + else + color = Color32.Lerp(m_ToColor, m_ToColor2, 2 * (value - 0.5f)); + } + else + { + color = Color32.Lerp(startColor, m_ToColor, value); + } + if (m_Opacity != 1) + { + color.a = (byte) (color.a * m_Opacity); + } + return color; + } + + public Type GetType(Type themeType) + { + return type == Type.None ? themeType : type; + } + + public float GetWidth(float themeWidth) + { + return width == 0 ? themeWidth : width; + } + + public float GetLength(float themeLength) + { + return length == 0 ? themeLength : length; + } + + public Color32 GetColor(Color32 themeColor) + { + if (!ChartHelper.IsClearColor(color)) + { + return GetColor(); + } + else + { + var color = themeColor; + color.a = (byte) (color.a * opacity); + return color; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/LineStyle.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/LineStyle.cs.meta new file mode 100644 index 0000000..2856b89 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/LineStyle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 092f08a2daa4b4013a72ffc3c9a18f85 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/Location.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/Location.cs new file mode 100644 index 0000000..819e356 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/Location.cs @@ -0,0 +1,321 @@ +using System; +using UnityEngine; +#if dUI_TextMeshPro +using TMPro; +#endif + +namespace XCharts.Runtime +{ + /// <summary> + /// Location type. Quick to set the general location. + /// |位置类型。通过Align快速设置大体位置,再通过left,right,top,bottom微调具体位置。 + /// </summary> + [Serializable] + public class Location : ChildComponent, IPropertyChanged + { + /// <summary> + /// 对齐方式 + /// </summary> + public enum Align + { + TopLeft, + TopRight, + TopCenter, + BottomLeft, + BottomRight, + BottomCenter, + Center, + CenterLeft, + CenterRight + } + + [SerializeField] private Align m_Align = Align.TopCenter; + [SerializeField] private float m_Left; + [SerializeField] private float m_Right; + [SerializeField] private float m_Top; + [SerializeField] private float m_Bottom; + + private TextAnchor m_TextAlignment; +#if dUI_TextMeshPro + private TextAlignmentOptions m_TMPTextAlignment; +#endif + private Vector2 m_AnchorMin; + private Vector2 m_AnchorMax; + private Vector2 m_Pivot; + + /// <summary> + /// 对齐方式。 + /// </summary> + public Align align + { + get { return m_Align; } + set { if (PropertyUtil.SetStruct(ref m_Align, value)) { SetComponentDirty(); UpdateAlign(); } } + } + /// <summary> + /// Distance between component and the left side of the container. + /// |离容器左侧的距离。 + /// </summary> + public float left + { + get { return m_Left; } + set { if (PropertyUtil.SetStruct(ref m_Left, value)) { SetComponentDirty(); UpdateAlign(); } } + } + /// <summary> + /// Distance between component and the left side of the container. + /// |离容器右侧的距离。 + /// </summary> + public float right + { + get { return m_Right; } + set { if (PropertyUtil.SetStruct(ref m_Right, value)) { SetComponentDirty(); UpdateAlign(); } } + } + /// <summary> + /// Distance between component and the left side of the container. + /// |离容器上侧的距离。 + /// </summary> + public float top + { + get { return m_Top; } + set { if (PropertyUtil.SetStruct(ref m_Top, value)) { SetComponentDirty(); UpdateAlign(); } } + } + /// <summary> + /// Distance between component and the left side of the container. + /// |离容器下侧的距离。 + /// </summary> + public float bottom + { + get { return m_Bottom; } + set { if (PropertyUtil.SetStruct(ref m_Bottom, value)) { SetComponentDirty(); UpdateAlign(); } } + } + + /// <summary> + /// the anchor of text. + /// |Location对应的Anchor锚点 + /// </summary> + /// <value></value> + public TextAnchor runtimeTextAlignment { get { return m_TextAlignment; } } + +#if dUI_TextMeshPro + public TextAlignmentOptions runtimeTMPTextAlignment { get { return m_TMPTextAlignment; } } +#endif + /// <summary> + /// the minimum achor. + /// |Location对应的anchorMin。 + /// </summary> + public Vector2 runtimeAnchorMin { get { return m_AnchorMin; } } + /// <summary> + /// the maximun achor. + /// |Location对应的anchorMax. + /// |</summary> + public Vector2 runtimeAnchorMax { get { return m_AnchorMax; } } + /// <summary> + /// the povot. + /// |Loation对应的中心点。 + /// </summary> + public Vector2 runtimePivot { get { return m_Pivot; } } + public float runtimeLeft { get; private set; } + public float runtimeRight { get; private set; } + public float runtimeBottom { get; private set; } + public float runtimeTop { get; private set; } + + public static Location defaultLeft + { + get + { + return new Location() + { + align = Align.CenterLeft, + left = 0.03f, + right = 0, + top = 0, + bottom = 0 + }; + } + } + + public static Location defaultRight + { + get + { + return new Location() + { + align = Align.CenterRight, + left = 0, + right = 0.03f, + top = 0, + bottom = 0 + }; + } + } + + public static Location defaultTop + { + get + { + return new Location() + { + align = Align.TopCenter, + left = 0, + right = 0, + top = 0.03f, + bottom = 0 + }; + } + } + + public static Location defaultBottom + { + get + { + return new Location() + { + align = Align.BottomCenter, + left = 0, + right = 0, + top = 0, + bottom = 0.03f + }; + } + } + + private void UpdateAlign() + { + switch (m_Align) + { + case Align.BottomCenter: + m_TextAlignment = TextAnchor.LowerCenter; +#if dUI_TextMeshPro + m_TMPTextAlignment = TextAlignmentOptions.Bottom; +#endif + m_AnchorMin = new Vector2(0.5f, 0); + m_AnchorMax = new Vector2(0.5f, 0); + m_Pivot = new Vector2(0.5f, 0); + break; + case Align.BottomLeft: + m_TextAlignment = TextAnchor.LowerLeft; +#if dUI_TextMeshPro + m_TMPTextAlignment = TextAlignmentOptions.BottomLeft; +#endif + m_AnchorMin = new Vector2(0, 0); + m_AnchorMax = new Vector2(0, 0); + m_Pivot = new Vector2(0, 0); + break; + case Align.BottomRight: + m_TextAlignment = TextAnchor.LowerRight; +#if dUI_TextMeshPro + m_TMPTextAlignment = TextAlignmentOptions.BottomRight; +#endif + m_AnchorMin = new Vector2(1, 0); + m_AnchorMax = new Vector2(1, 0); + m_Pivot = new Vector2(1, 0); + break; + case Align.Center: + m_TextAlignment = TextAnchor.MiddleCenter; +#if dUI_TextMeshPro + m_TMPTextAlignment = TextAlignmentOptions.Center; +#endif + m_AnchorMin = new Vector2(0.5f, 0.5f); + m_AnchorMax = new Vector2(0.5f, 0.5f); + m_Pivot = new Vector2(0.5f, 0.5f); + break; + case Align.CenterLeft: + m_TextAlignment = TextAnchor.MiddleLeft; +#if dUI_TextMeshPro + m_TMPTextAlignment = TextAlignmentOptions.Left; +#endif + m_AnchorMin = new Vector2(0, 0.5f); + m_AnchorMax = new Vector2(0, 0.5f); + m_Pivot = new Vector2(0, 0.5f); + break; + case Align.CenterRight: + m_TextAlignment = TextAnchor.MiddleRight; +#if dUI_TextMeshPro + m_TMPTextAlignment = TextAlignmentOptions.Right; +#endif + m_AnchorMin = new Vector2(1, 0.5f); + m_AnchorMax = new Vector2(1, 0.5f); + m_Pivot = new Vector2(1, 0.5f); + break; + case Align.TopCenter: + m_TextAlignment = TextAnchor.UpperCenter; +#if dUI_TextMeshPro + m_TMPTextAlignment = TextAlignmentOptions.Top; +#endif + m_AnchorMin = new Vector2(0.5f, 1); + m_AnchorMax = new Vector2(0.5f, 1); + m_Pivot = new Vector2(0.5f, 1); + break; + case Align.TopLeft: + m_TextAlignment = TextAnchor.UpperLeft; +#if dUI_TextMeshPro + m_TMPTextAlignment = TextAlignmentOptions.TopLeft; +#endif + m_AnchorMin = new Vector2(0, 1); + m_AnchorMax = new Vector2(0, 1); + m_Pivot = new Vector2(0, 1); + break; + case Align.TopRight: + m_TextAlignment = TextAnchor.UpperRight; +#if dUI_TextMeshPro + m_TMPTextAlignment = TextAlignmentOptions.TopRight; +#endif + m_AnchorMin = new Vector2(1, 1); + m_AnchorMax = new Vector2(1, 1); + m_Pivot = new Vector2(1, 1); + break; + default: + break; + } + } + + public void UpdateRuntimeData(float chartWidth, float chartHeight) + { + runtimeLeft = left <= 1 ? left * chartWidth : left; + runtimeRight = right <= 1 ? right * chartWidth : right; + runtimeTop = top <= 1 ? top * chartHeight : top; + runtimeBottom = bottom <= 1 ? bottom * chartHeight : bottom; + } + + /// <summary> + /// 返回在坐标系中的具体位置 + /// </summary> + /// <param name="chartWidth"></param> + /// <param name="chartHeight"></param> + /// <returns></returns> + public Vector3 GetPosition(float chartWidth, float chartHeight) + { + UpdateRuntimeData(chartWidth, chartHeight); + switch (align) + { + case Align.BottomCenter: + return new Vector3(chartWidth / 2, runtimeBottom); + case Align.BottomLeft: + return new Vector3(runtimeLeft, runtimeBottom); + case Align.BottomRight: + return new Vector3(chartWidth - runtimeRight, runtimeBottom); + case Align.Center: + return new Vector3(chartWidth / 2, chartHeight / 2); + case Align.CenterLeft: + return new Vector3(runtimeLeft, chartHeight / 2); + case Align.CenterRight: + return new Vector3(chartWidth - runtimeRight, chartHeight / 2); + case Align.TopCenter: + return new Vector3(chartWidth / 2, chartHeight - runtimeTop); + case Align.TopLeft: + return new Vector3(runtimeLeft, chartHeight - runtimeTop); + case Align.TopRight: + return new Vector3(chartWidth - runtimeRight, chartHeight - runtimeTop); + default: + return Vector2.zero; + } + } + + /// <summary> + /// 属性变更时更新textAnchor,minAnchor,maxAnchor,pivot + /// </summary> + public void OnChanged() + { + UpdateAlign(); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/Location.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/Location.cs.meta new file mode 100644 index 0000000..b209c7c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/Location.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7922ce86a6b0f4813a7f34e004b92e9a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/SerieSymbl.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/SerieSymbl.cs new file mode 100644 index 0000000..34865a8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/SerieSymbl.cs @@ -0,0 +1,243 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + /// <summary> + /// The way to get serie symbol size. + /// |获取标记图形大小的方式。 + /// </summary> + public enum SymbolSizeType + { + /// <summary> + /// Specify constant for symbol size. + /// |自定义大小。 + /// </summary> + Custom, + /// <summary> + /// Specify the dataIndex and dataScale to calculate symbol size. + /// |通过 dataIndex 从数据中获取,再乘以一个比例系数 dataScale 。 + /// </summary> + FromData, + /// <summary> + /// Specify function for symbol size. + /// |通过委托函数获取。 + /// </summary> + Function, + } + + /// <summary> + /// 系列数据项的标记的图形 + /// </summary> + [System.Serializable] + public class SerieSymbol : SymbolStyle, ISerieDataComponent + { + [SerializeField] private SymbolSizeType m_SizeType = SymbolSizeType.Custom; + [SerializeField] private float m_SelectedSize = 0f; + [SerializeField] private int m_DataIndex = 1; + [SerializeField] private float m_DataScale = 1; + [SerializeField] private float m_SelectedDataScale = 1.5f; + [SerializeField] private SymbolSizeFunction m_SizeFunction; + [SerializeField] private SymbolSizeFunction m_SelectedSizeFunction; + [SerializeField] private int m_StartIndex; + [SerializeField] private int m_Interval; + [SerializeField] private bool m_ForceShowLast = false; + [SerializeField] private bool m_Repeat = false; + + public override void Reset() + { + base.Reset(); + m_SizeType = SymbolSizeType.Custom; + m_SelectedSize = 0f; + m_DataIndex = 1; + m_DataScale = 1; + m_SelectedDataScale = 1.5f; + m_SizeFunction = null; + m_SelectedSizeFunction = null; + m_StartIndex = 0; + m_Interval = 0; + m_ForceShowLast = false; + m_Repeat = false; + } + + /// <summary> + /// the type of symbol size. + /// |标记图形的大小获取方式。 + /// </summary> + public SymbolSizeType sizeType + { + get { return m_SizeType; } + set { if (PropertyUtil.SetStruct(ref m_SizeType, value)) SetVerticesDirty(); } + } + /// <summary> + /// the size of selected symbol. + /// |被选中的标记的大小。 + /// </summary> + public float selectedSize + { + get { return m_SelectedSize; } + set { if (PropertyUtil.SetStruct(ref m_SelectedSize, value)) SetVerticesDirty(); } + } + /// <summary> + /// whitch data index is when the sizeType assined as FromData. + /// |当sizeType指定为FromData时,指定的数据源索引。 + /// </summary> + public int dataIndex + { + get { return m_DataIndex; } + set { if (PropertyUtil.SetStruct(ref m_DataIndex, value)) SetVerticesDirty(); } + } + /// <summary> + /// the scale of data when sizeType assined as FromData. + /// |当sizeType指定为FromData时,指定的倍数系数。 + /// </summary> + public float dataScale + { + get { return m_DataScale; } + set { if (PropertyUtil.SetStruct(ref m_DataScale, value)) SetVerticesDirty(); } + } + /// <summary> + /// the scale of selected data when sizeType assined as FromData. + /// |当sizeType指定为FromData时,指定的高亮倍数系数。 + /// </summary> + public float selectedDataScale + { + get { return m_SelectedDataScale; } + set { if (PropertyUtil.SetStruct(ref m_SelectedDataScale, value)) SetVerticesDirty(); } + } + /// <summary> + /// the function of size when sizeType assined as Function. + /// |当sizeType指定为Function时,指定的委托函数。 + /// </summary> + public SymbolSizeFunction sizeFunction + { + get { return m_SizeFunction; } + set { if (PropertyUtil.SetClass(ref m_SizeFunction, value)) SetVerticesDirty(); } + } + /// <summary> + /// the function of size when sizeType assined as Function. + /// |当sizeType指定为Function时,指定的高亮委托函数。 + /// </summary> + public SymbolSizeFunction selectedSizeFunction + { + get { return m_SelectedSizeFunction; } + set { if (PropertyUtil.SetClass(ref m_SelectedSizeFunction, value)) SetVerticesDirty(); } + } + /// <summary> + /// the index start to show symbol. + /// |开始显示图形标记的索引。 + /// </summary> + public int startIndex + { + get { return m_StartIndex; } + set { if (PropertyUtil.SetStruct(ref m_StartIndex, value)) SetVerticesDirty(); } + } + /// <summary> + /// the interval of show symbol. + /// |显示图形标记的间隔。0表示显示所有标签,1表示隔一个隔显示一个标签,以此类推。 + /// </summary> + public int interval + { + get { return m_Interval; } + set { if (PropertyUtil.SetStruct(ref m_Interval, value)) SetVerticesDirty(); } + } + /// <summary> + /// whether to show the last symbol. + /// |是否强制显示最后一个图形标记。 + /// </summary> + public bool forceShowLast + { + get { return m_ForceShowLast; } + set { if (PropertyUtil.SetStruct(ref m_ForceShowLast, value)) SetVerticesDirty(); } + } + /// <summary> + /// 图形是否重复。 + /// </summary> + public bool repeat + { + get { return m_Repeat; } + set { if (PropertyUtil.SetStruct(ref m_Repeat, value)) SetAllDirty(); } + } + /// <summary> + /// 根据指定的sizeType获得标记的大小 + /// </summary> + /// <param name="data"></param> + /// <returns></returns> + public float GetSize(List<double> data, float themeSize) + { + switch (m_SizeType) + { + case SymbolSizeType.Custom: + return size == 0 ? themeSize : size; + case SymbolSizeType.FromData: + if (data != null && dataIndex >= 0 && dataIndex < data.Count) + { + return (float) data[dataIndex] * m_DataScale; + } + else + { + return size == 0 ? themeSize : size; + } + case SymbolSizeType.Function: + if (data != null && sizeFunction != null) return sizeFunction(data); + else return size == 0 ? themeSize : size; + default: + return size == 0 ? themeSize : size; + } + } + + /// <summary> + /// 根据sizeType获得高亮时的标记大小 + /// </summary> + /// <param name="data"></param> + /// <returns></returns> + public float GetSelectedSize(List<double> data, float themeSelectedSize) + { + switch (m_SizeType) + { + case SymbolSizeType.Custom: + + return selectedSize == 0 ? themeSelectedSize : selectedSize; + + case SymbolSizeType.FromData: + + if (data != null && dataIndex >= 0 && dataIndex < data.Count) + { + return (float) data[dataIndex] * m_SelectedDataScale; + } + else + { + return selectedSize == 0 ? themeSelectedSize : selectedSize; + } + + case SymbolSizeType.Function: + + if (data != null && selectedSizeFunction != null) + return selectedSizeFunction(data); + else + return selectedSize == 0 ? themeSelectedSize : selectedSize; + + default: + return selectedSize == 0 ? themeSelectedSize : selectedSize; + } + } + + public bool ShowSymbol(int dataIndex, int dataCount) + { + if (!show) + return false; + + if (dataIndex < startIndex) + return false; + + if (m_Interval <= 0) + return true; + + if (m_ForceShowLast && dataIndex == dataCount - 1) + return true; + + return (dataIndex - startIndex) % (m_Interval + 1) == 0; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/SerieSymbl.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/SerieSymbl.cs.meta new file mode 100644 index 0000000..ccbf533 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/SerieSymbl.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cd2852f4c46ae4dbd8c105e62dcce9a2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/StageColor.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/StageColor.cs new file mode 100644 index 0000000..592d971 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/StageColor.cs @@ -0,0 +1,26 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + [System.Serializable] + public class StageColor : ChildComponent + { + [SerializeField] private float m_Percent; + [SerializeField] private Color32 m_Color; + /// <summary> + /// 结束位置百分比。 + /// </summary> + public float percent { get { return m_Percent; } set { m_Percent = value; } } + /// <summary> + /// 颜色。 + /// </summary> + public Color32 color { get { return m_Color; } set { m_Color = value; } } + + public StageColor(float percent, Color32 color) + { + m_Percent = percent; + m_Color = color; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/StageColor.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/StageColor.cs.meta new file mode 100644 index 0000000..4be512d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/StageColor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d40f9dfbc90e744858784753e0d7109d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/SymbolStyle.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/SymbolStyle.cs new file mode 100644 index 0000000..3b8677a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/SymbolStyle.cs @@ -0,0 +1,191 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + /// <summary> + /// the type of symbol. + /// |标记图形的类型。 + /// </summary> + public enum SymbolType + { + /// <summary> + /// 不显示标记。 + /// </summary> + None, + /// <summary> + /// 自定义标记。 + /// </summary> + Custom, + /// <summary> + /// 圆形。 + /// </summary> + Circle, + /// <summary> + /// 空心圆。 + /// </summary> + EmptyCircle, + /// <summary> + /// 正方形。可通过设置`itemStyle`的`cornerRadius`变成圆角矩形。 + /// </summary> + Rect, + /// <summary> + /// 空心正方形。 + /// </summary> + EmptyRect, + /// <summary> + /// 三角形。 + /// </summary> + Triangle, + /// <summary> + /// 空心三角形。 + /// </summary> + EmptyTriangle, + /// <summary> + /// 菱形。 + /// </summary> + Diamond, + /// <summary> + /// 空心菱形。 + /// </summary> + EmptyDiamond, + /// <summary> + /// 箭头。 + /// </summary> + Arrow, + /// <summary> + /// 空心箭头。 + /// </summary> + EmptyArrow + } + + /// <summary> + /// 系列数据项的标记的图形 + /// </summary> + [System.Serializable] + public class SymbolStyle : ChildComponent + { + [SerializeField] protected bool m_Show = true; + [SerializeField] protected SymbolType m_Type = SymbolType.EmptyCircle; + [SerializeField] protected float m_Size = 0f; + [SerializeField] protected float m_Gap = 0; + [SerializeField] protected float m_Width = 0f; + [SerializeField] protected float m_Height = 0f; + [SerializeField] protected Vector2 m_Offset = Vector2.zero; + [SerializeField] protected Sprite m_Image; + [SerializeField] protected Image.Type m_ImageType; + [SerializeField] protected Color32 m_Color; + + public virtual void Reset() + { + m_Show = false; + m_Type = SymbolType.EmptyCircle; + m_Size = 0f; + m_Gap = 0; + m_Width = 0f; + m_Height = 0f; + m_Offset = Vector2.zero; + m_Image = null; + m_ImageType = Image.Type.Simple; + } + + /// <summary> + /// Whether the symbol is showed. + /// |是否显示标记。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetAllDirty(); } + } + /// <summary> + /// the type of symbol. + /// |标记类型。 + /// </summary> + public SymbolType type + { + get { return m_Type; } + set { if (PropertyUtil.SetStruct(ref m_Type, value)) SetVerticesDirty(); } + } + /// <summary> + /// the size of symbol. + /// |标记的大小。 + /// </summary> + public float size + { + get { return m_Size; } + set { if (PropertyUtil.SetStruct(ref m_Size, value)) SetVerticesDirty(); } + } + /// <summary> + /// the gap of symbol and line segment. + /// |图形标记和线条的间隙距离。 + /// </summary> + public float gap + { + get { return m_Gap; } + set { if (PropertyUtil.SetStruct(ref m_Gap, value)) SetVerticesDirty(); } + } + /// <summary> + /// 图形的宽。 + /// </summary> + public float width + { + get { return m_Width; } + set { if (PropertyUtil.SetStruct(ref m_Width, value)) SetAllDirty(); } + } + /// <summary> + /// 图形的高。 + /// </summary> + public float height + { + get { return m_Height; } + set { if (PropertyUtil.SetStruct(ref m_Height, value)) SetAllDirty(); } + } + /// <summary> + /// 自定义的标记图形。 + /// </summary> + public Sprite image + { + get { return m_Image; } + set { if (PropertyUtil.SetClass(ref m_Image, value)) SetAllDirty(); } + } + /// <summary> + /// the fill type of image. + /// |图形填充类型。 + /// </summary> + public Image.Type imageType + { + get { return m_ImageType; } + set { if (PropertyUtil.SetStruct(ref m_ImageType, value)) SetAllDirty(); } + } + /// <summary> + /// 图形的偏移。 + /// </summary> + public Vector2 offset + { + get { return m_Offset; } + set { if (PropertyUtil.SetStruct(ref m_Offset, value)) SetAllDirty(); } + } + /// <summary> + /// 图形的颜色。 + /// </summary> + public Color32 color + { + get { return m_Color; } + set { if (PropertyUtil.SetStruct(ref m_Color, value)) SetAllDirty(); } + } + public Vector3 offset3 { get { return new Vector3(m_Offset.x, m_Offset.y, 0); } } + private List<float> m_AnimationSize = new List<float>() { 0, 5, 10 }; + /// <summary> + /// the setting for effect scatter. + /// |带有涟漪特效动画的散点图的动画参数。 + /// </summary> + public List<float> animationSize { get { return m_AnimationSize; } } + + public Color32 GetColor(Color32 defaultColor) + { + return ChartHelper.IsClearColor(m_Color) ? defaultColor : m_Color; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/SymbolStyle.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/SymbolStyle.cs.meta new file mode 100644 index 0000000..5913032 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/SymbolStyle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 837d37f4d6f614b38bef9f075a64b6dc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/TextLimit.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/TextLimit.cs new file mode 100644 index 0000000..0d27623 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/TextLimit.cs @@ -0,0 +1,150 @@ +using System; +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + /// <summary> + /// Text character limitation and adaptation component. When the length of the text exceeds the set length, + /// it is cropped and suffixes are appended to the end.Only valid in the category axis. + /// |文本字符限制和自适应。当文本长度超过设定的长度时进行裁剪,并将后缀附加在最后。 + /// 只在类目轴中有效。 + /// </summary> + [Serializable] + public class TextLimit : ChildComponent + { + [SerializeField] private bool m_Enable = false; + [SerializeField] private float m_MaxWidth = 0; + [SerializeField] private float m_Gap = 1; + [SerializeField] private string m_Suffix = "..."; + + /// <summary> + /// Whether to enable text limit. + /// |是否启用文本自适应。 + /// [default:true] + /// </summary> + public bool enable + { + get { return m_Enable; } + set { if (PropertyUtil.SetStruct(ref m_Enable, value)) SetComponentDirty(); } + } + /// <summary> + /// Set the maximum width. A default of 0 indicates automatic fetch; otherwise, custom. + /// |Clipping occurs when the width of the text is greater than this value. + /// |设定最大宽度。默认为0表示自动获取,否则表示自定义。当文本的宽度大于该值进行裁剪。 + /// </summary> + public float maxWidth + { + get { return m_MaxWidth; } + set { if (PropertyUtil.SetStruct(ref m_MaxWidth, value)) SetComponentDirty(); } + } + /// <summary> + /// White pixel distance at both ends. + /// |两边留白像素距离。 + /// [default:10f] + /// </summary> + public float gap + { + get { return m_Gap; } + set { if (PropertyUtil.SetStruct(ref m_Gap, value)) SetComponentDirty(); } + } + /// <summary> + /// Suffixes when the length exceeds. + /// |长度超出时的后缀。 + /// [default: "..."] + /// </summary> + public string suffix + { + get { return m_Suffix; } + set { if (PropertyUtil.SetClass(ref m_Suffix, value)) SetComponentDirty(); } + } + + private ChartText m_RelatedText; + private float m_RelatedTextWidth = 0; + + public TextLimit Clone() + { + var textLimit = new TextLimit(); + textLimit.enable = enable; + textLimit.maxWidth = maxWidth; + textLimit.gap = gap; + textLimit.suffix = suffix; + return textLimit; + } + + public void Copy(TextLimit textLimit) + { + enable = textLimit.enable; + maxWidth = textLimit.maxWidth; + gap = textLimit.gap; + suffix = textLimit.suffix; + } + + public void SetRelatedText(ChartText txt, float labelWidth) + { + m_RelatedText = txt; + m_RelatedTextWidth = labelWidth; + } + + public string GetLimitContent(string content) + { + float checkWidth = m_MaxWidth > 0 ? m_MaxWidth : m_RelatedTextWidth; + if (m_RelatedText == null || checkWidth <= 0) + { + return content; + } + else + { + if (m_Enable) + { + float len = m_RelatedText.GetPreferredWidth(content); + float suffixLen = m_RelatedText.GetPreferredWidth(suffix); + if (len >= checkWidth - m_Gap * 2) + { + return content.Substring(0, GetAdaptLength(content, suffixLen)) + suffix; + } + else + { + return content; + } + } + else + { + return content; + } + } + } + + private int GetAdaptLength(string content, float suffixLen) + { + int start = 0; + int middle = content.Length / 2; + int end = content.Length; + float checkWidth = m_MaxWidth > 0 ? m_MaxWidth : m_RelatedTextWidth; + + float limit = checkWidth - m_Gap * 2 - suffixLen; + if (limit < 0) + return 0; + + float len = 0; + while (len != limit && middle != start) + { + len = m_RelatedText.GetPreferredWidth(content.Substring(0, middle)); + if (len < limit) + { + start = middle; + } + else if (len > limit) + { + end = middle; + } + else + { + break; + } + middle = (start + end) / 2; + } + return middle; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/TextLimit.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/TextLimit.cs.meta new file mode 100644 index 0000000..da76507 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/TextLimit.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3f49509a5de044535b1dd3f192f7008c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/TextPadding.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/TextPadding.cs new file mode 100644 index 0000000..7031f4f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/TextPadding.cs @@ -0,0 +1,79 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// Settings related to text. + /// |文本的内边距设置。 + /// </summary> + [Serializable] + public class TextPadding : ChildComponent + { + [SerializeField] private bool m_Show = true; + [SerializeField] private float m_Top = 2; + [SerializeField] private float m_Right = 4; + [SerializeField] private float m_Left = 4; + [SerializeField] private float m_Bottom = 2; + + public TextPadding() { } + + public TextPadding(float top, float right, float bottom, float left) + { + SetPadding(top, right, bottom, left); + } + + public void SetPadding(float top, float right, float bottom, float left) + { + m_Top = top;; + m_Right = right; + m_Bottom = bottom; + m_Left = left; + } + /// <summary> + /// show padding. + /// 是否显示。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetComponentDirty(); } + } + /// <summary> + /// padding of top. + /// |顶部间距。 + /// </summary> + public float top + { + get { return m_Top; } + set { if (PropertyUtil.SetStruct(ref m_Top, value)) SetComponentDirty(); } + } + /// <summary> + /// padding of right. + /// |右部间距。 + /// </summary> + public float right + { + get { return m_Right; } + set { if (PropertyUtil.SetStruct(ref m_Right, value)) SetComponentDirty(); } + } + /// <summary> + /// padding of bottom. + /// |底部间距。 + /// </summary> + public float bottom + { + get { return m_Bottom; } + set { if (PropertyUtil.SetStruct(ref m_Bottom, value)) SetComponentDirty(); } + } + /// <summary> + /// padding of left. + /// |左边间距。 + /// </summary> + public float left + { + get { return m_Left; } + set { if (PropertyUtil.SetStruct(ref m_Left, value)) SetComponentDirty(); } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/TextPadding.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/TextPadding.cs.meta new file mode 100644 index 0000000..cff9472 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/TextPadding.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 407bba126a0854199a4686b44cc9407e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/TextStyle.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/TextStyle.cs new file mode 100644 index 0000000..d8c4179 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/TextStyle.cs @@ -0,0 +1,234 @@ +using System; +using UnityEngine; +#if dUI_TextMeshPro +using TMPro; +#endif + +namespace XCharts.Runtime +{ + /// <summary> + /// Settings related to text. + /// |文本的相关设置。 + /// </summary> + [Serializable] + public class TextStyle : ChildComponent + { + [SerializeField] private bool m_Show = true; + [SerializeField] private Font m_Font; + [SerializeField] private bool m_AutoWrap = false; + [SerializeField] private bool m_AutoAlign = true; + [SerializeField] private float m_Rotate = 0; + [SerializeField] private bool m_AutoColor = false; + [SerializeField] private Color m_Color = Color.clear; + [SerializeField] private int m_FontSize = 0; + [SerializeField] private FontStyle m_FontStyle = FontStyle.Normal; + [SerializeField] private float m_LineSpacing = 1f; + [SerializeField] private TextAnchor m_Alignment = TextAnchor.MiddleCenter; +#if dUI_TextMeshPro + [SerializeField] private TMP_FontAsset m_TMPFont; + [SerializeField] private FontStyles m_TMPFontStyle = FontStyles.Normal; + [SerializeField] private TextAlignmentOptions m_TMPAlignment = TextAlignmentOptions.Left; +#endif + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetComponentDirty(); } + } + /// <summary> + /// Rotation of text. + /// |文本的旋转。 + /// [default: `0f`] + /// </summary> + public float rotate + { + get { return m_Rotate; } + set { if (PropertyUtil.SetStruct(ref m_Rotate, value)) SetComponentDirty(); } + } + /// <summary> + /// 是否开启自动颜色。当开启时,会自动设置颜色。 + /// </summary> + public bool autoColor + { + get { return m_AutoColor; } + set { if (PropertyUtil.SetStruct(ref m_AutoColor, value)) SetAllDirty(); } + } + /// <summary> + /// the color of text. + /// |文本的颜色。 + /// [default: `Color.clear`] + /// </summary> + public Color color + { + get { return m_Color; } + set { if (PropertyUtil.SetColor(ref m_Color, value)) SetComponentDirty(); } + } + /// <summary> + /// the font of text. When `null`, the theme's font is used by default. + /// |文本字体。 + /// [default: null] + /// </summary> + public Font font + { + get { return m_Font; } + set { if (PropertyUtil.SetClass(ref m_Font, value)) SetComponentDirty(); } + } + /// <summary> + /// font size. + /// |文本字体大小。 + /// [default: 18] + /// </summary> + public int fontSize + { + get { return m_FontSize; } + set { if (PropertyUtil.SetStruct(ref m_FontSize, value)) SetComponentDirty(); } + } + /// <summary> + /// font style. + /// |文本字体的风格。 + /// [default: FontStyle.Normal] + /// </summary> + public FontStyle fontStyle + { + get { return m_FontStyle; } + set { if (PropertyUtil.SetStruct(ref m_FontStyle, value)) SetComponentDirty(); } + } + /// <summary> + /// text line spacing. + /// |行间距。 + /// [default: 1f] + /// </summary> + public float lineSpacing + { + get { return m_LineSpacing; } + set { if (PropertyUtil.SetStruct(ref m_LineSpacing, value)) SetComponentDirty(); } + } + /// <summary> + /// 是否自动换行。 + /// </summary> + public bool autoWrap + { + get { return m_AutoWrap; } + set { if (PropertyUtil.SetStruct(ref m_AutoWrap, value)) SetComponentDirty(); } + } + /// <summary> + /// 文本是否让系统自动选对齐方式。为false时才会用alignment。 + /// </summary> + public bool autoAlign + { + get { return m_AutoAlign; } + set { if (PropertyUtil.SetStruct(ref m_AutoAlign, value)) SetComponentDirty(); } + } + /// <summary> + /// 对齐方式。 + /// </summary> + public TextAnchor alignment + { + get { return m_Alignment; } + set { if (PropertyUtil.SetStruct(ref m_Alignment, value)) SetComponentDirty(); } + } +#if dUI_TextMeshPro + /// <summary> + /// the font of textmeshpro. + /// |TextMeshPro字体。 + /// </summary> + public TMP_FontAsset tmpFont + { + get { return m_TMPFont; } + set { if (PropertyUtil.SetClass(ref m_TMPFont, value)) SetComponentDirty(); } + } + /// <summary> + /// the font style of TextMeshPro. + /// |TextMeshPro字体类型。 + /// </summary> + public FontStyles tmpFontStyle + { + get { return m_TMPFontStyle; } + set { if (PropertyUtil.SetStruct(ref m_TMPFontStyle, value)) SetComponentDirty(); } + } + /// <summary> + /// the text alignment of TextMeshPro. + /// |TextMeshPro字体对齐方式。 + /// </summary> + public TextAlignmentOptions tmpFontStyle + { + get { return m_TMPAlignment; } + set { if (PropertyUtil.SetStruct(ref m_TMPAlignment, value)) SetComponentDirty(); } + } +#endif + + public TextStyle() { } + + public TextStyle(int fontSize) + { + this.fontSize = fontSize; + } + + public TextStyle(int fontSize, FontStyle fontStyle) + { + this.fontSize = fontSize; + this.fontStyle = fontStyle; + } + + public TextStyle(int fontSize, FontStyle fontStyle, Color color) + { + this.fontSize = fontSize; + this.fontStyle = fontStyle; + this.color = color; + } + + public TextStyle(int fontSize, FontStyle fontStyle, Color color, int rorate) + { + this.fontSize = fontSize; + this.fontStyle = fontStyle; + this.color = color; + this.rotate = rotate; + } + + public void Copy(TextStyle textStyle) + { + font = textStyle.font; + rotate = textStyle.rotate; + color = textStyle.color; + fontSize = textStyle.fontSize; + fontStyle = textStyle.fontStyle; + lineSpacing = textStyle.lineSpacing; + alignment = textStyle.alignment; + autoWrap = textStyle.autoWrap; + autoAlign = textStyle.autoAlign; +#if dUI_TextMeshPro + m_TMPFont = textStyle.tmpFont; + m_TMPFontStyle = textStyle.tmpFontStyle; +#endif + } + + public void UpdateAlignmentByLocation(Location location) + { +#if dUI_TextMeshPro + m_TMPAlignment = location.runtimeTMPTextAlignment; +#else + m_Alignment = location.runtimeTextAlignment; +#endif + } + + public Color GetColor(Color defaultColor) + { + if (ChartHelper.IsClearColor(color)) + return defaultColor; + else + return color; + } + + public int GetFontSize(ComponentTheme defaultTheme) + { + if (fontSize == 0) + return defaultTheme.fontSize; + else + return fontSize; + } + + public TextAnchor GetAlignment(TextAnchor defaultAlignment) + { + return m_AutoAlign ? defaultAlignment : alignment; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/TextStyle.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/TextStyle.cs.meta new file mode 100644 index 0000000..c429b3b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Child/TextStyle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e8f6b652968894ab195666501dda672c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment.meta new file mode 100644 index 0000000..27242bf --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 81fe767917cd3492a9f587f5d5e3a037 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/Comment.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/Comment.cs new file mode 100644 index 0000000..b2cb70a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/Comment.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// comment of chart. + /// |图表注解组件。 + /// </summary> + [Serializable] + [ComponentHandler(typeof(CommentHander), true)] + public class Comment : MainComponent + { + [SerializeField] private bool m_Show = true; + [SerializeField] private LabelStyle m_LabelStyle = new LabelStyle(); + [SerializeField] private CommentMarkStyle m_MarkStyle; + [SerializeField] private List<CommentItem> m_Items = new List<CommentItem>() { new CommentItem() }; + + /// <summary> + /// Set this to false to prevent the comment from showing. + /// |是否显示注解组件。 + /// </summary> + public bool show { get { return m_Show; } set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetComponentDirty(); } } + public List<CommentItem> items { get { return m_Items; } set { m_Items = value; SetComponentDirty(); } } + /// <summary> + /// The text style of all comments. + /// |所有组件的文本样式。 + /// </summary> + public LabelStyle labelStyle + { + get { return m_LabelStyle; } + set { if (PropertyUtil.SetClass(ref m_LabelStyle, value)) SetComponentDirty(); } + } + /// <summary> + /// The text style of all comments. + /// |所有组件的文本样式。 + /// </summary> + public CommentMarkStyle markStyle + { + get { return m_MarkStyle; } + set { if (PropertyUtil.SetClass(ref m_MarkStyle, value)) SetVerticesDirty(); } + } + + public LabelStyle GetLabelStyle(int index) + { + if (index >= 0 && index < items.Count) + { + var labelStyle = items[index].labelStyle; + if (labelStyle.show) return labelStyle; + } + return m_LabelStyle; + } + + public CommentMarkStyle GetMarkStyle(int index) + { + if (index >= 0 && index < items.Count) + { + var markStyle = items[index].markStyle; + if (markStyle.show) return markStyle; + } + return m_MarkStyle; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/Comment.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/Comment.cs.meta new file mode 100644 index 0000000..3a9af59 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/Comment.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ec99dd6b13a3b4e9789d007f23ffa499 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/CommentHander.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/CommentHander.cs new file mode 100644 index 0000000..f1c93ab --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/CommentHander.cs @@ -0,0 +1,71 @@ +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class CommentHander : MainComponentHandler<Comment> + { + private static readonly string s_CommentObjectName = "comment"; + + public override void InitComponent() + { + var comment = component; + comment.painter = null; + comment.refreshComponent = delegate() + { + var objName = ChartCached.GetComponentObjectName(comment); + var commentObj = ChartHelper.AddObject(objName, + chart.transform, + chart.chartMinAnchor, + chart.chartMaxAnchor, + chart.chartPivot, + chart.chartSizeDelta); + + commentObj.SetActive(comment.show); + commentObj.hideFlags = chart.chartHideFlags; + ChartHelper.HideAllObject(commentObj); + for (int i = 0; i < comment.items.Count; i++) + { + var item = comment.items[i]; + var labelStyle = comment.GetLabelStyle(i); + var label = ChartHelper.AddChartLabel(s_CommentObjectName + i, commentObj.transform, labelStyle, chart.theme.common, + GetContent(item), Color.clear, TextAnchor.MiddleCenter); + label.SetActive(comment.show && item.show); + label.SetPosition(item.position + labelStyle.offset); + } + }; + comment.refreshComponent(); + } + + private string GetContent(CommentItem item) + { + if (item.content.IndexOf("{") >= 0) + { + var content = item.content; + FormatterHelper.ReplaceContent(ref content, 0, item.labelStyle.numericFormatter, null, chart); + return content; + } + else + { + return item.content; + } + } + + public override void DrawTop(VertexHelper vh) + { + for (int i = 0; i < component.items.Count; i++) + { + var item = component.items[i]; + var markStyle = component.GetMarkStyle(i); + if (!markStyle.show) continue; + var color = ChartHelper.IsClearColor(markStyle.lineStyle.color) ? + chart.theme.axis.splitLineColor : + markStyle.lineStyle.color; + var width = markStyle.lineStyle.width == 0 ? 1 : markStyle.lineStyle.width; + UGL.DrawBorder(vh, item.markRect, width, color); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/CommentHander.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/CommentHander.cs.meta new file mode 100644 index 0000000..a1e30c8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/CommentHander.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 45362c4eed0e54d2880f2ed359ce9385 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/CommentItem.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/CommentItem.cs new file mode 100644 index 0000000..5a3a891 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/CommentItem.cs @@ -0,0 +1,55 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// comment of chart. + /// |注解项。 + /// </summary> + [Serializable] + public class CommentItem : ChildComponent + { + [SerializeField] private bool m_Show = true; + [SerializeField] private string m_Content = "comment"; + [SerializeField] private Vector3 m_Position; + [SerializeField] private Rect m_MarkRect; + [SerializeField] private CommentMarkStyle m_MarkStyle = new CommentMarkStyle() { show = false }; + [SerializeField] private LabelStyle m_LabelStyle = new LabelStyle() { show = false }; + + /// <summary> + /// Set this to false to prevent this comment item from showing. + /// |是否显示当前注解项。 + /// </summary> + public bool show { get { return m_Show; } set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetComponentDirty(); } } + /// <summary> + /// position of comment. + /// |注解项的位置坐标。 + /// </summary> + public Vector3 position { get { return m_Position; } set { if (PropertyUtil.SetStruct(ref m_Position, value)) SetComponentDirty(); } } + /// <summary> + /// content of comment. + /// |注解的文本内容。支持模板参数,可以参考Tooltip的itemFormatter。 + /// </summary> + public string content { get { return m_Content; } set { if (PropertyUtil.SetClass(ref m_Content, value)) SetComponentDirty(); } } + /// <summary> + /// the mark rect of comment. + /// |注解区域。 + /// </summary> + public Rect markRect { get { return m_MarkRect; } set { if (PropertyUtil.SetStruct(ref m_MarkRect, value)) SetVerticesDirty(); } } + /// <summary> + /// the mark rect style. + /// |注解标记区域样式。 + /// </summary> + public CommentMarkStyle markStyle { get { return m_MarkStyle; } set { if (PropertyUtil.SetClass(ref m_MarkStyle, value)) SetVerticesDirty(); } } + /// <summary> + /// The text style of all comments. + /// |注解项的文本样式。 + /// </summary> + public LabelStyle labelStyle + { + get { return m_LabelStyle; } + set { if (PropertyUtil.SetClass(ref m_LabelStyle, value)) SetComponentDirty(); } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/CommentItem.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/CommentItem.cs.meta new file mode 100644 index 0000000..29b3cd2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/CommentItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f082815b255e546019b6b43ac20bf4cb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/CommentMarkStyle.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/CommentMarkStyle.cs new file mode 100644 index 0000000..174c58a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/CommentMarkStyle.cs @@ -0,0 +1,27 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// the comment mark style. + /// |注解项区域样式。 + /// </summary> + [Serializable] + public class CommentMarkStyle : ChildComponent + { + [SerializeField] private bool m_Show = true; + [SerializeField] private LineStyle m_LineStyle; + + /// <summary> + /// Set this to false to prevent this comment item from showing. + /// |是否显示当前注解项。 + /// </summary> + public bool show { get { return m_Show; } set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetVerticesDirty(); } } + /// <summary> + /// line style of comment mark area. + /// |线条样式。 + /// </summary> + public LineStyle lineStyle { get { return m_LineStyle; } set { if (PropertyUtil.SetClass(ref m_LineStyle, value)) SetVerticesDirty(); } } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/CommentMarkStyle.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/CommentMarkStyle.cs.meta new file mode 100644 index 0000000..9e4c5dd --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Comment/CommentMarkStyle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 764734b787d72455782bf75bb38e465e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom.meta new file mode 100644 index 0000000..c51556f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a017b088954fb499eae363f4182fbeed +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoom.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoom.cs new file mode 100644 index 0000000..33692b6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoom.cs @@ -0,0 +1,687 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// DataZoom component is used for zooming a specific area, + /// which enables user to investigate data in detail, + /// or get an overview of the data, or get rid of outlier points. + /// |DataZoom 组件 用于区域缩放,从而能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响。 + /// </summary> + [System.Serializable] + [ComponentHandler(typeof(DataZoomHandler), true)] + public class DataZoom : MainComponent, IUpdateRuntimeData + { + /// <summary> + /// Generally dataZoom component zoom or roam coordinate system through data filtering + /// and set the windows of axes internally. + /// Its behaviours vary according to filtering mode settings. + /// |dataZoom 的运行原理是通过 数据过滤 来达到 数据窗口缩放 的效果。数据过滤模式的设置不同,效果也不同。 + /// </summary> + public enum FilterMode + { + /// <summary> + /// data that outside the window will be filtered, which may lead to some changes of windows of other axes. + /// For each data item, it will be filtered if one of the relevant dimensions is out of the window. + /// |当前数据窗口外的数据,被 过滤掉。即 会 影响其他轴的数据范围。每个数据项,只要有一个维度在数据窗口外,整个数据项就会被过滤掉。 + /// </summary> + Filter, + /// <summary> + /// data that outside the window will be filtered, which may lead to some changes of windows of other axes. + /// For each data item, it will be filtered only if all of the relevant dimensions are out of the same side of the window. + /// |当前数据窗口外的数据,被 过滤掉。即 会 影响其他轴的数据范围。每个数据项,只有当全部维度都在数据窗口同侧外部,整个数据项才会被过滤掉。 + /// </summary> + WeakFilter, + /// <summary> + /// data that outside the window will be set to NaN, which will not lead to changes of windows of other axes. + /// |当前数据窗口外的数据,被 设置为空。即 不会 影响其他轴的数据范围。 + /// </summary> + Empty, + /// <summary> + /// Do not filter data. + /// |不过滤数据,只改变数轴范围。 + /// </summary> + None + } + /// <summary> + /// The value type of start and end.取值类型 + /// </summary> + public enum RangeMode + { + //Value, + /// <summary> + /// percent value. + /// |百分比。 + /// </summary> + Percent + } + + [SerializeField] private bool m_Enable = true; + [SerializeField] private FilterMode m_FilterMode; + [SerializeField] private List<int> m_XAxisIndexs = new List<int>() { 0 }; + [SerializeField] private List<int> m_YAxisIndexs = new List<int>() { }; + [SerializeField] private bool m_SupportInside; + [SerializeField] private bool m_SupportInsideScroll = true; + [SerializeField] private bool m_SupportInsideDrag = true; + [SerializeField] private bool m_SupportSlider; + [SerializeField] private bool m_SupportSelect; + [SerializeField] private bool m_ShowDataShadow; + [SerializeField] private bool m_ShowDetail; + [SerializeField] private bool m_ZoomLock; + //[SerializeField] private bool m_Realtime; + [SerializeField] protected Color32 m_FillerColor; + [SerializeField] protected Color32 m_BorderColor; + [SerializeField] protected float m_BorderWidth; + [SerializeField] protected Color32 m_BackgroundColor; + [SerializeField] private float m_Left; + [SerializeField] private float m_Right; + [SerializeField] private float m_Top; + [SerializeField] private float m_Bottom; + [SerializeField] private RangeMode m_RangeMode; + [SerializeField] private float m_Start; + [SerializeField] private float m_End; + //[SerializeField] private float m_StartValue; + //[SerializeField] private float m_EndValue; + [SerializeField] private int m_MinShowNum = 1; + [Range(1f, 20f)] + [SerializeField] private float m_ScrollSensitivity = 1.1f; + [SerializeField] private Orient m_Orient = Orient.Horizonal; + [SerializeField] private LabelStyle m_LabelStyle = new LabelStyle(); + [SerializeField] private LineStyle m_LineStyle = new LineStyle(LineStyle.Type.Solid); + [SerializeField] private AreaStyle m_AreaStyle = new AreaStyle(); + + public DataZoomContext context = new DataZoomContext(); + + /// <summary> + /// Whether to show dataZoom. + /// |是否显示缩放区域。 + /// </summary> + public bool enable + { + get { return m_Enable; } + set { if (PropertyUtil.SetStruct(ref m_Enable, value)) SetVerticesDirty(); } + } + /// <summary> + /// The mode of data filter. + /// |数据过滤类型。 + /// </summary> + public FilterMode filterMode + { + get { return m_FilterMode; } + set { if (PropertyUtil.SetStruct(ref m_FilterMode, value)) SetVerticesDirty(); } + } + /// <summary> + /// Specify which xAxis is controlled by the dataZoom. + /// |控制的 x 轴索引列表。 + /// </summary> + public List<int> xAxisIndexs + { + get { return m_XAxisIndexs; } + set { if (PropertyUtil.SetClass(ref m_XAxisIndexs, value)) SetVerticesDirty(); } + } + /// <summary> + /// Specify which yAxis is controlled by the dataZoom. + /// |控制的 y 轴索引列表。 + /// </summary> + public List<int> yAxisIndexs + { + get { return m_YAxisIndexs; } + set { if (PropertyUtil.SetClass(ref m_YAxisIndexs, value)) SetVerticesDirty(); } + } + /// <summary> + /// Whether built-in support is supported. + /// Built into the coordinate system to allow the user to zoom in and out of the coordinate system by mouse dragging, + /// mouse wheel, finger swiping (on the touch screen). + /// |是否支持内置。内置于坐标系中,使用户可以在坐标系上通过鼠标拖拽、鼠标滚轮、手指滑动(触屏上)来缩放或漫游坐标系。 + /// </summary> + public bool supportInside + { + get { return m_SupportInside; } + set { if (PropertyUtil.SetStruct(ref m_SupportInside, value)) SetVerticesDirty(); } + } + /// <summary> + /// 是否支持坐标系内滚动 + /// </summary> + public bool supportInsideScroll + { + get { return m_SupportInsideScroll; } + set { if (PropertyUtil.SetStruct(ref m_SupportInsideScroll, value)) SetVerticesDirty(); } + } + /// <summary> + /// 是否支持坐标系内拖拽 + /// </summary> + public bool supportInsideDrag + { + get { return m_SupportInsideDrag; } + set { if (PropertyUtil.SetStruct(ref m_SupportInsideDrag, value)) SetVerticesDirty(); } + } + /// <summary> + /// Whether a slider is supported. There are separate sliders on which the user zooms or roams. + /// |是否支持滑动条。有单独的滑动条,用户在滑动条上进行缩放或漫游。 + /// </summary> + public bool supportSlider + { + get { return m_SupportSlider; } + set { if (PropertyUtil.SetStruct(ref m_SupportSlider, value)) SetVerticesDirty(); } + } + /// <summary> + /// 是否支持框选。提供一个选框进行数据区域缩放。 + /// </summary> + public bool supportSelect + { + get { return m_SupportSelect; } + set { if (PropertyUtil.SetStruct(ref m_SupportSelect, value)) SetVerticesDirty(); } + } + /// <summary> + /// Whether to show data shadow, to indicate the data tendency in brief. + /// |是否显示数据阴影。数据阴影可以简单地反应数据走势。 + /// </summary> + public bool showDataShadow + { + get { return m_ShowDataShadow; } + set { if (PropertyUtil.SetStruct(ref m_ShowDataShadow, value)) SetVerticesDirty(); } + } + /// <summary> + /// Whether to show detail, that is, show the detailed data information when dragging. + /// |是否显示detail,即拖拽时候显示详细数值信息。 + /// </summary> + public bool showDetail + { + get { return m_ShowDetail; } + set { if (PropertyUtil.SetStruct(ref m_ShowDetail, value)) SetVerticesDirty(); } + } + /// <summary> + /// Specify whether to lock the size of window (selected area). + /// |是否锁定选择区域(或叫做数据窗口)的大小。 + /// 如果设置为 true 则锁定选择区域的大小,也就是说,只能平移,不能缩放。 + /// </summary> + public bool zoomLock + { + get { return m_ZoomLock; } + set { if (PropertyUtil.SetStruct(ref m_ZoomLock, value)) SetVerticesDirty(); } + } + /// <summary> + /// Whether to show data shadow in dataZoom-silder component, to indicate the data tendency in brief. + /// |拖动时,是否实时更新系列的视图。如果设置为 false,则只在拖拽结束的时候更新。默认为true,暂不支持修改。 + /// </summary> + public bool realtime { get { return true; } } + /// <summary> + /// The background color of the component. + /// |组件的背景颜色。 + /// </summary> + public Color backgroundColor + { + get { return m_BackgroundColor; } + set { if (PropertyUtil.SetStruct(ref m_BackgroundColor, value)) SetVerticesDirty(); } + } + /// <summary> + /// the color of dataZoom data area. + /// |数据区域颜色。 + /// </summary> + public Color32 fillerColor + { + get { return m_FillerColor; } + set { if (PropertyUtil.SetColor(ref m_FillerColor, value)) SetVerticesDirty(); } + } + + /// <summary> + /// the color of dataZoom border. + /// |边框颜色。 + /// </summary> + public Color32 borderColor + { + get { return m_BorderColor; } + set { if (PropertyUtil.SetColor(ref m_BorderColor, value)) SetComponentDirty(); } + } + /// <summary> + /// 边框宽。 + /// </summary> + public float borderWidth + { + get { return m_BorderWidth; } + set { if (PropertyUtil.SetStruct(ref m_BorderWidth, value)) SetComponentDirty(); } + } + /// <summary> + /// Distance between dataZoom component and the bottom side of the container. + /// bottom value is a instant pixel value like 10 or float value [0-1]. + /// |组件离容器下侧的距离。 + /// </summary> + public float bottom + { + get { return m_Bottom; } + set { if (PropertyUtil.SetStruct(ref m_Bottom, value)) SetVerticesDirty(); } + } + /// <summary> + /// Distance between dataZoom component and the top side of the container. + /// top value is a instant pixel value like 10 or float value [0-1]. + /// |组件离容器上侧的距离。 + /// </summary> + public float top + { + get { return m_Top; } + set { if (PropertyUtil.SetStruct(ref m_Top, value)) SetVerticesDirty(); } + } + /// <summary> + /// Distance between dataZoom component and the left side of the container. + /// left value is a instant pixel value like 10 or float value [0-1]. + /// |组件离容器左侧的距离。 + /// </summary> + public float left + { + get { return m_Left; } + set { if (PropertyUtil.SetStruct(ref m_Left, value)) SetVerticesDirty(); } + } + /// <summary> + /// Distance between dataZoom component and the right side of the container. + /// right value is a instant pixel value like 10 or float value [0-1]. + /// |组件离容器右侧的距离。 + /// </summary> + public float right + { + get { return m_Right; } + set { if (PropertyUtil.SetStruct(ref m_Right, value)) SetVerticesDirty(); } + } + /// <summary> + /// Use absolute value or percent value in DataZoom.start and DataZoom.end. + /// |取绝对值还是百分比。 + /// </summary> + public RangeMode rangeMode + { + get { return m_RangeMode; } + set { if (PropertyUtil.SetStruct(ref m_RangeMode, value)) SetVerticesDirty(); } + } + /// <summary> + /// The start percentage of the window out of the data extent, in the range of 0 ~ 100. + /// |数据窗口范围的起始百分比。范围是:0 ~ 100。 + /// </summary> + public float start + { + get { return m_Start; } + set { m_Start = value; if (m_Start < 0) m_Start = 0; if (m_Start > 100) m_Start = 100; SetVerticesDirty(); } + } + /// <summary> + /// The end percentage of the window out of the data extent, in the range of 0 ~ 100. + /// |数据窗口范围的结束百分比。范围是:0 ~ 100。 + /// </summary> + public float end + { + get { return m_End; } + set { m_End = value; if (m_End < 0) m_End = 0; if (m_End > 100) m_End = 100; SetVerticesDirty(); } + } + /// <summary> + /// Minimum number of display data. Minimum number of data displayed when DataZoom is enlarged to maximum. + /// |最小显示数据个数。当DataZoom放大到最大时,最小显示的数据个数。 + /// </summary> + public int minShowNum + { + get { return m_MinShowNum; } + set { if (PropertyUtil.SetStruct(ref m_MinShowNum, value)) SetVerticesDirty(); } + } + /// <summary> + /// The sensitivity of dataZoom scroll. + /// The larger the number, the more sensitive it is. + /// |缩放区域组件的敏感度。值越高每次缩放所代表的数据越多。 + /// </summary> + public float scrollSensitivity + { + get { return m_ScrollSensitivity; } + set { if (PropertyUtil.SetStruct(ref m_ScrollSensitivity, value)) SetVerticesDirty(); } + } + /// <summary> + /// Specify whether the layout of dataZoom component is horizontal or vertical. What's more, + /// it indicates whether the horizontal axis or vertical axis is controlled by default in catesian coordinate system. + /// |布局方式是横还是竖。不仅是布局方式,对于直角坐标系而言,也决定了,缺省情况控制横向数轴还是纵向数轴。 + /// </summary> + public Orient orient + { + get { return m_Orient; } + set { if (PropertyUtil.SetStruct(ref m_Orient, value)) SetVerticesDirty(); } + } + /// <summary> + /// label style. + /// |文本标签格式。 + /// </summary> + public LabelStyle labelStyle + { + get { return m_LabelStyle; } + set { if (PropertyUtil.SetClass(ref m_LabelStyle, value)) SetComponentDirty(); } + } + /// <summary> + /// 阴影线条样式。 + /// </summary> + public LineStyle lineStyle + { + get { return m_LineStyle; } + set { if (PropertyUtil.SetClass(ref m_LineStyle, value)) SetComponentDirty(); } + } + /// <summary> + /// 阴影填充样式。 + /// </summary> + public AreaStyle areaStyle + { + get { return m_AreaStyle; } + set { if (PropertyUtil.SetClass(ref m_AreaStyle, value)) SetComponentDirty(); } + } + + class AxisIndexValueInfo + { + public double min; + public double max; + } + private Dictionary<int, AxisIndexValueInfo> m_XAxisIndexInfos = new Dictionary<int, AxisIndexValueInfo>(); + private Dictionary<int, AxisIndexValueInfo> m_YAxisIndexInfos = new Dictionary<int, AxisIndexValueInfo>(); + + /// <summary> + /// The start label. + /// |组件的开始信息文本。 + /// </summary> + private ChartLabel m_StartLabel { get; set; } + /// <summary> + /// The end label. + /// |组件的结束信息文本。 + /// </summary> + private ChartLabel m_EndLabel { get; set; } + + public override void SetDefaultValue() + { + supportInside = true; + supportSlider = true; + filterMode = FilterMode.None; + xAxisIndexs = new List<int>() { 0 }; + yAxisIndexs = new List<int>() { }; + showDataShadow = true; + showDetail = false; + zoomLock = false; + m_Bottom = 10; + m_Left = 10; + m_Right = 10; + m_Top = 0.9f; + rangeMode = RangeMode.Percent; + start = 30; + end = 70; + m_Orient = Orient.Horizonal; + m_ScrollSensitivity = 10; + m_LabelStyle = new LabelStyle(); + m_LineStyle = new LineStyle(LineStyle.Type.Solid) + { + opacity = 0.3f + }; + m_AreaStyle = new AreaStyle() + { + show = true, + opacity = 0.3f + }; + } + + /// <summary> + /// 给定的坐标是否在缩放区域内 + /// </summary> + /// <param name="pos"></param> + /// <param name="startX"></param> + /// <param name="width"></param> + /// <returns></returns> + public bool IsInZoom(Vector2 pos) + { + if (pos.x < context.x - 1 || pos.x > context.x + context.width + 1 || + pos.y < context.y - 1 || pos.y > context.y + context.height + 1) + { + return false; + } + return true; + } + + /// <summary> + /// 给定的坐标是否在选中区域内 + /// </summary> + /// <param name="pos"></param> + /// <returns></returns> + public bool IsInSelectedZoom(Vector2 pos) + { + switch (m_Orient) + { + case Orient.Horizonal: + var start = context.x + context.width * m_Start / 100; + var end = context.x + context.width * m_End / 100; + return ChartHelper.IsInRect(pos, start, end, context.y, context.y + context.height); + case Orient.Vertical: + start = context.y + context.height * m_Start / 100; + end = context.y + context.height * m_End / 100; + return ChartHelper.IsInRect(pos, context.x, context.x + context.width, start, end); + default: + return false; + } + } + + public bool IsInSelectedZoom(int totalIndex, int index, bool invert) + { + if (totalIndex <= 0) + return false; + + var tstart = invert ? 100 - end : start; + var tend = invert ? 100 - start : end; + var range = Mathf.RoundToInt(totalIndex * (tend - tstart) / 100); + var min = Mathf.FloorToInt(totalIndex * tstart / 100); + var max = Mathf.CeilToInt(totalIndex * tend / 100); + if (min == 0) max = min + range; + if (max == totalIndex) min = max - range; + var flag = index >= min && index < min + range; + return flag; + } + + /// <summary> + /// 给定的坐标是否在开始活动条触发区域内 + /// </summary> + /// <param name="pos"></param> + /// <param name="startX"></param> + /// <param name="width"></param> + /// <returns></returns> + public bool IsInStartZoom(Vector2 pos) + { + switch (m_Orient) + { + case Orient.Horizonal: + var start = context.x + context.width * m_Start / 100; + return ChartHelper.IsInRect(pos, start - 10, start + 10, context.y, context.y + context.height); + case Orient.Vertical: + start = context.y + context.height * m_Start / 100; + return ChartHelper.IsInRect(pos, context.x, context.x + context.width, start - 10, start + 10); + default: + return false; + } + } + + /// <summary> + /// 给定的坐标是否在结束活动条触发区域内 + /// </summary> + /// <param name="pos"></param> + /// <param name="startX"></param> + /// <param name="width"></param> + /// <returns></returns> + public bool IsInEndZoom(Vector2 pos) + { + switch (m_Orient) + { + case Orient.Horizonal: + var end = context.x + context.width * m_End / 100; + return ChartHelper.IsInRect(pos, end - 10, end + 10, context.y, context.y + context.height); + case Orient.Vertical: + end = context.y + context.height * m_End / 100; + return ChartHelper.IsInRect(pos, context.x, context.x + context.width, end - 10, end + 10); + default: + return false; + } + } + + public bool IsContainsAxis(Axis axis) + { + if (axis == null) + return false; + else if (axis is XAxis) + return xAxisIndexs.Contains(axis.index); + else if (axis is YAxis) + return yAxisIndexs.Contains(axis.index); + else + return false; + } + public bool IsContainsXAxis(int index) + { + return xAxisIndexs != null && xAxisIndexs.Contains(index); + } + + public bool IsContainsYAxis(int index) + { + return yAxisIndexs != null && yAxisIndexs.Contains(index); + } + + public Color32 GetFillerColor(Color32 themeColor) + { + if (ChartHelper.IsClearColor(fillerColor)) + return themeColor; + else + return fillerColor; + } + + public Color32 GetBackgroundColor(Color32 themeColor) + { + if (ChartHelper.IsClearColor(backgroundColor)) + return themeColor; + else + return backgroundColor; + } + public Color32 GetBorderColor(Color32 themeColor) + { + if (ChartHelper.IsClearColor(borderColor)) + return themeColor; + else + return borderColor; + } + + /// <summary> + /// 是否显示文本 + /// </summary> + /// <param name="flag"></param> + internal void SetLabelActive(bool flag) + { + m_StartLabel.SetActive(flag); + m_EndLabel.SetActive(flag); + } + + /// <summary> + /// 设置开始文本内容 + /// </summary> + /// <param name="text"></param> + internal void SetStartLabelText(string text) + { + if (m_StartLabel != null) m_StartLabel.SetText(text); + } + + /// <summary> + /// 设置结束文本内容 + /// </summary> + /// <param name="text"></param> + internal void SetEndLabelText(string text) + { + if (m_EndLabel != null) m_EndLabel.SetText(text); + } + + internal void SetStartLabel(ChartLabel startLabel) + { + m_StartLabel = startLabel; + } + + internal void SetEndLabel(ChartLabel endLabel) + { + m_EndLabel = endLabel; + } + + internal void UpdateStartLabelPosition(Vector3 pos) + { + m_StartLabel.SetPosition(pos); + } + + internal void UpdateEndLabelPosition(Vector3 pos) + { + m_EndLabel.SetPosition(pos); + } + + public void UpdateRuntimeData(float chartX, float chartY, float chartWidth, float chartHeight) + { + var runtimeLeft = left <= 1 ? left * chartWidth : left; + var runtimeBottom = bottom <= 1 ? bottom * chartHeight : bottom; + var runtimeTop = top <= 1 ? top * chartHeight : top; + var runtimeRight = right <= 1 ? right * chartWidth : right; + context.x = chartX + runtimeLeft; + context.y = chartY + runtimeBottom; + context.width = chartWidth - runtimeLeft - runtimeRight; + context.height = chartHeight - runtimeTop - runtimeBottom; + } + + internal void SetXAxisIndexValueInfo(int xAxisIndex, double min, double max) + { + if (!m_XAxisIndexInfos.ContainsKey(xAxisIndex)) + { + m_XAxisIndexInfos[xAxisIndex] = new AxisIndexValueInfo() + { + min = min, + max = max + }; + } + else + { + m_XAxisIndexInfos[xAxisIndex].min = min; + m_XAxisIndexInfos[xAxisIndex].max = max; + } + } + + internal void SetYAxisIndexValueInfo(int yAxisIndex, double min, double max) + { + if (!m_YAxisIndexInfos.ContainsKey(yAxisIndex)) + { + m_YAxisIndexInfos[yAxisIndex] = new AxisIndexValueInfo() + { + min = min, + max = max + }; + } + else + { + m_YAxisIndexInfos[yAxisIndex].min = min; + m_YAxisIndexInfos[yAxisIndex].max = max; + } + } + + internal bool IsXAxisIndexValue(int axisIndex) + { + return m_XAxisIndexInfos.ContainsKey(axisIndex); + } + + internal bool IsYAxisIndexValue(int axisIndex) + { + return m_YAxisIndexInfos.ContainsKey(axisIndex); + } + + internal void GetXAxisIndexValue(int axisIndex, out double min, out double max) + { + min = 0; + max = 0; + if (m_XAxisIndexInfos.ContainsKey(axisIndex)) + { + var info = m_XAxisIndexInfos[axisIndex]; + min = info.min; + max = info.max; + } + } + internal void GetYAxisIndexValue(int axisIndex, out double min, out double max) + { + min = 0; + max = 0; + if (m_YAxisIndexInfos.ContainsKey(axisIndex)) + { + var info = m_YAxisIndexInfos[axisIndex]; + min = info.min; + max = info.max; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoom.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoom.cs.meta new file mode 100644 index 0000000..1f760ce --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoom.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dc01046451b8f406896eb1a5c50433db +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoomContext.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoomContext.cs new file mode 100644 index 0000000..49cf852 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoomContext.cs @@ -0,0 +1,26 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + public class DataZoomContext : MainComponentContext + { + public float x { get; internal set; } + public float y { get; internal set; } + public float width { get; internal set; } + public float height { get; internal set; } + public bool isDrag { get; internal set; } + public bool isCoordinateDrag { get; internal set; } + public bool isStartDrag { get; internal set; } + public bool isEndDrag { get; internal set; } + /// <summary> + /// 运行时实际范围的开始值 + /// </summary> + public double startValue { get; set; } + /// <summary> + /// 运行时实际范围的结束值 + /// </summary> + public double endValue { get; set; } + public bool invert { get; set; } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoomContext.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoomContext.cs.meta new file mode 100644 index 0000000..0bf1d45 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoomContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 899bbe0691c1c450c99f775d8d5f38c9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoomHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoomHandler.cs new file mode 100644 index 0000000..6fce889 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoomHandler.cs @@ -0,0 +1,614 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class DataZoomHandler : MainComponentHandler<DataZoom> + { + private static readonly string s_DefaultDataZoom = "datazoom"; + private Vector2 m_LastTouchPos0; + private Vector2 m_LastTouchPos1; + private bool m_CheckDataZoomLabel; + private float m_DataZoomLastStartIndex; + private float m_DataZoomLastEndIndex; + + public override void InitComponent() + { + var dataZoom = component; + dataZoom.painter = chart.m_PainterTop; + dataZoom.refreshComponent = delegate() + { + var dataZoomObject = ChartHelper.AddObject(s_DefaultDataZoom + dataZoom.index, chart.transform, + chart.chartMinAnchor, chart.chartMaxAnchor, chart.chartPivot, chart.chartSizeDelta); + dataZoom.gameObject = dataZoomObject; + dataZoomObject.hideFlags = chart.chartHideFlags; + ChartHelper.HideAllObject(dataZoomObject); + + var startLabel = ChartHelper.AddChartLabel(s_DefaultDataZoom + "start", dataZoomObject.transform, + dataZoom.labelStyle, chart.theme.dataZoom, "", Color.clear, TextAnchor.MiddleRight); + startLabel.gameObject.SetActive(true); + + var endLabel = ChartHelper.AddChartLabel(s_DefaultDataZoom + "end", dataZoomObject.transform, + dataZoom.labelStyle, chart.theme.dataZoom, "", Color.clear, TextAnchor.MiddleLeft); + endLabel.gameObject.SetActive(true); + + dataZoom.SetStartLabel(startLabel); + dataZoom.SetEndLabel(endLabel); + dataZoom.SetLabelActive(false); + + foreach (var index in dataZoom.xAxisIndexs) + { + var xAxis = chart.GetChartComponent<XAxis>(index); + if (xAxis != null) + { + xAxis.UpdateFilterData(dataZoom); + } + } + + foreach (var serie in chart.series) + { + SerieHelper.UpdateFilterData(serie, dataZoom); + } + }; + dataZoom.refreshComponent(); + } + public override void Update() + { + CheckDataZoomScale(component); + CheckDataZoomLabel(component); + } + + public override void DrawTop(VertexHelper vh) + { + if (chart == null) + return; + + var dataZoom = component; + switch (dataZoom.orient) + { + case Orient.Horizonal: + DrawHorizonalDataZoomSlider(vh, dataZoom); + break; + case Orient.Vertical: + DrawVerticalDataZoomSlider(vh, dataZoom); + break; + } + } + + public override void OnBeginDrag(PointerEventData eventData) + { + if (chart == null) + return; + + if (Input.touchCount > 1) + return; + + Vector2 pos; + if (!chart.ScreenPointToChartPoint(eventData.position, out pos)) + return; + + var dataZoom = component; + if (!dataZoom.enable) + return; + + var grid = chart.GetGridOfDataZoom(dataZoom); + if (dataZoom.supportInside && dataZoom.supportInsideDrag) + { + if (grid.Contains(pos)) + { + dataZoom.context.isCoordinateDrag = true; + } + } + if (dataZoom.supportSlider) + { + if (!dataZoom.zoomLock) + { + if (dataZoom.IsInStartZoom(pos)) + { + dataZoom.context.isStartDrag = true; + } + else if (dataZoom.IsInEndZoom(pos)) + { + dataZoom.context.isEndDrag = true; + } + else if (dataZoom.IsInSelectedZoom(pos)) + { + dataZoom.context.isDrag = true; + } + } + else if (dataZoom.IsInSelectedZoom(pos)) + { + dataZoom.context.isDrag = true; + } + } + } + + public override void OnDrag(PointerEventData eventData) + { + if (chart == null) + return; + if (Input.touchCount > 1) + return; + + var dataZoom = component; + var grid = chart.GetGridOfDataZoom(dataZoom); + switch (dataZoom.orient) + { + case Orient.Horizonal: + var deltaPercent = eventData.delta.x / grid.context.width * 100; + OnDragInside(dataZoom, deltaPercent); + OnDragSlider(dataZoom, deltaPercent); + break; + case Orient.Vertical: + deltaPercent = eventData.delta.y / grid.context.height * 100; + OnDragInside(dataZoom, deltaPercent); + OnDragSlider(dataZoom, deltaPercent); + break; + } + } + + public override void OnEndDrag(PointerEventData eventData) + { + if (chart == null) + return; + + var dataZoom = component; + if (dataZoom.context.isDrag || dataZoom.context.isStartDrag || dataZoom.context.isEndDrag || + dataZoom.context.isCoordinateDrag) + { + chart.RefreshChart(); + } + dataZoom.context.isDrag = false; + dataZoom.context.isCoordinateDrag = false; + dataZoom.context.isStartDrag = false; + dataZoom.context.isEndDrag = false; + } + public override void OnPointerDown(PointerEventData eventData) + { + if (chart == null) + return; + if (Input.touchCount > 1) + return; + + Vector2 localPos; + if (!chart.ScreenPointToChartPoint(eventData.position, out localPos)) + return; + + var dataZoom = component; + var grid = chart.GetGridOfDataZoom(dataZoom); + if (dataZoom.IsInStartZoom(localPos) || + dataZoom.IsInEndZoom(localPos)) + { + return; + } + + if (dataZoom.IsInZoom(localPos) && + !dataZoom.IsInSelectedZoom(localPos)) + { + var pointerX = localPos.x; + var selectWidth = grid.context.width * (dataZoom.end - dataZoom.start) / 100; + var startX = pointerX - selectWidth / 2; + var endX = pointerX + selectWidth / 2; + if (startX < grid.context.x) + { + startX = grid.context.x; + endX = grid.context.x + selectWidth; + } + else if (endX > grid.context.x + grid.context.width) + { + endX = grid.context.x + grid.context.width; + startX = grid.context.x + grid.context.width - selectWidth; + } + var start = (startX - grid.context.x) / grid.context.width * 100; + var end = (endX - grid.context.x) / grid.context.width * 100; + UpdateDataZoomRange(dataZoom, start, end); + } + } + public override void OnScroll(PointerEventData eventData) + { + if (chart == null) + return; + if (Input.touchCount > 1) + return; + + Vector2 pos; + if (!chart.ScreenPointToChartPoint(eventData.position, out pos)) + return; + + var dataZoom = component; + if (!dataZoom.enable || dataZoom.zoomLock) + return; + + var grid = chart.GetGridOfDataZoom(dataZoom); + if ((dataZoom.supportInside && dataZoom.supportInsideScroll && grid.Contains(pos)) || + dataZoom.IsInZoom(pos)) + { + ScaleDataZoom(dataZoom, eventData.scrollDelta.y * dataZoom.scrollSensitivity); + } + } + + private void OnDragInside(DataZoom dataZoom, float deltaPercent) + { + if (deltaPercent == 0) + return; + if (Input.touchCount > 1) + return; + if (!dataZoom.supportInside || !dataZoom.supportInsideDrag) + return; + if (!dataZoom.context.isCoordinateDrag) + return; + + var diff = dataZoom.end - dataZoom.start; + if (deltaPercent > 0) + { + if (dataZoom.start > 0) + { + var start = dataZoom.start - deltaPercent; + if (start < 0) start = 0; + var end = start + diff; + UpdateDataZoomRange(dataZoom, start, end); + } + } + else + { + if (dataZoom.end < 100) + { + var end = dataZoom.end - deltaPercent; + if (end > 100) end = 100; + var start = end - diff; + UpdateDataZoomRange(dataZoom, start, end); + } + } + } + + private void OnDragSlider(DataZoom dataZoom, float deltaPercent) + { + if (Input.touchCount > 1) + return; + if (!dataZoom.supportSlider) + return; + + if (dataZoom.context.isStartDrag) + { + var start = dataZoom.start + deltaPercent; + if (start > dataZoom.end) + { + start = dataZoom.end; + dataZoom.context.isEndDrag = true; + dataZoom.context.isStartDrag = false; + } + UpdateDataZoomRange(dataZoom, start, dataZoom.end); + } + else if (dataZoom.context.isEndDrag) + { + var end = dataZoom.end + deltaPercent; + if (end < dataZoom.start) + { + end = dataZoom.start; + dataZoom.context.isStartDrag = true; + dataZoom.context.isEndDrag = false; + } + UpdateDataZoomRange(dataZoom, dataZoom.start, end); + } + else if (dataZoom.context.isDrag) + { + if (deltaPercent > 0) + { + if (dataZoom.end + deltaPercent > 100) deltaPercent = 100 - dataZoom.end; + } + else + { + if (dataZoom.start + deltaPercent < 0) deltaPercent = -dataZoom.start; + } + UpdateDataZoomRange(dataZoom, dataZoom.start + deltaPercent, dataZoom.end + deltaPercent); + } + } + + private void ScaleDataZoom(DataZoom dataZoom, float delta) + { + var grid = chart.GetGridOfDataZoom(dataZoom); + var deltaPercent = dataZoom.orient == Orient.Horizonal ? + Mathf.Abs(delta / grid.context.width * 100) : + Mathf.Abs(delta / grid.context.height * 100); + if (delta > 0) + { + if (dataZoom.end <= dataZoom.start) + return; + UpdateDataZoomRange(dataZoom, dataZoom.start + deltaPercent, dataZoom.end - deltaPercent); + } + else + { + UpdateDataZoomRange(dataZoom, dataZoom.start - deltaPercent, dataZoom.end + deltaPercent); + } + } + + public void UpdateDataZoomRange(DataZoom dataZoom, float start, float end) + { + if (end > 100) + end = 100; + + if (start < 0) + start = 0; + + if (end < start) + end = start; + + dataZoom.start = start; + dataZoom.end = end; + if (dataZoom.realtime) + { + chart.OnDataZoomRangeChanged(dataZoom); + chart.RefreshChart(); + } + } + + public void RefreshDataZoomLabel() + { + m_CheckDataZoomLabel = true; + } + + private void CheckDataZoomScale(DataZoom dataZoom) + { + if (!dataZoom.enable || dataZoom.zoomLock || !dataZoom.supportInside || !dataZoom.supportInsideDrag) + return; + + if (Input.touchCount == 2) + { + var touch0 = Input.GetTouch(0); + var touch1 = Input.GetTouch(1); + if (touch1.phase == TouchPhase.Began) + { + m_LastTouchPos0 = touch0.position; + m_LastTouchPos1 = touch1.position; + } + else if (touch0.phase == TouchPhase.Moved || touch1.phase == TouchPhase.Moved) + { + var tempPos0 = touch0.position; + var tempPos1 = touch1.position; + var currDist = Vector2.Distance(tempPos0, tempPos1); + var lastDist = Vector2.Distance(m_LastTouchPos0, m_LastTouchPos1); + var delta = (currDist - lastDist); + ScaleDataZoom(dataZoom, delta / dataZoom.scrollSensitivity); + m_LastTouchPos0 = tempPos0; + m_LastTouchPos1 = tempPos1; + } + } + } + + private void CheckDataZoomLabel(DataZoom dataZoom) + { + if (dataZoom.enable && dataZoom.supportSlider && dataZoom.showDetail) + { + Vector2 local; + if (!chart.ScreenPointToChartPoint(Input.mousePosition, out local)) + { + dataZoom.SetLabelActive(false); + return; + } + if (dataZoom.IsInSelectedZoom(local) || + dataZoom.IsInStartZoom(local) || + dataZoom.IsInEndZoom(local)) + { + dataZoom.SetLabelActive(true); + RefreshDataZoomLabel(); + } + else + { + dataZoom.SetLabelActive(false); + } + } + if (m_CheckDataZoomLabel && dataZoom.xAxisIndexs.Count > 0) + { + m_CheckDataZoomLabel = false; + var xAxis = chart.GetChartComponent<XAxis>(dataZoom.xAxisIndexs[0]); + var startIndex = (int) ((xAxis.data.Count - 1) * dataZoom.start / 100); + var endIndex = (int) ((xAxis.data.Count - 1) * dataZoom.end / 100); + + if (m_DataZoomLastStartIndex != startIndex || m_DataZoomLastEndIndex != endIndex) + { + m_DataZoomLastStartIndex = startIndex; + m_DataZoomLastEndIndex = endIndex; + if (xAxis.data.Count > 0) + { + dataZoom.SetStartLabelText(xAxis.data[startIndex]); + dataZoom.SetEndLabelText(xAxis.data[endIndex]); + } + else if (xAxis.IsTime()) + { + //TODO: + dataZoom.SetStartLabelText(""); + dataZoom.SetEndLabelText(""); + } + xAxis.SetAllDirty(); + } + var start = dataZoom.context.x + dataZoom.context.width * dataZoom.start / 100; + var end = dataZoom.context.x + dataZoom.context.width * dataZoom.end / 100; + var hig = dataZoom.context.height; + dataZoom.UpdateStartLabelPosition(new Vector3(start - 10, chart.chartY + dataZoom.bottom + hig / 2)); + dataZoom.UpdateEndLabelPosition(new Vector3(end + 10, chart.chartY + dataZoom.bottom + hig / 2)); + } + } + + private void DrawHorizonalDataZoomSlider(VertexHelper vh, DataZoom dataZoom) + { + if (!dataZoom.enable || !dataZoom.supportSlider) + return; + var p1 = new Vector3(dataZoom.context.x, dataZoom.context.y); + var p2 = new Vector3(dataZoom.context.x, dataZoom.context.y + dataZoom.context.height); + var p3 = new Vector3(dataZoom.context.x + dataZoom.context.width, dataZoom.context.y + dataZoom.context.height); + var p4 = new Vector3(dataZoom.context.x + dataZoom.context.width, dataZoom.context.y); + + var lineColor = dataZoom.lineStyle.GetColor(chart.theme.dataZoom.dataLineColor); + var lineWidth = dataZoom.lineStyle.GetWidth(chart.theme.dataZoom.dataLineWidth); + var borderWidth = dataZoom.borderWidth == 0 ? chart.theme.dataZoom.borderWidth : dataZoom.borderWidth; + var borderColor = dataZoom.GetBorderColor(chart.theme.dataZoom.borderColor); + var backgroundColor = dataZoom.GetBackgroundColor(chart.theme.dataZoom.backgroundColor); + var areaColor = dataZoom.areaStyle.GetColor(chart.theme.dataZoom.dataAreaColor); + + UGL.DrawQuadrilateral(vh, p1, p2, p3, p4, backgroundColor); + + var centerPos = new Vector3(dataZoom.context.x + dataZoom.context.width / 2, + dataZoom.context.y + dataZoom.context.height / 2); + UGL.DrawBorder(vh, centerPos, dataZoom.context.width, dataZoom.context.height, borderWidth, borderColor); + if (dataZoom.showDataShadow && chart.series.Count > 0) + { + Serie serie = chart.series[0]; + Axis axis = chart.GetChartComponent<YAxis>(0); + var showData = serie.GetDataList(null); + float scaleWid = dataZoom.context.width / (showData.Count - 1); + Vector3 lp = Vector3.zero; + Vector3 np = Vector3.zero; + double minValue = 0; + double maxValue = 0; + SeriesHelper.GetYMinMaxValue(chart.series, null, 0, chart.IsAllAxisValue(), axis.inverse, out minValue, out maxValue); + AxisHelper.AdjustMinMaxValue(axis, ref minValue, ref maxValue, true); + + int rate = 1; + var sampleDist = serie.sampleDist < 2 ? 2 : serie.sampleDist; + var maxCount = showData.Count; + if (sampleDist > 0) + rate = (int) ((maxCount - serie.minShow) / (dataZoom.context.width / sampleDist)); + if (rate < 1) + rate = 1; + + var totalAverage = serie.sampleAverage > 0 ? serie.sampleAverage : + DataHelper.DataAverage(ref showData, serie.sampleType, serie.minShow, maxCount, rate); + var dataChanging = false; + + for (int i = 0; i < maxCount; i += rate) + { + double value = DataHelper.SampleValue(ref showData, serie.sampleType, rate, serie.minShow, maxCount, totalAverage, i, + serie.animation.GetUpdateAnimationDuration(), ref dataChanging, axis); + float pX = dataZoom.context.x + i * scaleWid; + float dataHig = (float) ((maxValue - minValue) == 0 ? 0 : + (value - minValue) / (maxValue - minValue) * dataZoom.context.height); + np = new Vector3(pX, chart.chartY + dataZoom.bottom + dataHig); + if (i > 0) + { + UGL.DrawLine(vh, lp, np, lineWidth, lineColor); + Vector3 alp = new Vector3(lp.x, lp.y - lineWidth); + Vector3 anp = new Vector3(np.x, np.y - lineWidth); + + Vector3 tnp = new Vector3(np.x, chart.chartY + dataZoom.bottom + lineWidth); + Vector3 tlp = new Vector3(lp.x, chart.chartY + dataZoom.bottom + lineWidth); + UGL.DrawQuadrilateral(vh, alp, anp, tnp, tlp, areaColor); + } + lp = np; + } + if (dataChanging) + { + chart.RefreshTopPainter(); + } + } + switch (dataZoom.rangeMode) + { + case DataZoom.RangeMode.Percent: + var start = dataZoom.context.x + dataZoom.context.width * dataZoom.start / 100; + var end = dataZoom.context.x + dataZoom.context.width * dataZoom.end / 100; + var fillerColor = dataZoom.GetFillerColor(chart.theme.dataZoom.fillerColor); + + p1 = new Vector2(start, dataZoom.context.y); + p2 = new Vector2(start, dataZoom.context.y + dataZoom.context.height); + p3 = new Vector2(end, dataZoom.context.y + dataZoom.context.height); + p4 = new Vector2(end, dataZoom.context.y); + UGL.DrawQuadrilateral(vh, p1, p2, p3, p4, fillerColor); + UGL.DrawLine(vh, p1, p2, lineWidth, fillerColor); + UGL.DrawLine(vh, p3, p4, lineWidth, fillerColor); + break; + } + } + + private void DrawVerticalDataZoomSlider(VertexHelper vh, DataZoom dataZoom) + { + if (!dataZoom.enable || !dataZoom.supportSlider) + return; + + var p1 = new Vector3(dataZoom.context.x, dataZoom.context.y); + var p2 = new Vector3(dataZoom.context.x, dataZoom.context.y + dataZoom.context.height); + var p3 = new Vector3(dataZoom.context.x + dataZoom.context.width, dataZoom.context.y + dataZoom.context.height); + var p4 = new Vector3(dataZoom.context.x + dataZoom.context.width, dataZoom.context.y); + var lineColor = dataZoom.lineStyle.GetColor(chart.theme.dataZoom.dataLineColor); + var lineWidth = dataZoom.lineStyle.GetWidth(chart.theme.dataZoom.dataLineWidth); + var borderWidth = dataZoom.borderWidth == 0 ? chart.theme.dataZoom.borderWidth : dataZoom.borderWidth; + var borderColor = dataZoom.GetBorderColor(chart.theme.dataZoom.borderColor); + var backgroundColor = dataZoom.GetBackgroundColor(chart.theme.dataZoom.backgroundColor); + var areaColor = dataZoom.areaStyle.GetColor(chart.theme.dataZoom.dataAreaColor); + + UGL.DrawQuadrilateral(vh, p1, p2, p3, p4, backgroundColor); + var centerPos = new Vector3(dataZoom.context.x + dataZoom.context.width / 2, + dataZoom.context.y + dataZoom.context.height / 2); + UGL.DrawBorder(vh, centerPos, dataZoom.context.width, dataZoom.context.height, borderWidth, borderColor); + + if (dataZoom.showDataShadow && chart.series.Count > 0) + { + Serie serie = chart.series[0]; + Axis axis = chart.GetChartComponent<YAxis>(0); + var showData = serie.GetDataList(null); + float scaleWid = dataZoom.context.height / (showData.Count - 1); + Vector3 lp = Vector3.zero; + Vector3 np = Vector3.zero; + double minValue = 0; + double maxValue = 0; + SeriesHelper.GetYMinMaxValue(chart.series, null, 0, chart.IsAllAxisValue(), axis.inverse, out minValue, out maxValue); + AxisHelper.AdjustMinMaxValue(axis, ref minValue, ref maxValue, true); + + int rate = 1; + var sampleDist = serie.sampleDist < 2 ? 2 : serie.sampleDist; + var maxCount = showData.Count; + if (sampleDist > 0) + rate = (int) ((maxCount - serie.minShow) / (dataZoom.context.height / sampleDist)); + if (rate < 1) + rate = 1; + + var totalAverage = serie.sampleAverage > 0 ? serie.sampleAverage : + DataHelper.DataAverage(ref showData, serie.sampleType, serie.minShow, maxCount, rate); + var dataChanging = false; + + for (int i = 0; i < maxCount; i += rate) + { + double value = DataHelper.SampleValue(ref showData, serie.sampleType, rate, serie.minShow, maxCount, totalAverage, i, + serie.animation.GetUpdateAnimationDuration(), ref dataChanging, axis); + float pY = dataZoom.context.y + i * scaleWid; + float dataHig = (maxValue - minValue) == 0 ? 0 : + (float) ((value - minValue) / (maxValue - minValue) * dataZoom.context.width); + np = new Vector3(chart.chartX + chart.chartWidth - dataZoom.right - dataHig, pY); + if (i > 0) + { + UGL.DrawLine(vh, lp, np, lineWidth, lineColor); + Vector3 alp = new Vector3(lp.x, lp.y - lineWidth); + Vector3 anp = new Vector3(np.x, np.y - lineWidth); + + Vector3 tnp = new Vector3(np.x, chart.chartY + dataZoom.bottom + lineWidth); + Vector3 tlp = new Vector3(lp.x, chart.chartY + dataZoom.bottom + lineWidth); + UGL.DrawQuadrilateral(vh, alp, anp, tnp, tlp, areaColor); + } + lp = np; + } + if (dataChanging) + { + chart.RefreshTopPainter(); + } + } + switch (dataZoom.rangeMode) + { + case DataZoom.RangeMode.Percent: + var start = dataZoom.context.y + dataZoom.context.height * dataZoom.start / 100; + var end = dataZoom.context.y + dataZoom.context.height * dataZoom.end / 100; + var fillerColor = dataZoom.GetFillerColor(chart.theme.dataZoom.fillerColor); + + p1 = new Vector2(dataZoom.context.x, start); + p2 = new Vector2(dataZoom.context.x + dataZoom.context.width, start); + p3 = new Vector2(dataZoom.context.x + dataZoom.context.width, end); + p4 = new Vector2(dataZoom.context.x, end); + UGL.DrawQuadrilateral(vh, p1, p2, p3, p4, fillerColor); + UGL.DrawLine(vh, p1, p2, lineWidth, fillerColor); + UGL.DrawLine(vh, p3, p4, lineWidth, fillerColor); + break; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoomHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoomHandler.cs.meta new file mode 100644 index 0000000..5f39e61 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoomHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3f980f43c96a748e0913a1a0054ecd9d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoomHelper.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoomHelper.cs new file mode 100644 index 0000000..c7f8b81 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoomHelper.cs @@ -0,0 +1,62 @@ +namespace XCharts.Runtime +{ + public static class DataZoomHelper + { + public static void UpdateDataZoomRuntimeStartEndValue(DataZoom dataZoom, Serie serie) + { + if (dataZoom == null || serie == null) + return; + + double min = 0; + double max = 0; + SerieHelper.GetMinMaxData(serie, out min, out max, null); + dataZoom.context.startValue = min + (max - min) * dataZoom.start / 100; + dataZoom.context.endValue = min + (max - min) * dataZoom.end / 100; + } + + public static void UpdateDataZoomRuntimeStartEndValue<T>(BaseChart chart) where T : Serie + { + foreach (var component in chart.components) + { + if (component is DataZoom) + { + var dataZoom = component as DataZoom; + if (!dataZoom.enable) + continue; + + double min = double.MaxValue; + double max = double.MinValue; + foreach (var serie in chart.series) + { + if (!serie.show || !(serie is T)) + continue; + if (!dataZoom.IsContainsXAxis(serie.xAxisIndex)) + continue; + + var axis = chart.GetChartComponent<XAxis>(serie.xAxisIndex); + + if (axis.minMaxType == Axis.AxisMinMaxType.Custom) + { + if (axis.min < min) + min = axis.min; + if (axis.max > max) + max = axis.max; + } + else + { + double serieMinValue = 0; + double serieMaxValue = 0; + SerieHelper.GetMinMaxData(serie, out serieMinValue, out serieMaxValue, null, 2); + if (serieMinValue < min) + min = serieMinValue; + if (serieMaxValue > max) + max = serieMaxValue; + } + } + dataZoom.context.startValue = min + (max - min) * dataZoom.start / 100; + dataZoom.context.endValue = min + (max - min) * dataZoom.end / 100; + } + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoomHelper.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoomHelper.cs.meta new file mode 100644 index 0000000..070730e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/DataZoom/DataZoomHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3cc7a61abc3a74004a079f796e51dfc9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Debug.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Debug.meta new file mode 100644 index 0000000..aefd3c3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Debug.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 76abe02f90a34419dbd45292ed7000d6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Debug/DebugInfo.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Debug/DebugInfo.cs new file mode 100644 index 0000000..5daca29 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Debug/DebugInfo.cs @@ -0,0 +1,158 @@ +using System; +using System.Collections.Generic; +using System.Text; +using UnityEngine; + +namespace XCharts.Runtime +{ + [Serializable] + public class DebugInfo + { +#pragma warning disable 0414 + [SerializeField] private bool m_Show = true; +#pragma warning restore 0414 + [SerializeField] private bool m_ShowDebugInfo = false; + [SerializeField] protected bool m_ShowAllChartObject = false; + [SerializeField] protected bool m_FoldSeries = false; + [SerializeField] + private LabelStyle m_LabelStyle = new LabelStyle() + { + background = new ImageStyle() + { + color = new Color32(32, 32, 32, 170) + }, + textStyle = new TextStyle() + { + fontSize = 18, + color = Color.white + } + }; + + private static StringBuilder s_Sb = new StringBuilder(); + + private static readonly float INTERVAL = 0.2f; + private static readonly float MAXCACHE = 20; + private int m_FrameCount = 0; + private float m_LastTime = 0f; + private float m_LastCheckShowTime = 0f; + private int m_LastRefreshCount = 0; + private BaseChart m_Chart; + private ChartLabel m_Label; + private List<float> m_FpsList = new List<float>(); + + public bool showAllChartObject { get { return m_ShowAllChartObject; } set { m_ShowAllChartObject = value; } } + public bool foldSeries { get { return m_FoldSeries; } set { m_FoldSeries = value; } } + public float fps { get; private set; } + public float avgFps { get; private set; } + public int refreshCount { get; internal set; } + internal int clickChartCount { get; set; } + + public void Init(BaseChart chart) + { + m_Chart = chart; + m_Label = AddDebugInfoObject("debug", chart.transform, m_LabelStyle, chart.theme); + } + + public void Update() + { + if (clickChartCount > 2) + { + m_ShowDebugInfo = !m_ShowDebugInfo; + ChartHelper.SetActive(m_Label.transform, m_ShowDebugInfo); + clickChartCount = 0; + m_LastCheckShowTime = Time.realtimeSinceStartup; + return; + } + if (Time.realtimeSinceStartup - m_LastCheckShowTime > 0.5f) + { + m_LastCheckShowTime = Time.realtimeSinceStartup; + clickChartCount = 0; + } + if (!m_ShowDebugInfo || m_Label == null) + return; + + m_FrameCount++; + if (Time.realtimeSinceStartup - m_LastTime >= INTERVAL) + { + fps = m_FrameCount / (Time.realtimeSinceStartup - m_LastTime); + m_FrameCount = 0; + m_LastTime = Time.realtimeSinceStartup; + if (m_LastRefreshCount == refreshCount) + { + m_LastRefreshCount = 0; + refreshCount = 0; + } + m_LastRefreshCount = refreshCount; + if (m_FpsList.Count > MAXCACHE) + { + m_FpsList.RemoveAt(0); + } + m_FpsList.Add(fps); + avgFps = GetAvg(m_FpsList); + if (m_Label != null) + { + s_Sb.Length = 0; + s_Sb.AppendFormat("v{0}\n", XChartsMgr.version); + s_Sb.AppendFormat("fps : {0:f0} / {1:f0}\n", fps, avgFps); + s_Sb.AppendFormat("draw : {0}\n", refreshCount); + + var dataCount = m_Chart.GetAllSerieDataCount(); + SetValueWithKInfo(s_Sb, "data", dataCount); + + var vertCount = 0; + foreach (var serie in m_Chart.series) + vertCount += serie.context.vertCount; + + SetValueWithKInfo(s_Sb, "b-vert", m_Chart.m_BasePainterVertCount); + SetValueWithKInfo(s_Sb, "s-vert", vertCount); + SetValueWithKInfo(s_Sb, "t-vert", m_Chart.m_TopPainterVertCount, false); + + var serie0 = m_Chart.GetSerie(0); + for (int i = 0; i < serie0.dataCount; i++) + { + var serieData = serie0.data[i]; + s_Sb.AppendFormat("{0}:{1}\n", i, serieData.interact.targetVaue); + } + + m_Label.SetText(s_Sb.ToString()); + } + } + } + + private static void SetValueWithKInfo(StringBuilder s_Sb, string key, int value, bool newLine = true) + { + if (value >= 1000) + s_Sb.AppendFormat("{0} : {1:f1}k", key, value * 0.001f); + else + s_Sb.AppendFormat("{0} : {1}", key, value); + if (newLine) + s_Sb.Append("\n"); + } + + private static float GetAvg(List<float> list) + { + var total = 0f; + foreach (var v in list) total += v; + return total / list.Count; + } + + private ChartLabel AddDebugInfoObject(string name, Transform parent, LabelStyle labelStyle, + ThemeStyle theme) + { + var anchorMax = new Vector2(0, 1); + var anchorMin = new Vector2(0, 1); + var pivot = new Vector2(0, 1); + var sizeDelta = new Vector2(100, 100); + + var labelGameObject = ChartHelper.AddObject(name, parent, anchorMin, anchorMax, pivot, sizeDelta); + labelGameObject.transform.SetAsLastSibling(); + labelGameObject.hideFlags = m_Chart.chartHideFlags; + ChartHelper.SetActive(labelGameObject, m_ShowDebugInfo); + + var label = ChartHelper.AddChartLabel("info", labelGameObject.transform, labelStyle, theme.common, + "", Color.clear, TextAnchor.UpperLeft); + label.SetActive(labelStyle.show); + return label; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Debug/DebugInfo.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Debug/DebugInfo.cs.meta new file mode 100644 index 0000000..be8f760 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Debug/DebugInfo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d6accb0ff71304b56a019db8ee3139d9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis.meta new file mode 100644 index 0000000..68dbdad --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4cd4074bb11fc40059363dd78b9ee98d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/Emphasis.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/Emphasis.cs new file mode 100644 index 0000000..90d6464 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/Emphasis.cs @@ -0,0 +1,74 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// 高亮的图形样式和文本标签样式。 + /// </summary> + [System.Serializable] + public class Emphasis : ChildComponent, ISerieExtraComponent, ISerieDataComponent + { + [SerializeField] private bool m_Show; + [SerializeField] private LabelStyle m_Label = new LabelStyle(); + [SerializeField] private LabelLine m_LabelLine = new LabelLine(); + [SerializeField] private ItemStyle m_ItemStyle = new ItemStyle(); + + public void Reset() + { + m_Show = false; + m_Label.Reset(); + m_LabelLine.Reset(); + m_ItemStyle.Reset(); + } + + /// <summary> + /// 是否启用高亮样式。 + /// </summary> + public bool show + { + get { return m_Show; } + set { m_Show = value; } + } + /// <summary> + /// 图形文本标签。 + /// </summary> + public LabelStyle label + { + get { return m_Label; } + set { if (PropertyUtil.SetClass(ref m_Label, value, true)) SetAllDirty(); } + } + /// <summary> + /// 图形文本引导线样式。 + /// </summary> + public LabelLine labelLine + { + get { return m_LabelLine; } + set { if (PropertyUtil.SetClass(ref m_LabelLine, value, true)) SetAllDirty(); } + } + /// <summary> + /// 图形样式。 + /// </summary> + public ItemStyle itemStyle + { + get { return m_ItemStyle; } + set { if (PropertyUtil.SetClass(ref m_ItemStyle, value, true)) SetVerticesDirty(); } + } + + public override bool vertsDirty { get { return m_VertsDirty || label.vertsDirty || itemStyle.vertsDirty; } } + + public override bool componentDirty { get { return m_ComponentDirty || label.componentDirty; } } + + public override void ClearVerticesDirty() + { + base.ClearVerticesDirty(); + label.ClearVerticesDirty(); + itemStyle.ClearVerticesDirty(); + } + + public override void ClearComponentDirty() + { + base.ClearComponentDirty(); + label.ClearComponentDirty(); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/Emphasis.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/Emphasis.cs.meta new file mode 100644 index 0000000..8aeb094 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/Emphasis.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6e0b1690532674b24952a87e0aead6fa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/EmphasisItemStyle.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/EmphasisItemStyle.cs new file mode 100644 index 0000000..ca5ad8e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/EmphasisItemStyle.cs @@ -0,0 +1,11 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// 高亮的图形样式 + /// </summary> + [System.Serializable] + public class EmphasisItemStyle : ItemStyle, ISerieExtraComponent, ISerieDataComponent + { } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/EmphasisItemStyle.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/EmphasisItemStyle.cs.meta new file mode 100644 index 0000000..73b3363 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/EmphasisItemStyle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5d1095175540449f99bb9da27a5aaf04 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/EmphasisLabelLine.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/EmphasisLabelLine.cs new file mode 100644 index 0000000..9a132ad --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/EmphasisLabelLine.cs @@ -0,0 +1,11 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// 高亮的标签引导线样式 + /// </summary> + [System.Serializable] + public class EmphasisLabelLine : LabelLine, ISerieExtraComponent, ISerieDataComponent + { } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/EmphasisLabelLine.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/EmphasisLabelLine.cs.meta new file mode 100644 index 0000000..b6bd83f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/EmphasisLabelLine.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a0d9ff3b8e09d464e9b5ea996b941314 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/EmphasisLabelStyle.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/EmphasisLabelStyle.cs new file mode 100644 index 0000000..0279fc6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/EmphasisLabelStyle.cs @@ -0,0 +1,11 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// 高亮的标签样式 + /// </summary> + [System.Serializable] + public class EmphasisLabelStyle : LabelStyle, ISerieExtraComponent, ISerieDataComponent + { } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/EmphasisLabelStyle.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/EmphasisLabelStyle.cs.meta new file mode 100644 index 0000000..77199dd --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Emphasis/EmphasisLabelStyle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3e025b0f4be6d4141aa08bdad0102aa7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Interaction.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Interaction.meta new file mode 100644 index 0000000..9dd74cb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Interaction.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8445ec442e5314aa891cbbd6d4d966c4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Interaction/InteractData.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Interaction/InteractData.cs new file mode 100644 index 0000000..fd9122c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Interaction/InteractData.cs @@ -0,0 +1,207 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + public class InteractData + { + private float m_PreviousValue = 0; + private float m_TargetValue = 0; + private Color32 m_PreviousColor; + private Color32 m_TargetColor; + private Color32 m_PreviousToColor; + private Color32 m_TargetToColor; + private float m_UpdateTime = 0; + private bool m_UpdateFlag = false; + private bool m_ValueEnable = false; + + internal float targetVaue { get { return m_TargetValue; } } + + public void SetValue(ref bool needInteract, float size, bool highlight, float rate = 1.3f) + { + size = highlight ? size * rate : size; + SetValue(ref needInteract, size); + } + + public void SetValue(ref bool needInteract, float size) + { + if (m_TargetValue != size) + { + needInteract = true; + m_UpdateFlag = true; + m_ValueEnable = true; + m_UpdateTime = Time.time; + m_PreviousValue = m_TargetValue; + m_TargetValue = size; + } + } + + public void SetColor(ref bool needInteract, Color32 color) + { + if (!ChartHelper.IsValueEqualsColor(color, m_TargetColor)) + { + if (!ChartHelper.IsClearColor(m_TargetColor)) + { + needInteract = true; + m_UpdateFlag = true; + m_ValueEnable = true; + m_UpdateTime = Time.time; + m_PreviousColor = m_TargetColor; + } + m_TargetColor = color; + } + } + public void SetColor(ref bool needInteract, Color32 color, Color32 toColor) + { + SetColor(ref needInteract, color); + if (!ChartHelper.IsValueEqualsColor(toColor, m_TargetToColor)) + { + if (!ChartHelper.IsClearColor(m_TargetToColor)) + { + needInteract = true; + m_UpdateFlag = true; + m_ValueEnable = true; + m_UpdateTime = Time.time; + m_PreviousToColor = m_TargetToColor; + } + m_TargetToColor = toColor; + } + } + + public void SetValueAndColor(ref bool needInteract, float value, Color32 color) + { + SetValue(ref needInteract, value); + SetColor(ref needInteract, color); + } + + public void SetValueAndColor(ref bool needInteract, float value, Color32 color, Color32 toColor) + { + SetValue(ref needInteract, value); + SetColor(ref needInteract, color, toColor); + } + + public bool TryGetValue(ref float value, ref bool interacting, float animationDuration = 250) + { + if (!IsValueEnable() || m_PreviousValue == 0) + return false; + if (m_UpdateFlag) + { + var time = Time.time - m_UpdateTime; + var total = animationDuration / 1000; + var rate = time / total; + if (rate > 1) rate = 1; + if (rate < 1) + { + interacting = true; + value = Mathf.Lerp(m_PreviousValue, m_TargetValue, rate); + return true; + } + else + { + m_UpdateFlag = false; + } + } + value = m_TargetValue; + return true; + } + + public bool TryGetColor(ref Color32 color, ref bool interacting, float animationDuration = 250) + { + if (!IsValueEnable()) + return false; + if (m_UpdateFlag) + { + var time = Time.time - m_UpdateTime; + var total = animationDuration / 1000; + var rate = time / total; + if (rate > 1) rate = 1; + if (rate < 1) + { + interacting = true; + color = Color32.Lerp(m_PreviousColor, m_TargetColor, rate); + return true; + } + else + { + m_UpdateFlag = false; + } + } + color = m_TargetColor; + return true; + } + + public bool TryGetColor(ref Color32 color, ref Color32 toColor, ref bool interacting, float animationDuration = 250) + { + if (!IsValueEnable()) + return false; + if (m_UpdateFlag) + { + var time = Time.time - m_UpdateTime; + var total = animationDuration / 1000; + var rate = time / total; + if (rate > 1) rate = 1; + if (rate < 1) + { + interacting = true; + color = Color32.Lerp(m_PreviousColor, m_TargetColor, rate); + toColor = Color32.Lerp(m_PreviousToColor, m_TargetToColor, rate); + return true; + } + else + { + m_UpdateFlag = false; + } + } + color = m_TargetColor; + toColor = m_TargetToColor; + return true; + } + public bool TryGetValueAndColor(ref float value, ref Color32 color, ref Color32 toColor, ref bool interacting, float animationDuration = 250) + { + if (!IsValueEnable()) + return false; + if (m_UpdateFlag) + { + var time = Time.time - m_UpdateTime; + var total = animationDuration / 1000; + var rate = time / total; + if (rate > 1) rate = 1; + if (rate < 1) + { + interacting = true; + value = Mathf.Lerp(m_PreviousValue, m_TargetValue, rate); + color = Color32.Lerp(m_PreviousColor, m_TargetColor, rate); + toColor = Color32.Lerp(m_PreviousToColor, m_TargetToColor, rate); + return true; + } + else + { + m_UpdateFlag = false; + } + } + value = m_TargetValue; + color = m_TargetColor; + toColor = m_TargetToColor; + return true; + } + + public void Reset() + { + m_UpdateFlag = false; + m_ValueEnable = false; + m_PreviousValue = float.NaN; + m_TargetColor = ColorUtil.clearColor32; + m_TargetToColor = ColorUtil.clearColor32; + m_PreviousColor = ColorUtil.clearColor32; + m_PreviousToColor = ColorUtil.clearColor32; + } + + private bool IsValueEnable() + { +#if UNITY_EDITOR + if (!Application.isPlaying) + return false; +#endif + return m_ValueEnable; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Interaction/InteractData.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Interaction/InteractData.cs.meta new file mode 100644 index 0000000..4e09507 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Interaction/InteractData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 42f150814cce84d66b931eed0a07d4ce +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label.meta new file mode 100644 index 0000000..401c628 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ad378dd158b5d438a87405d35a3a6546 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label/EndLabelStyle.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label/EndLabelStyle.cs new file mode 100644 index 0000000..ecdd7e9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label/EndLabelStyle.cs @@ -0,0 +1,17 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + [System.Serializable] + public class EndLabelStyle : LabelStyle + { + public EndLabelStyle() + { + m_Offset = new Vector3(5, 0, 0); + m_TextStyle.alignment = TextAnchor.MiddleLeft; + m_NumericFormatter = "f0"; + m_Formatter = "{a}:{c}"; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label/EndLabelStyle.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label/EndLabelStyle.cs.meta new file mode 100644 index 0000000..deca912 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label/EndLabelStyle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b3ca55f3ab0314339ae171c8ac07c4e2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label/LabelLine.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label/LabelLine.cs new file mode 100644 index 0000000..a0b1c2c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label/LabelLine.cs @@ -0,0 +1,145 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// 标签的引导线 + /// </summary> + [System.Serializable] + public class LabelLine : ChildComponent, ISerieExtraComponent, ISerieDataComponent + { + /// <summary> + /// 标签视觉引导线类型 + /// </summary> + public enum LineType + { + /// <summary> + /// 折线 + /// </summary> + BrokenLine, + /// <summary> + /// 曲线 + /// </summary> + Curves, + /// <summary> + /// 水平线 + /// </summary> + HorizontalLine + } + + [SerializeField] private bool m_Show = true; + [SerializeField] private LineType m_LineType = LineType.BrokenLine; + [SerializeField] private Color32 m_LineColor = ChartConst.clearColor32; + [SerializeField] private float m_LineAngle = 0; + [SerializeField] private float m_LineWidth = 1.0f; + [SerializeField] private float m_LineGap = 1.0f; + [SerializeField] private float m_LineLength1 = 25f; + [SerializeField] private float m_LineLength2 = 15f; + [SerializeField] private SymbolStyle m_StartSymbol = new SymbolStyle() { type = SymbolType.Circle, size = 3 }; + [SerializeField] private SymbolStyle m_EndSymbol = new SymbolStyle() { type = SymbolType.Circle, size = 3 }; + + public void Reset() + { + m_Show = false; + m_LineType = LineType.BrokenLine; + m_LineColor = Color.clear; + m_LineAngle = 0; + m_LineWidth = 1.0f; + m_LineGap = 1.0f; + m_LineLength1 = 25f; + m_LineLength2 = 15f; + } + + /// <summary> + /// Whether the label line is showed. + /// |是否显示视觉引导线。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetAllDirty(); } + } + /// <summary> + /// the type of visual guide line. + /// |视觉引导线类型。 + /// </summary> + public LineType lineType + { + get { return m_LineType; } + set { if (PropertyUtil.SetStruct(ref m_LineType, value)) SetVerticesDirty(); } + } + /// <summary> + /// the color of visual guild line. + /// |视觉引导线颜色。默认和serie一致取自调色板。 + /// </summary> + public Color32 lineColor + { + get { return m_LineColor; } + set { if (PropertyUtil.SetStruct(ref m_LineColor, value)) SetVerticesDirty(); } + } + /// <summary> + /// the angle of visual guild line. + /// |视觉引导线的固定角度。对折线和曲线有效。 + /// </summary> + public float lineAngle + { + get { return m_LineAngle; } + set { if (PropertyUtil.SetStruct(ref m_LineAngle, value)) SetVerticesDirty(); } + } + /// <summary> + /// the width of visual guild line. + /// |视觉引导线的宽度。 + /// </summary> + public float lineWidth + { + get { return m_LineWidth; } + set { if (PropertyUtil.SetStruct(ref m_LineWidth, value)) SetVerticesDirty(); } + } + /// <summary> + /// the gap of container and guild line. + /// |视觉引导线和容器的间距。 + /// </summary> + public float lineGap + { + get { return m_LineGap; } + set { if (PropertyUtil.SetStruct(ref m_LineGap, value)) SetVerticesDirty(); } + } + /// <summary> + /// The length of the first segment of visual guide line. + /// |视觉引导线第一段的长度。 + /// </summary> + public float lineLength1 + { + get { return m_LineLength1; } + set { if (PropertyUtil.SetStruct(ref m_LineLength1, value)) SetVerticesDirty(); } + } + /// <summary> + /// The length of the second segment of visual guide line. + /// |视觉引导线第二段的长度。 + /// </summary> + public float lineLength2 + { + get { return m_LineLength2; } + set { if (PropertyUtil.SetStruct(ref m_LineLength2, value)) SetVerticesDirty(); } + } + /// <summary> + /// The symbol of the start point of labelline. + /// |起始点的图形标记。 + /// </summary> + public SymbolStyle startSymbol + { + get { return m_StartSymbol; } + set { if (PropertyUtil.SetClass(ref m_StartSymbol, value)) SetVerticesDirty(); } + } + /// <summary> + /// The symbol of the end point of labelline. + /// |结束点的图形标记。 + /// </summary> + public SymbolStyle endSymbol + { + get { return m_EndSymbol; } + set { if (PropertyUtil.SetClass(ref m_EndSymbol, value)) SetVerticesDirty(); } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label/LabelLine.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label/LabelLine.cs.meta new file mode 100644 index 0000000..2f3d51f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label/LabelLine.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1c3977205b6f14d8a97ae32177691580 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label/LabelStyle.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label/LabelStyle.cs new file mode 100644 index 0000000..4d96a02 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label/LabelStyle.cs @@ -0,0 +1,319 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// Text label of chart, to explain some data information about graphic item like value, name and so on. + /// |图形上的文本标签,可用于说明图形的一些数据信息,比如值,名称等。 + /// </summary> + [System.Serializable] + public class LabelStyle : ChildComponent, ISerieExtraComponent, ISerieDataComponent + { + /// <summary> + /// The position of label. + /// |标签的位置。 + /// </summary> + public enum Position + { + Default, + /// <summary> + /// Outside of sectors of pie chart, which relates to corresponding sector through visual guide line. + /// |饼图扇区外侧,通过视觉引导线连到相应的扇区。 + /// </summary> + Outside, + /// <summary> + /// Inside the sectors of pie chart. + /// |饼图扇区内部。 + /// </summary> + Inside, + /// <summary> + /// In the center of pie chart. + /// |在饼图中心位置。 + /// </summary> + Center, + /// <summary> + /// top of symbol. + /// |图形标志的顶部。 + /// </summary> + Top, + /// <summary> + /// the bottom of symbol. + /// |图形标志的底部。 + /// </summary> + Bottom, + /// <summary> + /// the left of symbol. + /// |图形标志的左边。 + /// </summary> + Left, + /// <summary> + /// the right of symbol. + /// |图形标志的右边。 + /// </summary> + Right, + /// <summary> + /// the start of line. + /// |线的起始点。 + /// </summary> + Start, + /// <summary> + /// the middle of line. + /// |线的中点。 + /// </summary> + Middle, + /// <summary> + /// the end of line. + /// |线的结束点。 + /// </summary> + End + } + + [SerializeField] protected bool m_Show = true; + [SerializeField] Position m_Position = Position.Default; + [SerializeField] protected bool m_AutoOffset = false; + [SerializeField] protected Vector3 m_Offset; + [SerializeField] protected float m_Rotate; + [SerializeField] protected float m_Distance; + [SerializeField] protected string m_Formatter; + [SerializeField] protected string m_NumericFormatter = ""; + [SerializeField] protected float m_Width = 0; + [SerializeField] protected float m_Height = 0; + + [SerializeField] protected IconStyle m_Icon = new IconStyle(); + [SerializeField] protected ImageStyle m_Background = new ImageStyle(); + [SerializeField] protected TextPadding m_TextPadding = new TextPadding(); + [SerializeField] protected TextStyle m_TextStyle = new TextStyle(); + protected LabelFormatterFunction m_FormatterFunction; + + public void Reset() + { + m_Show = false; + m_Position = Position.Default; + m_Offset = Vector3.zero; + m_Distance = 0; + m_Rotate = 0; + m_Width = 0; + m_Height = 0; + m_NumericFormatter = ""; + m_AutoOffset = false; + } + + /// <summary> + /// Whether the label is showed. + /// |是否显示文本标签。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetAllDirty(); } + } + /// <summary> + /// The position of label. + /// |标签的位置。 + /// </summary> + public Position position + { + get { return m_Position; } + set { if (PropertyUtil.SetStruct(ref m_Position, value)) SetVerticesDirty(); } + } + /// <summary> + /// formatter of label. + /// |标签内容字符串模版格式器。支持用 \n 换行。 + /// 模板变量有: + /// {.}:圆点标记。 + /// {a}:系列名。 + /// {a}:系列名。 + /// {b}:类目值或数据名。 + /// {c}:数据值。 + /// {d}:百分比。 + /// {e}:数据名。 + /// {f}:数据和。 + /// 示例:“{b}:{c}” + /// </summary> + public string formatter + { + get { return m_Formatter; } + set { if (PropertyUtil.SetClass(ref m_Formatter, value)) SetVerticesDirty(); } + } + /// <summary> + /// offset to the host graphic element. + /// |距离图形元素的偏移 + /// </summary> + public Vector3 offset + { + get { return m_Offset; } + set { if (PropertyUtil.SetStruct(ref m_Offset, value)) SetVerticesDirty(); } + } + /// <summary> + /// Rotation of label. + /// |文本的旋转。 + /// </summary> + public float rotate + { + get { return m_Rotate; } + set { if (PropertyUtil.SetStruct(ref m_Rotate, value)) SetComponentDirty(); } + } + /// <summary> + /// 距离轴线的距离。 + /// </summary> + public float distance + { + get { return m_Distance; } + set { if (PropertyUtil.SetStruct(ref m_Distance, value)) SetVerticesDirty(); } + } + /// <summary> + /// the width of label. If set as default value 0, it means than the label width auto set as the text width. + /// |标签的宽度。一般不用指定,不指定时则自动是文字的宽度。 + /// </summary> + /// <value></value> + public float width + { + get { return m_Width; } + set { if (PropertyUtil.SetStruct(ref m_Width, value)) SetComponentDirty(); } + } + /// <summary> + /// the height of label. If set as default value 0, it means than the label height auto set as the text height. + /// |标签的高度。一般不用指定,不指定时则自动是文字的高度。 + /// </summary> + /// <value></value> + public float height + { + get { return m_Height; } + set { if (PropertyUtil.SetStruct(ref m_Height, value)) SetComponentDirty(); } + } + /// <summary> + /// the text padding of label. + /// |文本的边距。 + /// </summary> + public TextPadding textPadding + { + get { return m_TextPadding; } + set { if (PropertyUtil.SetClass(ref m_TextPadding, value)) SetComponentDirty(); } + } + /// <summary> + /// Standard numeric format strings. + /// |标准数字格式字符串。用于将数值格式化显示为字符串。 + /// 使用Axx的形式:A是格式说明符的单字符,支持C货币、D十进制、E指数、F定点数、G常规、N数字、P百分比、R往返、X十六进制的。xx是精度说明,从0-99。 + /// 参考:https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/standard-numeric-format-strings + /// </summary> + /// <value></value> + public string numericFormatter + { + get { return m_NumericFormatter; } + set { if (PropertyUtil.SetClass(ref m_NumericFormatter, value)) SetComponentDirty(); } + } + /// <summary> + /// 是否开启自动偏移。当开启时,Y的偏移会自动判断曲线的开口来决定向上还是向下偏移。 + /// </summary> + public bool autoOffset + { + get { return m_AutoOffset; } + set { if (PropertyUtil.SetStruct(ref m_AutoOffset, value)) SetAllDirty(); } + } + /// <summary> + /// the sytle of background. + /// |背景图样式。 + /// </summary> + public ImageStyle background + { + get { return m_Background; } + set { if (PropertyUtil.SetClass(ref m_Background, value)) SetAllDirty(); } + } + /// <summary> + /// the sytle of icon. + /// |图标样式。 + /// </summary> + public IconStyle icon + { + get { return m_Icon; } + set { if (PropertyUtil.SetClass(ref m_Icon, value)) SetAllDirty(); } + } + /// <summary> + /// the sytle of text. + /// |文本样式。 + /// </summary> + public TextStyle textStyle + { + get { return m_TextStyle; } + set { if (PropertyUtil.SetClass(ref m_TextStyle, value)) SetAllDirty(); } + } + public LabelFormatterFunction formatterFunction + { + get { return m_FormatterFunction; } + set { m_FormatterFunction = value; } + } + + public bool IsInside() + { + return m_Position == Position.Inside || m_Position == Position.Center; + } + + public bool IsDefaultPosition(Position position) + { + return m_Position == Position.Default || m_Position == position; + } + + public bool IsAutoSize() + { + return width == 0 && height == 0; + } + + public Vector3 GetOffset(float radius) + { + var x = ChartHelper.GetActualValue(m_Offset.x, radius); + var y = ChartHelper.GetActualValue(m_Offset.y, radius); + var z = ChartHelper.GetActualValue(m_Offset.z, radius); + return new Vector3(x, y, z); + } + + public Color GetColor(Color defaultColor) + { + if (ChartHelper.IsClearColor(textStyle.color)) + { + return IsInside() ? Color.black : defaultColor; + } + else + { + return textStyle.color; + } + } + + public virtual LabelStyle Clone() + { + var label = new LabelStyle(); + label.m_Show = m_Show; + label.m_Position = m_Position; + label.m_Offset = m_Offset; + label.m_Rotate = m_Rotate; + label.m_Distance = m_Distance; + label.m_Formatter = m_Formatter; + label.m_Width = m_Width; + label.m_Height = m_Height; + label.m_NumericFormatter = m_NumericFormatter; + label.m_AutoOffset = m_AutoOffset; + label.m_Icon.Copy(m_Icon); + label.m_Background.Copy(m_Background); + label.m_TextPadding = m_TextPadding; + label.m_TextStyle.Copy(m_TextStyle); + return label; + } + + public virtual void Copy(LabelStyle label) + { + m_Show = label.m_Show; + m_Position = label.m_Position; + m_Offset = label.m_Offset; + m_Rotate = label.m_Rotate; + m_Distance = label.m_Distance; + m_Formatter = label.m_Formatter; + m_Width = label.m_Width; + m_Height = label.m_Height; + m_NumericFormatter = label.m_NumericFormatter; + m_AutoOffset = label.m_AutoOffset; + m_Icon.Copy(label.m_Icon); + m_Background.Copy(label.m_Background); + m_TextPadding = label.m_TextPadding; + m_TextStyle.Copy(label.m_TextStyle); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label/LabelStyle.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label/LabelStyle.cs.meta new file mode 100644 index 0000000..9f25d62 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Label/LabelStyle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0b2c690f282f04752898422894f61738 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend.meta new file mode 100644 index 0000000..cbd5c63 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5bf1d7d1b565e45b6aacd4a261ddef9f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/Legend.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/Legend.cs new file mode 100644 index 0000000..4c59156 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/Legend.cs @@ -0,0 +1,425 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// Legend component.The legend component shows different sets of tags, colors, and names. + /// You can control which series are not displayed by clicking on the legend. + /// |图例组件。 + /// 图例组件展现了不同系列的标记,颜色和名字。可以通过点击图例控制哪些系列不显示。 + /// </summary> + [System.Serializable] + [ComponentHandler(typeof(LegendHandler), true)] + public class Legend : MainComponent, IPropertyChanged + { + public enum Type + { + /// <summary> + /// 自动匹配。 + /// </summary> + Auto, + /// <summary> + /// 自定义图标。 + /// </summary> + Custom, + /// <summary> + /// 空心圆。 + /// </summary> + EmptyCircle, + /// <summary> + /// 圆形。 + /// </summary> + Circle, + /// <summary> + /// 正方形。可通过Setting的legendIconCornerRadius参数调整圆角。 + /// </summary> + Rect, + /// <summary> + /// 三角形。 + /// </summary> + Triangle, + /// <summary> + /// 菱形。 + /// </summary> + Diamond, + } + /// <summary> + /// Selected mode of legend, which controls whether series can be toggled displaying by clicking legends. + /// |图例选择的模式,控制是否可以通过点击图例改变系列的显示状态。默认开启图例选择,可以设成 None 关闭。 + /// </summary> + public enum SelectedMode + { + /// <summary> + /// 多选。 + /// </summary> + Multiple, + /// <summary> + /// 单选。 + /// </summary> + Single, + /// <summary> + /// 无法选择。 + /// </summary> + None + } + + [SerializeField] private bool m_Show = true; + [SerializeField] private Type m_IconType = Type.Auto; + [SerializeField] private SelectedMode m_SelectedMode = SelectedMode.Multiple; + [SerializeField] private Orient m_Orient = Orient.Horizonal; + [SerializeField] private Location m_Location = new Location() { align = Location.Align.TopCenter, top = 0.125f }; + [SerializeField] private float m_ItemWidth = 25.0f; + [SerializeField] private float m_ItemHeight = 12.0f; + [SerializeField] private float m_ItemGap = 10f; + [SerializeField] private bool m_ItemAutoColor = true; + [SerializeField] private float m_ItemOpacity = 1; + [SerializeField] private string m_Formatter; + [SerializeField] protected string m_NumericFormatter = ""; + [SerializeField] private LabelStyle m_LabelStyle = new LabelStyle(); + [SerializeField] private List<string> m_Data = new List<string>(); + [SerializeField] private List<Sprite> m_Icons = new List<Sprite>(); + [SerializeField] private List<Color> m_Colors = new List<Color>(); + + public LegendContext context = new LegendContext(); + + /// <summary> + /// Whether to show legend component. + /// |是否显示图例组件。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetComponentDirty(); } + } + /// <summary> + /// Type of legend. + /// |图例类型。 + /// [default:Type.Auto] + /// </summary> + public Type iconType + { + get { return m_IconType; } + set { if (PropertyUtil.SetStruct(ref m_IconType, value)) SetAllDirty(); } + } + /// <summary> + /// Selected mode of legend, which controls whether series can be toggled displaying by clicking legends. + /// |选择模式。控制是否可以通过点击图例改变系列的显示状态。默认开启图例选择,可以设成 None 关闭。 + /// [default:SelectedMode.Multiple] + /// </summary> + public SelectedMode selectedMode + { + get { return m_SelectedMode; } + set { if (PropertyUtil.SetStruct(ref m_SelectedMode, value)) SetComponentDirty(); } + } + /// <summary> + /// Specify whether the layout of legend component is horizontal or vertical. + /// |布局方式是横还是竖。 + /// [default:Orient.Horizonal] + /// </summary> + public Orient orient + { + get { return m_Orient; } + set { if (PropertyUtil.SetStruct(ref m_Orient, value)) SetComponentDirty(); } + } + /// <summary> + /// The location of legend. + /// |图例显示的位置。 + /// [default:Location.defaultTop] + /// </summary> + public Location location + { + get { return m_Location; } + set { if (PropertyUtil.SetClass(ref m_Location, value)) SetComponentDirty(); } + } + /// <summary> + /// Image width of legend symbol. + /// |图例标记的图形宽度。 + /// [default:24f] + /// </summary> + public float itemWidth + { + get { return m_ItemWidth; } + set { if (PropertyUtil.SetStruct(ref m_ItemWidth, value)) SetComponentDirty(); } + } + /// <summary> + /// Image height of legend symbol. + /// |图例标记的图形高度。 + /// [default:12f] + /// </summary> + public float itemHeight + { + get { return m_ItemHeight; } + set { if (PropertyUtil.SetStruct(ref m_ItemHeight, value)) SetComponentDirty(); } + } + /// <summary> + /// The distance between each legend, horizontal distance in horizontal layout, and vertical distance in vertical layout. + /// |图例每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。 + /// [default:10f] + /// </summary> + public float itemGap + { + get { return m_ItemGap; } + set { if (PropertyUtil.SetStruct(ref m_ItemGap, value)) SetComponentDirty(); } + } + /// <summary> + /// Whether the legend symbol matches the color automatically. + /// |图例标记的图形是否自动匹配颜色。 + /// [default:true] + /// </summary> + public bool itemAutoColor + { + get { return m_ItemAutoColor; } + set { if (PropertyUtil.SetStruct(ref m_ItemAutoColor, value)) SetComponentDirty(); } + } + /// <summary> + /// the opacity of item color. + /// |图例标记的图形的颜色透明度。 + /// </summary> + public float itemOpacity + { + get { return m_ItemOpacity; } + set { if (PropertyUtil.SetStruct(ref m_ItemOpacity, value)) SetComponentDirty(); } + } + /// <summary> + /// Standard numeric format strings. + /// |标准数字格式字符串。用于将数值格式化显示为字符串。 + /// 使用Axx的形式:A是格式说明符的单字符,支持C货币、D十进制、E指数、F定点数、G常规、N数字、P百分比、R往返、X十六进制的。xx是精度说明,从0-99。 + /// 参考:https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/standard-numeric-format-strings + /// </summary> + /// <value></value> + public string numericFormatter + { + get { return m_NumericFormatter; } + set { if (PropertyUtil.SetClass(ref m_NumericFormatter, value)) SetComponentDirty(); } + } + /// <summary> + /// Legend content string template formatter. Support for wrapping lines with \n. Template:{value}. + /// |图例内容字符串模版格式器。支持用 \n 换行。 + /// 模板变量为图例名称 {value}。其他模板变量参考Toolip的itemFormatter。 + /// </summary> + public string formatter + { + get { return m_Formatter; } + set { if (PropertyUtil.SetClass(ref m_Formatter, value)) SetComponentDirty(); } + } + /// <summary> + /// the style of text. + /// |文本样式。 + /// </summary> + public LabelStyle labelStyle + { + get { return m_LabelStyle; } + set { if (PropertyUtil.SetClass(ref m_LabelStyle, value)) SetComponentDirty(); } + } + /// <summary> + /// Data array of legend. An array item is usually a name representing string. (If it is a pie chart, + /// it could also be the name of a single data in the pie chart) of a series. + /// |If data is not specified, it will be auto collected from series. + /// |图例的数据数组。数组项通常为一个字符串,每一项代表一个系列的 name(如果是饼图,也可以是饼图单个数据的 name)。 + /// 如果 data 没有被指定,会自动从当前系列中获取。指定data时里面的数据项和serie匹配时才会生效。 + /// </summary> + public List<string> data + { + get { return m_Data; } + set { if (value != null) { m_Data = value; SetComponentDirty(); } } + } + /// <summary> + /// 自定义的图例标记图形。 + /// </summary> + public List<Sprite> icons + { + get { return m_Icons; } + set { if (value != null) { m_Icons = value; SetComponentDirty(); } } + } + /// <summary> + /// the colors of legend item. + /// 图例标记的颜色列表。 + /// </summary> + public List<Color> colors + { + get { return m_Colors; } + set { if (value != null) { m_Colors = value; SetAllDirty(); } } + } + /// <summary> + /// 图表是否需要刷新(图例组件不需要刷新图表) + /// </summary> + public override bool vertsDirty { get { return false; } } + /// <summary> + /// 组件是否需要刷新 + /// </summary> + public override bool componentDirty + { + get { return m_ComponentDirty || location.componentDirty || labelStyle.componentDirty; } + } + + public override void ClearComponentDirty() + { + base.ClearComponentDirty(); + location.ClearComponentDirty(); + labelStyle.ClearComponentDirty(); + } + + /// <summary> + /// Clear legend data. + /// |清空。 + /// </summary> + public override void ClearData() + { + m_Data.Clear(); + SetComponentDirty(); + } + + /// <summary> + /// Whether include in legend data by the specified name. + /// |是否包括由指定名字的图例 + /// </summary> + /// <param name="name"></param> + /// <returns></returns> + public bool ContainsData(string name) + { + return m_Data.Contains(name); + } + + /// <summary> + /// Removes the legend with the specified name. + /// |移除指定名字的图例。 + /// </summary> + /// <param name="name"></param> + public void RemoveData(string name) + { + if (m_Data.Contains(name)) + { + m_Data.Remove(name); + SetComponentDirty(); + } + } + + /// <summary> + /// Add legend data. + /// |添加图例。 + /// </summary> + /// <param name="name"></param> + public void AddData(string name) + { + if (!m_Data.Contains(name) && !string.IsNullOrEmpty(name)) + { + m_Data.Add(name); + SetComponentDirty(); + } + } + + /// <summary> + /// Gets the legend for the specified index. + /// |获得指定索引的图例。 + /// </summary> + /// <param name="index"></param> + /// <returns></returns> + public string GetData(int index) + { + if (index >= 0 && index < m_Data.Count) + { + return m_Data[index]; + } + return null; + } + + /// <summary> + /// Gets the index of the specified legend. + /// |获得指定图例的索引。 + /// </summary> + /// <param name="legendName"></param> + /// <returns></returns> + public int GetIndex(string legendName) + { + return m_Data.IndexOf(legendName); + } + + /// <summary> + /// Remove all legend buttons. + /// |移除所有图例按钮。 + /// </summary> + public void RemoveButton() + { + context.buttonList.Clear(); + } + + /// <summary> + /// Bind buttons to legends. + /// |给图例绑定按钮。 + /// </summary> + /// <param name="name"></param> + /// <param name="btn"></param> + /// <param name="total"></param> + public void SetButton(string name, LegendItem item, int total) + { + context.buttonList[name] = item; + int index = context.buttonList.Values.Count; + item.SetIconActive(iconType == Type.Custom); + item.SetActive(show); + } + + /// <summary> + /// Update the legend button color. + /// |更新图例按钮颜色。 + /// </summary> + /// <param name="name"></param> + /// <param name="color"></param> + public void UpdateButtonColor(string name, Color color) + { + if (context.buttonList.ContainsKey(name)) + { + context.buttonList[name].SetIconColor(color); + } + } + + /// <summary> + /// Update the text color of legend. + /// |更新图例文字颜色。 + /// </summary> + /// <param name="name"></param> + /// <param name="color"></param> + public void UpdateContentColor(string name, Color color) + { + if (context.buttonList.ContainsKey(name)) + { + context.buttonList[name].SetContentColor(color); + } + } + + /// <summary> + /// Gets the legend button for the specified index. + /// |获得指定索引的图例按钮。 + /// </summary> + /// <param name="index"></param> + /// <returns></returns> + public Sprite GetIcon(int index) + { + if (index >= 0 && index < m_Icons.Count) + { + return m_Icons[index]; + } + else + { + return null; + } + } + + public Color GetColor(int index) + { + if (index >= 0 && index < m_Colors.Count) + return m_Colors[index]; + else + return Color.white; + } + + /// <summary> + /// Callback handling when parameters change. + /// |参数变更时的回调处理。 + /// </summary> + public void OnChanged() + { + m_Location.OnChanged(); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/Legend.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/Legend.cs.meta new file mode 100644 index 0000000..c0193d1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/Legend.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c53210fe487d047b6a51bacc0d3e7a71 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/LegendContext.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/LegendContext.cs new file mode 100644 index 0000000..9bead40 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/LegendContext.cs @@ -0,0 +1,31 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + + public class LegendContext : MainComponentContext + { + /// <summary> + /// 运行时图例的总宽度 + /// </summary> + public float width { get; internal set; } + /// <summary> + /// 运行时图例的总高度 + /// </summary> + public float height { get; internal set; } + /// <summary> + /// the button list of legend. + /// |图例按钮列表。 + /// </summary> + internal Dictionary<string, LegendItem> buttonList = new Dictionary<string, LegendItem>(); + /// <summary> + /// 多列时每列的宽度 + /// </summary> + internal Dictionary<int, float> eachWidthDict = new Dictionary<int, float>(); + /// <summary> + /// 单列高度 + /// </summary> + internal float eachHeight { get; set; } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/LegendContext.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/LegendContext.cs.meta new file mode 100644 index 0000000..59d2e50 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/LegendContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c62c17c9d5b2b4a0fb260103c3ceb5ac +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/LegendHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/LegendHandler.cs new file mode 100644 index 0000000..75b7161 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/LegendHandler.cs @@ -0,0 +1,253 @@ +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class LegendHandler : MainComponentHandler<Legend> + { + private static readonly string s_LegendObjectName = "legend"; + + public override void InitComponent() + { + InitLegend(component); + } + + public override void CheckComponent(System.Text.StringBuilder sb) + { + var legend = component; + if (ChartHelper.IsColorAlphaZero(legend.labelStyle.textStyle.color)) + sb.AppendFormat("warning:legend{0}->textStyle->color alpha is 0\n", legend.index); + var serieNameList = SeriesHelper.GetLegalSerieNameList(chart.series); + if (serieNameList.Count == 0) + sb.AppendFormat("warning:legend{0} need serie.serieName or serieData.name not empty\n", legend.index); + foreach (var category in legend.data) + { + if (!serieNameList.Contains(category)) + { + sb.AppendFormat("warning:legend{0} [{1}] is invalid, must be one of serie.serieName or serieData.name\n", + legend.index, category); + } + } + } + public override void DrawTop(VertexHelper vh) + { + DrawLegend(vh); + } + + public override void OnSerieDataUpdate(int serieIndex) + { + if (FormatterHelper.NeedFormat(component.formatter)) + component.refreshComponent(); + } + + private void InitLegend(Legend legend) + { + legend.painter = null; + legend.refreshComponent = delegate() + { + legend.OnChanged(); + var legendObject = ChartHelper.AddObject(s_LegendObjectName + legend.index, chart.transform, chart.chartMinAnchor, + chart.chartMaxAnchor, chart.chartPivot, chart.chartSizeDelta); + legend.gameObject = legendObject; + legendObject.hideFlags = chart.chartHideFlags; + SeriesHelper.UpdateSerieNameList(chart, ref chart.m_LegendRealShowName); + List<string> datas; + if (legend.show && legend.data.Count > 0) + { + datas = new List<string>(); + foreach (var data in legend.data) + { + if (chart.m_LegendRealShowName.Contains(data) || chart.IsSerieName(data)) + datas.Add(data); + } + } + else + { + datas = chart.m_LegendRealShowName; + } + int totalLegend = 0; + for (int i = 0; i < datas.Count; i++) + { + if (!SeriesHelper.IsLegalLegendName(datas[i])) continue; + totalLegend++; + } + legend.RemoveButton(); + ChartHelper.HideAllObject(legendObject); + if (!legend.show) return; + for (int i = 0; i < datas.Count; i++) + { + if (!SeriesHelper.IsLegalLegendName(datas[i])) continue; + string legendName = GetFormatterContent(legend, i, datas[i]); + var readIndex = chart.m_LegendRealShowName.IndexOf(datas[i]); + var active = chart.IsActiveByLegend(datas[i]); + var bgColor = LegendHelper.GetIconColor(chart, legend, readIndex, datas[i], active); + bgColor.a = legend.itemOpacity; + var item = LegendHelper.AddLegendItem(chart, legend, i, datas[i], legendObject.transform, chart.theme, + legendName, bgColor, active, readIndex); + legend.SetButton(legendName, item, totalLegend); + ChartHelper.ClearEventListener(item.button.gameObject); + ChartHelper.AddEventListener(item.button.gameObject, EventTriggerType.PointerDown, (data) => + { + if (data.selectedObject == null || legend.selectedMode == Legend.SelectedMode.None) return; + var temp = data.selectedObject.name.Split('_'); + string selectedName = temp[1]; + int clickedIndex = int.Parse(temp[0]); + if (legend.selectedMode == Legend.SelectedMode.Multiple) + { + OnLegendButtonClick(legend, clickedIndex, selectedName, !chart.IsActiveByLegend(selectedName)); + } + else + { + var btnList = legend.context.buttonList.Values.ToArray(); + if (btnList.Length == 1) + { + OnLegendButtonClick(legend, 0, selectedName, !chart.IsActiveByLegend(selectedName)); + } + else + { + for (int n = 0; n < btnList.Length; n++) + { + temp = btnList[n].name.Split('_'); + selectedName = btnList[n].legendName; + var index = btnList[n].index; + OnLegendButtonClick(legend, n, selectedName, index == clickedIndex ? true : false); + } + } + } + }); + ChartHelper.AddEventListener(item.button.gameObject, EventTriggerType.PointerEnter, (data) => + { + if (item.button == null) return; + var temp = item.button.name.Split('_'); + string selectedName = temp[1]; + int index = int.Parse(temp[0]); + OnLegendButtonEnter(legend, index, selectedName); + }); + ChartHelper.AddEventListener(item.button.gameObject, EventTriggerType.PointerExit, (data) => + { + if (item.button == null) return; + var temp = item.button.name.Split('_'); + string selectedName = temp[1]; + int index = int.Parse(temp[0]); + OnLegendButtonExit(legend, index, selectedName); + }); + } + LegendHelper.ResetItemPosition(legend, chart.chartPosition, chart.chartWidth, chart.chartHeight); + }; + legend.refreshComponent(); + } + + private string GetFormatterContent(Legend legend, int dataIndex, string category) + { + if (string.IsNullOrEmpty(legend.formatter)) + return category; + else + { + var content = legend.formatter.Replace("{name}", category); + content = content.Replace("{value}", category); + var serie = chart.GetSerie(0); + FormatterHelper.ReplaceContent(ref content, dataIndex, legend.numericFormatter, serie, chart); + return content; + } + } + + private void OnLegendButtonClick(Legend legend, int index, string legendName, bool show) + { + chart.OnLegendButtonClick(index, legendName, show); + if (chart.onLegendClick != null) + chart.onLegendClick(legend, index, legendName, show); + } + + private void OnLegendButtonEnter(Legend legend, int index, string legendName) + { + chart.OnLegendButtonEnter(index, legendName); + if (chart.onLegendEnter != null) + chart.onLegendEnter(legend, index, legendName); + } + + private void OnLegendButtonExit(Legend legend, int index, string legendName) + { + chart.OnLegendButtonExit(index, legendName); + if (chart.onLegendExit != null) + chart.onLegendExit(legend, index, legendName); + } + + private void DrawLegend(VertexHelper vh) + { + if (chart.series.Count == 0) return; + var legend = component; + if (!legend.show) return; + if (legend.iconType == Legend.Type.Custom) return; + foreach (var kv in legend.context.buttonList) + { + var item = kv.Value; + var rect = item.GetIconRect(); + var radius = Mathf.Min(rect.width, rect.height) / 2; + var color = item.GetIconColor(); + var iconType = legend.iconType; + if (legend.iconType == Legend.Type.Auto) + { + var serie = chart.GetSerie(item.legendName); + if (serie != null && serie is Line) + { + var sp = new Vector3(rect.center.x - rect.width / 2, rect.center.y); + var ep = new Vector3(rect.center.x + rect.width / 2, rect.center.y); + UGL.DrawLine(vh, sp, ep, chart.settings.legendIconLineWidth, color); + if (!serie.symbol.show) continue; + switch (serie.symbol.type) + { + case SymbolType.None: + continue; + case SymbolType.Circle: + iconType = Legend.Type.Circle; + break; + case SymbolType.Diamond: + iconType = Legend.Type.Diamond; + break; + case SymbolType.EmptyCircle: + iconType = Legend.Type.EmptyCircle; + break; + case SymbolType.Rect: + iconType = Legend.Type.Rect; + break; + case SymbolType.Triangle: + iconType = Legend.Type.Triangle; + break; + } + } + else + { + iconType = Legend.Type.Rect; + } + } + switch (iconType) + { + case Legend.Type.Rect: + var cornerRadius = chart.settings.legendIconCornerRadius; + UGL.DrawRoundRectangle(vh, rect.center, rect.width, rect.height, color, color, + 0, cornerRadius, false, 0.5f); + break; + case Legend.Type.Circle: + UGL.DrawCricle(vh, rect.center, radius, color); + break; + case Legend.Type.Diamond: + UGL.DrawDiamond(vh, rect.center, radius, color); + break; + case Legend.Type.EmptyCircle: + var backgroundColor = chart.GetChartBackgroundColor(); + UGL.DrawEmptyCricle(vh, rect.center, radius, 2 * chart.settings.legendIconLineWidth, + color, color, backgroundColor, 1f); + break; + case Legend.Type.Triangle: + UGL.DrawTriangle(vh, rect.center, 1.2f * radius, color); + break; + } + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/LegendHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/LegendHandler.cs.meta new file mode 100644 index 0000000..3d332f8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/LegendHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d05c7e75b9d3c4a839099bf152752af1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/LegendHelper.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/LegendHelper.cs new file mode 100644 index 0000000..422eb2a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/LegendHelper.cs @@ -0,0 +1,276 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + public static class LegendHelper + { + public static Color GetContentColor(BaseChart chart, int legendIndex, string legendName, Legend legend, ThemeStyle theme, bool active) + { + var textStyle = legend.labelStyle.textStyle; + if (active) + { + if (legend.labelStyle.textStyle.autoColor) + return SeriesHelper.GetNameColor(chart, legendIndex, legendName); + else + return !ChartHelper.IsClearColor(textStyle.color) ? textStyle.color : theme.legend.textColor; + } + else return theme.legend.unableColor; + } + + public static Color GetIconColor(BaseChart chart, Legend legend, int readIndex, string legendName, bool active) + { + if (active) + { + if (legend.itemAutoColor) + { + return SeriesHelper.GetNameColor(chart, readIndex, legendName); + } + else + return legend.GetColor(readIndex); + } + else return chart.theme.legend.unableColor; + } + + public static LegendItem AddLegendItem(BaseChart chart, Legend legend, int i, string legendName, Transform parent, + ThemeStyle theme, string content, Color itemColor, bool active, int legendIndex) + { + var objName = i + "_" + legendName; + var anchorMin = new Vector2(0, 0.5f); + var anchorMax = new Vector2(0, 0.5f); + var pivot = new Vector2(0, 0.5f); + var sizeDelta = new Vector2(100, 30); + var iconSizeDelta = new Vector2(legend.itemWidth, legend.itemHeight); + var textStyle = legend.labelStyle.textStyle; + var contentColor = GetContentColor(chart, legendIndex, legendName, legend, theme, active); + + var objAnchorMin = new Vector2(0, 1); + var objAnchorMax = new Vector2(0, 1); + var objPivot = new Vector2(0, 1); + var btnObj = ChartHelper.AddObject(objName, parent, objAnchorMin, objAnchorMax, objPivot, sizeDelta, i); + var iconObj = ChartHelper.AddObject("icon", btnObj.transform, anchorMin, anchorMax, pivot, iconSizeDelta); + var img = ChartHelper.GetOrAddComponent<Image>(btnObj); + img.color = Color.clear; + ChartHelper.GetOrAddComponent<Button>(btnObj); + ChartHelper.GetOrAddComponent<Image>(iconObj); + + var label = ChartHelper.AddChartLabel("content", btnObj.transform, legend.labelStyle, theme.legend, + content, contentColor, TextAnchor.MiddleLeft); + label.SetActive(true); + + var item = new LegendItem(); + item.index = i; + item.name = objName; + item.legendName = legendName; + item.SetObject(btnObj); + item.SetIconSize(legend.itemWidth, legend.itemHeight); + item.SetIconColor(itemColor); + item.SetIconImage(legend.GetIcon(i)); + item.SetContentPosition(legend.labelStyle.offset); + item.SetContent(content); + return item; + } + + public static void ResetItemPosition(Legend legend, Vector3 chartPos, float chartWidth, float chartHeight) + { + legend.location.UpdateRuntimeData(chartWidth, chartHeight); + var startX = 0f; + var startY = 0f; + var legendMaxWidth = chartWidth - legend.location.runtimeLeft - legend.location.runtimeRight; + var legendMaxHeight = chartHeight - legend.location.runtimeTop - legend.location.runtimeBottom; + UpdateLegendWidthAndHeight(legend, legendMaxWidth, legendMaxHeight); + var legendRuntimeWidth = legend.context.width; + var legendRuntimeHeight = legend.context.height; + var isVertical = legend.orient == Orient.Vertical; + switch (legend.location.align) + { + case Location.Align.TopCenter: + startX = chartPos.x + chartWidth / 2 - legendRuntimeWidth / 2; + startY = chartPos.y + chartHeight - legend.location.runtimeTop; + break; + case Location.Align.TopLeft: + startX = chartPos.x + legend.location.runtimeLeft; + startY = chartPos.y + chartHeight - legend.location.runtimeTop; + break; + case Location.Align.TopRight: + startX = chartPos.x + chartWidth - legendRuntimeWidth - legend.location.runtimeRight; + startY = chartPos.y + chartHeight - legend.location.runtimeTop; + break; + case Location.Align.Center: + startX = chartPos.x + chartWidth / 2 - legendRuntimeWidth / 2; + startY = chartPos.y + chartHeight / 2 + legendRuntimeHeight / 2; + break; + case Location.Align.CenterLeft: + startX = chartPos.x + legend.location.runtimeLeft; + startY = chartPos.y + chartHeight / 2 + legendRuntimeHeight / 2; + break; + case Location.Align.CenterRight: + startX = chartPos.x + chartWidth - legendRuntimeWidth - legend.location.runtimeRight; + startY = chartPos.y + chartHeight / 2 + legendRuntimeHeight / 2; + break; + case Location.Align.BottomCenter: + startX = chartPos.x + chartWidth / 2 - legendRuntimeWidth / 2; + startY = chartPos.y + legendRuntimeHeight + legend.location.runtimeBottom; + break; + case Location.Align.BottomLeft: + startX = chartPos.x + legend.location.runtimeLeft; + startY = chartPos.y + legendRuntimeHeight + legend.location.runtimeBottom; + break; + case Location.Align.BottomRight: + startX = chartPos.x + chartWidth - legendRuntimeWidth - legend.location.runtimeRight; + startY = chartPos.y + legendRuntimeHeight + legend.location.runtimeBottom; + break; + } + if (isVertical) SetVerticalItemPosition(legend, legendMaxHeight, startX, startY); + else SetHorizonalItemPosition(legend, legendMaxWidth, startX, startY); + } + + private static void SetVerticalItemPosition(Legend legend, float legendMaxHeight, float startX, float startY) + { + var currHeight = 0f; + var offsetX = 0f; + var row = 0; + foreach (var kv in legend.context.buttonList) + { + var item = kv.Value; + if (currHeight + item.height > legendMaxHeight) + { + currHeight = 0; + offsetX += legend.context.eachWidthDict[row]; + row++; + } + item.SetPosition(new Vector3(startX + offsetX, startY - currHeight)); + currHeight += item.height + legend.itemGap; + } + } + private static void SetHorizonalItemPosition(Legend legend, float legendMaxWidth, float startX, float startY) + { + var currWidth = 0f; + var offsetY = 0f; + foreach (var kv in legend.context.buttonList) + { + var item = kv.Value; + if (currWidth + item.width > legendMaxWidth) + { + currWidth = 0; + offsetY += legend.context.eachHeight; + } + item.SetPosition(new Vector3(startX + currWidth, startY - offsetY)); + currWidth += item.width + legend.itemGap; + } + } + + private static void UpdateLegendWidthAndHeight(Legend legend, float maxWidth, float maxHeight) + { + var width = 0f; + var height = 0f; + var realHeight = 0f; + var realWidth = 0f; + legend.context.eachWidthDict.Clear(); + legend.context.eachHeight = 0; + if (legend.orient == Orient.Horizonal) + { + foreach (var kv in legend.context.buttonList) + { + if (width + kv.Value.width > maxWidth) + { + realWidth = width - legend.itemGap; + realHeight += height + legend.itemGap; + if (legend.context.eachHeight < height + legend.itemGap) + { + legend.context.eachHeight = height + legend.itemGap; + } + height = 0; + width = 0; + } + width += kv.Value.width + legend.itemGap; + if (kv.Value.height > height) + height = kv.Value.height; + } + width -= legend.itemGap; + legend.context.height = realHeight + height; + legend.context.width = realWidth > 0 ? realWidth : width; + } + else + { + var row = 0; + foreach (var kv in legend.context.buttonList) + { + if (height + kv.Value.height > maxHeight) + { + realHeight = height - legend.itemGap; + realWidth += width + legend.itemGap; + legend.context.eachWidthDict[row] = width + legend.itemGap; + row++; + height = 0; + width = 0; + } + height += kv.Value.height + legend.itemGap; + if (kv.Value.width > width) + width = kv.Value.width; + } + height -= legend.itemGap; + legend.context.height = realHeight > 0 ? realHeight : height; + legend.context.width = realWidth + width; + } + } + + private static bool IsBeyondWidth(Legend legend, float maxWidth) + { + var totalWidth = 0f; + foreach (var kv in legend.context.buttonList) + { + var item = kv.Value; + totalWidth += item.width + legend.itemGap; + if (totalWidth > maxWidth) return true; + } + return false; + } + + public static bool CheckDataShow(Serie serie, string legendName, bool show) + { + bool needShow = false; + if (legendName.Equals(serie.serieName)) + { + serie.show = show; + serie.highlight = false; + if (serie.show) needShow = true; + } + else + { + foreach (var data in serie.data) + { + if (legendName.Equals(data.name)) + { + data.show = show; + data.context.highlight = false; + if (data.show) needShow = true; + } + } + } + return needShow; + } + + public static bool CheckDataHighlighted(Serie serie, string legendName, bool heighlight) + { + bool show = false; + if (legendName.Equals(serie.serieName)) + { + serie.highlight = heighlight; + } + else + { + foreach (var data in serie.data) + { + if (legendName.Equals(data.name)) + { + data.context.highlight = heighlight; + if (data.context.highlight) show = true; + } + } + } + return show; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/LegendHelper.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/LegendHelper.cs.meta new file mode 100644 index 0000000..18e7596 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Legend/LegendHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cc1c14527667e4475a275768371b3b9a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark.meta new file mode 100644 index 0000000..57971b8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 69bae12c156de4372a9680df180e91df +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkArea.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkArea.cs new file mode 100644 index 0000000..560d6af --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkArea.cs @@ -0,0 +1,192 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// 标域类型 + /// </summary> + public enum MarkAreaType + { + None, + /// <summary> + /// 最小值。 + /// </summary> + Min, + /// <summary> + /// 最大值。 + /// </summary> + Max, + /// <summary> + /// 平均值。 + /// </summary> + Average, + /// <summary> + /// 中位数。 + /// </summary> + Median + } + + /// <summary> + /// Used to mark an area in chart. For example, mark a time interval. + /// |图表标域,常用于标记图表中某个范围的数据。 + /// </summary> + [System.Serializable] + [ComponentHandler(typeof(MarkAreaHandler), true)] + public class MarkArea : MainComponent + { + [SerializeField] private bool m_Show = true; + [SerializeField] private string m_Text = ""; + [SerializeField] private int m_SerieIndex = 0; + [SerializeField] private MarkAreaData m_Start = new MarkAreaData(); + [SerializeField] private MarkAreaData m_End = new MarkAreaData(); + [SerializeField] private ItemStyle m_ItemStyle = new ItemStyle(); + [SerializeField] private LabelStyle m_Label = new LabelStyle(); + public ChartLabel runtimeLabel { get; internal set; } + public Vector3 runtimeLabelPosition { get; internal set; } + public Rect runtimeRect { get; internal set; } + /// <summary> + /// 是否显示标域。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetVerticesDirty(); } + } + /// <summary> + /// The text of markArea. + /// 标域显示的文本。 + /// </summary> + public string text + { + get { return m_Text; } + set { if (PropertyUtil.SetClass(ref m_Text, value)) SetComponentDirty(); } + } + /// <summary> + /// Serie index of markArea. + /// 标域影响的Serie索引。 + /// </summary> + public int serieIndex + { + get { return m_SerieIndex; } + set { if (PropertyUtil.SetStruct(ref m_SerieIndex, value)) SetVerticesDirty(); } + } + /// <summary> + /// 标域范围的起始数据。 + /// </summary> + public MarkAreaData start + { + get { return m_Start; } + set { if (PropertyUtil.SetClass(ref m_Start, value)) SetVerticesDirty(); } + } + /// <summary> + /// 标域范围的结束数据。 + /// </summary> + public MarkAreaData end + { + get { return m_End; } + set { if (PropertyUtil.SetClass(ref m_End, value)) SetVerticesDirty(); } + } + /// <summary> + /// 标域样式。 + /// </summary> + public ItemStyle itemStyle + { + get { return m_ItemStyle; } + set { if (PropertyUtil.SetClass(ref m_ItemStyle, value)) SetVerticesDirty(); } + } + /// <summary> + /// 标域文本样式。 + /// </summary> + public LabelStyle label + { + get { return m_Label; } + set { if (PropertyUtil.SetClass(ref m_Label, value)) SetComponentDirty(); } + } + public override void SetDefaultValue() + { + m_ItemStyle = new ItemStyle(); + m_ItemStyle.opacity = 0.6f; + m_Label = new LabelStyle(); + m_Label.show = true; + } + } + + /// <summary> + /// 标域的数据。 + /// </summary> + [System.Serializable] + public class MarkAreaData : ChildComponent + { + [SerializeField] private MarkAreaType m_Type = MarkAreaType.None; + [SerializeField] private string m_Name; + [SerializeField] private int m_Dimension = 1; + [SerializeField] private float m_XPosition; + [SerializeField] private float m_YPosition; + [SerializeField] private double m_XValue; + [SerializeField] private double m_YValue; + public double runtimeValue { get; internal set; } + /// <summary> + /// Name of the marker, which will display as a label. + /// |标注名称。会作为文字显示。 + /// </summary> + public string name + { + get { return m_Name; } + set { if (PropertyUtil.SetClass(ref m_Name, value)) SetVerticesDirty(); } + } + /// <summary> + /// Special markArea types, are used to label maximum value, minimum value and so on. + /// |特殊的标域类型,用于标注最大值最小值等。 + /// </summary> + public MarkAreaType type + { + get { return m_Type; } + set { if (PropertyUtil.SetStruct(ref m_Type, value)) SetVerticesDirty(); } + } + /// <summary> + /// From which dimension of data to calculate the maximum and minimum value and so on. + /// |从哪个维度的数据计算最大最小值等。 + /// </summary> + public int dimension + { + get { return m_Dimension; } + set { if (PropertyUtil.SetStruct(ref m_Dimension, value)) SetVerticesDirty(); } + } + /// <summary> + /// The x coordinate relative to the origin, in pixels. + /// |相对原点的 x 坐标,单位像素。当type为None时有效。 + /// </summary> + public float xPosition + { + get { return m_XPosition; } + set { if (PropertyUtil.SetStruct(ref m_XPosition, value)) SetVerticesDirty(); } + } + /// <summary> + /// The y coordinate relative to the origin, in pixels. + /// |相对原点的 y 坐标,单位像素。当type为None时有效。 + /// </summary> + public float yPosition + { + get { return m_YPosition; } + set { if (PropertyUtil.SetStruct(ref m_YPosition, value)) SetVerticesDirty(); } + } + /// <summary> + /// The value specified on the X-axis. A value specified when the X-axis is the category axis represents the index of the category axis data, otherwise a specific value. + /// |X轴上的指定值。当X轴为类目轴时指定值表示类目轴数据的索引,否则为具体的值。当type为None时有效。 + /// </summary> + public double xValue + { + get { return m_XValue; } + set { if (PropertyUtil.SetStruct(ref m_XValue, value)) SetVerticesDirty(); } + } + /// <summary> + /// That's the value on the Y-axis. The value specified when the Y axis is the category axis represents the index of the category axis data, otherwise the specific value. + /// |Y轴上的指定值。当Y轴为类目轴时指定值表示类目轴数据的索引,否则为具体的值。当type为None时有效。 + /// </summary> + public double yValue + { + get { return m_YValue; } + set { if (PropertyUtil.SetStruct(ref m_YValue, value)) SetVerticesDirty(); } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkArea.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkArea.cs.meta new file mode 100644 index 0000000..3173d1c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkArea.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1c7f98347a0d54e1c82866b041a473ca +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkAreaHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkAreaHandler.cs new file mode 100644 index 0000000..9e1345b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkAreaHandler.cs @@ -0,0 +1,195 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class MarkAreaHandler : MainComponentHandler<MarkArea> + { + private GameObject m_MarkLineLabelRoot; + private bool m_NeedUpdateLabelPosition; + + public override void InitComponent() + { + m_MarkLineLabelRoot = ChartHelper.AddObject("markarea" + component.index, chart.transform, chart.chartMinAnchor, + chart.chartMaxAnchor, chart.chartPivot, chart.chartSizeDelta); + m_MarkLineLabelRoot.hideFlags = chart.chartHideFlags; + ChartHelper.HideAllObject(m_MarkLineLabelRoot); + InitMarkArea(component); + } + + public override void DrawBase(VertexHelper vh) + { + DrawMarkArea(vh, component); + } + + public override void Update() + { + if (m_NeedUpdateLabelPosition) + { + m_NeedUpdateLabelPosition = false; + if (component.runtimeLabel != null) + { + component.runtimeLabel.SetPosition(component.runtimeLabelPosition); + } + } + } + + private void InitMarkArea(MarkArea markArea) + { + markArea.painter = chart.m_PainterTop; + markArea.refreshComponent = delegate() + { + var label = ChartHelper.AddChartLabel("label", m_MarkLineLabelRoot.transform, markArea.label, chart.theme.axis, + component.text, Color.clear, TextAnchor.MiddleCenter); + UpdateRuntimeData(component); + label.SetActive(markArea.label.show); + label.SetPosition(component.runtimeLabelPosition); + label.SetText(component.text); + markArea.runtimeLabel = label; + }; + markArea.refreshComponent(); + } + + private void DrawMarkArea(VertexHelper vh, MarkArea markArea) + { + if (!markArea.show) return; + var serie = chart.GetSerie(markArea.serieIndex); + if (serie == null || !serie.show || !markArea.show) return; + + UpdateRuntimeData(markArea); + + var colorIndex = chart.GetLegendRealShowNameIndex(serie.legendName); + var serieColor = SerieHelper.GetLineColor(serie, null, chart.theme, colorIndex, false); + var areaColor = markArea.itemStyle.GetColor(serieColor); + UGL.DrawRectangle(vh, markArea.runtimeRect, areaColor, areaColor); + } + + private void UpdateRuntimeData(MarkArea markArea) + { + var serie = chart.GetSerie(markArea.serieIndex); + if (serie == null || !serie.show || !markArea.show) return; + var yAxis = chart.GetChartComponent<YAxis>(serie.yAxisIndex); + var xAxis = chart.GetChartComponent<XAxis>(serie.xAxisIndex); + var grid = chart.GetChartComponent<GridCoord>(xAxis.gridIndex); + var dataZoom = chart.GetDataZoomOfAxis(xAxis); + var showData = serie.GetDataList(dataZoom); + + var lt = GetPosition(markArea.start, serie, dataZoom, xAxis, yAxis, grid, showData, true); + var rb = GetPosition(markArea.end, serie, dataZoom, xAxis, yAxis, grid, showData, false); + var lb = new Vector3(lt.x, rb.y); + + markArea.runtimeRect = new Rect(lb.x, lb.y, rb.x - lb.x, lt.y - lb.y); + UpdateLabelPosition(markArea); + } + + private void UpdateLabelPosition(MarkArea markArea) + { + if (!markArea.label.show) return; + m_NeedUpdateLabelPosition = true; + var rect = markArea.runtimeRect; + switch (markArea.label.position) + { + case LabelStyle.Position.Center: + markArea.runtimeLabelPosition = rect.center; + break; + case LabelStyle.Position.Left: + markArea.runtimeLabelPosition = rect.center + new Vector2(rect.width / 2, 0); + break; + case LabelStyle.Position.Right: + markArea.runtimeLabelPosition = rect.center - new Vector2(rect.width / 2, 0); + break; + case LabelStyle.Position.Top: + markArea.runtimeLabelPosition = rect.center + new Vector2(0, rect.height / 2); + break; + case LabelStyle.Position.Bottom: + markArea.runtimeLabelPosition = rect.center - new Vector2(0, rect.height / 2); + break; + default: + markArea.runtimeLabelPosition = rect.center + new Vector2(0, rect.height / 2); + break; + } + markArea.runtimeLabelPosition += markArea.label.offset; + } + + private Vector3 GetPosition(MarkAreaData data, Serie serie, DataZoom dataZoom, XAxis xAxis, YAxis yAxis, + GridCoord grid, List<SerieData> showData, bool start) + { + var pos = Vector3.zero; + switch (data.type) + { + case MarkAreaType.Min: + data.runtimeValue = SerieHelper.GetMinData(serie, data.dimension, dataZoom); + return GetPosition(xAxis, yAxis, grid, data.runtimeValue, start); + case MarkAreaType.Max: + data.runtimeValue = SerieHelper.GetMaxData(serie, data.dimension, dataZoom); + return GetPosition(xAxis, yAxis, grid, data.runtimeValue, start); + case MarkAreaType.Average: + data.runtimeValue = SerieHelper.GetAverageData(serie, data.dimension, dataZoom); + return GetPosition(xAxis, yAxis, grid, data.runtimeValue, start); + case MarkAreaType.Median: + data.runtimeValue = SerieHelper.GetMedianData(serie, data.dimension, dataZoom); + return GetPosition(xAxis, yAxis, grid, data.runtimeValue, start); + case MarkAreaType.None: + if (data.xPosition != 0 || data.yPosition != 0) + { + var pX = grid.context.x + data.xPosition; + var pY = grid.context.y + data.yPosition; + return new Vector3(pX, pY); + } + else if (data.yValue != 0) + { + data.runtimeValue = data.yValue; + if (yAxis.IsCategory()) + { + var pY = AxisHelper.GetAxisPosition(grid, yAxis, data.yValue, showData.Count, dataZoom); + return start ? + new Vector3(grid.context.x, pY) : + new Vector3(grid.context.x + grid.context.width, pY); + } + else + { + return GetPosition(xAxis, yAxis, grid, data.runtimeValue, start); + } + } + else + { + data.runtimeValue = data.xValue; + if (xAxis.IsCategory()) + { + var pX = AxisHelper.GetAxisPosition(grid, xAxis, data.xValue, showData.Count, dataZoom); + return start ? new Vector3(pX, grid.context.y + grid.context.height) : + new Vector3(pX, grid.context.y); + } + else + { + return GetPosition(xAxis, yAxis, grid, data.xValue, start); + } + } + default: + break; + } + return pos; + } + + private Vector3 GetPosition(Axis xAxis, Axis yAxis, GridCoord grid, double value, bool start) + { + if (yAxis.IsCategory()) + { + var pX = AxisHelper.GetAxisPosition(grid, xAxis, value); + return start ? + new Vector3(pX, grid.context.y + grid.context.height) : + new Vector3(pX, grid.context.y); + } + else + { + var pY = AxisHelper.GetAxisPosition(grid, yAxis, value); + return start ? + new Vector3(grid.context.x, pY + grid.context.height) : + new Vector3(grid.context.x + grid.context.width, pY); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkAreaHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkAreaHandler.cs.meta new file mode 100644 index 0000000..534da72 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkAreaHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f5ffb2d23b0574e6eb5805a2f3783081 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkLine.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkLine.cs new file mode 100644 index 0000000..7692929 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkLine.cs @@ -0,0 +1,256 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// 标线类型 + /// </summary> + public enum MarkLineType + { + None, + /// <summary> + /// 最小值。 + /// </summary> + Min, + /// <summary> + /// 最大值。 + /// </summary> + Max, + /// <summary> + /// 平均值。 + /// </summary> + Average, + /// <summary> + /// 中位数。 + /// </summary> + Median + } + + /// <summary> + /// Use a line in the chart to illustrate. + /// |图表标线。 + /// </summary> + [System.Serializable] + [ComponentHandler(typeof(MarkLineHandler), true)] + public class MarkLine : MainComponent + { + [SerializeField] private bool m_Show = true; + [SerializeField] private int m_SerieIndex = 0; + [SerializeField] private AnimationStyle m_Animation = new AnimationStyle(); + [SerializeField] private List<MarkLineData> m_Data = new List<MarkLineData>(); + + /// <summary> + /// Whether to display the marking line. + /// |是否显示标线。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetVerticesDirty(); } + } + /// <summary> + /// The serie index of markLine. + /// |标线影响的Serie索引。 + /// </summary> + public int serieIndex + { + get { return m_SerieIndex; } + set { if (PropertyUtil.SetStruct(ref m_SerieIndex, value)) SetVerticesDirty(); } + } + /// <summary> + /// The animation of markline. + /// |标线的动画样式。 + /// </summary> + public AnimationStyle animation + { + get { return m_Animation; } + set { if (PropertyUtil.SetClass(ref m_Animation, value)) SetVerticesDirty(); } + } + /// <summary> + /// A list of marked data. When the group of data item is 0, each data item represents a line; + /// When the group is not 0, two data items of the same group represent the starting point and + /// the ending point of the line respectively to form a line. In this case, the relevant style + /// parameters of the line are the parameters of the starting point. + /// |标线的数据列表。当数据项的group为0时,每个数据项表示一条标线;当group不为0时,相同group的两个数据项分别表 + /// 示标线的起始点和终止点来组成一条标线,此时标线的相关样式参数取起始点的参数。 + /// </summary> + public List<MarkLineData> data + { + get { return m_Data; } + set { if (PropertyUtil.SetClass(ref m_Data, value)) SetVerticesDirty(); } + } + + public override void SetDefaultValue() + { + data.Clear(); + var item = new MarkLineData(); + item.name = "average"; + item.type = MarkLineType.Average; + item.lineStyle.type = LineStyle.Type.Dashed; + item.lineStyle.color = Color.clear; + item.startSymbol.show = true; + item.startSymbol.type = SymbolType.Circle; + item.startSymbol.size = 4; + item.endSymbol.show = true; + item.endSymbol.type = SymbolType.Arrow; + item.endSymbol.size = 5; + item.label.show = true; + item.label.numericFormatter = "f1"; + item.label.formatter = "{c}"; + data.Add(item); + } + } + /// <summary> + /// Data of marking line. + /// |图表标线的数据。 + /// </summary> + [System.Serializable] + public class MarkLineData : ChildComponent + { + [SerializeField] private MarkLineType m_Type = MarkLineType.None; + [SerializeField] private string m_Name; + [SerializeField] private int m_Dimension = 1; + [SerializeField] private float m_XPosition; + [SerializeField] private float m_YPosition; + [SerializeField] private double m_XValue; + [SerializeField] private double m_YValue; + [SerializeField] private int m_Group = 0; + [SerializeField] private bool m_ZeroPosition = false; + + [SerializeField] private SymbolStyle m_StartSymbol = new SymbolStyle(); + [SerializeField] private SymbolStyle m_EndSymbol = new SymbolStyle(); + [SerializeField] private LineStyle m_LineStyle = new LineStyle(); + [SerializeField] private LabelStyle m_Label = new LabelStyle(); + //[SerializeField] private Emphasis m_Emphasis = new Emphasis(); + + public Vector3 runtimeStartPosition { get; internal set; } + public Vector3 runtimeEndPosition { get; internal set; } + public Vector3 runtimeCurrentEndPosition { get; internal set; } + public ChartLabel runtimeLabel { get; internal set; } + public double runtimeValue { get; internal set; } + + /// <summary> + /// Name of the marker, which will display as a label. + /// |标线名称,将会作为文字显示。label的formatter可通过{b}显示名称,通过{c}显示数值。 + /// </summary> + public string name + { + get { return m_Name; } + set { if (PropertyUtil.SetClass(ref m_Name, value)) SetVerticesDirty(); } + } + /// <summary> + /// Special label types, are used to label maximum value, minimum value and so on. + /// |特殊的标线类型,用于标注最大值最小值等。 + /// </summary> + public MarkLineType type + { + get { return m_Type; } + set { if (PropertyUtil.SetStruct(ref m_Type, value)) SetVerticesDirty(); } + } + /// <summary> + /// From which dimension of data to calculate the maximum and minimum value and so on. + /// |从哪个维度的数据计算最大最小值等。 + /// </summary> + public int dimension + { + get { return m_Dimension; } + set { if (PropertyUtil.SetStruct(ref m_Dimension, value)) SetVerticesDirty(); } + } + /// <summary> + /// The x coordinate relative to the origin, in pixels. + /// |相对原点的 x 坐标,单位像素。当type为None时有效。 + /// </summary> + public float xPosition + { + get { return m_XPosition; } + set { if (PropertyUtil.SetStruct(ref m_XPosition, value)) SetVerticesDirty(); } + } + /// <summary> + /// The y coordinate relative to the origin, in pixels. + /// |相对原点的 y 坐标,单位像素。当type为None时有效。 + /// </summary> + public float yPosition + { + get { return m_YPosition; } + set { if (PropertyUtil.SetStruct(ref m_YPosition, value)) SetVerticesDirty(); } + } + /// <summary> + /// The value specified on the X-axis. A value specified when the X-axis is the category axis represents the index of the category axis data, otherwise a specific value. + /// |X轴上的指定值。当X轴为类目轴时指定值表示类目轴数据的索引,否则为具体的值。当type为None时有效。 + /// </summary> + public double xValue + { + get { return m_XValue; } + set { if (PropertyUtil.SetStruct(ref m_XValue, value)) SetVerticesDirty(); } + } + /// <summary> + /// That's the value on the Y-axis. The value specified when the Y axis is the category axis represents the index of the category axis data, otherwise the specific value. + /// |Y轴上的指定值。当Y轴为类目轴时指定值表示类目轴数据的索引,否则为具体的值。当type为None时有效。 + /// </summary> + public double yValue + { + get { return m_YValue; } + set { if (PropertyUtil.SetStruct(ref m_YValue, value)) SetVerticesDirty(); } + } + /// <summary> + /// Grouping. When the group is not 0, it means that this data is the starting point or end point of the marking line. Data consistent with the group form a marking line. + /// |分组。当group不为0时,表示这个data是标线的起点或终点,group一致的data组成一条标线。 + /// </summary> + public int group + { + get { return m_Group; } + set { if (PropertyUtil.SetStruct(ref m_Group, value)) SetVerticesDirty(); } + } + /// <summary> + /// Is the origin of the coordinate system. + /// |是否为坐标系原点。 + /// </summary> + public bool zeroPosition + { + get { return m_ZeroPosition; } + set { if (PropertyUtil.SetStruct(ref m_ZeroPosition, value)) SetVerticesDirty(); } + } + /// <summary> + /// The symbol of the start point of markline. + /// |起始点的图形标记。 + /// </summary> + public SymbolStyle startSymbol + { + get { return m_StartSymbol; } + set { if (PropertyUtil.SetClass(ref m_StartSymbol, value)) SetVerticesDirty(); } + } + /// <summary> + /// The symbol of the end point of markline. + /// |结束点的图形标记。 + /// </summary> + public SymbolStyle endSymbol + { + get { return m_EndSymbol; } + set { if (PropertyUtil.SetClass(ref m_EndSymbol, value)) SetVerticesDirty(); } + } + /// <summary> + /// The line style of markline. + /// |标线样式。 + /// </summary> + public LineStyle lineStyle + { + get { return m_LineStyle; } + set { if (PropertyUtil.SetClass(ref m_LineStyle, value)) SetVerticesDirty(); } + } + /// <summary> + /// Text styles of label. You can set position to Start, Middle, and End to display text in different locations. + /// |文本样式。可设置position为Start、Middle和End在不同的位置显示文本。 + /// </summary> + public LabelStyle label + { + get { return m_Label; } + set { if (PropertyUtil.SetClass(ref m_Label, value)) SetVerticesDirty(); } + } + // public Emphasis emphasis + // { + // get { return m_Emphasis; } + // set { if (PropertyUtil.SetClass(ref m_Emphasis, value)) SetVerticesDirty(); } + // } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkLine.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkLine.cs.meta new file mode 100644 index 0000000..5bf2ec6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkLine.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6e728b47a96c74b3f986d9abe3b03934 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkLineHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkLineHandler.cs new file mode 100644 index 0000000..5be581f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkLineHandler.cs @@ -0,0 +1,310 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class MarkLineHandler : MainComponentHandler<MarkLine> + { + private GameObject m_MarkLineLabelRoot; + private bool m_RefreshLabel = false; + + public override void InitComponent() + { + m_MarkLineLabelRoot = ChartHelper.AddObject("markline", chart.transform, chart.chartMinAnchor, + chart.chartMaxAnchor, chart.chartPivot, chart.chartSizeDelta); + m_MarkLineLabelRoot.hideFlags = chart.chartHideFlags; + ChartHelper.HideAllObject(m_MarkLineLabelRoot); + InitMarkLine(component); + } + + public override void DrawTop(VertexHelper vh) + { + DrawMarkLine(vh, component); + } + + public override void Update() + { + if (m_RefreshLabel) + { + m_RefreshLabel = false; + var serie = chart.GetSerie(component.serieIndex); + if (!serie.show || !component.show) return; + foreach (var data in component.data) + { + if (data.runtimeLabel != null) + { + data.runtimeLabel.SetActive(data.label.show); + data.runtimeLabel.SetPosition(MarkLineHelper.GetLabelPosition(data)); + data.runtimeLabel.SetText(MarkLineHelper.GetFormatterContent(serie, data)); + } + } + } + } + + private void InitMarkLine(MarkLine markLine) + { + var serie = chart.GetSerie(markLine.serieIndex); + if (!serie.show || !markLine.show) return; + ResetTempMarkLineGroupData(markLine); + var serieColor = (Color) chart.GetItemColor(serie); + if (m_TempGroupData.Count > 0) + { + foreach (var kv in m_TempGroupData) + { + if (kv.Value.Count >= 2) + { + var data = kv.Value[0]; + InitMarkLineLabel(serie, data, serieColor); + } + } + } + foreach (var data in markLine.data) + { + if (data.group != 0) continue; + InitMarkLineLabel(serie, data, serieColor); + } + } + + private void InitMarkLineLabel(Serie serie, MarkLineData data, Color serieColor) + { + data.painter = chart.m_PainterTop; + data.refreshComponent = delegate() + { + var textName = string.Format("markLine_{0}_{1}", serie.index, data.index); + var content = MarkLineHelper.GetFormatterContent(serie, data); + var label = ChartHelper.AddChartLabel(textName, m_MarkLineLabelRoot.transform, data.label, chart.theme.axis, + content, Color.clear, TextAnchor.MiddleCenter); + + label.SetIconActive(false); + label.SetActive(data.label.show); + label.SetPosition(MarkLineHelper.GetLabelPosition(data)); + data.runtimeLabel = label; + }; + data.refreshComponent(); + } + + private Dictionary<int, List<MarkLineData>> m_TempGroupData = new Dictionary<int, List<MarkLineData>>(); + private void DrawMarkLine(VertexHelper vh, MarkLine markLine) + { + var serie = chart.GetSerie(markLine.serieIndex); + if (!serie.show || !markLine.show) return; + if (markLine.data.Count == 0) return; + var yAxis = chart.GetChartComponent<YAxis>(serie.yAxisIndex); + var xAxis = chart.GetChartComponent<XAxis>(serie.xAxisIndex); + var grid = chart.GetChartComponent<GridCoord>(xAxis.gridIndex); + var dataZoom = chart.GetDataZoomOfAxis(xAxis); + var animation = markLine.animation; + var showData = serie.GetDataList(dataZoom); + var sp = Vector3.zero; + var ep = Vector3.zero; + var colorIndex = chart.GetLegendRealShowNameIndex(serie.serieName); + var serieColor = SerieHelper.GetLineColor(serie, null, chart.theme, colorIndex, false); + animation.InitProgress(0, 1f); + ResetTempMarkLineGroupData(markLine); + if (m_TempGroupData.Count > 0) + { + foreach (var kv in m_TempGroupData) + { + if (kv.Value.Count >= 2) + { + sp = GetSinglePos(xAxis, yAxis, grid, serie, dataZoom, kv.Value[0], showData.Count); + ep = GetSinglePos(xAxis, yAxis, grid, serie, dataZoom, kv.Value[1], showData.Count); + kv.Value[0].runtimeStartPosition = sp; + kv.Value[1].runtimeEndPosition = ep; + DrawMakLineData(vh, kv.Value[0], animation, serie, grid, serieColor, sp, ep); + } + } + } + foreach (var data in markLine.data) + { + if (data.group != 0) continue; + switch (data.type) + { + case MarkLineType.Min: + data.runtimeValue = SerieHelper.GetMinData(serie, data.dimension, dataZoom); + GetStartEndPos(xAxis, yAxis, grid, data.runtimeValue, ref sp, ref ep); + break; + case MarkLineType.Max: + data.runtimeValue = SerieHelper.GetMaxData(serie, data.dimension, dataZoom); + GetStartEndPos(xAxis, yAxis, grid, data.runtimeValue, ref sp, ref ep); + break; + case MarkLineType.Average: + data.runtimeValue = SerieHelper.GetAverageData(serie, data.dimension, dataZoom); + GetStartEndPos(xAxis, yAxis, grid, data.runtimeValue, ref sp, ref ep); + break; + case MarkLineType.Median: + data.runtimeValue = SerieHelper.GetMedianData(serie, data.dimension, dataZoom); + GetStartEndPos(xAxis, yAxis, grid, data.runtimeValue, ref sp, ref ep); + break; + case MarkLineType.None: + if (data.xPosition != 0) + { + data.runtimeValue = data.xPosition; + var pX = grid.context.x + data.xPosition; + sp = new Vector3(pX, grid.context.y); + ep = new Vector3(pX, grid.context.y + grid.context.height); + } + else if (data.yPosition != 0) + { + data.runtimeValue = data.yPosition; + var pY = grid.context.y + data.yPosition; + sp = new Vector3(grid.context.x, pY); + ep = new Vector3(grid.context.x + grid.context.width, pY); + } + else if (data.yValue != 0) + { + data.runtimeValue = data.yValue; + if (yAxis.IsCategory()) + { + var pY = AxisHelper.GetAxisPosition(grid, yAxis, data.yValue, showData.Count, dataZoom); + sp = new Vector3(grid.context.x, pY); + ep = new Vector3(grid.context.x + grid.context.width, pY); + } + else + { + GetStartEndPos(xAxis, yAxis, grid, data.yValue, ref sp, ref ep); + } + } + else + { + data.runtimeValue = data.xValue; + if (xAxis.IsCategory()) + { + var pX = AxisHelper.GetAxisPosition(grid, xAxis, data.xValue, showData.Count, dataZoom); + sp = new Vector3(pX, grid.context.y); + ep = new Vector3(pX, grid.context.y + grid.context.height); + } + else + { + GetStartEndPos(xAxis, yAxis, grid, data.xValue, ref sp, ref ep); + } + } + break; + default: + break; + } + data.runtimeStartPosition = sp; + data.runtimeEndPosition = ep; + DrawMakLineData(vh, data, animation, serie, grid, serieColor, sp, ep); + } + if (!animation.IsFinish()) + { + animation.CheckProgress(1f); + chart.RefreshTopPainter(); + } + } + + private void ResetTempMarkLineGroupData(MarkLine markLine) + { + m_TempGroupData.Clear(); + for (int i = 0; i < markLine.data.Count; i++) + { + var data = markLine.data[i]; + // data.index = i; + data.index = markLine.index; + if (data.group == 0) continue; + if (!m_TempGroupData.ContainsKey(data.group)) + { + m_TempGroupData[data.group] = new List<MarkLineData>(); + } + m_TempGroupData[data.group].Add(data); + } + } + + private void DrawMakLineData(VertexHelper vh, MarkLineData data, AnimationStyle animation, Serie serie, + GridCoord grid, Color32 serieColor, Vector3 sp, Vector3 ep) + { + if (!animation.IsFinish()) + ep = Vector3.Lerp(sp, ep, animation.GetCurrDetail()); + data.runtimeCurrentEndPosition = ep; + if (sp != Vector3.zero || ep != Vector3.zero) + { + m_RefreshLabel = true; + chart.ClampInChart(ref sp); + chart.ClampInChart(ref ep); + var theme = chart.theme.axis; + var lineColor = ChartHelper.IsClearColor(data.lineStyle.color) ? serieColor : data.lineStyle.color; + var lineWidth = data.lineStyle.width == 0 ? theme.lineWidth : data.lineStyle.width; + ChartDrawer.DrawLineStyle(vh, data.lineStyle, sp, ep, lineWidth, LineStyle.Type.Dashed, lineColor, lineColor); + if (data.startSymbol != null && data.startSymbol.show) + { + DrawMarkLineSymbol(vh, data.startSymbol, serie, grid, chart.theme, sp, sp, lineColor); + } + if (data.endSymbol != null && data.endSymbol.show) + { + DrawMarkLineSymbol(vh, data.endSymbol, serie, grid, chart.theme, ep, sp, lineColor); + } + } + } + + private void DrawMarkLineSymbol(VertexHelper vh, SymbolStyle symbol, Serie serie, GridCoord grid, ThemeStyle theme, + Vector3 pos, Vector3 startPos, Color32 lineColor) + { + var tickness = SerieHelper.GetSymbolBorder(serie, null, theme, false); + var borderColor = SerieHelper.GetSymbolBorderColor(serie, null, theme, false); + var cornerRadius = SerieHelper.GetSymbolCornerRadius(serie, null, false); + chart.DrawClipSymbol(vh, symbol.type, symbol.size, tickness, pos, lineColor, lineColor, + ColorUtil.clearColor32, borderColor, symbol.gap, true, cornerRadius, grid, startPos); + } + + private void GetStartEndPos(Axis xAxis, Axis yAxis, GridCoord grid, double value, ref Vector3 sp, ref Vector3 ep) + { + if (xAxis.IsCategory()) + { + var pY = AxisHelper.GetAxisPosition(grid, yAxis, value); + sp = new Vector3(grid.context.x, pY); + ep = new Vector3(grid.context.x + grid.context.width, pY); + } + else + { + var pX = AxisHelper.GetAxisPosition(grid, xAxis, value); + sp = new Vector3(pX, grid.context.y); + ep = new Vector3(pX, grid.context.y + grid.context.height); + } + } + + private float GetAxisPosition(GridCoord grid, Axis axis, DataZoom dataZoom, int dataCount, double value) + { + return AxisHelper.GetAxisPosition(grid, axis, value, dataCount, dataZoom); + } + + private Vector3 GetSinglePos(Axis xAxis, Axis yAxis, GridCoord grid, Serie serie, DataZoom dataZoom, MarkLineData data, + int serieDataCount) + { + switch (data.type) + { + case MarkLineType.Min: + var serieData = SerieHelper.GetMinSerieData(serie, data.dimension, dataZoom); + data.runtimeValue = serieData.GetData(data.dimension); + var pX = GetAxisPosition(grid, xAxis, dataZoom, serieDataCount, serieData.index); + var pY = GetAxisPosition(grid, yAxis, dataZoom, serieDataCount, data.runtimeValue); + return new Vector3(pX, pY); + case MarkLineType.Max: + serieData = SerieHelper.GetMaxSerieData(serie, data.dimension, dataZoom); + data.runtimeValue = serieData.GetData(data.dimension); + pX = GetAxisPosition(grid, xAxis, dataZoom, serieDataCount, serieData.index); + pY = GetAxisPosition(grid, yAxis, dataZoom, serieDataCount, data.runtimeValue); + return new Vector3(pX, pY); + case MarkLineType.None: + if (data.zeroPosition) + { + data.runtimeValue = 0; + return grid.context.position; + } + else + { + pX = data.xPosition != 0 ? grid.context.x + data.xPosition : + GetAxisPosition(grid, xAxis, dataZoom, serieDataCount, data.xValue); + pY = data.yPosition != 0 ? grid.context.y + data.yPosition : + GetAxisPosition(grid, yAxis, dataZoom, serieDataCount, data.yValue); + data.runtimeValue = data.yValue; + return new Vector3(pX, pY); + } + default: + return grid.context.position; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkLineHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkLineHandler.cs.meta new file mode 100644 index 0000000..0b0c3dd --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkLineHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: faa35bab8fc6e42d5b5d19731c1a20a0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkLineHelper.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkLineHelper.cs new file mode 100644 index 0000000..98511fa --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkLineHelper.cs @@ -0,0 +1,48 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + internal static class MarkLineHelper + { + public static string GetFormatterContent(Serie serie, MarkLineData data) + { + var serieLabel = data.label; + var numericFormatter = serieLabel.numericFormatter; + if (serieLabel.formatterFunction != null) + { + return serieLabel.formatterFunction(data.index, data.runtimeValue, null); + } + if (string.IsNullOrEmpty(serieLabel.formatter)) + return ChartCached.NumberToStr(data.runtimeValue, numericFormatter); + else + { + var content = serieLabel.formatter; + FormatterHelper.ReplaceSerieLabelContent(ref content, numericFormatter, serie.dataCount, data.runtimeValue, + 0, serie.serieName, data.name, data.name, Color.clear); + return content; + } + } + + public static Vector3 GetLabelPosition(MarkLineData data) + { + if (!data.label.show) return Vector3.zero; + var dir = (data.runtimeEndPosition - data.runtimeStartPosition).normalized; + var horizontal = Mathf.Abs(Vector3.Dot(dir, Vector3.right)) == 1; + var labelWidth = data.runtimeLabel == null ? 50 : data.runtimeLabel.GetTextWidth(); + var labelHeight = data.runtimeLabel == null ? 20 : data.runtimeLabel.GetTextHeight(); + switch (data.label.position) + { + case LabelStyle.Position.Start: + if (horizontal) return data.runtimeStartPosition + data.label.offset + labelWidth / 2 * Vector3.left; + else return data.runtimeStartPosition + data.label.offset + labelHeight / 2 * Vector3.down; + case LabelStyle.Position.Middle: + var center = (data.runtimeStartPosition + data.runtimeCurrentEndPosition) / 2; + if (horizontal) return center + data.label.offset + labelHeight / 2 * Vector3.up; + else return center + data.label.offset + labelWidth / 2 * Vector3.right; + default: + if (horizontal) return data.runtimeCurrentEndPosition + data.label.offset + labelWidth / 2 * Vector3.right; + else return data.runtimeCurrentEndPosition + data.label.offset + labelHeight / 2 * Vector3.up; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkLineHelper.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkLineHelper.cs.meta new file mode 100644 index 0000000..e95ca4b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Mark/MarkLineHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b472a7e4755b74fb6a3ec2c410650833 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar.meta new file mode 100644 index 0000000..eae8071 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5fb4a3817487149f680a509a5247105e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar/RadarCoord.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar/RadarCoord.cs new file mode 100644 index 0000000..8a2c6bb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar/RadarCoord.cs @@ -0,0 +1,447 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + /// <summary> + /// Radar coordinate conponnet for radar charts. + /// 雷达图坐标系组件,只适用于雷达图。 + /// </summary> + [System.Serializable] + [ComponentHandler(typeof(RadarCoordHandler), true)] + [CoordOptions(typeof(RadarCoord))] + public class RadarCoord : CoordSystem, ISerieContainer + { + /// <summary> + /// Radar render type, in which 'Polygon' and 'Circle' are supported. + /// |雷达图绘制类型,支持 'Polygon' 和 'Circle'。 + /// </summary> + public enum Shape + { + Polygon, + Circle + } + /// <summary> + /// The position type of radar. + /// |显示位置。 + /// </summary> + public enum PositionType + { + /// <summary> + /// Display at the vertex. + /// |显示在顶点处。 + /// </summary> + Vertice, + /// <summary> + /// Display at the middle of line. + /// |显示在两者之间。 + /// </summary> + Between, + } + /// <summary> + /// Indicator of radar chart, which is used to assign multiple variables(dimensions) in radar chart. + /// |雷达图的指示器,用来指定雷达图中的多个变量(维度)。 + /// </summary> + [System.Serializable] + public class Indicator + { + [SerializeField] private string m_Name; + [SerializeField] private double m_Max; + [SerializeField] private double m_Min; + [SerializeField] private double[] m_Range = new double[2] { 0, 0 }; + + /// <summary> + /// The name of indicator. + /// |指示器名称。 + /// </summary> + public string name { get { return FormatterHelper.TrimAndReplaceLine(m_Name); } set { m_Name = value; } } + /// <summary> + /// The maximum value of indicator, with default value of 0, but we recommend to set it manually. + /// |指示器的最大值,默认为 0 无限制。 + /// </summary> + public double max { get { return m_Max; } set { m_Max = value; } } + /// <summary> + /// The minimum value of indicator, with default value of 0. + /// |指示器的最小值,默认为 0 无限制。 + /// </summary> + public double min { get { return m_Min; } set { m_Min = value; } } + /// <summary> + /// the text conponent of indicator. + /// |指示器的文本组件。 + /// </summary> + public Text text { get; set; } + /// <summary> + /// Normal range. When the value is outside this range, the display color is automatically changed. + /// |正常值范围。当数值不在这个范围时,会自动变更显示颜色。 + /// </summary> + public double[] range + { + get { return m_Range; } + set { if (value != null && value.Length == 2) { m_Range = value; } } + } + + public bool IsInRange(double value) + { + if (m_Range == null || m_Range.Length < 2) return true; + if (m_Range[0] != 0 || m_Range[1] != 0) + return value >= m_Range[0] && value <= m_Range[1]; + else + return true; + } + } + + [SerializeField] private bool m_Show; + [SerializeField] private Shape m_Shape; + [SerializeField] private float m_Radius = 100; + [SerializeField] private int m_SplitNumber = 5; + [SerializeField] private float[] m_Center = new float[2] { 0.5f, 0.5f }; + [SerializeField] private AxisLine m_AxisLine = AxisLine.defaultAxisLine; + [SerializeField] private AxisName m_AxisName = AxisName.defaultAxisName; + [SerializeField] private AxisSplitLine m_SplitLine = AxisSplitLine.defaultSplitLine; + [SerializeField] private AxisSplitArea m_SplitArea = AxisSplitArea.defaultSplitArea; + [SerializeField] private bool m_Indicator = true; + [SerializeField] private PositionType m_PositionType = PositionType.Vertice; + [SerializeField] private float m_IndicatorGap = 10; + [SerializeField] private int m_CeilRate = 0; + [SerializeField] private bool m_IsAxisTooltip; + [SerializeField] private Color32 m_OutRangeColor = Color.red; + [SerializeField] private bool m_ConnectCenter = false; + [SerializeField] private bool m_LineGradient = true; + [SerializeField] private List<Indicator> m_IndicatorList = new List<Indicator>(); + + public RadarCoordContext context = new RadarCoordContext(); + + /// <summary> + /// [default:true] + /// Set this to false to prevent the radar from showing. + /// |是否显示雷达坐标系组件。 + /// </summary> + public bool show { get { return m_Show; } set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetComponentDirty(); } } + /// <summary> + /// Radar render type, in which 'Polygon' and 'Circle' are supported. + /// |雷达图绘制类型,支持 'Polygon' 和 'Circle'。 + /// </summary> + /// <value></value> + public Shape shape + { + get { return m_Shape; } + set { if (PropertyUtil.SetStruct(ref m_Shape, value)) SetAllDirty(); } + } + /// <summary> + /// the radius of radar. + /// |雷达图的半径。 + /// </summary> + public float radius + { + get { return m_Radius; } + set { if (PropertyUtil.SetStruct(ref m_Radius, value)) SetAllDirty(); } + } + /// <summary> + /// Segments of indicator axis. + /// |指示器轴的分割段数。 + /// </summary> + public int splitNumber + { + get { return m_SplitNumber; } + set { if (PropertyUtil.SetStruct(ref m_SplitNumber, value)) SetAllDirty(); } + } + /// <summary> + /// the center of radar chart. + /// |雷达图的中心点。数组的第一项是横坐标,第二项是纵坐标。 + /// 当值为0-1之间时表示百分比,设置成百分比时第一项是相对于容器宽度,第二项是相对于容器高度。 + /// </summary> + public float[] center + { + get { return m_Center; } + set { if (value != null) { m_Center = value; SetAllDirty(); } } + } + /// <summary> + /// axis line. + /// |轴线。 + /// </summary> + public AxisLine axisLine + { + get { return m_AxisLine; } + set { if (PropertyUtil.SetClass(ref m_AxisLine, value, true)) SetAllDirty(); } + } + /// <summary> + /// Name options for radar indicators. + /// |雷达图每个指示器名称的配置项。 + /// </summary> + public AxisName axisName + { + get { return m_AxisName; } + set { if (PropertyUtil.SetClass(ref m_AxisName, value, true)) SetAllDirty(); } + } + /// <summary> + /// split line. + /// |分割线。 + /// </summary> + public AxisSplitLine splitLine + { + get { return m_SplitLine; } + set { if (PropertyUtil.SetClass(ref m_SplitLine, value, true)) SetAllDirty(); } + } + /// <summary> + /// Split area of axis in grid area. + /// |分割区域。 + /// </summary> + public AxisSplitArea splitArea + { + get { return m_SplitArea; } + set { if (PropertyUtil.SetClass(ref m_SplitArea, value, true)) SetAllDirty(); } + } + /// <summary> + /// Whether to show indicator. + /// |是否显示指示器。 + /// </summary> + public bool indicator + { + get { return m_Indicator; } + set { if (PropertyUtil.SetStruct(ref m_Indicator, value)) SetComponentDirty(); } + } + /// <summary> + /// The gap of indicator and radar. + /// |指示器和雷达的间距。 + /// </summary> + public float indicatorGap + { + get { return m_IndicatorGap; } + set { if (PropertyUtil.SetStruct(ref m_IndicatorGap, value)) SetComponentDirty(); } + } + /// <summary> + /// The ratio of maximum and minimum values rounded upward. The default is 0, which is automatically calculated. + /// |最大最小值向上取整的倍率。默认为0时自动计算。 + /// </summary> + public int ceilRate + { + get { return m_CeilRate; } + set { if (PropertyUtil.SetStruct(ref m_CeilRate, value < 0 ? 0 : value)) SetAllDirty(); } + } + /// <summary> + /// 是否Tooltip显示轴线上的所有数据。 + /// </summary> + public bool isAxisTooltip + { + get { return m_IsAxisTooltip; } + set { if (PropertyUtil.SetStruct(ref m_IsAxisTooltip, value)) SetAllDirty(); } + } + /// <summary> + /// The position type of indicator. + /// |显示位置类型。 + /// </summary> + public PositionType positionType + { + get { return m_PositionType; } + set { if (PropertyUtil.SetStruct(ref m_PositionType, value)) SetAllDirty(); } + } + /// <summary> + /// The color displayed when data out of range. + /// |数值超出范围时显示的颜色。 + /// </summary> + public Color32 outRangeColor + { + get { return m_OutRangeColor; } + set { if (PropertyUtil.SetStruct(ref m_OutRangeColor, value)) SetAllDirty(); } + } + /// <summary> + /// Whether serie data connect to radar center with line. + /// |数值是否连线到中心点。 + /// </summary> + public bool connectCenter + { + get { return m_ConnectCenter; } + set { if (PropertyUtil.SetStruct(ref m_ConnectCenter, value)) SetAllDirty(); } + } + /// <summary> + /// Whether need gradient for data line. + /// |数值线段是否需要渐变。 + /// </summary> + public bool lineGradient + { + get { return m_LineGradient; } + set { if (PropertyUtil.SetStruct(ref m_LineGradient, value)) SetAllDirty(); } + } + /// <summary> + /// the indicator list. + /// |指示器列表。 + /// </summary> + public List<Indicator> indicatorList { get { return m_IndicatorList; } } + + public bool IsPointerEnter() + { + return context.isPointerEnter; + } + + public override void SetDefaultValue() + { + m_Show = true; + m_Shape = Shape.Polygon; + m_Radius = 0.35f; + m_SplitNumber = 5; + m_Indicator = true; + m_IndicatorList = new List<Indicator>(5) + { + new Indicator() { name = "indicator1", max = 0 }, + new Indicator() { name = "indicator2", max = 0 }, + new Indicator() { name = "indicator3", max = 0 }, + new Indicator() { name = "indicator4", max = 0 }, + new Indicator() { name = "indicator5", max = 0 }, + }; + center[0] = 0.5f; + center[1] = 0.4f; + splitLine.show = true; + splitArea.show = true; + axisName.show = true; + axisName.name = null; + } + + private bool IsEqualsIndicatorList(List<Indicator> indicators1, List<Indicator> indicators2) + { + if (indicators1.Count != indicators2.Count) return false; + for (int i = 0; i < indicators1.Count; i++) + { + var indicator1 = indicators1[i]; + var indicator2 = indicators2[i]; + if (!indicator1.Equals(indicator2)) return false; + } + return true; + } + + public bool IsInIndicatorRange(int index, double value) + { + var indicator = GetIndicator(index); + return indicator == null ? true : indicator.IsInRange(value); + } + + public double GetIndicatorMin(int index) + { + if (index >= 0 && index < m_IndicatorList.Count) + { + return m_IndicatorList[index].min; + } + return 0; + } + public double GetIndicatorMax(int index) + { + if (index >= 0 && index < m_IndicatorList.Count) + { + return m_IndicatorList[index].max; + } + return 0; + } + + internal void UpdateRadarCenter(Vector3 chartPosition, float chartWidth, float chartHeight) + { + if (center.Length < 2) return; + var centerX = center[0] <= 1 ? chartWidth * center[0] : center[0]; + var centerY = center[1] <= 1 ? chartHeight * center[1] : center[1]; + context.center = chartPosition + new Vector3(centerX, centerY); + if (radius <= 0) + { + context.radius = 0; + } + else if (radius <= 1) + { + context.radius = Mathf.Min(chartWidth, chartHeight) * radius; + } + else + { + context.radius = radius; + } + if (shape == RadarCoord.Shape.Polygon && positionType == PositionType.Between) + { + var angle = Mathf.PI / indicatorList.Count; + context.dataRadius = context.radius * Mathf.Cos(angle); + } + else + { + context.dataRadius = context.radius; + } + } + + public Vector3 GetIndicatorPosition(int index) + { + int indicatorNum = indicatorList.Count; + var angle = 0f; + switch (positionType) + { + case PositionType.Vertice: + angle = 2 * Mathf.PI / indicatorNum * index; + break; + case PositionType.Between: + angle = 2 * Mathf.PI / indicatorNum * (index + 0.5f); + break; + } + var x = context.center.x + (context.radius + indicatorGap) * Mathf.Sin(angle); + var y = context.center.y + (context.radius + indicatorGap) * Mathf.Cos(angle); + return new Vector3(x, y); + } + + public void AddIndicator(RadarCoord.Indicator indicator) + { + indicatorList.Add(indicator); + SetAllDirty(); + } + + public RadarCoord.Indicator AddIndicator(string name, float min, float max) + { + var indicator = new RadarCoord.Indicator(); + indicator.name = name; + indicator.min = min; + indicator.max = max; + indicatorList.Add(indicator); + SetAllDirty(); + return indicator; + } + + public bool UpdateIndicator(int indicatorIndex, string name, float min, float max) + { + var indicator = GetIndicator(indicatorIndex); + if (indicator == null) return false; + indicator.name = name; + indicator.min = min; + indicator.max = max; + SetAllDirty(); + return true; + } + + public RadarCoord.Indicator GetIndicator(int indicatorIndex) + { + if (indicatorIndex < 0 || indicatorIndex > indicatorList.Count - 1) return null; + return indicatorList[indicatorIndex]; + } + + public override void ClearData() + { + indicatorList.Clear(); + } + + public string GetFormatterIndicatorContent(int indicatorIndex) + { + var indicator = GetIndicator(indicatorIndex); + if (indicator == null) + return string.Empty; + else + return GetFormatterIndicatorContent(indicator.name); + } + + public string GetFormatterIndicatorContent(string indicatorName) + { + if (string.IsNullOrEmpty(indicatorName)) + return indicatorName; + + if (string.IsNullOrEmpty(m_AxisName.labelStyle.formatter)) + { + return indicatorName; + } + else + { + var content = m_AxisName.labelStyle.formatter; + FormatterHelper.ReplaceAxisLabelContent(ref content, indicatorName); + return content; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar/RadarCoord.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar/RadarCoord.cs.meta new file mode 100644 index 0000000..6d3d5aa --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar/RadarCoord.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 876512c564bd144be99d0acbe079cf8b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar/RadarCoordContext.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar/RadarCoordContext.cs new file mode 100644 index 0000000..dc45f60 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar/RadarCoordContext.cs @@ -0,0 +1,22 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + public class RadarCoordContext : MainComponentContext + { + /// <summary> + /// the center position of radar in container. + /// |雷达图在容器中的具体中心点。 + /// </summary> + public Vector3 center { get; internal set; } + /// <summary> + /// the true radius of radar. + /// |雷达图的运行时实际半径。 + /// </summary> + public float radius { get; internal set; } + public float dataRadius { get; internal set; } + public bool isPointerEnter { get; set; } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar/RadarCoordContext.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar/RadarCoordContext.cs.meta new file mode 100644 index 0000000..147702f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar/RadarCoordContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5f7419e8466e048cb9689ab85d20e4de +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar/RadarCoordHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar/RadarCoordHandler.cs new file mode 100644 index 0000000..4c72ccb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar/RadarCoordHandler.cs @@ -0,0 +1,170 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class RadarCoordHandler : MainComponentHandler<RadarCoord> + { + private const string INDICATOR_TEXT = "indicator"; + + public override void InitComponent() + { + InitRadarCoord(component); + } + + public override void Update() + { + if (!chart.isPointerInChart) + { + component.context.isPointerEnter = false; + return; + } + var radar = component; + radar.context.isPointerEnter = radar.show && + Vector3.Distance(radar.context.center, chart.pointerPos) <= radar.context.radius; + } + + public override void DrawBase(VertexHelper vh) + { + DrawRadarCoord(vh, component); + } + + private void InitRadarCoord(RadarCoord radar) + { + float txtHig = 20; + radar.painter = chart.GetPainter(radar.index); + radar.refreshComponent = delegate() + { + radar.UpdateRadarCenter(chart.chartPosition, chart.chartWidth, chart.chartHeight); + var radarObject = ChartHelper.AddObject("Radar" + radar.index, chart.transform, chart.chartMinAnchor, + chart.chartMaxAnchor, chart.chartPivot, chart.chartSizeDelta); + radar.gameObject = radarObject; + radar.gameObject.hideFlags = chart.chartHideFlags; + ChartHelper.HideAllObject(radarObject.transform, INDICATOR_TEXT); + for (int i = 0; i < radar.indicatorList.Count; i++) + { + var indicator = radar.indicatorList[i]; + var pos = radar.GetIndicatorPosition(i); + var objName = INDICATOR_TEXT + "_" + i; + + var label = ChartHelper.AddChartLabel(objName, radarObject.transform, radar.axisName.labelStyle, + chart.theme.common, radar.GetFormatterIndicatorContent(i), Color.clear, TextAnchor.MiddleCenter); + label.SetActive(radar.indicator && radar.axisName.labelStyle.show); + AxisHelper.AdjustCircleLabelPos(label, pos, radar.context.center, txtHig, radar.axisName.labelStyle.offset); + } + chart.RefreshBasePainter(); + }; + radar.refreshComponent.Invoke(); + } + + private void DrawRadarCoord(VertexHelper vh, RadarCoord radar) + { + if (!radar.show) return; + radar.UpdateRadarCenter(chart.chartPosition, chart.chartWidth, chart.chartHeight); + if (radar.shape == RadarCoord.Shape.Circle) + { + DrawCricleRadar(vh, radar); + } + else + { + DrawPolygonRadar(vh, radar); + } + } + + private void DrawCricleRadar(VertexHelper vh, RadarCoord radar) + { + float insideRadius = 0, outsideRadius = 0; + float block = radar.context.radius / radar.splitNumber; + int indicatorNum = radar.indicatorList.Count; + Vector3 p = radar.context.center; + Vector3 p1; + float angle = 2 * Mathf.PI / indicatorNum; + var lineColor = radar.axisLine.GetColor(chart.theme.axis.splitLineColor); + var lineWidth = radar.axisLine.GetWidth(chart.theme.axis.lineWidth); + var lineType = radar.axisLine.GetType(chart.theme.axis.lineType); + var splitLineColor = radar.splitLine.GetColor(chart.theme.axis.splitLineColor); + var splitLineWidth = radar.splitLine.GetWidth(chart.theme.axis.splitLineWidth); + for (int i = 0; i < radar.splitNumber; i++) + { + var color = radar.splitArea.GetColor(i, chart.theme.axis); + outsideRadius = insideRadius + block; + if (radar.splitArea.show) + { + UGL.DrawDoughnut(vh, p, insideRadius, outsideRadius, color, Color.clear, + 0, 360, chart.settings.cicleSmoothness); + } + if (radar.splitLine.show) + { + UGL.DrawEmptyCricle(vh, p, outsideRadius, splitLineWidth, splitLineColor, + Color.clear, chart.settings.cicleSmoothness); + } + insideRadius = outsideRadius; + } + if (radar.axisLine.show) + { + for (int j = 0; j <= indicatorNum; j++) + { + float currAngle = j * angle; + p1 = new Vector3(p.x + outsideRadius * Mathf.Sin(currAngle), + p.y + outsideRadius * Mathf.Cos(currAngle)); + ChartDrawer.DrawLineStyle(vh, lineType, lineWidth, p, p1, lineColor); + } + } + } + + private void DrawPolygonRadar(VertexHelper vh, RadarCoord radar) + { + float insideRadius = 0, outsideRadius = 0; + float block = radar.context.radius / radar.splitNumber; + int indicatorNum = radar.indicatorList.Count; + Vector3 p1, p2, p3, p4; + Vector3 p = radar.context.center; + float angle = 2 * Mathf.PI / indicatorNum; + var lineColor = radar.axisLine.GetColor(chart.theme.axis.splitLineColor); + var lineWidth = radar.axisLine.GetWidth(chart.theme.axis.lineWidth); + var lineType = radar.axisLine.GetType(chart.theme.axis.lineType); + var splitLineColor = radar.splitLine.GetColor(chart.theme.axis.splitLineColor); + var splitLineWidth = radar.splitLine.GetWidth(chart.theme.axis.splitLineWidth); + var splitLineType = radar.splitLine.GetType(chart.theme.axis.splitLineType); + for (int i = 0; i < radar.splitNumber; i++) + { + var color = radar.splitArea.GetColor(i, chart.theme.axis); + outsideRadius = insideRadius + block; + p1 = new Vector3(p.x + insideRadius * Mathf.Sin(0), p.y + insideRadius * Mathf.Cos(0)); + p2 = new Vector3(p.x + outsideRadius * Mathf.Sin(0), p.y + outsideRadius * Mathf.Cos(0)); + for (int j = 0; j <= indicatorNum; j++) + { + float currAngle = j * angle; + p3 = new Vector3(p.x + outsideRadius * Mathf.Sin(currAngle), + p.y + outsideRadius * Mathf.Cos(currAngle)); + p4 = new Vector3(p.x + insideRadius * Mathf.Sin(currAngle), + p.y + insideRadius * Mathf.Cos(currAngle)); + if (radar.splitArea.show) + { + UGL.DrawQuadrilateral(vh, p1, p2, p3, p4, color); + } + if (radar.splitLine.NeedShow(i)) + { + ChartDrawer.DrawLineStyle(vh, splitLineType, splitLineWidth, p2, p3, splitLineColor); + } + p1 = p4; + p2 = p3; + } + insideRadius = outsideRadius; + } + if (radar.axisLine.show) + { + for (int j = 0; j <= indicatorNum; j++) + { + float currAngle = j * angle; + p3 = new Vector3(p.x + outsideRadius * Mathf.Sin(currAngle), + p.y + outsideRadius * Mathf.Cos(currAngle)); + ChartDrawer.DrawLineStyle(vh, lineType, lineWidth, p, p3, lineColor); + } + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar/RadarCoordHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar/RadarCoordHandler.cs.meta new file mode 100644 index 0000000..1c042d0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Radar/RadarCoordHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 27622e3c95fec42daafff901970daf8f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Settings.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Settings.meta new file mode 100644 index 0000000..d09a812 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Settings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 592a52c7f32a046c689bd54aae7eff59 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Settings/Settings.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Settings/Settings.cs new file mode 100644 index 0000000..4d8bc80 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Settings/Settings.cs @@ -0,0 +1,169 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// Global parameter setting component. The default value can be used in general, and can be adjusted when necessary. + /// |全局参数设置组件。一般情况下可使用默认值,当有需要时可进行调整。 + /// </summary> + [Serializable] + public class Settings : MainComponent + { + [SerializeField] private bool m_Show = true; + [SerializeField][Range(1, 20)] protected int m_MaxPainter = 10; + [SerializeField] protected bool m_ReversePainter = false; + [SerializeField] protected Material m_BasePainterMaterial; + [SerializeField] protected Material m_SeriePainterMaterial; + [SerializeField] protected Material m_TopPainterMaterial; + [SerializeField][Range(1, 10)] protected float m_LineSmoothStyle = 3f; + [SerializeField][Range(1f, 20)] protected float m_LineSmoothness = 2f; + [SerializeField][Range(0.5f, 20)] protected float m_LineSegmentDistance = 3f; + [SerializeField][Range(1, 10)] protected float m_CicleSmoothness = 2f; + [SerializeField] protected float m_LegendIconLineWidth = 2; + [SerializeField] private float[] m_LegendIconCornerRadius = new float[] { 0.25f, 0.25f, 0.25f, 0.25f }; + + public bool show { get { return m_Show; } } + /// <summary> + /// max painter. + /// |设定的painter数量。 + /// </summary> + public int maxPainter + { + get { return m_MaxPainter; } + set { if (PropertyUtil.SetStruct(ref m_MaxPainter, value < 0 ? 1 : value)) SetVerticesDirty(); } + } + /// <summary> + /// Painter是否逆序。逆序时index大的serie最先绘制。 + /// </summary> + public bool reversePainter + { + get { return m_ReversePainter; } + set { if (PropertyUtil.SetStruct(ref m_ReversePainter, value)) SetVerticesDirty(); } + } + /// <summary> + /// Base Pointer 材质球,设置后会影响Axis等。 + /// </summary> + public Material basePainterMaterial + { + get { return m_BasePainterMaterial; } + set { if (PropertyUtil.SetClass(ref m_BasePainterMaterial, value)) SetComponentDirty(); } + } + /// <summary> + /// Serie Pointer 材质球,设置后会影响所有Serie。 + /// </summary> + public Material seriePainterMaterial + { + get { return m_SeriePainterMaterial; } + set { if (PropertyUtil.SetClass(ref m_SeriePainterMaterial, value)) SetComponentDirty(); } + } + /// <summary> + /// Top Pointer 材质球,设置后会影响Tooltip等。 + /// </summary> + public Material topPainterMaterial + { + get { return m_TopPainterMaterial; } + set { if (PropertyUtil.SetClass(ref m_TopPainterMaterial, value)) SetComponentDirty(); } + } + /// <summary> + /// Curve smoothing factor. By adjusting the smoothing coefficient, the curvature of the curve can be changed, + /// and different curves with slightly different appearance can be obtained. + /// |曲线平滑系数。通过调整平滑系数可以改变曲线的曲率,得到外观稍微有变化的不同曲线。 + /// </summary> + public float lineSmoothStyle + { + get { return m_LineSmoothStyle; } + set { if (PropertyUtil.SetStruct(ref m_LineSmoothStyle, value < 0 ? 1f : value)) SetVerticesDirty(); } + } + /// <summary> + /// Smoothness of curve. The smaller the value, the smoother the curve, but the number of vertices will increase. + /// |When the area with gradient is filled, the larger the value, the worse the transition effect. + /// |曲线平滑度。值越小曲线越平滑,但顶点数也会随之增加。当开启有渐变的区域填充时,数值越大渐变过渡效果越差。 + /// </summary> + /// <value></value> + public float lineSmoothness + { + get { return m_LineSmoothness; } + set { if (PropertyUtil.SetStruct(ref m_LineSmoothStyle, value < 0 ? 1f : value)) SetVerticesDirty(); } + } + /// <summary> + /// The partition distance of a line segment. A line in a normal line chart is made up of many segments, + /// the number of which is determined by the change in value. The smaller the number of segments, + /// the higher the number of vertices. When the area with gradient is filled, the larger the value, the worse the transition effect. + /// |线段的分割距离。普通折线图的线是由很多线段组成,段数由该数值决定。值越小段数越多,但顶点数也会随之增加。当开启有渐变的区域填充时,数值越大渐变过渡效果越差。 + /// </summary> + /// <value></value> + public float lineSegmentDistance + { + get { return m_LineSegmentDistance; } + set { if (PropertyUtil.SetStruct(ref m_LineSegmentDistance, value < 0 ? 1f : value)) SetVerticesDirty(); } + } + /// <summary> + /// the smoothess of cricle. + /// |圆形的平滑度。数越小圆越平滑,但顶点数也会随之增加。 + /// </summary> + public float cicleSmoothness + { + get { return m_CicleSmoothness; } + set { if (PropertyUtil.SetStruct(ref m_CicleSmoothness, value < 0 ? 1f : value)) SetVerticesDirty(); } + } + + /// <summary> + /// the width of line serie legend. + /// |Line类型图例图标的线条宽度。 + /// </summary> + public float legendIconLineWidth + { + get { return m_LegendIconLineWidth; } + set { if (PropertyUtil.SetStruct(ref m_LegendIconLineWidth, value)) SetVerticesDirty(); } + } + + /// <summary> + /// The radius of rounded corner. Its unit is px. Use array to respectively specify the 4 corner radiuses((clockwise upper left, upper right, bottom right and bottom left)). + /// |图例圆角半径。用数组分别指定4个圆角半径(顺时针左上,右上,右下,左下)。 + /// </summary> + public float[] legendIconCornerRadius + { + get { return m_LegendIconCornerRadius; } + set { if (PropertyUtil.SetClass(ref m_LegendIconCornerRadius, value, true)) SetVerticesDirty(); } + } + + public void Copy(Settings settings) + { + m_ReversePainter = settings.reversePainter; + m_MaxPainter = settings.maxPainter; + m_BasePainterMaterial = settings.basePainterMaterial; + m_SeriePainterMaterial = settings.seriePainterMaterial; + m_TopPainterMaterial = settings.topPainterMaterial; + m_LineSmoothStyle = settings.lineSmoothStyle; + m_LineSmoothness = settings.lineSmoothness; + m_LineSegmentDistance = settings.lineSegmentDistance; + m_CicleSmoothness = settings.cicleSmoothness; + m_LegendIconLineWidth = settings.legendIconLineWidth; + ChartHelper.CopyArray(m_LegendIconCornerRadius, settings.legendIconCornerRadius); + } + + public override void Reset() + { + Copy(DefaultSettings); + } + + public static Settings DefaultSettings + { + get + { + return new Settings() + { + m_ReversePainter = false, + m_MaxPainter = XCSettings.maxPainter, + m_LineSmoothStyle = XCSettings.lineSmoothStyle, + m_LineSmoothness = XCSettings.lineSmoothness, + m_LineSegmentDistance = XCSettings.lineSegmentDistance, + m_CicleSmoothness = XCSettings.cicleSmoothness, + m_LegendIconLineWidth = 2, + m_LegendIconCornerRadius = new float[] { 0.25f, 0.25f, 0.25f, 0.25f } + }; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Settings/Settings.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Settings/Settings.cs.meta new file mode 100644 index 0000000..b064a39 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Settings/Settings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4e57c4afa48c2455b8a91b20eca25321 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title.meta new file mode 100644 index 0000000..71e29ea --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cea6be3fa2a9e4ae6be4b3fd882f7352 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title/Title.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title/Title.cs new file mode 100644 index 0000000..ac4ca74 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title/Title.cs @@ -0,0 +1,105 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// Title component, including main title and subtitle. + /// |标题组件,包含主标题和副标题。 + /// </summary> + [Serializable] + [ComponentHandler(typeof(TitleHander), true)] + public class Title : MainComponent, IPropertyChanged + { + [SerializeField] private bool m_Show = true; + [SerializeField] private string m_Text = "Chart Title"; + [SerializeField] private string m_SubText = ""; + [SerializeField] private LabelStyle m_LabelStyle = new LabelStyle(); + [SerializeField] private LabelStyle m_SubLabelStyle = new LabelStyle(); + [SerializeField] private float m_ItemGap = 0; + [SerializeField] private Location m_Location = Location.defaultTop; + + /// <summary> + /// [default:true] + /// Set this to false to prevent the title from showing. + /// |是否显示标题组件。 + /// </summary> + public bool show { get { return m_Show; } set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetComponentDirty(); } } + /// <summary> + /// The main title text, supporting \n for newlines. + /// |主标题文本,支持使用 \n 换行。 + /// </summary> + public string text { get { return m_Text; } set { if (PropertyUtil.SetClass(ref m_Text, value)) SetComponentDirty(); } } + /// <summary> + /// The text style of main title. + /// |主标题文本样式。 + /// </summary> + public LabelStyle labelStyle + { + get { return m_LabelStyle; } + set { if (PropertyUtil.SetClass(ref m_LabelStyle, value)) SetComponentDirty(); } + } + /// <summary> + /// Subtitle text, supporting for \n for newlines. + /// |副标题文本,支持使用 \n 换行。 + /// </summary> + public string subText + { + get { return m_SubText; } + set { if (PropertyUtil.SetClass(ref m_SubText, value)) SetComponentDirty(); } + } + /// <summary> + /// The text style of sub title. + /// |副标题文本样式。 + /// </summary> + public LabelStyle subLabelStyle + { + get { return m_SubLabelStyle; } + set { if (PropertyUtil.SetClass(ref m_SubLabelStyle, value)) SetComponentDirty(); } + } + /// <summary> + /// [default:8] + /// The gap between the main title and subtitle. + /// |主副标题之间的间距。 + /// </summary> + public float itemGap + { + get { return m_ItemGap; } + set { if (PropertyUtil.SetStruct(ref m_ItemGap, value)) SetComponentDirty(); } + } + /// <summary> + /// The location of title component. + /// |标题显示位置。 + /// </summary> + public Location location + { + get { return m_Location; } + set { if (PropertyUtil.SetClass(ref m_Location, value)) SetComponentDirty(); } + } + + public override bool vertsDirty { get { return false; } } + public override bool componentDirty + { + get + { + return m_ComponentDirty || + location.componentDirty || + m_LabelStyle.componentDirty || + m_SubLabelStyle.componentDirty; + } + } + + public override void ClearComponentDirty() + { + base.ClearComponentDirty(); + location.ClearComponentDirty(); + m_LabelStyle.ClearComponentDirty(); + m_SubLabelStyle.ClearComponentDirty(); + } + + public void OnChanged() + { + m_Location.OnChanged(); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title/Title.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title/Title.cs.meta new file mode 100644 index 0000000..1d57b56 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title/Title.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0c4f5a39710624b94a3d015eb552f53a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title/TitleHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title/TitleHandler.cs new file mode 100644 index 0000000..63e3294 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title/TitleHandler.cs @@ -0,0 +1,88 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class TitleHander : MainComponentHandler<Title> + { + private static readonly string s_TitleObjectName = "title"; + private static readonly string s_SubTitleObjectName = "title_sub"; + private ChartLabel m_LabelObject; + private ChartLabel m_SubLabelObject; + + public override void InitComponent() + { + var title = component; + title.painter = null; + title.refreshComponent = delegate() + { + title.OnChanged(); + var anchorMin = title.location.runtimeAnchorMin; + var anchorMax = title.location.runtimeAnchorMax; + var pivot = title.location.runtimePivot; + var objName = ChartCached.GetComponentObjectName(title); + var titleObject = ChartHelper.AddObject(objName, chart.transform, anchorMin, anchorMax, + pivot, chart.chartSizeDelta); + title.gameObject = titleObject; + title.gameObject.transform.SetSiblingIndex(chart.m_PainterTop.transform.GetSiblingIndex() + 1); + anchorMin = title.location.runtimeAnchorMin; + anchorMax = title.location.runtimeAnchorMax; + pivot = title.location.runtimePivot; + var fontSize = title.labelStyle.textStyle.GetFontSize(chart.theme.title); + ChartHelper.UpdateRectTransform(titleObject, anchorMin, anchorMax, pivot, new Vector2(chart.chartWidth, chart.chartHeight)); + var titlePosition = chart.GetTitlePosition(title); + var subTitlePosition = -new Vector3(0, fontSize + title.itemGap, 0); + + titleObject.transform.localPosition = titlePosition; + titleObject.hideFlags = chart.chartHideFlags; + ChartHelper.HideAllObject(titleObject); + + m_LabelObject = ChartHelper.AddChartLabel(s_TitleObjectName, titleObject.transform, title.labelStyle, chart.theme.title, + GetTitleText(title), Color.clear, title.location.runtimeTextAlignment); + m_LabelObject.SetActive(title.show && title.labelStyle.show); + + m_SubLabelObject = ChartHelper.AddChartLabel(s_SubTitleObjectName, titleObject.transform, title.subLabelStyle, chart.theme.subTitle, + GetSubTitleText(title), Color.clear, title.location.runtimeTextAlignment); + m_SubLabelObject.SetActive(title.show && title.subLabelStyle.show); + m_SubLabelObject.transform.localPosition = subTitlePosition + title.subLabelStyle.offset; + }; + title.refreshComponent(); + } + + public override void OnSerieDataUpdate(int serieIndex) + { + if (m_LabelObject != null && FormatterHelper.NeedFormat(component.text)) + m_LabelObject.SetText(GetTitleText(component)); + if (m_SubLabelObject != null && FormatterHelper.NeedFormat(component.subText)) + m_SubLabelObject.SetText(GetSubTitleText(component)); + } + + private string GetTitleText(Title title) + { + if (FormatterHelper.NeedFormat(title.text)) + { + var content = title.text; + FormatterHelper.ReplaceContent(ref content, 0, title.labelStyle.numericFormatter, null, chart); + return content; + } + else + { + return title.text; + } + } + + private string GetSubTitleText(Title title) + { + if (FormatterHelper.NeedFormat(title.subText)) + { + var content = title.subText; + FormatterHelper.ReplaceContent(ref content, 0, title.subLabelStyle.numericFormatter, null, chart); + return content; + } + else + { + return title.subText; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title/TitleHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title/TitleHandler.cs.meta new file mode 100644 index 0000000..bc42e0d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title/TitleHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cbe3062b7770040e6b4a98026f0ad044 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title/TitleStyle.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title/TitleStyle.cs new file mode 100644 index 0000000..2befc2d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title/TitleStyle.cs @@ -0,0 +1,15 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// the title of serie. + /// |标题相关设置。 + /// </summary> + [Serializable] + public class TitleStyle : LabelStyle, ISerieDataComponent, ISerieExtraComponent + { + + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title/TitleStyle.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title/TitleStyle.cs.meta new file mode 100644 index 0000000..1a44da0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Title/TitleStyle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cd97375f7d84f4fd18dab048c465cdd8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip.meta new file mode 100644 index 0000000..7161b85 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 17e248f354e9b4e3fa75170f7919e297 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/Tooltip.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/Tooltip.cs new file mode 100644 index 0000000..8e13e31 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/Tooltip.cs @@ -0,0 +1,549 @@ +using System.Collections.Generic; +using System.Text; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + /// <summary> + /// Tooltip component. + /// |提示框组件。 + /// </summary> + [System.Serializable] + [ComponentHandler(typeof(TooltipHandler), true)] + public class Tooltip : MainComponent + { + /// <summary> + /// Indicator type. + /// |指示器类型。 + /// </summary> + public enum Type + { + /// <summary> + /// line indicator. + /// |直线指示器 + /// </summary> + Line, + /// <summary> + /// shadow crosshair indicator. + /// |阴影指示器 + /// </summary> + Shadow, + /// <summary> + /// no indicator displayed. + /// |无指示器 + /// </summary> + None, + /// <summary> + /// crosshair indicator, which is actually the shortcut of enable two axisPointers of two orthometric axes. + /// |十字准星指示器。坐标轴显示Label和交叉线。 + /// </summary> + Corss + } + + public enum Trigger + { + /// <summary> + /// Triggered by data item, which is mainly used for charts that don't have a category axis like scatter charts or pie charts. + /// |数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用。 + /// </summary> + Item, + /// <summary> + /// Triggered by axes, which is mainly used for charts that have category axes, like bar charts or line charts. + /// |坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用。 + /// </summary> + Axis, + /// <summary> + /// Trigger nothing. + /// |什么都不触发。 + /// </summary> + None + } + + [SerializeField] private bool m_Show = true; + [SerializeField] private Type m_Type; + [SerializeField] private Trigger m_Trigger = Trigger.Item; + [SerializeField] private string m_ItemFormatter; + [SerializeField] private string m_TitleFormatter; + [SerializeField] private string m_Marker = "●"; + [SerializeField] private float m_FixedWidth = 0; + [SerializeField] private float m_FixedHeight = 0; + [SerializeField] private float m_MinWidth = 0; + [SerializeField] private float m_MinHeight = 0; + [SerializeField] private string m_NumericFormatter = ""; + [SerializeField] private int m_PaddingLeftRight = 10; + [SerializeField] private int m_PaddingTopBottom = 10; + [SerializeField] private bool m_IgnoreDataShow = false; + [SerializeField] private string m_IgnoreDataDefaultContent = "-"; + [SerializeField] private bool m_ShowContent = true; + [SerializeField] private bool m_AlwayShowContent = false; + [SerializeField] private Vector2 m_Offset = new Vector2(18f, -25f); + [SerializeField] private Sprite m_BackgroundImage; + [SerializeField] private Image.Type m_BackgroundType = Image.Type.Simple; + [SerializeField] private Color m_BackgroundColor; + [SerializeField] private float m_BorderWidth = 2f; + [SerializeField] private bool m_FixedXEnable = false; + [SerializeField] private float m_FixedX = 0f; + [SerializeField] private bool m_FixedYEnable = false; + [SerializeField] private float m_FixedY = 0f; + [SerializeField] private float m_TitleHeight = 25f; + [SerializeField] private float m_ItemHeight = 25f; + [SerializeField] private Color32 m_BorderColor = new Color32(230, 230, 230, 255); + [SerializeField] private LineStyle m_LineStyle = new LineStyle(LineStyle.Type.None); + [SerializeField] private LabelStyle m_IndicatorLabelStyle = new LabelStyle(); + [SerializeField] + private LabelStyle m_TitleLabelStyle = new LabelStyle() + { + textStyle = new TextStyle() { alignment = TextAnchor.MiddleLeft } + }; + [SerializeField] + private List<LabelStyle> m_ContentLabelStyles = new List<LabelStyle>() + { + new LabelStyle() { textPadding = new TextPadding(0, 5, 0, 0), textStyle = new TextStyle() { alignment = TextAnchor.MiddleLeft } }, + new LabelStyle() { textPadding = new TextPadding(0, 20, 0, 0), textStyle = new TextStyle() { alignment = TextAnchor.MiddleLeft } }, + new LabelStyle() { textPadding = new TextPadding(0, 0, 0, 0), textStyle = new TextStyle() { alignment = TextAnchor.MiddleRight } } + }; + + public TooltipContext context = new TooltipContext(); + public TooltipView view; + + /// <summary> + /// Whether to show the tooltip component. + /// |是否显示提示框组件。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) { SetAllDirty(); SetActive(value); } } + } + /// <summary> + /// Indicator type. + /// |提示框指示器类型。 + /// </summary> + public Type type + { + get { return m_Type; } + set { if (PropertyUtil.SetStruct(ref m_Type, value)) SetAllDirty(); } + } + /// <summary> + /// Type of triggering. + /// |触发类型。 + /// </summary> + public Trigger trigger + { + get { return m_Trigger; } + set { if (PropertyUtil.SetStruct(ref m_Trigger, value)) SetAllDirty(); } + } + /// <summary> + /// The string template formatter for the tooltip title content. Support for wrapping lines with \n. + /// The placeholder {I} can be set separately to indicate that the title is ignored and not displayed. + /// Template see itemFormatter. + /// |提示框标题内容的字符串模版格式器。支持用 \n 换行。可以单独设置占位符{i}表示忽略不显示title。 + /// 模板变量参考Toolip的itemFormatter。 + /// </summary> + public string titleFormatter { get { return m_TitleFormatter; } set { m_TitleFormatter = value; } } + /// <summary> + /// a string template formatter for a single Serie or data item content. Support for wrapping lines with \n. + /// Template variables are {.}, {a}, {b}, {c}, {d}.</br> + /// {.} is the dot of the corresponding color of a Serie that is currently indicated or whose index is 0.</br> + /// {a} is the series name of the serie that is currently indicated or whose index is 0.</br> + /// {b} is the name of the data item serieData that is currently indicated or whose index is 0, or a category value (such as the X-axis of a line chart).</br> + /// {c} is the value of a Y-dimension (dimesion is 1) from a Serie that is currently indicated or whose index is 0.</br> + /// {d} is the percentage value of Y-dimensions (dimesion is 1) from serie that is currently indicated or whose index is 0, with no % sign.</br> + /// {e} is the name of the data item serieData that is currently indicated or whose index is 0.</br> + /// {f} is sum of data.</br> + /// {.1} represents a dot from serie corresponding color that specifies index as 1.</br> + /// 1 in {a1}, {b1}, {c1} represents a serie that specifies an index of 1.</br> + /// {c1:2} represents the third data from serie's current indication data item indexed to 1 (a data item has multiple data, index 2 represents the third data).</br> + /// {c1:2-2} represents the third data item from serie's third data item indexed to 1 (i.e., which data item must be specified to specify).</br> + /// {d1:2: F2} indicates that a formatted string with a value specified separately is F2 (numericFormatter is used when numericFormatter is not specified).</br> + /// {d:0.##} indicates that a formatted string with a value specified separately is 0.## (used for percentage, reserved 2 valid digits while avoiding the situation similar to "100.00%" when using f2 ).</br> + /// Example: "{a}, {c}", "{a1}, {c1: f1}", "{a1}, {c1:0: f1}", "{a1} : {c1:1-1: f1}"</br> + /// |提示框单个serie或数据项内容的字符串模版格式器。支持用 \n 换行。 + /// 模板变量有{.}、{a}、{b}、{c}、{d}、{e}。</br> + /// {.}为当前所指示或index为0的serie的对应颜色的圆点。</br> + /// {a}为当前所指示或index为0的serie的系列名name。</br> + /// {b}为当前所指示或index为0的serie的数据项serieData的name,或者类目值(如折线图的X轴)。</br> + /// {c}为当前所指示或index为0的serie的y维(dimesion为1)的数值。</br> + /// {d}为当前所指示或index为0的serie的y维(dimesion为1)百分比值,注意不带%号。</br> + /// {e}为当前所指示或index为0的serie的数据项serieData的name。</br> + /// {f}为数据总和。</br> + /// {.1}表示指定index为1的serie对应颜色的圆点。</br> + /// {a1}、{b1}、{c1}中的1表示指定index为1的serie。</br> + /// {c1:2}表示索引为1的serie的当前指示数据项的第3个数据(一个数据项有多个数据,index为2表示第3个数据)。</br> + /// {c1:2-2}表示索引为1的serie的第3个数据项的第3个数据(也就是要指定第几个数据项时必须要指定第几个数据)。</br> + /// {d1:2:f2}表示单独指定了数值的格式化字符串为f2(不指定时用numericFormatter)。</br> + /// {d:0.##} 表示单独指定了数值的格式化字符串为 0.## (用于百分比,保留2位有效数同时又能避免使用 f2 而出现的类似于"100.00%"的情况 )。</br> + /// 示例:"{a}:{c}"、"{a1}:{c1:f1}"、"{a1}:{c1:0:f1}"、"{a1}:{c1:1-1:f1}" + /// </summary> + public string itemFormatter { get { return m_ItemFormatter; } set { m_ItemFormatter = value; } } + /// <summary> + /// the marker of serie. + /// |serie的符号标志。 + /// </summary> + public string marker { get { return m_Marker; } set { m_Marker = value; } } + /// <summary> + /// Fixed width. Higher priority than minWidth. + /// |固定宽度。比 minWidth 优先。 + /// </summary> + public float fixedWidth { get { return m_FixedWidth; } set { m_FixedWidth = value; } } + /// <summary> + /// Fixed height. Higher priority than minHeight. + /// |固定高度。比 minHeight 优先。 + /// </summary> + public float fixedHeight { get { return m_FixedHeight; } set { m_FixedHeight = value; } } + /// <summary> + /// Minimum width. If fixedWidth has a value, get fixedWidth first. + /// |最小宽度。如若 fixedWidth 设有值,优先取 fixedWidth。 + /// </summary> + public float minWidth { get { return m_MinWidth; } set { m_MinWidth = value; } } + /// <summary> + /// Minimum height. If fixedHeight has a value, take priority over fixedHeight. + /// |最小高度。如若 fixedHeight 设有值,优先取 fixedHeight。 + /// </summary> + public float minHeight { get { return m_MinHeight; } set { m_MinHeight = value; } } + /// <summary> + /// Standard numeric format string. Used to format numeric values to display as strings. + /// Using 'Axx' form: 'A' is the single character of the format specifier, supporting 'C' currency, + /// 'D' decimal, 'E' exponent, 'F' number of vertices, 'G' regular, 'N' digits, 'P' percentage, + /// 'R' round tripping, 'X' hex etc. 'XX' is the precision specification, from '0' - '99'. + /// |标准数字格式字符串。用于将数值格式化显示为字符串。 + /// 使用Axx的形式:A是格式说明符的单字符,支持C货币、D十进制、E指数、F定点数、G常规、N数字、P百分比、R往返、X十六进制的。xx是精度说明,从0-99。 + /// 参考:https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/standard-numeric-format-strings + /// </summary> + /// <value></value> + public string numericFormatter + { + get { return m_NumericFormatter; } + set { if (PropertyUtil.SetClass(ref m_NumericFormatter, value)) SetComponentDirty(); } + } + /// <summary> + /// the text padding of left and right. defaut:5. + /// |左右边距。 + /// </summary> + public int paddingLeftRight { get { return m_PaddingLeftRight; } set { m_PaddingLeftRight = value; } } + /// <summary> + /// the text padding of top and bottom. defaut:5. + /// |上下边距。 + /// </summary> + public int paddingTopBottom { get { return m_PaddingTopBottom; } set { m_PaddingTopBottom = value; } } + /// <summary> + /// Whether to show ignored data on tooltip. + /// |是否显示忽略数据在tooltip上。 + /// </summary> + public bool ignoreDataShow { get { return m_IgnoreDataShow; } set { m_IgnoreDataShow = value; } } + /// <summary> + /// The default display character information for ignored data. + /// |被忽略数据的默认显示字符信息。 + /// </summary> + public string ignoreDataDefaultContent { get { return m_IgnoreDataDefaultContent; } set { m_IgnoreDataDefaultContent = value; } } + /// <summary> + /// The background image of tooltip. + /// |提示框的背景图片。 + /// </summary> + public Sprite backgroundImage { get { return m_BackgroundImage; } set { m_BackgroundImage = value; SetComponentDirty(); } } + /// <summary> + /// The background type of tooltip. + /// |提示框的背景图片显示类型。 + /// </summary> + public Image.Type backgroundType { get { return m_BackgroundType; } set { m_BackgroundType = value; SetComponentDirty(); } } + /// <summary> + /// The background color of tooltip. + /// |提示框的背景颜色。 + /// </summary> + public Color backgroundColor { get { return m_BackgroundColor; } set { m_BackgroundColor = value; SetComponentDirty(); } } + /// <summary> + /// Whether to trigger after always display. + /// |是否触发后一直显示提示框浮层。 + /// </summary> + public bool alwayShowContent { get { return m_AlwayShowContent; } set { m_AlwayShowContent = value; } } + /// <summary> + /// Whether to show the tooltip floating layer, whose default value is true. + /// It should be configurated to be false, if you only need tooltip to trigger the event or show the axisPointer without content. + /// |是否显示提示框浮层,默认显示。只需tooltip触发事件或显示axisPointer而不需要显示内容时可配置该项为false。 + /// </summary> + public bool showContent { get { return m_ShowContent; } set { m_ShowContent = value; } } + /// <summary> + /// The position offset of tooltip relative to the mouse position. + /// |提示框相对于鼠标位置的偏移。 + /// </summary> + public Vector2 offset { get { return m_Offset; } set { m_Offset = value; } } + /// <summary> + /// the width of tooltip border. + /// |边框线宽。 + /// </summary> + public float borderWidth + { + get { return m_BorderWidth; } + set { if (PropertyUtil.SetStruct(ref m_BorderWidth, value)) SetVerticesDirty(); } + } + /// <summary> + /// the color of tooltip border. + /// |边框颜色。 + /// </summary> + public Color32 borderColor + { + get { return m_BorderColor; } + set { if (PropertyUtil.SetColor(ref m_BorderColor, value)) SetVerticesDirty(); } + } + /// <summary> + /// enable fixedX. + /// |是否固定X位置。 + /// </summary> + public bool fixedXEnable + { + get { return m_FixedXEnable; } + set { if (PropertyUtil.SetStruct(ref m_FixedXEnable, value)) SetVerticesDirty(); } + } + /// <summary> + /// the x positionn of fixedX. + /// |固定X位置的坐标。 + /// </summary> + public float fixedX + { + get { return m_FixedX; } + set { if (PropertyUtil.SetStruct(ref m_FixedX, value)) SetVerticesDirty(); } + } + /// <summary> + /// enable fixedY. + /// |是否固定Y位置。 + /// </summary> + public bool fixedYEnable + { + get { return m_FixedYEnable; } + set { if (PropertyUtil.SetStruct(ref m_FixedYEnable, value)) SetVerticesDirty(); } + } + /// <summary> + /// the y position of fixedY. + /// |固定Y位置的坐标。 + /// </summary> + public float fixedY + { + get { return m_FixedY; } + set { if (PropertyUtil.SetStruct(ref m_FixedY, value)) SetVerticesDirty(); } + } + /// <summary> + /// height of title text. + /// |标题文本的高。 + /// </summary> + public float titleHeight + { + get { return m_TitleHeight; } + set { if (PropertyUtil.SetStruct(ref m_TitleHeight, value)) SetComponentDirty(); } + } + /// <summary> + /// height of content text. + /// |数据项文本的高。 + /// </summary> + public float itemHeight + { + get { return m_ItemHeight; } + set { if (PropertyUtil.SetStruct(ref m_ItemHeight, value)) SetComponentDirty(); } + } + /// <summary> + /// the label style of tooltip axis indicator label. + /// |提示框的坐标轴指示器文本的样式。 + /// </summary> + public LabelStyle indicatorLabelStyle + { + get { return m_IndicatorLabelStyle; } + set { if (value != null) { m_IndicatorLabelStyle = value; SetComponentDirty(); } } + } + /// <summary> + /// the textstyle of title. + /// |标题的文本样式。 + /// </summary> + public LabelStyle titleLabelStyle + { + get { return m_TitleLabelStyle; } + set { if (value != null) { m_TitleLabelStyle = value; SetComponentDirty(); } } + } + /// <summary> + /// the textstyle list of content. + /// |内容部分的文本样式列表。和列一一对应。 + /// </summary> + public List<LabelStyle> contentLabelStyles + { + get { return m_ContentLabelStyles; } + set { if (value != null) { m_ContentLabelStyles = value; SetComponentDirty(); } } + } + + /// <summary> + /// the line style of indicator line. + /// |指示线样式。 + /// </summary> + public LineStyle lineStyle + { + get { return m_LineStyle; } + set { if (value != null) m_LineStyle = value; SetComponentDirty(); } + } + + /// <summary> + /// 组件是否需要刷新 + /// </summary> + public override bool componentDirty + { + get { return m_ComponentDirty || lineStyle.componentDirty || indicatorLabelStyle.componentDirty; } + } + + public override void ClearComponentDirty() + { + base.ClearComponentDirty(); + lineStyle.ClearComponentDirty(); + indicatorLabelStyle.ClearComponentDirty(); + } + /// <summary> + /// 当前提示框所指示的Serie索引(目前只对散点图有效)。 + /// </summary> + public Dictionary<int, List<int>> runtimeSerieIndex = new Dictionary<int, List<int>>(); + /// <summary> + /// The data index currently indicated by Tooltip. + /// |当前提示框所指示的数据项索引。 + /// </summary> + public List<int> runtimeDataIndex { get { return m_RuntimeDateIndex; } internal set { m_RuntimeDateIndex = value; } } + private List<int> m_RuntimeDateIndex = new List<int>() {-1, -1 }; + + /// <summary> + /// Keep Tooltiop displayed at the top. + /// |保持Tooltiop显示在最顶上 + /// </summary> + public void KeepTop() + { + gameObject.transform.SetAsLastSibling(); + } + + public override void ClearData() + { + ClearValue(); + } + + /// <summary> + /// 清除提示框指示数据 + /// </summary> + internal void ClearValue() + { + for (int i = 0; i < runtimeDataIndex.Count; i++) runtimeDataIndex[i] = -1; + } + + /// <summary> + /// 提示框是否显示 + /// </summary> + /// <returns></returns> + public bool IsActive() + { + return gameObject != null && gameObject.activeInHierarchy; + } + + /// <summary> + /// 设置Tooltip组件是否显示 + /// </summary> + /// <param name="flag"></param> + public void SetActive(bool flag) + { + if (gameObject && gameObject.activeInHierarchy != flag) + { + gameObject.SetActive(alwayShowContent ? true : flag); + } + SetContentActive(flag); + } + + /// <summary> + /// 更新文本框位置 + /// </summary> + /// <param name="pos"></param> + public void UpdateContentPos(Vector2 pos) + { + if (view != null) + { + if (fixedXEnable) pos.x = fixedX; + if (fixedYEnable) pos.y = fixedY; + view.UpdatePosition(pos); + } + } + + /// <summary> + /// 设置文本框是否显示 + /// </summary> + /// <param name="flag"></param> + public void SetContentActive(bool flag) + { + if (view == null) + return; + + view.SetActive(alwayShowContent ? true : flag); + } + + /// <summary> + /// 当前提示框是否选中数据项 + /// </summary> + /// <returns></returns> + public bool IsSelected() + { + foreach (var index in runtimeDataIndex) + if (index >= 0) return true; + return false; + } + + /// <summary> + /// 指定索引的数据项是否被提示框选中 + /// </summary> + /// <param name="index"></param> + /// <returns></returns> + public bool IsSelected(int index) + { + foreach (var temp in runtimeDataIndex) + if (temp == index) return true; + return false; + } + + public void ClearSerieDataIndex() + { + foreach (var kv in runtimeSerieIndex) + { + kv.Value.Clear(); + } + } + + public void AddSerieDataIndex(int serieIndex, int dataIndex) + { + if (!runtimeSerieIndex.ContainsKey(serieIndex)) + { + runtimeSerieIndex[serieIndex] = new List<int>(); + } + runtimeSerieIndex[serieIndex].Add(dataIndex); + } + + public bool isAnySerieDataIndex() + { + foreach (var kv in runtimeSerieIndex) + { + if (kv.Value.Count > 0) return true; + } + return false; + } + + public bool IsTriggerItem() + { + return trigger == Trigger.Item; + } + + public bool IsTriggerAxis() + { + return trigger == Trigger.Axis; + } + + public LabelStyle GetContentLabelStyle(int index) + { + if (m_ContentLabelStyles.Count == 0) + return null; + + if (index < 0) + index = 0; + else if (index > m_ContentLabelStyles.Count - 1) + index = m_ContentLabelStyles.Count - 1; + + return m_ContentLabelStyles[index]; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/Tooltip.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/Tooltip.cs.meta new file mode 100644 index 0000000..441a06e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/Tooltip.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dff3b0d6d38ee49838f054d30ab9b733 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipContext.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipContext.cs new file mode 100644 index 0000000..f00c7d0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipContext.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Text; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + public class TooltipData + { + public string title; + public List<SerieParams> param = new List<SerieParams>(); + } + + public class TooltipContext + { + public Vector2 pointer; + public float width; + public float height; + public float angle; + public TooltipData data = new TooltipData(); + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipContext.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipContext.cs.meta new file mode 100644 index 0000000..2dd6ed0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7324ce36c9b2c475bb18abd6618b107c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipHandler.cs new file mode 100644 index 0000000..e55d367 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipHandler.cs @@ -0,0 +1,641 @@ +using System.Collections.Generic; +using System.Text; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class TooltipHandler : MainComponentHandler<Tooltip> + { + private List<ChartLabel> m_IndicatorLabels = new List<ChartLabel>(); + private GameObject m_LabelRoot; + private ISerieContainer m_PointerContainer; + + public override void InitComponent() + { + InitTooltip(component); + } + + public override void Update() + { + UpdateTooltip(component); + UpdateTooltipIndicatorLabelText(component); + if (component.view != null) + component.view.Update(); + } + + public override void DrawTop(VertexHelper vh) + { + DrawTooltipIndicator(vh, component); + } + + private void InitTooltip(Tooltip tooltip) + { + tooltip.painter = chart.m_PainterTop; + tooltip.refreshComponent = delegate() + { + var objName = ChartCached.GetComponentObjectName(tooltip); + tooltip.gameObject = ChartHelper.AddObject(objName, chart.transform, chart.chartMinAnchor, + chart.chartMaxAnchor, chart.chartPivot, chart.chartSizeDelta); + var tooltipObject = tooltip.gameObject; + tooltipObject.transform.localPosition = Vector3.zero; + tooltipObject.hideFlags = chart.chartHideFlags; + var parent = tooltipObject.transform; + ChartHelper.HideAllObject(tooltipObject.transform); + + tooltip.view = TooltipView.CreateView(tooltip, chart.theme, parent); + tooltip.SetActive(false); + + m_LabelRoot = ChartHelper.AddObject("label", tooltip.gameObject.transform, chart.chartMinAnchor, + chart.chartMaxAnchor, chart.chartPivot, chart.chartSizeDelta); + ChartHelper.HideAllObject(m_LabelRoot); + m_IndicatorLabels.Clear(); + for (int i = 0; i < 2; i++) + { + var labelName = "label_" + i; + var item = ChartHelper.AddTooltipIndicatorLabel(component, labelName, m_LabelRoot.transform, + chart.theme, TextAnchor.MiddleCenter); + item.SetActive(false); + m_IndicatorLabels.Add(item); + } + }; + tooltip.refreshComponent(); + } + + private ChartLabel GetIndicatorLabel(int index) + { + if (m_LabelRoot == null) return null; + if (index < m_IndicatorLabels.Count) return m_IndicatorLabels[index]; + else + { + var labelName = "label_" + index; + var item = ChartHelper.AddTooltipIndicatorLabel(component, labelName, m_LabelRoot.transform, + chart.theme, TextAnchor.MiddleCenter); + m_IndicatorLabels.Add(item); + return item; + } + } + + private void UpdateTooltip(Tooltip tooltip) + { + if (tooltip.trigger == Tooltip.Trigger.None) return; + if (!chart.isPointerInChart || !tooltip.show) + { + if (tooltip.IsActive()) + { + tooltip.ClearValue(); + tooltip.SetActive(false); + } + return; + } + var showTooltip = false; + for (int i = chart.series.Count - 1; i >= 0; i--) + { + var serie = chart.series[i]; + if (!(serie is INeedSerieContainer)) + { + if (SetSerieTooltip(tooltip, serie)) + { + showTooltip = true; + chart.RefreshTopPainter(); + return; + } + } + } + var containerSeries = ListPool<Serie>.Get(); + m_PointerContainer = GetPointerContainerAndSeries(tooltip, containerSeries); + if (containerSeries.Count > 0) + { + if (SetSerieTooltip(tooltip, containerSeries)) + showTooltip = true; + } + ListPool<Serie>.Release(containerSeries); + if (!showTooltip) + { + if (tooltip.type == Tooltip.Type.Corss && m_PointerContainer != null && m_PointerContainer.IsPointerEnter()) + { + tooltip.SetActive(true); + tooltip.SetContentActive(false); + } + else + { + tooltip.SetActive(false); + } + } + else + { + chart.RefreshTopPainter(); + } + } + + private void UpdateTooltipIndicatorLabelText(Tooltip tooltip) + { + if (!tooltip.show) return; + if (tooltip.type == Tooltip.Type.None) return; + if (m_PointerContainer != null) + { + if (tooltip.type == Tooltip.Type.Corss) + { + var labelCount = 0; + if (m_PointerContainer is GridCoord) + { + var grid = m_PointerContainer as GridCoord; + ChartHelper.HideAllObject(m_LabelRoot); + foreach (var component in chart.components) + { + if (component is XAxis || component is YAxis) + { + var axis = component as Axis; + if (axis.gridIndex == grid.index) + { + var label = GetIndicatorLabel(labelCount++); + SetTooltipIndicatorLabel(tooltip, axis, label); + } + } + } + } + else if (m_PointerContainer is PolarCoord) + { + var polar = m_PointerContainer as PolarCoord; + ChartHelper.HideAllObject(m_LabelRoot); + foreach (var component in chart.components) + { + if (component is AngleAxis || component is RadiusAxis) + { + var axis = component as Axis; + if (axis.polarIndex == polar.index) + { + var label = GetIndicatorLabel(labelCount++); + SetTooltipIndicatorLabel(tooltip, axis, label); + } + } + } + } + } + } + } + + private void SetTooltipIndicatorLabel(Tooltip tooltip, Axis axis, ChartLabel label) + { + if (label == null) return; + if (double.IsPositiveInfinity(axis.context.pointerValue)) return; + label.SetActive(true); + label.SetTextActive(true); + label.SetPosition(axis.context.pointerLabelPosition); + if (axis.IsCategory()) + label.SetText(axis.GetData((int) axis.context.pointerValue)); + else + label.SetText(axis.context.pointerValue.ToString("f2")); + var textColor = axis.axisLabel.textStyle.GetColor(chart.theme.axis.textColor); + if (ChartHelper.IsClearColor(tooltip.indicatorLabelStyle.background.color)) + label.color = textColor; + else + label.color = tooltip.indicatorLabelStyle.background.color; + label.SetTextColor(Color.white); + } + + private ISerieContainer GetPointerContainerAndSeries(Tooltip tooltip, List<Serie> list) + { + list.Clear(); + for (int i = chart.components.Count - 1; i >= 0; i--) + { + var component = chart.components[i]; + if (component is ISerieContainer) + { + var container = component as ISerieContainer; + if (container.IsPointerEnter()) + { + foreach (var serie in chart.series) + { + if (serie is INeedSerieContainer && + (serie as INeedSerieContainer).containterInstanceId == component.instanceId) + { + var isTriggerAxis = tooltip.IsTriggerAxis(); + if (container is GridCoord) + { + var xAxis = chart.GetChartComponent<XAxis>(serie.xAxisIndex); + var yAxis = chart.GetChartComponent<YAxis>(serie.yAxisIndex); + serie.context.pointerEnter = true; + UpdateAxisPointerDataIndex(serie, xAxis, yAxis, container as GridCoord, isTriggerAxis); + } + else if (container is PolarCoord) + { + var m_AngleAxis = ComponentHelper.GetAngleAxis(chart.components, container.index); + tooltip.context.angle = (float) m_AngleAxis.context.pointerValue; + } + list.Add(serie); + if (!isTriggerAxis) + chart.RefreshTopPainter(); + } + } + return container; + } + } + } + return null; + } + + private void UpdateAxisPointerDataIndex(Serie serie, XAxis xAxis, YAxis yAxis, GridCoord grid, bool isTriggerAxis) + { + serie.context.pointerAxisDataIndexs.Clear(); + if (yAxis.IsCategory()) + { + serie.context.pointerAxisDataIndexs.Add((int) yAxis.context.pointerValue); + yAxis.context.axisTooltipValue = yAxis.context.pointerValue; + } + else if (yAxis.IsTime()) + { + if (isTriggerAxis) + GetSerieDataIndexByAxis(serie, yAxis, grid); + else + GetSerieDataIndexByItem(serie, yAxis, grid); + } + else if (xAxis.IsCategory()) + { + serie.context.pointerAxisDataIndexs.Add((int) xAxis.context.pointerValue); + xAxis.context.axisTooltipValue = xAxis.context.pointerValue; + } + else + { + if (isTriggerAxis) + GetSerieDataIndexByAxis(serie, xAxis, grid); + else + GetSerieDataIndexByItem(serie, xAxis, grid); + } + } + + private void GetSerieDataIndexByAxis(Serie serie, Axis axis, GridCoord grid, int dimension = 0) + { + var currValue = 0d; + var lastValue = 0d; + var nextValue = 0d; + var axisValue = axis.context.pointerValue; + var isTimeAxis = axis.IsTime(); + var dataCount = serie.dataCount; + var themeSymbolSize = chart.theme.serie.scatterSymbolSize; + var data = serie.data; + if (!isTimeAxis) + { + serie.context.sortedData.Clear(); + for (int i = 0; i < dataCount; i++) + { + var serieData = serie.data[i]; + serieData.index = i; + serie.context.sortedData.Add(serieData); + } + serie.context.sortedData.Sort(delegate(SerieData a, SerieData b) + { + return a.GetData(dimension).CompareTo(b.GetData(dimension)); + }); + data = serie.context.sortedData; + } + serie.context.pointerAxisDataIndexs.Clear(); + for (int i = 0; i < dataCount; i++) + { + var serieData = data[i]; + currValue = serieData.GetData(dimension); + if (i == 0) + { + nextValue = data[i + 1].GetData(dimension); + if (axisValue <= currValue + (nextValue - currValue) / 2) + { + serie.context.pointerAxisDataIndexs.Add(serieData.index); + break; + } + } + else if (i == dataCount - 1) + { + if (axisValue > lastValue + (currValue - lastValue) / 2) + { + serie.context.pointerAxisDataIndexs.Add(serieData.index); + break; + } + } + else + { + nextValue = data[i + 1].GetData(dimension); + if (axisValue > (currValue - (currValue - lastValue) / 2) && axisValue <= currValue + (nextValue - currValue) / 2) + { + serie.context.pointerAxisDataIndexs.Add(serieData.index); + break; + } + } + lastValue = currValue; + } + if (serie.context.pointerAxisDataIndexs.Count > 0) + { + var index = serie.context.pointerAxisDataIndexs[0]; + serie.context.pointerItemDataIndex = index; + axis.context.axisTooltipValue = serie.GetSerieData(index).GetData(dimension); + } + else + { + serie.context.pointerItemDataIndex = -1; + axis.context.axisTooltipValue = 0; + } + } + + private void GetSerieDataIndexByItem(Serie serie, Axis axis, GridCoord grid, int dimension = 0) + { + if (serie.context.pointerItemDataIndex >= 0) + { + axis.context.axisTooltipValue = serie.GetSerieData(serie.context.pointerItemDataIndex).GetData(dimension); + } + else if (component.type == Tooltip.Type.Corss) + { + axis.context.axisTooltipValue = axis.context.pointerValue; + } + else + { + axis.context.axisTooltipValue = 0; + } + } + + private bool SetSerieTooltip(Tooltip tooltip, Serie serie) + { + if (tooltip.trigger == Tooltip.Trigger.None) return false; + if (serie.context.pointerItemDataIndex < 0) return false; + + tooltip.context.data.param.Clear(); + tooltip.context.data.title = serie.serieName; + tooltip.context.pointer = chart.pointerPos; + + serie.handler.UpdateTooltipSerieParams(serie.context.pointerItemDataIndex, false, null, + tooltip.marker, tooltip.itemFormatter, tooltip.numericFormatter, + ref tooltip.context.data.param, + ref tooltip.context.data.title); + TooltipHelper.ResetTooltipParamsByItemFormatter(tooltip, chart); + + tooltip.SetActive(true); + tooltip.view.Refresh(); + TooltipHelper.LimitInRect(tooltip, chart.chartRect); + return true; + } + + private bool SetSerieTooltip(Tooltip tooltip, List<Serie> series) + { + if (tooltip.trigger == Tooltip.Trigger.None) + return false; + + if (series.Count <= 0) + return false; + + string category = null; + var showCategory = false; + var isTriggerByAxis = false; + var dataIndex = -1; + tooltip.context.data.param.Clear(); + tooltip.context.pointer = chart.pointerPos; + if (m_PointerContainer is GridCoord) + { + if (tooltip.trigger == Tooltip.Trigger.Axis) + { + isTriggerByAxis = true; + GetAxisCategory(m_PointerContainer.index, ref dataIndex, ref category); + if (series.Count <= 1) + { + showCategory = true; + tooltip.context.data.title = series[0].serieName; + } + else + tooltip.context.data.title = category; + } + } + + for (int i = 0; i < series.Count; i++) + { + var serie = series[i]; + serie.context.isTriggerByAxis = isTriggerByAxis; + if (isTriggerByAxis && dataIndex >= 0) + serie.context.pointerItemDataIndex = dataIndex; + serie.handler.UpdateTooltipSerieParams(dataIndex, showCategory, category, + tooltip.marker, tooltip.itemFormatter, tooltip.numericFormatter, + ref tooltip.context.data.param, + ref tooltip.context.data.title); + } + TooltipHelper.ResetTooltipParamsByItemFormatter(tooltip, chart); + if (tooltip.context.data.param.Count > 0) + { + tooltip.SetActive(true); + if (tooltip.view != null) + tooltip.view.Refresh(); + TooltipHelper.LimitInRect(tooltip, chart.chartRect); + return true; + } + return false; + } + + private bool GetAxisCategory(int gridIndex, ref int dataIndex, ref string category) + { + foreach (var component in chart.components) + { + if (component is Axis) + { + var axis = component as Axis; + if (axis.gridIndex == gridIndex && axis.IsCategory()) + { + dataIndex = (int) axis.context.pointerValue; + category = axis.GetData(dataIndex); + return true; + } + } + } + return false; + } + + private void DrawTooltipIndicator(VertexHelper vh, Tooltip tooltip) + { + if (!tooltip.show) return; + if (tooltip.type == Tooltip.Type.None) return; + if (m_PointerContainer is GridCoord) + { + var grid = m_PointerContainer as GridCoord; + if (!grid.context.isPointerEnter) return; + if (IsYCategoryOfGrid(grid.index)) + DrawYAxisIndicator(vh, tooltip, grid); + else + DrawXAxisIndicator(vh, tooltip, grid); + } + else if (m_PointerContainer is PolarCoord) + { + DrawPolarIndicator(vh, tooltip, m_PointerContainer as PolarCoord); + } + } + + private bool IsYCategoryOfGrid(int gridIndex) + { + var yAxes = chart.GetChartComponents<YAxis>(); + foreach (var component in yAxes) + { + var yAxis = component as YAxis; + if (yAxis.gridIndex == gridIndex && yAxis.IsCategory()) return true; + } + return false; + } + + private void DrawXAxisIndicator(VertexHelper vh, Tooltip tooltip, GridCoord grid) + { + var xAxes = chart.GetChartComponents<XAxis>(); + var lineType = tooltip.lineStyle.GetType(chart.theme.tooltip.lineType); + var lineWidth = tooltip.lineStyle.GetWidth(chart.theme.tooltip.lineWidth); + foreach (var component in xAxes) + { + var xAxis = component as XAxis; + if (xAxis.gridIndex == grid.index) + { + var dataZoom = chart.GetDataZoomOfAxis(xAxis); + int dataCount = chart.series.Count > 0 ? chart.series[0].GetDataList(dataZoom).Count : 0; + float splitWidth = AxisHelper.GetDataWidth(xAxis, grid.context.width, dataCount, dataZoom); + switch (tooltip.type) + { + case Tooltip.Type.Corss: + case Tooltip.Type.Line: + float pX = grid.context.x; + pX += xAxis.IsCategory() ? + (float) (xAxis.context.pointerValue * splitWidth + (xAxis.boundaryGap ? splitWidth / 2 : 0)) : + xAxis.GetDistance(xAxis.context.axisTooltipValue, grid.context.width); + Vector2 sp = new Vector2(pX, grid.context.y); + Vector2 ep = new Vector2(pX, grid.context.y + grid.context.height); + var lineColor = TooltipHelper.GetLineColor(tooltip, chart.theme); + // if (xAxis.IsCategory() && tooltip.type == Tooltip.Type.Corss) + // { + // float tooltipSplitWid = splitWidth < 1 ? 1 : splitWidth; + // pX = (float)(grid.context.x + splitWidth * xAxis.context.pointerValue - + // (xAxis.boundaryGap ? 0 : splitWidth / 2)); + // float pY = grid.context.y + grid.context.height; + // Vector3 p1 = new Vector3(pX, grid.context.y); + // Vector3 p2 = new Vector3(pX, pY); + // Vector3 p3 = new Vector3(pX + tooltipSplitWid, pY); + // Vector3 p4 = new Vector3(pX + tooltipSplitWid, grid.context.y); + // UGL.DrawQuadrilateral(vh, p1, p2, p3, p4, chart.theme.tooltip.areaColor); + // } + // else + { + ChartDrawer.DrawLineStyle(vh, lineType, lineWidth, sp, ep, lineColor); + } + if (tooltip.type == Tooltip.Type.Corss) + { + sp = new Vector2(grid.context.x, chart.pointerPos.y); + ep = new Vector2(grid.context.x + grid.context.width, chart.pointerPos.y); + ChartDrawer.DrawLineStyle(vh, lineType, lineWidth, sp, ep, lineColor); + } + break; + case Tooltip.Type.Shadow: + if (xAxis.IsCategory()) + { + float tooltipSplitWid = splitWidth < 1 ? 1 : splitWidth; + pX = (float) (grid.context.x + splitWidth * xAxis.context.pointerValue - + (xAxis.boundaryGap ? 0 : splitWidth / 2)); + float pY = grid.context.y + grid.context.height; + Vector3 p1 = new Vector3(pX, grid.context.y); + Vector3 p2 = new Vector3(pX, pY); + Vector3 p3 = new Vector3(pX + tooltipSplitWid, pY); + Vector3 p4 = new Vector3(pX + tooltipSplitWid, grid.context.y); + UGL.DrawQuadrilateral(vh, p1, p2, p3, p4, chart.theme.tooltip.areaColor); + } + break; + } + } + } + } + private void DrawYAxisIndicator(VertexHelper vh, Tooltip tooltip, GridCoord grid) + { + var yAxes = chart.GetChartComponents<YAxis>(); + var lineType = tooltip.lineStyle.GetType(chart.theme.tooltip.lineType); + var lineWidth = tooltip.lineStyle.GetWidth(chart.theme.tooltip.lineWidth); + + foreach (var component in yAxes) + { + var yAxis = component as YAxis; + if (yAxis.gridIndex == grid.index) + { + var dataZoom = chart.GetDataZoomOfAxis(yAxis); + int dataCount = chart.series.Count > 0 ? chart.series[0].GetDataList(dataZoom).Count : 0; + float splitWidth = AxisHelper.GetDataWidth(yAxis, grid.context.height, dataCount, dataZoom); + switch (tooltip.type) + { + case Tooltip.Type.Corss: + case Tooltip.Type.Line: + float pY = (float) (grid.context.y + yAxis.context.pointerValue * splitWidth + + (yAxis.boundaryGap ? splitWidth / 2 : 0)); + Vector2 sp = new Vector2(grid.context.x, pY); + Vector2 ep = new Vector2(grid.context.x + grid.context.width, pY); + var lineColor = TooltipHelper.GetLineColor(tooltip, chart.theme); + // if (yAxis.IsCategory() && tooltip.type == Tooltip.Type.Corss) + // { + // float tooltipSplitWid = splitWidth < 1 ? 1 : splitWidth; + // float pX = grid.context.x + grid.context.width; + // pY = (float)(grid.context.y + splitWidth * yAxis.context.pointerValue - + // (yAxis.boundaryGap ? 0 : splitWidth / 2)); + // Vector3 p1 = new Vector3(grid.context.x, pY); + // Vector3 p2 = new Vector3(grid.context.x, pY + tooltipSplitWid); + // Vector3 p3 = new Vector3(pX, pY + tooltipSplitWid); + // Vector3 p4 = new Vector3(pX, pY); + // UGL.DrawQuadrilateral(vh, p1, p2, p3, p4, chart.theme.tooltip.areaColor); + // } + // else + { + ChartDrawer.DrawLineStyle(vh, lineType, lineWidth, sp, ep, lineColor); + } + if (tooltip.type == Tooltip.Type.Corss) + { + sp = new Vector2(chart.pointerPos.x, grid.context.y); + ep = new Vector2(chart.pointerPos.x, grid.context.y + grid.context.height); + ChartDrawer.DrawLineStyle(vh, lineType, lineWidth, sp, ep, lineColor); + } + break; + case Tooltip.Type.Shadow: + if (yAxis.IsCategory()) + { + float tooltipSplitWid = splitWidth < 1 ? 1 : splitWidth; + float pX = grid.context.x + grid.context.width; + pY = (float) (grid.context.y + splitWidth * yAxis.context.pointerValue - + (yAxis.boundaryGap ? 0 : splitWidth / 2)); + Vector3 p1 = new Vector3(grid.context.x, pY); + Vector3 p2 = new Vector3(grid.context.x, pY + tooltipSplitWid); + Vector3 p3 = new Vector3(pX, pY + tooltipSplitWid); + Vector3 p4 = new Vector3(pX, pY); + UGL.DrawQuadrilateral(vh, p1, p2, p3, p4, chart.theme.tooltip.areaColor); + } + break; + } + } + } + } + + private void DrawPolarIndicator(VertexHelper vh, Tooltip tooltip, PolarCoord m_Polar) + { + if (tooltip.context.angle < 0) return; + var theme = chart.theme; + var m_AngleAxis = ComponentHelper.GetAngleAxis(chart.components, m_Polar.index); + var lineColor = TooltipHelper.GetLineColor(tooltip, theme); + var lineType = tooltip.lineStyle.GetType(theme.tooltip.lineType); + var lineWidth = tooltip.lineStyle.GetWidth(theme.tooltip.lineWidth); + var cenPos = m_Polar.context.center; + var radius = m_Polar.context.radius; + var sp = m_Polar.context.center; + var tooltipAngle = m_AngleAxis.GetValueAngle(tooltip.context.angle); + + var ep = ChartHelper.GetPos(sp, radius, tooltipAngle, true); + + switch (tooltip.type) + { + case Tooltip.Type.Corss: + ChartDrawer.DrawLineStyle(vh, lineType, lineWidth, sp, ep, lineColor); + var dist = Vector2.Distance(chart.pointerPos, cenPos); + if (dist > radius) dist = radius; + var outsideRaidus = dist + tooltip.lineStyle.GetWidth(theme.tooltip.lineWidth) * 2; + UGL.DrawDoughnut(vh, cenPos, dist, outsideRaidus, lineColor, Color.clear); + break; + case Tooltip.Type.Line: + ChartDrawer.DrawLineStyle(vh, lineType, lineWidth, sp, ep, lineColor); + break; + case Tooltip.Type.Shadow: + UGL.DrawSector(vh, cenPos, radius, lineColor, tooltipAngle - 2, tooltipAngle + 2, chart.settings.cicleSmoothness); + break; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipHandler.cs.meta new file mode 100644 index 0000000..7fb5702 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7d25a5b5e3d6f45b8a06b94e33792087 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipHelper.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipHelper.cs new file mode 100644 index 0000000..9e099bd --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipHelper.cs @@ -0,0 +1,99 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + public static class TooltipHelper + { + internal static void ResetTooltipParamsByItemFormatter(Tooltip tooltip, BaseChart chart) + { + if (!string.IsNullOrEmpty(tooltip.titleFormatter)) + { + if (tooltip.titleFormatter.Equals("{i}", StringComparison.CurrentCultureIgnoreCase)) + { + tooltip.context.data.title = string.Empty; + } + else + { + tooltip.context.data.title = tooltip.titleFormatter; + FormatterHelper.ReplaceContent(ref tooltip.context.data.title, 0, + tooltip.numericFormatter, null, chart); + } + } + for (int i = tooltip.context.data.param.Count - 1; i >= 0; i--) + { + var param = tooltip.context.data.param[i]; + if (TooltipHelper.IsIgnoreItemFormatter(param.itemFormatter)) + { + tooltip.context.data.param.RemoveAt(i); + } + } + foreach (var param in tooltip.context.data.param) + { + if (!string.IsNullOrEmpty(param.itemFormatter)) + { + param.columns.Clear(); + var content = param.itemFormatter; + FormatterHelper.ReplaceSerieLabelContent(ref content, + param.numericFormatter, + param.dataCount, + param.value, + param.total, + param.serieName, + param.category, + param.serieData.name, + param.color); + foreach (var item in content.Split('|')) + { + param.columns.Add(item); + } + } + } + } + + public static bool IsIgnoreItemFormatter(string itemFormatter) + { + return "-".Equals(itemFormatter); + } + + public static void LimitInRect(Tooltip tooltip, Rect chartRect) + { + if (tooltip.view == null) + return; + + var pos = tooltip.view.GetTargetPos(); + if (pos.x + tooltip.context.width > chartRect.x + chartRect.width) + { + //pos.x = chartRect.x + chartRect.width - tooltip.context.width; + pos.x = pos.x - tooltip.context.width - tooltip.offset.x; + } + if (pos.y - tooltip.context.height < chartRect.y) + { + pos.y = chartRect.y + tooltip.context.height; + } + tooltip.UpdateContentPos(pos); + } + + public static string GetItemNumericFormatter(Tooltip tooltip, Serie serie, SerieData serieData) + { + var itemStyle = SerieHelper.GetItemStyle(serie, serieData); + if (!string.IsNullOrEmpty(itemStyle.numericFormatter)) return itemStyle.numericFormatter; + else return tooltip.numericFormatter; + } + + public static Color32 GetLineColor(Tooltip tooltip, ThemeStyle theme) + { + var lineStyle = tooltip.lineStyle; + if (!ChartHelper.IsClearColor(lineStyle.color)) + { + return lineStyle.GetColor(); + } + else + { + var color = theme.tooltip.lineColor; + ChartHelper.SetColorOpacity(ref color, lineStyle.opacity); + return color; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipHelper.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipHelper.cs.meta new file mode 100644 index 0000000..169f2a5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 184e190de6da6486b8b4d333a302477a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipView.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipView.cs new file mode 100644 index 0000000..2fe075f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipView.cs @@ -0,0 +1,270 @@ +using System.Collections.Generic; +using System.Text; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + public class TooltipViewItem + { + public GameObject gameObject; + public List<ChartLabel> columns = new List<ChartLabel>(); + } + public class TooltipView + { + private static Vector2 anchorMax = new Vector2(0, 1); + private static Vector2 anchorMin = new Vector2(0, 1); + private static Vector2 pivot = new Vector2(0, 1); + private static Vector2 v2_0_05 = new Vector2(0, 0.5f); + + public Tooltip tooltip; + public ComponentTheme theme; + public GameObject gameObject; + public Transform transform; + public Image background; + public Outline border; + public VerticalLayoutGroup layout; + public ChartLabel title; + private List<TooltipViewItem> m_Items = new List<TooltipViewItem>(); + private List<float> m_ColumnMaxWidth = new List<float>(); + private bool m_Active = false; + private Vector3 m_TargetPos; + private Vector3 m_CurrentVelocity; + + public void Update() + { + if (!m_Active) + return; + transform.localPosition = Vector3.SmoothDamp(transform.localPosition, m_TargetPos, ref m_CurrentVelocity, 0.08f); + } + + public Vector3 GetCurrentPos() + { + return transform.localPosition; + } + + public Vector3 GetTargetPos() + { + return m_TargetPos; + } + + public void UpdatePosition(Vector3 pos) + { + m_TargetPos = pos; + } + + public void SetActive(bool flag) + { + m_Active = flag && tooltip.showContent; + ChartHelper.SetActive(gameObject, m_Active); + } + + public void Refresh() + { + if (tooltip == null) return; + var data = tooltip.context.data; + + var titleActive = !string.IsNullOrEmpty(data.title); + if (titleActive != title.gameObject.activeSelf) + title.gameObject.SetActive(titleActive); + title.SetText(data.title); + + m_ColumnMaxWidth.Clear(); + for (int i = 0; i < data.param.Count; i++) + { + var item = GetItem(i); + var param = data.param[i]; + if (param.columns.Count <= 0) + { + item.gameObject.SetActive(false); + continue; + } + item.gameObject.SetActive(true); + for (int j = 0; j < param.columns.Count; j++) + { + var column = GetItemColumn(item, j); + column.SetActive(true); + column.SetText(param.columns[j]); + + if (j == 0) + column.text.SetColor(param.color); + + if (j >= m_ColumnMaxWidth.Count) + m_ColumnMaxWidth.Add(0); + + var columnWidth = column.GetWidth(); + if (m_ColumnMaxWidth[j] < columnWidth) + m_ColumnMaxWidth[j] = columnWidth; + } + for (int j = param.columns.Count; j < item.columns.Count; j++) + { + item.columns[j].SetActive(false); + } + } + for (int i = data.param.Count; i < m_Items.Count; i++) + { + m_Items[i].gameObject.SetActive(false); + } + ResetSize(); + // border.effectColor = data.param.Count == 1 + // ? data.param[0].color + // : tooltip.borderColor; + UpdatePosition(tooltip.context.pointer + tooltip.offset); + tooltip.gameObject.transform.SetAsLastSibling(); + } + + private void ResetSize() + { + var maxHig = 0f; + var maxWid = 0f; + if (tooltip.fixedWidth > 0) + { + maxWid = tooltip.fixedWidth; + } + else + { + maxWid = TotalMaxWidth(); + var titleWid = title.GetTextWidth(); + if (maxWid < titleWid) + maxWid = titleWid; + } + + if (tooltip.fixedHeight > 0) + { + maxHig = tooltip.fixedHeight; + } + else + { + if (!string.IsNullOrEmpty(title.text.GetText())) + maxHig += tooltip.titleHeight; + maxHig += tooltip.itemHeight * tooltip.context.data.param.Count; + maxHig += tooltip.paddingTopBottom * 2; + } + + if (tooltip.minWidth > 0 && maxWid < tooltip.minWidth) + maxWid = tooltip.minWidth; + + if (tooltip.minHeight > 0 && maxHig < tooltip.minHeight) + maxHig = tooltip.minHeight; + + for (int i = 0; i < m_Items.Count; i++) + { + var item = m_Items[i]; + item.gameObject.GetComponent<RectTransform>().sizeDelta = new Vector2(maxWid, tooltip.itemHeight); + var xPos = 0f; + for (int j = 0; j < m_ColumnMaxWidth.Count; j++) + { + var deltaX = j == m_ColumnMaxWidth.Count - 1 ? maxWid - xPos : m_ColumnMaxWidth[j]; + item.columns[j].text.SetSizeDelta(new Vector2(deltaX, tooltip.itemHeight)); + item.columns[j].SetRectPosition(new Vector3(xPos, 0)); + xPos += m_ColumnMaxWidth[j]; + } + } + tooltip.context.width = maxWid + tooltip.paddingLeftRight * 2; + tooltip.context.height = maxHig; + background.GetComponent<RectTransform>().sizeDelta = new Vector2(tooltip.context.width, tooltip.context.height); + } + + private float TotalMaxWidth() + { + var total = 0f; + foreach (var max in m_ColumnMaxWidth) + total += max; + return total; + } + + private TooltipViewItem GetItem(int i) + { + if (i < 0) i = 0; + if (i < m_Items.Count) + { + return m_Items[i]; + } + else + { + var item = CreateViewItem(i, gameObject.transform, tooltip, theme); + m_Items.Add(item); + return item; + } + } + + private ChartLabel GetItemColumn(TooltipViewItem item, int i) + { + if (i < 0) i = 0; + if (i < item.columns.Count) + { + return item.columns[i]; + } + else + { + var column = CreateViewItemColumn(i, item.gameObject.transform, tooltip, theme); + item.columns.Add(column); + return column; + } + } + + public static TooltipView CreateView(Tooltip tooltip, ThemeStyle theme, Transform parent) + { + var view = new TooltipView(); + view.tooltip = tooltip; + view.theme = theme.tooltip; + + view.gameObject = ChartHelper.AddObject("view", parent, anchorMin, anchorMax, pivot, Vector3.zero); + view.gameObject.transform.localPosition = Vector3.zero; + view.transform = view.gameObject.transform; + + view.background = ChartHelper.GetOrAddComponent<Image>(view.gameObject); + view.background.sprite = tooltip.backgroundImage; + view.background.type = tooltip.backgroundType; + view.background.color = ChartHelper.IsClearColor(tooltip.backgroundColor) ? + Color.white : tooltip.backgroundColor; + + view.border = ChartHelper.GetOrAddComponent<Outline>(view.gameObject); + view.border.enabled = tooltip.borderWidth > 0; + view.border.useGraphicAlpha = false; + view.border.effectColor = tooltip.borderColor; + view.border.effectDistance = new Vector2(tooltip.borderWidth, -tooltip.borderWidth); + + view.layout = ChartHelper.GetOrAddComponent<VerticalLayoutGroup>(view.gameObject); + view.layout.childControlHeight = false; + view.layout.childControlWidth = false; + view.layout.childForceExpandHeight = false; + view.layout.childForceExpandWidth = false; + view.layout.padding = new RectOffset(tooltip.paddingLeftRight, + tooltip.paddingLeftRight, + tooltip.paddingTopBottom, + tooltip.paddingTopBottom); + + view.title = ChartHelper.AddChartLabel("title", view.gameObject.transform, tooltip.titleLabelStyle, theme.tooltip, + "", Color.clear, TextAnchor.MiddleLeft); + + var item = CreateViewItem(0, view.gameObject.transform, tooltip, theme.tooltip); + view.m_Items.Add(item); + + view.Refresh(); + + return view; + } + + private static TooltipViewItem CreateViewItem(int i, Transform parent, Tooltip tooltip, ComponentTheme theme) + { + GameObject item1 = ChartHelper.AddObject("item" + i, parent, anchorMin, anchorMax, v2_0_05, Vector3.zero); + + var item = new TooltipViewItem(); + item.gameObject = item1; + item.columns.Add(CreateViewItemColumn(0, item1.transform, tooltip, theme)); + item.columns.Add(CreateViewItemColumn(1, item1.transform, tooltip, theme)); + item.columns.Add(CreateViewItemColumn(2, item1.transform, tooltip, theme)); + return item; + } + + private static ChartLabel CreateViewItemColumn(int i, Transform parent, Tooltip tooltip, ComponentTheme theme) + { + var labelStyle = tooltip.GetContentLabelStyle(i); + var label = ChartHelper.AddChartLabel("column" + i, parent, labelStyle, theme, + "", Color.clear, TextAnchor.MiddleLeft); + return label; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipView.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipView.cs.meta new file mode 100644 index 0000000..bdc9a34 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/Tooltip/TooltipView.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 20bbaf6c402824f5d8abcaf1cee57865 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap.meta new file mode 100644 index 0000000..1077d02 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c21848eac9668493db23591788d54bf0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMap.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMap.cs new file mode 100644 index 0000000..165aa80 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMap.cs @@ -0,0 +1,641 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + [System.Serializable] + public class VisualMapRange : ChildComponent + { + [SerializeField] private double m_Min; + [SerializeField] private double m_Max; + [SerializeField] private string m_Label; + [SerializeField] private Color32 m_Color; + + /// <summary> + /// 范围最小值 + /// </summary> + public double min { get { return m_Min; } set { m_Min = value; } } + /// <summary> + /// 范围最大值 + /// </summary> + public double max { get { return m_Max; } set { m_Max = value; } } + /// <summary> + /// 文字描述 + /// </summary> + public string label { get { return m_Label; } set { m_Label = value; } } + /// <summary> + /// 颜色 + /// </summary> + public Color32 color { get { return m_Color; } set { m_Color = value; } } + + public bool Contains(double value, double minMaxRange) + { + if (m_Min == 0 && m_Max == 0) return false; + var cmin = System.Math.Abs(m_Min) < 1 ? minMaxRange * m_Min : m_Min; + var cmax = System.Math.Abs(m_Max) < 1 ? minMaxRange * m_Max : m_Max; + return value >= cmin && value < cmax; + } + } + + /// <summary> + /// VisualMap component. Mapping data to visual elements such as colors. + /// |视觉映射组件。用于进行『视觉编码』,也就是将数据映射到视觉元素(视觉通道)。 + /// </summary> + [System.Serializable] + [ComponentHandler(typeof(VisualMapHandler), true)] + public class VisualMap : MainComponent + { + /// <summary> + /// 类型。分为连续型和分段型。 + /// </summary> + public enum Type + { + /// <summary> + /// 连续型。 + /// </summary> + Continuous, + /// <summary> + /// 分段型。 + /// </summary> + Piecewise + } + + /// <summary> + /// 选择模式 + /// </summary> + public enum SelectedMode + { + /// <summary> + /// 多选。 + /// </summary> + Multiple, + /// <summary> + /// 单选。 + /// </summary> + Single + } + + [SerializeField] private bool m_Show = true; + [SerializeField] private bool m_ShowUI = false; + [SerializeField] private Type m_Type = Type.Continuous; + [SerializeField] private SelectedMode m_SelectedMode = SelectedMode.Multiple; + [SerializeField] private int m_SerieIndex = 0; + [SerializeField] private double m_Min = 0; + [SerializeField] private double m_Max = 100; + + [SerializeField] private double[] m_Range = new double[2] { 0, 100 }; + [SerializeField] private string[] m_Text = new string[2] { "", "" }; + [SerializeField] private float[] m_TextGap = new float[2] { 10f, 10f }; + [SerializeField] private int m_SplitNumber = 5; + [SerializeField] private bool m_Calculable = false; + [SerializeField] private bool m_Realtime = true; + [SerializeField] private float m_ItemWidth = 20f; + [SerializeField] private float m_ItemHeight = 140f; + [SerializeField] private float m_ItemGap = 10f; + [SerializeField] private float m_BorderWidth = 0; + [SerializeField] private int m_Dimension = -1; + [SerializeField] private bool m_HoverLink = true; + [SerializeField] private bool m_AutoMinMax = true; + [SerializeField] private Orient m_Orient = Orient.Horizonal; + [SerializeField] private Location m_Location = Location.defaultLeft; + [SerializeField] private bool m_WorkOnLine = true; + [SerializeField] private bool m_WorkOnArea = false; + + [SerializeField] private List<VisualMapRange> m_OutOfRange = new List<VisualMapRange>() { new VisualMapRange() { color = Color.gray } }; + [SerializeField] private List<VisualMapRange> m_InRange = new List<VisualMapRange>(); + + public VisualMapContext context = new VisualMapContext(); + + /// <summary> + /// Whether to enable components. + /// |组件是否生效。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetVerticesDirty(); } + } + /// <summary> + /// Whether to display components. If set to false, it will not show up, but the data mapping function still exists. + /// |是否显示组件。如果设置为 false,不会显示,但是数据映射的功能还存在。 + /// </summary> + public bool showUI + { + get { return m_ShowUI; } + set { if (PropertyUtil.SetStruct(ref m_ShowUI, value)) SetVerticesDirty(); } + } + /// <summary> + /// the type of visualmap component. + /// |组件类型。 + /// </summary> + public Type type + { + get { return m_Type; } + set { if (PropertyUtil.SetStruct(ref m_Type, value)) SetVerticesDirty(); } + } + /// <summary> + /// the selected mode for Piecewise visualMap. + /// |选择模式。 + /// </summary> + public SelectedMode selectedMode + { + get { return m_SelectedMode; } + set { if (PropertyUtil.SetStruct(ref m_SelectedMode, value)) SetVerticesDirty(); } + } + /// <summary> + /// the serie index of visualMap. + /// |影响的serie索引。 + /// </summary> + public int serieIndex + { + get { return m_SerieIndex; } + set { if (PropertyUtil.SetStruct(ref m_SerieIndex, value)) SetVerticesDirty(); } + } + /// <summary> + /// The minimum allowed. 'min' must be user specified. [visualmap.min, visualmap.max] forms the "domain" of the visualMap. + /// | + /// 允许的最小值。`autoMinMax`为`false`时必须指定。[visualMap.min, visualMap.max] 形成了视觉映射的『定义域』。 + /// </summary> + public double min + { + get { return m_Min; } + set { if (PropertyUtil.SetStruct(ref m_Min, value)) SetVerticesDirty(); } + } + /// <summary> + /// The maximum allowed. 'max' must be user specified. [visualmap.min, visualmap.max] forms the "domain" of the visualMap. + /// | + /// 允许的最大值。`autoMinMax`为`false`时必须指定。[visualMap.min, visualMax.max] 形成了视觉映射的『定义域』。 + /// </summary> + public double max + { + get { return m_Max; } + set { m_Max = (value < min ? min + 1 : value); SetVerticesDirty(); } + } + /// <summary> + /// Specifies the position of the numeric value corresponding to the handle. Range should be within the range of [min,max]. + /// | + /// 指定手柄对应数值的位置。range 应在[min,max]范围内。 + /// </summary> + public double[] range { get { return m_Range; } } + /// <summary> + /// Text on both ends. + /// |两端的文本,如 ['High', 'Low']。 + /// </summary> + public string[] text { get { return m_Text; } } + /// <summary> + /// The distance between the two text bodies. + /// |两端文字主体之间的距离,单位为px。 + /// </summary> + public float[] textGap { get { return m_TextGap; } } + /// <summary> + /// For continuous data, it is automatically evenly divided into several segments + /// and automatically matches the size of inRange color list when the default is 0. + /// | + /// 对于连续型数据,自动平均切分成几段,默认为0时自动匹配inRange颜色列表大小。 + /// </summary> + /// <value></value> + public int splitNumber + { + get { return m_SplitNumber; } + set { if (PropertyUtil.SetStruct(ref m_SplitNumber, value)) SetVerticesDirty(); } + } + /// <summary> + /// Whether the handle used for dragging is displayed (the handle can be dragged to adjust the selected range). + /// | + /// 是否显示拖拽用的手柄(手柄能拖拽调整选中范围)。 + /// </summary> + public bool calculable + { + get { return m_Calculable; } + set { if (PropertyUtil.SetStruct(ref m_Calculable, value)) SetVerticesDirty(); } + } + /// <summary> + /// Whether to update in real time while dragging. + /// | + /// 拖拽时,是否实时更新。 + /// </summary> + public bool realtime + { + get { return m_Realtime; } + set { if (PropertyUtil.SetStruct(ref m_Realtime, value)) SetVerticesDirty(); } + } + /// <summary> + /// The width of the figure, that is, the width of the color bar. + /// | + /// 图形的宽度,即颜色条的宽度。 + /// </summary> + public float itemWidth + { + get { return m_ItemWidth; } + set { if (PropertyUtil.SetStruct(ref m_ItemWidth, value)) SetVerticesDirty(); } + } + /// <summary> + /// The height of the figure, that is, the height of the color bar. + /// | + /// 图形的高度,即颜色条的高度。 + /// </summary> + public float itemHeight + { + get { return m_ItemHeight; } + set { if (PropertyUtil.SetStruct(ref m_ItemHeight, value)) SetVerticesDirty(); } + } + /// <summary> + /// 每个图元之间的间隔距离。 + /// </summary> + public float itemGap + { + get { return m_ItemGap; } + set { if (PropertyUtil.SetStruct(ref m_ItemGap, value)) SetVerticesDirty(); } + } + /// <summary> + /// Border line width. + /// | + /// 边框线宽,单位px。 + /// </summary> + public float borderWidth + { + get { return m_BorderWidth; } + set { if (PropertyUtil.SetStruct(ref m_BorderWidth, value)) SetVerticesDirty(); } + } + /// <summary> + /// Specifies "which dimension" of the data to map to the visual element. "Data" is series.data. + /// |Starting at 1, the default is 0 to take the last dimension in data. + /// | + /// 指定用数据的『哪个维度』,映射到视觉元素上。『数据』即 series.data。从1开始,默认为0取 data 中最后一个维度。 + /// </summary> + public int dimension + { + get { return m_Dimension; } + set { if (PropertyUtil.SetStruct(ref m_Dimension, value)) SetVerticesDirty(); } + } + /// <summary> + /// When the hoverLink function is turned on, when the mouse hovers over the visualMap component, + /// the corresponding value of the mouse position is highlighted in the corresponding graphic element in the diagram. + /// |Conversely, when the mouse hovers over a graphic element in a diagram, + /// the corresponding value of the visualMap component is triangulated in the corresponding position. + /// | + /// 打开 hoverLink 功能时,鼠标悬浮到 visualMap 组件上时,鼠标位置对应的数值 在 图表中对应的图形元素,会高亮。 + /// 反之,鼠标悬浮到图表中的图形元素上时,在 visualMap 组件的相应位置会有三角提示其所对应的数值。 + /// </summary> + /// <value></value> + public bool hoverLink + { + get { return m_HoverLink; } + set { if (PropertyUtil.SetStruct(ref m_HoverLink, value)) SetVerticesDirty(); } + } + /// <summary> + /// Automatically set min, Max value + /// 自动设置min,max的值 + /// </summary> + public bool autoMinMax + { + get { return m_AutoMinMax; } + set { if (PropertyUtil.SetStruct(ref m_AutoMinMax, value)) SetVerticesDirty(); } + } + /// <summary> + /// Specify whether the layout of component is horizontal or vertical. + /// | + /// 布局方式是横还是竖。 + /// </summary> + public Orient orient + { + get { return m_Orient; } + set { if (PropertyUtil.SetStruct(ref m_Orient, value)) SetVerticesDirty(); } + } + /// <summary> + /// The location of component. + /// |组件显示的位置。 + /// </summary> + public Location location + { + get { return m_Location; } + set { if (PropertyUtil.SetClass(ref m_Location, value)) SetVerticesDirty(); } + } + /// <summary> + /// Whether the visualmap is work on linestyle of linechart. + /// |组件是否对LineChart的LineStyle有效。 + /// </summary> + public bool workOnLine + { + get { return m_WorkOnLine; } + set { if (PropertyUtil.SetStruct(ref m_WorkOnLine, value)) SetVerticesDirty(); } + } + /// <summary> + /// Whether the visualmap is work on areaStyle of linechart. + /// |组件是否对LineChart的AreaStyle有效。 + /// </summary> + public bool workOnArea + { + get { return m_WorkOnArea; } + set { if (PropertyUtil.SetStruct(ref m_WorkOnArea, value)) SetVerticesDirty(); } + } + /// <summary> + /// Defines a visual color outside of the selected range. + /// |定义 在选中范围外 的视觉颜色。 + /// </summary> + public List<VisualMapRange> outOfRange + { + get { return m_OutOfRange; } + set { if (value != null) { m_OutOfRange = value; SetVerticesDirty(); } } + } + /// <summary> + /// 分段式每一段的相关配置。 + /// </summary> + public List<VisualMapRange> inRange + { + get { return m_InRange; } + set { if (value != null) { m_InRange = value; SetVerticesDirty(); } } + } + + public override bool vertsDirty { get { return m_VertsDirty || location.anyDirty; } } + public override void ClearVerticesDirty() + { + base.ClearVerticesDirty(); + location.ClearVerticesDirty(); + } + + public override void ClearComponentDirty() + { + base.ClearComponentDirty(); + location.ClearComponentDirty(); + } + + public double rangeMin + { + get + { + if (m_Range[0] < min || m_Range[0] > max) return min; + else return m_Range[0]; + } + set + { + if (value >= min && value <= m_Range[1]) m_Range[0] = value; + } + } + + public double rangeMax + { + get + { + if (m_Range[1] >= m_Range[0] && m_Range[1] < max) return m_Range[1]; + else return max; + } + set + { + if (value >= m_Range[0] && value <= max) m_Range[1] = value; + } + } + + public float runtimeRangeMinHeight { get { return (float) ((rangeMin - min) / (max - min) * itemHeight); } } + public float runtimeRangeMaxHeight { get { return (float) ((rangeMax - min) / (max - min) * itemHeight); } } + + public void AddColors(List<Color32> colors) + { + m_InRange.Clear(); + foreach (var color in colors) + { + m_InRange.Add(new VisualMapRange() + { + color = color + }); + } + } + + public void AddColors(List<string> colors) + { + m_InRange.Clear(); + foreach (var str in colors) + { + m_InRange.Add(new VisualMapRange() + { + color = ThemeStyle.GetColor(str) + }); + } + } + + public Color32 GetColor(double value) + { + int index = GetIndex(value); + if (index == -1) + { + if (m_OutOfRange.Count > 0) + return m_OutOfRange[0].color; + else + return ChartConst.clearColor32; + } + + if (m_Type == VisualMap.Type.Piecewise) + { + return m_InRange[index].color; + } + else + { + int splitNumber = m_InRange.Count; + var diff = (m_Max - m_Min) / (splitNumber - 1); + var nowMin = m_Min + index * diff; + var rate = (value - nowMin) / diff; + if (index == splitNumber - 1) + return m_InRange[index].color; + else + return Color32.Lerp(m_InRange[index].color, m_InRange[index + 1].color, (float) rate); + } + } + + private bool IsNeedPieceColor(double value, out int index) + { + bool flag = false; + index = -1; + for (int i = 0; i < m_InRange.Count; i++) + { + var range = m_InRange[i]; + if (range.min != 0 || range.max != 0) + { + flag = true; + if (range.Contains(value, max - min)) + { + index = i; + return true; + } + } + } + return flag; + } + + private Color32 GetPiecesColor(double value) + { + foreach (var piece in m_InRange) + { + if (piece.Contains(value, max - min)) + { + return piece.color; + } + } + if (m_OutOfRange.Count > 0) + return m_OutOfRange[0].color; + else + return ChartConst.clearColor32; + } + + public int GetIndex(double value) + { + int splitNumber = m_InRange.Count; + if (splitNumber <= 0) + return -1; + var index = -1; + if (IsNeedPieceColor(value, out index)) + { + return index; + } + value = MathUtil.Clamp(value, m_Min, m_Max); + + var diff = (m_Max - m_Min) / (splitNumber - 1); + + for (int i = 0; i < splitNumber; i++) + { + if (value <= m_Min + (i + 1) * diff) + { + index = i; + break; + } + } + return index; + } + + public bool IsPiecewise() + { + return m_Type == VisualMap.Type.Piecewise; + } + + public bool IsInSelectedValue(double value) + { + if (context.pointerIndex < 0) + return true; + else + return context.pointerIndex == GetIndex(value); + } + + public double GetValue(Vector3 pos, Rect chartRect) + { + var vertical = orient == Orient.Vertical; + var centerPos = new Vector3(chartRect.x, chartRect.y) + location.GetPosition(chartRect.width, chartRect.height); + var pos1 = centerPos + (vertical ? Vector3.down : Vector3.left) * itemHeight / 2; + var pos2 = centerPos + (vertical ? Vector3.up : Vector3.right) * itemHeight / 2; + + if (vertical) + { + if (pos.y < pos1.y) + return min; + else if (pos.y > pos2.y) + return max; + else + return min + (pos.y - pos1.y) / (pos2.y - pos1.y) * (max - min); + } + else + { + if (pos.x < pos1.x) + return min; + else if (pos.x > pos2.x) + return max; + else + return min + (pos.x - pos1.x) / (pos2.x - pos1.x) * (max - min); + } + } + + public bool IsInRect(Vector3 local, Rect chartRect, float triangleLen = 20) + { + var centerPos = new Vector3(chartRect.x, chartRect.y) + location.GetPosition(chartRect.width, chartRect.height); + var diff = calculable ? triangleLen : 0; + + if (local.x >= centerPos.x - itemWidth / 2 - diff && + local.x <= centerPos.x + itemWidth / 2 + diff && + local.y >= centerPos.y - itemHeight / 2 - diff && + local.y <= centerPos.y + itemHeight / 2 + diff) + { + return true; + } + else + { + return false; + } + } + + public bool IsInRangeRect(Vector3 local, Rect chartRect) + { + var centerPos = new Vector3(chartRect.x, chartRect.y) + location.GetPosition(chartRect.width, chartRect.height); + + if (orient == Orient.Vertical) + { + var pos1 = centerPos + Vector3.down * itemHeight / 2; + + return local.x >= centerPos.x - itemWidth / 2 && + local.x <= centerPos.x + itemWidth / 2 && + local.y >= pos1.y + runtimeRangeMinHeight && + local.y <= pos1.y + runtimeRangeMaxHeight; + } + else + { + var pos1 = centerPos + Vector3.left * itemHeight / 2; + return local.x >= pos1.x + runtimeRangeMinHeight && + local.x <= pos1.x + runtimeRangeMaxHeight && + local.y >= centerPos.y - itemWidth / 2 && + local.y <= centerPos.y + itemWidth / 2; + } + } + + public bool IsInRangeMinRect(Vector3 local, Rect chartRect, float triangleLen) + { + var centerPos = new Vector3(chartRect.x, chartRect.y) + location.GetPosition(chartRect.width, chartRect.height); + + if (orient == Orient.Vertical) + { + var radius = triangleLen / 2; + var pos1 = centerPos + Vector3.down * itemHeight / 2; + var cpos = new Vector3(pos1.x + itemWidth / 2 + radius, pos1.y + runtimeRangeMinHeight - radius); + + return local.x >= cpos.x - radius && + local.x <= cpos.x + radius && + local.y >= cpos.y - radius && + local.y <= cpos.y + radius; + } + else + { + var radius = triangleLen / 2; + var pos1 = centerPos + Vector3.left * itemHeight / 2; + var cpos = new Vector3(pos1.x + runtimeRangeMinHeight, pos1.y + itemWidth / 2 + radius); + + return local.x >= cpos.x - radius && + local.x <= cpos.x + radius && + local.y >= cpos.y - radius && + local.y <= cpos.y + radius; + } + } + + public bool IsInRangeMaxRect(Vector3 local, Rect chartRect, float triangleLen) + { + var centerPos = new Vector3(chartRect.x, chartRect.y) + location.GetPosition(chartRect.width, chartRect.height); + + if (orient == Orient.Vertical) + { + var radius = triangleLen / 2; + var pos1 = centerPos + Vector3.down * itemHeight / 2; + var cpos = new Vector3(pos1.x + itemWidth / 2 + radius, pos1.y + runtimeRangeMaxHeight + radius); + + return local.x >= cpos.x - radius && + local.x <= cpos.x + radius && + local.y >= cpos.y - radius && + local.y <= cpos.y + radius; + } + else + { + var radius = triangleLen / 2; + var pos1 = centerPos + Vector3.left * itemHeight / 2; + var cpos = new Vector3(pos1.x + runtimeRangeMaxHeight + radius, pos1.y + itemWidth / 2 + radius); + + return local.x >= cpos.x - radius && + local.x <= cpos.x + radius && + local.y >= cpos.y - radius && + local.y <= cpos.y + radius; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMap.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMap.cs.meta new file mode 100644 index 0000000..63b8bc2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMap.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0a684cb32850c4df6aa39ed4fa5efb3f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMapContext.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMapContext.cs new file mode 100644 index 0000000..730b537 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMapContext.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + public class VisualMapContext : MainComponentContext + { + /// <summary> + /// 鼠标悬停选中的index + /// </summary> + public int pointerIndex { get; set; } + public double pointerValue { get; set; } + public bool minDrag { get; internal set; } + public bool maxDrag { get; internal set; } + + internal List<Color32> inRangeColors = new List<Color32>(); + + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMapContext.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMapContext.cs.meta new file mode 100644 index 0000000..b2eea4c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMapContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b81ad95b4747442daa716953c7c02638 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMapHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMapHandler.cs new file mode 100644 index 0000000..a6f672d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMapHandler.cs @@ -0,0 +1,371 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class VisualMapHandler : MainComponentHandler<VisualMap> + { + public override void OnBeginDrag(PointerEventData eventData) + { + OnDragVisualMapStart(component); + } + public override void OnDrag(PointerEventData eventData) + { + OnDragVisualMap(component); + } + + public override void OnEndDrag(PointerEventData eventData) + { + OnDragVisualMapEnd(component); + } + + public override void Update() + { + CheckVisualMap(component); + } + + public override void DrawBase(VertexHelper vh) + { + var visualMap = component; + if (!visualMap.show || !visualMap.showUI) return; + switch (visualMap.type) + { + case VisualMap.Type.Continuous: + DrawContinuousVisualMap(vh, visualMap); + break; + case VisualMap.Type.Piecewise: + //DrawPiecewiseVisualMap(vh, visualMap); + break; + } + } + + private void CheckVisualMap(VisualMap visualMap) + { + if (visualMap == null || !visualMap.show) + return; + + if (chart.canvas == null) + return; + + Vector2 local; + if (!chart.ScreenPointToChartPoint(Input.mousePosition, out local)) + { + if (visualMap.context.pointerIndex >= 0) + { + visualMap.context.pointerIndex = -1; + chart.RefreshChart(); + } + return; + } + + if (local.x < chart.chartX || + local.x > chart.chartX + chart.chartWidth || + local.y < chart.chartY || + local.y > chart.chartY + chart.chartHeight || + !visualMap.IsInRangeRect(local, chart.chartRect)) + { + if (visualMap.context.pointerIndex >= 0) + { + visualMap.context.pointerIndex = -1; + chart.RefreshChart(); + } + return; + } + + var pos1 = Vector3.zero; + var pos2 = Vector3.zero; + var halfHig = visualMap.itemHeight / 2; + var centerPos = chart.chartPosition + visualMap.location.GetPosition(chart.chartWidth, chart.chartHeight); + var selectedIndex = -1; + double value = 0; + + switch (visualMap.orient) + { + case Orient.Horizonal: + pos1 = centerPos + Vector3.left * halfHig; + pos2 = centerPos + Vector3.right * halfHig; + value = visualMap.min + (local.x - pos1.x) / (pos2.x - pos1.x) * (visualMap.max - visualMap.min); + selectedIndex = visualMap.GetIndex(value); + break; + + case Orient.Vertical: + pos1 = centerPos + Vector3.down * halfHig; + pos2 = centerPos + Vector3.up * halfHig; + value = visualMap.min + (local.y - pos1.y) / (pos2.y - pos1.y) * (visualMap.max - visualMap.min); + selectedIndex = visualMap.GetIndex(value); + break; + } + + visualMap.context.pointerValue = value; + visualMap.context.pointerIndex = selectedIndex; + chart.RefreshChart(); + } + + private void DrawContinuousVisualMap(VertexHelper vh, VisualMap visualMap) + { + var centerPos = chart.chartPosition + visualMap.location.GetPosition(chart.chartWidth, chart.chartHeight); + var pos1 = Vector3.zero; + var pos2 = Vector3.zero; + var dir = Vector3.zero; + var halfWid = visualMap.itemWidth / 2; + var halfHig = visualMap.itemHeight / 2; + var xRadius = 0f; + var yRadius = 0f; + var splitNum = visualMap.inRange.Count; + var splitWid = visualMap.itemHeight / (splitNum - 1); + var isVertical = false; + var colors = visualMap.inRange; + var triangeLen = chart.theme.visualMap.triangeLen; + + switch (visualMap.orient) + { + case Orient.Horizonal: + pos1 = centerPos + Vector3.left * halfHig; + pos2 = centerPos + Vector3.right * halfHig; + dir = Vector3.right; + xRadius = splitWid / 2; + yRadius = halfWid; + isVertical = false; + if (visualMap.calculable) + { + var p0 = pos1 + Vector3.right * visualMap.runtimeRangeMinHeight; + var p1 = p0 + Vector3.up * halfWid; + var p2 = p0 + Vector3.up * (halfWid + triangeLen); + var p3 = p2 + Vector3.left * triangeLen; + var color = visualMap.GetColor(visualMap.rangeMin); + UGL.DrawTriangle(vh, p1, p2, p3, color); + p0 = pos1 + Vector3.right * visualMap.runtimeRangeMaxHeight; + p1 = p0 + Vector3.up * halfWid; + p2 = p0 + Vector3.up * (halfWid + triangeLen); + p3 = p2 + Vector3.right * triangeLen; + color = visualMap.GetColor(visualMap.rangeMax); + UGL.DrawTriangle(vh, p1, p2, p3, color); + } + break; + + case Orient.Vertical: + pos1 = centerPos + Vector3.down * halfHig; + pos2 = centerPos + Vector3.up * halfHig; + dir = Vector3.up; + xRadius = halfWid; + yRadius = splitWid / 2; + isVertical = true; + if (visualMap.calculable) + { + var p0 = pos1 + Vector3.up * visualMap.runtimeRangeMinHeight; + var p1 = p0 + Vector3.right * halfWid; + var p2 = p0 + Vector3.right * (halfWid + triangeLen); + var p3 = p2 + Vector3.down * triangeLen; + var color = visualMap.GetColor(visualMap.rangeMin); + UGL.DrawTriangle(vh, p1, p2, p3, color); + p0 = pos1 + Vector3.up * visualMap.runtimeRangeMaxHeight; + p1 = p0 + Vector3.right * halfWid; + p2 = p0 + Vector3.right * (halfWid + triangeLen); + p3 = p2 + Vector3.up * triangeLen; + color = visualMap.GetColor(visualMap.rangeMax); + UGL.DrawTriangle(vh, p1, p2, p3, color); + } + break; + } + if (visualMap.calculable && + (visualMap.rangeMin > visualMap.min || visualMap.rangeMax < visualMap.max)) + { + var rangeMin = visualMap.rangeMin; + var rangeMax = visualMap.rangeMax; + var diff = (visualMap.max - visualMap.min) / (splitNum - 1); + for (int i = 1; i < splitNum; i++) + { + var splitMin = visualMap.min + (i - 1) * diff; + var splitMax = splitMin + diff; + if (rangeMin > splitMax || rangeMax < splitMin) + { + continue; + } + else if (rangeMin <= splitMin && rangeMax >= splitMax) + { + var splitPos = pos1 + dir * (i - 1 + 0.5f) * splitWid; + var startColor = colors[i - 1].color; + var toColor = visualMap.IsPiecewise() ? startColor : colors[i].color; + UGL.DrawRectangle(vh, splitPos, xRadius, yRadius, startColor, toColor, isVertical); + } + else if (rangeMin > splitMin && rangeMax >= splitMax) + { + var p0 = pos1 + dir * visualMap.runtimeRangeMinHeight; + var splitMaxPos = pos1 + dir * i * splitWid; + var splitPos = p0 + (splitMaxPos - p0) / 2; + var startColor = visualMap.GetColor(visualMap.rangeMin); + var toColor = visualMap.IsPiecewise() ? startColor : colors[i].color; + var yRadius1 = Vector3.Distance(p0, splitMaxPos) / 2; + + if (visualMap.orient == Orient.Vertical) + UGL.DrawRectangle(vh, splitPos, xRadius, yRadius1, startColor, toColor, isVertical); + else + UGL.DrawRectangle(vh, splitPos, yRadius1, yRadius, startColor, toColor, isVertical); + } + else if (rangeMax < splitMax && rangeMin <= splitMin) + { + var p0 = pos1 + dir * visualMap.runtimeRangeMaxHeight; + var splitMinPos = pos1 + dir * (i - 1) * splitWid; + var splitPos = splitMinPos + (p0 - splitMinPos) / 2; + var startColor = colors[i - 1].color; + var toColor = visualMap.IsPiecewise() ? startColor : visualMap.GetColor(visualMap.rangeMax); + var yRadius1 = Vector3.Distance(p0, splitMinPos) / 2; + + if (visualMap.orient == Orient.Vertical) + UGL.DrawRectangle(vh, splitPos, xRadius, yRadius1, startColor, toColor, isVertical); + else + UGL.DrawRectangle(vh, splitPos, yRadius1, yRadius, startColor, toColor, isVertical); + } + else + { + var p0 = pos1 + dir * visualMap.runtimeRangeMinHeight; + var p1 = pos1 + dir * visualMap.runtimeRangeMaxHeight; + var splitPos = (p0 + p1) / 2; + var startColor = visualMap.GetColor(visualMap.rangeMin); + var toColor = visualMap.GetColor(visualMap.rangeMax); + var yRadius1 = Vector3.Distance(p0, p1) / 2; + + if (visualMap.orient == Orient.Vertical) + UGL.DrawRectangle(vh, splitPos, xRadius, yRadius1, startColor, toColor, isVertical); + else + UGL.DrawRectangle(vh, splitPos, yRadius1, yRadius, startColor, toColor, isVertical); + } + } + } + else + { + for (int i = 1; i < splitNum; i++) + { + var splitPos = pos1 + dir * (i - 1 + 0.5f) * splitWid; + var startColor = colors[i - 1].color; + var toColor = visualMap.IsPiecewise() ? startColor : colors[i].color; + UGL.DrawRectangle(vh, splitPos, xRadius, yRadius, startColor, toColor, isVertical); + } + } + + if (visualMap.rangeMin > visualMap.min) + { + var p0 = pos1 + dir * visualMap.runtimeRangeMinHeight; + UGL.DrawRectangle(vh, pos1, p0, visualMap.itemWidth / 2, chart.theme.visualMap.backgroundColor); + } + if (visualMap.rangeMax < visualMap.max) + { + var p1 = pos1 + dir * visualMap.runtimeRangeMaxHeight; + UGL.DrawRectangle(vh, p1, pos2, visualMap.itemWidth / 2, chart.theme.visualMap.backgroundColor); + } + + if (visualMap.hoverLink) + { + if (visualMap.context.pointerIndex >= 0) + { + var p0 = pos1 + dir * visualMap.runtimeRangeMinHeight; + var p1 = pos1 + dir * visualMap.runtimeRangeMaxHeight; + var pointerPos = chart.pointerPos; + + if (visualMap.orient == Orient.Vertical) + { + var p2 = new Vector3(centerPos.x + halfWid, Mathf.Clamp(pointerPos.y + (triangeLen / 2), p0.y, p1.y)); + var p3 = new Vector3(centerPos.x + halfWid, Mathf.Clamp(pointerPos.y - (triangeLen / 2), p0.y, p1.y)); + var p4 = new Vector3(centerPos.x + halfWid + triangeLen / 2, pointerPos.y); + UGL.DrawTriangle(vh, p2, p3, p4, colors[visualMap.context.pointerIndex].color); + } + else + { + var p2 = new Vector3(Mathf.Clamp(pointerPos.x + (triangeLen / 2), p0.x, p1.x), centerPos.y + halfWid); + var p3 = new Vector3(Mathf.Clamp(pointerPos.x - (triangeLen / 2), p0.x, p1.x), centerPos.y + halfWid); + var p4 = new Vector3(pointerPos.x, centerPos.y + halfWid + triangeLen / 2); + UGL.DrawTriangle(vh, p2, p3, p4, colors[visualMap.context.pointerIndex].color); + } + } + } + } + + private void DrawPiecewiseVisualMap(VertexHelper vh, VisualMap visualMap) + { + var centerPos = chart.chartPosition + visualMap.location.GetPosition(chart.chartWidth, chart.chartHeight); + var pos1 = Vector3.zero; + var pos2 = Vector3.zero; + var dir = Vector3.zero; + var halfWid = visualMap.itemWidth / 2; + var halfHig = visualMap.itemHeight / 2; + + switch (visualMap.orient) + { + case Orient.Horizonal: + for (int i = 0; i < visualMap.inRange.Count; i++) + { + var piece = visualMap.inRange[i]; + } + break; + + case Orient.Vertical: + var each = visualMap.itemHeight + visualMap.itemGap; + for (int i = 0; i < visualMap.inRange.Count; i++) + { + var piece = visualMap.inRange[i]; + var pos = new Vector3(centerPos.x, centerPos.y - each * i); + UGL.DrawRectangle(vh, pos, halfWid, halfHig, piece.color); + } + break; + } + } + + private void OnDragVisualMapStart(VisualMap visualMap) + { + if (!visualMap.show || !visualMap.showUI || !visualMap.calculable) + return; + + var inMinRect = visualMap.IsInRangeMinRect(chart.pointerPos, chart.chartRect, chart.theme.visualMap.triangeLen); + var inMaxRect = visualMap.IsInRangeMaxRect(chart.pointerPos, chart.chartRect, chart.theme.visualMap.triangeLen); + + if (inMinRect || inMaxRect) + { + if (inMinRect) + { + visualMap.context.minDrag = true; + } + else + { + visualMap.context.maxDrag = true; + } + } + } + + private void OnDragVisualMap(VisualMap visualMap) + { + if (!visualMap.show || !visualMap.showUI || !visualMap.calculable) + return; + + if (!visualMap.context.minDrag && !visualMap.context.maxDrag) + return; + + var value = visualMap.GetValue(chart.pointerPos, chart.chartRect); + if (visualMap.context.minDrag) + { + visualMap.rangeMin = value; + } + else + { + visualMap.rangeMax = value; + } + chart.RefreshChart(); + } + + private void OnDragVisualMapEnd(VisualMap visualMap) + { + if (!visualMap.show || !visualMap.showUI || !visualMap.calculable) + return; + + if (visualMap.context.minDrag || visualMap.context.maxDrag) + { + chart.RefreshChart(); + visualMap.context.minDrag = false; + visualMap.context.maxDrag = false; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMapHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMapHandler.cs.meta new file mode 100644 index 0000000..022611e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMapHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8db5a57b5961a493db94ac8974238d18 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMapHelper.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMapHelper.cs new file mode 100644 index 0000000..6351dea --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMapHelper.cs @@ -0,0 +1,191 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + public static class VisualMapHelper + { + public static void AutoSetLineMinMax(VisualMap visualMap, Serie serie, bool isY, Axis axis, Axis relativedAxis) + { + if (!IsNeedGradient(visualMap) || !visualMap.autoMinMax) + return; + + double min = 0; + double max = 0; + var xAxis = isY ? relativedAxis : axis; + var yAxis = isY ? axis : relativedAxis; + if (visualMap.dimension == 0) + { + min = xAxis.IsCategory() ? 0 : xAxis.context.minValue; + max = xAxis.IsCategory() ? serie.dataCount - 1 : xAxis.context.maxValue; + SetMinMax(visualMap, min, max); + } + else + { + min = yAxis.IsCategory() ? 0 : yAxis.context.minValue; + max = yAxis.IsCategory() ? serie.dataCount - 1 : yAxis.context.maxValue; + SetMinMax(visualMap, min, max); + } + } + + public static void SetMinMax(VisualMap visualMap, double min, double max) + { + if ((visualMap.min != min || visualMap.max != max)) + { + if (max >= min) + { + visualMap.min = min; + visualMap.max = max; + } + else + { + throw new Exception("SetMinMax:max < min:" + min + "," + max); + } + } + } + + public static void GetLineGradientColor(VisualMap visualMap, float xValue, float yValue, + out Color32 startColor, out Color32 toColor) + { + startColor = ChartConst.clearColor32; + toColor = ChartConst.clearColor32; + if (visualMap.dimension == 0) + { + startColor = visualMap.IsPiecewise() ? visualMap.GetColor(xValue) : visualMap.GetColor(xValue - 1); + toColor = visualMap.IsPiecewise() ? startColor : visualMap.GetColor(xValue); + } + else + { + startColor = visualMap.IsPiecewise() ? visualMap.GetColor(yValue) : visualMap.GetColor(yValue - 1); + toColor = visualMap.IsPiecewise() ? startColor : visualMap.GetColor(yValue); + } + } + + public static Color32 GetLineGradientColor(VisualMap visualMap, Vector3 pos, GridCoord grid, Axis axis, + Axis relativedAxis, Color32 defaultColor) + { + double value = 0; + double min = 0; + double max = 0; + + if (visualMap.dimension == 0) + { + min = axis.context.minValue; + max = axis.context.maxValue; + if (axis.IsCategory() && axis.boundaryGap) + { + float startX = grid.context.x + axis.context.scaleWidth / 2; + value = (min + (pos.x - startX) / (grid.context.width - axis.context.scaleWidth) * (max - min)); + if (visualMap.IsPiecewise()) + value = (int) value; + } + else + { + value = min + (pos.x - grid.context.x) / grid.context.width * (max - min); + } + } + else + { + min = relativedAxis.context.minValue; + max = relativedAxis.context.maxValue; + if (relativedAxis.IsCategory() && relativedAxis.boundaryGap) + { + float startY = grid.context.y + relativedAxis.context.scaleWidth / 2; + value = (min + (pos.y - startY) / (grid.context.height - relativedAxis.context.scaleWidth) * (max - min)); + if (visualMap.IsPiecewise()) + value = (int) value; + } + else + { + value = min + (pos.y - grid.context.y) / grid.context.height * (max - min); + } + } + + var color = visualMap.GetColor(value); + if (ChartHelper.IsClearColor(color)) + { + return defaultColor; + } + else + { + if (color.a != 0) + color.a = defaultColor.a; + + return color; + } + } + + public static Color32 GetItemStyleGradientColor(ItemStyle itemStyle, Vector3 pos, BaseChart chart, + Axis axis, Color32 defaultColor) + { + var min = axis.context.minValue; + var max = axis.context.maxValue; + var grid = chart.GetChartComponent<GridCoord>(axis.gridIndex); + var value = min + (pos.x - grid.context.x) / grid.context.width * (max - min); + var rate = (value - min) / (max - min); + var color = itemStyle.GetGradientColor((float) rate, defaultColor); + + if (ChartHelper.IsClearColor(color)) + return defaultColor; + else + return color; + } + + public static Color32 GetLineStyleGradientColor(LineStyle lineStyle, Vector3 pos, GridCoord grid, + Axis axis, Color32 defaultColor) + { + var min = axis.context.minValue; + var max = axis.context.maxValue; + var value = min + (pos.x - grid.context.x) / grid.context.width * (max - min); + var rate = (value - min) / (max - min); + var color = lineStyle.GetGradientColor((float) rate, defaultColor); + + if (ChartHelper.IsClearColor(color)) + return defaultColor; + else + return color; + } + + public static bool IsNeedGradient(VisualMap visualMap) + { + if (visualMap == null) + return false; + if (!visualMap.show || (!visualMap.workOnLine && !visualMap.workOnArea)) + return false; + if (visualMap.inRange.Count <= 0) + return false; + return true; + } + public static bool IsNeedLineGradient(VisualMap visualMap) + { + if (visualMap == null) + return false; + if (!visualMap.show || !visualMap.workOnLine) + return false; + if (visualMap.inRange.Count <= 0) + return false; + return true; + } + public static bool IsNeedAreaGradient(VisualMap visualMap) + { + if (visualMap == null) + return false; + if (!visualMap.show || !visualMap.workOnArea) + return false; + if (visualMap.inRange.Count <= 0) + return false; + return true; + } + + public static int GetDimension(VisualMap visualMap, int serieDataCount) + { + var dimension = visualMap != null && visualMap.dimension >= 0 ? + visualMap.dimension : serieDataCount - 1; + + if (dimension > serieDataCount - 1) + dimension = serieDataCount - 1; + + return dimension; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMapHelper.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMapHelper.cs.meta new file mode 100644 index 0000000..7b98866 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Component/VisualMap/VisualMapHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eddf18450477b4502804d13fa724e45d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord.meta new file mode 100644 index 0000000..fe2fbe1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 19968e8512641421f82ca8213ca6a907 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Calendar.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Calendar.meta new file mode 100644 index 0000000..e62b633 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Calendar.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: da5534d24de514e54911c0efb7b7b2ba +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Calendar/CalendarCoord.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Calendar/CalendarCoord.cs new file mode 100644 index 0000000..8d16210 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Calendar/CalendarCoord.cs @@ -0,0 +1,18 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + [Serializable] + [ComponentHandler(typeof(CalendarCoordHandler), true)] + public class CalendarCoord : CoordSystem, IUpdateRuntimeData, ISerieContainer + { + public bool IsPointerEnter() + { + return false; + } + + public void UpdateRuntimeData(float chartX, float chartY, float chartWidth, float chartHeight) + { } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Calendar/CalendarCoord.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Calendar/CalendarCoord.cs.meta new file mode 100644 index 0000000..457c73a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Calendar/CalendarCoord.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eccc042d880064df8a2a99be68969918 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Calendar/CalendarCoordHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Calendar/CalendarCoordHandler.cs new file mode 100644 index 0000000..69eb333 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Calendar/CalendarCoordHandler.cs @@ -0,0 +1,9 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class CalendarCoordHandler : MainComponentHandler<CalendarCoord> + { } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Calendar/CalendarCoordHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Calendar/CalendarCoordHandler.cs.meta new file mode 100644 index 0000000..6825dad --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Calendar/CalendarCoordHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 57a6c8647580846888712d387da72d1a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid.meta new file mode 100644 index 0000000..a6c4710 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7d09a247055fa44dcab4eb4c61401a9b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid/GridCoord.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid/GridCoord.cs new file mode 100644 index 0000000..f279faa --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid/GridCoord.cs @@ -0,0 +1,173 @@ +using System; +using UnityEngine; +using XUGL; + +namespace XCharts.Runtime +{ + /// <summary> + /// Grid component. + /// |Drawing grid in rectangular coordinate. Line chart, bar chart, and scatter chart can be drawn in grid. + /// |网格组件。 + /// 直角坐标系内绘图网格。可以在网格上绘制折线图,柱状图,散点图。 + /// </summary> + [Serializable] + [ComponentHandler(typeof(GridCoordHandler), true)] + public class GridCoord : CoordSystem, IUpdateRuntimeData, ISerieContainer + { + [SerializeField] private bool m_Show = true; + [SerializeField] private float m_Left = 0.1f; + [SerializeField] private float m_Right = 0.08f; + [SerializeField] private float m_Top = 0.22f; + [SerializeField] private float m_Bottom = 0.12f; + [SerializeField] private Color32 m_BackgroundColor; + [SerializeField] private bool m_ShowBorder = false; + [SerializeField] private float m_BorderWidth = 0f; + [SerializeField] private Color32 m_BorderColor; + + public GridCoordContext context = new GridCoordContext(); + + /// <summary> + /// Whether to show the grid in rectangular coordinate. + /// |是否显示直角坐标系网格。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetVerticesDirty(); } + } + /// <summary> + /// Distance between grid component and the left side of the container. + /// |grid 组件离容器左侧的距离。 + /// </summary> + public float left + { + get { return m_Left; } + set { if (PropertyUtil.SetStruct(ref m_Left, value)) SetAllDirty(); } + } + /// <summary> + /// Distance between grid component and the right side of the container. + /// |grid 组件离容器右侧的距离。 + /// </summary> + public float right + { + get { return m_Right; } + set { if (PropertyUtil.SetStruct(ref m_Right, value)) SetAllDirty(); } + } + /// <summary> + /// Distance between grid component and the top side of the container. + /// |grid 组件离容器上侧的距离。 + /// </summary> + public float top + { + get { return m_Top; } + set { if (PropertyUtil.SetStruct(ref m_Top, value)) SetAllDirty(); } + } + /// <summary> + /// Distance between grid component and the bottom side of the container. + /// |grid 组件离容器下侧的距离。 + /// </summary> + public float bottom + { + get { return m_Bottom; } + set { if (PropertyUtil.SetStruct(ref m_Bottom, value)) SetAllDirty(); } + } + /// <summary> + /// Background color of grid, which is transparent by default. + /// |网格背景色,默认透明。 + /// </summary> + public Color32 backgroundColor + { + get { return m_BackgroundColor; } + set { if (PropertyUtil.SetColor(ref m_BackgroundColor, value)) SetVerticesDirty(); } + } + /// <summary> + /// Whether to show the grid border. + /// |是否显示网格边框。 + /// </summary> + public bool showBorder + { + get { return m_ShowBorder; } + set { if (PropertyUtil.SetStruct(ref m_ShowBorder, value)) SetVerticesDirty(); } + } + /// <summary> + /// Border width of grid. + /// |网格边框宽。 + /// </summary> + public float borderWidth + { + get { return m_BorderWidth; } + set { if (PropertyUtil.SetStruct(ref m_BorderWidth, value)) SetVerticesDirty(); } + } + /// <summary> + /// The color of grid border. + /// |网格边框颜色。 + /// </summary> + public Color32 borderColor + { + get { return m_BorderColor; } + set { if (PropertyUtil.SetColor(ref m_BorderColor, value)) SetVerticesDirty(); } + } + + public bool IsPointerEnter() + { + return context.isPointerEnter; + } + + public void UpdateRuntimeData(float chartX, float chartY, float chartWidth, float chartHeight) + { + context.left = left <= 1 ? left * chartWidth : left; + context.bottom = bottom <= 1 ? bottom * chartHeight : bottom; + context.top = top <= 1 ? top * chartHeight : top; + context.right = right <= 1 ? right * chartWidth : right; + context.x = chartX + context.left; + context.y = chartY + context.bottom; + context.width = chartWidth - context.left - context.right; + context.height = chartHeight - context.top - context.bottom; + context.position = new Vector3(context.x, context.y); + context.center = new Vector3(context.x + context.width / 2, context.y + context.height / 2); + } + + public bool Contains(Vector3 pos) + { + return Contains(pos.x, pos.y); + } + + public bool Contains(float x, float y) + { + if (x < context.x - 1 || x > context.x + context.width + 1 || + y < context.y - 1 || y > context.y + context.height + 1) + { + return false; + } + return true; + } + + /// <summary> + /// 给定的线段和Grid边界的交点 + /// </summary> + /// <param name="sp"></param> + /// <param name="ep"></param> + /// <returns></returns> + public bool BoundaryPoint(Vector3 sp, Vector3 ep, ref Vector3 point) + { + if (Contains(sp) && Contains(ep)) + { + point = ep; + return false; + } + var lb = new Vector3(context.x, context.y); + var lt = new Vector3(context.x, context.y + context.height); + var rt = new Vector3(context.x + context.width, context.y + context.height); + var rb = new Vector3(context.x + context.width, context.y); + if (UGLHelper.GetIntersection(sp, ep, rb, rt, ref point)) + return true; + if (UGLHelper.GetIntersection(sp, ep, lt, rt, ref point)) + return true; + if (UGLHelper.GetIntersection(sp, ep, lb, rb, ref point)) + return true; + if (UGLHelper.GetIntersection(sp, ep, lb, lt, ref point)) + return true; + return false; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid/GridCoord.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid/GridCoord.cs.meta new file mode 100644 index 0000000..9c3e968 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid/GridCoord.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f99c74cc7f2c44bfcae9f5c40e6b7c46 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid/GridCoordContext.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid/GridCoordContext.cs new file mode 100644 index 0000000..be4ac7a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid/GridCoordContext.cs @@ -0,0 +1,21 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + public class GridCoordContext : MainComponentContext + { + public float x; + public float y; + public float width; + public float height; + public Vector3 position; + public Vector3 center; + public float left; + public float right; + public float bottom; + public float top; + public bool isPointerEnter; + public List<ChartLabel> endLabelList = new List<ChartLabel>(); + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid/GridCoordContext.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid/GridCoordContext.cs.meta new file mode 100644 index 0000000..13f0b39 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid/GridCoordContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6a7c139761fe64d93be4c65619a0fd38 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid/GridCoordHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid/GridCoordHandler.cs new file mode 100644 index 0000000..03dec59 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid/GridCoordHandler.cs @@ -0,0 +1,90 @@ +using System; +using System.Text; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class GridCoordHandler : MainComponentHandler<GridCoord> + { + public override void InitComponent() + { + var grid = component; + grid.painter = chart.painter; + grid.refreshComponent = delegate() + { + grid.UpdateRuntimeData(chart.chartX, chart.chartY, chart.chartWidth, chart.chartHeight); + chart.OnCoordinateChanged(); + }; + grid.refreshComponent(); + } + + public override void CheckComponent(StringBuilder sb) + { + var grid = component; + if (grid.left >= chart.chartWidth) + sb.Append("warning:grid->left > chartWidth\n"); + if (grid.right >= chart.chartWidth) + sb.Append("warning:grid->right > chartWidth\n"); + if (grid.top >= chart.chartHeight) + sb.Append("warning:grid->top > chartHeight\n"); + if (grid.bottom >= chart.chartHeight) + sb.Append("warning:grid->bottom > chartHeight\n"); + if (grid.left + grid.right >= chart.chartWidth) + sb.Append("warning:grid.left + grid.right > chartWidth\n"); + if (grid.top + grid.bottom >= chart.chartHeight) + sb.Append("warning:grid.top + grid.bottom > chartHeight\n"); + } + + public override void Update() + { + if (chart.isPointerInChart) + { + component.context.isPointerEnter = component.Contains(chart.pointerPos); + } + else + { + component.context.isPointerEnter = false; + } + } + + public override void DrawBase(VertexHelper vh) + { + if (!SeriesHelper.IsAnyClipSerie(chart.series)) + { + DrawCoord(vh, component); + } + } + public override void DrawTop(VertexHelper vh) + { + if (SeriesHelper.IsAnyClipSerie(chart.series)) + { + DrawCoord(vh, component); + } + } + + private void DrawCoord(VertexHelper vh, GridCoord grid) + { + if (!grid.show) return; + if (!ChartHelper.IsClearColor(grid.backgroundColor)) + { + var p1 = new Vector2(grid.context.x, grid.context.y); + var p2 = new Vector2(grid.context.x, grid.context.y + grid.context.height); + var p3 = new Vector2(grid.context.x + grid.context.width, grid.context.y + grid.context.height); + var p4 = new Vector2(grid.context.x + grid.context.width, grid.context.y); + UGL.DrawQuadrilateral(vh, p1, p2, p3, p4, grid.backgroundColor); + } + if (grid.showBorder) + { + var borderWidth = grid.borderWidth == 0 ? chart.theme.axis.lineWidth * 2 : grid.borderWidth; + var borderColor = ChartHelper.IsClearColor(grid.borderColor) ? + chart.theme.axis.lineColor : + grid.borderColor; + UGL.DrawBorder(vh, grid.context.center, grid.context.width - borderWidth, + grid.context.height - borderWidth, borderWidth, borderColor); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid/GridCoordHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid/GridCoordHandler.cs.meta new file mode 100644 index 0000000..ed91ce7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Grid/GridCoordHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7e22a9b603e57459f97040b285f3936a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel.meta new file mode 100644 index 0000000..081c678 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 30b1519a34fcc4ca3a56834527584719 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel/ParallelCoord.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel/ParallelCoord.cs new file mode 100644 index 0000000..73147bc --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel/ParallelCoord.cs @@ -0,0 +1,123 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// Grid component. + /// |Drawing grid in rectangular coordinate. Line chart, bar chart, and scatter chart can be drawn in grid. + /// |网格组件。 + /// 直角坐标系内绘图网格。可以在网格上绘制折线图,柱状图,散点图。 + /// </summary> + [Serializable] + [ComponentHandler(typeof(ParallelCoordHandler), true)] + public class ParallelCoord : CoordSystem, IUpdateRuntimeData, ISerieContainer + { + [SerializeField] private bool m_Show = true; + [SerializeField] protected Orient m_Orient = Orient.Vertical; + [SerializeField] private float m_Left = 0.1f; + [SerializeField] private float m_Right = 0.08f; + [SerializeField] private float m_Top = 0.22f; + [SerializeField] private float m_Bottom = 0.12f; + [SerializeField] private Color m_BackgroundColor; + + public ParallelCoordContext context = new ParallelCoordContext(); + + /// <summary> + /// Whether to show the grid in rectangular coordinate. + /// |是否显示直角坐标系网格。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetVerticesDirty(); } + } + /// <summary> + /// Orientation of the axis. By default, it's 'Vertical'. You can set it to be 'Horizonal' to make a vertical axis. + /// |坐标轴朝向。默认为垂直朝向。 + /// </summary> + public Orient orient + { + get { return m_Orient; } + set { if (PropertyUtil.SetStruct(ref m_Orient, value)) SetAllDirty(); } + } + /// <summary> + /// Distance between grid component and the left side of the container. + /// |grid 组件离容器左侧的距离。 + /// </summary> + public float left + { + get { return m_Left; } + set { if (PropertyUtil.SetStruct(ref m_Left, value)) SetAllDirty(); } + } + /// <summary> + /// Distance between grid component and the right side of the container. + /// |grid 组件离容器右侧的距离。 + /// </summary> + public float right + { + get { return m_Right; } + set { if (PropertyUtil.SetStruct(ref m_Right, value)) SetAllDirty(); } + } + /// <summary> + /// Distance between grid component and the top side of the container. + /// |grid 组件离容器上侧的距离。 + /// </summary> + public float top + { + get { return m_Top; } + set { if (PropertyUtil.SetStruct(ref m_Top, value)) SetAllDirty(); } + } + /// <summary> + /// Distance between grid component and the bottom side of the container. + /// |grid 组件离容器下侧的距离。 + /// </summary> + public float bottom + { + get { return m_Bottom; } + set { if (PropertyUtil.SetStruct(ref m_Bottom, value)) SetAllDirty(); } + } + /// <summary> + /// Background color of grid, which is transparent by default. + /// |网格背景色,默认透明。 + /// </summary> + public Color backgroundColor + { + get { return m_BackgroundColor; } + set { if (PropertyUtil.SetColor(ref m_BackgroundColor, value)) SetVerticesDirty(); } + } + + public bool IsPointerEnter() + { + return context.runtimeIsPointerEnter; + } + + public void UpdateRuntimeData(float chartX, float chartY, float chartWidth, float chartHeight) + { + context.left = left <= 1 ? left * chartWidth : left; + context.bottom = bottom <= 1 ? bottom * chartHeight : bottom; + context.top = top <= 1 ? top * chartHeight : top; + context.right = right <= 1 ? right * chartWidth : right; + context.x = chartX + context.left; + context.y = chartY + context.bottom; + context.width = chartWidth - context.left - context.right; + context.height = chartHeight - context.top - context.bottom; + context.position = new Vector3(context.x, context.y); + } + + public bool Contains(Vector3 pos) + { + return Contains(pos.x, pos.y); + } + + public bool Contains(float x, float y) + { + if (x < context.x - 1 || x > context.x + context.width + 1 || + y < context.y - 1 || y > context.y + context.height + 1) + { + return false; + } + return true; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel/ParallelCoord.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel/ParallelCoord.cs.meta new file mode 100644 index 0000000..273d285 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel/ParallelCoord.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a7be31c76736845a9b2c92a7b8051290 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel/ParallelCoordContext.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel/ParallelCoordContext.cs new file mode 100644 index 0000000..1d545f9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel/ParallelCoordContext.cs @@ -0,0 +1,20 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + public class ParallelCoordContext : MainComponentContext + { + public float x; + public float y; + public float width; + public float height; + public Vector3 position; + public float left; + public float right; + public float bottom; + public float top; + public bool runtimeIsPointerEnter; + internal List<ParallelAxis> parallelAxes = new List<ParallelAxis>(); + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel/ParallelCoordContext.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel/ParallelCoordContext.cs.meta new file mode 100644 index 0000000..ac0ce5f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel/ParallelCoordContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 14f338556609b48568d2504a1b153be7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel/ParallelCoordHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel/ParallelCoordHandler.cs new file mode 100644 index 0000000..315e477 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel/ParallelCoordHandler.cs @@ -0,0 +1,176 @@ +using System.Collections.Generic; +using System.Text; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class ParallelCoordHandler : MainComponentHandler<ParallelCoord> + { + private Dictionary<int, double> m_SerieDimMin = new Dictionary<int, double>(); + private Dictionary<int, double> m_SerieDimMax = new Dictionary<int, double>(); + private double m_LastInterval; + private int m_LastSplitNumber; + + public override void InitComponent() + { + var grid = component; + grid.painter = chart.painter; + grid.refreshComponent = delegate() + { + grid.UpdateRuntimeData(chart.chartX, chart.chartY, chart.chartWidth, chart.chartHeight); + chart.OnCoordinateChanged(); + }; + grid.refreshComponent(); + } + + public override void CheckComponent(StringBuilder sb) + { + var grid = component; + if (grid.left >= chart.chartWidth) + sb.Append("warning:grid->left > chartWidth\n"); + if (grid.right >= chart.chartWidth) + sb.Append("warning:grid->right > chartWidth\n"); + if (grid.top >= chart.chartHeight) + sb.Append("warning:grid->top > chartHeight\n"); + if (grid.bottom >= chart.chartHeight) + sb.Append("warning:grid->bottom > chartHeight\n"); + if (grid.left + grid.right >= chart.chartWidth) + sb.Append("warning:grid.left + grid.right > chartWidth\n"); + if (grid.top + grid.bottom >= chart.chartHeight) + sb.Append("warning:grid.top + grid.bottom > chartHeight\n"); + } + + public override void Update() + { + UpdatePointerEnter(); + UpdateParallelAxisMinMaxValue(); + } + + public override void DrawBase(VertexHelper vh) + { + if (!SeriesHelper.IsAnyClipSerie(chart.series)) + { + DrawCoord(vh); + } + } + public override void DrawTop(VertexHelper vh) + { + if (SeriesHelper.IsAnyClipSerie(chart.series)) + { + DrawCoord(vh); + } + } + + private void DrawCoord(VertexHelper vh) + { + var grid = component; + if (grid.show && !ChartHelper.IsClearColor(grid.backgroundColor)) + { + var p1 = new Vector2(grid.context.x, grid.context.y); + var p2 = new Vector2(grid.context.x, grid.context.y + grid.context.height); + var p3 = new Vector2(grid.context.x + grid.context.width, grid.context.y + grid.context.height); + var p4 = new Vector2(grid.context.x + grid.context.width, grid.context.y); + UGL.DrawQuadrilateral(vh, p1, p2, p3, p4, grid.backgroundColor); + } + } + + private void UpdatePointerEnter() + { + if (chart.isPointerInChart) + component.context.runtimeIsPointerEnter = component.Contains(chart.pointerPos); + else + component.context.runtimeIsPointerEnter = false; + } + + private void UpdateParallelAxisMinMaxValue() + { + var list = chart.GetChartComponents<ParallelAxis>(); + if (list.Count != component.context.parallelAxes.Count) + { + component.context.parallelAxes.Clear(); + foreach (var com in chart.GetChartComponents<ParallelAxis>()) + { + var axis = com as ParallelAxis; + if (axis.parallelIndex == component.index) + component.context.parallelAxes.Add(axis); + } + } + m_SerieDimMin.Clear(); + m_SerieDimMax.Clear(); + foreach (var serie in chart.series) + { + if ((serie is Parallel) && serie.parallelIndex == component.index) + { + foreach (var serieData in serie.data) + { + for (int i = 0; i < serieData.data.Count; i++) + { + var value = serieData.data[i]; + if (!m_SerieDimMin.ContainsKey(i)) + m_SerieDimMin[i] = value; + else if (m_SerieDimMin[i] > value) + m_SerieDimMin[i] = value; + + if (!m_SerieDimMax.ContainsKey(i)) + m_SerieDimMax[i] = value; + else if (m_SerieDimMax[i] < value) + m_SerieDimMax[i] = value; + } + } + } + } + for (int i = 0; i < component.context.parallelAxes.Count; i++) + { + var axis = component.context.parallelAxes[i]; + if (axis.IsCategory()) + { + m_SerieDimMax[i] = axis.data.Count > 0 ? axis.data.Count - 1 : 0; + m_SerieDimMin[i] = 0; + } + else if (axis.minMaxType == Axis.AxisMinMaxType.Custom) + { + m_SerieDimMin[i] = axis.min; + m_SerieDimMax[i] = axis.max; + } + else if (m_SerieDimMax.ContainsKey(i)) + { + + var tempMinValue = m_SerieDimMin[i]; + var tempMaxValue = m_SerieDimMax[i]; + AxisHelper.AdjustMinMaxValue(axis, ref tempMinValue, ref tempMaxValue, true); + m_SerieDimMin[i] = tempMinValue; + m_SerieDimMax[i] = tempMaxValue; + } + } + for (int i = 0; i < component.context.parallelAxes.Count; i++) + { + if (m_SerieDimMax.ContainsKey(i)) + { + var axis = component.context.parallelAxes[i]; + var tempMinValue = m_SerieDimMin[i]; + var tempMaxValue = m_SerieDimMax[i]; + + if (tempMinValue != axis.context.minValue || + tempMaxValue != axis.context.maxValue || + m_LastInterval != axis.interval || + m_LastSplitNumber != axis.splitNumber) + { + m_LastSplitNumber = axis.splitNumber; + m_LastInterval = axis.interval; + + axis.UpdateMinMaxValue(tempMinValue, tempMaxValue); + axis.context.offset = 0; + axis.context.lastCheckInverse = axis.inverse; + + AxisHandler<ParallelAxis>.UpdateAxisTickValueList(axis); + (axis.handler as ParallelAxisHander).UpdateAxisLabelText(axis); + chart.RefreshChart(); + } + } + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel/ParallelCoordHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel/ParallelCoordHandler.cs.meta new file mode 100644 index 0000000..e7ee712 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Parallel/ParallelCoordHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eb7323519e00e4916a9c42c5faa36a38 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar.meta new file mode 100644 index 0000000..d1b31bf --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 43b3734481ac34ff89708f2edfa473ca +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarCoord.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarCoord.cs new file mode 100644 index 0000000..b251c93 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarCoord.cs @@ -0,0 +1,71 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// Polar coordinate can be used in scatter and line chart. Every polar coordinate has an angleAxis and a radiusAxis. + /// |极坐标系组件。 + /// 极坐标系,可以用于散点图和折线图。每个极坐标系拥有一个角度轴和一个半径轴。 + /// </summary> + [Serializable] + [ComponentHandler(typeof(PolarCoordHandler), true)] + public class PolarCoord : CoordSystem, ISerieContainer + { + [SerializeField] private bool m_Show = true; + [SerializeField] private float[] m_Center = new float[2] { 0.5f, 0.45f }; + [SerializeField] private float m_Radius = 0.35f; + [SerializeField] private Color m_BackgroundColor; + + public PolarCoordContext context = new PolarCoordContext(); + + /// <summary> + /// Whether to show the polor component. + /// |是否显示极坐标。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetVerticesDirty(); } + } + /// <summary> + /// The center of ploar. The center[0] is the x-coordinate, and the center[1] is the y-coordinate. + /// When value between 0 and 1 represents a percentage relative to the chart. + /// |极坐标的中心点。数组的第一项是横坐标,第二项是纵坐标。 + /// 当值为0-1之间时表示百分比,设置成百分比时第一项是相对于容器宽度,第二项是相对于容器高度。 + /// </summary> + public float[] center + { + get { return m_Center; } + set { if (value != null) { m_Center = value; SetAllDirty(); } } + } + /// <summary> + /// the radius of polar. + /// |极坐标的半径。 + /// </summary> + public float radius + { + get { return m_Radius; } + set { if (PropertyUtil.SetStruct(ref m_Radius, value)) SetAllDirty(); } + } + /// <summary> + /// Background color of polar, which is transparent by default. + /// |极坐标的背景色,默认透明。 + /// </summary> + public Color backgroundColor + { + get { return m_BackgroundColor; } + set { if (PropertyUtil.SetColor(ref m_BackgroundColor, value)) SetVerticesDirty(); } + } + + public bool IsPointerEnter() + { + return context.isPointerEnter; + } + + public bool Contains(Vector3 pos) + { + return Vector3.Distance(pos, context.center) < context.radius; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarCoord.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarCoord.cs.meta new file mode 100644 index 0000000..03d8791 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarCoord.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ec567fac460994411a8aadcb5e0f9b68 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarCoordContext.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarCoordContext.cs new file mode 100644 index 0000000..035c2ca --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarCoordContext.cs @@ -0,0 +1,20 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + public class PolarCoordContext : MainComponentContext + { + /// <summary> + /// the center position of polar in container. + /// |极坐标在容器中的具体中心点。 + /// </summary> + public Vector3 center; + /// <summary> + /// the true radius of polar. + /// |极坐标的运行时实际半径。 + /// </summary> + public float radius; + public bool isPointerEnter; + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarCoordContext.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarCoordContext.cs.meta new file mode 100644 index 0000000..e448702 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarCoordContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2eaaaa315fbae4fc3a9976f51a1396b3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarCoordHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarCoordHandler.cs new file mode 100644 index 0000000..7c176a8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarCoordHandler.cs @@ -0,0 +1,35 @@ +using System; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class PolarCoordHandler : MainComponentHandler<PolarCoord> + { + public override void Update() + { + PolarHelper.UpdatePolarCenter(component, chart.chartPosition, chart.chartWidth, chart.chartHeight); + + if (chart.isPointerInChart) + component.context.isPointerEnter = component.Contains(chart.pointerPos); + else + component.context.isPointerEnter = false; + } + + public override void DrawBase(VertexHelper vh) + { + DrawPolar(vh, component); + } + + private void DrawPolar(VertexHelper vh, PolarCoord polar) + { + PolarHelper.UpdatePolarCenter(polar, chart.chartPosition, chart.chartWidth, chart.chartHeight); + if (!ChartHelper.IsClearColor(polar.backgroundColor)) + { + UGL.DrawCricle(vh, polar.context.center, polar.context.radius, polar.backgroundColor); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarCoordHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarCoordHandler.cs.meta new file mode 100644 index 0000000..d3e4351 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarCoordHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: af4b941946def4928b416260dec7ac9b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarHelper.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarHelper.cs new file mode 100644 index 0000000..fa51a52 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarHelper.cs @@ -0,0 +1,27 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + internal static class PolarHelper + { + public static void UpdatePolarCenter(PolarCoord polar, Vector3 chartPosition, float chartWidth, float chartHeight) + { + if (polar.center.Length < 2) return; + var centerX = polar.center[0] <= 1 ? chartWidth * polar.center[0] : polar.center[0]; + var centerY = polar.center[1] <= 1 ? chartHeight * polar.center[1] : polar.center[1]; + polar.context.center = chartPosition + new Vector3(centerX, centerY); + if (polar.radius <= 0) + { + polar.context.radius = 0; + } + else if (polar.radius <= 1) + { + polar.context.radius = Mathf.Min(chartWidth, chartHeight) * polar.radius; + } + else + { + polar.context.radius = polar.radius; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarHelper.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarHelper.cs.meta new file mode 100644 index 0000000..8ec1778 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/Polar/PolarHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: feb363cc2ae0846b89612143ce4535ae +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/SingleAxis.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/SingleAxis.meta new file mode 100644 index 0000000..a460d59 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/SingleAxis.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 102d61482a6f946cc82f228c88369dfd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/SingleAxis/SingleAxisCoord.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/SingleAxis/SingleAxisCoord.cs new file mode 100644 index 0000000..990ebe3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/SingleAxis/SingleAxisCoord.cs @@ -0,0 +1,9 @@ +using System; + +namespace XCharts.Runtime +{ + [Serializable] + [ComponentHandler(null)] + public class SingleAxisCoord : CoordSystem + { } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/SingleAxis/SingleAxisCoord.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/SingleAxis/SingleAxisCoord.cs.meta new file mode 100644 index 0000000..84b8cde --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Coord/SingleAxis/SingleAxisCoord.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e3e972d6eb5bc45e1ba7b2c5740474fb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper.meta new file mode 100644 index 0000000..f8b14dc --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 58d150a402b5e4bfcbec6a28cba7ed44 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/CheckHelper.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/CheckHelper.cs new file mode 100644 index 0000000..8ccd886 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/CheckHelper.cs @@ -0,0 +1,138 @@ +using System.Text; +using UnityEngine; + +namespace XCharts.Runtime +{ + public static class CheckHelper + { + private static bool IsColorAlphaZero(Color color) + { + return !ChartHelper.IsClearColor(color) && color.a == 0; + } + + public static string CheckChart(BaseGraph chart) + { + if (chart is BaseChart) return CheckChart((BaseChart) chart); + else return string.Empty; + } + + public static string CheckChart(BaseChart chart) + { + var sb = ChartHelper.sb; + sb.Length = 0; + CheckName(chart, sb); + CheckSize(chart, sb); + CheckTheme(chart, sb); + CheckTitle(chart, sb); + CheckLegend(chart, sb); + CheckGrid(chart, sb); + CheckSerie(chart, sb); + return sb.ToString(); + } + + private static void CheckName(BaseChart chart, StringBuilder sb) + { + if (string.IsNullOrEmpty(chart.chartName)) return; + var list = XChartsMgr.GetCharts(chart.chartName); + if (list.Count > 1) + { + sb.AppendFormat("warning:chart name is repeated: {0}\n", chart.chartName); + } + } + + private static void CheckSize(BaseChart chart, StringBuilder sb) + { + if (chart.chartWidth == 0 || chart.chartHeight == 0) + { + sb.Append("warning:chart width or height is 0\n"); + } + } + + private static void CheckTheme(BaseChart chart, StringBuilder sb) + { + var theme = chart.theme; + theme.CheckWarning(sb); + } + + private static void CheckTitle(BaseChart chart, StringBuilder sb) + { + // foreach (var title in chart.titles) + // { + // if (!title.show) return; + // if (string.IsNullOrEmpty(title.text)) sb.AppendFormat("warning:title{0}->text is null\n", title.index); + // if (IsColorAlphaZero(title.textStyle.color)) + // sb.AppendFormat("warning:title{0}->textStyle->color alpha is 0\n", title.index); + // if (IsColorAlphaZero(title.subTextStyle.color)) + // sb.AppendFormat("warning:title{0}->subTextStyle->color alpha is 0\n", title.index); + // } + } + + private static void CheckLegend(BaseChart chart, StringBuilder sb) + { } + + private static void CheckGrid(BaseChart chart, StringBuilder sb) + { } + + private static void CheckSerie(BaseChart chart, StringBuilder sb) + { + var allDataIsEmpty = true; + var allDataIsZero = true; + var allSerieIsHide = true; + foreach (var serie in chart.series) + { + if (serie.show) allSerieIsHide = false; + if (serie.dataCount > 0) + { + allDataIsEmpty = false; + for (int i = 0; i < serie.dataCount; i++) + { + var serieData = serie.GetSerieData(i); + for (int j = 1; j < serieData.data.Count; j++) + { + if (serieData.GetData(j) != 0) + { + allDataIsZero = false; + break; + } + } + } + var dataCount = serie.GetSerieData(0).data.Count; + if (serie.showDataDimension > 1 && serie.showDataDimension != dataCount) + { + sb.AppendFormat("warning:serie {0} serieData.data.count[{1}] not match showDataDimension[{2}]\n", serie.index, dataCount, serie.showDataDimension); + } + } + else + { + sb.AppendFormat("warning:serie {0} no data\n", serie.index); + } + if (IsColorAlphaZero(serie.itemStyle.color)) + sb.AppendFormat("warning:serie {0} itemStyle->color alpha is 0\n", serie.index); + if (serie.itemStyle.opacity == 0) + sb.AppendFormat("warning:serie {0} itemStyle->opacity is 0\n", serie.index); + if (serie.itemStyle.borderWidth != 0 && IsColorAlphaZero(serie.itemStyle.borderColor)) + sb.AppendFormat("warning:serie {0} itemStyle->borderColor alpha is 0\n", serie.index); + if (serie is Line) + { + if (serie.lineStyle.opacity == 0) + sb.AppendFormat("warning:serie {0} lineStyle->opacity is 0\n", serie.index); + if (IsColorAlphaZero(serie.lineStyle.color)) + sb.AppendFormat("warning:serie {0} lineStyle->color alpha is 0\n", serie.index); + } + else if (serie is Pie) + { + if (serie.radius.Length >= 2 && serie.radius[1] == 0) + sb.AppendFormat("warning:serie {0} radius[1] is 0\n", serie.index); + } + else if (serie is Scatter || serie is EffectScatter) + { + if (!serie.symbol.show) + sb.AppendFormat("warning:serie {0} symbol type is None\n", serie.index); + } + } + if (allDataIsEmpty) sb.Append("warning:all serie data is empty\n"); + if (!allDataIsEmpty && allDataIsZero) sb.Append("warning:all serie data is 0\n"); + if (allSerieIsHide) sb.Append("warning:all serie is hide\n"); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/CheckHelper.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/CheckHelper.cs.meta new file mode 100644 index 0000000..56e1a2f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/CheckHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 09a50ff0a7fdb4174b4dc2d28fc08b6a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/FormatterHelper.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/FormatterHelper.cs new file mode 100644 index 0000000..06490eb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/FormatterHelper.cs @@ -0,0 +1,277 @@ +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using UnityEngine; + +namespace XCharts.Runtime +{ + public static class FormatterHelper + { + public const string PH_NN = "\n"; + private static Regex s_Regex = new Regex(@"{([a-g|.]\d*)(:\d+(-\d+)?)?(:[c-g|x|p|r]\d*|:0\.#*)?}", RegexOptions.IgnoreCase); + private static Regex s_RegexSub = new Regex(@"(0\.#*)|(\d+-\d+)|(\w+)|(\.)", RegexOptions.IgnoreCase); + private static Regex s_RegexN = new Regex(@"^\d+", RegexOptions.IgnoreCase); + private static Regex s_RegexN_N = new Regex(@"\d+-\d+", RegexOptions.IgnoreCase); + private static Regex s_RegexFn = new Regex(@"[c-g|x|p|r]\d*|0\.#*", RegexOptions.IgnoreCase); + private static Regex s_RegexNewLine = new Regex(@"[\\|/]+n|</br>|<br>|<br/>", RegexOptions.IgnoreCase); + private static Regex s_RegexForAxisLabel = new Regex(@"{value(:[c-g|x|p|r]\d*)?}", RegexOptions.IgnoreCase); + private static Regex s_RegexSubForAxisLabel = new Regex(@"(value)|([c-g|x|p|r]\d*)", RegexOptions.IgnoreCase); + private static Regex s_RegexForSerieLabel = new Regex(@"{[a-g|\.](:[c-g|x|p|r]\d*)?}", RegexOptions.IgnoreCase); + private static Regex s_RegexSubForSerieLabel = new Regex(@"(\.)|([a-g])|([c-g|x|p|r]\d*)", RegexOptions.IgnoreCase); + + public static bool NeedFormat(string content) + { + return content.IndexOf('{') >= 0; + } + + /// <summary> + /// 替换字符串中的通配符,支持的通配符有{.}、{a}、{b}、{c}、{d}、{e}、{f}、{g}。 + /// </summary> + /// <param name="content">要替换的字符串</param> + /// <param name="dataIndex">选中的数据项serieData索引</param> + /// <param name="numericFormatter">默认的数字格式化</param> + /// <param name="serie">选中的serie</param> + /// <param name="series">所有serie</param> + /// <param name="theme">用来获取指定index的颜色</param> + /// <param name="category">选中的类目,一般用在折线图和柱状图</param> + /// <param name="dataZoom">dataZoom</param> + /// <returns></returns> + public static bool ReplaceContent(ref string content, int dataIndex, string numericFormatter, Serie serie, + BaseChart chart, DataZoom dataZoom = null) + { + var foundDot = false; + var mc = s_Regex.Matches(content); + foreach (var m in mc) + { + var old = m.ToString(); + var args = s_RegexSub.Matches(m.ToString()); + var argsCount = args.Count; + if (argsCount <= 0) continue; + int targetIndex = 0; + char p = GetSerieIndex(args[0].ToString(), ref targetIndex); + if (targetIndex >= 0) + { + serie = chart.GetSerie(targetIndex); + if (serie == null) continue; + } + else if (serie != null) + { + targetIndex = serie.index; + } + else + { + serie = chart.GetSerie(0); + targetIndex = 0; + } + if (serie == null) continue; + if (p == '.') + { + var bIndex = targetIndex; + if (argsCount >= 2) + { + var args1Str = args[1].ToString(); + if (s_RegexN.IsMatch(args1Str)) bIndex = int.Parse(args1Str); + } + content = content.Replace(old, ChartCached.ColorToDotStr(chart.theme.GetColor(bIndex))); + foundDot = true; + } + else if (p == 'a' || p == 'A') + { + if (argsCount == 1) + { + content = content.Replace(old, serie.serieName); + } + } + else if (p == 'b' || p == 'B' || p == 'e' || p == 'E') + { + var bIndex = dataIndex; + if (argsCount >= 2) + { + var args1Str = args[1].ToString(); + if (s_RegexN.IsMatch(args1Str)) bIndex = int.Parse(args1Str); + } + var needCategory = (p != 'e' && p != 'E') && (serie is Line || serie is Bar); + if (needCategory) + { + var category = chart.GetTooltipCategory(dataIndex, serie, dataZoom); + content = content.Replace(old, category); + } + else + { + var serieData = serie.GetSerieData(bIndex, dataZoom); + content = content.Replace(old, serieData.name); + } + } + else if (p == 'g' || p == 'G') + { + content = content.Replace(old, ChartCached.NumberToStr(serie.dataCount, "")); + } + else if (p == 'c' || p == 'C' || p == 'd' || p == 'D' || p == 'f' || p == 'f') + { + var isPercent = p == 'd' || p == 'D'; + var isTotal = p == 'f' || p == 'f'; + var bIndex = dataIndex; + var dimensionIndex = -1; + if (argsCount >= 2) + { + var args1Str = args[1].ToString(); + if (s_RegexFn.IsMatch(args1Str)) + { + numericFormatter = args1Str; + } + else if (s_RegexN_N.IsMatch(args1Str)) + { + var temp = args1Str.Split('-'); + bIndex = int.Parse(temp[0]); + dimensionIndex = int.Parse(temp[1]); + } + else if (s_RegexN.IsMatch(args1Str)) + { + dimensionIndex = int.Parse(args1Str); + } + else + { + Debug.LogError("unmatch:" + args1Str); + continue; + } + } + if (argsCount >= 3) + { + numericFormatter = args[2].ToString(); + } + if (dimensionIndex == -1) dimensionIndex = 1; + if (numericFormatter == string.Empty) + { + numericFormatter = SerieHelper.GetNumericFormatter(serie, serie.GetSerieData(bIndex), ""); + } + var value = serie.GetData(bIndex, dimensionIndex, dataZoom); + if (isPercent) + { + var total = serie.GetDataTotal(dimensionIndex, serie.GetSerieData(bIndex)); + var percent = total == 0 ? 0 : value / serie.yTotal * 100; + content = content.Replace(old, ChartCached.FloatToStr(percent, numericFormatter)); + } + else if (isTotal) + { + var total = serie.GetDataTotal(dimensionIndex, serie.GetSerieData(bIndex)); + content = content.Replace(old, ChartCached.FloatToStr(total, numericFormatter)); + } + else + { + content = content.Replace(old, ChartCached.FloatToStr(value, numericFormatter)); + } + } + } + content = s_RegexNewLine.Replace(content, PH_NN); + return foundDot; + } + + public static void ReplaceSerieLabelContent(ref string content, string numericFormatter, int dataCount, double value, double total, + string serieName, string category, string dataName, Color color) + { + var mc = s_RegexForSerieLabel.Matches(content); + foreach (var m in mc) + { + var old = m.ToString(); + var args = s_RegexSubForSerieLabel.Matches(old); + var argsCount = args.Count; + if (argsCount <= 0) continue; + var p = args[0].ToString().ElementAt(0); + if (argsCount >= 2) + { + numericFormatter = args[1].ToString(); + } + if (p == '.') + { + content = content.Replace(old, ChartCached.ColorToDotStr(color)); + } + else if (p == 'a' || p == 'A') + { + content = content.Replace(old, serieName); + } + else if (p == 'b' || p == 'B') + { + content = content.Replace(old, category); + } + else if (p == 'e' || p == 'E') + { + content = content.Replace(old, dataName); + } + else if (p == 'd' || p == 'D') + { + var rate = total == 0 ? 0 : value / total * 100; + content = content.Replace(old, ChartCached.NumberToStr(rate, numericFormatter)); + } + else if (p == 'c' || p == 'C') + { + content = content.Replace(old, ChartCached.NumberToStr(value, numericFormatter)); + } + else if (p == 'f' || p == 'f') + { + content = content.Replace(old, ChartCached.NumberToStr(total, numericFormatter)); + } + else if (p == 'g' || p == 'G') + { + content = content.Replace(old, ChartCached.NumberToStr(dataCount, numericFormatter)); + } + } + content = TrimAndReplaceLine(content); + } + + private static char GetSerieIndex(string strType, ref int index) + { + index = -1; + if (strType.Length > 1) + { + if (!int.TryParse(strType.Substring(1), out index)) + { + index = -1; + } + } + return strType.ElementAt(0); + } + + public static string TrimAndReplaceLine(StringBuilder sb) + { + return TrimAndReplaceLine(sb.ToString()); + } + + public static string TrimAndReplaceLine(string content) + { + return s_RegexNewLine.Replace(content.Trim(), PH_NN); + } + + public static void ReplaceAxisLabelContent(ref string content, string numericFormatter, double value) + { + var mc = s_RegexForAxisLabel.Matches(content); + foreach (var m in mc) + { + var old = m.ToString(); + var args = s_RegexSubForAxisLabel.Matches(m.ToString()); + var argsCount = args.Count; + if (argsCount <= 0) continue; + if (argsCount >= 2) + { + numericFormatter = args[1].ToString(); + } + content = content.Replace(old, ChartCached.FloatToStr(value, numericFormatter)); + } + content = TrimAndReplaceLine(content); + } + + public static void ReplaceAxisLabelContent(ref string content, string value) + { + var mc = s_RegexForAxisLabel.Matches(content); + foreach (var m in mc) + { + var old = m.ToString(); + var args = s_RegexSubForAxisLabel.Matches(m.ToString()); + var argsCount = args.Count; + if (argsCount <= 0) continue; + content = content.Replace(old, value); + } + content = TrimAndReplaceLine(content); + } + + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/FormatterHelper.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/FormatterHelper.cs.meta new file mode 100644 index 0000000..6c2e5d3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/FormatterHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0fddcb81df44148ed86496564b120261 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/SerieHelper.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/SerieHelper.cs new file mode 100644 index 0000000..2000726 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/SerieHelper.cs @@ -0,0 +1,783 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +using UnityEngine; + +namespace XCharts.Runtime +{ + public static partial class SerieHelper + { + public static double GetMinData(Serie serie, int dimension = 1, DataZoom dataZoom = null) + { + double min = double.MaxValue; + var dataList = serie.GetDataList(dataZoom); + for (int i = 0; i < dataList.Count; i++) + { + var serieData = dataList[i]; + if (serieData.show && serieData.data.Count > dimension) + { + var value = serieData.data[dimension]; + if (value < min && !serie.IsIgnoreValue(value)) min = value; + } + } + return min == double.MaxValue ? 0 : min; + } + public static SerieData GetMinSerieData(Serie serie, int dimension = 1, DataZoom dataZoom = null) + { + double min = double.MaxValue; + SerieData minData = null; + var dataList = serie.GetDataList(dataZoom); + for (int i = 0; i < dataList.Count; i++) + { + var serieData = dataList[i]; + if (serieData.show && serieData.data.Count > dimension) + { + var value = serieData.data[dimension]; + if (value < min && !serie.IsIgnoreValue(value)) + { + min = value; + minData = serieData; + } + } + } + return minData; + } + public static double GetMaxData(Serie serie, int dimension = 1, DataZoom dataZoom = null) + { + double max = double.MinValue; + var dataList = serie.GetDataList(dataZoom); + for (int i = 0; i < dataList.Count; i++) + { + var serieData = dataList[i]; + if (serieData.show && serieData.data.Count > dimension) + { + var value = serieData.data[dimension]; + if (value > max && !serie.IsIgnoreValue(value)) max = value; + } + } + return max == double.MinValue ? 0 : max; + } + public static SerieData GetMaxSerieData(Serie serie, int dimension = 1, DataZoom dataZoom = null) + { + double max = double.MinValue; + SerieData maxData = null; + var dataList = serie.GetDataList(dataZoom); + for (int i = 0; i < dataList.Count; i++) + { + var serieData = dataList[i]; + if (serieData.show && serieData.data.Count > dimension) + { + var value = serieData.data[dimension]; + if (value > max && !serie.IsIgnoreValue(value)) + { + max = value; + maxData = serieData; + } + } + } + return maxData; + } + + public static double GetAverageData(Serie serie, int dimension = 1, DataZoom dataZoom = null) + { + double total = 0; + var dataList = serie.GetDataList(dataZoom); + for (int i = 0; i < dataList.Count; i++) + { + var serieData = dataList[i]; + if (serieData.show && serieData.data.Count > dimension) + { + var value = serieData.data[dimension]; + if (!serie.IsIgnoreValue(value)) + total += value; + } + } + return total != 0 ? total / dataList.Count : 0; + } + + private static List<double> s_TempList = new List<double>(); + public static double GetMedianData(Serie serie, int dimension = 1, DataZoom dataZoom = null) + { + s_TempList.Clear(); + var dataList = serie.GetDataList(dataZoom); + for (int i = 0; i < dataList.Count; i++) + { + var serieData = dataList[i]; + if (serieData.show && serieData.data.Count > dimension) + { + var value = serieData.data[dimension]; + if (!serie.IsIgnoreValue(value)) + s_TempList.Add(value); + } + } + s_TempList.Sort(); + var n = s_TempList.Count; + if (n % 2 == 0) return (s_TempList[n / 2] + s_TempList[n / 2 - 1]) / 2; + else return s_TempList[n / 2]; + } + + /// <summary> + /// Gets the maximum and minimum values of the specified dimension of a serie. + /// |获得系列指定维数的最大最小值。 + /// </summary> + /// <param name="serie">指定系列</param> + /// <param name="dimension">指定维数</param> + /// <param name="min">最小值</param> + /// <param name="max">最大值</param> + /// <param name="dataZoom">缩放组件,默认null</param> + public static void GetMinMaxData(Serie serie, int dimension, out double min, out double max, + DataZoom dataZoom = null) + { + max = double.MinValue; + min = double.MaxValue; + var dataList = serie.GetDataList(dataZoom); + for (int i = 0; i < dataList.Count; i++) + { + var serieData = dataList[i]; + if (serieData.show && serieData.data.Count > dimension) + { + var value = serieData.data[dimension]; + if (!serie.IsIgnoreValue(value)) + { + if (value > max) max = value; + if (value < min) min = value; + } + } + } + } + + /// <summary> + /// Gets the maximum and minimum values of all data in the serie. + /// |获得系列所有数据的最大最小值。 + /// </summary> + /// <param name="serie"></param> + /// <param name="min"></param> + /// <param name="max"></param> + /// <param name="dataZoom"></param> + public static void GetMinMaxData(Serie serie, out double min, out double max, DataZoom dataZoom = null, int dimension = 0) + { + max = double.MinValue; + min = double.MaxValue; + var dataList = serie.GetDataList(dataZoom); + for (int i = 0; i < dataList.Count; i++) + { + var serieData = dataList[i]; + if (serieData.show) + { + var count = 0; + if (dimension > 0) count = dimension; + else count = serie.showDataDimension > serieData.data.Count ? + serieData.data.Count : + serie.showDataDimension; + for (int j = 0; j < count; j++) + { + var value = serieData.data[j]; + if (!serie.IsIgnoreValue(value)) + { + if (value > max) max = value; + if (value < min) min = value; + } + } + } + } + } + + /// <summary> + /// Whether the data for the specified dimension of serie are all 0. + /// |系列指定维数的数据是否全部为0。 + /// </summary> + /// <param name="serie">系列</param> + /// <param name="dimension">指定维数</param> + /// <returns></returns> + public static bool IsAllZeroValue(Serie serie, int dimension = 1) + { + foreach (var serieData in serie.data) + { + if (serieData.GetData(dimension) != 0) return false; + } + return true; + } + + /// <summary> + /// 更新运行时中心点和半径 + /// </summary> + /// <param name="chartWidth"></param> + /// <param name="chartHeight"></param> + public static void UpdateCenter(Serie serie, Vector3 chartPosition, float chartWidth, float chartHeight) + { + if (serie.center.Length < 2) return; + var centerX = serie.center[0] <= 1 ? chartWidth * serie.center[0] : serie.center[0]; + var centerY = serie.center[1] <= 1 ? chartHeight * serie.center[1] : serie.center[1]; + serie.context.center = chartPosition + new Vector3(centerX, centerY); + var minWidth = Mathf.Min(chartWidth, chartHeight); + serie.context.insideRadius = serie.radius[0] <= 1 ? minWidth * serie.radius[0] : serie.radius[0]; + serie.context.outsideRadius = serie.radius[1] <= 1 ? minWidth * serie.radius[1] : serie.radius[1]; + } + + public static void UpdateRect(Serie serie, Vector3 chartPosition, float chartWidth, float chartHeight) + { + if (serie.left != 0 || serie.right != 0 || serie.top != 0 || serie.bottom != 0) + { + var runtimeLeft = serie.left <= 1 ? serie.left * chartWidth : serie.left; + var runtimeBottom = serie.bottom <= 1 ? serie.bottom * chartHeight : serie.bottom; + var runtimeTop = serie.top <= 1 ? serie.top * chartHeight : serie.top; + var runtimeRight = serie.right <= 1 ? serie.right * chartWidth : serie.right; + + serie.context.x = chartPosition.x + runtimeLeft; + serie.context.y = chartPosition.y + runtimeBottom; + serie.context.width = chartWidth - runtimeLeft - runtimeRight; + serie.context.height = chartHeight - runtimeTop - runtimeBottom; + serie.context.center = new Vector3(serie.context.x + serie.context.width / 2, + serie.context.y + serie.context.height / 2); + serie.context.rect = new Rect(serie.context.x, serie.context.y, serie.context.width, serie.context.height); + } + else + { + serie.context.x = chartPosition.x; + serie.context.y = chartPosition.y; + serie.context.width = chartWidth; + serie.context.height = chartHeight; + serie.context.center = chartPosition + new Vector3(chartWidth / 2, chartHeight / 2); + serie.context.rect = new Rect(serie.context.x, serie.context.y, serie.context.width, serie.context.height); + } + } + + public static Color32 GetItemBackgroundColor(Serie serie, SerieData serieData, ThemeStyle theme, int index, + bool highlight, bool useDefault = true) + { + var color = ChartConst.clearColor32; + if (highlight) + { + var itemStyleEmphasis = GetItemStyleEmphasis(serie, serieData); + if (itemStyleEmphasis != null && !ChartHelper.IsClearColor(itemStyleEmphasis.backgroundColor)) + { + color = itemStyleEmphasis.backgroundColor; + ChartHelper.SetColorOpacity(ref color, itemStyleEmphasis.opacity); + return color; + } + } + var itemStyle = GetItemStyle(serie, serieData); + if (!ChartHelper.IsClearColor(itemStyle.backgroundColor)) + { + color = itemStyle.backgroundColor; + if (highlight) color = ChartHelper.GetHighlightColor(color); + ChartHelper.SetColorOpacity(ref color, itemStyle.opacity); + return color; + } + else if (useDefault) + { + color = theme.GetColor(index); + if (highlight) color = ChartHelper.GetHighlightColor(color); + color.a = 50; + return color; + } + return color; + } + + public static Color32 GetItemColor(Serie serie, SerieData serieData, ThemeStyle theme, int index, bool highlight, bool opacity = true) + { + if (serie == null) + return ChartConst.clearColor32; + + ItemStyle itemStyle = null; + if (highlight) + itemStyle = GetItemStyleEmphasis(serie, serieData); + if (itemStyle == null) + itemStyle = GetItemStyle(serie, serieData); + + var color = ChartHelper.IsClearColor(itemStyle.color) ? + theme.GetColor(index) : + itemStyle.color; + + if (highlight) + color = ChartHelper.GetHighlightColor(color); + if (opacity) + ChartHelper.SetColorOpacity(ref color, itemStyle.opacity); + return color; + } + public static Color32 GetItemColor0(Serie serie, SerieData serieData, ThemeStyle theme, bool highlight, Color32 defaultColor) + { + if (serie == null) + return ChartConst.clearColor32; + + ItemStyle itemStyle = null; + if (highlight) + itemStyle = GetItemStyleEmphasis(serie, serieData); + if (itemStyle == null) + itemStyle = GetItemStyle(serie, serieData); + + var color = ChartHelper.IsClearColor(itemStyle.color0) ? + defaultColor : + itemStyle.color0; + + if (highlight) + color = ChartHelper.GetHighlightColor(color); + + ChartHelper.SetColorOpacity(ref color, itemStyle.opacity); + return color; + } + + public static Color32 GetItemToColor(Serie serie, SerieData serieData, ThemeStyle theme, int index, bool highlight, bool opacity = true) + { + if (serie == null) + return ChartConst.clearColor32; + + ItemStyle itemStyle = null; + if (highlight) + itemStyle = GetItemStyleEmphasis(serie, serieData); + if (itemStyle == null) + itemStyle = GetItemStyle(serie, serieData); + + var color = itemStyle.toColor; + if (ChartHelper.IsClearColor(color)) + { + color = ChartHelper.IsClearColor(itemStyle.color) ? + theme.GetColor(index) : + itemStyle.color; + } + + if (highlight) + color = ChartHelper.GetHighlightColor(color); + + if (opacity) + ChartHelper.SetColorOpacity(ref color, itemStyle.opacity); + return color; + } + + public static bool IsDownPoint(Serie serie, int index) + { + var dataPoints = serie.context.dataPoints; + if (dataPoints.Count < 2) return false; + else if (index > 0 && index < dataPoints.Count - 1) + { + var lp = dataPoints[index - 1]; + var np = dataPoints[index + 1]; + var cp = dataPoints[index]; + var dot = Vector3.Cross(np - lp, cp - np); + return dot.z < 0; + } + else if (index == 0) + { + return dataPoints[0].y < dataPoints[1].y; + } + else if (index == dataPoints.Count - 1) + { + return dataPoints[index].y < dataPoints[index - 1].y; + } + else + { + return false; + } + } + + public static ItemStyle GetItemStyle(Serie serie, SerieData serieData, bool highlight = false) + { + if (highlight) + { + var style = GetItemStyleEmphasis(serie, serieData); + if (style == null) return GetItemStyle(serie, serieData, false); + else return style; + } + else if (serie.IsPerformanceMode()) return serie.itemStyle; + else if (serieData != null && serieData.itemStyle != null) return serieData.itemStyle; + else return serie.itemStyle; + } + + public static ItemStyle GetItemStyleEmphasis(Serie serie, SerieData serieData) + { + if (!serie.IsPerformanceMode() && serieData != null && serieData.emphasisItemStyle != null && serieData.emphasisItemStyle.show) + return serieData.emphasisItemStyle; + else if (serie.emphasisItemStyle != null && serie.emphasisItemStyle.show) return serie.emphasisItemStyle; + else return null; + } + + public static LabelStyle GetSerieLabel(Serie serie, SerieData serieData, bool highlight = false) + { + if (serieData == null) return serie.label; + if (highlight) + { + if (!serie.IsPerformanceMode() && serieData.emphasisLabel != null && serieData.emphasisLabel.show) + return serieData.emphasisLabel; + else if (serie.emphasisLabel != null && serie.emphasisLabel.show) return serie.emphasisLabel; + else return serie.label; + } + else + { + if (!serie.IsPerformanceMode() && serieData.labelStyle != null) return serieData.labelStyle; + else return serie.label; + } + } + + public static LabelStyle GetSerieEmphasisLabel(Serie serie, SerieData serieData) + { + if (!serie.IsPerformanceMode() && serieData.emphasisLabel != null && serieData.emphasisLabel.show) + return serieData.emphasisLabel; + else if (serie.emphasisLabel != null && serie.emphasisLabel.show) return serie.emphasisLabel; + else return null; + } + + public static LabelLine GetSerieLabelLine(Serie serie, SerieData serieData, bool highlight = false) + { + if (highlight) + { + if (!serie.IsPerformanceMode() && serieData.emphasisLabelLine != null && serieData.emphasisLabelLine.show) + return serieData.emphasisLabelLine; + else if (serie.emphasisLabelLine != null && serie.emphasisLabelLine.show) return serie.emphasisLabelLine; + else return serie.labelLine; + } + else + { + if (!serie.IsPerformanceMode() && serieData.labelLine != null) return serieData.labelLine; + else return serie.labelLine; + } + } + + public static SerieSymbol GetSerieSymbol(Serie serie, SerieData serieData) + { + if (!serie.IsPerformanceMode() && serieData.symbol != null) return serieData.symbol; + else return serie.symbol; + } + + public static LineStyle GetLineStyle(Serie serie, SerieData serieData) + { + if (serieData != null && serieData.lineStyle != null) return serieData.lineStyle; + else return serie.lineStyle; + } + + public static AreaStyle GetAreaStyle(Serie serie, SerieData serieData) + { + if (serieData != null && serieData.areaStyle != null) return serieData.areaStyle; + else return serie.areaStyle; + } + + public static TitleStyle GetTitleStyle(Serie serie, SerieData serieData) + { + if (serieData != null && serieData.titleStyle != null) return serieData.titleStyle; + else return serie.titleStyle; + } + + public static Color32 GetAreaColor(Serie serie, SerieData serieData, ThemeStyle theme, int index, bool highlight) + { + Color32 color = ChartConst.clearColor32; + var areaStyle = GetAreaStyle(serie, serieData); + if (areaStyle == null || !areaStyle.show) + return color; + if (!ChartHelper.IsClearColor(areaStyle.color)) color = areaStyle.color; + else if (!ChartHelper.IsClearColor(serie.itemStyle.color)) color = serie.itemStyle.color; + else color = theme.GetColor(index); + ChartHelper.SetColorOpacity(ref color, areaStyle.opacity); + if (highlight) + { + if (!ChartHelper.IsClearColor(areaStyle.highlightColor)) + color = areaStyle.highlightColor; + else + color = ChartHelper.GetHighlightColor(color); + } + return color; + } + + public static Color32 GetAreaToColor(Serie serie, SerieData serieData, ThemeStyle theme, int index, bool highlight) + { + Color32 color = ChartConst.clearColor32; + var areaStyle = GetAreaStyle(serie, serieData); + if (areaStyle == null || !areaStyle.show) + return color; + if (!ChartHelper.IsClearColor(areaStyle.toColor)) color = areaStyle.toColor; + else if (!ChartHelper.IsClearColor(serie.itemStyle.toColor)) color = serie.itemStyle.toColor; + else color = theme.GetColor(index); + ChartHelper.SetColorOpacity(ref color, areaStyle.opacity); + if (highlight) + { + if (!ChartHelper.IsClearColor(areaStyle.highlightToColor)) + color = areaStyle.highlightToColor; + else + color = ChartHelper.GetHighlightColor(color); + } + return color; + } + + public static Color32 GetLineColor(Serie serie, SerieData serieData, ThemeStyle theme, int index, bool highlight) + { + Color32 color = ChartConst.clearColor32; + var lineStyle = GetLineStyle(serie, serieData); + if (highlight) + { + var itemStyleEmphasis = GetItemStyleEmphasis(serie, null); + if (itemStyleEmphasis != null && !ChartHelper.IsClearColor(itemStyleEmphasis.color)) + { + color = itemStyleEmphasis.color; + ChartHelper.SetColorOpacity(ref color, itemStyleEmphasis.opacity); + return color; + } + } + if (!ChartHelper.IsClearColor(lineStyle.color)) color = lineStyle.color; + else if (!ChartHelper.IsClearColor(serie.itemStyle.color)) color = serie.itemStyle.GetColor(); + if (ChartHelper.IsClearColor(color)) color = theme.GetColor(index); + ChartHelper.SetColorOpacity(ref color, lineStyle.opacity); + if (highlight) color = ChartHelper.GetHighlightColor(color); + return color; + } + + public static float GetSymbolBorder(Serie serie, SerieData serieData, ThemeStyle theme, bool highlight) + { + var itemStyle = GetItemStyle(serie, serieData, highlight); + if (itemStyle != null && itemStyle.borderWidth != 0) return itemStyle.borderWidth; + else return serie.lineStyle.GetWidth(theme.serie.lineWidth) * 2; + } + + public static Color32 GetSymbolBorderColor(Serie serie, SerieData serieData, ThemeStyle theme, bool highlight) + { + var itemStyle = GetItemStyle(serie, serieData, highlight); + if (itemStyle != null && !ChartHelper.IsClearColor(itemStyle.borderColor)) return itemStyle.borderColor; + else return serie.itemStyle.borderColor; + } + + public static float GetSymbolBorder(Serie serie, SerieData serieData, ThemeStyle theme, bool highlight, float defaultWidth) + { + var itemStyle = GetItemStyle(serie, serieData, highlight); + if (itemStyle != null && itemStyle.borderWidth != 0) return itemStyle.borderWidth; + else return defaultWidth; + } + + public static float[] GetSymbolCornerRadius(Serie serie, SerieData serieData, bool highlight) + { + var itemStyle = GetItemStyle(serie, serieData, highlight); + if (itemStyle != null) return itemStyle.cornerRadius; + else return null; + } + + public static string GetNumericFormatter(Serie serie, SerieData serieData, string defaultFormatter = null) + { + var itemStyle = SerieHelper.GetItemStyle(serie, serieData); + if (!string.IsNullOrEmpty(itemStyle.numericFormatter)) return itemStyle.numericFormatter; + else return defaultFormatter; + } + + public static string GetItemFormatter(Serie serie, SerieData serieData, string defaultFormatter = null) + { + var itemStyle = SerieHelper.GetItemStyle(serie, serieData); + if (!string.IsNullOrEmpty(itemStyle.itemFormatter)) return itemStyle.itemFormatter; + else return defaultFormatter; + } + + public static string GetItemMarker(Serie serie, SerieData serieData, string defaultMarker = null) + { + var itemStyle = SerieHelper.GetItemStyle(serie, serieData); + if (!string.IsNullOrEmpty(itemStyle.itemMarker)) return itemStyle.itemMarker; + else return defaultMarker; + } + + /// <summary> + /// 获得指定维数的最大最小值 + /// </summary> + /// <param name="dimension"></param> + /// <param name="dataZoom"></param> + /// <returns></returns> + public static void UpdateMinMaxData(Serie serie, int dimension, int ceilRate = 0, DataZoom dataZoom = null) + { + double min = 0, max = 0; + GetMinMaxData(serie, dimension, out min, out max, dataZoom); + if (ceilRate < 0) + { + serie.context.dataMin = min; + serie.context.dataMax = max; + } + else + { + serie.context.dataMin = ChartHelper.GetMinDivisibleValue(min, ceilRate); + serie.context.dataMax = ChartHelper.GetMaxDivisibleValue(max, ceilRate); + } + } + + public static void GetAllMinMaxData(Serie serie, int ceilRate = 0, DataZoom dataZoom = null) + { + double min = 0, max = 0; + GetMinMaxData(serie, out min, out max, dataZoom); + if (ceilRate < 0) + { + serie.context.dataMin = min; + serie.context.dataMax = max; + } + else + { + serie.context.dataMin = ChartHelper.GetMinDivisibleValue(min, ceilRate); + serie.context.dataMax = ChartHelper.GetMaxDivisibleValue(max, ceilRate); + } + } + + private static List<SerieData> emptyFilter = new List<SerieData>(); + /// <summary> + /// 根据dataZoom更新数据列表缓存 + /// </summary> + /// <param name="dataZoom"></param> + public static void UpdateFilterData(Serie serie, DataZoom dataZoom) + { + if (dataZoom == null || !dataZoom.enable) return; + if (dataZoom.IsContainsXAxis(serie.xAxisIndex)) + { + if (dataZoom.IsXAxisIndexValue(serie.xAxisIndex)) + { + double min = 0, max = 0; + dataZoom.GetXAxisIndexValue(serie.xAxisIndex, out min, out max); + UpdateFilterData_XAxisValue(serie, dataZoom, 0, min, max); + } + else + { + UpdateFilterData_Category(serie, dataZoom); + } + } + else if (dataZoom.IsContainsYAxis(serie.yAxisIndex)) + { + if (dataZoom.IsYAxisIndexValue(serie.yAxisIndex)) + { + double min = 0, max = 0; + dataZoom.GetYAxisIndexValue(serie.yAxisIndex, out min, out max); + UpdateFilterData_XAxisValue(serie, dataZoom, 0, min, max); + } + else + { + UpdateFilterData_Category(serie, dataZoom); + } + } + } + + private static void UpdateFilterData_XAxisValue(Serie serie, DataZoom dataZoom, int dimension, double min, double max) + { + var data = serie.data; + var startValue = min + (max - min) * dataZoom.start / 100; + var endValue = min + (max - min) * dataZoom.end / 100; + if (endValue < startValue) endValue = startValue; + + if (startValue != serie.m_FilterStartValue || endValue != serie.m_FilterEndValue || + dataZoom.minShowNum != serie.m_FilterMinShow || serie.m_NeedUpdateFilterData) + { + serie.m_FilterStartValue = startValue; + serie.m_FilterEndValue = endValue; + serie.m_FilterMinShow = dataZoom.minShowNum; + serie.m_NeedUpdateFilterData = false; + + serie.m_FilterData.Clear(); + foreach (var serieData in data) + { + var value = serieData.GetData(dimension); + if (value >= startValue && value <= endValue) + { + serie.m_FilterData.Add(serieData); + } + } + } + else if (endValue == 0) + { + serie.m_FilterData = emptyFilter; + } + } + + private static void UpdateFilterData_Category(Serie serie, DataZoom dataZoom) + { + var data = serie.data; + var range = Mathf.RoundToInt(data.Count * (dataZoom.end - dataZoom.start) / 100); + if (range <= 0) range = 1; + int start = 0, end = 0; + if (dataZoom.context.invert) + { + end = Mathf.CeilToInt(data.Count * dataZoom.end / 100); + start = end - range; + if (start < 0) start = 0; + } + else + { + start = Mathf.FloorToInt(data.Count * dataZoom.start / 100); + end = start + range; + if (end > data.Count) end = data.Count; + } + if (start != serie.m_FilterStart || end != serie.m_FilterEnd || + dataZoom.minShowNum != serie.m_FilterMinShow || serie.m_NeedUpdateFilterData) + { + serie.m_FilterStart = start; + serie.m_FilterEnd = end; + serie.m_FilterMinShow = dataZoom.minShowNum; + serie.m_NeedUpdateFilterData = false; + if (data.Count > 0) + { + if (range < dataZoom.minShowNum) + { + if (dataZoom.minShowNum > data.Count) range = data.Count; + else range = dataZoom.minShowNum; + } + if (range > data.Count - start - 1) + start = data.Count - range - 1; + if (start >= 0) + serie.m_FilterData = data.GetRange(start, range); + else + serie.m_FilterData = data; + } + else + { + serie.m_FilterData = data; + } + } + else if (end == 0) + { + serie.m_FilterData = emptyFilter; + } + } + + public static void UpdateSerieRuntimeFilterData(Serie serie, bool filterInvisible = true) + { + serie.context.sortedData.Clear(); + foreach (var serieData in serie.data) + { + if (!filterInvisible || (filterInvisible && serieData.show)) + serie.context.sortedData.Add(serieData); + } + switch (serie.dataSortType) + { + case SerieDataSortType.Ascending: + serie.context.sortedData.Sort(delegate(SerieData data1, SerieData data2) + { + var value1 = data1.GetData(1); + var value2 = data2.GetData(1); + if (value1 == value2) return 0; + else if (value1 > value2) return 1; + else return -1; + }); + break; + case SerieDataSortType.Descending: + serie.context.sortedData.Sort(delegate(SerieData data1, SerieData data2) + { + var value1 = data1.GetData(1); + var value2 = data2.GetData(1); + if (value1 == value2) return 0; + else if (value1 > value2) return -1; + else return 1; + }); + break; + case SerieDataSortType.None: + break; + } + } + + public static T CloneSerie<T>(Serie serie) where T : Serie + { + var newSerie = Activator.CreateInstance<T>(); + SerieHelper.CopySerie(serie, newSerie); + return newSerie; + } + + public static void CopySerie(Serie oldSerie, Serie newSerie) + { + var fields = typeof(Serie).GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); + foreach (var field in fields) + { + if (field.IsDefined(typeof(SerializeField), false)) + { + var filedValue = field.GetValue(oldSerie); + if (filedValue == null) continue; + var filedType = filedValue.GetType(); + if (filedType.IsClass) + field.SetValue(newSerie, ReflectionUtil.DeepCloneSerializeField(filedValue)); + } + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/SerieHelper.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/SerieHelper.cs.meta new file mode 100644 index 0000000..a2ba9d1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/SerieHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8c031417514104eebb5bbd60dd1f90fd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/SerieLabelHelper.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/SerieLabelHelper.cs new file mode 100644 index 0000000..fc189a1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/SerieLabelHelper.cs @@ -0,0 +1,216 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + public static class SerieLabelHelper + { + + public static Color GetLabelColor(Serie serie, ThemeStyle theme, int index) + { + if (serie.label != null && !ChartHelper.IsClearColor(serie.label.textStyle.color)) + { + return serie.label.textStyle.color; + } + else + { + return theme.GetColor(index); + } + } + + public static void ResetLabel(ChartText labelObject, LabelStyle label, ThemeStyle theme, + Color textColor, float rotate) + { + if (labelObject == null) return; + labelObject.SetColor(textColor); + labelObject.SetLocalEulerAngles(new Vector3(0, 0, rotate)); + labelObject.SetFontSize(label.textStyle.GetFontSize(theme.common)); + labelObject.SetFontStyle(label.textStyle.fontStyle); + } + + public static bool CanShowLabel(Serie serie, SerieData serieData, LabelStyle label, int dimesion) + { + return serie.show && serieData.context.canShowLabel && !serie.IsIgnoreValue(serieData, dimesion); + } + + public static string GetFormatterContent(Serie serie, SerieData serieData, + double dataValue, double dataTotal, LabelStyle serieLabel, Color color) + { + if (serieLabel == null) + { + serieLabel = SerieHelper.GetSerieLabel(serie, serieData); + } + var numericFormatter = serieLabel == null ? "" : serieLabel.numericFormatter; + var serieName = serie.serieName; + var dataName = serieData != null ? serieData.name : null; + if (serieLabel.formatterFunction != null) + { + return serieLabel.formatterFunction(serieData.index, dataValue, null); + } + if (string.IsNullOrEmpty(serieLabel.formatter)) + return ChartCached.NumberToStr(dataValue, numericFormatter); + else + { + var content = serieLabel.formatter; + FormatterHelper.ReplaceSerieLabelContent(ref content, numericFormatter, serie.dataCount, dataValue, + dataTotal, serieName, dataName, dataName, color); + return content; + } + } + + public static void SetGaugeLabelText(Serie serie) + { + var serieData = serie.GetSerieData(0); + if (serieData == null) return; + if (serieData.labelObject == null) return; + var label = SerieHelper.GetSerieLabel(serie, serieData); + if (label == null) return; + var value = serieData.GetData(1); + var total = serie.max; + var content = SerieLabelHelper.GetFormatterContent(serie, serieData, value, total, null, Color.clear); + serieData.labelObject.SetText(content); + serieData.labelObject.SetPosition(serie.context.center + label.offset); + if (!ChartHelper.IsClearColor(label.textStyle.color)) + { + serieData.labelObject.text.SetColor(label.textStyle.color); + } + } + + public static void UpdatePieLabelPosition(Serie serie, SerieData serieData) + { + if (serieData.labelObject == null) return; + var startAngle = serie.context.startAngle; + var currAngle = serieData.context.halfAngle; + var currRad = currAngle * Mathf.Deg2Rad; + var offsetRadius = serieData.context.offsetRadius; + var insideRadius = serieData.context.insideRadius; + var outsideRadius = serieData.context.outsideRadius; + var serieLabel = SerieHelper.GetSerieLabel(serie, serieData); + var labelLine = SerieHelper.GetSerieLabelLine(serie, serieData); + switch (serieLabel.position) + { + case LabelStyle.Position.Center: + serieData.context.labelPosition = serie.context.center; + break; + case LabelStyle.Position.Inside: + var labelRadius = offsetRadius + insideRadius + (outsideRadius - insideRadius) / 2 + serieLabel.distance; + var labelCenter = new Vector2(serie.context.center.x + labelRadius * Mathf.Sin(currRad), + serie.context.center.y + labelRadius * Mathf.Cos(currRad)); + serieData.context.labelPosition = labelCenter; + break; + default: + //LabelStyle.Position.Outside + if (labelLine != null && labelLine.lineType == LabelLine.LineType.HorizontalLine) + { + var radius1 = serie.context.outsideRadius; + var radius3 = insideRadius + (outsideRadius - insideRadius) / 2; + var currSin = Mathf.Sin(currRad); + var currCos = Mathf.Cos(currRad); + var pos0 = new Vector3(serie.context.center.x + radius3 * currSin, serie.context.center.y + radius3 * currCos); + if ((currAngle - startAngle) % 360 > 180) + { + currSin = Mathf.Sin((360 - currAngle) * Mathf.Deg2Rad); + currCos = Mathf.Cos((360 - currAngle) * Mathf.Deg2Rad); + } + var r4 = Mathf.Sqrt(radius1 * radius1 - Mathf.Pow(currCos * radius3, 2)) - currSin * radius3; + r4 += labelLine.lineLength1 + labelLine.lineWidth * 4; + r4 += serieData.labelObject.text.GetPreferredWidth() / 2; + serieData.context.labelPosition = pos0 + ((currAngle - startAngle) % 360 > 180 ? Vector3.left : Vector3.right) * r4; + } + else + { + labelRadius = serie.context.outsideRadius + (labelLine == null ? 0 : labelLine.lineLength1); + labelCenter = new Vector2(serie.context.center.x + labelRadius * Mathf.Sin(currRad), + serie.context.center.y + labelRadius * Mathf.Cos(currRad)); + serieData.context.labelPosition = labelCenter; + } + break; + } + } + + public static void AvoidLabelOverlap(Serie serie, ComponentTheme theme) + { + if (!serie.avoidLabelOverlap) return; + var lastCheckPos = Vector3.zero; + var data = serie.data; + var splitCount = 0; + for (int n = 0; n < data.Count; n++) + { + var serieData = data[n]; + if (serieData.context.labelPosition.x != 0 && serieData.context.labelPosition.x < serie.context.center.x) + { + splitCount = n; + break; + } + } + for (int n = 0; n < splitCount; n++) + { + CheckSerieDataLabel(serie, data[n], false, theme, ref lastCheckPos); + } + lastCheckPos = Vector3.zero; + for (int n = data.Count - 1; n >= splitCount; n--) + { + CheckSerieDataLabel(serie, data[n], true, theme, ref lastCheckPos); + } + } + + private static void CheckSerieDataLabel(Serie serie, SerieData serieData, bool isLeft, ComponentTheme theme, + ref Vector3 lastCheckPos) + { + if (!serieData.context.canShowLabel) + { + serieData.SetLabelActive(false); + return; + } + if (!serieData.show) return; + var serieLabel = SerieHelper.GetSerieLabel(serie, serieData); + var labelLine = SerieHelper.GetSerieLabelLine(serie, serieData); + var fontSize = serieLabel.textStyle.GetFontSize(theme); + var isOutside = serieLabel.position == LabelStyle.Position.Outside || + serieLabel.position == LabelStyle.Position.Default; + if (!serieLabel.show) return; + if (!isOutside) return; + if (lastCheckPos == Vector3.zero) + { + lastCheckPos = serieData.context.labelPosition; + } + else if (serieData.context.labelPosition.x != 0) + { + if (lastCheckPos.y - serieData.context.labelPosition.y < fontSize) + { + var labelRadius = serie.context.outsideRadius + labelLine.lineLength1; + var y1 = lastCheckPos.y - fontSize; + var cy = serie.context.center.y; + var diff = Mathf.Abs(y1 - cy); + var diffX = labelRadius * labelRadius - diff * diff; + diffX = diffX <= 0 ? 0 : diffX; + var x1 = serie.context.center.x + Mathf.Sqrt(diffX) * (isLeft ? -1 : 1); + serieData.context.labelPosition = new Vector3(x1, y1); + } + lastCheckPos = serieData.context.labelPosition; + serieData.labelObject.SetPosition(SerieLabelHelper.GetRealLabelPosition(serie, serieData, serieLabel, labelLine)); + } + } + + public static Vector3 GetRealLabelPosition(Serie serie, SerieData serieData, LabelStyle label, LabelLine labelLine) + { + if (label == null || labelLine == null) + return serieData.context.labelPosition; + var isOutside = label.position == LabelStyle.Position.Outside || + label.position == LabelStyle.Position.Default; + if (isOutside && labelLine.lineType != LabelLine.LineType.HorizontalLine) + { + var currAngle = serieData.context.halfAngle; + var offset = labelLine.lineLength2 + serieData.labelObject.GetTextWidth() / 2; + if ((currAngle - serie.context.startAngle) % 360 > 180) + return serieData.context.labelPosition + new Vector3(-offset, 0, 0); + else + return serieData.context.labelPosition + new Vector3(offset, 0, 0); + } + else + { + return serieData.context.labelPosition; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/SerieLabelHelper.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/SerieLabelHelper.cs.meta new file mode 100644 index 0000000..5b4a31f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/SerieLabelHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0b81cddd3452545748563f9c6ea9be69 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/SeriesHelper.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/SeriesHelper.cs new file mode 100644 index 0000000..09be09c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/SeriesHelper.cs @@ -0,0 +1,452 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + public static class SeriesHelper + { + + public static bool IsLegalLegendName(string name) + { + int numName = -1; + if (int.TryParse(name, out numName)) + { + if (numName >= 0 && numName < 100) return false; + } + return true; + } + + public static List<string> GetLegalSerieNameList(List<Serie> series) + { + var list = new List<string>(); + for (int n = 0; n < series.Count; n++) + { + var serie = series[n]; + if (serie.placeHolder) continue; + if (serie.useDataNameForColor) + { + for (int i = 0; i < serie.data.Count; i++) + { + var dataName = serie.data[i].name; + if (!string.IsNullOrEmpty(dataName) && IsLegalLegendName(dataName) && !list.Contains(dataName)) + list.Add(dataName); + } + } + else + { + if (!string.IsNullOrEmpty(serie.serieName) && !list.Contains(serie.serieName) && IsLegalLegendName(serie.serieName)) + list.Add(serie.serieName); + } + } + return list; + } + + /// <summary> + /// 获得所有系列名,不包含空名字。 + /// </summary> + /// <returns></returns> + public static void UpdateSerieNameList(BaseChart chart, ref List<string> serieNameList) + { + serieNameList.Clear(); + for (int n = 0; n < chart.series.Count; n++) + { + var serie = chart.series[n]; + if (serie.placeHolder) continue; + if (serie.useDataNameForColor) + { + for (int i = 0; i < serie.data.Count; i++) + { + var serieData = serie.data[i]; + if (serie is Pie && serie.IsIgnoreValue(serieData)) continue; + if (string.IsNullOrEmpty(serieData.name)) + serieNameList.Add(ChartCached.IntToStr(i)); + else if (!serieNameList.Contains(serieData.name)) + serieNameList.Add(serieData.name); + } + } + else + { + if (string.IsNullOrEmpty(serie.serieName)) + serieNameList.Add(ChartCached.IntToStr(n)); + else if (!serieNameList.Contains(serie.serieName)) + serieNameList.Add(serie.serieName); + } + } + } + + public static Color GetNameColor(BaseChart chart, int index, string name) + { + Serie destSerie = null; + SerieData destSerieData = null; + var series = chart.series; + for (int n = 0; n < series.Count; n++) + { + var serie = series[n]; + if (serie.placeHolder) continue; + if (serie.useDataNameForColor) + { + bool found = false; + for (int i = 0; i < serie.data.Count; i++) + { + if (name.Equals(serie.data[i].name)) + { + destSerie = serie; + destSerieData = serie.data[i]; + found = true; + break; + } + } + if (found) break; + } + if (name.Equals(serie.serieName)) + { + destSerie = serie; + destSerieData = null; + break; + } + } + return SerieHelper.GetItemColor(destSerie, destSerieData, chart.theme, index, false); + } + + /// <summary> + /// 是否有需裁剪的serie。 + /// </summary> + /// <returns></returns> + public static bool IsAnyClipSerie(List<Serie> series) + { + foreach (var serie in series) + { + if (serie.clip) return true; + } + return false; + } + + /// <summary> + /// 获得上一个同堆叠且显示的serie。 + /// </summary> + /// <param name="serie"></param> + /// <returns></returns> + public static Serie GetLastStackSerie(List<Serie> series, Serie serie) + { + if (serie == null || string.IsNullOrEmpty(serie.stack)) return null; + for (int i = serie.index - 1; i >= 0; i--) + { + var temp = series[i]; + if (temp.show && serie.stack.Equals(temp.stack)) return temp; + } + return null; + } + + public static Serie GetSerieByVesselIndex(List<Serie> series, int vesselIndex) + { + foreach (var serie in series) + { + if (serie.vesselIndex == vesselIndex) return serie; + } + return null; + } + + private static HashSet<string> _setForStack = new HashSet<string>(); + /// <summary> + /// 是否由数据堆叠 + /// </summary> + /// <returns></returns> + public static bool IsStack(List<Serie> series) + { + _setForStack.Clear(); + foreach (var serie in series) + { + if (string.IsNullOrEmpty(serie.stack)) continue; + if (_setForStack.Contains(serie.stack)) return true; + _setForStack.Add(serie.stack); + } + return false; + } + + /// <summary> + /// 是否堆叠 + /// </summary> + /// <param name="stackName"></param> + /// <param name="type"></param> + /// <returns></returns> + public static bool IsStack<T>(List<Serie> series, string stackName) where T : Serie + { + if (string.IsNullOrEmpty(stackName)) return false; + int count = 0; + foreach (var serie in series) + { + if (serie.show && serie is T) + { + if (stackName.Equals(serie.stack)) count++; + if (count >= 2) return true; + } + } + return false; + } + + /// <summary> + /// 是否时百分比堆叠 + /// </summary> + /// <param name="type"></param> + /// <returns></returns> + public static bool IsPercentStack<T>(List<Serie> series) where T : Serie + { + int count = 0; + bool isPercentStack = false; + foreach (var serie in series) + { + if (serie.show && serie is T) + { + if (!string.IsNullOrEmpty(serie.stack)) + { + count++; + if (serie.barPercentStack) isPercentStack = true; + } + if (count >= 2 && isPercentStack) return true; + } + } + return false; + } + + /// <summary> + /// 是否时百分比堆叠 + /// </summary> + /// <param name="stackName"></param> + /// <param name="type"></param> + /// <returns></returns> + public static bool IsPercentStack<T>(List<Serie> series, string stackName) where T : Serie + { + if (string.IsNullOrEmpty(stackName)) return false; + int count = 0; + bool isPercentStack = false; + foreach (var serie in series) + { + if (serie.show && serie is T) + { + if (stackName.Equals(serie.stack)) + { + count++; + if (serie.barPercentStack) isPercentStack = true; + } + if (count >= 2 && isPercentStack) return true; + } + } + return false; + } + + private static Dictionary<string, int> sets = new Dictionary<string, int>(); + /// <summary> + /// 获得堆叠系列列表 + /// </summary> + /// <param name="Dictionary<int"></param> + /// <param name="stackSeries"></param> + public static void GetStackSeries(List<Serie> series, ref Dictionary<int, List<Serie>> stackSeries) + { + int count = 0; + var serieCount = series.Count; + sets.Clear(); + if (stackSeries == null) + { + stackSeries = new Dictionary<int, List<Serie>>(serieCount); + } + else + { + foreach (var kv in stackSeries) + { + kv.Value.Clear(); + } + } + for (int i = 0; i < serieCount; i++) + { + var serie = series[i]; + serie.index = i; + if (string.IsNullOrEmpty(serie.stack)) + { + if (!stackSeries.ContainsKey(count)) + stackSeries[count] = new List<Serie>(serieCount); + stackSeries[count].Add(serie); + count++; + } + else + { + if (!sets.ContainsKey(serie.stack)) + { + sets.Add(serie.stack, count); + if (!stackSeries.ContainsKey(count)) + stackSeries[count] = new List<Serie>(serieCount); + stackSeries[count].Add(serie); + count++; + } + else + { + int stackIndex = sets[serie.stack]; + stackSeries[stackIndex].Add(serie); + } + } + } + } + + public static void UpdateStackDataList(List<Serie> series, Serie currSerie, DataZoom dataZoom, List<List<SerieData>> dataList) + { + dataList.Clear(); + for (int i = 0; i <= currSerie.index; i++) + { + var serie = series[i]; + if (serie.GetType() == currSerie.GetType() && ChartHelper.IsValueEqualsString(serie.stack, currSerie.stack)) + { + dataList.Add(serie.GetDataList(dataZoom)); + } + } + } + + /// <summary> + /// 获得维度X的最大最小值 + /// </summary> + /// <param name="dataZoom"></param> + /// <param name="axisIndex"></param> + /// <param name="minVaule"></param> + /// <param name="maxValue"></param> + public static void GetXMinMaxValue(List<Serie> series, DataZoom dataZoom, int axisIndex, bool isValueAxis, + bool inverse, out double minVaule, out double maxValue, bool isPolar = false) + { + GetMinMaxValue(series, dataZoom, axisIndex, isValueAxis, inverse, false, out minVaule, out maxValue, isPolar); + } + + /// <summary> + /// 获得维度Y的最大最小值 + /// </summary> + /// <param name="dataZoom"></param> + /// <param name="axisIndex"></param> + /// <param name="minVaule"></param> + /// <param name="maxValue"></param> + public static void GetYMinMaxValue(List<Serie> series, DataZoom dataZoom, int axisIndex, bool isValueAxis, + bool inverse, out double minVaule, out double maxValue, bool isPolar = false) + { + GetMinMaxValue(series, dataZoom, axisIndex, isValueAxis, inverse, true, out minVaule, out maxValue, isPolar); + } + + private static Dictionary<int, List<Serie>> _stackSeriesForMinMax = new Dictionary<int, List<Serie>>(); + private static Dictionary<int, double> _serieTotalValueForMinMax = new Dictionary<int, double>(); + public static void GetMinMaxValue(List<Serie> series, DataZoom dataZoom, int axisIndex, bool isValueAxis, + bool inverse, bool yValue, out double minVaule, out double maxValue, bool isPolar = false) + { + double min = double.MaxValue; + double max = double.MinValue; + var isPercentStack = SeriesHelper.IsPercentStack<Bar>(series); + if (!SeriesHelper.IsStack(series) || (isValueAxis && !yValue)) + { + for (int i = 0; i < series.Count; i++) + { + var serie = series[i]; + if ((isPolar && serie.polarIndex != axisIndex) || + (!isPolar && serie.yAxisIndex != axisIndex) || + !serie.show) continue; + var updateDuration = serie.animation.enable?serie.animation.dataChangeDuration : 0; + if (isPercentStack && SeriesHelper.IsPercentStack<Bar>(series, serie.serieName)) + { + if (100 > max) max = 100; + if (0 < min) min = 0; + } + else + { + var showData = serie.GetDataList(dataZoom); + foreach (var data in showData) + { + + if (serie is Candlestick) + { + var dataMin = data.GetMinData(inverse); + var dataMax = data.GetMaxData(inverse); + if (dataMax > max) max = dataMax; + if (dataMin < min) min = dataMin; + } + else + { + //var currData = data.GetData(yValue ? 1 : 0, inverse); + var currData = data.GetCurrData(yValue ? 1 : 0, updateDuration, inverse); + if (!serie.IsIgnoreValue(currData)) + { + if (currData > max) max = currData; + if (currData < min) min = currData; + } + } + } + } + } + } + else + { + SeriesHelper.GetStackSeries(series, ref _stackSeriesForMinMax); + foreach (var ss in _stackSeriesForMinMax) + { + _serieTotalValueForMinMax.Clear(); + for (int i = 0; i < ss.Value.Count; i++) + { + var serie = ss.Value[i]; + if ((isPolar && serie.polarIndex != axisIndex) || + (!isPolar && serie.yAxisIndex != axisIndex) || + !serie.show) continue; + var showData = serie.GetDataList(dataZoom); + if (SeriesHelper.IsPercentStack<Bar>(series, serie.stack)) + { + for (int j = 0; j < showData.Count; j++) + { + _serieTotalValueForMinMax[j] = 100; + } + } + else + { + for (int j = 0; j < showData.Count; j++) + { + if (!_serieTotalValueForMinMax.ContainsKey(j)) + _serieTotalValueForMinMax[j] = 0; + double currData = 0; + if (serie is Candlestick) + { + currData = showData[j].GetMaxData(false); + } + else + { + currData = yValue ? showData[j].GetData(1) : showData[j].GetData(0); + } + if (inverse) currData = -currData; + if (!serie.IsIgnoreValue(currData)) + _serieTotalValueForMinMax[j] = _serieTotalValueForMinMax[j] + currData; + } + } + } + double tmax = double.MinValue; + double tmin = double.MaxValue; + foreach (var tt in _serieTotalValueForMinMax) + { + if (tt.Value > tmax) tmax = tt.Value; + if (tt.Value < tmin) tmin = tt.Value; + } + if (tmax > max) max = tmax; + if (tmin < min) min = tmin; + } + } + if (max == double.MinValue && min == double.MaxValue) + { + minVaule = 0; + maxValue = 0; + } + else + { + minVaule = min > 1 ? Math.Floor(min) : min; + maxValue = max > 1 ? Math.Ceiling(max) : max; + } + } + + public static int GetMaxSerieDataCount(List<Serie> series) + { + int max = 0; + foreach (var serie in series) + { + if (serie.dataCount > max) max = serie.dataCount; + } + return max; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/SeriesHelper.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/SeriesHelper.cs.meta new file mode 100644 index 0000000..bda31ea --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Helper/SeriesHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 96a06a5949772464da15c44ae2ad400d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/I18n.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/I18n.meta new file mode 100644 index 0000000..3486925 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/I18n.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3091670d5958a4fbaa9024b5cda31f1d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/I18n/Lang.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/I18n/Lang.cs new file mode 100644 index 0000000..eb62484 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/I18n/Lang.cs @@ -0,0 +1,137 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// Language. + /// |国际化语言表。 + /// </summary> + [Serializable] + [CreateAssetMenu(menuName = "XCharts/Export Lang")] + public class Lang : ScriptableObject + { + public string langName = "EN"; + public LangTime time = new LangTime(); + public LangCandlestick candlestick = new LangCandlestick(); + + public string GetMonthAbbr(int month) + { + if (month < 1 && month > 12) return month.ToString(); + else return time.monthAbbr[month - 1]; + } + + public string GetDay(int day) + { + day = day - 1; + if (day >= 0 && day < time.dayOfMonth.Count - 1) + return time.dayOfMonth[day]; + else + return day.ToString(); + } + + public string GetCandlestickDimensionName(int i) + { + if (i >= 0 && i < candlestick.dimensionNames.Count) + return candlestick.dimensionNames[i]; + else + return string.Empty; + } + } + + [Serializable] + public class LangTime + { + public List<string> months = new List<string>() + { + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + }; + public List<string> monthAbbr = new List<string>() + { + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec" + }; + public List<string> dayOfMonth = new List<string>() + { + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25", + "26", + "27", + "28", + "29", + "30", + "31" + }; + public List<string> dayOfWeek = new List<string>() + { + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + }; + public List<string> dayOfWeekAbbr = new List<string>() + { + "Sun", + "Mon", + "Tue", + "Wed", + "Thu", + "Fri", + "Sat" + }; + } + + [Serializable] + public class LangCandlestick + { + public List<string> dimensionNames = new List<string>() { "open", "close", "lowest", "highest" }; + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/I18n/Lang.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/I18n/Lang.cs.meta new file mode 100644 index 0000000..1f35cfa --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/I18n/Lang.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b65fc8b25febc4b9e8acb500d16770b2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal.meta new file mode 100644 index 0000000..791d17b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 750348e0c6842d74e872391f6ea942da +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes.meta new file mode 100644 index 0000000..d27d0ee --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aa2d903c5b18c41f78b61bd01f1512f3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ComponentHandlerAttribute.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ComponentHandlerAttribute.cs new file mode 100644 index 0000000..5827d57 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ComponentHandlerAttribute.cs @@ -0,0 +1,23 @@ +using System; + +namespace XCharts.Runtime +{ + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] + public sealed class ComponentHandlerAttribute : Attribute + { + public readonly Type handler; + public readonly bool allowMultiple = true; + + public ComponentHandlerAttribute(Type handler) + { + this.handler = handler; + this.allowMultiple = true; + } + + public ComponentHandlerAttribute(Type handler, bool allowMultiple) + { + this.handler = handler; + this.allowMultiple = allowMultiple; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ComponentHandlerAttribute.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ComponentHandlerAttribute.cs.meta new file mode 100644 index 0000000..0cabefc --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ComponentHandlerAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 396f8e713effb49fa8757d45944e7d30 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/CoordOptionsAttribute.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/CoordOptionsAttribute.cs new file mode 100644 index 0000000..b1040ca --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/CoordOptionsAttribute.cs @@ -0,0 +1,42 @@ +using System; + +namespace XCharts.Runtime +{ + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] + public sealed class CoordOptionsAttribute : Attribute + { + public readonly Type type0; + public readonly Type type1; + public readonly Type type2; + public readonly Type type3; + + public CoordOptionsAttribute(Type coord) + { + type0 = coord; + } + public CoordOptionsAttribute(Type coord, Type coord2) + { + type0 = coord; + type1 = coord2; + } + public CoordOptionsAttribute(Type coord, Type coord2, Type coord3) + { + type0 = coord; + type1 = coord2; + type2 = coord3; + } + public CoordOptionsAttribute(Type coord, Type coord2, Type coord3, Type coord4) + { + type0 = coord; + type1 = coord2; + type2 = coord3; + type3 = coord4; + } + + public bool Contains<T>() where T : CoordSystem + { + var type = typeof(T); + return (type == type0 || type == type1 || type == type2 || type == type3); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/CoordOptionsAttribute.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/CoordOptionsAttribute.cs.meta new file mode 100644 index 0000000..faba950 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/CoordOptionsAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8c03247521a944507bcdb1bcfbbc6006 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/DefaultAnimationAttribute.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/DefaultAnimationAttribute.cs new file mode 100644 index 0000000..d680761 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/DefaultAnimationAttribute.cs @@ -0,0 +1,15 @@ +using System; + +namespace XCharts.Runtime +{ + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] + public sealed class DefaultAnimationAttribute : Attribute + { + public readonly AnimationType type; + + public DefaultAnimationAttribute(AnimationType handler) + { + this.type = handler; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/DefaultAnimationAttribute.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/DefaultAnimationAttribute.cs.meta new file mode 100644 index 0000000..8b15da5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/DefaultAnimationAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b25b7b1d8388945d4bf78e54f094470f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/IgnoreDocAttribute.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/IgnoreDocAttribute.cs new file mode 100644 index 0000000..dbbc307 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/IgnoreDocAttribute.cs @@ -0,0 +1,12 @@ +using System; + +namespace XCharts.Runtime +{ + [AttributeUsage(AttributeTargets.Field, AllowMultiple = false)] + public class IgnoreDoc : Attribute + { + public IgnoreDoc() + { + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/IgnoreDocAttribute.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/IgnoreDocAttribute.cs.meta new file mode 100644 index 0000000..aab5242 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/IgnoreDocAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bd89bf9e568d34de089f71258f2bd211 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ListForAttribute.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ListForAttribute.cs new file mode 100644 index 0000000..0a96ce6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ListForAttribute.cs @@ -0,0 +1,15 @@ +using System; + +namespace XCharts.Runtime +{ + [AttributeUsage(AttributeTargets.Field, AllowMultiple = false)] + public class ListFor : Attribute + { + public readonly Type type; + + public ListFor(Type type) + { + this.type = type; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ListForAttribute.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ListForAttribute.cs.meta new file mode 100644 index 0000000..d4d2d6e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ListForAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 34edd91ec3857490fa2f04c620e44299 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ListForComponentAttribute.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ListForComponentAttribute.cs new file mode 100644 index 0000000..52a9881 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ListForComponentAttribute.cs @@ -0,0 +1,11 @@ +using System; + +namespace XCharts.Runtime +{ + [AttributeUsage(AttributeTargets.Field, AllowMultiple = false)] + public sealed class ListForComponent : ListFor + { + public ListForComponent(Type type) : base(type) + { } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ListForComponentAttribute.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ListForComponentAttribute.cs.meta new file mode 100644 index 0000000..dca1752 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ListForComponentAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 529bcbd6bb69b4aac905c44451077ca5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ListForSerieAttribute.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ListForSerieAttribute.cs new file mode 100644 index 0000000..07bcf23 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ListForSerieAttribute.cs @@ -0,0 +1,11 @@ +using System; + +namespace XCharts.Runtime +{ + [AttributeUsage(AttributeTargets.Field, AllowMultiple = false)] + public sealed class ListForSerie : ListFor + { + public ListForSerie(Type type) : base(type) + { } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ListForSerieAttribute.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ListForSerieAttribute.cs.meta new file mode 100644 index 0000000..f5a2afd --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/ListForSerieAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2723e22555ab04116892a8c7d5c75fbd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/RequireChartComponentAttribute.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/RequireChartComponentAttribute.cs new file mode 100644 index 0000000..551bb9a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/RequireChartComponentAttribute.cs @@ -0,0 +1,28 @@ +using System; + +namespace XCharts.Runtime +{ + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] + public sealed class RequireChartComponentAttribute : Attribute + { + public readonly Type type0; + public readonly Type type1; + public readonly Type type2; + + public RequireChartComponentAttribute(Type requiredComponent) + { + type0 = requiredComponent; + } + public RequireChartComponentAttribute(Type requiredComponent, Type requiredComponent2) + { + type0 = requiredComponent; + type1 = requiredComponent2; + } + public RequireChartComponentAttribute(Type requiredComponent, Type requiredComponent2, Type requiredComponent3) + { + type0 = requiredComponent; + type1 = requiredComponent2; + type2 = requiredComponent3; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/RequireChartComponentAttribute.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/RequireChartComponentAttribute.cs.meta new file mode 100644 index 0000000..3ad3719 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/RequireChartComponentAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1f27bf434cb8045a6b5d02930f8df479 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieConvertAttribute.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieConvertAttribute.cs new file mode 100644 index 0000000..1586119 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieConvertAttribute.cs @@ -0,0 +1,49 @@ +using System; + +namespace XCharts.Runtime +{ + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] + /// <summary> + /// What serie can convert to me + /// </summary> + public sealed class SerieConvertAttribute : Attribute + { + public readonly Type type0; + public readonly Type type1; + public readonly Type type2; + public readonly Type type3; + + public SerieConvertAttribute(Type serie) + { + type0 = serie; + } + public SerieConvertAttribute(Type serie, Type serie2) + { + type0 = serie; + type1 = serie2; + } + public SerieConvertAttribute(Type serie, Type serie2, Type serie3) + { + type0 = serie; + type1 = serie2; + type2 = serie3; + } + public SerieConvertAttribute(Type serie, Type serie2, Type serie3, Type serie4) + { + type0 = serie; + type1 = serie2; + type2 = serie3; + type3 = serie4; + } + + public bool Contains<T>() where T : Serie + { + return Contains(typeof(T)); + } + + public bool Contains(Type type) + { + return (type == type0 || type == type1 || type == type2 || type == type3); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieConvertAttribute.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieConvertAttribute.cs.meta new file mode 100644 index 0000000..b4de61a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieConvertAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 74af4595d38cb43ca8f11348cc979137 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieDataExtraComponentAttribute.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieDataExtraComponentAttribute.cs new file mode 100644 index 0000000..cd16379 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieDataExtraComponentAttribute.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; + +namespace XCharts.Runtime +{ + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] + public sealed class SerieDataExtraComponentAttribute : Attribute + { + public readonly List<Type> types = new List<Type>(); + + public SerieDataExtraComponentAttribute() + { } + public SerieDataExtraComponentAttribute(Type type1) + { + AddType(type1); + } + public SerieDataExtraComponentAttribute(Type type1, Type type2) + { + AddType(type1); + AddType(type2); + } + public SerieDataExtraComponentAttribute(Type type1, Type type2, Type type3) + { + AddType(type1); + AddType(type2); + AddType(type3); + } + public SerieDataExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4) + { + AddType(type1); + AddType(type2); + AddType(type3); + AddType(type4); + } + public SerieDataExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5) + { + AddType(type1); + AddType(type2); + AddType(type3); + AddType(type4); + AddType(type5); + } + public SerieDataExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5, Type type6) + { + AddType(type1); + AddType(type2); + AddType(type3); + AddType(type4); + AddType(type5); + AddType(type6); + } + public SerieDataExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5, Type type6, Type type7) + { + AddType(type1); + AddType(type2); + AddType(type3); + AddType(type4); + AddType(type5); + AddType(type6); + AddType(type7); + } + + private void AddType(Type type) + { + if (!SerieData.extraComponentMap.ContainsKey(type)) + throw new ArgumentException("SerieData not support extra component:" + type); + types.Add(type); + } + + public bool Contains<T>() where T : ISerieExtraComponent + { + return Contains(typeof(T)); + } + + public bool Contains(Type type) + { + return types.Contains(type); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieDataExtraComponentAttribute.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieDataExtraComponentAttribute.cs.meta new file mode 100644 index 0000000..43120ee --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieDataExtraComponentAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a77e2e342c09c4c6b95a0094ad0fcffc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieDataExtraFieldAttribute.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieDataExtraFieldAttribute.cs new file mode 100644 index 0000000..12e2c3f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieDataExtraFieldAttribute.cs @@ -0,0 +1,75 @@ +using System; +using System.Collections.Generic; + +namespace XCharts.Runtime +{ + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] + public sealed class SerieDataExtraFieldAttribute : Attribute + { + public readonly List<string> fields = new List<string>(); + + public SerieDataExtraFieldAttribute() + { } + public SerieDataExtraFieldAttribute(string field1) + { + AddFiled(field1); + } + public SerieDataExtraFieldAttribute(string field1, string field2) + { + AddFiled(field1); + AddFiled(field2); + } + public SerieDataExtraFieldAttribute(string field1, string field2, string field3) + { + AddFiled(field1); + AddFiled(field2); + AddFiled(field3); + } + public SerieDataExtraFieldAttribute(string field1, string field2, string field3, string field4) + { + AddFiled(field1); + AddFiled(field2); + AddFiled(field3); + AddFiled(field4); + } + public SerieDataExtraFieldAttribute(string field1, string field2, string field3, string field4, string field5) + { + AddFiled(field1); + AddFiled(field2); + AddFiled(field3); + AddFiled(field4); + AddFiled(field5); + } + public SerieDataExtraFieldAttribute(string field1, string field2, string field3, string field4, string field5, string field6) + { + AddFiled(field1); + AddFiled(field2); + AddFiled(field3); + AddFiled(field4); + AddFiled(field5); + AddFiled(field6); + } + public SerieDataExtraFieldAttribute(string field1, string field2, string field3, string field4, string field5, string field6, string field7) + { + AddFiled(field1); + AddFiled(field2); + AddFiled(field3); + AddFiled(field4); + AddFiled(field5); + AddFiled(field6); + AddFiled(field7); + } + + private void AddFiled(string field) + { + if (!SerieData.extraFieldList.Contains(field)) + throw new ArgumentException("SerieData not support field:" + field); + fields.Add(field); + } + + public bool Contains(string field) + { + return fields.Contains(field); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieDataExtraFieldAttribute.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieDataExtraFieldAttribute.cs.meta new file mode 100644 index 0000000..216bf90 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieDataExtraFieldAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c8b0cc5a1c11e497abb7e32c7d14b25f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieExtraComponentAttribute.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieExtraComponentAttribute.cs new file mode 100644 index 0000000..f4cb9ce --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieExtraComponentAttribute.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; + +namespace XCharts.Runtime +{ + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] + public sealed class SerieExtraComponentAttribute : Attribute + { + public readonly List<Type> types = new List<Type>(); + + public SerieExtraComponentAttribute() + { } + public SerieExtraComponentAttribute(Type type1) + { + AddType(type1); + } + public SerieExtraComponentAttribute(Type type1, Type type2) + { + AddType(type1); + AddType(type2); + } + public SerieExtraComponentAttribute(Type type1, Type type2, Type type3) + { + AddType(type1); + AddType(type2); + AddType(type3); + } + public SerieExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4) + { + AddType(type1); + AddType(type2); + AddType(type3); + AddType(type4); + } + public SerieExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5) + { + AddType(type1); + AddType(type2); + AddType(type3); + AddType(type4); + AddType(type5); + } + public SerieExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5, Type type6) + { + AddType(type1); + AddType(type2); + AddType(type3); + AddType(type4); + AddType(type5); + AddType(type6); + } + public SerieExtraComponentAttribute(Type type1, Type type2, Type type3, Type type4, Type type5, Type type6, Type type7) + { + AddType(type1); + AddType(type2); + AddType(type3); + AddType(type4); + AddType(type5); + AddType(type6); + AddType(type7); + } + + private void AddType(Type type) + { + if (!Serie.extraComponentMap.ContainsKey(type)) + throw new ArgumentException("Serie not support extra component:" + type); + types.Add(type); + } + + public bool Contains<T>() where T : ISerieExtraComponent + { + return Contains(typeof(T)); + } + + public bool Contains(Type type) + { + return types.Contains(type); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieExtraComponentAttribute.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieExtraComponentAttribute.cs.meta new file mode 100644 index 0000000..99dd27c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieExtraComponentAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7d61861a0f45f43af8915ae23cc326e9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieHandlerAttribute.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieHandlerAttribute.cs new file mode 100644 index 0000000..1bd21e7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieHandlerAttribute.cs @@ -0,0 +1,22 @@ +using System; + +namespace XCharts.Runtime +{ + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] + public sealed class SerieHandlerAttribute : Attribute + { + public readonly Type handler; + public readonly bool allowMultiple = true; + + public SerieHandlerAttribute(Type handler) + { + this.handler = handler; + this.allowMultiple = true; + } + public SerieHandlerAttribute(Type handler, bool allowMultiple) + { + this.handler = handler; + this.allowMultiple = allowMultiple; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieHandlerAttribute.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieHandlerAttribute.cs.meta new file mode 100644 index 0000000..2dfda00 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Attributes/SerieHandlerAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 810e22da460074d639f56dd860d9f5d1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.API.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.API.cs new file mode 100644 index 0000000..230af44 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.API.cs @@ -0,0 +1,542 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + /// <summary> + /// The base class of all charts. + /// |所有Chart的基类。 + /// </summary> + public partial class BaseChart + { + /// <summary> + /// The name of chart. + /// |</summary> + public string chartName + { + get { return m_ChartName; } + set + { + if (!string.IsNullOrEmpty(value) && XChartsMgr.ContainsChart(value)) + { + Debug.LogError("chartName repeated:" + value); + } + else + { + m_ChartName = value; + } + } + } + /// <summary> + /// The theme. + /// |</summary> + public ThemeStyle theme { get { return m_Theme; } set { m_Theme = value; } } + /// <summary> + /// Global parameter setting component. + /// |全局设置组件。 + /// </summary> + public Settings settings { get { return m_Settings; } } + /// <summary> + /// The x of chart. + /// |图表的X + /// </summary> + public float chartX { get { return m_ChartX; } } + /// <summary> + /// The y of chart. + /// |图表的Y + /// </summary> + public float chartY { get { return m_ChartY; } } + /// <summary> + /// The width of chart. + /// |图表的宽 + /// </summary> + public float chartWidth { get { return m_ChartWidth; } } + /// <summary> + /// The height of chart. + /// |图表的高 + /// </summary> + public float chartHeight { get { return m_ChartHeight; } } + public Vector2 chartMinAnchor { get { return m_ChartMinAnchor; } } + public Vector2 chartMaxAnchor { get { return m_ChartMaxAnchor; } } + public Vector2 chartPivot { get { return m_ChartPivot; } } + public Vector2 chartSizeDelta { get { return m_ChartSizeDelta; } } + /// <summary> + /// The position of chart. + /// |图表的左下角起始坐标。 + /// </summary> + public Vector3 chartPosition { get { return m_ChartPosition; } } + public Rect chartRect { get { return m_ChartRect; } } + public Action onInit { set { m_OnInit = value; } } + public Action onUpdate { set { m_OnUpdate = value; } } + /// <summary> + /// 自定义绘制回调。在绘制Serie前调用。 + /// </summary> + public Action<VertexHelper> onDraw { set { m_OnDrawBase = value; } } + /// <summary> + /// 自定义Serie绘制回调。在每个Serie绘制完前调用。 + /// </summary> + public Action<VertexHelper, Serie> onDrawBeforeSerie { set { m_OnDrawSerieBefore = value; } } + /// <summary> + /// 自定义Serie绘制回调。在每个Serie绘制完后调用。 + /// </summary> + public Action<VertexHelper, Serie> onDrawAfterSerie { set { m_OnDrawSerieAfter = value; } } + /// <summary> + /// 自定义Top绘制回调。在绘制Tooltip前调用。 + /// </summary> + public Action<VertexHelper> onDrawTop { set { m_OnDrawTop = value; } } + /// <summary> + /// 自定义仪表盘指针绘制委托。 + /// </summary> + public CustomDrawGaugePointerFunction customDrawGaugePointerFunction { set { m_CustomDrawGaugePointerFunction = value; } get { return m_CustomDrawGaugePointerFunction; } } + /// <summary> + /// the callback function of click pie area. + /// |点击饼图区域回调。参数:PointerEventData,SerieIndex,SerieDataIndex + /// </summary> + public Action<PointerEventData, int, int> onPointerClickPie { set { m_OnPointerClickPie = value; m_ForceOpenRaycastTarget = true; } get { return m_OnPointerClickPie; } } + /// <summary> + /// the callback function of click bar. + /// |点击柱形图柱条回调。参数:eventData, dataIndex + /// </summary> + public Action<PointerEventData, int> onPointerClickBar { set { m_OnPointerClickBar = value; m_ForceOpenRaycastTarget = true; } get { return m_OnPointerClickBar; } } + /// <summary> + /// 坐标轴变更数据索引时回调。参数:axis, dataIndex/dataValue + /// </summary> + public Action<Axis, double> onAxisPointerValueChanged { set { m_OnAxisPointerValueChanged = value; } get { return m_OnAxisPointerValueChanged; } } + /// <summary> + /// the callback function of click legend. + /// |点击图例按钮回调。参数:legendIndex, legendName, show + /// </summary> + public Action<Legend, int, string, bool> onLegendClick { set { m_OnLegendClick = value; } internal get { return m_OnLegendClick; } } + /// <summary> + /// the callback function of enter legend. + /// |鼠标进入图例回调。参数:legendIndex, legendName + /// </summary> + public Action<Legend, int, string> onLegendEnter { set { m_OnLegendEnter = value; } internal get { return m_OnLegendEnter; } } + /// <summary> + /// the callback function of exit legend. + /// |鼠标退出图例回调。参数:legendIndex, legendName + /// </summary> + public Action<Legend, int, string> onLegendExit { set { m_OnLegendExit = value; } internal get { return m_OnLegendExit; } } + public void Init(bool defaultChart = true) + { + if (defaultChart) + { + OnInit(); + DefaultChart(); + } + else + { + OnBeforeSerialize(); + } + } + /// <summary> + /// Redraw chart in next frame. + /// |在下一帧刷新整个图表。 + /// </summary> + public void RefreshChart() + { + foreach (var serie in m_Series) + serie.ResetInteract(); + m_RefreshChart = true; + if (m_Painter) m_Painter.Refresh(); + foreach (var painter in m_PainterList) painter.Refresh(); + if (m_PainterTop) m_PainterTop.Refresh(); + } + + /// <summary> + /// Redraw chart serie in next frame. + /// |在下一帧刷新图表的指定serie。 + /// </summary> + public void RefreshChart(int serieIndex) + { + RefreshPainter(GetSerie(serieIndex)); + } + + /// <summary> + /// Redraw chart serie in next frame. + /// |在下一帧刷新图表的指定serie。 + /// </summary> + public void RefreshChart(Serie serie) + { + if (serie == null) return; + serie.ResetInteract(); + RefreshPainter(serie); + } + + /// <summary> + /// Remove all series and legend data. + /// |It just emptying all of serie's data without emptying the list of series. + /// |清除所有数据,系列中只是移除数据,列表会保留。 + /// </summary> + public virtual void ClearData() + { + foreach (var serie in m_Series) + serie.ClearData(); + foreach (var component in m_Components) + component.ClearData(); + m_CheckAnimation = false; + RefreshChart(); + } + + /// <summary> + /// Remove all data from series and legend. + /// |The series list is also cleared. + /// |清除所有系列和图例数据,系列的列表也会被清除。 + /// </summary> + public virtual void RemoveData() + { + foreach (var component in m_Components) + component.ClearData(); + m_Series.Clear(); + m_SerieHandlers.Clear(); + m_CheckAnimation = false; + RefreshChart(); + } + + /// <summary> + /// Remove legend and serie by name. + /// |清除指定系列名称的数据。 + /// </summary> + /// <param name="serieName">the name of serie</param> + public virtual void RemoveData(string serieName) + { + RemoveSerie(serieName); + foreach (var component in m_Components) + { + if (component is Legend) + { + var legend = component as Legend; + legend.RemoveData(serieName); + } + } + RefreshChart(); + } + + public virtual void UpdateLegendColor(string legendName, bool active) + { + var legendIndex = m_LegendRealShowName.IndexOf(legendName); + if (legendIndex >= 0) + { + foreach (var component in m_Components) + { + if (component is Legend) + { + var legend = component as Legend; + var iconColor = LegendHelper.GetIconColor(this, legend, legendIndex, legendName, active); + var contentColor = LegendHelper.GetContentColor(this, legendIndex, legendName, legend, m_Theme, active); + legend.UpdateButtonColor(legendName, iconColor); + legend.UpdateContentColor(legendName, contentColor); + } + } + } + } + + /// <summary> + /// Whether serie is activated. + /// |获得指定图例名字的系列是否显示。 + /// </summary> + /// <param name="legendName"></param> + /// <returns></returns> + public virtual bool IsActiveByLegend(string legendName) + { + foreach (var serie in m_Series) + { + if (serie.show && legendName.Equals(serie.serieName)) + { + return true; + } + else + { + foreach (var serieData in serie.data) + { + if (serieData.show && legendName.Equals(serieData.name)) + { + return true; + } + } + } + + } + return false; + } + + /// <summary> + /// Update chart theme. + /// |切换内置主题。 + /// </summary> + /// <param name="theme">theme</param> + public bool UpdateTheme(ThemeType theme) + { + if (theme == ThemeType.Custom) + { + Debug.LogError("UpdateTheme: not support switch to Custom theme."); + return false; + } + if (m_Theme.sharedTheme == null) + m_Theme.sharedTheme = XCThemeMgr.GetTheme(ThemeType.Default); + m_Theme.sharedTheme.CopyTheme(theme); + return true; + } + + /// <summary> + /// Update chart theme info. + /// |切换图表主题。 + /// </summary> + /// <param name="theme">theme</param> + public void UpdateTheme(Theme theme) + { + m_Theme.sharedTheme = theme; + SetAllComponentDirty(); +#if UNITY_EDITOR + UnityEditor.EditorUtility.SetDirty(this); +#endif + } + + /// <summary> + /// Whether series animation enabel. + /// |启用或关闭起始动画。 + /// </summary> + /// <param name="flag"></param> + public void AnimationEnable(bool flag) + { + foreach (var serie in m_Series) serie.AnimationEnable(flag); + } + + /// <summary> + /// fadeIn animation. + /// |开始渐入动画。 + /// </summary> + public void AnimationFadeIn() + { + foreach (var serie in m_Series) serie.AnimationFadeIn(); + } + + /// <summary> + /// fadeIn animation. + /// |开始渐出动画。 + /// </summary> + public void AnimationFadeOut() + { + foreach (var serie in m_Series) serie.AnimationFadeOut(); + } + + /// <summary> + /// Pause animation. + /// |暂停动画。 + /// </summary> + public void AnimationPause() + { + foreach (var serie in m_Series) serie.AnimationPause(); + } + + /// <summary> + /// Stop play animation. + /// |继续动画。 + /// </summary> + public void AnimationResume() + { + foreach (var serie in m_Series) serie.AnimationResume(); + } + + /// <summary> + /// Reset animation. + /// |重置动画。 + /// </summary> + public void AnimationReset() + { + foreach (var serie in m_Series) serie.AnimationReset(); + } + + /// <summary> + /// 点击图例按钮 + /// </summary> + /// <param name="legendIndex">图例按钮索引</param> + /// <param name="legendName">图例按钮名称</param> + /// <param name="show">显示还是隐藏</param> + public void ClickLegendButton(int legendIndex, string legendName, bool show) + { + OnLegendButtonClick(legendIndex, legendName, show); + RefreshChart(); + } + + /// <summary> + /// 坐标是否在图表范围内 + /// </summary> + /// <param name="local"></param> + /// <returns></returns> + public bool IsInChart(Vector2 local) + { + return IsInChart(local.x, local.y); + } + + public bool IsInChart(float x, float y) + { + if (x < m_ChartX || x > m_ChartX + m_ChartWidth || + y < m_ChartY || y > m_ChartY + m_ChartHeight) + { + return false; + } + return true; + } + + public void ClampInChart(ref Vector3 pos) + { + if (!IsInChart(pos.x, pos.y)) + { + if (pos.x < m_ChartX) pos.x = m_ChartX; + if (pos.x > m_ChartX + m_ChartWidth) pos.x = m_ChartX + m_ChartWidth; + if (pos.y < m_ChartY) pos.y = m_ChartY; + if (pos.y > m_ChartY + m_ChartHeight) pos.y = m_ChartY + m_ChartHeight; + } + } + + public Vector3 ClampInGrid(GridCoord grid, Vector3 pos) + { + if (grid.Contains(pos)) return pos; + else + { + // var pos = new Vector3(pos.x, pos.y); + if (pos.x < grid.context.x) pos.x = grid.context.x; + if (pos.x > grid.context.x + grid.context.width) pos.x = grid.context.x + grid.context.width; + if (pos.y < grid.context.y) pos.y = grid.context.y; + if (pos.y > grid.context.y + grid.context.height) pos.y = grid.context.y + grid.context.height; + return pos; + } + } + + /// <summary> + /// 转换X轴和Y轴的配置 + /// </summary> + /// <param name="index">坐标轴索引,0或1</param> + public void CovertXYAxis(int index) + { + List<MainComponent> m_XAxes; + List<MainComponent> m_YAxes; + m_ComponentMaps.TryGetValue(typeof(XAxis), out m_XAxes); + m_ComponentMaps.TryGetValue(typeof(YAxis), out m_YAxes); + if (index >= 0 && index <= 1) + { + var xAxis = m_XAxes[index] as XAxis; + var yAxis = m_YAxes[index] as YAxis; + var tempX = xAxis.Clone(); + xAxis.Copy(yAxis); + yAxis.Copy(tempX); + xAxis.context.offset = 0; + yAxis.context.offset = 0; + xAxis.context.minValue = 0; + xAxis.context.maxValue = 0; + yAxis.context.minValue = 0; + yAxis.context.maxValue = 0; + RefreshChart(); + } + } + + /// <summary> + /// 在下一帧刷新DataZoom + /// </summary> + public void RefreshDataZoom() + { + foreach (var handler in m_ComponentHandlers) + { + if (handler is DataZoomHandler) + { + (handler as DataZoomHandler).RefreshDataZoomLabel(); + } + } + } + + /// <summary> + /// 设置可缓存的最大数据量。当数据量超过该值时,会自动删除第一个值再加入最新值。 + /// </summary> + public void SetMaxCache(int maxCache) + { + foreach (var serie in m_Series) + serie.maxCache = maxCache; + foreach (var component in m_Components) + { + if (component is Axis) + { + (component as Axis).maxCache = maxCache; + } + } + } + + public Vector3 GetTitlePosition(Title title) + { + return chartPosition + title.location.GetPosition(chartWidth, chartHeight); + } + + public int GetLegendRealShowNameIndex(string name) + { + return m_LegendRealShowName.IndexOf(name); + } + + public Color32 GetLegendRealShowNameColor(string name) + { + var index = GetLegendRealShowNameIndex(name); + return theme.GetColor(index); + } + + /// <summary> + /// 设置Base Painter的材质球 + /// </summary> + /// <param name="material"></param> + public void SetBasePainterMaterial(Material material) + { + settings.basePainterMaterial = material; + if (m_Painter != null) + { + m_Painter.material = material; + } + } + + /// <summary> + /// 设置Serie Painter的材质球 + /// </summary> + /// <param name="material"></param> + public void SetSeriePainterMaterial(Material material) + { + settings.basePainterMaterial = material; + if (m_PainterList != null) + { + foreach (var painter in m_PainterList) + painter.material = material; + } + } + + /// <summary> + /// 设置Top Painter的材质球 + /// </summary> + /// <param name="material"></param> + public void SetTopPainterMaterial(Material material) + { + settings.topPainterMaterial = material; + if (m_PainterTop != null) + { + m_PainterTop.material = material; + } + } + + public Color32 GetChartBackgroundColor() + { + var background = GetChartComponent<Background>(); + return theme.GetBackgroundColor(background); + } + + public Color32 GetItemColor(Serie serie, SerieData serieData, bool highlight = false) + { + var colorIndex = serieData == null || !serie.useDataNameForColor ? + GetLegendRealShowNameIndex(serie.legendName) : + GetLegendRealShowNameIndex(serieData.legendName); + return SerieHelper.GetItemColor(serie, serieData, m_Theme, colorIndex, highlight); + } + + public Color32 GetItemColor(Serie serie, bool highlight = false) + { + return SerieHelper.GetItemColor(serie, null, m_Theme, serie.context.colorIndex, highlight); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.API.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.API.cs.meta new file mode 100644 index 0000000..fcc2101 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.API.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 62d2f81e569a4477aab2091dc0b8dba7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Component.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Component.cs new file mode 100644 index 0000000..e7ef7b3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Component.cs @@ -0,0 +1,427 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + public partial class BaseChart + { + public bool TryAddChartComponent<T>() where T : MainComponent + { + return TryAddChartComponent(typeof(T)); + } + + public bool TryAddChartComponent(Type type) + { + if (CanAddChartComponent(type)) + { + AddChartComponent(type); + return true; + } + else + { + return false; + } + } + + public bool TryAddChartComponent<T>(out T component) where T : MainComponent + { + var type = typeof(T); + if (CanAddChartComponent(type)) + { + component = AddChartComponent(type) as T; + return true; + } + else + { + component = null; + return false; + } + } + + public T AddChartComponent<T>() where T : MainComponent + { + return (T) AddChartComponent(typeof(T)); + } + + public T AddChartComponentWhenNoExist<T>() where T : MainComponent + { + if (HasChartComponent<T>()) return null; + return AddChartComponent<T>(); + } + + public MainComponent AddChartComponent(Type type) + { + if (!CanAddChartComponent(type)) + { + Debug.LogError("XCharts ERROR: CanAddChartComponent:" + type.Name); + return null; + } + CheckAddRequireChartComponent(type); + var component = Activator.CreateInstance(type) as MainComponent; + if (component == null) + { + Debug.LogError("XCharts ERROR: CanAddChartComponent:" + type.Name); + return null; + } + component.SetDefaultValue(); + if (component is IUpdateRuntimeData) + (component as IUpdateRuntimeData).UpdateRuntimeData(chartX, chartY, chartWidth, chartHeight); + AddComponent(component); + m_Components.Sort(); + CreateComponentHandler(component); +#if UNITY_EDITOR && UNITY_2019_1_OR_NEWER + UnityEditor.EditorUtility.SetDirty(this); +#endif + return component; + } + + private void AddComponent(MainComponent component) + { + var type = component.GetType(); + m_Components.Add(component); + List<MainComponent> list; + if (!m_ComponentMaps.TryGetValue(type, out list)) + { + list = new List<MainComponent>(); + m_ComponentMaps[type] = list; + } + component.index = list.Count; + list.Add(component); + } + + private void CheckAddRequireChartComponent(Type type) + { + if (Attribute.IsDefined(type, typeof(RequireChartComponentAttribute))) + { + foreach (var obj in type.GetCustomAttributes(typeof(RequireChartComponentAttribute), false)) + { + var attribute = obj as RequireChartComponentAttribute; + if (attribute.type0 != null && !HasChartComponent(attribute.type0)) + AddChartComponent(attribute.type0); + if (attribute.type1 != null && !HasChartComponent(attribute.type1)) + AddChartComponent(attribute.type1); + if (attribute.type2 != null && !HasChartComponent(attribute.type2)) + AddChartComponent(attribute.type2); + } + } + } + + private void CreateComponentHandler(MainComponent component) + { + if (!component.GetType().IsDefined(typeof(ComponentHandlerAttribute), false)) + { + Debug.LogError("MainComponent no Handler:" + component.GetType()); + return; + } + var attrubte = component.GetType().GetAttribute<ComponentHandlerAttribute>(); + if (attrubte.handler == null) + return; + + var handler = (MainComponentHandler) Activator.CreateInstance(attrubte.handler); + handler.attribute = attrubte; + handler.chart = this; + handler.SetComponent(component); + component.handler = handler; + m_ComponentHandlers.Add(handler); + } + + public bool RemoveChartComponent<T>(int index = 0) + where T : MainComponent + { + return RemoveChartComponent(typeof(T), index); + } + + public int RemoveChartComponents<T>() + where T : MainComponent + { + return RemoveChartComponents(typeof(T)); + } + + public void RemoveAllChartComponent() + { + m_Components.Clear(); + InitComponentHandlers(); + } + + public bool RemoveChartComponent(Type type, int index = 0) + { + MainComponent toRemove = null; + for (int i = 0; i < m_Components.Count; i++) + { + if (m_Components[i].GetType() == type && m_Components[i].index == index) + { + toRemove = m_Components[i]; + break; + } + } + return RemoveChartComponent(toRemove); + } + + public int RemoveChartComponents(Type type) + { + int count = 0; + for (int i = m_Components.Count - 1; i > 0; i--) + { + if (m_Components[i].GetType() == type) + { + RemoveChartComponent(m_Components[i]); + count++; + } + } + return count; + } + + public bool RemoveChartComponent(MainComponent component) + { + if (component == null) return false; + if (m_Components.Remove(component)) + { + if (component.gameObject != null) + ChartHelper.SetActive(component.gameObject, false); + InitComponentHandlers(); + RefreshChart(); + return true; + } + return false; + } + + public bool CanAddChartComponent(Type type) + { + if (!type.IsSubclassOf(typeof(MainComponent))) return false; + if (!m_TypeListForComponent.ContainsKey(type)) return false; + if (CanMultipleComponent(type)) return !HasChartComponent(type); + else return true; + } + + public bool HasChartComponent<T>() + where T : MainComponent + { + return HasChartComponent(typeof(T)); + } + + public bool HasChartComponent(Type type) + { + foreach (var component in m_Components) + { + if (component == null) continue; + if (component.GetType() == type) + return true; + } + return false; + } + + public bool CanMultipleComponent(Type type) + { + return Attribute.IsDefined(type, typeof(DisallowMultipleComponent)); + } + + public int GetChartComponentNum<T>() where T : MainComponent + { + return GetChartComponentNum(typeof(T)); + } + + public int GetChartComponentNum(Type type) + { + List<MainComponent> list; + if (m_ComponentMaps.TryGetValue(type, out list)) + return list.Count; + else + return 0; + } + + public T GetChartComponent<T>(int index = 0) where T : MainComponent + { + foreach (var component in m_Components) + { + if (component is T && component.index == index) + return component as T; + } + return null; + } + + public List<MainComponent> GetChartComponents<T>() where T : MainComponent + { + return m_ComponentMaps[typeof(T)]; + } + + public T GetOrAddChartComponent<T>() where T : MainComponent + { + var component = GetChartComponent<T>(); + if (component == null) + return AddChartComponent<T>(); + else + return component; + } + + public bool TryGetChartComponent<T>(out T component, int index = 0) + where T : MainComponent + { + component = null; + foreach (var com in m_Components) + { + if (com is T && com.index == index) + { + component = (T) com; + return true; + } + } + return false; + } + public GridCoord GetGrid(Vector2 local) + { + List<MainComponent> list; + if (m_ComponentMaps.TryGetValue(typeof(GridCoord), out list)) + { + foreach (var component in list) + { + var grid = component as GridCoord; + if (grid.Contains(local)) return grid; + } + } + return null; + } + + public GridCoord GetGridOfDataZoom(DataZoom dataZoom) + { + GridCoord grid = null; + if (dataZoom.xAxisIndexs != null && dataZoom.xAxisIndexs.Count > 0) + { + var xAxis = GetChartComponent<XAxis>(dataZoom.xAxisIndexs[0]); + grid = GetChartComponent<GridCoord>(xAxis.gridIndex); + } + else if (dataZoom.yAxisIndexs != null && dataZoom.yAxisIndexs.Count > 0) + { + var yAxis = GetChartComponent<YAxis>(dataZoom.yAxisIndexs[0]); + grid = GetChartComponent<GridCoord>(yAxis.gridIndex); + } + if (grid == null) return GetChartComponent<GridCoord>(); + else return grid; + } + + public DataZoom GetDataZoomOfAxis(Axis axis) + { + foreach (var component in m_Components) + { + if (component is DataZoom) + { + var dataZoom = component as DataZoom; + if (!dataZoom.enable) continue; + if (dataZoom.IsContainsAxis(axis)) return dataZoom; + } + } + return null; + } + + public VisualMap GetVisualMapOfSerie(Serie serie) + { + foreach (var component in m_Components) + { + if (component is VisualMap) + { + var visualMap = component as VisualMap; + if (visualMap.serieIndex == serie.index) return visualMap; + } + } + return null; + } + + public void GetDataZoomOfSerie(Serie serie, out DataZoom xDataZoom, out DataZoom yDataZoom) + { + xDataZoom = null; + yDataZoom = null; + if (serie == null) return; + foreach (var component in m_Components) + { + if (component is DataZoom) + { + var dataZoom = component as DataZoom; + if (!dataZoom.enable) continue; + if (dataZoom.IsContainsXAxis(serie.xAxisIndex)) + { + xDataZoom = dataZoom; + } + if (dataZoom.IsContainsYAxis(serie.yAxisIndex)) + { + yDataZoom = dataZoom; + } + } + } + } + + /// <summary> + /// reutrn true when all the show axis is `Value` type. + /// |纯数值坐标轴(数值轴或对数轴)。 + /// </summary> + public bool IsAllAxisValue() + { + foreach (var component in m_Components) + { + if (component is Axis) + { + var axis = component as Axis; + if (axis.show && !axis.IsValue() && !axis.IsLog() && !axis.IsTime()) return false; + } + } + return true; + } + + /// <summary> + /// 纯类目轴。 + /// </summary> + public bool IsAllAxisCategory() + { + foreach (var component in m_Components) + { + if (component is Axis) + { + var axis = component as Axis; + if (axis.show && !axis.IsCategory()) return false; + } + } + return true; + } + + public bool IsInAnyGrid(Vector2 local) + { + List<MainComponent> list; + if (m_ComponentMaps.TryGetValue(typeof(GridCoord), out list)) + { + foreach (var grid in list) + { + if ((grid as GridCoord).Contains(local)) return true; + } + } + return false; + } + + internal string GetTooltipCategory(int dataIndex, DataZoom dataZoom = null) + { + var xAxis = GetChartComponent<XAxis>(); + var yAxis = GetChartComponent<YAxis>(); + if (yAxis.IsCategory()) + { + return yAxis.GetData((int) yAxis.context.pointerValue, dataZoom); + } + else if (xAxis.IsCategory()) + { + return xAxis.GetData((int) xAxis.context.pointerValue, dataZoom); + } + return null; + } + internal string GetTooltipCategory(int dataIndex, Serie serie, DataZoom dataZoom = null) + { + var xAxis = GetChartComponent<XAxis>(serie.xAxisIndex); + var yAxis = GetChartComponent<YAxis>(serie.yAxisIndex); + if (yAxis.IsCategory()) + { + return yAxis.GetData((int) yAxis.context.pointerValue, dataZoom); + } + else if (xAxis.IsCategory()) + { + return xAxis.GetData((int) xAxis.context.pointerValue, dataZoom); + } + return null; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Component.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Component.cs.meta new file mode 100644 index 0000000..430d2a9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Component.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: abbf9c9160e2c45c4a873a7da09672be +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Custom.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Custom.cs new file mode 100644 index 0000000..cbd04da --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Custom.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + public partial class BaseChart + { + public virtual void InitAxisRuntimeData(Axis axis) + { } + + public virtual void GetSeriesMinMaxValue(Axis axis, int axisIndex, out double tempMinValue, out double tempMaxValue) + { + if (IsAllAxisValue()) + { + if (axis is XAxis) + { + SeriesHelper.GetXMinMaxValue(m_Series, null, axisIndex, true, axis.inverse, out tempMinValue, out tempMaxValue); + } + else + { + SeriesHelper.GetYMinMaxValue(m_Series, null, axisIndex, true, axis.inverse, out tempMinValue, out tempMaxValue); + } + } + else + { + SeriesHelper.GetYMinMaxValue(m_Series, null, axisIndex, false, axis.inverse, out tempMinValue, out tempMaxValue); + } + AxisHelper.AdjustMinMaxValue(axis, ref tempMinValue, ref tempMaxValue, true); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Custom.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Custom.cs.meta new file mode 100644 index 0000000..4d9b1cc --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Custom.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ae62083fadc854bcc8c8312f84c6d166 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Draw.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Draw.cs new file mode 100644 index 0000000..f23303b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Draw.cs @@ -0,0 +1,134 @@ +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + public partial class BaseChart + { + public void DrawClipPolygon(VertexHelper vh, Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4, + Color32 color, bool clip, GridCoord grid) + { + DrawClipPolygon(vh, p1, p2, p3, p4, color, color, clip, grid); + } + + public void DrawClipPolygon(VertexHelper vh, Vector3 p, float radius, Color32 color, + bool clip, bool vertical, GridCoord grid) + { + if (!IsInChart(p)) return; + if (!clip || (clip && (grid.Contains(p)))) + UGL.DrawSquare(vh, p, radius, color); + } + + public void DrawClipPolygon(VertexHelper vh, Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4, + Color32 startColor, Color32 toColor, bool clip, GridCoord grid) + { + ClampInChart(ref p1); + ClampInChart(ref p2); + ClampInChart(ref p3); + ClampInChart(ref p4); + if (clip) + { + p1 = ClampInGrid(grid, p1); + p2 = ClampInGrid(grid, p2); + p3 = ClampInGrid(grid, p3); + p4 = ClampInGrid(grid, p4); + } + if (!clip || (clip && (grid.Contains(p1) && grid.Contains(p2) && grid.Contains(p3) && + grid.Contains(p4)))) + UGL.DrawQuadrilateral(vh, p1, p2, p3, p4, startColor, toColor); + } + + public void DrawClipPolygon(VertexHelper vh, ref Vector3 p1, ref Vector3 p2, ref Vector3 p3, ref Vector3 p4, + Color32 startColor, Color32 toColor, bool clip, GridCoord grid) + { + ClampInChart(ref p1); + ClampInChart(ref p2); + ClampInChart(ref p3); + ClampInChart(ref p4); + if (clip) + { + p1 = ClampInGrid(grid, p1); + p2 = ClampInGrid(grid, p2); + p3 = ClampInGrid(grid, p3); + p4 = ClampInGrid(grid, p4); + } + if (!clip || + (clip && (grid.Contains(p1) && grid.Contains(p2) && grid.Contains(p3) && + grid.Contains(p4)))) + UGL.DrawQuadrilateral(vh, p1, p2, p3, p4, startColor, toColor); + } + + public void DrawClipTriangle(VertexHelper vh, Vector3 p1, Vector3 p2, Vector3 p3, Color32 color, + bool clip, GridCoord grid) + { + DrawClipTriangle(vh, p1, p2, p3, color, color, color, clip, grid); + } + + public void DrawClipTriangle(VertexHelper vh, Vector3 p1, Vector3 p2, Vector3 p3, Color32 color, + Color32 color2, Color32 color3, bool clip, GridCoord grid) + { + if (!IsInChart(p1) || !IsInChart(p2) || !IsInChart(p3)) return; + if (!clip || (clip && (grid.Contains(p1) || grid.Contains(p2) || grid.Contains(p3)))) + UGL.DrawTriangle(vh, p1, p2, p3, color, color2, color3); + } + + public void DrawClipLine(VertexHelper vh, Vector3 p1, Vector3 p2, float size, Color32 color, + bool clip, GridCoord grid) + { + if (!IsInChart(p1) || !IsInChart(p2)) return; + if (!clip || (clip && (grid.Contains(p1) || grid.Contains(p2)))) + UGL.DrawLine(vh, p1, p2, size, color); + } + + public void DrawClipSymbol(VertexHelper vh, SymbolType type, float symbolSize, float tickness, + Vector3 pos, Color32 color, Color32 toColor, Color32 emptyColor, Color32 borderColor, float gap, + bool clip, float[] cornerRadius, GridCoord grid, Vector3 startPos) + { + if (!IsInChart(pos)) return; + if (!clip || (clip && (grid.Contains(pos)))) + DrawSymbol(vh, type, symbolSize, tickness, pos, color, toColor, emptyColor, borderColor, + gap, cornerRadius, startPos); + } + + public void DrawClipZebraLine(VertexHelper vh, Vector3 p1, Vector3 p2, float size, float zebraWidth, + float zebraGap, Color32 color, Color32 toColor, bool clip, GridCoord grid, float maxDistance) + { + ClampInChart(ref p1); + ClampInChart(ref p2); + UGL.DrawZebraLine(vh, p1, p2, size, zebraWidth, zebraGap, color, toColor, maxDistance); + } + + public void DrawSymbol(VertexHelper vh, SymbolType type, float symbolSize, float tickness, + Vector3 pos, Color32 color, Color32 toColor, Color32 emptyColor, Color32 borderColor, + float gap, float[] cornerRadius) + { + DrawSymbol(vh, type, symbolSize, tickness, pos, color, toColor, emptyColor, borderColor, + gap, cornerRadius, Vector3.zero); + } + + public void DrawSymbol(VertexHelper vh, SymbolType type, float symbolSize, float tickness, + Vector3 pos, Color32 color, Color32 toColor, Color32 emptyColor, Color32 borderColor, + float gap, float[] cornerRadius, Vector3 startPos) + { + var backgroundColor = GetChartBackgroundColor(); + if (ChartHelper.IsClearColor(emptyColor)) + emptyColor = backgroundColor; + var smoothness = settings.cicleSmoothness; + ChartDrawer.DrawSymbol(vh, type, symbolSize, tickness, pos, color, toColor, gap, + cornerRadius, emptyColor, backgroundColor, borderColor, smoothness, startPos); + } + + public Color32 GetXLerpColor(Color32 areaColor, Color32 areaToColor, Vector3 pos, GridCoord grid) + { + if (ChartHelper.IsValueEqualsColor(areaColor, areaToColor)) return areaColor; + return Color32.Lerp(areaToColor, areaColor, (pos.y - grid.context.y) / grid.context.height); + } + + public Color32 GetYLerpColor(Color32 areaColor, Color32 areaToColor, Vector3 pos, GridCoord grid) + { + if (ChartHelper.IsValueEqualsColor(areaColor, areaToColor)) return areaColor; + return Color32.Lerp(areaToColor, areaColor, (pos.x - grid.context.x) / grid.context.width); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Draw.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Draw.cs.meta new file mode 100644 index 0000000..26dffb0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Draw.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 781bfba23eace44fcbbf9ee6924da32b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Serie.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Serie.cs new file mode 100644 index 0000000..d5c28b8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Serie.cs @@ -0,0 +1,985 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +using UnityEngine; + +namespace XCharts.Runtime +{ + public partial class BaseChart + { + public T AddSerie<T>(string serieName = null, bool show = true, bool addToHead = false) where T : Serie + { + if (!CanAddSerie<T>()) return null; + var index = -1; + var serie = InsertSerie(index, typeof(T), serieName, show, addToHead) as T; + CreateSerieHandler(serie); + return serie; + } + + public T InsertSerie<T>(int index, string serieName = null, bool show = true) where T : Serie + { + if (!CanAddSerie<T>()) return null; + return InsertSerie(index, typeof(T), serieName, show) as T; + } + + public void InsertSerie(Serie serie, int index = -1, bool addToHead = false) + { + serie.AnimationRestart(); + AnimationStyleHelper.UpdateSerieAnimation(serie); + if (addToHead) m_Series.Insert(0, serie); + else if (index >= 0) m_Series.Insert(index, serie); + else m_Series.Add(serie); + ResetSeriesIndex(); + SeriesHelper.UpdateSerieNameList(this, ref m_LegendRealShowName); + } + + public bool MoveUpSerie(int serieIndex) + { + if (serieIndex < 0 || serieIndex > m_Series.Count - 1) return false; + if (serieIndex == 0) return false; + var up = GetSerie(serieIndex - 1); + var temp = GetSerie(serieIndex); + m_Series[serieIndex - 1] = temp; + m_Series[serieIndex] = up; + ResetSeriesIndex(); + InitSerieHandlers(); + RefreshChart(); + return true; + } + + public bool MoveDownSerie(int serieIndex) + { + if (serieIndex < 0 || serieIndex > m_Series.Count - 1) return false; + if (serieIndex == m_Series.Count - 1) return false; + var down = GetSerie(serieIndex + 1); + var temp = GetSerie(serieIndex); + m_Series[serieIndex + 1] = temp; + m_Series[serieIndex] = down; + ResetSeriesIndex(); + InitSerieHandlers(); + RefreshChart(); + return true; + } + + public bool CanAddSerie<T>() where T : Serie + { + return CanAddSerie(typeof(T)); + } + + public bool CanAddSerie(Type type) + { + return m_TypeListForSerie.ContainsKey(type); + } + + public bool HasSerie<T>() where T : Serie + { + return HasSerie(typeof(T)); + } + + public bool HasSerie(Type type) + { + if (!type.IsSubclassOf(typeof(Serie))) return false; + foreach (var serie in m_Series) + { + if (serie.GetType() == type) + return true; + } + return false; + } + + public T GetSerie<T>() where T : Serie + { + foreach (var serie in m_Series) + { + if (serie is T) return serie as T; + } + return null; + } + + public Serie GetSerie(string serieName) + { + foreach (var serie in m_Series) + { + if (serie.serieName.Equals(serieName)) return serie; + } + return null; + } + + public Serie GetSerie(int serieIndex) + { + if (serieIndex < 0 || serieIndex > m_Series.Count - 1) return null; + return m_Series[serieIndex]; + } + + public T GetSerie<T>(int serieIndex) where T : Serie + { + if (serieIndex < 0 || serieIndex > m_Series.Count - 1) return null; + return m_Series[serieIndex] as T; + } + + public void RemoveSerie(string serieName) + { + for (int i = m_Series.Count - 1; i >= 0; i--) + { + var serie = m_Series[i]; + if (string.IsNullOrEmpty(serie.serieName) && serie.serieName.Equals(serieName)) + RemoveSerie(serie); + } + } + + public void RemoveSerie(int serieIndex) + { + if (serieIndex < 0 || serieIndex > m_Series.Count - 1) return; + RemoveSerie(m_Series[serieIndex]); + } + + public void RemoveSerie<T>() where T : Serie + { + for (int i = m_Series.Count - 1; i >= 0; i--) + { + var serie = m_Series[i]; + if (serie is T) + RemoveSerie(serie); + } + } + + public void RemoveSerie(Serie serie) + { + serie.OnRemove(); + m_SerieHandlers.Remove(serie.handler); + m_Series.Remove(serie); + RefreshChart(); + } + + public bool CovertSerie<T>(Serie serie) where T : Serie + { + return CovertSerie(serie, typeof(T)); + } + + public bool CovertSerie(Serie serie, Type type) + { + try + { + var newSerie = type.InvokeMember("CovertSerie", + BindingFlags.InvokeMethod | BindingFlags.Static | BindingFlags.Public, null, null, + new object[] { serie }) as Serie; + return ReplaceSerie(serie, newSerie); + } + catch + { + Debug.LogError(string.Format("CovertSerie Failed: can't found {0}.CovertSerie(Serie serie)", type.Name)); + return false; + } + } + + public bool ReplaceSerie(Serie oldSerie, Serie newSerie) + { + if (oldSerie == null || newSerie == null) + return false; + + var index = m_Series.IndexOf(oldSerie); + if (index < 0) + return false; + AnimationStyleHelper.UpdateSerieAnimation(newSerie); + oldSerie.OnRemove(); + m_Series.RemoveAt(index); + m_Series.Insert(index, newSerie); + ResetSeriesIndex(); + InitSerieHandlers(); + RefreshAllComponent(); + RefreshChart(); + return true; + } + + /// <summary> + /// Add a data to serie. + /// |If serieName doesn't exist in legend,will be add to legend. + /// |添加一个数据到指定的系列中。 + /// </summary> + /// <param name="serieName">the name of serie</param> + /// <param name="data">the data to add</param> + /// <param name="dataName">the name of data</param> + /// <param name="dataId">the unique id of data</param> + /// <returns>Returns True on success</returns> + public SerieData AddData(string serieName, double data, string dataName = null, string dataId = null) + { + var serie = GetSerie(serieName); + if (serie != null) + { + var serieData = serie.AddYData(data, dataName, dataId); + RefreshPainter(serie.painter); + return serieData; + } + return null; + } + + /// <summary> + /// Add a data to serie. + /// |添加一个数据到指定的系列中。 + /// </summary> + /// <param name="serieIndex">the index of serie</param> + /// <param name="data">the data to add</param> + /// <param name="dataName">the name of data</param> + /// <param name="dataId">the unique id of data</param> + /// <returns>Returns True on success</returns> + public SerieData AddData(int serieIndex, double data, string dataName = null, string dataId = null) + { + var serie = GetSerie(serieIndex); + if (serie != null) + { + var serieData = serie.AddYData(data, dataName, dataId); + RefreshPainter(serie.painter); + return serieData; + } + return null; + } + + /// <summary> + /// Add an arbitray dimension data to serie,such as (x,y,z,...). + /// |添加多维数据(x,y,z...)到指定的系列中。 + /// </summary> + /// <param name="serieName">the name of serie</param> + /// <param name="multidimensionalData">the (x,y,z,...) data</param> + /// <param name="dataName">the name of data</param> + /// <param name="dataId">the unique id of data</param> + /// <returns>Returns True on success</returns> + public SerieData AddData(string serieName, List<double> multidimensionalData, string dataName = null, string dataId = null) + { + var serie = GetSerie(serieName); + if (serie != null) + { + var serieData = serie.AddData(multidimensionalData, dataName, dataId); + RefreshPainter(serie.painter); + return serieData; + } + return null; + } + + /// <summary> + /// Add an arbitray dimension data to serie,such as (x,y,z,...). + /// |添加多维数据(x,y,z...)到指定的系列中。 + /// </summary> + /// <param name="serieIndex">the index of serie,index starts at 0</param> + /// <param name="multidimensionalData">the (x,y,z,...) data</param> + /// <param name="dataName">the name of data</param> + /// <param name="dataId">the unique id of data</param> + /// <returns>Returns True on success</returns> + public SerieData AddData(int serieIndex, List<double> multidimensionalData, string dataName = null, string dataId = null) + { + var serie = GetSerie(serieIndex); + if (serie != null) + { + var serieData = serie.AddData(multidimensionalData, dataName, dataId); + RefreshPainter(serie.painter); + return serieData; + } + return null; + } + + /// <summary> + /// Add a (x,y) data to serie. + /// |添加(x,y)数据到指定系列中。 + /// </summary> + /// <param name="serieName">the name of serie</param> + /// <param name="xValue">x data</param> + /// <param name="yValue">y data</param> + /// <param name="dataName">the name of data</param> + /// <param name="dataId">the unique id of data</param> + /// <returns>Returns True on success</returns> + public SerieData AddData(string serieName, double xValue, double yValue, string dataName = null, string dataId = null) + { + var serie = GetSerie(serieName); + if (serie != null) + { + var serieData = serie.AddXYData(xValue, yValue, dataName, dataId); + RefreshPainter(serie.painter); + return serieData; + } + return null; + } + + /// <summary> + /// Add a (x,y) data to serie. + /// |添加(x,y)数据到指定系列中。 + /// </summary> + /// <param name="serieIndex">the index of serie</param> + /// <param name="xValue">x data</param> + /// <param name="yValue">y data</param> + /// <param name="dataName">the name of data</param> + /// <param name="dataId">the unique id of data</param> + /// <returns>Returns True on success</returns> + public SerieData AddData(int serieIndex, double xValue, double yValue, string dataName = null, string dataId = null) + { + var serie = GetSerie(serieIndex); + if (serie != null) + { + var serieData = serie.AddXYData(xValue, yValue, dataName, dataId); + RefreshPainter(serie.painter); + return serieData; + } + return null; + } + /// <summary> + /// Add a (time,y) data to serie. + /// |添加(time,y)数据到指定的系列中。 + /// </summary> + /// <param name="serieName"></param> + /// <param name="time"></param> + /// <param name="yValue"></param> + /// <param name="dataName"></param> + /// <param name="dataId"></param> + /// <returns></returns> + public SerieData AddData(string serieName, DateTime time, double yValue, string dataName = null, string dataId = null) + { + var xValue = DateTimeUtil.GetTimestamp(time); + return AddData(serieName, xValue, yValue, dataName, dataId); + } + + /// <summary> + /// Add a (time,y) data to serie. + /// |添加(time,y)数据到指定的系列中。 + /// </summary> + /// <param name="serieIndex"></param> + /// <param name="time"></param> + /// <param name="yValue"></param> + /// <param name="dataName"></param> + /// <param name="dataId"></param> + /// <returns></returns> + public SerieData AddData(int serieIndex, DateTime time, double yValue, string dataName = null, string dataId = null) + { + var xValue = DateTimeUtil.GetTimestamp(time); + return AddData(serieIndex, xValue, yValue, dataName, dataId); + } + + public SerieData AddData(int serieIndex, double open, double close, double lowest, double heighest, string dataName = null, string dataId = null) + { + var serie = GetSerie(serieIndex); + if (serie != null) + { + var serieData = serie.AddData(open, close, lowest, heighest, dataName, dataId); + RefreshPainter(serie.painter); + return serieData; + } + return null; + } + public SerieData AddData(string serieName, double open, double close, double lowest, double heighest, string dataName = null, string dataId = null) + { + var serie = GetSerie(serieName); + if (serie != null) + { + var serieData = serie.AddData(open, close, lowest, heighest, dataName, dataId); + RefreshPainter(serie.painter); + return serieData; + } + return null; + } + + /// <summary> + /// Update serie data by serie name. + /// |更新指定系列中的指定索引数据。 + /// </summary> + /// <param name="serieName">the name of serie</param> + /// <param name="dataIndex">the index of data</param> + /// <param name="value">the data will be update</param> + public bool UpdateData(string serieName, int dataIndex, double value) + { + var serie = GetSerie(serieName); + if (serie != null) + { + serie.UpdateYData(dataIndex, value); + RefreshPainter(serie); + return true; + } + return false; + } + + /// <summary> + /// Update serie data by serie index. + /// |更新指定系列中的指定索引数据。 + /// </summary> + /// <param name="serieIndex">the index of serie</param> + /// <param name="dataIndex">the index of data</param> + /// <param name="value">the data will be update</param> + public bool UpdateData(int serieIndex, int dataIndex, double value) + { + var serie = GetSerie(serieIndex); + if (serie != null) + { + serie.UpdateYData(dataIndex, value); + RefreshPainter(serie); + return true; + } + return false; + } + + /// <summary> + /// 更新指定系列指定索引的数据项的多维数据。 + /// </summary> + /// <param name="serieName"></param> + /// <param name="dataIndex"></param> + /// <param name="multidimensionalData">一个数据项的多维数据列表,而不是多个数据项的数据</param> + public bool UpdateData(string serieName, int dataIndex, List<double> multidimensionalData) + { + var serie = GetSerie(serieName); + if (serie != null) + { + serie.UpdateData(dataIndex, multidimensionalData); + RefreshPainter(serie); + return true; + } + return false; + } + + /// <summary> + /// 更新指定系列指定索引的数据项的多维数据。 + /// </summary> + /// <param name="serieIndex"></param> + /// <param name="dataIndex"></param> + /// <param name="multidimensionalData">一个数据项的多维数据列表,而不是多个数据项的数据</param> + public bool UpdateData(int serieIndex, int dataIndex, List<double> multidimensionalData) + { + var serie = GetSerie(serieIndex); + if (serie != null) + { + serie.UpdateData(dataIndex, multidimensionalData); + RefreshPainter(serie); + return true; + } + return false; + } + + /// <summary> + /// 更新指定系列指定索引指定维数的数据。维数从0开始。 + /// </summary> + /// <param name="serieName"></param> + /// <param name="dataIndex"></param> + /// <param name="dimension">指定维数,从0开始</param> + /// <param name="value"></param> + public bool UpdateData(string serieName, int dataIndex, int dimension, double value) + { + var serie = GetSerie(serieName); + if (serie != null) + { + serie.UpdateData(dataIndex, dimension, value); + RefreshPainter(serie); + return true; + } + return false; + } + + /// <summary> + /// 更新指定系列指定索引指定维数的数据。维数从0开始。 + /// </summary> + /// <param name="serieIndex"></param> + /// <param name="dataIndex"></param> + /// <param name="dimension">指定维数,从0开始</param> + /// <param name="value"></param> + public bool UpdateData(int serieIndex, int dataIndex, int dimension, double value) + { + var serie = GetSerie(serieIndex); + if (serie != null) + { + serie.UpdateData(dataIndex, dimension, value); + RefreshPainter(serie); + return true; + } + return false; + } + + /// <summary> + /// Update serie data name. + /// |更新指定系列中的指定索引数据名称。 + /// </summary> + /// <param name="serieName"></param> + /// <param name="dataIndex"></param> + /// <param name="dataName"></param> + public bool UpdateDataName(string serieName, int dataIndex, string dataName) + { + var serie = GetSerie(serieName); + if (serie != null) + { + serie.UpdateDataName(dataIndex, dataName); + return true; + } + return false; + } + + /// <summary> + /// Update serie data name. + /// |更新指定系列中的指定索引数据名称。 + /// </summary> + /// <param name="serieIndex"></param> + /// <param name="dataName"></param> + /// <param name="dataIndex"></param> + public bool UpdateDataName(int serieIndex, int dataIndex, string dataName) + { + var serie = GetSerie(serieIndex); + if (serie != null) + { + serie.UpdateDataName(dataIndex, dataName); + return true; + } + return false; + } + + public double GetData(string serieName, int dataIndex, int dimension = 1) + { + var serie = GetSerie(serieName); + if (serie != null) + { + return serie.GetData(dataIndex, dimension); + } + return 0; + } + + public double GetData(int serieIndex, int dataIndex, int dimension = 1) + { + var serie = GetSerie(serieIndex); + if (serie != null) + { + return serie.GetData(dataIndex, dimension); + } + return 0; + } + + public int GetAllSerieDataCount() + { + var total = 0; + foreach (var serie in m_Series) + total += serie.dataCount; + return total; + } + + /// <summary> + /// Whether to show serie. + /// |设置指定系列是否显示。 + /// </summary> + /// <param name="serieName">the name of serie</param> + /// <param name="active">Active or not</param> + public void SetSerieActive(string serieName, bool active) + { + var serie = GetSerie(serieName); + if (serie != null) + SetSerieActive(serie, active); + } + + /// <summary> + /// Whether to show serie. + /// |设置指定系列是否显示。 + /// </summary> + /// <param name="serieIndex">the index of serie</param> + /// <param name="active">Active or not</param> + public void SetSerieActive(int serieIndex, bool active) + { + var serie = GetSerie(serieIndex); + if (serie != null) + SetSerieActive(serie, active); + } + + public void SetSerieActive(Serie serie, bool active) + { + serie.show = active; + serie.AnimationReset(); + if (active) serie.AnimationFadeIn(); + UpdateLegendColor(serie.serieName, active); + } + + /// <summary> + /// Add a category data to xAxis. + /// |添加一个类目数据到指定的x轴。 + /// </summary> + /// <param name="category">the category data</param> + /// <param name="xAxisIndex">which xAxis should category add to</param> + public void AddXAxisData(string category, int xAxisIndex = 0) + { + var xAxis = GetChartComponent<XAxis>(xAxisIndex); + if (xAxis != null) + { + xAxis.AddData(category); + } + } + + /// <summary> + /// Update category data. + /// |更新X轴类目数据。 + /// </summary> + /// <param name="index">the index of category data</param> + /// <param name="category"></param> + /// <param name="xAxisIndex">which xAxis index to update to</param> + public void UpdateXAxisData(int index, string category, int xAxisIndex = 0) + { + var xAxis = GetChartComponent<XAxis>(xAxisIndex); + if (xAxis != null) + { + xAxis.UpdateData(index, category); + } + } + + /// <summary> + /// Add an icon to xAxis. + /// |添加一个图标到指定的x轴。 + /// </summary> + /// <param name="icon"></param> + /// <param name="xAxisIndex"></param> + public void AddXAxisIcon(Sprite icon, int xAxisIndex = 0) + { + var xAxis = GetChartComponent<XAxis>(xAxisIndex); + if (xAxis != null) + { + xAxis.AddIcon(icon); + } + } + + /// <summary> + /// Update xAxis icon. + /// |更新X轴图标。 + /// </summary> + /// <param name="index"></param> + /// <param name="icon"></param> + /// <param name="xAxisIndex"></param> + public void UdpateXAxisIcon(int index, Sprite icon, int xAxisIndex = 0) + { + var xAxis = GetChartComponent<XAxis>(xAxisIndex); + if (xAxis != null) + { + xAxis.UpdateIcon(index, icon); + } + } + + /// <summary> + /// Add a category data to yAxis. + /// |添加一个类目数据到指定的y轴。 + /// </summary> + /// <param name="category">the category data</param> + /// <param name="yAxisIndex">which yAxis should category add to</param> + public void AddYAxisData(string category, int yAxisIndex = 0) + { + var yAxis = GetChartComponent<YAxis>(yAxisIndex); + if (yAxis != null) + { + yAxis.AddData(category); + } + } + + /// <summary> + /// Update category data. + /// |更新Y轴类目数据。 + /// </summary> + /// <param name="index">the index of category data</param> + /// <param name="category"></param> + /// <param name="yAxisIndex">which yAxis index to update to</param> + public void UpdateYAxisData(int index, string category, int yAxisIndex = 0) + { + var yAxis = GetChartComponent<YAxis>(yAxisIndex); + if (yAxis != null) + { + yAxis.UpdateData(index, category); + } + } + + /// <summary> + /// Add an icon to yAxis. + /// |添加一个图标到指定的y轴。 + /// </summary> + /// <param name="icon"></param> + /// <param name="yAxisIndex"></param> + public void AddYAxisIcon(Sprite icon, int yAxisIndex = 0) + { + var yAxis = GetChartComponent<YAxis>(yAxisIndex); + if (yAxis != null) + { + yAxis.AddIcon(icon); + } + } + + /// <summary> + /// 更新Y轴图标。 + /// </summary> + /// <param name="index"></param> + /// <param name="icon"></param> + /// <param name="yAxisIndex"></param> + public void UpdateYAxisIcon(int index, Sprite icon, int yAxisIndex = 0) + { + var yAxis = GetChartComponent<YAxis>(yAxisIndex); + if (yAxis != null) + { + yAxis.UpdateIcon(index, icon); + } + } + + public float GetSerieBarGap<T>() where T : Serie + { + float gap = 0f; + for (int i = 0; i < m_Series.Count; i++) + { + var serie = m_Series[i]; + if (serie is T) + { + if (serie.barGap != 0) + { + gap = serie.barGap; + } + } + } + return gap; + } + + public double GetSerieSameStackTotalValue<T>(string stack, int dataIndex) where T : Serie + { + if (string.IsNullOrEmpty(stack)) return 0; + double total = 0; + foreach (var serie in m_Series) + { + if (serie is T) + { + if (stack.Equals(serie.stack)) + { + total += serie.data[dataIndex].data[1]; + } + } + } + return total; + } + + public int GetSerieBarRealCount<T>() where T : Serie + { + var count = 0; + barStackSet.Clear(); + for (int i = 0; i < m_Series.Count; i++) + { + var serie = m_Series[i]; + if (!serie.show) continue; + if (serie is T) + { + if (!string.IsNullOrEmpty(serie.stack)) + { + if (barStackSet.Contains(serie.stack)) continue; + barStackSet.Add(serie.stack); + } + count++; + + } + } + return count; + } + + private HashSet<string> barStackSet = new HashSet<string>(); + public float GetSerieTotalWidth<T>(float categoryWidth, float gap, int realBarCount) where T : Serie + { + float total = 0; + float lastGap = 0; + barStackSet.Clear(); + for (int i = 0; i < m_Series.Count; i++) + { + var serie = m_Series[i]; + if (!serie.show) continue; + if (serie is T) + { + if (!string.IsNullOrEmpty(serie.stack)) + { + if (barStackSet.Contains(serie.stack)) continue; + barStackSet.Add(serie.stack); + } + var width = GetStackBarWidth<T>(categoryWidth, serie, realBarCount); + if (gap == -1) + { + if (width > total) total = width; + } + else + { + lastGap = ChartHelper.GetActualValue(gap, width); + total += width; + total += lastGap; + } + } + } + if (total > 0 && gap != -1) total -= lastGap; + return total; + } + + public float GetSerieTotalGap<T>(float categoryWidth, float gap, int index) where T : Serie + { + if (index <= 0) return 0; + var total = 0f; + var count = 0; + var totalRealBarCount = GetSerieBarRealCount<T>(); + barStackSet.Clear(); + for (int i = 0; i < m_Series.Count; i++) + { + var serie = m_Series[i]; + if (!serie.show) continue; + if (serie is T) + { + if (!string.IsNullOrEmpty(serie.stack)) + { + if (barStackSet.Contains(serie.stack)) continue; + barStackSet.Add(serie.stack); + } + var width = GetStackBarWidth<T>(categoryWidth, serie, totalRealBarCount); + if (gap == -1) + { + if (width > total) total = width; + } + else + { + total += width + ChartHelper.GetActualValue(gap, width); + } + if (count + 1 >= index) + break; + else + count++; + } + } + return total; + } + + private float GetStackBarWidth<T>(float categoryWidth, Serie now, int realBarCount) where T : Serie + { + if (string.IsNullOrEmpty(now.stack)) return now.GetBarWidth(categoryWidth, realBarCount); + float barWidth = 0; + for (int i = 0; i < m_Series.Count; i++) + { + var serie = m_Series[i]; + if ((serie is T) && + serie.show && now.stack.Equals(serie.stack)) + { + if (serie.barWidth > barWidth) barWidth = serie.barWidth; + } + } + if (barWidth == 0) + { + var width = ChartHelper.GetActualValue(0.6f, categoryWidth); + if (realBarCount == 0) + return width < 1 ? categoryWidth : width; + else + return width / realBarCount; + } + else + return ChartHelper.GetActualValue(barWidth, categoryWidth); + } + + private List<string> tempList = new List<string>(); + public int GetSerieIndexIfStack<T>(Serie currSerie) where T : Serie + { + tempList.Clear(); + int index = 0; + for (int i = 0; i < m_Series.Count; i++) + { + var serie = m_Series[i]; + if (!(serie is T)) continue; + if (string.IsNullOrEmpty(serie.stack)) + { + if (serie.index == currSerie.index) return index; + tempList.Add(string.Empty); + index++; + } + else + { + if (!tempList.Contains(serie.stack)) + { + if (serie.index == currSerie.index) return index; + tempList.Add(serie.stack); + index++; + } + else + { + if (serie.index == currSerie.index) return tempList.IndexOf(serie.stack); + } + } + } + return 0; + } + + internal void InitSerieHandlers() + { + m_SerieHandlers.Clear(); + for (int i = 0; i < m_Series.Count; i++) + { + var serie = m_Series[i]; + serie.index = i; + CreateSerieHandler(serie); + } + } + + private void CreateSerieHandler(Serie serie) + { + if (serie == null) + throw new ArgumentNullException("serie is null"); + + if (!serie.GetType().IsDefined(typeof(SerieHandlerAttribute), false)) + { + Debug.LogError("Serie no Handler:" + serie.GetType()); + return; + } + var attribute = serie.GetType().GetAttribute<SerieHandlerAttribute>(); + var handler = (SerieHandler) Activator.CreateInstance(attribute.handler); + handler.attribute = attribute; + handler.chart = this; + handler.defaultDimension = 1; + handler.SetSerie(serie); + serie.handler = handler; + m_SerieHandlers.Add(handler); + } + + private Serie InsertSerie(int index, Type type, string serieName, bool show = true, bool addToHead = false) + { + CheckAddRequireChartComponent(type); + var serie = Activator.CreateInstance(type) as Serie; + serie.show = show; + serie.serieName = serieName; + serie.serieType = type.Name; + serie.index = m_Series.Count; + + if (type == typeof(Scatter)) + { + serie.symbol.show = true; + serie.symbol.type = SymbolType.Circle; + } + else if (type == typeof(Line)) + { + serie.symbol.show = true; + serie.symbol.type = SymbolType.EmptyCircle; + } + else + { + serie.symbol.show = false; + } + InsertSerie(serie, index, addToHead); + return serie; + } + + private void ResetSeriesIndex() + { +#if UNITY_EDITOR && UNITY_2019_1_OR_NEWER + UnityEditor.EditorUtility.SetDirty(this); +#endif + for (int i = 0; i < m_Series.Count; i++) + { + m_Series[i].index = i; + } + } + + private void AddSerieAfterDeserialize(Serie serie) + { + serie.OnAfterDeserialize(); + m_Series.Add(serie); + } + + public string GenerateDefaultSerieName() + { + return "serie" + m_Series.Count; + } + + public bool IsSerieName(string name) + { + if (string.IsNullOrEmpty(name)) + return false; + foreach (var serie in m_Series) + { + if (name.Equals(serie.serieName)) + return true; + } + return false; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Serie.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Serie.cs.meta new file mode 100644 index 0000000..841dd30 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.Serie.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 70fab7deef662441eaaee4d6ddd43295 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.cs new file mode 100644 index 0000000..50b44db --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.cs @@ -0,0 +1,698 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [AddComponentMenu("XCharts/EmptyChart", 10)] + [ExecuteInEditMode] + [RequireComponent(typeof(RectTransform))] + [DisallowMultipleComponent] + public partial class BaseChart : BaseGraph, ISerializationCallbackReceiver + { + [SerializeField] protected string m_ChartName; + [SerializeField] protected ThemeStyle m_Theme = new ThemeStyle(); + [SerializeField] protected Settings m_Settings; + +#pragma warning disable 0414 + [SerializeField][ListForComponent(typeof(AngleAxis))] private List<AngleAxis> m_AngleAxes = new List<AngleAxis>(); + [SerializeField][ListForComponent(typeof(Background))] private List<Background> m_Backgrounds = new List<Background>(); + [SerializeField][ListForComponent(typeof(DataZoom))] private List<DataZoom> m_DataZooms = new List<DataZoom>(); + [SerializeField][ListForComponent(typeof(GridCoord))] private List<GridCoord> m_Grids = new List<GridCoord>(); + [SerializeField][ListForComponent(typeof(Legend))] private List<Legend> m_Legends = new List<Legend>(); + [SerializeField][ListForComponent(typeof(MarkLine))] private List<MarkLine> m_MarkLines = new List<MarkLine>(); + [SerializeField][ListForComponent(typeof(MarkArea))] private List<MarkArea> m_MarkAreas = new List<MarkArea>(); + [SerializeField][ListForComponent(typeof(PolarCoord))] private List<PolarCoord> m_Polars = new List<PolarCoord>(); + [SerializeField][ListForComponent(typeof(RadarCoord))] private List<RadarCoord> m_Radars = new List<RadarCoord>(); + [SerializeField][ListForComponent(typeof(RadiusAxis))] private List<RadiusAxis> m_RadiusAxes = new List<RadiusAxis>(); + [SerializeField][ListForComponent(typeof(Title))] private List<Title> m_Titles = new List<Title>(); + [SerializeField][ListForComponent(typeof(Tooltip))] private List<Tooltip> m_Tooltips = new List<Tooltip>(); + [SerializeField][ListForComponent(typeof(VisualMap))] private List<VisualMap> m_VisualMaps = new List<VisualMap>(); + [SerializeField][ListForComponent(typeof(XAxis))] private List<XAxis> m_XAxes = new List<XAxis>(); + [SerializeField][ListForComponent(typeof(YAxis))] private List<YAxis> m_YAxes = new List<YAxis>(); + [SerializeField][ListForComponent(typeof(SingleAxis))] private List<SingleAxis> m_SingleAxes = new List<SingleAxis>(); + [SerializeField][ListForComponent(typeof(ParallelCoord))] private List<ParallelCoord> m_Parallels = new List<ParallelCoord>(); + [SerializeField][ListForComponent(typeof(ParallelAxis))] private List<ParallelAxis> m_ParallelAxes = new List<ParallelAxis>(); + [SerializeField][ListForComponent(typeof(Comment))] private List<Comment> m_Comments = new List<Comment>(); + + [SerializeField][ListForSerie(typeof(Bar))] private List<Bar> m_SerieBars = new List<Bar>(); + [SerializeField][ListForSerie(typeof(Candlestick))] private List<Candlestick> m_SerieCandlesticks = new List<Candlestick>(); + [SerializeField][ListForSerie(typeof(EffectScatter))] private List<EffectScatter> m_SerieEffectScatters = new List<EffectScatter>(); + [SerializeField][ListForSerie(typeof(Heatmap))] private List<Heatmap> m_SerieHeatmaps = new List<Heatmap>(); + [SerializeField][ListForSerie(typeof(Line))] private List<Line> m_SerieLines = new List<Line>(); + [SerializeField][ListForSerie(typeof(Pie))] private List<Pie> m_SeriePies = new List<Pie>(); + [SerializeField][ListForSerie(typeof(Radar))] private List<Radar> m_SerieRadars = new List<Radar>(); + [SerializeField][ListForSerie(typeof(Ring))] private List<Ring> m_SerieRings = new List<Ring>(); + [SerializeField][ListForSerie(typeof(Scatter))] private List<Scatter> m_SerieScatters = new List<Scatter>(); + [SerializeField][ListForSerie(typeof(Parallel))] private List<Parallel> m_SerieParallels = new List<Parallel>(); + [SerializeField][ListForSerie(typeof(SimplifiedLine))] private List<SimplifiedLine> m_SerieSimplifiedLines = new List<SimplifiedLine>(); + [SerializeField][ListForSerie(typeof(SimplifiedBar))] private List<SimplifiedBar> m_SerieSimplifiedBars = new List<SimplifiedBar>(); + [SerializeField][ListForSerie(typeof(SimplifiedCandlestick))] private List<SimplifiedCandlestick> m_SerieSimplifiedCandlesticks = new List<SimplifiedCandlestick>(); +#pragma warning restore 0414 + protected List<Serie> m_Series = new List<Serie>(); + protected List<MainComponent> m_Components = new List<MainComponent>(); + + protected Dictionary<Type, FieldInfo> m_TypeListForComponent = new Dictionary<Type, FieldInfo>(); + protected Dictionary<Type, FieldInfo> m_TypeListForSerie = new Dictionary<Type, FieldInfo>(); + + protected Dictionary<Type, List<MainComponent>> m_ComponentMaps = new Dictionary<Type, List<MainComponent>>(); + + public Dictionary<Type, FieldInfo> typeListForComponent { get { return m_TypeListForComponent; } } + public Dictionary<Type, FieldInfo> typeListForSerie { get { return m_TypeListForSerie; } } + public List<MainComponent> components { get { return m_Components; } } + + public List<Serie> series { get { return m_Series; } } + + protected float m_ChartWidth; + protected float m_ChartHeight; + protected float m_ChartX; + protected float m_ChartY; + protected Vector3 m_ChartPosition = Vector3.zero; + protected Vector2 m_ChartMinAnchor; + protected Vector2 m_ChartMaxAnchor; + protected Vector2 m_ChartPivot; + protected Vector2 m_ChartSizeDelta; + + protected Rect m_ChartRect = new Rect(0, 0, 0, 0); + protected Action m_OnInit; + protected Action m_OnUpdate; + protected Action<VertexHelper> m_OnDrawBase; + protected Action<VertexHelper> m_OnDrawTop; + protected Action<VertexHelper, Serie> m_OnDrawSerieBefore; + protected Action<VertexHelper, Serie> m_OnDrawSerieAfter; + protected Action<PointerEventData, int, int> m_OnPointerClickPie; + protected Action<PointerEventData, int> m_OnPointerClickBar; + protected Action<Axis, double> m_OnAxisPointerValueChanged; + protected Action<Legend, int, string, bool> m_OnLegendClick; + protected Action<Legend, int, string> m_OnLegendEnter; + protected Action<Legend, int, string> m_OnLegendExit; + + protected CustomDrawGaugePointerFunction m_CustomDrawGaugePointerFunction; + + internal bool m_CheckAnimation = false; + internal protected List<string> m_LegendRealShowName = new List<string>(); + protected List<Painter> m_PainterList = new List<Painter>(); + internal Painter m_PainterTop; + internal int m_BasePainterVertCount; + internal int m_TopPainterVertCount; + + private ThemeType m_CheckTheme = 0; + protected List<MainComponentHandler> m_ComponentHandlers = new List<MainComponentHandler>(); + protected List<SerieHandler> m_SerieHandlers = new List<SerieHandler>(); + + protected virtual void DefaultChart() { } + + protected override void InitComponent() + { + base.InitComponent(); + SeriesHelper.UpdateSerieNameList(this, ref m_LegendRealShowName); + foreach (var handler in m_ComponentHandlers) + handler.InitComponent(); + foreach (var handler in m_SerieHandlers) + handler.InitComponent(); + m_DebugInfo.Init(this); + } + + protected override void Awake() + { + if (m_Settings == null) + m_Settings = Settings.DefaultSettings; + CheckTheme(); + base.Awake(); + InitComponentHandlers(); + InitSerieHandlers(); + AnimationReset(); + AnimationFadeIn(); + XChartsMgr.AddChart(this); + } + + protected void OnInit() + { + RemoveAllChartComponent(); + OnBeforeSerialize(); + AddChartComponentWhenNoExist<Title>(); + AddChartComponentWhenNoExist<Tooltip>(); + + GetChartComponent<Title>().text = GetType().Name; + + if (m_Theme.sharedTheme != null) + m_Theme.sharedTheme.CopyTheme(ThemeType.Default); + else + m_Theme.sharedTheme = XCThemeMgr.GetTheme(ThemeType.Default); + + var sizeDelta = rectTransform.sizeDelta; + if (sizeDelta.x < 580 && sizeDelta.y < 300) + { + rectTransform.sizeDelta = new Vector2(580, 300); + } + ChartHelper.HideAllObject(transform); + if (m_OnInit != null) + m_OnInit(); + } + +#if UNITY_EDITOR + protected override void Reset() + { + base.Reset(); + OnInit(); + DefaultChart(); + Awake(); + } +#endif + + protected override void Start() + { + RefreshChart(); + } + + protected override void Update() + { + CheckTheme(); + base.Update(); + CheckPainter(); + CheckRefreshChart(); + Internal_CheckAnimation(); + foreach (var handler in m_SerieHandlers) handler.Update(); + foreach (var handler in m_ComponentHandlers) handler.Update(); + m_DebugInfo.Update(); + if (m_OnUpdate != null) + m_OnUpdate(); + } + + public Painter GetPainter(int index) + { + if (index >= 0 && index < m_PainterList.Count) + { + return m_PainterList[index]; + } + return null; + } + + public void RefreshBasePainter() + { + m_Painter.Refresh(); + } + public void RefreshTopPainter() + { + m_PainterTop.Refresh(); + } + + public void RefreshPainter(int index) + { + var painter = GetPainter(index); + RefreshPainter(painter); + } + + public void RefreshPainter(Serie serie) + { + if (serie == null) return; + RefreshPainter(GetPainterIndexBySerie(serie)); + } + + internal override void RefreshPainter(Painter painter) + { + base.RefreshPainter(painter); + if (painter != null && painter.type == Painter.Type.Serie) + { + m_PainterTop.Refresh(); + } + } + + public void SetPainterActive(int index, bool flag) + { + var painter = GetPainter(index); + if (painter == null) return; + painter.SetActive(flag, m_DebugInfo.showAllChartObject); + } + + protected virtual void CheckTheme() + { + if (m_Theme.sharedTheme == null) + { + m_Theme.sharedTheme = XCThemeMgr.GetTheme(ThemeType.Default); + } + if (m_Theme.sharedTheme != null && m_CheckTheme != m_Theme.themeType) + { + m_CheckTheme = m_Theme.themeType; + m_Theme.sharedTheme.CopyTheme(m_CheckTheme); +#if UNITY_EDITOR + UnityEditor.EditorUtility.SetDirty(this); +#endif + SetAllComponentDirty(); + OnThemeChanged(); + } + } + protected override void CheckComponent() + { + base.CheckComponent(); + if (m_Theme.anyDirty) + { + if (m_Theme.componentDirty) + { + SetAllComponentDirty(); + } + if (m_Theme.vertsDirty) RefreshChart(); + m_Theme.ClearDirty(); + } + foreach (var com in m_Components) + CheckComponentDirty(com); + } + + protected void CheckComponentDirty(MainComponent component) + { + if (component == null) return; + if (component.anyDirty) + { + if (component.componentDirty && component.refreshComponent != null) + { + component.refreshComponent.Invoke(); + } + if (component.vertsDirty) + { + if (component.painter != null) + { + RefreshPainter(component.painter); + } + } + component.ClearDirty(); + } + } + + protected override void SetAllComponentDirty() + { + base.SetAllComponentDirty(); + m_Theme.SetAllDirty(); + foreach (var com in m_Components) com.SetAllDirty(); + m_RefreshChart = true; + } + + protected override void OnDestroy() + { + for (int i = transform.childCount - 1; i >= 0; i--) + { + DestroyImmediate(transform.GetChild(i).gameObject); + } + } + + protected virtual void CheckPainter() + { + for (int i = 0; i < m_Series.Count; i++) + { + var serie = m_Series[i]; + serie.index = i; + SetPainterActive(i, true); + } + } + + protected override void InitPainter() + { + base.InitPainter(); + if (settings == null) return; + m_Painter.material = settings.basePainterMaterial; + m_PainterList.Clear(); + var sizeDelta = new Vector2(m_GraphWidth, m_GraphHeight); + for (int i = 0; i < settings.maxPainter; i++) + { + var index = settings.reversePainter ? settings.maxPainter - 1 - i : i; + var painter = ChartHelper.AddPainterObject("painter_" + index, transform, m_GraphMinAnchor, + m_GraphMaxAnchor, m_GraphPivot, sizeDelta, chartHideFlags, 2 + index); + painter.index = m_PainterList.Count; + painter.type = Painter.Type.Serie; + painter.onPopulateMesh = OnDrawPainterSerie; + painter.SetActive(false, m_DebugInfo.showAllChartObject); + painter.material = settings.seriePainterMaterial; + painter.transform.SetSiblingIndex(index + 1); + m_PainterList.Add(painter); + } + m_PainterTop = ChartHelper.AddPainterObject("painter_t", transform, m_GraphMinAnchor, + m_GraphMaxAnchor, m_GraphPivot, sizeDelta, chartHideFlags, 2 + settings.maxPainter); + m_PainterTop.type = Painter.Type.Top; + m_PainterTop.onPopulateMesh = OnDrawPainterTop; + m_PainterTop.SetActive(true, m_DebugInfo.showAllChartObject); + m_PainterTop.material = settings.topPainterMaterial; + m_PainterTop.transform.SetSiblingIndex(settings.maxPainter + 1); + } + + internal void InitComponentHandlers() + { + m_ComponentHandlers.Clear(); + m_Components.Sort(); + m_ComponentMaps.Clear(); + foreach (var component in m_Components) + { + var type = component.GetType(); + List<MainComponent> list; + if (!m_ComponentMaps.TryGetValue(type, out list)) + { + list = new List<MainComponent>(); + m_ComponentMaps[type] = list; + } + component.index = list.Count; + list.Add(component); + CreateComponentHandler(component); + } + } + + protected override void CheckRefreshChart() + { + if (m_Painter == null) return; + if (m_RefreshChart) + { + CheckRefreshPainter(); + m_RefreshChart = false; + } + } + + protected override void CheckRefreshPainter() + { + if (m_Painter == null) return; + m_Painter.CheckRefresh(); + foreach (var painter in m_PainterList) painter.CheckRefresh(); + if (m_PainterTop != null) m_PainterTop.CheckRefresh(); + } + + public void Internal_CheckAnimation() + { + if (!m_CheckAnimation) + { + m_CheckAnimation = true; + AnimationFadeIn(); + } + } + + protected override void OnSizeChanged() + { + base.OnSizeChanged(); + m_ChartWidth = m_GraphWidth; + m_ChartHeight = m_GraphHeight; + m_ChartX = m_GraphX; + m_ChartY = m_GraphY; + m_ChartPosition = m_GraphPosition; + m_ChartMinAnchor = m_GraphMinAnchor; + m_ChartMaxAnchor = m_GraphMaxAnchor; + m_ChartPivot = m_GraphPivot; + m_ChartSizeDelta = m_GraphSizeDelta; + m_ChartRect = m_GraphRect; + SetAllComponentDirty(); + OnCoordinateChanged(); + RefreshChart(); + } + + internal virtual void OnSerieDataUpdate(int serieIndex) + { + foreach (var handler in m_ComponentHandlers) handler.OnSerieDataUpdate(serieIndex); + } + + internal virtual void OnCoordinateChanged() + { + foreach (var component in m_Components) + { + if (component is Axis) + component.SetAllDirty(); + if (component is IUpdateRuntimeData) + (component as IUpdateRuntimeData).UpdateRuntimeData(m_ChartX, m_ChartY, m_ChartWidth, m_ChartHeight); + } + } + + protected override void OnLocalPositionChanged() + { + Background background; + if (TryGetChartComponent<Background>(out background)) + background.SetAllDirty(); + } + + protected virtual void OnThemeChanged() { } + + public virtual void OnDataZoomRangeChanged(DataZoom dataZoom) + { + foreach (var index in dataZoom.xAxisIndexs) + { + var axis = GetChartComponent<XAxis>(index); + if (axis != null && axis.show) axis.SetAllDirty(); + } + foreach (var index in dataZoom.yAxisIndexs) + { + var axis = GetChartComponent<YAxis>(index); + if (axis != null && axis.show) axis.SetAllDirty(); + } + } + + public override void OnPointerClick(PointerEventData eventData) + { + m_DebugInfo.clickChartCount++; + base.OnPointerClick(eventData); + foreach (var handler in m_SerieHandlers) handler.OnPointerClick(eventData); + foreach (var handler in m_ComponentHandlers) handler.OnPointerClick(eventData); + } + + public override void OnPointerDown(PointerEventData eventData) + { + base.OnPointerDown(eventData); + foreach (var handler in m_SerieHandlers) handler.OnPointerDown(eventData); + foreach (var handler in m_ComponentHandlers) handler.OnPointerDown(eventData); + } + + public override void OnPointerUp(PointerEventData eventData) + { + base.OnPointerUp(eventData); + foreach (var handler in m_SerieHandlers) handler.OnPointerUp(eventData); + foreach (var handler in m_ComponentHandlers) handler.OnPointerUp(eventData); + } + + public override void OnPointerEnter(PointerEventData eventData) + { + base.OnPointerEnter(eventData); + foreach (var handler in m_SerieHandlers) handler.OnPointerEnter(eventData); + foreach (var handler in m_ComponentHandlers) handler.OnPointerEnter(eventData); + } + + public override void OnPointerExit(PointerEventData eventData) + { + base.OnPointerExit(eventData); + foreach (var handler in m_SerieHandlers) handler.OnPointerExit(eventData); + foreach (var handler in m_ComponentHandlers) handler.OnPointerExit(eventData); + } + + public override void OnBeginDrag(PointerEventData eventData) + { + base.OnBeginDrag(eventData); + foreach (var handler in m_SerieHandlers) handler.OnBeginDrag(eventData); + foreach (var handler in m_ComponentHandlers) handler.OnBeginDrag(eventData); + } + + public override void OnDrag(PointerEventData eventData) + { + base.OnDrag(eventData); + foreach (var handler in m_SerieHandlers) handler.OnDrag(eventData); + foreach (var handler in m_ComponentHandlers) handler.OnDrag(eventData); + } + + public override void OnEndDrag(PointerEventData eventData) + { + base.OnEndDrag(eventData); + foreach (var handler in m_SerieHandlers) handler.OnEndDrag(eventData); + foreach (var handler in m_ComponentHandlers) handler.OnEndDrag(eventData); + } + + public override void OnScroll(PointerEventData eventData) + { + base.OnScroll(eventData); + foreach (var handler in m_SerieHandlers) handler.OnScroll(eventData); + foreach (var handler in m_ComponentHandlers) handler.OnScroll(eventData); + } + + public virtual void OnLegendButtonClick(int index, string legendName, bool show) + { + foreach (var handler in m_SerieHandlers) + handler.OnLegendButtonClick(index, legendName, show); + } + + public virtual void OnLegendButtonEnter(int index, string legendName) + { + foreach (var handler in m_SerieHandlers) + handler.OnLegendButtonEnter(index, legendName); + } + + public virtual void OnLegendButtonExit(int index, string legendName) + { + foreach (var handler in m_SerieHandlers) + handler.OnLegendButtonExit(index, legendName); + } + + protected override void OnDrawPainterBase(VertexHelper vh, Painter painter) + { + vh.Clear(); + DrawBackground(vh); + DrawPainterBase(vh); + foreach (var handler in m_ComponentHandlers) handler.DrawBase(vh); + foreach (var handler in m_SerieHandlers) handler.DrawBase(vh); + if (m_OnDrawBase != null) + { + m_OnDrawBase(vh); + } + m_BasePainterVertCount = vh.currentVertCount; + } + + protected virtual void OnDrawPainterSerie(VertexHelper vh, Painter painter) + { + vh.Clear(); + var maxPainter = settings.maxPainter; + var maxSeries = m_Series.Count; + var rate = Mathf.CeilToInt(maxSeries * 1.0f / maxPainter); + m_PainterTop.Refresh(); + m_DebugInfo.refreshCount++; + for (int i = painter.index * rate; i < (painter.index + 1) * rate && i < maxSeries; i++) + { + var serie = m_Series[i]; + serie.context.colorIndex = GetLegendRealShowNameIndex(serie.legendName); + serie.context.dataPoints.Clear(); + serie.context.dataIgnores.Clear(); + serie.animation.context.isAllItemAnimationEnd = true; + if (!serie.context.pointerEnter) + serie.ResetInteract(); + + if (m_OnDrawSerieBefore != null) + { + m_OnDrawSerieBefore.Invoke(vh, serie); + } + DrawPainterSerie(vh, serie); + if (i >= 0 && i < m_SerieHandlers.Count) + { + var handler = m_SerieHandlers[i]; + handler.DrawSerie(vh); + handler.RefreshLabelNextFrame(); + } + if (m_OnDrawSerieAfter != null) + { + m_OnDrawSerieAfter(vh, serie); + } + serie.context.vertCount = vh.currentVertCount; + } + } + + protected virtual void OnDrawPainterTop(VertexHelper vh, Painter painter) + { + vh.Clear(); + DrawPainterTop(vh); + foreach (var draw in m_ComponentHandlers) draw.DrawTop(vh); + if (m_OnDrawTop != null) + { + m_OnDrawTop(vh); + } + m_TopPainterVertCount = vh.currentVertCount; + } + + protected virtual void DrawPainterSerie(VertexHelper vh, Serie serie) { } + + protected virtual void DrawPainterTop(VertexHelper vh) + { + foreach (var handler in m_SerieHandlers) + handler.DrawTop(vh); + } + + protected virtual void DrawBackground(VertexHelper vh) + { + var background = GetChartComponent<Background>(); + if (background != null && background.show) + return; + Vector3 p1 = new Vector3(chartX, chartY + chartHeight); + Vector3 p2 = new Vector3(chartX + chartWidth, chartY + chartHeight); + Vector3 p3 = new Vector3(chartX + chartWidth, chartY); + Vector3 p4 = new Vector3(chartX, chartY); + UGL.DrawQuadrilateral(vh, p1, p2, p3, p4, theme.backgroundColor); + } + + protected int GetPainterIndexBySerie(Serie serie) + { + var maxPainter = settings.maxPainter; + var maxSeries = m_Series.Count; + if (maxPainter >= maxSeries) return serie.index; + else + { + var rate = Mathf.CeilToInt(maxSeries * 1.0f / maxPainter); + return serie.index / rate; + } + } + + private void InitListForFieldInfos() + { + if (m_TypeListForSerie.Count != 0) return; + m_TypeListForComponent.Clear(); + m_TypeListForSerie.Clear(); + var fileds1 = GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance); + var fileds2 = GetType().BaseType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance); + var list = ListPool<FieldInfo>.Get(); + list.AddRange(fileds1); + list.AddRange(fileds2); + foreach (var field in list) + { + var attribute1 = field.GetAttribute<ListForSerie>(false); + if (attribute1 != null) + m_TypeListForSerie.Add(attribute1.type, field); + + var attribute2 = field.GetAttribute<ListForComponent>(false); + if (attribute2 != null) + m_TypeListForComponent.Add(attribute2.type, field); + } + ListPool<FieldInfo>.Release(list); + } + + public void OnBeforeSerialize() + { +#if UNITY_EDITOR && UNITY_2019_1_OR_NEWER + if (!UnityEditor.EditorUtility.IsDirty(this)) + return; + UnityEditor.EditorUtility.ClearDirty(this); +#endif + InitListForFieldInfos(); + foreach (var kv in m_TypeListForSerie) + { + ReflectionUtil.InvokeListClear(this, kv.Value); + } + foreach (var kv in m_TypeListForComponent) + { + ReflectionUtil.InvokeListClear(this, kv.Value); + } + foreach (var component in m_Components) + { + FieldInfo field; + if (m_TypeListForComponent.TryGetValue(component.GetType(), out field)) + ReflectionUtil.InvokeListAdd(this, field, component); + else + Debug.LogError("No ListForComponent:" + component.GetType()); + } + foreach (var serie in m_Series) + { + FieldInfo field; + serie.OnBeforeSerialize(); + if (m_TypeListForSerie.TryGetValue(serie.GetType(), out field)) + ReflectionUtil.InvokeListAdd(this, field, serie); + else + Debug.LogError("No ListForSerie:" + serie.GetType()); + } + } + + public void OnAfterDeserialize() + { + InitListForFieldInfos(); + m_Components.Clear(); + m_Series.Clear(); + foreach (var kv in m_TypeListForComponent) + { + ReflectionUtil.InvokeListAddTo<MainComponent>(this, kv.Value, AddComponent); + } + foreach (var kv in m_TypeListForSerie) + { + ReflectionUtil.InvokeListAddTo<Serie>(this, kv.Value, AddSerieAfterDeserialize); + } + m_Series.Sort(); + m_Components.Sort(); + InitComponentHandlers(); + InitSerieHandlers(); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.cs.meta new file mode 100644 index 0000000..25be7da --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseChart.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d5053a63a1ebdfe4f8972f194156c3d3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseGraph.API.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseGraph.API.cs new file mode 100644 index 0000000..a929022 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseGraph.API.cs @@ -0,0 +1,169 @@ +using System; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace XCharts.Runtime +{ + /// <summary> + /// The base class of all graphs or components. + /// |所有图形的基类。 + /// </summary> + public partial class BaseGraph + { + /// <summary> + /// The x of graph. + /// |图形的X + /// </summary> + public float graphX { get { return m_GraphX; } } + /// <summary> + /// The y of graph. + /// |图形的Y + /// </summary> + public float graphY { get { return m_GraphY; } } + /// <summary> + /// The width of graph. + /// |图形的宽 + /// </summary> + public float graphWidth { get { return m_GraphWidth; } } + /// <summary> + /// The height of graph. + /// |图形的高 + /// </summary> + public float graphHeight { get { return m_GraphHeight; } } + /// <summary> + /// The position of graph. + /// |图形的左下角起始坐标。 + /// </summary> + public Vector3 graphPosition { get { return m_GraphPosition; } } + public Rect graphRect { get { return m_GraphRect; } } + /// <summary> + /// The postion of pointer. + /// |鼠标位置。 + /// </summary> + public Vector2 pointerPos { get; protected set; } + /// <summary> + /// Whether the mouse pointer is in the chart. + /// |鼠标是否在图表内。 + /// </summary> + public bool isPointerInChart { get; protected set; } + /// <summary> + /// 警告信息。 + /// </summary> + public string warningInfo { get; protected set; } + /// <summary> + /// 强制开启鼠标事件检测。 + /// </summary> + public bool forceOpenRaycastTarget { get { return m_ForceOpenRaycastTarget; } set { m_ForceOpenRaycastTarget = value; } } + /// <summary> + /// 鼠标点击回调。 + /// </summary> + public Action<PointerEventData, BaseGraph> onPointerClick { set { m_OnPointerClick = value; m_ForceOpenRaycastTarget = true; } } + /// <summary> + /// 鼠标按下回调。 + /// </summary> + public Action<PointerEventData, BaseGraph> onPointerDown { set { m_OnPointerDown = value; m_ForceOpenRaycastTarget = true; } } + /// <summary> + /// 鼠标弹起回调。 + /// </summary> + public Action<PointerEventData, BaseGraph> onPointerUp { set { m_OnPointerUp = value; m_ForceOpenRaycastTarget = true; } } + /// <summary> + /// 鼠标进入回调。 + /// </summary> + public Action<PointerEventData, BaseGraph> onPointerEnter { set { m_OnPointerEnter = value; m_ForceOpenRaycastTarget = true; } } + /// <summary> + /// 鼠标退出回调。 + /// </summary> + public Action<PointerEventData, BaseGraph> onPointerExit { set { m_OnPointerExit = value; m_ForceOpenRaycastTarget = true; } } + /// <summary> + /// 鼠标开始拖拽回调。 + /// </summary> + public Action<PointerEventData, BaseGraph> onBeginDrag { set { m_OnBeginDrag = value; m_ForceOpenRaycastTarget = true; } } + /// <summary> + /// 鼠标拖拽回调。 + /// </summary> + public Action<PointerEventData, BaseGraph> onDrag { set { m_OnDrag = value; m_ForceOpenRaycastTarget = true; } } + /// <summary> + /// 鼠标结束拖拽回调。 + /// </summary> + public Action<PointerEventData, BaseGraph> onEndDrag { set { m_OnEndDrag = value; m_ForceOpenRaycastTarget = true; } } + /// <summary> + /// 鼠标滚动回调。 + /// </summary> + public Action<PointerEventData, BaseGraph> onScroll { set { m_OnScroll = value; m_ForceOpenRaycastTarget = true; } } + + /// <summary> + /// 设置图形的宽高(在非stretch pivot下才有效,其他情况需要自己调整RectTransform) + /// </summary> + /// <param name="width"></param> + /// <param name="height"></param> + public virtual void SetSize(float width, float height) + { + if (LayerHelper.IsFixedWidthHeight(rectTransform)) + { + rectTransform.sizeDelta = new Vector2(width, height); + } + else + { + Debug.LogError("Can't set size on stretch pivot,you need to modify rectTransform by yourself."); + } + } + + /// <summary> + /// 重新初始化Painter + /// </summary> + public void SetPainterDirty() + { + m_PainerDirty = true; + } + + /// <summary> + /// Redraw graph in next frame. + /// |在下一帧刷新图形。 + /// </summary> + public void RefreshGraph() + { + m_RefreshChart = true; + } + + public void RefreshAllComponent() + { + SetAllComponentDirty(); + RefreshGraph(); + } + + /// <summary> + /// 检测警告信息。 + /// </summary> + /// <returns></returns> + public string CheckWarning() + { + warningInfo = CheckHelper.CheckChart(this); + return warningInfo; + } + + /// <summary> + /// 移除并重新创建所有图表的Object。 + /// </summary> + public void RebuildChartObject() + { + ChartHelper.DestroyAllChildren(transform); + SetAllComponentDirty(); + } + + public bool ScreenPointToChartPoint(Vector2 screenPoint, out Vector2 chartPoint) + { +#if UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX + var relative = Display.RelativeMouseAt(screenPoint); + if (relative != Vector3.zero) + screenPoint = relative; +#endif + var cam = canvas.renderMode == RenderMode.ScreenSpaceOverlay ? null : canvas.worldCamera; + if (!RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, + screenPoint, cam, out chartPoint)) + { + return false; + } + return true; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseGraph.API.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseGraph.API.cs.meta new file mode 100644 index 0000000..26a83ab --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseGraph.API.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 46b27d174989044f3b63eaf0c3b21fcd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseGraph.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseGraph.cs new file mode 100644 index 0000000..28b212d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseGraph.cs @@ -0,0 +1,318 @@ +using System; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + [RequireComponent(typeof(CanvasRenderer))] + public partial class BaseGraph : MaskableGraphic, IPointerDownHandler, IPointerUpHandler, + IPointerEnterHandler, IPointerExitHandler, IBeginDragHandler, IPointerClickHandler, + IDragHandler, IEndDragHandler, IScrollHandler + { + + [SerializeField] protected bool m_EnableTextMeshPro = false; + [SerializeField] protected DebugInfo m_DebugInfo = new DebugInfo(); + + protected Painter m_Painter; + protected int m_SiblingIndex; + + protected float m_GraphWidth; + protected float m_GraphHeight; + protected float m_GraphX; + protected float m_GraphY; + protected Vector3 m_GraphPosition = Vector3.zero; + protected Vector2 m_GraphMinAnchor; + protected Vector2 m_GraphMaxAnchor; + protected Vector2 m_GraphPivot; + protected Vector2 m_GraphSizeDelta; + protected Vector2 m_GraphAnchoredPosition; + protected Rect m_GraphRect = new Rect(0, 0, 0, 0); + protected bool m_RefreshChart = false; + protected bool m_ForceOpenRaycastTarget; + protected bool m_IsControlledByLayout = false; + protected bool m_PainerDirty = false; + protected bool m_IsOnValidate = false; + protected Vector3 m_LastLocalPosition; + + protected Action<PointerEventData, BaseGraph> m_OnPointerClick; + protected Action<PointerEventData, BaseGraph> m_OnPointerDown; + protected Action<PointerEventData, BaseGraph> m_OnPointerUp; + protected Action<PointerEventData, BaseGraph> m_OnPointerEnter; + protected Action<PointerEventData, BaseGraph> m_OnPointerExit; + protected Action<PointerEventData, BaseGraph> m_OnBeginDrag; + protected Action<PointerEventData, BaseGraph> m_OnDrag; + protected Action<PointerEventData, BaseGraph> m_OnEndDrag; + protected Action<PointerEventData, BaseGraph> m_OnScroll; + + protected Vector2 graphAnchorMax { get { return m_GraphMinAnchor; } } + protected Vector2 graphAnchorMin { get { return m_GraphMaxAnchor; } } + protected Vector2 graphPivot { get { return m_GraphPivot; } } + public HideFlags chartHideFlags { get { return m_DebugInfo.showAllChartObject ? HideFlags.None : HideFlags.HideInHierarchy; } } + public DebugInfo debug { get { return m_DebugInfo; } } + private ScrollRect m_ScrollRect; + + public Painter painter { get { return m_Painter; } } + + protected virtual void InitComponent() + { + InitPainter(); + } + + protected override void Awake() + { + CheckTextMeshPro(); + m_SiblingIndex = 0; + m_LastLocalPosition = transform.localPosition; + UpdateSize(); + InitComponent(); + CheckIsInScrollRect(); + } + + protected override void Start() + { + m_RefreshChart = true; + } + + protected virtual void Update() + { + CheckSize(); + if (m_IsOnValidate) + { + m_IsOnValidate = false; + m_RefreshChart = true; + CheckTextMeshPro(); + InitComponent(); + } + else + { + CheckComponent(); + } + CheckPointerPos(); + CheckRefreshChart(); + CheckRefreshPainter(); + } + + protected virtual void SetAllComponentDirty() + { +#if UNITY_EDITOR + if (!Application.isPlaying) + { + m_IsOnValidate = true; + } +#endif + m_PainerDirty = true; + } + + protected virtual void CheckComponent() + { + if (m_PainerDirty) + { + InitPainter(); + m_PainerDirty = false; + } + } + + private void CheckTextMeshPro() + { +#if dUI_TextMeshPro + var enableTextMeshPro = true; +#else + var enableTextMeshPro = false; +#endif + if (m_EnableTextMeshPro != enableTextMeshPro) + { + m_EnableTextMeshPro = enableTextMeshPro; + RebuildChartObject(); + } + } + +#if UNITY_EDITOR + protected override void Reset() + { } + + protected override void OnValidate() + { + m_IsOnValidate = true; + } +#endif + + protected override void OnDestroy() + { + for (int i = transform.childCount - 1; i >= 0; i--) + { + DestroyImmediate(transform.GetChild(i).gameObject); + } + } + + protected override void OnPopulateMesh(VertexHelper vh) + { + vh.Clear(); + } + + protected virtual void InitPainter() + { + m_Painter = ChartHelper.AddPainterObject("painter_b", transform, m_GraphMinAnchor, + m_GraphMaxAnchor, m_GraphPivot, new Vector2(m_GraphWidth, m_GraphHeight), chartHideFlags, 1); + m_Painter.type = Painter.Type.Base; + m_Painter.onPopulateMesh = OnDrawPainterBase; + m_Painter.transform.SetSiblingIndex(0); + } + + private void CheckSize() + { + var currWidth = rectTransform.rect.width; + var currHeight = rectTransform.rect.height; + + if (m_GraphWidth == 0 && m_GraphHeight == 0 && (currWidth != 0 || currHeight != 0)) + { + Awake(); + } + + if (m_GraphWidth != currWidth || + m_GraphHeight != currHeight || + m_GraphMinAnchor != rectTransform.anchorMin || + m_GraphMaxAnchor != rectTransform.anchorMax || + m_GraphAnchoredPosition != rectTransform.anchoredPosition) + { + UpdateSize(); + } + if (!ChartHelper.IsValueEqualsVector3(m_LastLocalPosition, transform.localPosition)) + { + m_LastLocalPosition = transform.localPosition; + OnLocalPositionChanged(); + } + } + + protected void UpdateSize() + { + m_GraphWidth = rectTransform.rect.width; + m_GraphHeight = rectTransform.rect.height; + + m_GraphMaxAnchor = rectTransform.anchorMax; + m_GraphMinAnchor = rectTransform.anchorMin; + m_GraphSizeDelta = rectTransform.sizeDelta; + m_GraphAnchoredPosition = rectTransform.anchoredPosition; + + rectTransform.pivot = LayerHelper.ResetChartPositionAndPivot(m_GraphMinAnchor, m_GraphMaxAnchor, + m_GraphWidth, m_GraphHeight, ref m_GraphX, ref m_GraphY); + m_GraphPivot = rectTransform.pivot; + + m_GraphRect.x = m_GraphX; + m_GraphRect.y = m_GraphY; + m_GraphRect.width = m_GraphWidth; + m_GraphRect.height = m_GraphHeight; + m_GraphPosition.x = m_GraphX; + m_GraphPosition.y = m_GraphY; + + OnSizeChanged(); + } + + private void CheckPointerPos() + { + if (!isPointerInChart) return; + if (canvas == null) return; + Vector2 local; + if (!ScreenPointToChartPoint(Input.mousePosition, out local)) + { + pointerPos = Vector2.zero; + } + else + { + pointerPos = local; + } + } + + protected virtual void CheckIsInScrollRect() + { + m_ScrollRect = GetComponentInParent<ScrollRect>(); + } + + protected virtual void CheckRefreshChart() + { + if (m_RefreshChart) + { + m_Painter.Refresh(); + m_RefreshChart = false; + } + } + + protected virtual void CheckRefreshPainter() + { + m_Painter.CheckRefresh(); + } + + internal virtual void RefreshPainter(Painter painter) + { + if (painter == null) return; + painter.Refresh(); + } + + protected virtual void OnSizeChanged() + { + m_RefreshChart = true; + } + + protected virtual void OnLocalPositionChanged() + { } + + protected virtual void OnDrawPainterBase(VertexHelper vh, Painter painter) + { + DrawPainterBase(vh); + } + + protected virtual void DrawPainterBase(VertexHelper vh) + { } + + public virtual void OnPointerClick(PointerEventData eventData) + { + if (m_OnPointerClick != null) m_OnPointerClick(eventData, this); + } + + public virtual void OnPointerDown(PointerEventData eventData) + { + if (m_OnPointerDown != null) m_OnPointerDown(eventData, this); + } + + public virtual void OnPointerUp(PointerEventData eventData) + { + if (m_OnPointerUp != null) m_OnPointerUp(eventData, this); + } + + public virtual void OnPointerEnter(PointerEventData eventData) + { + isPointerInChart = true; + if (m_OnPointerEnter != null) m_OnPointerEnter(eventData, this); + } + + public virtual void OnPointerExit(PointerEventData eventData) + { + isPointerInChart = false; + if (m_OnPointerExit != null) m_OnPointerExit(eventData, this); + } + + public virtual void OnBeginDrag(PointerEventData eventData) + { + if (m_ScrollRect != null) m_ScrollRect.OnBeginDrag(eventData); + if (m_OnBeginDrag != null) m_OnBeginDrag(eventData, this); + } + + public virtual void OnEndDrag(PointerEventData eventData) + { + if (m_ScrollRect != null) m_ScrollRect.OnEndDrag(eventData); + if (m_OnEndDrag != null) m_OnEndDrag(eventData, this); + } + + public virtual void OnDrag(PointerEventData eventData) + { + if (m_ScrollRect != null) m_ScrollRect.OnDrag(eventData); + if (m_OnDrag != null) m_OnDrag(eventData, this); + } + + public virtual void OnScroll(PointerEventData eventData) + { + if (m_ScrollRect != null) m_ScrollRect.OnScroll(eventData); + if (m_OnScroll != null) m_OnScroll(eventData, this); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseGraph.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseGraph.cs.meta new file mode 100644 index 0000000..fb3c60e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/BaseGraph.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4f059825ead3b4a7da7f1fbcebbf545e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic.meta new file mode 100644 index 0000000..e554ca9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 31e8b0503e55d41f0bf3baab818d0dfa +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/BaseSerie.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/BaseSerie.cs new file mode 100644 index 0000000..57c992a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/BaseSerie.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections.Generic; +using System.Text; +using UnityEngine; + +namespace XCharts.Runtime +{ + [System.Serializable] + public abstract class BaseSerie + { + public virtual bool vertsDirty { get { return m_VertsDirty; } } + public virtual bool componentDirty { get { return m_ComponentDirty; } } + public virtual bool useDataNameForColor { get { return false; } } + public virtual bool titleJustForSerie { get { return false; } } + public virtual bool useSortData { get { return false; } } + public virtual bool multiDimensionLabel { get { return false; } } + public bool anyDirty { get { return vertsDirty || componentDirty; } } + public Painter painter { get { return m_Painter; } set { m_Painter = value; } } + public Action refreshComponent { get; set; } + public GameObject gameObject { get; set; } + + [NonSerialized] protected bool m_VertsDirty; + [NonSerialized] protected bool m_ComponentDirty; + [NonSerialized] protected Painter m_Painter; + [NonSerialized] public SerieContext context = new SerieContext(); + [NonSerialized] public InteractData interact = new InteractData(); + + public SerieHandler handler { get; set; } + + public virtual void SetVerticesDirty() + { + m_VertsDirty = true; + } + + public virtual void ClearVerticesDirty() + { + m_VertsDirty = false; + } + + public virtual void SetComponentDirty() + { + m_ComponentDirty = true; + } + + public virtual void ClearComponentDirty() + { + m_ComponentDirty = false; + } + + public virtual void ClearData() + { } + + public virtual void ClearDirty() + { + ClearVerticesDirty(); + ClearComponentDirty(); + } + + public virtual void SetAllDirty() + { + SetVerticesDirty(); + SetComponentDirty(); + } + + public virtual void OnRemove() + { + if (handler != null) + handler.RemoveComponent(); + } + + public virtual void OnDataUpdate() + { } + + public virtual void OnBeforeSerialize() + { } + + public virtual void OnAfterDeserialize() + { + OnDataUpdate(); + } + + public void RefreshLabel() + { + if (handler != null) + handler.RefreshLabelNextFrame(); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/BaseSerie.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/BaseSerie.cs.meta new file mode 100644 index 0000000..7280559 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/BaseSerie.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 28d00b46c33234f0ab88a5756f63679b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/ChildComponent.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/ChildComponent.cs new file mode 100644 index 0000000..90bca35 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/ChildComponent.cs @@ -0,0 +1,63 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + [System.Serializable] + public class ChildComponent + { + public virtual int index { get; set; } + + [NonSerialized] protected bool m_VertsDirty; + [NonSerialized] protected bool m_ComponentDirty; + [NonSerialized] protected Painter m_Painter; + + /// <summary> + /// 图表重绘标记。 + /// </summary> + public virtual bool vertsDirty { get { return m_VertsDirty; } } + /// <summary> + /// 组件重新初始化标记。 + /// </summary> + public virtual bool componentDirty { get { return m_ComponentDirty; } } + /// <summary> + /// 需要重绘图表或重新初始化组件。 + /// </summary> + public bool anyDirty { get { return vertsDirty || componentDirty; } } + public Painter painter { get { return m_Painter; } set { m_Painter = value; } } + public Action refreshComponent { get; set; } + public GameObject gameObject { get; set; } + + public virtual void SetVerticesDirty() + { + m_VertsDirty = true; + } + + public virtual void ClearVerticesDirty() + { + m_VertsDirty = false; + } + + public virtual void SetComponentDirty() + { + m_ComponentDirty = true; + } + + public virtual void ClearComponentDirty() + { + m_ComponentDirty = false; + } + + public virtual void ClearDirty() + { + ClearVerticesDirty(); + ClearComponentDirty(); + } + + public virtual void SetAllDirty() + { + SetVerticesDirty(); + SetComponentDirty(); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/ChildComponent.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/ChildComponent.cs.meta new file mode 100644 index 0000000..8ffda00 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/ChildComponent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 358324a6b44cb4b35b4393ecf2458993 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/CoordSystem.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/CoordSystem.cs new file mode 100644 index 0000000..6b66f70 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/CoordSystem.cs @@ -0,0 +1,13 @@ +using System; + +namespace XCharts.Runtime +{ + /// <summary> + /// Coordinate system component. + /// | + /// 坐标系系统。 + /// </summary> + [Serializable] + public abstract class CoordSystem : MainComponent + { } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/CoordSystem.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/CoordSystem.cs.meta new file mode 100644 index 0000000..c74fa3d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/CoordSystem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 60a0ecce780d64885aa5875dae39aa03 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/MainComponent.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/MainComponent.cs new file mode 100644 index 0000000..a0834de --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/MainComponent.cs @@ -0,0 +1,123 @@ +using System; +using System.Text; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + [System.Serializable] + public class MainComponent : IComparable + { + public int instanceId { get; internal set; } + public int index { get; internal set; } + protected bool m_VertsDirty; + protected bool m_ComponentDirty; + protected Painter m_Painter; + + /// <summary> + /// 图表重绘标记。 + /// </summary> + public virtual bool vertsDirty { get { return m_VertsDirty; } } + /// <summary> + /// 组件重新初始化标记。 + /// </summary> + public virtual bool componentDirty { get { return m_ComponentDirty; } } + /// <summary> + /// 需要重绘图表或重新初始化组件。 + /// </summary> + public bool anyDirty { get { return vertsDirty || componentDirty; } } + public Painter painter { get { return m_Painter; } set { m_Painter = value; } } + public Action refreshComponent { get; set; } + public GameObject gameObject { get; set; } + internal MainComponentHandler handler { get; set; } + + public virtual void SetVerticesDirty() + { + m_VertsDirty = true; + } + + public virtual void ClearVerticesDirty() + { + m_VertsDirty = false; + } + + public virtual void SetComponentDirty() + { + m_ComponentDirty = true; + } + + public virtual void ClearComponentDirty() + { + m_ComponentDirty = false; + } + + public virtual void Reset() { } + + public virtual void ClearData() { } + + public virtual void ClearDirty() + { + ClearVerticesDirty(); + ClearComponentDirty(); + } + + public virtual void SetAllDirty() + { + SetVerticesDirty(); + SetComponentDirty(); + } + + public virtual void SetDefaultValue() { } + + public virtual void OnRemove() + { + if (handler != null) + handler.RemoveComponent(); + } + + public int CompareTo(object obj) + { + var flag = GetType().Name.CompareTo(obj.GetType().Name); + if (flag == 0) + return index.CompareTo((obj as MainComponent).index); + else + return flag; + } + } + + public abstract class MainComponentHandler + { + public BaseChart chart { get; internal set; } + public ComponentHandlerAttribute attribute { get; internal set; } + + public virtual void InitComponent() { } + public virtual void RemoveComponent() { } + public virtual void CheckComponent(StringBuilder sb) { } + public virtual void Update() { } + public virtual void DrawBase(VertexHelper vh) { } + public virtual void DrawTop(VertexHelper vh) { } + public virtual void OnSerieDataUpdate(int serieIndex) { } + public virtual void OnPointerClick(PointerEventData eventData) { } + public virtual void OnPointerDown(PointerEventData eventData) { } + public virtual void OnPointerUp(PointerEventData eventData) { } + public virtual void OnPointerEnter(PointerEventData eventData) { } + public virtual void OnPointerExit(PointerEventData eventData) { } + public virtual void OnDrag(PointerEventData eventData) { } + public virtual void OnBeginDrag(PointerEventData eventData) { } + public virtual void OnEndDrag(PointerEventData eventData) { } + public virtual void OnScroll(PointerEventData eventData) { } + internal abstract void SetComponent(MainComponent component); + } + + public abstract class MainComponentHandler<T> : MainComponentHandler + where T : MainComponent + { + public T component { get; internal set; } + + internal override void SetComponent(MainComponent component) + { + this.component = (T) component; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/MainComponent.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/MainComponent.cs.meta new file mode 100644 index 0000000..7bd0ad6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/MainComponent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 45df06cc65b1844bab6fe52ef5d782e8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/MainComponentContext.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/MainComponentContext.cs new file mode 100644 index 0000000..02e10f7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/MainComponentContext.cs @@ -0,0 +1,7 @@ +namespace XCharts.Runtime +{ + public class MainComponentContext + { + + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/MainComponentContext.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/MainComponentContext.cs.meta new file mode 100644 index 0000000..d4f9308 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Basic/MainComponentContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2f85d9a16a84b474993b84d0e705bbcf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc.meta new file mode 100644 index 0000000..89f5d7b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7c3110bdc66d84fd6b59aa8c6843f5e3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/DelegateFunction.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/DelegateFunction.cs new file mode 100644 index 0000000..3843ca2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/DelegateFunction.cs @@ -0,0 +1,23 @@ +using System.Collections.Generic; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + /// <summary> + /// The delegate function for LabelStyle‘s formatter. + /// |SerieLabel的formatter自定义委托。 + /// </summary> + /// <param name="dataIndex">数据索引</param> + /// <param name="value">数值</param> + /// <returns>最终显示的文本内容</returns> + public delegate string LabelFormatterFunction(int dataIndex, double value, string category); + public delegate float AnimationDelayFunction(int dataIndex); + public delegate float AnimationDurationFunction(int dataIndex); + /// <summary> + /// 获取标记大小的回调。 + /// </summary> + /// <param name="data"></param> + /// <returns></returns> + public delegate float SymbolSizeFunction(List<double> data); + public delegate void CustomDrawGaugePointerFunction(VertexHelper vh, int serieIndex, int dataIndex, float currentAngle); +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/DelegateFunction.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/DelegateFunction.cs.meta new file mode 100644 index 0000000..27b82fb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/DelegateFunction.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8d9ec774e2e5b4d9ba407a27f60b6d71 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/Enums.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/Enums.cs new file mode 100644 index 0000000..f19d2d6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/Enums.cs @@ -0,0 +1,18 @@ +namespace XCharts.Runtime +{ + /// <summary> + /// the layout is horizontal or vertical. + /// |垂直还是水平布局方式。 + /// </summary> + public enum Orient + { + /// <summary> + /// 水平 + /// </summary> + Horizonal, + /// <summary> + /// 垂直 + /// </summary> + Vertical + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/Enums.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/Enums.cs.meta new file mode 100644 index 0000000..e27ae4c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/Enums.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 124ff8824480945229e367921154d13a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/INeedSerieContainer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/INeedSerieContainer.cs new file mode 100644 index 0000000..c979d5d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/INeedSerieContainer.cs @@ -0,0 +1,13 @@ +using System.Text; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + public interface INeedSerieContainer + { + int containerIndex { get; } + int containterInstanceId { get; } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/INeedSerieContainer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/INeedSerieContainer.cs.meta new file mode 100644 index 0000000..f2dd8fc --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/INeedSerieContainer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 69c33f4520abf483585632a17268a9a9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/IPropertyChanged.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/IPropertyChanged.cs new file mode 100644 index 0000000..34f2e35 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/IPropertyChanged.cs @@ -0,0 +1,10 @@ +namespace XCharts.Runtime +{ + /// <summary> + /// 属性变更接口 + /// </summary> + public interface IPropertyChanged + { + void OnChanged(); + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/IPropertyChanged.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/IPropertyChanged.cs.meta new file mode 100644 index 0000000..6521200 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/IPropertyChanged.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 24f32e2d632f08245ae885545f14a2a3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISerieContainer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISerieContainer.cs new file mode 100644 index 0000000..5e09dc4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISerieContainer.cs @@ -0,0 +1,9 @@ +namespace XCharts.Runtime +{ + public interface ISerieContainer + { + //bool runtimeIsPointerEnter { get; } + int index { get; } + bool IsPointerEnter(); + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISerieContainer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISerieContainer.cs.meta new file mode 100644 index 0000000..2a7b0d5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISerieContainer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9d02195c119c14384903aa94daf21a1a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISerieDataComponent.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISerieDataComponent.cs new file mode 100644 index 0000000..0187300 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISerieDataComponent.cs @@ -0,0 +1,9 @@ +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + public interface ISerieDataComponent + { } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISerieDataComponent.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISerieDataComponent.cs.meta new file mode 100644 index 0000000..6e31f40 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISerieDataComponent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 34105fa92849e42abab6320ce3ea540f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISerieExtraComponent.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISerieExtraComponent.cs new file mode 100644 index 0000000..dda88d4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISerieExtraComponent.cs @@ -0,0 +1,11 @@ +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + public interface ISerieExtraComponent + { + bool show { get; set; } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISerieExtraComponent.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISerieExtraComponent.cs.meta new file mode 100644 index 0000000..d9d9a3c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISerieExtraComponent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 20d76dbb8ca234b439951f6e72826c43 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISimplifiedSerie.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISimplifiedSerie.cs new file mode 100644 index 0000000..20afab9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISimplifiedSerie.cs @@ -0,0 +1,9 @@ +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + public interface ISimplifiedSerie + { } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISimplifiedSerie.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISimplifiedSerie.cs.meta new file mode 100644 index 0000000..81f5854 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ISimplifiedSerie.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cd917380f26ed4fb393092a4017f9907 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ITooltipView.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ITooltipView.cs new file mode 100644 index 0000000..e69de29 diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ITooltipView.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ITooltipView.cs.meta new file mode 100644 index 0000000..fecfc56 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/ITooltipView.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f5ec8a82e2f9043c5b2e0b880fb024b6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/IUpdateRuntimeData.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/IUpdateRuntimeData.cs new file mode 100644 index 0000000..c1d7f0f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/IUpdateRuntimeData.cs @@ -0,0 +1,11 @@ +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + public interface IUpdateRuntimeData + { + void UpdateRuntimeData(float chartX, float chartY, float chartWidth, float chartHeight); + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/IUpdateRuntimeData.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/IUpdateRuntimeData.cs.meta new file mode 100644 index 0000000..15b89d6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Misc/IUpdateRuntimeData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 07abc4a18196a426a96d1ed14cbc7bf0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object.meta new file mode 100644 index 0000000..011588c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3d225ec4fe992405d91714722649cc93 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/ChartLabel.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/ChartLabel.cs new file mode 100644 index 0000000..746e17f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/ChartLabel.cs @@ -0,0 +1,340 @@ +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + public class ChartLabel : Image + { + [SerializeField] private ChartText m_LabelText; + + private bool m_HideIconIfTextEmpty = false; + private bool m_AutoSize = true; + private float m_PaddingLeft = 0; + private float m_PaddingRight = 0; + private float m_PaddingTop = 0; + private float m_PaddingBottom = 0; + private float m_Width = 0; + private float m_Height = 0; + private RectTransform m_TextRect; + private RectTransform m_IconRect; + private RectTransform m_ObjectRect; + private Vector3 m_IconOffest; + private Align m_Align = Align.Left; + private Image m_IconImage; + + public Image icon + { + get { return m_IconImage; } + set { SetIcon(value); } + } + public ChartText text + { + get { return m_LabelText; } + set + { + m_LabelText = value; + if (value != null) m_TextRect = m_LabelText.gameObject.GetComponent<RectTransform>(); + } + } + + public bool hideIconIfTextEmpty { set { m_HideIconIfTextEmpty = value; } } + public bool isIconActive { get; private set; } + public bool isAnimationEnd { get; internal set; } + + internal RectTransform objectRect + { + get + { + if (m_ObjectRect == null) + m_ObjectRect = gameObject.GetComponent<RectTransform>(); + return m_ObjectRect; + } + } + + protected override void Awake() + { + raycastTarget = false; + } + + public void SetTextPadding(TextPadding padding) + { + m_PaddingLeft = padding.left; + m_PaddingRight = padding.right; + m_PaddingTop = padding.top; + m_PaddingBottom = padding.bottom; + UpdatePadding(); + } + public void SetPadding(float[] padding) + { + if (padding.Length >= 4) + { + m_PaddingLeft = padding[3]; + m_PaddingRight = padding[1]; + m_PaddingTop = padding[0]; + m_PaddingBottom = padding[2]; + } + else if (padding.Length >= 2) + { + m_PaddingLeft = padding[1]; + m_PaddingRight = padding[1]; + m_PaddingTop = padding[0]; + m_PaddingBottom = padding[0]; + } + else if (padding.Length == 1) + { + m_PaddingLeft = padding[0]; + m_PaddingRight = padding[0]; + m_PaddingTop = padding[0]; + m_PaddingBottom = padding[0]; + } + UpdatePadding(); + } + + public void SetIcon(Image image) + { + m_IconImage = image; + if (image != null) + { + m_IconRect = m_IconImage.GetComponent<RectTransform>(); + } + } + + public float GetWidth() + { + return m_Width; + } + + public float GetHeight() + { + return m_Height; + } + + public void SetSize(float width, float height) + { + this.m_Width = width; + this.m_Height = height; + m_AutoSize = width == 0 && height == 0; + objectRect.sizeDelta = new Vector2(width, height); + } + + public void SetIconSprite(Sprite sprite) + { + if (m_IconImage != null) m_IconImage.sprite = sprite; + } + + public void SetIconSize(float width, float height) + { + if (m_IconRect != null) m_IconRect.sizeDelta = new Vector3(width, height); + } + + public void UpdateIcon(IconStyle iconStyle, Sprite sprite = null) + { + if (m_IconImage == null || iconStyle == null) + return; + + SetIconActive(iconStyle.show); + if (iconStyle.show) + { + m_IconImage.sprite = sprite == null ? iconStyle.sprite : sprite; + m_IconImage.color = iconStyle.color; + m_IconImage.type = iconStyle.type; + m_IconRect.sizeDelta = new Vector2(iconStyle.width, iconStyle.height); + m_IconOffest = iconStyle.offset; + m_Align = iconStyle.align; + m_HideIconIfTextEmpty = iconStyle.autoHideWhenLabelEmpty; + AdjustIconPos(); + if (iconStyle.layer == IconStyle.Layer.UnderText) + m_IconRect.SetSiblingIndex(0); + else + m_IconRect.SetSiblingIndex(transform.childCount - 1); + } + } + + public float GetTextWidth() + { + if (m_TextRect) return m_TextRect.sizeDelta.x; + else return 0; + } + + public float GetTextHeight() + { + if (m_TextRect) return m_TextRect.sizeDelta.y; + return 0; + } + + public void SetTextColor(Color color) + { + if (m_LabelText != null) m_LabelText.SetColor(color); + } + + public void SetTextRotate(float rotate) + { + if (m_LabelText != null) m_LabelText.SetLocalEulerAngles(new Vector3(0, 0, rotate)); + } + + public void SetPosition(Vector3 position) + { + transform.localPosition = position; + } + + public void SetRectPosition(Vector3 position) + { + objectRect.anchoredPosition3D = position; + } + + public Vector3 GetPosition() + { + return transform.localPosition; + } + + public void SetActive(bool flag) + { + ChartHelper.SetActive(gameObject, flag); + } + public void SetTextActive(bool flag) + { + if (m_LabelText != null) m_LabelText.SetActive(flag); + } + public void SetIconActive(bool flag) + { + isIconActive = flag; + if (m_IconImage) ChartHelper.SetActive(m_IconImage, flag); + } + + public bool SetText(string text) + { + if (m_TextRect == null || m_LabelText == null) + return false; + + if (text == null) + text = ""; + if (!m_LabelText.GetText().Equals(text)) + { + m_LabelText.SetText(text); + if (m_AutoSize) + { + var newSize = string.IsNullOrEmpty(text) ? Vector2.zero : + new Vector2(m_LabelText.GetPreferredWidth(), + m_LabelText.GetPreferredHeight()); + var sizeChange = newSize.x != m_TextRect.sizeDelta.x || newSize.y != m_TextRect.sizeDelta.y; + this.m_Width = newSize.x; + this.m_Height = newSize.y; + if (sizeChange) + { + m_TextRect.sizeDelta = newSize; + UpdateSize(); + UpdatePadding(); + AdjustIconPos(); + } + return sizeChange; + } + AdjustIconPos(); + if (m_HideIconIfTextEmpty && isIconActive) + { + ChartHelper.SetActive(m_IconImage.gameObject, !string.IsNullOrEmpty(text)); + } + } + return false; + } + + private void UpdateSize() + { + if (m_AutoSize) + { + var sizeDelta = m_TextRect.sizeDelta; + m_Width = sizeDelta.x + m_PaddingLeft + m_PaddingRight; + m_Height = sizeDelta.y + m_PaddingTop + m_PaddingBottom; + objectRect.sizeDelta = new Vector2(m_Width, m_Height); + } + } + + private void UpdatePadding() + { + if (m_TextRect == null) return; + switch (text.alignment) + { + case TextAnchor.LowerLeft: + m_TextRect.anchoredPosition = new Vector2(m_PaddingLeft, m_PaddingBottom); + break; + case TextAnchor.UpperLeft: + m_TextRect.anchoredPosition = new Vector2(m_PaddingLeft, -m_PaddingTop); + break; + case TextAnchor.MiddleLeft: + m_TextRect.anchoredPosition = new Vector2(m_PaddingLeft, m_Height / 2 - m_PaddingTop - m_TextRect.sizeDelta.y / 2); + break; + case TextAnchor.LowerRight: + m_TextRect.anchoredPosition = new Vector2(-m_PaddingRight, m_PaddingBottom); + break; + case TextAnchor.UpperRight: + m_TextRect.anchoredPosition = new Vector2(-m_PaddingRight, -m_PaddingTop); + break; + case TextAnchor.MiddleRight: + m_TextRect.anchoredPosition = new Vector2(-m_PaddingRight, m_Height / 2 - m_PaddingTop - m_TextRect.sizeDelta.y / 2); + break; + case TextAnchor.LowerCenter: + m_TextRect.anchoredPosition = new Vector2(-(m_Width / 2 - m_PaddingLeft - m_TextRect.sizeDelta.x / 2), m_PaddingBottom); + break; + case TextAnchor.UpperCenter: + m_TextRect.anchoredPosition = new Vector2(-(m_Width / 2 - m_PaddingLeft - m_TextRect.sizeDelta.x / 2), -m_PaddingTop); + break; + case TextAnchor.MiddleCenter: + m_TextRect.anchoredPosition = new Vector2(-(m_Width / 2 - m_PaddingLeft - m_TextRect.sizeDelta.x / 2), m_Height / 2 - m_PaddingTop - m_TextRect.sizeDelta.y / 2); + break; + default: + break; + } + } + + private void AdjustIconPos() + { + if (m_IconImage && m_IconRect && m_LabelText != null && m_TextRect != null) + { + var iconX = 0f; + switch (m_Align) + { + case Align.Left: + switch (m_LabelText.alignment) + { + case TextAnchor.LowerLeft: + case TextAnchor.UpperLeft: + case TextAnchor.MiddleLeft: + iconX = -m_TextRect.sizeDelta.x / 2 - m_IconRect.sizeDelta.x / 2; + break; + case TextAnchor.LowerRight: + case TextAnchor.UpperRight: + case TextAnchor.MiddleRight: + iconX = m_TextRect.sizeDelta.x / 2 - m_LabelText.GetPreferredWidth() - m_IconRect.sizeDelta.x / 2; + break; + case TextAnchor.LowerCenter: + case TextAnchor.UpperCenter: + case TextAnchor.MiddleCenter: + iconX = -m_LabelText.GetPreferredWidth() / 2 - m_IconRect.sizeDelta.x / 2; + break; + } + break; + case Align.Right: + switch (m_LabelText.alignment) + { + case TextAnchor.LowerLeft: + case TextAnchor.UpperLeft: + case TextAnchor.MiddleLeft: + iconX = m_TextRect.sizeDelta.x / 2 + m_IconRect.sizeDelta.x / 2; + break; + case TextAnchor.LowerRight: + case TextAnchor.UpperRight: + case TextAnchor.MiddleRight: + iconX = m_IconRect.sizeDelta.x / 2; + break; + case TextAnchor.LowerCenter: + case TextAnchor.UpperCenter: + case TextAnchor.MiddleCenter: + iconX = m_LabelText.GetPreferredWidth() / 2 + m_IconRect.sizeDelta.x / 2; + break; + } + break; + } + m_IconRect.anchoredPosition = m_IconOffest + new Vector3(iconX, 0); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/ChartLabel.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/ChartLabel.cs.meta new file mode 100644 index 0000000..d673cbb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/ChartLabel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 61287841bdc4142caba8e77985cd8715 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/ChartObject.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/ChartObject.cs new file mode 100644 index 0000000..143e120 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/ChartObject.cs @@ -0,0 +1,14 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + public class ChartObject + { + protected GameObject m_GameObject; + + public virtual void Destroy() + { + GameObject.Destroy(m_GameObject); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/ChartObject.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/ChartObject.cs.meta new file mode 100644 index 0000000..183b9e7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/ChartObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0fe3102b0eea042938d30af910ca86d6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/ChartText.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/ChartText.cs new file mode 100644 index 0000000..c01b68a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/ChartText.cs @@ -0,0 +1,319 @@ +using UnityEngine; +using UnityEngine.UI; +#if dUI_TextMeshPro +using TMPro; +#endif + +namespace XCharts.Runtime +{ + [System.Serializable] + public class ChartText + { + private Text m_Text; + private TextAnchor m_TextAlignment; + public Text text + { + get { return m_Text; } + set { m_Text = value; } + } +#if dUI_TextMeshPro + private TextMeshProUGUI m_TMPText; + public TextMeshProUGUI tmpText { get { return m_TMPText; } set { m_TMPText = value; } } +#endif + public GameObject gameObject + { + get + { +#if dUI_TextMeshPro + if (m_TMPText != null) return m_TMPText.gameObject; +#else + if (m_Text != null) return m_Text.gameObject; +#endif + return null; + } + } + + public TextAnchor alignment + { + get + { + return m_TextAlignment; + } + set + { + SetAlignment(alignment); + } + } + + public ChartText() + { } + + public ChartText(GameObject textParent) + { +#if dUI_TextMeshPro + m_TMPText = textParent.GetComponentInChildren<TextMeshProUGUI>(); + if (m_TMPText == null) + { + Debug.LogError("can't find TextMeshProUGUI component:" + textParent); + } +#else + m_Text = textParent.GetComponentInChildren<Text>(); + if (m_Text == null) + { + Debug.LogError("can't find Text component:" + textParent); + } +#endif + } + + public void SetFontSize(float fontSize) + { +#if dUI_TextMeshPro + if (m_TMPText != null) m_TMPText.fontSize = fontSize; +#else + if (m_Text != null) m_Text.fontSize = (int) fontSize; +#endif + } + + public void SetText(string text) + { + if (text == null) text = string.Empty; + else text = text.Replace("\\n", "\n"); +#if dUI_TextMeshPro + if (m_TMPText != null) m_TMPText.text = text; +#else + if (m_Text != null) m_Text.text = text; +#endif + } + + public string GetText() + { +#if dUI_TextMeshPro + if (m_TMPText != null) return m_TMPText.text; +#else + if (m_Text != null) return m_Text.text; +#endif + return string.Empty; + } + + public void SetColor(Color color) + { +#if dUI_TextMeshPro + if (m_TMPText != null) m_TMPText.color = color; +#else + if (m_Text != null) m_Text.color = color; +#endif + } + + public void SetLineSpacing(float lineSpacing) + { +#if dUI_TextMeshPro + if (m_TMPText != null) m_TMPText.lineSpacing = lineSpacing; +#else + if (m_Text != null) m_Text.lineSpacing = lineSpacing; +#endif + } + + public void SetActive(bool flag) + { +#if dUI_TextMeshPro + //m_TMPText.gameObject.SetActive(flag); + if (m_TMPText != null) ChartHelper.SetActive(m_TMPText.gameObject, flag); +#else + //m_Text.gameObject.SetActive(flag); + if (m_Text != null) ChartHelper.SetActive(m_Text.gameObject, flag); +#endif + } + + public void SetLocalPosition(Vector3 position) + { +#if dUI_TextMeshPro + if (m_TMPText != null) m_TMPText.transform.localPosition = position; +#else + if (m_Text != null) m_Text.transform.localPosition = position; +#endif + } + + public void SetRectPosition(Vector3 position) + { +#if dUI_TextMeshPro + if (m_TMPText != null) m_TMPText.GetComponent<RectTransform>().anchoredPosition3D = position; +#else + if (m_Text != null) m_Text.GetComponent<RectTransform>().anchoredPosition3D = position; +#endif + } + + public void SetSizeDelta(Vector2 sizeDelta) + { +#if dUI_TextMeshPro + if (m_TMPText != null) m_TMPText.GetComponent<RectTransform>().sizeDelta = sizeDelta; +#else + if (m_Text != null) m_Text.GetComponent<RectTransform>().sizeDelta = sizeDelta; +#endif + } + + public void SetLocalEulerAngles(Vector3 position) + { +#if dUI_TextMeshPro + if (m_TMPText != null) m_TMPText.transform.localEulerAngles = position; +#else + if (m_Text != null) m_Text.transform.localEulerAngles = position; +#endif + } + + public void SetAlignment(TextAnchor alignment) + { + m_TextAlignment = alignment; +#if dUI_TextMeshPro + if (m_TMPText == null) return; + switch (alignment) + { + case TextAnchor.LowerCenter: + m_TMPText.alignment = TextAlignmentOptions.Bottom; + break; + case TextAnchor.LowerLeft: + m_TMPText.alignment = TextAlignmentOptions.BottomLeft; + break; + case TextAnchor.LowerRight: + m_TMPText.alignment = TextAlignmentOptions.BottomRight; + break; + case TextAnchor.MiddleCenter: + m_TMPText.alignment = TextAlignmentOptions.Center; + break; + case TextAnchor.MiddleLeft: + m_TMPText.alignment = TextAlignmentOptions.Left; + break; + case TextAnchor.MiddleRight: + m_TMPText.alignment = TextAlignmentOptions.Right; + break; + case TextAnchor.UpperCenter: + m_TMPText.alignment = TextAlignmentOptions.Top; + break; + case TextAnchor.UpperLeft: + m_TMPText.alignment = TextAlignmentOptions.TopLeft; + break; + case TextAnchor.UpperRight: + m_TMPText.alignment = TextAlignmentOptions.TopRight; + break; + default: + m_TMPText.alignment = TextAlignmentOptions.Center; + m_TextAlignment = TextAnchor.MiddleCenter; + break; + } +#else + if (m_Text != null) m_Text.alignment = alignment; +#endif + } + + public void SetFont(Font font) + { + if (m_Text) m_Text.font = font; + } + + public void SetFontStyle(FontStyle fontStyle) + { +#if dUI_TextMeshPro + if (m_TMPText == null) return; + switch (fontStyle) + { + case FontStyle.Normal: + m_TMPText.fontStyle = FontStyles.Normal; + break; + case FontStyle.Bold: + m_TMPText.fontStyle = FontStyles.Bold; + break; + case FontStyle.BoldAndItalic: + m_TMPText.fontStyle = FontStyles.Bold | FontStyles.Italic; + break; + case FontStyle.Italic: + m_TMPText.fontStyle = FontStyles.Italic; + break; + } +#else + if (m_Text != null) m_Text.fontStyle = fontStyle; +#endif + } + + public void SetFontAndSizeAndStyle(TextStyle textStyle, ComponentTheme theme) + { +#if dUI_TextMeshPro + if (m_TMPText == null) return; + m_TMPText.font = textStyle.tmpFont == null ? theme.tmpFont : textStyle.tmpFont; + m_TMPText.fontSize = textStyle.fontSize == 0 ? theme.fontSize : textStyle.fontSize; + m_TMPText.fontStyle = textStyle.tmpFontStyle; +#else + if (m_Text != null) + { + m_Text.font = textStyle.font == null ? theme.font : textStyle.font; + m_Text.fontSize = textStyle.fontSize == 0 ? theme.fontSize : textStyle.fontSize; + m_Text.fontStyle = textStyle.fontStyle; + } +#endif + } + + public float GetPreferredWidth(string content) + { +#if dUI_TextMeshPro + if (m_TMPText != null) return 0; // TODO: +#else + if (m_Text != null) + { + var tg = m_Text.cachedTextGeneratorForLayout; + var setting = m_Text.GetGenerationSettings(Vector2.zero); + return tg.GetPreferredWidth(content, setting) / m_Text.pixelsPerUnit; + } +#endif + return 0; + } + + public float GetPreferredWidth() + { +#if dUI_TextMeshPro + if (m_TMPText != null) return m_TMPText.preferredWidth; +#else + if (m_Text != null) return m_Text.preferredWidth; +#endif + return 0; + } + public float GetPreferredHeight() + { +#if dUI_TextMeshPro + if (m_TMPText != null) return m_TMPText.preferredHeight; +#else + if (m_Text != null) return m_Text.preferredHeight; +#endif + return 0; + } + + public string GetPreferredText(string content, string suffix, float maxWidth) + { +#if dUI_TextMeshPro + if (m_TMPText != null) return content; // TODO: +#else + if (m_Text != null) + { + var sourWid = GetPreferredWidth(content); + if (sourWid < maxWidth) return content; + var suffixWid = GetPreferredWidth(suffix); + var textWid = maxWidth - 1.3f * suffixWid; + for (int i = content.Length; i > 0; i--) + { + var temp = content.Substring(0, i); + if (GetPreferredWidth(temp) < textWid) + { + return temp + suffix; + } + } + } +#endif + return string.Empty; + } + +#if dUI_TextMeshPro + + public void SetFont(TMP_FontAsset font) + { + if (m_TMPText != null) m_TMPText.font = font; + } +#endif + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/ChartText.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/ChartText.cs.meta new file mode 100644 index 0000000..6b1b33d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/ChartText.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4e2466c1fe5874bea8373b071405a930 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/LegendItem.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/LegendItem.cs new file mode 100644 index 0000000..9a6f754 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/LegendItem.cs @@ -0,0 +1,213 @@ +using System; +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + public class LegendItem + { + private int m_Index; + private string m_Name; + private string m_LegendName; + private GameObject m_GameObject; + private Button m_Button; + private Image m_Icon; + private ChartText m_Text; + private Image m_TextBackground; + private RectTransform m_Rect; + private RectTransform m_IconRect; + private RectTransform m_TextRect; + private RectTransform m_TextBackgroundRect; + private float m_Gap = 0f; + private float m_LabelPaddingLeftRight = 0f; + private float m_LabelPaddingTopBottom = 0f; + private bool m_LabelAutoSize = true; + + public int index { get { return m_Index; } set { m_Index = value; } } + public string name { get { return m_Name; } set { m_Name = value; } } + public string legendName { get { return m_LegendName; } set { m_LegendName = value; } } + public GameObject gameObject { get { return m_GameObject; } } + public Button button { get { return m_Button; } } + public float width + { + get + { + if (m_IconRect && m_TextBackgroundRect) + { + return m_IconRect.sizeDelta.x + m_Gap + m_TextBackgroundRect.sizeDelta.x; + } + else + { + return 0; + } + } + } + + public float height + { + get + { + if (m_IconRect && m_TextBackgroundRect) + { + return Mathf.Max(m_IconRect.sizeDelta.y, m_TextBackgroundRect.sizeDelta.y); + } + else + { + return 0; + } + } + } + + public void SetObject(GameObject obj) + { + m_GameObject = obj; + m_Button = obj.GetComponent<Button>(); + m_Rect = obj.GetComponent<RectTransform>(); + m_Icon = obj.transform.Find("icon").gameObject.GetComponent<Image>(); + m_TextBackground = obj.transform.Find("content").gameObject.GetComponent<Image>(); + m_Text = new ChartText(obj); + m_IconRect = m_Icon.gameObject.GetComponent<RectTransform>(); + m_TextRect = m_Text.gameObject.GetComponent<RectTransform>(); + m_TextBackgroundRect = m_TextBackground.gameObject.GetComponent<RectTransform>(); + } + + public void SetButton(Button button) + { + m_Button = button; + } + + public void SetIcon(Image icon) + { + m_Icon = icon; + } + + public void SetText(ChartText text) + { + m_Text = text; + } + + public void SetTextBackground(Image image) + { + m_TextBackground = image; + } + + public void SetIconSize(float width, float height) + { + if (m_IconRect) + { + m_IconRect.sizeDelta = new Vector2(width, height); + } + } + + public Rect GetIconRect() + { + if (m_GameObject && m_IconRect) + { + var pos = m_GameObject.transform.localPosition; + var sizeDelta = m_IconRect.sizeDelta; + var y = pos.y - (m_Rect.sizeDelta.y - sizeDelta.y) / 2 - sizeDelta.y; + return new Rect(pos.x, y, m_IconRect.sizeDelta.x, m_IconRect.sizeDelta.y); + } + else + { + return Rect.zero; + } + } + + public Color GetIconColor() + { + if (m_Icon) return m_Icon.color; + else return Color.clear; + } + + public void SetIconColor(Color color) + { + if (m_Icon) + { + m_Icon.color = color; + } + } + + public void SetIconImage(Sprite image) + { + if (m_Icon) + { + m_Icon.sprite = image; + } + } + + public void SetIconActive(bool active) + { + if (m_Icon) + { + m_Icon.gameObject.SetActive(active); + } + } + + public void SetContentColor(Color color) + { + if (m_Text != null) + { + m_Text.SetColor(color); + } + } + + public void SetContentBackgroundColor(Color color) + { + if (m_TextBackground) + { + m_TextBackground.color = color; + } + } + + public void SetContentPosition(Vector3 offset) + { + m_Gap = offset.x; + if (m_TextBackgroundRect) + { + var posX = m_IconRect.sizeDelta.x + offset.x; + m_TextBackgroundRect.anchoredPosition3D = new Vector3(posX, offset.y, 0); + } + } + + public bool SetContent(string content) + { + if (m_Text != null && !m_Text.GetText().Equals(content)) + { + m_Text.SetText(content); + if (m_LabelAutoSize) + { + var newSize = string.IsNullOrEmpty(content) ? Vector2.zero : + new Vector2(m_Text.GetPreferredWidth(), m_Text.GetPreferredHeight()); + var sizeChange = newSize.x != m_TextRect.sizeDelta.x || newSize.y != m_TextRect.sizeDelta.y; + if (sizeChange) + { + m_TextRect.sizeDelta = newSize; + m_TextRect.anchoredPosition3D = new Vector3(m_LabelPaddingLeftRight, 0); + m_TextBackgroundRect.sizeDelta = new Vector2(m_Text.GetPreferredWidth() + m_LabelPaddingLeftRight * 2, + m_Text.GetPreferredHeight() + m_LabelPaddingTopBottom * 2 - 4); + m_Rect.sizeDelta = new Vector3(width, height); + } + return sizeChange; + } + } + return false; + } + + public void SetPosition(Vector3 position) + { + if (m_GameObject) + { + m_GameObject.transform.localPosition = position; + } + } + + public void SetActive(bool active) + { + if (m_GameObject) + { + m_GameObject.SetActive(active); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/LegendItem.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/LegendItem.cs.meta new file mode 100644 index 0000000..e7a5204 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Object/LegendItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3e5abcb8f339f41f5b3680ecdab67509 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Painter.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Painter.cs new file mode 100644 index 0000000..c60041a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Painter.cs @@ -0,0 +1,72 @@ +using System; +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + [RequireComponent(typeof(CanvasRenderer))] + public class Painter : MaskableGraphic + { + public enum Type + { + Base, + Serie, + Top + } + protected int m_Index = -1; + protected Type m_Type = Type.Base; + protected bool m_Refresh; + protected Action<VertexHelper, Painter> m_OnPopulateMesh; + + public Action<VertexHelper, Painter> onPopulateMesh { set { m_OnPopulateMesh = value; } } + public int index { get { return m_Index; } set { m_Index = value; } } + public Type type { get { return m_Type; } set { m_Type = value; } } + public void Refresh() + { + if (gameObject == null) return; + if (!gameObject.activeSelf) return; + m_Refresh = true; + } + + public void Init() + { + raycastTarget = false; + } + + public void SetActive(bool flag, bool isDebugMode = false) + { + if (gameObject.activeInHierarchy != flag) + { + gameObject.SetActive(flag); + } + var hideFlags = flag && isDebugMode ? HideFlags.None : HideFlags.HideInHierarchy; + if (gameObject.hideFlags != hideFlags) + { + gameObject.hideFlags = hideFlags; + } + } + + protected override void Awake() + { + Init(); + } + + internal void CheckRefresh() + { + if (m_Refresh && gameObject.activeSelf) + { + m_Refresh = false; + SetVerticesDirty(); + } + } + + protected override void OnPopulateMesh(VertexHelper vh) + { + vh.Clear(); + if (m_OnPopulateMesh != null) + { + m_OnPopulateMesh(vh, this); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Painter.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Painter.cs.meta new file mode 100644 index 0000000..60597fa --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Painter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 01c85cd323a9f4dfb803470695bd0944 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools.meta new file mode 100644 index 0000000..49e7df6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 576ce681815d348d0a2abbbadf3dd9f7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/ListPool.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/ListPool.cs new file mode 100644 index 0000000..8210fde --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/ListPool.cs @@ -0,0 +1,35 @@ +using System.Collections.Generic; + +namespace XCharts.Runtime +{ + internal static class ListPool<T> + { + private static readonly ObjectPool<List<T>> s_ListPool = new ObjectPool<List<T>>(OnGet, OnClear); + static void OnGet(List<T> l) + { + if (l.Capacity < 50) + { + l.Capacity = 50; + } + } + static void OnClear(List<T> l) + { + l.Clear(); + } + + public static List<T> Get() + { + return s_ListPool.Get(); + } + + public static void Release(List<T> toRelease) + { + s_ListPool.Release(toRelease); + } + + public static void ClearAll() + { + s_ListPool.ClearAll(); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/ListPool.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/ListPool.cs.meta new file mode 100644 index 0000000..7807cc9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/ListPool.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 02c30457469c746dc96f00f24cb6e1c6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/ObjectPool.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/ObjectPool.cs new file mode 100644 index 0000000..9dfb045 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/ObjectPool.cs @@ -0,0 +1,57 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; + +namespace XCharts.Runtime +{ + public class ObjectPool<T> where T : new() + { + private readonly bool m_NewIfEmpty = true; + private readonly Stack<T> m_Stack = new Stack<T>(); + private readonly UnityAction<T> m_ActionOnGet; + private readonly UnityAction<T> m_ActionOnRelease; + + public int countAll { get; private set; } + public int countActive { get { return countAll - countInactive; } } + public int countInactive { get { return m_Stack.Count; } } + + public ObjectPool(UnityAction<T> actionOnGet, UnityAction<T> actionOnRelease, bool newIfEmpty = true) + { + m_NewIfEmpty = newIfEmpty; + m_ActionOnGet = actionOnGet; + m_ActionOnRelease = actionOnRelease; + } + + public T Get() + { + T element; + if (m_Stack.Count == 0) + { + if (!m_NewIfEmpty) return default(T); + element = new T(); + countAll++; + } + else + { + element = m_Stack.Pop(); + } + if (m_ActionOnGet != null) + m_ActionOnGet(element); + return element; + } + + public void Release(T element) + { + if (m_Stack.Count > 0 && ReferenceEquals(m_Stack.Peek(), element)) + Debug.LogError("Internal error. Trying to destroy object that is already released to pool."); + if (m_ActionOnRelease != null) + m_ActionOnRelease(element); + m_Stack.Push(element); + } + + public void ClearAll() + { + m_Stack.Clear(); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/ObjectPool.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/ObjectPool.cs.meta new file mode 100644 index 0000000..58927ca --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/ObjectPool.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 09e67988253cb4f568b82d52b4113797 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/SerieDataPool.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/SerieDataPool.cs new file mode 100644 index 0000000..9380580 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/SerieDataPool.cs @@ -0,0 +1,26 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + internal static class SerieDataPool + { + private static readonly ObjectPool<SerieData> s_ListPool = new ObjectPool<SerieData>(null, OnClear); + + static void OnGet(SerieData serieData) { } + + static void OnClear(SerieData serieData) + { + serieData.Reset(); + } + + public static SerieData Get() + { + return s_ListPool.Get(); + } + + public static void Release(SerieData toRelease) + { + s_ListPool.Release(toRelease); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/SerieDataPool.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/SerieDataPool.cs.meta new file mode 100644 index 0000000..5bd4740 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/SerieDataPool.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: faf4da15b01d74648bd13f73125e27bd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/SerieLabelPool.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/SerieLabelPool.cs new file mode 100644 index 0000000..321d894 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/SerieLabelPool.cs @@ -0,0 +1,74 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + public static class SerieLabelPool + { + private static readonly Stack<GameObject> m_Stack = new Stack<GameObject>(200); + private static Dictionary<int, bool> m_ReleaseDic = new Dictionary<int, bool>(1000); + + public static GameObject Get(string name, Transform parent, LabelStyle label, Color color, + float iconWidth, float iconHeight, ThemeStyle theme) + { + GameObject element; + if (m_Stack.Count == 0 || !Application.isPlaying) + { + element = CreateSerieLabel(name, parent, label, color, iconWidth, iconHeight, theme); + } + else + { + element = m_Stack.Pop(); + if (element == null) + { + element = CreateSerieLabel(name, parent, label, color, iconWidth, iconHeight, theme); + } + m_ReleaseDic.Remove(element.GetInstanceID()); + element.name = name; + element.transform.SetParent(parent); + var text = new ChartText(element); + text.SetColor(color); + text.SetFontAndSizeAndStyle(label.textStyle, theme.common); + ChartHelper.SetActive(element, true); + } + element.transform.localEulerAngles = new Vector3(0, 0, label.rotate); + return element; + } + + public static void Release(GameObject element) + { + if (element == null) return; + ChartHelper.SetActive(element, false); + if (!Application.isPlaying) return; + if (!m_ReleaseDic.ContainsKey(element.GetInstanceID())) + { + m_Stack.Push(element); + m_ReleaseDic.Add(element.GetInstanceID(), true); + } + } + + public static void ReleaseAll(Transform parent) + { + int count = parent.childCount; + for (int i = 0; i < count; i++) + { + Release(parent.GetChild(i).gameObject); + } + } + + public static void ClearAll() + { + m_Stack.Clear(); + m_ReleaseDic.Clear(); + } + + private static GameObject CreateSerieLabel(string name, Transform parent, LabelStyle labelStyle, Color color, + float iconWidth, float iconHeight, ThemeStyle theme) + { + var label = ChartHelper.AddChartLabel(name, parent, labelStyle, theme.common, + "", color, TextAnchor.MiddleCenter); + label.SetActive(labelStyle.show); + return label.gameObject; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/SerieLabelPool.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/SerieLabelPool.cs.meta new file mode 100644 index 0000000..8d5c752 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Pools/SerieLabelPool.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e960aeb14c09844e3bdcdc4138af0761 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities.meta new file mode 100644 index 0000000..6ceb052 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dd10f45b4e7714b7687abf5f2f016993 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartCached.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartCached.cs new file mode 100644 index 0000000..59a505b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartCached.cs @@ -0,0 +1,174 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using UnityEngine; + +namespace XCharts.Runtime +{ + public static class ChartCached + { + private const string NUMERIC_FORMATTER_D = "D"; + private const string NUMERIC_FORMATTER_d = "d"; + private const string NUMERIC_FORMATTER_X = "X"; + private const string NUMERIC_FORMATTER_x = "x"; + private static readonly string s_DefaultAxis = "axis_"; + private static CultureInfo ci = new CultureInfo("en-us"); // "en-us", "zh-cn", "ar-iq", "de-de" + private static Dictionary<Color, string> s_ColorToStr = new Dictionary<Color, string>(100); + private static Dictionary<int, string> s_SerieLabelName = new Dictionary<int, string>(1000); + private static Dictionary<Color, string> s_ColorDotStr = new Dictionary<Color, string>(100); + private static Dictionary<Type, Dictionary<int, string>> s_ComponentObjectName = new Dictionary<Type, Dictionary<int, string>>(); + private static Dictionary<int, string> s_AxisLabelName = new Dictionary<int, string>(); + private static Dictionary<Type, string> s_TypeName = new Dictionary<Type, string>(); + + private static Dictionary<double, Dictionary<string, string>> s_NumberToStr = new Dictionary<double, Dictionary<string, string>>(); + private static Dictionary<int, Dictionary<string, string>> s_PrecisionToStr = new Dictionary<int, Dictionary<string, string>>(); + + public static string FloatToStr(double value, string numericFormatter = "F", int precision = 0) + { + if (precision > 0 && numericFormatter.Length == 1) + { + if (!s_PrecisionToStr.ContainsKey(precision)) + { + s_PrecisionToStr[precision] = new Dictionary<string, string>(); + } + if (!s_PrecisionToStr[precision].ContainsKey(numericFormatter)) + { + s_PrecisionToStr[precision][numericFormatter] = numericFormatter + precision; + } + return NumberToStr(value, s_PrecisionToStr[precision][numericFormatter]); + } + else + { + return NumberToStr(value, numericFormatter); + } + } + + public static string NumberToStr(double value, string formatter) + { + if (!s_NumberToStr.ContainsKey(value)) + { + s_NumberToStr[value] = new Dictionary<string, string>(); + } + if (!s_NumberToStr[value].ContainsKey(formatter)) + { + if (string.IsNullOrEmpty(formatter)) + { + if (value - (int) value == 0) + s_NumberToStr[value][formatter] = ((int) value).ToString(); + else + s_NumberToStr[value][formatter] = value.ToString(); + } + else if (formatter.StartsWith(NUMERIC_FORMATTER_D) || + formatter.StartsWith(NUMERIC_FORMATTER_d) || + formatter.StartsWith(NUMERIC_FORMATTER_X) || + formatter.StartsWith(NUMERIC_FORMATTER_x) + ) + { + s_NumberToStr[value][formatter] = ((int) value).ToString(formatter, ci); + } + else + { + s_NumberToStr[value][formatter] = value.ToString(formatter, ci); + } + } + return s_NumberToStr[value][formatter]; + } + + public static string IntToStr(int value, string numericFormatter = "") + { + return NumberToStr(value, numericFormatter); + } + + public static string ColorToStr(Color color) + { + if (s_ColorToStr.ContainsKey(color)) + { + return s_ColorToStr[color]; + } + else + { + s_ColorToStr[color] = ColorUtility.ToHtmlStringRGBA(color); + return s_ColorToStr[color]; + } + } + + public static string ColorToDotStr(Color color) + { + if (!s_ColorDotStr.ContainsKey(color)) + { + s_ColorDotStr[color] = "<color=#" + ColorToStr(color) + ">● </color>"; + } + return s_ColorDotStr[color]; + } + + public static string GetSerieLabelName(string prefix, int i, int j) + { + int key = i * 10000000 + j; + if (s_SerieLabelName.ContainsKey(key)) + { + return s_SerieLabelName[key]; + } + else + { + string name = prefix + "_" + i + "_" + j; + s_SerieLabelName[key] = name; + return name; + } + } + + internal static string GetComponentObjectName(MainComponent component) + { + Dictionary<int, string> dict; + var type = component.GetType(); + if (s_ComponentObjectName.TryGetValue(type, out dict)) + { + string name; + if (!dict.TryGetValue(component.index, out name)) + { + name = GetTypeName(type) + component.index; + dict[component.index] = name; + } + return name; + } + else + { + var name = GetTypeName(type) + component.index; + dict = new Dictionary<int, string>(); + dict.Add(component.index, name); + s_ComponentObjectName[type] = dict; + return name; + } + } + + internal static string GetAxisLabelName(int index) + { + string name; + if (!s_AxisLabelName.TryGetValue(index, out name)) + { + name = s_DefaultAxis + index; + s_AxisLabelName[index] = name; + return name; + } + else + { + return name; + } + } + + internal static string GetTypeName<T>() + { + return GetTypeName(typeof(T)); + } + + internal static string GetTypeName(Type type) + { + if (s_TypeName.ContainsKey(type)) return s_TypeName[type]; + else + { + var name = type.Name; + s_TypeName[type] = name; + return name; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartCached.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartCached.cs.meta new file mode 100644 index 0000000..7d4496e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartCached.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 403191b8caeb44430b89d9f3260c4a76 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartConst.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartConst.cs new file mode 100644 index 0000000..2b0eeb6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartConst.cs @@ -0,0 +1,11 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + public static class ChartConst + { + public static readonly Color32 clearColor32 = new Color32(0, 0, 0, 0); + public static readonly Color32 greyColor32 = new Color32(128, 128, 128, 255); + public static readonly Color clearColor = Color.clear; + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartConst.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartConst.cs.meta new file mode 100644 index 0000000..f932d45 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartConst.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e19d8fc0680be46b5ac9babf7dd9fe27 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartDrawer.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartDrawer.cs new file mode 100644 index 0000000..69b7e2c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartDrawer.cs @@ -0,0 +1,151 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + public static class ChartDrawer + { + public static void DrawSymbol(VertexHelper vh, SymbolType type, float symbolSize, float tickness, + Vector3 pos, Color32 color, Color32 toColor, float gap, float[] cornerRadius, + Color32 emptyColor, Color32 backgroundColor, Color32 borderColor, float smoothness, Vector3 startPos) + { + switch (type) + { + case SymbolType.None: + break; + case SymbolType.Circle: + if (gap > 0) + { + UGL.DrawDoughnut(vh, pos, symbolSize, symbolSize + gap, backgroundColor, backgroundColor, color, smoothness); + } + else + { + if (tickness > 0) + UGL.DrawDoughnut(vh, pos, symbolSize, symbolSize + tickness, borderColor, borderColor, color, smoothness); + else + UGL.DrawCricle(vh, pos, symbolSize, color, toColor, smoothness); + } + break; + case SymbolType.EmptyCircle: + if (gap > 0) + { + UGL.DrawCricle(vh, pos, symbolSize + gap, backgroundColor, smoothness); + UGL.DrawEmptyCricle(vh, pos, symbolSize, tickness, color, color, emptyColor, smoothness); + } + else + { + UGL.DrawEmptyCricle(vh, pos, symbolSize, tickness, color, color, emptyColor, smoothness); + } + break; + case SymbolType.Rect: + if (gap > 0) + { + UGL.DrawSquare(vh, pos, symbolSize + gap, backgroundColor); + UGL.DrawSquare(vh, pos, symbolSize, color, toColor); + } + else + { + if (tickness > 0) + { + UGL.DrawRoundRectangle(vh, pos, symbolSize, symbolSize, color, color, 0, cornerRadius, true); + UGL.DrawBorder(vh, pos, symbolSize, symbolSize, tickness, borderColor, 0, cornerRadius); + } + else + UGL.DrawRoundRectangle(vh, pos, symbolSize, symbolSize, color, color, 0, cornerRadius, true); + } + break; + case SymbolType.EmptyRect: + if (gap > 0) + { + UGL.DrawSquare(vh, pos, symbolSize + gap, backgroundColor); + UGL.DrawBorder(vh, pos, symbolSize / 2, symbolSize / 2, tickness, color); + } + else + { + UGL.DrawBorder(vh, pos, symbolSize / 2, symbolSize / 2, tickness, color); + } + break; + case SymbolType.Triangle: + if (gap > 0) + { + UGL.DrawTriangle(vh, pos, symbolSize + gap, backgroundColor); + UGL.DrawTriangle(vh, pos, symbolSize, color, toColor); + } + else + { + UGL.DrawTriangle(vh, pos, symbolSize, color, toColor); + } + break; + case SymbolType.Diamond: + if (gap > 0) + { + UGL.DrawDiamond(vh, pos, symbolSize + gap, backgroundColor); + UGL.DrawDiamond(vh, pos, symbolSize, color, toColor); + } + else + { + UGL.DrawDiamond(vh, pos, symbolSize, color, toColor); + } + break; + case SymbolType.Arrow: + var arrowWidth = symbolSize * 2; + var arrowHeight = arrowWidth * 1.5f; + var arrowOffset = 0; + var arrowDent = arrowWidth / 3.3f; + UGL.DrawArrow(vh, startPos, pos, arrowWidth, arrowHeight, + arrowOffset, arrowDent, color); + break; + } + } + + public static void DrawLineStyle(VertexHelper vh, LineStyle lineStyle, Vector3 startPos, Vector3 endPos, + Color32 defaultColor, float themeWidth, LineStyle.Type themeType) + { + var type = lineStyle.GetType(themeType); + var width = lineStyle.GetWidth(themeWidth); + var color = lineStyle.GetColor(defaultColor); + DrawLineStyle(vh, type, width, startPos, endPos, color, color); + } + + public static void DrawLineStyle(VertexHelper vh, LineStyle lineStyle, Vector3 startPos, Vector3 endPos, + float themeWidth, LineStyle.Type themeType, Color32 defaultColor, Color32 defaultToColor) + { + var type = lineStyle.GetType(themeType); + var width = lineStyle.GetWidth(themeWidth); + var color = lineStyle.GetColor(defaultColor); + var toColor = ChartHelper.IsClearColor(defaultToColor) ? color : defaultToColor; + DrawLineStyle(vh, type, width, startPos, endPos, color, toColor); + } + + public static void DrawLineStyle(VertexHelper vh, LineStyle.Type lineType, float lineWidth, + Vector3 startPos, Vector3 endPos, Color32 color) + { + DrawLineStyle(vh, lineType, lineWidth, startPos, endPos, color, color); + } + + public static void DrawLineStyle(VertexHelper vh, LineStyle.Type lineType, float lineWidth, + Vector3 startPos, Vector3 endPos, Color32 color, Color32 toColor) + { + switch (lineType) + { + case LineStyle.Type.Dashed: + UGL.DrawDashLine(vh, startPos, endPos, lineWidth, color, toColor); + break; + case LineStyle.Type.Dotted: + UGL.DrawDotLine(vh, startPos, endPos, lineWidth, color, toColor); + break; + case LineStyle.Type.Solid: + UGL.DrawLine(vh, startPos, endPos, lineWidth, color, toColor); + break; + case LineStyle.Type.DashDot: + UGL.DrawDashDotLine(vh, startPos, endPos, lineWidth, color); + break; + case LineStyle.Type.DashDotDot: + UGL.DrawDashDotDotLine(vh, startPos, endPos, lineWidth, color); + break; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartDrawer.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartDrawer.cs.meta new file mode 100644 index 0000000..64d094a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 712f08d71f1bf4ab6a1785526bcd5c30 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartHelper.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartHelper.cs new file mode 100644 index 0000000..c254007 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartHelper.cs @@ -0,0 +1,883 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Text.RegularExpressions; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +#if dUI_TextMeshPro +using TMPro; +#endif +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace XCharts.Runtime +{ + public static class ChartHelper + { + private static StringBuilder s_Builder = new StringBuilder(); + private static Vector3 s_DefaultIngoreDataVector3 = Vector3.zero; + + public static StringBuilder sb { get { return s_Builder; } } + public static Vector3 ignoreVector3 { get { return s_DefaultIngoreDataVector3; } } + + public static bool IsIngore(Vector3 pos) + { + return pos == s_DefaultIngoreDataVector3; + } + public static string Cancat(string str1, string str2) + { + s_Builder.Length = 0; + s_Builder.Append(str1).Append(str2); + return s_Builder.ToString(); + } + + public static string Cancat(string str1, int i) + { + s_Builder.Length = 0; + s_Builder.Append(str1).Append(ChartCached.IntToStr(i)); + return s_Builder.ToString(); + } + + public static void SetActive(GameObject gameObject, bool active) + { + if (gameObject == null) return; + SetActive(gameObject.transform, active); + } + + public static void SetActive(Image image, bool active) + { + if (image == null) return; + SetActive(image.gameObject, active); + } + + public static void SetActive(Text text, bool active) + { + if (text == null) return; + SetActive(text.gameObject, active); + } + + /// <summary> + /// 通过设置scale实现是否显示,优化性能,减少GC + /// </summary> + /// <param name="transform"></param> + /// <param name="active"></param> + public static void SetActive(Transform transform, bool active) + { + if (transform == null) return; + if (active) transform.localScale = Vector3.one; + else transform.localScale = Vector3.zero; + } + public static void HideAllObject(GameObject obj, string match = null) + { + if (obj == null) return; + HideAllObject(obj.transform, match); + } + + public static void HideAllObject(Transform parent, string match = null) + { + if (parent == null) return; + ActiveAllObject(parent, false, match); + } + + public static void ActiveAllObject(Transform parent, bool active, string match = null) + { + if (parent == null) return; + for (int i = 0; i < parent.childCount; i++) + { + if (match == null) + SetActive(parent.GetChild(i), active); + else + { + var go = parent.GetChild(i); + if (go.name.StartsWith(match)) + { + SetActive(go, active); + } + } + } + } + + public static void DestroyAllChildren(Transform parent) + { + if (parent == null) return; + var childCount = parent.childCount; + for (int i = childCount - 1; i >= 0; i--) + { + var go = parent.GetChild(i); + if (go != null) + { + GameObject.DestroyImmediate(go.gameObject, true); + } + } + } + + public static void DestoryGameObject(Transform parent, string childName) + { + if (parent == null) return; + var go = parent.Find(childName); + if (go != null) + { + GameObject.DestroyImmediate(go.gameObject, true); + } + } + public static void DestoryGameObjectByMatch(Transform parent, string match) + { + if (parent == null) return; + var childCount = parent.childCount; + for (int i = childCount - 1; i >= 0; i--) + { + var go = parent.GetChild(i); + if (go != null && go.name.StartsWith(match)) + { + GameObject.DestroyImmediate(go.gameObject, true); + } + } + } + + public static void DestoryGameObject(GameObject go) + { + if (go != null) GameObject.DestroyImmediate(go, true); + } + + public static string GetFullName(Transform transform) + { + string name = transform.name; + Transform obj = transform; + while (obj.transform.parent) + { + name = obj.transform.parent.name + "/" + name; + obj = obj.transform.parent; + } + return name; + } + + public static void RemoveComponent<T>(GameObject gameObject) + { + var component = gameObject.GetComponent<T>(); + if (component != null) + { +#if UNITY_EDITOR + if (!Application.isPlaying) + GameObject.DestroyImmediate(component as GameObject, true); + else + GameObject.Destroy(component as GameObject); +#else + GameObject.Destroy(component as GameObject); +#endif + } + } + public static T GetOrAddComponent<T>(Transform transform) where T : Component + { + return GetOrAddComponent<T>(transform.gameObject); + } + + public static T GetOrAddComponent<T>(GameObject gameObject) where T : Component + { + if (gameObject.GetComponent<T>() == null) + { + return gameObject.AddComponent<T>(); + } + else + { + return gameObject.GetComponent<T>(); + } + } + + public static GameObject AddObject(string name, Transform parent, Vector2 anchorMin, + Vector2 anchorMax, Vector2 pivot, Vector2 sizeDelta, int replaceIndex = -1) + { + GameObject obj; + if (parent.Find(name)) + { + obj = parent.Find(name).gameObject; + SetActive(obj, true); + obj.transform.localPosition = Vector3.zero; + obj.transform.localScale = Vector3.one; + } + else if (replaceIndex >= 0 && replaceIndex < parent.childCount) + { + obj = parent.GetChild(replaceIndex).gameObject; + if (!obj.name.Equals(name)) obj.name = name; + SetActive(obj, true); + } + else + { + obj = new GameObject(); + obj.name = name; + obj.transform.SetParent(parent); + obj.transform.localScale = Vector3.one; + obj.transform.localPosition = Vector3.zero; + } + RectTransform rect = GetOrAddComponent<RectTransform>(obj); + rect.localPosition = Vector3.zero; + rect.sizeDelta = sizeDelta; + rect.anchorMin = anchorMin; + rect.anchorMax = anchorMax; + rect.pivot = pivot; + rect.anchoredPosition3D = Vector3.zero; + return obj; + } + + public static void UpdateRectTransform(GameObject obj, Vector2 anchorMin, + Vector2 anchorMax, Vector2 pivot, Vector2 sizeDelta) + { + if (obj == null) return; + RectTransform rect = GetOrAddComponent<RectTransform>(obj); + rect.sizeDelta = sizeDelta; + rect.anchorMin = anchorMin; + rect.anchorMax = anchorMax; + rect.pivot = pivot; + } + + public static ChartText AddTextObject(string objectName, Transform parent, Vector2 anchorMin, Vector2 anchorMax, + Vector2 pivot, Vector2 sizeDelta, TextStyle textStyle, ComponentTheme theme, Color autoColor, + TextAnchor autoAlignment, ChartText chartText = null) + { + GameObject txtObj = AddObject(objectName, parent, anchorMin, anchorMax, pivot, sizeDelta); + txtObj.transform.localEulerAngles = new Vector3(0, 0, textStyle.rotate); + if (chartText == null) + chartText = new ChartText(); +#if dUI_TextMeshPro + RemoveComponent<Text>(txtObj); + chartText.tmpText = GetOrAddComponent<TextMeshProUGUI>(txtObj); + chartText.tmpText.font = textStyle.tmpFont == null ? theme.tmpFont : textStyle.tmpFont; + chartText.tmpText.fontStyle = textStyle.tmpFontStyle; + chartText.tmpText.richText = true; + chartText.tmpText.raycastTarget = false; + chartText.tmpText.enableWordWrapping = textStyle.autoWrap; +#else + chartText.text = GetOrAddComponent<Text>(txtObj); + chartText.text.font = textStyle.font == null ? theme.font : textStyle.font; + chartText.text.fontStyle = textStyle.fontStyle; + chartText.text.horizontalOverflow = textStyle.autoWrap ? HorizontalWrapMode.Wrap : HorizontalWrapMode.Overflow; + chartText.text.verticalOverflow = VerticalWrapMode.Overflow; + chartText.text.supportRichText = true; + chartText.text.raycastTarget = false; +#endif + if (textStyle.autoColor && autoColor != Color.clear) + chartText.SetColor(autoColor); + else + chartText.SetColor(textStyle.GetColor(theme.textColor)); + + chartText.SetAlignment(textStyle.autoAlign ? autoAlignment : textStyle.alignment); + chartText.SetFontSize(textStyle.GetFontSize(theme)); + chartText.SetText("Text"); + chartText.SetLineSpacing(textStyle.lineSpacing); + chartText.SetActive(textStyle.show); + + RectTransform rect = GetOrAddComponent<RectTransform>(txtObj); + rect.localPosition = Vector3.zero; + rect.sizeDelta = sizeDelta; + rect.anchorMin = anchorMin; + rect.anchorMax = anchorMax; + rect.pivot = pivot; + return chartText; + } + + internal static Painter AddPainterObject(string name, Transform parent, Vector2 anchorMin, Vector2 anchorMax, + Vector2 pivot, Vector2 sizeDelta, HideFlags hideFlags, int siblingIndex) + { + var painterObj = ChartHelper.AddObject(name, parent, anchorMin, anchorMax, pivot, sizeDelta); + painterObj.hideFlags = hideFlags; + painterObj.transform.SetSiblingIndex(siblingIndex); + return ChartHelper.GetOrAddComponent<Painter>(painterObj); + } + + public static Image AddIcon(string name, Transform parent, IconStyle iconStyle) + { + return AddIcon(name, parent, iconStyle.width, iconStyle.height, iconStyle.sprite, iconStyle.type); + } + + public static Image AddIcon(string name, Transform parent, float width, float height, Sprite sprite = null, + Image.Type type = Image.Type.Simple) + { + var anchorMax = new Vector2(0.5f, 0.5f); + var anchorMin = new Vector2(0.5f, 0.5f); + var pivot = new Vector2(0.5f, 0.5f); + var sizeDelta = new Vector2(width, height); + GameObject iconObj = AddObject(name, parent, anchorMin, anchorMax, pivot, sizeDelta); + var img = GetOrAddComponent<Image>(iconObj); + if (img.raycastTarget != false) + img.raycastTarget = false; + if (img.type != type) + img.type = type; + if (sprite != null && img.sprite != sprite) + { + img.sprite = sprite; + if (width == 0 || height == 0) + { + img.SetNativeSize(); + } + } + return img; + } + + public static ChartLabel AddAxisLabelObject(int total, int index, string name, Transform parent, + Vector2 sizeDelta, Axis axis, ComponentTheme theme, + string content, Color autoColor, TextAnchor autoAlignment = TextAnchor.MiddleCenter) + { + var textStyle = axis.axisLabel.textStyle; + var label = AddChartLabel(name, parent, axis.axisLabel, theme, content, autoColor, autoAlignment); + var labelShow = axis.axisLabel.show && (axis.axisLabel.interval == 0 || index % (axis.axisLabel.interval + 1) == 0); + if (labelShow) + { + if (!axis.axisLabel.showStartLabel && index == 0) labelShow = false; + else if (!axis.axisLabel.showEndLabel && index == total - 1) labelShow = false; + } + label.UpdateIcon(axis.axisLabel.icon, axis.GetIcon(index)); + label.text.SetActive(labelShow); + return label; + } + + public static ChartLabel AddChartLabel(string name, Transform parent, LabelStyle labelStyle, + ComponentTheme theme, string content, Color autoColor, TextAnchor autoAlignment = TextAnchor.MiddleCenter) + { + Vector2 anchorMin, anchorMax, pivot; + var sizeDelta = new Vector2(labelStyle.width, labelStyle.height); + var textStyle = labelStyle.textStyle; + var alignment = textStyle.GetAlignment(autoAlignment); + UpdateAnchorAndPivotByTextAlignment(alignment, out anchorMin, out anchorMax, out pivot); + var labelObj = AddObject(name, parent, anchorMin, anchorMax, pivot, sizeDelta); + // TODO: 为了兼容旧版本,这里后面版本可以去掉 + #region temp code + var oldText = labelObj.GetComponent<Text>(); + if (oldText != null) + { + GameObject.DestroyImmediate(oldText); + } + var oldImage = labelObj.GetComponent<Image>(); + if (oldImage != null) + { + GameObject.DestroyImmediate(oldImage); + } + #endregion + + var label = GetOrAddComponent<ChartLabel>(labelObj); + label.text = AddTextObject("Text", label.gameObject.transform, anchorMin, anchorMax, pivot, + sizeDelta, textStyle, theme, autoColor, autoAlignment, label.text); + label.icon = ChartHelper.AddIcon("Icon", label.gameObject.transform, labelStyle.icon); + label.SetSize(labelStyle.width, labelStyle.height); + label.SetTextPadding(labelStyle.textPadding); + label.SetText(content); + label.UpdateIcon(labelStyle.icon); + if (labelStyle.background.show) + { + label.color = (!labelStyle.background.autoColor || autoColor == Color.clear) ? + labelStyle.background.color : autoColor; + label.sprite = labelStyle.background.sprite; + label.type = labelStyle.background.type; + } + else + { + label.color = Color.clear; + label.sprite = null; + } + label.transform.localEulerAngles = new Vector3(0, 0, labelStyle.rotate); + label.transform.localPosition = labelStyle.offset; + return label; + } + + private static void UpdateAnchorAndPivotByTextAlignment(TextAnchor alignment, out Vector2 anchorMin, out Vector2 anchorMax, + out Vector2 pivot) + { + switch (alignment) + { + case TextAnchor.LowerLeft: + anchorMin = new Vector2(0f, 0f); + anchorMax = new Vector2(0f, 0f); + pivot = new Vector2(0f, 0f); + break; + case TextAnchor.UpperLeft: + anchorMin = new Vector2(0f, 1f); + anchorMax = new Vector2(0f, 1f); + pivot = new Vector2(0f, 1f); + break; + case TextAnchor.MiddleLeft: + anchorMin = new Vector2(0f, 0.5f); + anchorMax = new Vector2(0f, 0.5f); + pivot = new Vector2(0f, 0.5f); + break; + case TextAnchor.LowerRight: + anchorMin = new Vector2(1f, 0f); + anchorMax = new Vector2(1f, 0f); + pivot = new Vector2(1f, 0f); + break; + case TextAnchor.UpperRight: + anchorMin = new Vector2(1f, 1f); + anchorMax = new Vector2(1f, 1f); + pivot = new Vector2(1f, 1f); + break; + case TextAnchor.MiddleRight: + anchorMin = new Vector2(1, 0.5f); + anchorMax = new Vector2(1, 0.5f); + pivot = new Vector2(1, 0.5f); + break; + case TextAnchor.LowerCenter: + anchorMin = new Vector2(0.5f, 0f); + anchorMax = new Vector2(0.5f, 0f); + pivot = new Vector2(0.5f, 0f); + break; + case TextAnchor.UpperCenter: + anchorMin = new Vector2(0.5f, 1f); + anchorMax = new Vector2(0.5f, 1f); + pivot = new Vector2(0.5f, 1f); + break; + case TextAnchor.MiddleCenter: + anchorMin = new Vector2(0.5f, 0.5f); + anchorMax = new Vector2(0.5f, 0.5f); + pivot = new Vector2(0.5f, 0.5f); + break; + default: + anchorMin = new Vector2(0.5f, 0.5f); + anchorMax = new Vector2(0.5f, 0.5f); + pivot = new Vector2(0.5f, 0.5f); + break; + } + } + + internal static ChartLabel AddTooltipIndicatorLabel(Tooltip tooltip, string name, Transform parent, + ThemeStyle theme, TextAnchor alignment) + { + var label = ChartHelper.AddChartLabel(name, parent, tooltip.indicatorLabelStyle, theme.tooltip, + "", Color.clear, alignment); + label.SetActive(tooltip.show && tooltip.indicatorLabelStyle.show); + return label; + } + + public static void GetPointList(ref List<Vector3> posList, Vector3 sp, Vector3 ep, float k = 30f) + { + Vector3 dir = (ep - sp).normalized; + float dist = Vector3.Distance(sp, ep); + int segment = (int) (dist / k); + posList.Clear(); + posList.Add(sp); + for (int i = 1; i < segment; i++) + { + posList.Add(sp + dir * dist * i / segment); + } + posList.Add(ep); + } + + public static bool IsValueEqualsColor(Color32 color1, Color32 color2) + { + return color1.a == color2.a && + color1.b == color2.b && + color1.g == color2.g && + color1.r == color2.r; + } + + public static bool IsValueEqualsColor(Color color1, Color color2) + { + return color1.a == color2.a && + color1.b == color2.b && + color1.g == color2.g && + color1.r == color2.r; + } + + public static bool IsValueEqualsString(string str1, string str2) + { + if (str1 == null && str2 == null) return true; + else if (str1 != null && str2 != null) return str1.Equals(str2); + else return false; + } + + public static bool IsValueEqualsVector2(Vector2 v1, Vector2 v2) + { + return v1.x == v2.x && v1.y == v2.y; + } + + public static bool IsValueEqualsVector3(Vector3 v1, Vector3 v2) + { + return v1.x == v2.x && v1.y == v2.y && v1.z == v2.z; + } + + public static bool IsValueEqualsList<T>(List<T> list1, List<T> list2) + { + if (list1 == null || list2 == null) return false; + if (list1.Count != list2.Count) return false; + for (int i = 0; i < list1.Count; i++) + { + if (list1[i] == null && list2[i] == null) { } + else + { + if (list1[i] != null) + { + if (!list1[i].Equals(list2[i])) return false; + } + else + { + if (!list2[i].Equals(list1[i])) return false; + } + } + } + return true; + } + + public static bool IsEquals(double d1, double d2) + { + return Math.Abs(d1 - d2) < 0.000001d; + } + + public static bool IsEquals(float d1, float d2) + { + return Math.Abs(d1 - d2) < 0.000001f; + } + + public static bool IsClearColor(Color32 color) + { + return color.a == 0 && color.b == 0 && color.g == 0 && color.r == 0; + } + + public static bool IsClearColor(Color color) + { + return color.a == 0 && color.b == 0 && color.g == 0 && color.r == 0; + } + + public static bool IsZeroVector(Vector3 pos) + { + return pos.x == 0 && pos.y == 0 && pos.z == 0; + } + + public static bool CopyList<T>(List<T> toList, List<T> fromList) + { + if (toList == null || fromList == null) return false; + toList.Clear(); + foreach (var item in fromList) toList.Add(item); + return true; + } + public static bool CopyArray<T>(T[] toList, T[] fromList) + { + if (toList == null || fromList == null) return false; + if (toList.Length != fromList.Length) + { + toList = new T[fromList.Length]; + } + for (int i = 0; i < fromList.Length; i++) toList[i] = fromList[i]; + return true; + } + + public static List<float> ParseFloatFromString(string jsonData) + { + List<float> list = new List<float>(); + if (string.IsNullOrEmpty(jsonData)) return list; + int startIndex = jsonData.IndexOf("["); + int endIndex = jsonData.IndexOf("]"); + string temp = jsonData.Substring(startIndex + 1, endIndex - startIndex - 1); + if (temp.IndexOf("],") > -1 || temp.IndexOf("] ,") > -1) + { + string[] datas = temp.Split(new string[] { "],", "] ," }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < datas.Length; i++) + { + temp = datas[i]; + } + return list; + } + else + { + string[] datas = temp.Split(','); + for (int i = 0; i < datas.Length; i++) + { + list.Add(float.Parse(datas[i].Trim())); + } + return list; + } + } + + public static List<string> ParseStringFromString(string jsonData) + { + List<string> list = new List<string>(); + if (string.IsNullOrEmpty(jsonData)) return list; + string pattern = "[\"'](.*?)[\"']"; + if (Regex.IsMatch(jsonData, pattern)) + { + MatchCollection m = Regex.Matches(jsonData, pattern); + foreach (Match match in m) + { + list.Add(match.Groups[1].Value); + } + } + return list; + } + + public static Color32 GetColor(string hexColorStr) + { + Color color; + ColorUtility.TryParseHtmlString(hexColorStr, out color); + return (Color32) color; + } + + public static double GetMaxDivisibleValue(double max, int ceilRate) + { + if (max == 0) return 0; + if (max > -1 && max < 1) + { + int count = 1; + int intvalue = (int) (max * Mathf.Pow(10, count)); + while (intvalue == 0 && count < 12) + { + count++; + intvalue = (int) (max * Mathf.Pow(10, count)); + } + var pow = Mathf.Pow(10, count); + if (max > 0) return (int) ((max * pow + 1)) / pow; + else return (int) ((max * pow - 1)) / pow; + } + if (ceilRate == 0) + { + var bigger = Math.Ceiling(Math.Abs(max)); + int n = 1; + while (bigger / (Mathf.Pow(10, n)) > 10) + { + n++; + } + double mm = bigger; + if (mm > 10 && n < 38) + { + mm = bigger - bigger % (Mathf.Pow(10, n)); + mm += max > 0 ? Mathf.Pow(10, n) : -Mathf.Pow(10, n); + } + var mmm = mm - Mathf.Pow(10, n) / 2; + if (max < 0) return -Math.Ceiling(mmm > -max ? mmm : mm); + else return Math.Ceiling(mmm > max ? mmm : mm); + } + else + { + var mod = max % ceilRate; + int rate = (int) (max / ceilRate); + return mod == 0 ? max : (max < 0 ? rate : rate + 1) * ceilRate; + } + } + + public static double GetMinDivisibleValue(double min, int ceilRate) + { + if (min == 0) return 0; + if (min > -1 && min < 1) + { + int count = 1; + int intvalue = (int) (min * Mathf.Pow(10, count)); + while (intvalue == 0 && count < 12) + { + count++; + intvalue = (int) (min * Mathf.Pow(10, count)); + } + var pow = Mathf.Pow(10, count); + if (min > 0) return (int) ((min * pow + 1)) / pow; + else return (int) ((min * pow - 1)) / pow; + } + if (ceilRate == 0) + { + var bigger = Math.Floor(Math.Abs(min)); + int n = 1; + while (bigger / (Mathf.Pow(10, n)) > 10) + { + n++; + } + double mm = bigger; + if (mm > 10 && n < 38) + { + mm = bigger - bigger % (Mathf.Pow(10, n)); + mm += min < 0 ? Mathf.Pow(10, n) : -Mathf.Pow(10, n); + } + if (min < 0) return -Math.Floor(mm); + else return Math.Floor(mm); + } + else + { + var mod = min % ceilRate; + int rate = (int) (min / ceilRate); + return mod == 0 ? min : (min < 0 ? rate - 1 : rate) * ceilRate; + } + } + + public static double GetMaxLogValue(double value, float logBase, bool isLogBaseE, out int splitNumber) + { + splitNumber = 0; + if (value <= 0) return 0; + double max = 0; + while (max < value) + { + if (isLogBaseE) + { + max = Math.Exp(splitNumber); + } + else + { + max = Math.Pow(logBase, splitNumber); + } + splitNumber++; + } + return max; + } + + public static double GetMinLogValue(double value, float logBase, bool isLogBaseE, out int splitNumber) + { + splitNumber = 0; + if (value > 1) return 1; + double min = 1; + while (min > value) + { + if (isLogBaseE) + { + min = Math.Exp(-splitNumber); + } + else + { + min = Math.Pow(logBase, -splitNumber); + } + splitNumber++; + } + return min; + } + + public static int GetFloatAccuracy(double value) + { + if (value > 1 || value < -1) return 0; + int count = 1; + int intvalue = (int) (value * Mathf.Pow(10, count)); + while (intvalue == 0 && count < 38) + { + count++; + intvalue = (int) (value * Mathf.Pow(10, count)); + } + if (count == 38 && (value == 0 || value == 1)) return 1; + else return count; + } + + public static void AddEventListener(GameObject obj, EventTriggerType type, + UnityEngine.Events.UnityAction<BaseEventData> call) + { + EventTrigger trigger = GetOrAddComponent<EventTrigger>(obj.gameObject); + EventTrigger.Entry entry = new EventTrigger.Entry(); + entry.eventID = type; + entry.callback = new EventTrigger.TriggerEvent(); + entry.callback.AddListener(call); + trigger.triggers.Add(entry); + } + + public static void ClearEventListener(GameObject obj) + { + EventTrigger trigger = obj.GetComponent<EventTrigger>(); + if (trigger != null) + { + trigger.triggers.Clear(); + } + } + + public static Vector3 RotateRound(Vector3 position, Vector3 center, Vector3 axis, float angle) + { + Vector3 point = Quaternion.AngleAxis(angle, axis) * (position - center); + Vector3 resultVec3 = center + point; + return resultVec3; + } + + public static Vector3 GetPosition(Vector3 center, float angle, float radius) + { + var rad = angle * Mathf.Deg2Rad; + var px = Mathf.Sin(rad) * radius; + var py = Mathf.Cos(rad) * radius; + return center + new Vector3(px, py); + } + + /// <summary> + /// 获得0-360的角度(12点钟方向为0度) + /// </summary> + /// <param name="from"></param> + /// <param name="to"></param> + /// <returns></returns> + public static float GetAngle360(Vector2 from, Vector2 to) + { + float angle; + + Vector3 cross = Vector3.Cross(from, to); + angle = Vector2.Angle(from, to); + angle = cross.z > 0 ? -angle : angle; + angle = (angle + 360) % 360; + return angle; + } + + public static Vector3 GetPos(Vector3 center, float radius, float angle, bool isDegree = false) + { + angle = isDegree ? angle * Mathf.Deg2Rad : angle; + return new Vector3(center.x + radius * Mathf.Sin(angle), center.y + radius * Mathf.Cos(angle)); + } + + public static Vector3 GetDire(float angle, bool isDegree = false) + { + angle = isDegree ? angle * Mathf.Deg2Rad : angle; + return new Vector3(Mathf.Sin(angle), Mathf.Cos(angle)); + } + + public static Vector3 GetVertialDire(Vector3 dire) + { + if (dire.x == 0) + { + return new Vector3(-1, 0, 0); + } + if (dire.y == 0) + { + return new Vector3(0, -1, 0); + } + else + { + return new Vector3(-dire.y / dire.x, 1, 0).normalized; + } + } + + public static Vector3 GetLastValue(List<Vector3> list) + { + if (list.Count <= 0) return Vector3.zero; + else return list[list.Count - 1]; + } + + public static void SetColorOpacity(ref Color32 color, float opacity) + { + if (color.a != 0 && opacity != 1) + { + color.a = (byte) (color.a * opacity); + } + } + + public static Color32 GetHighlightColor(Color32 color, float rate = 0.8f) + { + var newColor = color; + newColor.r = (byte) (color.r * rate); + newColor.g = (byte) (color.g * rate); + newColor.b = (byte) (color.b * rate); + return newColor; + } + + public static bool IsPointInQuadrilateral(Vector3 P, Vector3 A, Vector3 B, Vector3 C, Vector3 D) + { + Vector3 v0 = Vector3.Cross(A - D, P - D); + Vector3 v1 = Vector3.Cross(B - A, P - A); + Vector3 v2 = Vector3.Cross(C - B, P - B); + Vector3 v3 = Vector3.Cross(D - C, P - C); + if (Vector3.Dot(v0, v1) < 0 || Vector3.Dot(v0, v2) < 0 || Vector3.Dot(v0, v3) < 0) + { + return false; + } + else + { + return true; + } + } + + public static bool IsInRect(Vector3 pos, float xMin, float xMax, float yMin, float yMax) + { + return pos.x >= xMin && pos.x <= xMax && pos.y <= yMax && pos.y >= yMin; + } + + public static bool IsColorAlphaZero(Color color) + { + return !ChartHelper.IsClearColor(color) && color.a == 0; + } + + public static float GetActualValue(float valueOrRate, float total, float maxRate = 1.5f) + { + if (valueOrRate >= -maxRate && valueOrRate <= maxRate) return valueOrRate * total; + else return valueOrRate; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartHelper.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartHelper.cs.meta new file mode 100644 index 0000000..2e6abc8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ChartHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 47cfa7bd879be4069bd187e46346d73d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ComponentHelper.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ComponentHelper.cs new file mode 100644 index 0000000..f59a703 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ComponentHelper.cs @@ -0,0 +1,75 @@ +using System.Collections.Generic; + +namespace XCharts.Runtime +{ + public static class ComponentHelper + { + public static AngleAxis GetAngleAxis(List<MainComponent> components, int polarIndex) + { + foreach (var component in components) + { + if (component is AngleAxis) + { + var axis = component as AngleAxis; + if (axis.polarIndex == polarIndex) return axis; + } + } + return null; + } + + public static RadiusAxis GetRadiusAxis(List<MainComponent> components, int polarIndex) + { + foreach (var component in components) + { + if (component is RadiusAxis) + { + var axis = component as RadiusAxis; + if (axis.polarIndex == polarIndex) return axis; + } + } + return null; + } + + public static float GetXAxisOnZeroOffset(List<MainComponent> components, XAxis axis) + { + if (!axis.axisLine.onZero) return 0; + foreach (var component in components) + { + if (component is YAxis) + { + var yAxis = component as YAxis; + if (yAxis.IsValue() && yAxis.gridIndex == axis.gridIndex) return yAxis.context.offset; + } + } + return 0; + } + + public static float GetYAxisOnZeroOffset(List<MainComponent> components, YAxis axis) + { + if (!axis.axisLine.onZero) return 0; + foreach (var component in components) + { + if (component is XAxis) + { + var xAxis = component as XAxis; + if (xAxis.IsValue() && xAxis.gridIndex == axis.gridIndex) return xAxis.context.offset; + } + } + return 0; + } + + public static bool IsAnyCategoryOfYAxis(List<MainComponent> components) + { + foreach (var component in components) + { + if (component is YAxis) + { + var yAxis = component as YAxis; + if (yAxis.type == Axis.AxisType.Category) + return true; + } + } + return false; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ComponentHelper.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ComponentHelper.cs.meta new file mode 100644 index 0000000..df48974 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/ComponentHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1b7af706293fe4e63b4d079dbe5c0ea2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/DataHelper.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/DataHelper.cs new file mode 100644 index 0000000..ee555ad --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/DataHelper.cs @@ -0,0 +1,110 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + internal static class DataHelper + { + public static double DataAverage(ref List<SerieData> showData, SampleType sampleType, + int minCount, int maxCount, int rate) + { + double totalAverage = 0; + if (rate > 1 && sampleType == SampleType.Peak) + { + double total = 0; + for (int i = minCount; i < maxCount; i++) + { + total += showData[i].data[1]; + } + totalAverage = total / (maxCount - minCount); + } + return totalAverage; + } + + public static double SampleValue(ref List<SerieData> showData, SampleType sampleType, int rate, + int minCount, int maxCount, double totalAverage, int index, float dataChangeDuration, + ref bool dataChanging, Axis axis) + { + var inverse = axis.inverse; + var minValue = axis.context.minValue; + var maxValue = axis.context.maxValue; + if (rate <= 1 || index == minCount) + { + if (showData[index].IsDataChanged()) + dataChanging = true; + + return showData[index].GetCurrData(1, dataChangeDuration, inverse, minValue, maxValue); + } + switch (sampleType) + { + case SampleType.Sum: + case SampleType.Average: + double total = 0; + var count = 0; + for (int i = index; i > index - rate; i--) + { + count++; + total += showData[i].GetCurrData(1, dataChangeDuration, inverse, minValue, maxValue); + if (showData[i].IsDataChanged()) + dataChanging = true; + } + if (sampleType == SampleType.Average) + return total / rate; + else + return total; + + case SampleType.Max: + double max = double.MinValue; + for (int i = index; i > index - rate; i--) + { + var value = showData[i].GetCurrData(1, dataChangeDuration, inverse, minValue, maxValue); + if (value > max) + max = value; + + if (showData[i].IsDataChanged()) + dataChanging = true; + } + return max; + + case SampleType.Min: + double min = double.MaxValue; + for (int i = index; i > index - rate; i--) + { + var value = showData[i].GetCurrData(1, dataChangeDuration, inverse, minValue, maxValue); + if (value < min) + min = value; + + if (showData[i].IsDataChanged()) + dataChanging = true; + } + return min; + + case SampleType.Peak: + max = double.MinValue; + min = double.MaxValue; + total = 0; + for (int i = index; i > index - rate; i--) + { + var value = showData[i].GetCurrData(1, dataChangeDuration, inverse, minValue, maxValue); + total += value; + if (value < min) + min = value; + if (value > max) + max = value; + + if (showData[i].IsDataChanged()) + dataChanging = true; + } + var average = total / rate; + if (average >= totalAverage) + return max; + else + return min; + } + if (showData[index].IsDataChanged()) + dataChanging = true; + + return showData[index].GetCurrData(1, dataChangeDuration, inverse, minValue, maxValue); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/DataHelper.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/DataHelper.cs.meta new file mode 100644 index 0000000..da77e53 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/DataHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c982f1be15b204c9190197803101f2db +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/LayoutHelper.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/LayoutHelper.cs new file mode 100644 index 0000000..6b128f8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/LayoutHelper.cs @@ -0,0 +1,226 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + public static class LayerHelper + { + private static Vector2 s_Vector0And0 = new Vector2(0, 0); + private static Vector2 s_Vector0And0Dot5 = new Vector2(0, 0.5f); + private static Vector2 s_Vector0And1 = new Vector2(0, 1f); + private static Vector2 s_Vector0Dot5And1 = new Vector2(0.5f, 1f); + private static Vector2 s_Vector0Dot5And0Dot5 = new Vector2(0.5f, 0.5f); + private static Vector2 s_Vector0Dot5And0 = new Vector2(0.5f, 0f); + private static Vector2 s_Vector1And1 = new Vector2(1f, 1f); + private static Vector2 s_Vector1And0Dot5 = new Vector2(1f, 0.5f); + private static Vector2 s_Vector1And0 = new Vector2(1f, 0); + + internal static Vector2 ResetChartPositionAndPivot(Vector2 minAnchor, Vector2 maxAnchor, float width, + float height, ref float chartX, ref float chartY) + { + if (IsLeftTop(minAnchor, maxAnchor)) + { + chartX = 0; + chartY = -height; + return s_Vector0And1; + } + else if (IsLeftCenter(minAnchor, maxAnchor)) + { + chartX = 0; + chartY = -height / 2; + return s_Vector0And0Dot5; + } + else if (IsLeftBottom(minAnchor, maxAnchor)) + { + chartX = 0; + chartY = 0; + return s_Vector0And0; + } + else if (IsCenterTop(minAnchor, maxAnchor)) + { + chartX = -width / 2; + chartY = -height; + return s_Vector0Dot5And1; + } + else if (IsCenterCenter(minAnchor, maxAnchor)) + { + chartX = -width / 2; + chartY = -height / 2; + return s_Vector0Dot5And0Dot5; + } + else if (IsCenterBottom(minAnchor, maxAnchor)) + { + chartX = -width / 2; + chartY = 0; + return s_Vector0Dot5And0; + } + else if (IsRightTop(minAnchor, maxAnchor)) + { + chartX = -width; + chartY = -height; + return s_Vector1And1; + } + else if (IsRightCenter(minAnchor, maxAnchor)) + { + chartX = -width; + chartY = -height / 2; + return s_Vector1And0Dot5; + } + else if (IsRightBottom(minAnchor, maxAnchor)) + { + chartX = -width; + chartY = 0; + return s_Vector1And0; + } + else if (IsStretchTop(minAnchor, maxAnchor)) + { + chartX = -width / 2; + chartY = -height; + return s_Vector0Dot5And1; + } + else if (IsStretchMiddle(minAnchor, maxAnchor)) + { + chartX = -width / 2; + chartY = -height / 2; + return s_Vector0Dot5And0Dot5; + } + else if (IsStretchBottom(minAnchor, maxAnchor)) + { + chartX = -width / 2; + chartY = 0; + return s_Vector0Dot5And0; + } + else if (IsStretchLeft(minAnchor, maxAnchor)) + { + chartX = 0; + chartY = -height / 2; + return s_Vector0And0Dot5; + } + else if (IsStretchCenter(minAnchor, maxAnchor)) + { + chartX = -width / 2; + chartY = -height / 2; + return s_Vector0Dot5And0Dot5; + } + else if (IsStretchRight(minAnchor, maxAnchor)) + { + chartX = -width; + chartY = -height / 2; + return s_Vector1And0Dot5; + } + else if (IsStretchStrech(minAnchor, maxAnchor)) + { + chartX = -width / 2; + chartY = -height / 2; + return s_Vector0Dot5And0Dot5; + } + chartX = 0; + chartY = 0; + return Vector2.zero; + } + + private static bool IsLeftTop(Vector2 minAnchor, Vector2 maxAnchor) + { + return minAnchor == s_Vector0And1 && maxAnchor == s_Vector0And1; + } + + private static bool IsLeftCenter(Vector2 minAnchor, Vector2 maxAnchor) + { + return minAnchor == s_Vector0And0Dot5 && maxAnchor == s_Vector0And0Dot5; + } + + private static bool IsLeftBottom(Vector2 minAnchor, Vector2 maxAnchor) + { + return minAnchor == Vector2.zero && maxAnchor == Vector2.zero; + } + + private static bool IsCenterTop(Vector2 minAnchor, Vector2 maxAnchor) + { + return minAnchor == s_Vector0Dot5And1 && maxAnchor == s_Vector0Dot5And1; + } + + private static bool IsCenterCenter(Vector2 minAnchor, Vector2 maxAnchor) + { + return minAnchor == s_Vector0Dot5And0Dot5 && maxAnchor == s_Vector0Dot5And0Dot5; + } + + private static bool IsCenterBottom(Vector2 minAnchor, Vector2 maxAnchor) + { + return minAnchor == s_Vector0Dot5And0 && maxAnchor == s_Vector0Dot5And0; + } + + private static bool IsRightTop(Vector2 minAnchor, Vector2 maxAnchor) + { + return minAnchor == s_Vector1And1 && maxAnchor == s_Vector1And1; + } + + private static bool IsRightCenter(Vector2 minAnchor, Vector2 maxAnchor) + { + return minAnchor == s_Vector1And0Dot5 && maxAnchor == s_Vector1And0Dot5; + } + + private static bool IsRightBottom(Vector2 minAnchor, Vector2 maxAnchor) + { + return minAnchor == s_Vector1And0 && maxAnchor == s_Vector1And0; + } + + private static bool IsStretchTop(Vector2 minAnchor, Vector2 maxAnchor) + { + return minAnchor == s_Vector0And1 && maxAnchor == s_Vector1And1; + } + + private static bool IsStretchMiddle(Vector2 minAnchor, Vector2 maxAnchor) + { + return minAnchor == s_Vector0And0Dot5 && maxAnchor == s_Vector1And0Dot5; + } + + private static bool IsStretchBottom(Vector2 minAnchor, Vector2 maxAnchor) + { + return minAnchor == s_Vector0And0 && maxAnchor == s_Vector1And0; + } + + private static bool IsStretchLeft(Vector2 minAnchor, Vector2 maxAnchor) + { + return minAnchor == s_Vector0And0 && maxAnchor == s_Vector0And1; + } + + private static bool IsStretchCenter(Vector2 minAnchor, Vector2 maxAnchor) + { + return minAnchor == s_Vector0Dot5And0 && maxAnchor == s_Vector0Dot5And1; + } + + private static bool IsStretchRight(Vector2 minAnchor, Vector2 maxAnchor) + { + return minAnchor == s_Vector1And0 && maxAnchor == s_Vector1And1; + } + + private static bool IsStretchStrech(Vector2 minAnchor, Vector2 maxAnchor) + { + return minAnchor == s_Vector0And0 && maxAnchor == s_Vector1And1; + } + + public static bool IsStretchPivot(RectTransform rt) + { + return IsStretchTop(rt.anchorMin, rt.anchorMax) || + IsStretchMiddle(rt.anchorMin, rt.anchorMax) || + IsStretchBottom(rt.anchorMin, rt.anchorMax) || + IsStretchLeft(rt.anchorMin, rt.anchorMax) || + IsStretchCenter(rt.anchorMin, rt.anchorMax) || + IsStretchRight(rt.anchorMin, rt.anchorMax) || + IsStretchStrech(rt.anchorMin, rt.anchorMax); + } + + public static bool IsFixedWidthHeight(RectTransform rt) + { + return IsLeftTop(rt.anchorMin, rt.anchorMax) || + IsLeftCenter(rt.anchorMin, rt.anchorMax) || + IsLeftBottom(rt.anchorMin, rt.anchorMax) || + IsCenterTop(rt.anchorMin, rt.anchorMax) || + IsCenterCenter(rt.anchorMin, rt.anchorMax) || + IsCenterBottom(rt.anchorMin, rt.anchorMax) || + IsRightTop(rt.anchorMin, rt.anchorMax) || + IsRightCenter(rt.anchorMin, rt.anchorMax) || + IsRightBottom(rt.anchorMin, rt.anchorMax); + } + + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/LayoutHelper.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/LayoutHelper.cs.meta new file mode 100644 index 0000000..f9d31b8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/LayoutHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8d6eeea6fc2824cc891fec0674bf2d71 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/MathUtil.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/MathUtil.cs new file mode 100644 index 0000000..2103a5f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/MathUtil.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Text.RegularExpressions; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + public static class MathUtil + { + public static double Abs(double d) + { + return d > 0 ? d : -d; + } + + public static double Clamp(double d, double min, double max) + { + if (d >= min && d <= max) return d; + else if (d < min) return min; + else return max; + } + + public static bool Approximately(double a, double b) + { + return Math.Abs(b - a) < Math.Max(0.000001f * Math.Max(Math.Abs(a), Math.Abs(b)), Mathf.Epsilon * 8); + } + + public static double Clamp01(double value) + { + if (value < 0F) + return 0F; + else if (value > 1F) + return 1F; + else + return value; + } + + public static double Lerp(double a, double b, double t) + { + return a + (b - a) * Clamp01(t); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/MathUtil.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/MathUtil.cs.meta new file mode 100644 index 0000000..0c3d017 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/Utilities/MathUtil.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 094dc7b90e3a049b48f15f990c050db1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XCResourcesImporter.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XCResourcesImporter.cs new file mode 100644 index 0000000..f8f252d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XCResourcesImporter.cs @@ -0,0 +1,168 @@ +#if UNITY_EDITOR + +using System; +using System.IO; +using UnityEditor; +using UnityEngine; + +namespace XCharts.Runtime +{ + [System.Serializable] + public class XCResourcesImporter + { + bool m_EssentialResourcesImported; + + public XCResourcesImporter() { } + + public void OnDestroy() { } + + public void OnGUI() + { + m_EssentialResourcesImported = Resources.Load<XCSettings>("XCSettings") != null; + + GUILayout.BeginVertical(); + { + GUILayout.BeginVertical(EditorStyles.helpBox); + { + GUILayout.Label("XCharts Essentials", EditorStyles.boldLabel); + GUILayout.Label("This appears to be the first time you access XCharts, as such we need to add resources to your project that are essential for using XCharts. These new resources will be placed at the root of your project in the \"XCharts\" folder.", new GUIStyle(EditorStyles.label) { wordWrap = true }); + GUILayout.Space(5f); + + GUI.enabled = !m_EssentialResourcesImported; + GUI.enabled = true; + if (GUILayout.Button("Import XCharts Essentials")) + { + string packageFullPath = XChartsMgr.GetPackageFullPath(); + if (packageFullPath != null) + { + var sourPath = Path.Combine(packageFullPath, "Resources"); + var destPath = Path.Combine(Application.dataPath, "XCharts/Resources"); + if (CopyFolder(sourPath, destPath)) + { + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + } + } + } + GUILayout.Space(5f); + GUI.enabled = true; + } + GUILayout.EndVertical(); + } + GUILayout.EndVertical(); + GUILayout.Space(5f); + } + + private static bool CopyFolder(string sourPath, string destPath) + { + try + { + if (!Directory.Exists(destPath)) + { + Directory.CreateDirectory(destPath); + } + var files = Directory.GetFiles(sourPath); + foreach (var file in files) + { + var name = Path.GetFileName(file); + var path = Path.Combine(destPath, name); + File.Copy(file, path); + } + var folders = Directory.GetDirectories(sourPath); + foreach (var folder in folders) + { + var name = Path.GetFileName(folder); + var path = Path.Combine(destPath, name); + CopyFolder(folder, path); + } + return true; + } + catch (Exception e) + { + Debug.LogError("CopyFolder:" + e.Message); + return false; + } + } + + internal void RegisterResourceImportCallback() + { + AssetDatabase.importPackageCompleted += ImportCallback; + } + + /// <summary> + /// + /// </summary> + /// <param name="packageName"></param> + void ImportCallback(string packageName) + { + if (packageName == "XCharts Essential Resources") + { + m_EssentialResourcesImported = true; +#if UNITY_2018_3_OR_NEWER + SettingsService.NotifySettingsProviderChanged(); +#endif + } + Debug.Log("[" + packageName + "] have been imported."); + + AssetDatabase.importPackageCompleted -= ImportCallback; + } + } + + public class XCResourceImporterWindow : UnityEditor.EditorWindow + { + [SerializeField] XCResourcesImporter m_ResourceImporter; + + static XCResourceImporterWindow m_ImporterWindow; + + public static void ShowPackageImporterWindow() + { + var packagePath = XChartsMgr.GetPackageFullPath(); + if (packagePath != null) + { + if (m_ImporterWindow == null) + { + m_ImporterWindow = GetWindow<XCResourceImporterWindow>(); + m_ImporterWindow.titleContent = new GUIContent("XCharts Importer"); + } + m_ImporterWindow.Focus(); + } + } + + void OnEnable() + { + SetEditorWindowSize(); + + if (m_ResourceImporter == null) + m_ResourceImporter = new XCResourcesImporter(); + } + + void OnDestroy() + { + m_ResourceImporter.OnDestroy(); + } + + void OnGUI() + { + m_ResourceImporter.OnGUI(); + } + + void OnInspectorUpdate() + { + Repaint(); + } + + /// <summary> + /// Limits the minimum size of the editor window. + /// |</summary> + void SetEditorWindowSize() + { + EditorWindow editorWindow = this; + + Vector2 windowSize = new Vector2(640, 210); + editorWindow.minSize = windowSize; + editorWindow.maxSize = windowSize; + } + } +} + +#endif \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XCResourcesImporter.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XCResourcesImporter.cs.meta new file mode 100644 index 0000000..2fd06d7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XCResourcesImporter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fee2f9747b8914ddba13895caa2aa236 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XCSettings.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XCSettings.cs new file mode 100644 index 0000000..d1617bc --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XCSettings.cs @@ -0,0 +1,207 @@ +using System; +using System.Collections.Generic; +using System.IO; +using UnityEngine; +#if dUI_TextMeshPro +using TMPro; +#endif +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace XCharts.Runtime +{ + [Serializable] +#if UNITY_2018_3 + + [ExcludeFromPresetAttribute] +#endif + public class XCSettings : ScriptableObject + { + public readonly static string THEME_ASSET_NAME_PREFIX = "XCTheme-"; + public readonly static string THEME_ASSET_FOLDER = "Assets/XCharts/Resources"; + + [SerializeField] private Lang m_Lang = null; + [SerializeField] private Font m_Font = null; +#if dUI_TextMeshPro + [SerializeField] private TMP_FontAsset m_TMPFont = null; +#endif + [SerializeField][Range(1, 200)] private int m_FontSizeLv1 = 28; + [SerializeField][Range(1, 200)] private int m_FontSizeLv2 = 24; + [SerializeField][Range(1, 200)] private int m_FontSizeLv3 = 20; + [SerializeField][Range(1, 200)] private int m_FontSizeLv4 = 18; + [SerializeField] private LineStyle.Type m_AxisLineType = LineStyle.Type.Solid; + [SerializeField][Range(0, 20)] private float m_AxisLineWidth = 0.8f; + [SerializeField] private LineStyle.Type m_AxisSplitLineType = LineStyle.Type.Solid; + [SerializeField][Range(0, 20)] private float m_AxisSplitLineWidth = 0.8f; + [SerializeField][Range(0, 20)] private float m_AxisTickWidth = 0.8f; + [SerializeField][Range(0, 20)] private float m_AxisTickLength = 5f; + [SerializeField][Range(0, 200)] private float m_GaugeAxisLineWidth = 15f; + [SerializeField][Range(0, 20)] private float m_GaugeAxisSplitLineWidth = 0.8f; + [SerializeField][Range(0, 20)] private float m_GaugeAxisSplitLineLength = 15f; + [SerializeField][Range(0, 20)] private float m_GaugeAxisTickWidth = 0.8f; + [SerializeField][Range(0, 20)] private float m_GaugeAxisTickLength = 5f; + [SerializeField][Range(0, 20)] private float m_TootipLineWidth = 0.8f; + [SerializeField][Range(0, 20)] private float m_DataZoomBorderWidth = 0.5f; + [SerializeField][Range(0, 20)] private float m_DataZoomDataLineWidth = 0.5f; + [SerializeField][Range(0, 20)] private float m_VisualMapBorderWidth = 0f; + + [SerializeField][Range(0, 20)] private float m_SerieLineWidth = 1.8f; + [SerializeField][Range(0, 200)] private float m_SerieLineSymbolSize = 5f; + [SerializeField][Range(0, 200)] private float m_SerieScatterSymbolSize = 20f; + [SerializeField][Range(0, 200)] private float m_SerieSelectedRate = 1.3f; + [SerializeField][Range(0, 10)] private float m_SerieCandlestickBorderWidth = 1f; + + [SerializeField] private bool m_EditorShowAllListData = false; + + [SerializeField][Range(1, 20)] protected int m_MaxPainter = 10; + [SerializeField][Range(1, 10)] protected float m_LineSmoothStyle = 3f; + [SerializeField][Range(1f, 20)] protected float m_LineSmoothness = 2f; + [SerializeField][Range(1f, 20)] protected float m_LineSegmentDistance = 3f; + [SerializeField][Range(1, 10)] protected float m_CicleSmoothness = 2f; + [SerializeField][Range(10, 50)] protected float m_VisualMapTriangeLen = 20f; + [SerializeField][Range(1, 20)] protected float m_PieTooltipExtraRadius = 8f; + [SerializeField][Range(1, 20)] protected float m_PieSelectedOffset = 8f; + [SerializeField] protected List<Theme> m_CustomThemes = new List<Theme>(); + + public static Lang lang { get { return Instance.m_Lang; } } + public static Font font { get { return Instance.m_Font; } } +#if dUI_TextMeshPro + public static TMP_FontAsset tmpFont { get { return Instance.m_TMPFont; } } +#endif + /// <summary> + /// 一级字体大小。 + /// </summary> + public static int fontSizeLv1 { get { return Instance.m_FontSizeLv1; } } + public static int fontSizeLv2 { get { return Instance.m_FontSizeLv2; } } + public static int fontSizeLv3 { get { return Instance.m_FontSizeLv3; } } + public static int fontSizeLv4 { get { return Instance.m_FontSizeLv4; } } + public static LineStyle.Type axisLineType { get { return Instance.m_AxisLineType; } } + public static float axisLineWidth { get { return Instance.m_AxisLineWidth; } } + public static LineStyle.Type axisSplitLineType { get { return Instance.m_AxisSplitLineType; } } + public static float axisSplitLineWidth { get { return Instance.m_AxisSplitLineWidth; } } + public static float axisTickWidth { get { return Instance.m_AxisTickWidth; } } + public static float axisTickLength { get { return Instance.m_AxisTickLength; } } + public static float gaugeAxisLineWidth { get { return Instance.m_GaugeAxisLineWidth; } } + public static float gaugeAxisSplitLineWidth { get { return Instance.m_GaugeAxisSplitLineWidth; } } + public static float gaugeAxisSplitLineLength { get { return Instance.m_GaugeAxisSplitLineLength; } } + public static float gaugeAxisTickWidth { get { return Instance.m_GaugeAxisTickWidth; } } + public static float gaugeAxisTickLength { get { return Instance.m_GaugeAxisTickLength; } } + + public static float tootipLineWidth { get { return Instance.m_TootipLineWidth; } } + public static float dataZoomBorderWidth { get { return Instance.m_DataZoomBorderWidth; } } + public static float dataZoomDataLineWidth { get { return Instance.m_DataZoomDataLineWidth; } } + public static float visualMapBorderWidth { get { return Instance.m_VisualMapBorderWidth; } } + + #region serie + public static float serieLineWidth { get { return Instance.m_SerieLineWidth; } } + public static float serieLineSymbolSize { get { return Instance.m_SerieLineSymbolSize; } } + public static float serieScatterSymbolSize { get { return Instance.m_SerieScatterSymbolSize; } } + public static float serieSelectedRate { get { return Instance.m_SerieSelectedRate; } } + public static float serieCandlestickBorderWidth { get { return Instance.m_SerieCandlestickBorderWidth; } } + #endregion + + #region editor + public static bool editorShowAllListData { get { return Instance.m_EditorShowAllListData; } } + #endregion + + #region graphic + public static int maxPainter { get { return Instance.m_MaxPainter; } } + public static float lineSmoothStyle { get { return Instance.m_LineSmoothStyle; } } + public static float lineSmoothness { get { return Instance.m_LineSmoothness; } } + public static float lineSegmentDistance { get { return Instance.m_LineSegmentDistance; } } + public static float cicleSmoothness { get { return Instance.m_CicleSmoothness; } } + public static float visualMapTriangeLen { get { return Instance.m_VisualMapTriangeLen; } } + public static float pieTooltipExtraRadius { get { return Instance.m_PieTooltipExtraRadius; } } + public static float pieSelectedOffset { get { return Instance.m_PieSelectedOffset; } } + #endregion + + public static List<Theme> customThemes { get { return Instance.m_CustomThemes; } } + + private static XCSettings s_Instance; + public static XCSettings Instance + { + get + { + if (s_Instance == null) + { + s_Instance = Resources.Load<XCSettings>("XCSettings"); +#if UNITY_EDITOR + if (s_Instance == null) + { + var assetPath = GetSettingAssetPath(); + if (string.IsNullOrEmpty(assetPath)) + XCResourceImporterWindow.ShowPackageImporterWindow(); + else + s_Instance = AssetDatabase.LoadAssetAtPath<XCSettings>(assetPath); + } + else + { + if (s_Instance.m_Lang == null) + s_Instance.m_Lang = Resources.Load<Lang>("XCLang-EN"); + if (s_Instance.m_Lang == null) + s_Instance.m_Lang = ScriptableObject.CreateInstance<Lang>(); + if (s_Instance.m_Font == null) + s_Instance.m_Font = Resources.GetBuiltinResource<Font>("Arial.ttf"); +#if dUI_TextMeshPro + if (s_Instance.m_TMPFont == null) + s_Instance.m_TMPFont = Resources.Load<TMP_FontAsset>("LiberationSans SDF"); +#endif + } +#endif + } + return s_Instance; + } + } + +#if UNITY_EDITOR + public static bool ExistAssetFile() + { + return System.IO.File.Exists("Assets/XCharts/Resources/XCSettings.asset"); + } + + public static string GetSettingAssetPath() + { + var path = "Assets/XCharts/Resources/XCSettings.asset"; + if (File.Exists(path)) return path; + var dir = Application.dataPath; + string[] matchingPaths = Directory.GetDirectories(dir); + foreach (var match in matchingPaths) + { + if (match.Contains("XCharts")) + { + var jsonPath = string.Format("{0}/package.json", match); + if (File.Exists(jsonPath)) + { + var jsonText = File.ReadAllText(jsonPath); + if (jsonText.Contains("\"displayName\": \"XCharts\"")) + { + path = string.Format("{0}/Resources/XCSettings.asset", match.Replace('\\', '/')); + if (File.Exists(path)) + return path.Substring(path.IndexOf("/Assets/") + 1); + } + } + } + } + return null; + } +#endif + + public static bool AddCustomTheme(Theme theme) + { + if (theme == null) return false; + if (Instance == null || Instance.m_CustomThemes == null) return false; + if (!Instance.m_CustomThemes.Contains(theme)) + { + Instance.m_CustomThemes.Add(theme); +#if UNITY_EDITOR + EditorUtility.SetDirty(Instance); + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); +#endif + return true; + } + return false; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XCSettings.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XCSettings.cs.meta new file mode 100644 index 0000000..4fc72f2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XCSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3694d869548264b718bdfc6c8009dcf1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XCThemeMgr.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XCThemeMgr.cs new file mode 100644 index 0000000..86c239c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XCThemeMgr.cs @@ -0,0 +1,153 @@ +using System.Collections.Generic; +using System.IO; +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; +#endif +#if dUI_TextMeshPro +using TMPro; +#endif + +namespace XCharts.Runtime +{ + public static class XCThemeMgr + { + /// <summary> + /// 重新加载主题列表 + /// </summary> + public static void ReloadThemeList() + { + XChartsMgr.themes.Clear(); + XChartsMgr.themeNames.Clear(); + AddTheme(LoadTheme(ThemeType.Default)); + AddTheme(LoadTheme(ThemeType.Dark)); + if (XCSettings.Instance != null) + { + foreach (var theme in XCSettings.customThemes) + { + AddTheme(theme); + } + } + } + + public static void CheckReloadTheme() + { + if (XChartsMgr.themeNames.Count < 0) + ReloadThemeList(); + } + + public static void AddTheme(Theme theme) + { + if (theme == null) return; + if (!XChartsMgr.themes.ContainsKey(theme.themeName)) + { + XChartsMgr.themes.Add(theme.themeName, theme); + XChartsMgr.themeNames.Add(theme.themeName); + XChartsMgr.themeNames.Sort(); + } + } + + public static Theme GetTheme(ThemeType type) + { + return GetTheme(type.ToString()); + } + + public static Theme GetTheme(string themeName) + { + if (!XChartsMgr.themes.ContainsKey(themeName)) + { + return null; + } + return XChartsMgr.themes[themeName]; + } + + public static Theme LoadTheme(ThemeType type) + { + return LoadTheme(type.ToString()); + } + + public static Theme LoadTheme(string themeName) + { + var theme = Resources.Load<Theme>(XCSettings.THEME_ASSET_NAME_PREFIX + themeName); + if (theme == null) + theme = Resources.Load<Theme>(themeName); + return theme; + } + + public static List<string> GetAllThemeNames() + { + return XChartsMgr.themeNames; + } + + public static List<Theme> GetThemeList() + { + var list = new List<Theme>(); + foreach (var theme in XChartsMgr.themes.Values) + { + list.Add(theme); + } + return list; + } + + public static bool ContainsTheme(string themeName) + { + return XChartsMgr.themeNames.Contains(themeName); + } + + public static void SwitchTheme(BaseChart chart, string themeName) + { +#if UNITY_EDITOR + if (XChartsMgr.themes.Count == 0) + { + ReloadThemeList(); + } +#endif + if (!XChartsMgr.themes.ContainsKey(themeName)) + { + Debug.LogError("SwitchTheme ERROR: not exist theme:" + themeName); + return; + } + var target = XChartsMgr.themes[themeName]; + chart.UpdateTheme(target); + } + + public static bool ExportTheme(Theme theme, string themeNewName) + { +#if UNITY_EDITOR + var newtheme = Theme.EmptyTheme; + newtheme.CopyTheme(theme); + newtheme.themeType = ThemeType.Custom; + newtheme.themeName = themeNewName; + ExportTheme(newtheme); + return true; +#else + return false; +#endif + } + + public static bool ExportTheme(Theme theme) + { +#if UNITY_EDITOR + var themeAssetName = XCSettings.THEME_ASSET_NAME_PREFIX + theme.themeName; + var themeAssetPath = Application.dataPath + "/../" + XCSettings.THEME_ASSET_FOLDER; + if (!Directory.Exists(themeAssetPath)) + { + Directory.CreateDirectory(themeAssetPath); + } + var themeAssetFilePath = string.Format("{0}/{1}.asset", XCSettings.THEME_ASSET_FOLDER, themeAssetName); + AssetDatabase.CreateAsset(theme, themeAssetFilePath); + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + return true; +#else + return false; +#endif + } + + public static string GetThemeAssetPath(string themeName) + { + return string.Format("{0}/{1}{2}.asset", XCSettings.THEME_ASSET_FOLDER, + XCSettings.THEME_ASSET_NAME_PREFIX, themeName); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XCThemeMgr.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XCThemeMgr.cs.meta new file mode 100644 index 0000000..7ac9815 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XCThemeMgr.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: faf4bcb5b4fa24f0782ab4737a448696 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XChartsMgr.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XChartsMgr.cs new file mode 100644 index 0000000..69b9c21 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XChartsMgr.cs @@ -0,0 +1,317 @@ +using System.Collections.Generic; +using System.IO; +using UnityEngine; +using UnityEngine.SceneManagement; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace XCharts.Runtime +{ + class XChartsVersion + { + public string version = ""; + public int date = 0; + public int checkdate = 0; + public string desc = ""; + public string homepage = ""; + } + + [ExecuteInEditMode] + public static class XChartsMgr + { + public static readonly string version = "3.0.1"; + public static readonly int versionDate = 20220616; + public static string fullVersion { get { return version + "-" + versionDate; } } + + internal static List<BaseChart> chartList = new List<BaseChart>(); + internal static Dictionary<string, Theme> themes = new Dictionary<string, Theme>(); + internal static List<string> themeNames = new List<string>(); + + static XChartsMgr() + { + SerieLabelPool.ClearAll(); + chartList.Clear(); + if (Resources.Load<XCSettings>("XCSettings")) + XCThemeMgr.ReloadThemeList(); + SceneManager.sceneUnloaded += OnSceneLoaded; + } + + static void OnSceneLoaded(Scene scene) + { + SerieLabelPool.ClearAll(); + } + + public static void AddChart(BaseChart chart) + { + var sameNameChart = GetChart(chart.chartName); + if (sameNameChart != null) + { + var path = ChartHelper.GetFullName(sameNameChart.transform); + Debug.LogError("A chart named `" + chart.chartName + "` already exists:" + path); + RemoveChart(chart.chartName); + } + if (!ContainsChart(chart)) + { + chartList.Add(chart); + } + } + + public static BaseChart GetChart(string chartName) + { + if (string.IsNullOrEmpty(chartName)) return null; + return chartList.Find(chart => chartName.Equals(chart.chartName)); + } + + public static List<BaseChart> GetCharts(string chartName) + { + if (string.IsNullOrEmpty(chartName)) return null; + return chartList.FindAll(chart => chartName.Equals(chart.chartName)); + } + + public static void RemoveChart(string chartName) + { + if (string.IsNullOrEmpty(chartName)) return; + chartList.RemoveAll(chart => chartName.Equals(chart.chartName)); + } + + public static bool ContainsChart(string chartName) + { + if (string.IsNullOrEmpty(chartName)) return false; + return GetCharts(chartName) != null; + } + + public static bool ContainsChart(BaseChart chart) + { + return chartList.Contains(chart); + } + + public static bool IsRepeatChartName(BaseChart chart, string chartName = null) + { + if (chartName == null) + chartName = chart.chartName; + if (string.IsNullOrEmpty(chartName)) + return false; + foreach (var temp in chartList) + { + if (temp != chart && chartName.Equals(temp.chartName)) + return true; + } + return false; + } + + public static string GetRepeatChartNameInfo(BaseChart chart, string chartName) + { + if (string.IsNullOrEmpty(chartName)) + return string.Empty; + string result = ""; + foreach (var temp in chartList) + { + if (temp != chart && chartName.Equals(temp.chartName)) + result += ChartHelper.GetFullName(temp.transform) + "\n"; + } + return result; + } + + public static void RemoveAllChartObject() + { + if (chartList.Count == 0) + { + return; + } + foreach (var chart in chartList) + { + if (chart != null) + chart.RebuildChartObject(); + } + } + +#if UNITY_EDITOR + public static string GetPackageFullPath() + { + string packagePath = Path.GetFullPath("Packages/com.monitor1394.xcharts"); + if (Directory.Exists(packagePath)) + { + return packagePath; + } + packagePath = Path.GetFullPath("Assets/.."); + if (Directory.Exists(packagePath)) + { + if (File.Exists(packagePath + "/Assets/Packages/XCharts/package.json")) + { + return packagePath + "/Assets/Packages/XCharts"; + } + + if (File.Exists(packagePath + "/Assets/XCharts/package.json")) + { + return packagePath + "/Assets/XCharts"; + } + + string[] matchingPaths = Directory.GetDirectories(packagePath, "XCharts", SearchOption.AllDirectories); + string path = ValidateLocation(matchingPaths, packagePath); + if (path != null) return Path.Combine(packagePath, path); + } + return null; + } + + private static string ValidateLocation(string[] paths, string projectPath) + { + for (int i = 0; i < paths.Length; i++) + { + if (File.Exists(paths[i] + "/package.json")) + { + string folderPath = paths[i].Replace(projectPath, ""); + folderPath = folderPath.TrimStart('\\', '/'); + return folderPath; + } + } + return null; + } + + [UnityEditor.Callbacks.DidReloadScripts] + static void OnEditorReload() + { + for (int i = chartList.Count - 1; i >= 0; i--) + { + var chart = chartList[i]; + if (chart == null) + { + chartList.RemoveAt(i); + } + else + { + chart.InitComponentHandlers(); + chart.InitSerieHandlers(); + } + } + } + + public static void EnableTextMeshPro() + { + DefineSymbolsUtil.AddGlobalDefine("dUI_TextMeshPro"); + RemoveAllChartObject(); + } + + public static void DisableTextMeshPro() + { + DefineSymbolsUtil.RemoveGlobalDefine("dUI_TextMeshPro"); + RemoveAllChartObject(); + } + + public static bool IsExistTMPAssembly() + { + +#if UNITY_2018_1_OR_NEWER + foreach (var assembly in UnityEditor.Compilation.CompilationPipeline.GetAssemblies(UnityEditor.Compilation.AssembliesType.Player)) + { + if (assembly.name.Equals("Unity.TextMeshPro")) return true; + } +#elif UNITY_2017_3_OR_NEWER + foreach (var assembly in UnityEditor.Compilation.CompilationPipeline.GetAssemblies()) + { + if (assembly.name.Equals("Unity.TextMeshPro")) return true; + } +#endif + return false; + } + + public static bool ModifyTMPRefence(bool removeTMP = false) + { + var packagePath = GetPackageFullPath(); + if (!ModifyTMPRefence(packagePath + "/Runtime/XCharts.Runtime.asmdef", removeTMP)) return false; + if (!ModifyTMPRefence(packagePath + "/Editor/XCharts.Editor.asmdef", removeTMP)) return false; + return true; + } + + private static bool ModifyTMPRefence(string asmdefPath, bool removeTMP = false) + { + if (!File.Exists(asmdefPath)) + { + Debug.LogError("AddTMPRefence ERROR: can't find: " + asmdefPath); + return false; + } + try + { + var dest = new List<string>(); + var refs = new List<string>(); + var lines = File.ReadAllLines(asmdefPath); + var referencesStart = false; + var addedTMP = false; + var removedTMP = false; + var tmpName = "\"Unity.TextMeshPro\""; + var refCount = 0; + foreach (var line in lines) + { + if (string.IsNullOrEmpty(line)) continue; + if (line.Contains("\"references\": [")) + { + dest.Add(line); + referencesStart = true; + } + else if (referencesStart) + { + if (line.Contains("],")) + { + referencesStart = false; + if (refCount > 0) + { + var old = dest[dest.Count - 1]; + if (old.EndsWith(",")) + dest[dest.Count - 1] = old.Substring(0, old.Length - 1); + } + if (!removeTMP && !refs.Contains(tmpName)) + { + if (refs.Count > 0) + dest[dest.Count - 1] = dest[dest.Count - 1] + ","; + dest.Add(" " + tmpName); + dest.Add(line); + addedTMP = true; + } + else + { + dest.Add(line); + } + } + else + { + if (removeTMP) + { + if (!line.Contains(tmpName)) + { + dest.Add(line); + refCount++; + } + else + { + removedTMP = true; + } + } + else + { + dest.Add(line); + refs.Add(line.Trim()); + } + } + } + else + { + dest.Add(line); + } + } + if (addedTMP || removedTMP) + { + File.WriteAllText(asmdefPath, string.Join("\n", dest.ToArray())); + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + } + return true; + } + catch (System.Exception e) + { + Debug.LogError("AddTMPRefence ERROR:" + e.Message); + return false; + } + } +#endif + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XChartsMgr.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XChartsMgr.cs.meta new file mode 100644 index 0000000..f86bdc6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Internal/XChartsMgr.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 953f0e846565c4086a4bcdc6bc14cf85 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie.meta new file mode 100644 index 0000000..01ece4f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6db844a618e3c4634ac6c8afa60d4835 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar.meta new file mode 100644 index 0000000..924588f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: db4db63725f6848e785146f5cf4bb657 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/Bar.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/Bar.cs new file mode 100644 index 0000000..89ed702 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/Bar.cs @@ -0,0 +1,32 @@ +namespace XCharts.Runtime +{ + [System.Serializable] + [SerieHandler(typeof(BarHandler), true)] + [SerieConvert(typeof(Line), typeof(Pie))] + [RequireChartComponent(typeof(GridCoord))] + [DefaultAnimation(AnimationType.BottomToTop)] + [SerieExtraComponent(typeof(LabelStyle), typeof(EmphasisItemStyle), typeof(EmphasisLabelStyle))] + [SerieDataExtraComponent(typeof(ItemStyle), typeof(LabelStyle), typeof(EmphasisItemStyle), typeof(EmphasisLabelStyle))] + [SerieDataExtraField("m_Ignore")] + public class Bar : Serie, INeedSerieContainer + { + public int containerIndex { get; internal set; } + public int containterInstanceId { get; internal set; } + + public static Serie AddDefaultSerie(BaseChart chart, string serieName) + { + var serie = chart.AddSerie<Bar>(serieName); + for (int i = 0; i < 5; i++) + { + chart.AddData(serie.index, UnityEngine.Random.Range(10, 90)); + } + return serie; + } + + public static Bar CovertSerie(Serie serie) + { + var newSerie = SerieHelper.CloneSerie<Bar>(serie); + return newSerie; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/Bar.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/Bar.cs.meta new file mode 100644 index 0000000..b13d9c4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/Bar.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cfb8051cfc49e4afabd94a11c5912c3e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/BarHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/BarHandler.cs new file mode 100644 index 0000000..d581809 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/BarHandler.cs @@ -0,0 +1,436 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class BarHandler : SerieHandler<Bar> + { + List<List<SerieData>> m_StackSerieData = new List<List<SerieData>>(); + private GridCoord m_SerieGrid; + private float[] m_CapusleDefaultCornerRadius = new float[] { 1, 1, 1, 1 }; + + public override void Update() + { + base.Update(); + UpdateSerieContext(); + } + + public override void UpdateTooltipSerieParams(int dataIndex, bool showCategory, string category, + string marker, string itemFormatter, string numericFormatter, + ref List<SerieParams> paramList, ref string title) + { + UpdateCoordSerieParams(ref paramList, ref title, dataIndex, showCategory, category, + marker, itemFormatter, numericFormatter); + } + + public override void DrawSerie(VertexHelper vh) + { + DrawBarSerie(vh, serie, serie.context.colorIndex); + } + + public override Vector3 GetSerieDataLabelPosition(SerieData serieData, LabelStyle label) + { + switch (label.position) + { + case LabelStyle.Position.Bottom: + var center = serieData.context.rect.center; + return new Vector3(center.x, center.y - serieData.context.rect.height / 2); + case LabelStyle.Position.Center: + case LabelStyle.Position.Inside: + return serieData.context.rect.center; + default: + return serieData.context.position; + } + } + + public override void OnPointerDown(PointerEventData eventData) + { + if (!serie.context.pointerEnter) return; + if (serie.context.pointerItemDataIndex < 0) return; + if (chart.onPointerClickBar != null) + { + chart.onPointerClickBar(eventData, serie.context.pointerItemDataIndex); + } + } + + private void UpdateSerieContext() + { + if (m_SerieGrid == null) + return; + + var needCheck = (chart.isPointerInChart && m_SerieGrid.IsPointerEnter()) || m_LegendEnter; + var needInteract = false; + if (!needCheck) + { + if (m_LastCheckContextFlag != needCheck) + { + m_LastCheckContextFlag = needCheck; + serie.context.pointerItemDataIndex = -1; + serie.context.pointerEnter = false; + foreach (var serieData in serie.data) + { + serieData.context.highlight = false; + serieData.interact.Reset(); + } + chart.RefreshPainter(serie); + } + return; + } + m_LastCheckContextFlag = needCheck; + if (m_LegendEnter) + { + serie.context.pointerEnter = true; + foreach (var serieData in serie.data) + { + var barColor = SerieHelper.GetItemColor(serie, serieData, chart.theme, serie.context.colorIndex, true); + var barToColor = SerieHelper.GetItemToColor(serie, serieData, chart.theme, serie.context.colorIndex, true); + serieData.interact.SetColor(ref needInteract, barColor, barToColor); + } + } + else + { + serie.context.pointerItemDataIndex = -1; + serie.context.pointerEnter = false; + foreach (var serieData in serie.data) + { + if (serie.context.pointerAxisDataIndexs.Contains(serieData.index) || + serieData.context.rect.Contains(chart.pointerPos)) + { + serie.context.pointerItemDataIndex = serieData.index; + serie.context.pointerEnter = true; + serieData.context.highlight = true; + + var barColor = SerieHelper.GetItemColor(serie, serieData, chart.theme, serie.context.colorIndex, true); + var barToColor = SerieHelper.GetItemToColor(serie, serieData, chart.theme, serie.context.colorIndex, true); + serieData.interact.SetColor(ref needInteract, barColor, barToColor); + } + else + { + serieData.context.highlight = false; + var barColor = SerieHelper.GetItemColor(serie, serieData, chart.theme, serie.context.colorIndex, false); + var barToColor = SerieHelper.GetItemToColor(serie, serieData, chart.theme, serie.context.colorIndex, false); + serieData.interact.SetColor(ref needInteract, barColor, barToColor); + } + } + } + if (needInteract) + { + chart.RefreshPainter(serie); + } + } + + private void DrawBarSerie(VertexHelper vh, Bar serie, int colorIndex) + { + if (!serie.show || serie.animation.HasFadeOut()) + return; + + var isY = ComponentHelper.IsAnyCategoryOfYAxis(chart.components); + + Axis axis; + Axis relativedAxis; + + if (isY) + { + axis = chart.GetChartComponent<YAxis>(serie.yAxisIndex); + relativedAxis = chart.GetChartComponent<XAxis>(serie.xAxisIndex); + } + else + { + axis = chart.GetChartComponent<XAxis>(serie.xAxisIndex); + relativedAxis = chart.GetChartComponent<YAxis>(serie.yAxisIndex); + } + m_SerieGrid = chart.GetChartComponent<GridCoord>(axis.gridIndex); + + if (axis == null) + return; + if (relativedAxis == null) + return; + if (m_SerieGrid == null) + return; + var dataZoom = chart.GetDataZoomOfAxis(axis); + var showData = serie.GetDataList(dataZoom); + + if (showData.Count <= 0) + return; + + var axisLength = isY ? m_SerieGrid.context.height : m_SerieGrid.context.width; + var relativedAxisLength = isY ? m_SerieGrid.context.width : m_SerieGrid.context.height; + var axisXY = isY ? m_SerieGrid.context.y : m_SerieGrid.context.x; + + var isStack = SeriesHelper.IsStack<Bar>(chart.series, serie.stack); + if (isStack) + SeriesHelper.UpdateStackDataList(chart.series, serie, dataZoom, m_StackSerieData); + + var barCount = chart.GetSerieBarRealCount<Bar>(); + float categoryWidth = AxisHelper.GetDataWidth(axis, axisLength, showData.Count, dataZoom); + float barGap = chart.GetSerieBarGap<Bar>(); + float totalBarWidth = chart.GetSerieTotalWidth<Bar>(categoryWidth, barGap, barCount); + float barWidth = serie.GetBarWidth(categoryWidth, barCount); + float offset = (categoryWidth - totalBarWidth) * 0.5f; + var serieReadIndex = chart.GetSerieIndexIfStack<Bar>(serie); + float gap = serie.barGap == -1 ? offset : offset + chart.GetSerieTotalGap<Bar>(categoryWidth, barGap, serieReadIndex); + int maxCount = serie.maxShow > 0 ? + (serie.maxShow > showData.Count ? showData.Count : serie.maxShow) : + showData.Count; + var isPercentStack = SeriesHelper.IsPercentStack<Bar>(chart.series, serie.stack); + bool dataChanging = false; + float dataChangeDuration = serie.animation.GetUpdateAnimationDuration(); + double yMinValue = relativedAxis.context.minValue; + double yMaxValue = relativedAxis.context.maxValue; + + var areaColor = ColorUtil.clearColor32; + var areaToColor = ColorUtil.clearColor32; + var interacting = false; + + serie.containerIndex = m_SerieGrid.index; + serie.containterInstanceId = m_SerieGrid.instanceId; + serie.animation.InitProgress(axisXY, axisXY + axisLength); + for (int i = serie.minShow; i < maxCount; i++) + { + var serieData = showData[i]; + serieData.index = i; + if (!serieData.show || serie.IsIgnoreValue(serieData)) + { + serie.context.dataPoints.Add(Vector3.zero); + continue; + } + + if (serieData.IsDataChanged()) + dataChanging = true; + + var highlight = serieData.context.highlight || serie.highlight; + var itemStyle = SerieHelper.GetItemStyle(serie, serieData, highlight); + var value = axis.IsCategory() ? i : serieData.GetData(0, axis.inverse); + var relativedValue = serieData.GetCurrData(1, dataChangeDuration, relativedAxis.inverse, yMinValue, yMaxValue); + var borderWidth = relativedValue == 0 ? 0 : itemStyle.runtimeBorderWidth; + var borderGap = relativedValue == 0 ? 0 : itemStyle.borderGap; + var borderGapAndWidth = borderWidth + borderGap; + + if (!serieData.interact.TryGetColor(ref areaColor, ref areaToColor, ref interacting)) + { + areaColor = SerieHelper.GetItemColor(serie, serieData, chart.theme, colorIndex, highlight); + areaToColor = SerieHelper.GetItemToColor(serie, serieData, chart.theme, colorIndex, highlight); + serieData.interact.SetColor(ref interacting, areaColor, areaToColor); + } + + var pX = 0f; + var pY = 0f; + UpdateXYPosition(m_SerieGrid, isY, axis, relativedAxis, i, categoryWidth, barWidth, isStack, value, ref pX, ref pY); + var barHig = 0f; + if (isPercentStack) + { + var valueTotal = chart.GetSerieSameStackTotalValue<Bar>(serie.stack, i); + barHig = valueTotal != 0 ? (float) (relativedValue / valueTotal * relativedAxisLength) : 0; + } + else + { + barHig = AxisHelper.GetAxisValueLength(m_SerieGrid, relativedAxis, categoryWidth, relativedValue); + } + + float currHig = AnimationStyleHelper.CheckDataAnimation(chart, serie, i, barHig); + Vector3 plb, plt, prt, prb, top; + UpdateRectPosition(m_SerieGrid, isY, relativedValue, pX, pY, gap, borderWidth, barWidth, currHig, + out plb, out plt, out prt, out prb, out top); + serieData.context.stackHeight = barHig; + serieData.context.position = top; + serieData.context.rect = Rect.MinMaxRect(plb.x + borderGapAndWidth, plb.y + borderGapAndWidth, + prt.x - borderGapAndWidth, prt.y - borderGapAndWidth); + serieData.context.backgroundRect = isY ? + Rect.MinMaxRect(m_SerieGrid.context.x, plb.y, m_SerieGrid.context.x + relativedAxisLength, prt.y) : + Rect.MinMaxRect(plb.x, m_SerieGrid.context.y, prb.x, m_SerieGrid.context.y + relativedAxisLength); + + if (!serie.clip || (serie.clip && m_SerieGrid.Contains(top))) + serie.context.dataPoints.Add(top); + else + continue; + + if (serie.show && currHig != 0 && !serie.placeHolder) + { + switch (serie.barType) + { + case BarType.Normal: + case BarType.Capsule: + DrawNormalBar(vh, serie, serieData, itemStyle, colorIndex, highlight, gap, barWidth, + pX, pY, plb, plt, prt, prb, isY, m_SerieGrid, axis, areaColor, areaToColor, relativedValue); + break; + case BarType.Zebra: + DrawZebraBar(vh, serie, serieData, itemStyle, colorIndex, highlight, gap, barWidth, + pX, pY, plb, plt, prt, prb, isY, m_SerieGrid, axis, areaColor, areaToColor); + break; + } + } + if (serie.animation.CheckDetailBreak(top, isY)) + { + break; + } + } + if (!serie.animation.IsFinish()) + { + serie.animation.CheckProgress(); + chart.RefreshPainter(serie); + } + if (dataChanging || interacting) + { + chart.RefreshPainter(serie); + } + } + + private void UpdateXYPosition(GridCoord grid, bool isY, Axis axis, Axis relativedAxis, int i, float categoryWidth, float barWidth, bool isStack, + double value, ref float pX, ref float pY) + { + if (isY) + { + if (axis.IsCategory()) + { + pY = grid.context.y + i * categoryWidth + (axis.boundaryGap ? 0 : -categoryWidth * 0.5f); + } + else + { + if (axis.context.minMaxRange <= 0) pY = grid.context.y; + else + { + var valueLen = (float) ((value - axis.context.minValue) / axis.context.minMaxRange) * grid.context.height; + pY = grid.context.y + valueLen - categoryWidth * 0.5f; + } + } + pX = AxisHelper.GetAxisValuePosition(grid, relativedAxis, categoryWidth, 0); + if (isStack) + { + for (int n = 0; n < m_StackSerieData.Count - 1; n++) + pX += m_StackSerieData[n][i].context.stackHeight; + } + } + else + { + if (axis.IsCategory()) + { + pX = grid.context.x + i * categoryWidth + (axis.boundaryGap ? 0 : -categoryWidth * 0.5f); + } + else + { + if (axis.context.minMaxRange <= 0) pX = grid.context.x; + else + { + var valueLen = (float) ((value - axis.context.minValue) / axis.context.minMaxRange) * grid.context.width; + pX = grid.context.x + valueLen - categoryWidth * 0.5f; + } + } + pY = AxisHelper.GetAxisValuePosition(grid, relativedAxis, categoryWidth, 0); + if (isStack) + { + for (int n = 0; n < m_StackSerieData.Count - 1; n++) + pY += m_StackSerieData[n][i].context.stackHeight; + } + } + } + + private void UpdateRectPosition(GridCoord grid, bool isY, double yValue, float pX, float pY, float gap, float borderWidth, + float barWidth, float currHig, + out Vector3 plb, out Vector3 plt, out Vector3 prt, out Vector3 prb, out Vector3 top) + { + if (isY) + { + if (yValue < 0) + { + plt = new Vector3(pX + currHig, pY + gap + barWidth); + prt = new Vector3(pX, pY + gap + barWidth); + prb = new Vector3(pX, pY + gap); + plb = new Vector3(pX + currHig, pY + gap); + } + else + { + plt = new Vector3(pX, pY + gap + barWidth); + prt = new Vector3(pX + currHig, pY + gap + barWidth); + prb = new Vector3(pX + currHig, pY + gap); + plb = new Vector3(pX, pY + gap); + } + top = new Vector3(pX + currHig, pY + gap + barWidth / 2); + } + else + { + if (yValue < 0) + { + plb = new Vector3(pX + gap, pY + currHig); + plt = new Vector3(pX + gap, pY); + prt = new Vector3(pX + gap + barWidth, pY); + prb = new Vector3(pX + gap + barWidth, pY + currHig); + } + else + { + plb = new Vector3(pX + gap, pY); + plt = new Vector3(pX + gap, pY + currHig); + prt = new Vector3(pX + gap + barWidth, pY + currHig); + prb = new Vector3(pX + gap + barWidth, pY); + } + top = new Vector3(pX + gap + barWidth / 2, pY + currHig); + } + if (serie.clip) + { + plb = chart.ClampInGrid(grid, plb); + plt = chart.ClampInGrid(grid, plt); + prt = chart.ClampInGrid(grid, prt); + prb = chart.ClampInGrid(grid, prb); + top = chart.ClampInGrid(grid, top); + } + } + + private void DrawNormalBar(VertexHelper vh, Serie serie, SerieData serieData, ItemStyle itemStyle, int colorIndex, + bool highlight, float gap, float barWidth, float pX, float pY, Vector3 plb, Vector3 plt, Vector3 prt, + Vector3 prb, bool isYAxis, GridCoord grid, Axis axis, Color32 areaColor, Color32 areaToColor, double value) + { + var borderWidth = itemStyle.runtimeBorderWidth; + var backgroundColor = SerieHelper.GetItemBackgroundColor(serie, serieData, chart.theme, colorIndex, highlight, false); + var cornerRadius = serie.barType == BarType.Capsule && !itemStyle.IsNeedCorner() ? + m_CapusleDefaultCornerRadius : + itemStyle.cornerRadius; + var invert = value < 0; + if (!ChartHelper.IsClearColor(backgroundColor)) + { + UGL.DrawRoundRectangle(vh, serieData.context.backgroundRect, backgroundColor, backgroundColor, 0, + cornerRadius, isYAxis, chart.settings.cicleSmoothness, invert); + } + UGL.DrawRoundRectangle(vh, serieData.context.rect, areaColor, areaToColor, 0, + cornerRadius, isYAxis, chart.settings.cicleSmoothness, invert); + if (serie.barType == BarType.Capsule) + { + UGL.DrawBorder(vh, serieData.context.backgroundRect, borderWidth, itemStyle.borderColor, + 0, cornerRadius, isYAxis, chart.settings.cicleSmoothness, invert, -borderWidth); + } + else + { + UGL.DrawBorder(vh, serieData.context.rect, borderWidth, itemStyle.borderColor, + 0, cornerRadius, isYAxis, chart.settings.cicleSmoothness, invert, itemStyle.borderGap); + } + } + + private void DrawZebraBar(VertexHelper vh, Serie serie, SerieData serieData, ItemStyle itemStyle, int colorIndex, + bool highlight, float gap, float barWidth, float pX, float pY, Vector3 plb, Vector3 plt, Vector3 prt, + Vector3 prb, bool isYAxis, GridCoord grid, Axis axis, Color32 barColor, Color32 barToColor) + { + var backgroundColor = SerieHelper.GetItemBackgroundColor(serie, serieData, chart.theme, colorIndex, highlight, false); + if (!ChartHelper.IsClearColor(backgroundColor)) + { + UGL.DrawRoundRectangle(vh, serieData.context.backgroundRect, backgroundColor, backgroundColor, 0, + null, isYAxis, chart.settings.cicleSmoothness, false); + } + if (isYAxis) + { + plt = (plb + plt) / 2; + prt = (prt + prb) / 2; + chart.DrawClipZebraLine(vh, plt, prt, barWidth / 2, serie.barZebraWidth, serie.barZebraGap, + barColor, barToColor, serie.clip, grid, grid.context.width); + } + else + { + plb = (prb + plb) / 2; + plt = (plt + prt) / 2; + chart.DrawClipZebraLine(vh, plb, plt, barWidth / 2, serie.barZebraWidth, serie.barZebraGap, + barColor, barToColor, serie.clip, grid, grid.context.height); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/BarHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/BarHandler.cs.meta new file mode 100644 index 0000000..68b7310 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/BarHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5bd8425bf4c1b4bf2adf8940be58ddec +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/SimplifiedBar.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/SimplifiedBar.cs new file mode 100644 index 0000000..3eed9ff --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/SimplifiedBar.cs @@ -0,0 +1,41 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + [Serializable] + [SerieHandler(typeof(SimplifiedBarHandler), true)] + [SerieConvert(typeof(SimplifiedLine), typeof(Bar))] + [CoordOptions(typeof(GridCoord))] + [DefaultAnimation(AnimationType.LeftToRight)] + [SerieExtraComponent()] + [SerieDataExtraComponent()] + [SerieDataExtraField()] + public class SimplifiedBar : Serie, INeedSerieContainer, ISimplifiedSerie + { + public int containerIndex { get; internal set; } + public int containterInstanceId { get; internal set; } + + public static Serie AddDefaultSerie(BaseChart chart, string serieName) + { + var serie = chart.AddSerie<SimplifiedBar>(serieName); + serie.symbol.show = false; + var lastValue = 0d; + for (int i = 0; i < 50; i++) + { + if (i < 20) + lastValue += UnityEngine.Random.Range(0, 5); + else + lastValue += UnityEngine.Random.Range(-3, 5); + chart.AddData(serie.index, lastValue); + } + return serie; + } + + public static SimplifiedBar CovertSerie(Serie serie) + { + var newSerie = serie.Clone<SimplifiedBar>(); + return newSerie; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/SimplifiedBar.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/SimplifiedBar.cs.meta new file mode 100644 index 0000000..d6b3a10 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/SimplifiedBar.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7fc754e0afd4d4f138389c19611aaedb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/SimplifiedBarHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/SimplifiedBarHandler.cs new file mode 100644 index 0000000..3e4264d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/SimplifiedBarHandler.cs @@ -0,0 +1,368 @@ +using System.Collections.Generic; +using System.Text; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class SimplifiedBarHandler : SerieHandler<SimplifiedBar> + { + private GridCoord m_SerieGrid; + + public override void Update() + { + base.Update(); + UpdateSerieContext(); + } + + public override void UpdateTooltipSerieParams(int dataIndex, bool showCategory, string category, + string marker, string itemFormatter, string numericFormatter, + ref List<SerieParams> paramList, ref string title) + { + UpdateCoordSerieParams(ref paramList, ref title, dataIndex, showCategory, category, + marker, itemFormatter, numericFormatter); + } + + public override void DrawSerie(VertexHelper vh) + { + DrawBarSerie(vh, serie, serie.context.colorIndex); + } + + private void UpdateSerieContext() + { + if (m_SerieGrid == null) + return; + + var needCheck = (chart.isPointerInChart && m_SerieGrid.IsPointerEnter()) || m_LegendEnter; + var needInteract = false; + if (!needCheck) + { + if (m_LastCheckContextFlag != needCheck) + { + m_LastCheckContextFlag = needCheck; + serie.context.pointerItemDataIndex = -1; + serie.context.pointerEnter = false; + foreach (var serieData in serie.data) + { + var barColor = SerieHelper.GetItemColor(serie, serieData, chart.theme, serie.context.colorIndex, false); + var barToColor = SerieHelper.GetItemToColor(serie, serieData, chart.theme, serie.context.colorIndex, false); + serieData.interact.SetColor(ref needInteract, barColor, barToColor); + } + if (needInteract) + { + chart.RefreshPainter(serie); + } + } + return; + } + m_LastCheckContextFlag = needCheck; + if (m_LegendEnter) + { + serie.context.pointerEnter = true; + foreach (var serieData in serie.data) + { + var barColor = SerieHelper.GetItemColor(serie, serieData, chart.theme, serie.context.colorIndex, true); + var barToColor = SerieHelper.GetItemToColor(serie, serieData, chart.theme, serie.context.colorIndex, true); + serieData.interact.SetColor(ref needInteract, barColor, barToColor); + } + } + else + { + serie.context.pointerItemDataIndex = -1; + serie.context.pointerEnter = false; + foreach (var serieData in serie.data) + { + if (serieData.context.rect.Contains(chart.pointerPos)) + { + serie.context.pointerItemDataIndex = serieData.index; + serie.context.pointerEnter = true; + serieData.context.highlight = true; + + var barColor = SerieHelper.GetItemColor(serie, serieData, chart.theme, serie.context.colorIndex, true); + var barToColor = SerieHelper.GetItemToColor(serie, serieData, chart.theme, serie.context.colorIndex, true); + serieData.interact.SetColor(ref needInteract, barColor, barToColor); + } + else + { + serieData.context.highlight = false; + var barColor = SerieHelper.GetItemColor(serie, serieData, chart.theme, serie.context.colorIndex, false); + var barToColor = SerieHelper.GetItemToColor(serie, serieData, chart.theme, serie.context.colorIndex, false); + serieData.interact.SetColor(ref needInteract, barColor, barToColor); + } + } + } + if (needInteract) + { + chart.RefreshPainter(serie); + } + } + + private void DrawBarSerie(VertexHelper vh, SimplifiedBar serie, int colorIndex) + { + if (!serie.show || serie.animation.HasFadeOut()) + return; + + var isY = ComponentHelper.IsAnyCategoryOfYAxis(chart.components); + + Axis axis; + Axis relativedAxis; + + if (isY) + { + axis = chart.GetChartComponent<YAxis>(serie.yAxisIndex); + relativedAxis = chart.GetChartComponent<XAxis>(serie.xAxisIndex); + } + else + { + axis = chart.GetChartComponent<XAxis>(serie.xAxisIndex); + relativedAxis = chart.GetChartComponent<YAxis>(serie.yAxisIndex); + } + m_SerieGrid = chart.GetChartComponent<GridCoord>(axis.gridIndex); + + if (axis == null) + return; + if (relativedAxis == null) + return; + if (m_SerieGrid == null) + return; + + var dataZoom = chart.GetDataZoomOfAxis(axis); + var showData = serie.GetDataList(dataZoom); + + if (showData.Count <= 0) + return; + + var axisLength = isY ? m_SerieGrid.context.height : m_SerieGrid.context.width; + var axisXY = isY ? m_SerieGrid.context.y : m_SerieGrid.context.x; + + var barCount = chart.GetSerieBarRealCount<SimplifiedBar>(); + float categoryWidth = AxisHelper.GetDataWidth(axis, axisLength, showData.Count, dataZoom); + float barGap = chart.GetSerieBarGap<SimplifiedBar>(); + float totalBarWidth = chart.GetSerieTotalWidth<SimplifiedBar>(categoryWidth, barGap, barCount); + float barWidth = serie.GetBarWidth(categoryWidth, barCount); + float offset = (categoryWidth - totalBarWidth) * 0.5f; + float barGapWidth = barWidth + barWidth * barGap; + float gap = serie.barGap == -1 ? offset : offset + serie.index * barGapWidth; + int maxCount = serie.maxShow > 0 ? + (serie.maxShow > showData.Count ? showData.Count : serie.maxShow) : + showData.Count; + + bool dataChanging = false; + float dataChangeDuration = serie.animation.GetUpdateAnimationDuration(); + double yMinValue = relativedAxis.context.minValue; + double yMaxValue = relativedAxis.context.maxValue; + + var areaColor = ColorUtil.clearColor32; + var areaToColor = ColorUtil.clearColor32; + var interacting = false; + + serie.containerIndex = m_SerieGrid.index; + serie.containterInstanceId = m_SerieGrid.instanceId; + serie.animation.InitProgress(axisXY, axisXY + axisLength); + for (int i = serie.minShow; i < maxCount; i++) + { + var serieData = showData[i]; + if (!serieData.show || serie.IsIgnoreValue(serieData)) + { + serie.context.dataPoints.Add(Vector3.zero); + continue; + } + + if (serieData.IsDataChanged()) + dataChanging = true; + + var highlight = serieData.context.highlight || serie.highlight; + var itemStyle = SerieHelper.GetItemStyle(serie, serieData, highlight); + var value = axis.IsCategory() ? i : serieData.GetData(0, axis.inverse); + var relativedValue = serieData.GetCurrData(1, dataChangeDuration, relativedAxis.inverse, yMinValue, yMaxValue); + var borderWidth = relativedValue == 0 ? 0 : itemStyle.runtimeBorderWidth; + + if (!serieData.interact.TryGetColor(ref areaColor, ref areaToColor, ref interacting)) + { + areaColor = SerieHelper.GetItemColor(serie, serieData, chart.theme, colorIndex, highlight); + areaToColor = SerieHelper.GetItemToColor(serie, serieData, chart.theme, colorIndex, highlight); + serieData.interact.SetColor(ref interacting, areaColor, areaToColor); + } + + var pX = 0f; + var pY = 0f; + UpdateXYPosition(m_SerieGrid, isY, axis, relativedAxis, i, categoryWidth, barWidth, value, ref pX, ref pY); + + var barHig = AxisHelper.GetAxisValueLength(m_SerieGrid, relativedAxis, categoryWidth, relativedValue); + var currHig = AnimationStyleHelper.CheckDataAnimation(chart, serie, i, barHig); + + Vector3 plb, plt, prt, prb, top; + UpdateRectPosition(m_SerieGrid, isY, relativedValue, pX, pY, gap, borderWidth, barWidth, currHig, + out plb, out plt, out prt, out prb, out top); + serieData.context.stackHeight = barHig; + serieData.context.position = top; + serieData.context.rect = Rect.MinMaxRect(plb.x, plb.y, prb.x, prt.y); + serie.context.dataPoints.Add(top); + DrawNormalBar(vh, serie, serieData, itemStyle, colorIndex, highlight, gap, barWidth, + pX, pY, plb, plt, prt, prb, false, m_SerieGrid, areaColor, areaToColor); + + if (serie.animation.CheckDetailBreak(top, isY)) + { + break; + } + } + if (!serie.animation.IsFinish()) + { + serie.animation.CheckProgress(); + chart.RefreshPainter(serie); + } + if (dataChanging || interacting) + { + chart.RefreshPainter(serie); + } + } + + private void UpdateXYPosition(GridCoord grid, bool isY, Axis axis, Axis relativedAxis, int i, float categoryWidth, float barWidth, + double value, ref float pX, ref float pY) + { + if (isY) + { + if (axis.IsCategory()) + { + pY = grid.context.y + i * categoryWidth + (axis.boundaryGap ? 0 : -categoryWidth * 0.5f); + } + else + { + if (axis.context.minMaxRange <= 0) pY = grid.context.y; + else pY = grid.context.y + (float) ((value - axis.context.minValue) / axis.context.minMaxRange) * (grid.context.height - barWidth); + } + pX = AxisHelper.GetAxisValuePosition(grid, relativedAxis, categoryWidth, 0); + } + else + { + if (axis.IsCategory()) + { + pX = grid.context.x + i * categoryWidth + (axis.boundaryGap ? 0 : -categoryWidth * 0.5f); + } + else + { + if (axis.context.minMaxRange <= 0) pX = grid.context.x; + else pX = grid.context.x + (float) ((value - axis.context.minValue) / axis.context.minMaxRange) * (grid.context.width - barWidth); + } + pY = AxisHelper.GetAxisValuePosition(grid, relativedAxis, categoryWidth, 0); + } + } + + private void UpdateRectPosition(GridCoord grid, bool isY, double yValue, float pX, float pY, float gap, float borderWidth, + float barWidth, float currHig, + out Vector3 plb, out Vector3 plt, out Vector3 prt, out Vector3 prb, out Vector3 top) + { + if (isY) + { + if (yValue < 0) + { + plt = new Vector3(pX - borderWidth, pY + gap + barWidth - borderWidth); + prt = new Vector3(pX + currHig + borderWidth, pY + gap + barWidth - borderWidth); + prb = new Vector3(pX + currHig + borderWidth, pY + gap + borderWidth); + plb = new Vector3(pX - borderWidth, pY + gap + borderWidth); + } + else + { + plt = new Vector3(pX + borderWidth, pY + gap + barWidth - borderWidth); + prt = new Vector3(pX + currHig - borderWidth, pY + gap + barWidth - borderWidth); + prb = new Vector3(pX + currHig - borderWidth, pY + gap + borderWidth); + plb = new Vector3(pX + borderWidth, pY + gap + borderWidth); + } + top = new Vector3(pX + currHig - borderWidth, pY + gap + barWidth / 2); + } + else + { + if (yValue < 0) + { + plb = new Vector3(pX + gap + borderWidth, pY - borderWidth); + plt = new Vector3(pX + gap + borderWidth, pY + currHig + borderWidth); + prt = new Vector3(pX + gap + barWidth - borderWidth, pY + currHig + borderWidth); + prb = new Vector3(pX + gap + barWidth - borderWidth, pY - borderWidth); + } + else + { + plb = new Vector3(pX + gap + borderWidth, pY + borderWidth); + plt = new Vector3(pX + gap + borderWidth, pY + currHig - borderWidth); + prt = new Vector3(pX + gap + barWidth - borderWidth, pY + currHig - borderWidth); + prb = new Vector3(pX + gap + barWidth - borderWidth, pY + borderWidth); + } + top = new Vector3(pX + gap + barWidth / 2, pY + currHig - borderWidth); + } + if (serie.clip) + { + plb = chart.ClampInGrid(grid, plb); + plt = chart.ClampInGrid(grid, plt); + prt = chart.ClampInGrid(grid, prt); + prb = chart.ClampInGrid(grid, prb); + top = chart.ClampInGrid(grid, top); + } + } + + private void DrawNormalBar(VertexHelper vh, Serie serie, SerieData serieData, ItemStyle itemStyle, int colorIndex, + bool highlight, float gap, float barWidth, float pX, float pY, Vector3 plb, Vector3 plt, Vector3 prt, + Vector3 prb, bool isYAxis, GridCoord grid, Color32 areaColor, Color32 areaToColor) + { + + var borderWidth = itemStyle.runtimeBorderWidth; + if (isYAxis) + { + if (serie.clip) + { + prb = chart.ClampInGrid(grid, prb); + plb = chart.ClampInGrid(grid, plb); + plt = chart.ClampInGrid(grid, plt); + prt = chart.ClampInGrid(grid, prt); + } + var itemWidth = Mathf.Abs(prb.x - plt.x); + var itemHeight = Mathf.Abs(prt.y - plb.y); + var center = new Vector3((plt.x + prb.x) / 2, (prt.y + plb.y) / 2); + if (itemWidth > 0 && itemHeight > 0) + { + var invert = center.x < plb.x; + if (itemStyle.IsNeedCorner()) + { + UGL.DrawRoundRectangle(vh, center, itemWidth, itemHeight, areaColor, areaToColor, 0, + itemStyle.cornerRadius, isYAxis, chart.settings.cicleSmoothness, invert); + } + else + { + chart.DrawClipPolygon(vh, plb, plt, prt, prb, areaColor, areaToColor, serie.clip, grid); + } + UGL.DrawBorder(vh, center, itemWidth, itemHeight, borderWidth, itemStyle.borderColor, + itemStyle.borderToColor, 0, itemStyle.cornerRadius, isYAxis, chart.settings.cicleSmoothness, invert); + } + } + else + { + if (serie.clip) + { + prb = chart.ClampInGrid(grid, prb); + plb = chart.ClampInGrid(grid, plb); + plt = chart.ClampInGrid(grid, plt); + prt = chart.ClampInGrid(grid, prt); + } + var itemWidth = Mathf.Abs(prt.x - plb.x); + var itemHeight = Mathf.Abs(plt.y - prb.y); + var center = new Vector3((plb.x + prt.x) / 2, (plt.y + prb.y) / 2); + if (itemWidth > 0 && itemHeight > 0) + { + var invert = center.y < plb.y; + if (itemStyle.IsNeedCorner()) + { + UGL.DrawRoundRectangle(vh, center, itemWidth, itemHeight, areaColor, areaToColor, 0, + itemStyle.cornerRadius, isYAxis, chart.settings.cicleSmoothness, invert); + } + else + { + chart.DrawClipPolygon(vh, ref prb, ref plb, ref plt, ref prt, areaColor, areaToColor, + serie.clip, grid); + } + UGL.DrawBorder(vh, center, itemWidth, itemHeight, borderWidth, itemStyle.borderColor, + itemStyle.borderToColor, 0, itemStyle.cornerRadius, isYAxis, chart.settings.cicleSmoothness, invert); + } + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/SimplifiedBarHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/SimplifiedBarHandler.cs.meta new file mode 100644 index 0000000..86f252e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Bar/SimplifiedBarHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: afd7226ecff7f4b9fad297101bc33b8c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick.meta new file mode 100644 index 0000000..0cc9989 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 641a5dafd45e6455ca9ef9558efe1083 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/Candlestick.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/Candlestick.cs new file mode 100644 index 0000000..6ac985e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/Candlestick.cs @@ -0,0 +1,30 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + [System.Serializable] + [SerieHandler(typeof(CandlestickHandler), true)] + [DefaultAnimation(AnimationType.LeftToRight)] + [SerieExtraComponent()] + [SerieDataExtraComponent(typeof(ItemStyle), typeof(EmphasisItemStyle))] + [SerieDataExtraField()] + public class Candlestick : Serie, INeedSerieContainer + { + public int containerIndex { get; internal set; } + public int containterInstanceId { get; internal set; } + public static Serie AddDefaultSerie(BaseChart chart, string serieName) + { + var serie = chart.AddSerie<Candlestick>(serieName); + var defaultDataCount = 5; + for (int i = 0; i < defaultDataCount; i++) + { + var open = Random.Range(20, 60); + var close = Random.Range(40, 90); + var lowest = Random.Range(0, 50); + var heighest = Random.Range(50, 100); + chart.AddData(serie.index, open, close, lowest, heighest); + } + return serie; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/Candlestick.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/Candlestick.cs.meta new file mode 100644 index 0000000..4c84a79 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/Candlestick.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c1fbb6247f54f4dd2a1f3e7f6bafb8c7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/CandlestickHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/CandlestickHandler.cs new file mode 100644 index 0000000..7955f60 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/CandlestickHandler.cs @@ -0,0 +1,213 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class CandlestickHandler : SerieHandler<Candlestick> + { + public override void DrawSerie(VertexHelper vh) + { + DrawCandlestickSerie(vh, serie); + } + + public override void UpdateTooltipSerieParams(int dataIndex, bool showCategory, string category, + string marker, string itemFormatter, string numericFormatter, + ref List<SerieParams> paramList, ref string title) + { + if (dataIndex < 0) + dataIndex = serie.context.pointerItemDataIndex; + + if (dataIndex < 0) + return; + + var serieData = serie.GetSerieData(dataIndex); + if (serieData == null) + return; + + title = category; + + var color = SerieHelper.GetItemColor(serie, serieData, chart.theme, serie.context.colorIndex, false); + var newMarker = SerieHelper.GetItemMarker(serie, serieData, marker); + var newItemFormatter = SerieHelper.GetItemFormatter(serie, serieData, itemFormatter); + var newNumericFormatter = SerieHelper.GetNumericFormatter(serie, serieData, numericFormatter); + + var param = serie.context.param; + param.serieName = serie.serieName; + param.serieIndex = serie.index; + param.category = category; + param.dimension = 1; + param.serieData = serieData; + param.dataCount = serie.dataCount; + param.value = 0; + param.total = 0; + param.color = color; + param.marker = newMarker; + param.itemFormatter = newItemFormatter; + param.numericFormatter = newNumericFormatter; + param.columns.Clear(); + + param.columns.Add(param.marker); + param.columns.Add(serie.serieName); + param.columns.Add(string.Empty); + + paramList.Add(param); + for (int i = 0; i < 4; i++) + { + param = new SerieParams(); + param.serieName = serie.serieName; + param.serieIndex = serie.index; + param.dimension = i; + param.serieData = serieData; + param.dataCount = serie.dataCount; + param.value = serieData.GetData(i); + param.total = SerieHelper.GetMaxData(serie, i); + param.color = color; + param.marker = newMarker; + param.itemFormatter = newItemFormatter; + param.numericFormatter = newNumericFormatter; + param.columns.Clear(); + + param.columns.Add(param.marker); + param.columns.Add(XCSettings.lang.GetCandlestickDimensionName(i)); + param.columns.Add(ChartCached.NumberToStr(param.value, param.numericFormatter)); + + paramList.Add(param); + } + } + + private void DrawCandlestickSerie(VertexHelper vh, Candlestick serie) + { + if (!serie.show) return; + if (serie.animation.HasFadeOut()) return; + XAxis xAxis; + YAxis yAxis; + GridCoord grid; + if (!chart.TryGetChartComponent<XAxis>(out xAxis, serie.xAxisIndex)) return; + if (!chart.TryGetChartComponent<YAxis>(out yAxis, serie.yAxisIndex)) return; + if (!chart.TryGetChartComponent<GridCoord>(out grid, xAxis.gridIndex)) return; + var theme = chart.theme; + var dataZoom = chart.GetDataZoomOfAxis(xAxis); + var showData = serie.GetDataList(dataZoom); + float categoryWidth = AxisHelper.GetDataWidth(xAxis, grid.context.width, showData.Count, dataZoom); + float barWidth = serie.GetBarWidth(categoryWidth); + float gap = (categoryWidth - barWidth) / 2; + int maxCount = serie.maxShow > 0 ? + (serie.maxShow > showData.Count ? showData.Count : serie.maxShow) : + showData.Count; + + bool dataChanging = false; + float dataChangeDuration = serie.animation.GetUpdateAnimationDuration(); + double yMinValue = yAxis.context.minValue; + double yMaxValue = yAxis.context.maxValue; + var isYAxis = false; + serie.containerIndex = grid.index; + serie.containterInstanceId = grid.instanceId; + for (int i = serie.minShow; i < maxCount; i++) + { + var serieData = showData[i]; + if (serie.IsIgnoreValue(serieData)) + { + serie.context.dataPoints.Add(Vector3.zero); + continue; + } + var highlight = serie.data[i].context.highlight || serie.highlight; + var itemStyle = SerieHelper.GetItemStyle(serie, serieData, highlight); + var open = serieData.GetCurrData(0, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue); + var close = serieData.GetCurrData(1, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue); + var lowest = serieData.GetCurrData(2, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue); + var heighest = serieData.GetCurrData(3, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue); + var isRise = yAxis.inverse ? close<open : close> open; + var borderWidth = open == 0 ? 0f : + (itemStyle.runtimeBorderWidth == 0 ? theme.serie.candlestickBorderWidth : + itemStyle.runtimeBorderWidth); + if (serieData.IsDataChanged()) dataChanging = true; + float pX = grid.context.x + i * categoryWidth; + float zeroY = grid.context.y + yAxis.context.offset; + if (!xAxis.boundaryGap) pX -= categoryWidth / 2; + float pY = zeroY; + var barHig = 0f; + double valueTotal = yMaxValue - yMinValue; + var minCut = (yMinValue > 0 ? yMinValue : 0); + if (valueTotal != 0) + { + barHig = (float) ((close - open) / valueTotal * grid.context.height); + pY += (float) ((open - minCut) / valueTotal * grid.context.height); + } + serieData.context.stackHeight = barHig; + float currHig = AnimationStyleHelper.CheckDataAnimation(chart, serie, i, barHig); + Vector3 plb, plt, prt, prb, top; + + plb = new Vector3(pX + gap + borderWidth, pY + borderWidth); + plt = new Vector3(pX + gap + borderWidth, pY + currHig - borderWidth); + prt = new Vector3(pX + gap + barWidth - borderWidth, pY + currHig - borderWidth); + prb = new Vector3(pX + gap + barWidth - borderWidth, pY + borderWidth); + top = new Vector3(pX + gap + barWidth / 2, pY + currHig - borderWidth); + if (serie.clip) + { + plb = chart.ClampInGrid(grid, plb); + plt = chart.ClampInGrid(grid, plt); + prt = chart.ClampInGrid(grid, prt); + prb = chart.ClampInGrid(grid, prb); + top = chart.ClampInGrid(grid, top); + } + serie.context.dataPoints.Add(top); + var areaColor = isRise ? + itemStyle.GetColor(theme.serie.candlestickColor) : + itemStyle.GetColor0(theme.serie.candlestickColor0); + var borderColor = isRise ? + itemStyle.GetBorderColor(theme.serie.candlestickBorderColor) : + itemStyle.GetBorderColor0(theme.serie.candlestickBorderColor0); + var itemWidth = Mathf.Abs(prt.x - plb.x); + var itemHeight = Mathf.Abs(plt.y - prb.y); + var center = new Vector3((plb.x + prt.x) / 2, (plt.y + prb.y) / 2); + var lowPos = new Vector3(center.x, zeroY + (float) ((lowest - minCut) / valueTotal * grid.context.height)); + var heighPos = new Vector3(center.x, zeroY + (float) ((heighest - minCut) / valueTotal * grid.context.height)); + var openCenterPos = new Vector3(center.x, prb.y); + var closeCenterPos = new Vector3(center.x, prt.y); + if (barWidth > 2f * borderWidth) + { + if (itemWidth > 0 && itemHeight > 0) + { + if (itemStyle.IsNeedCorner()) + { + UGL.DrawRoundRectangle(vh, center, itemWidth, itemHeight, areaColor, areaColor, 0, + itemStyle.cornerRadius, isYAxis, 0.5f); + } + else + { + chart.DrawClipPolygon(vh, ref prb, ref plb, ref plt, ref prt, areaColor, areaColor, + serie.clip, grid); + } + UGL.DrawBorder(vh, center, itemWidth, itemHeight, 2 * borderWidth, borderColor, 0, + itemStyle.cornerRadius, isYAxis, 0.5f); + } + } + else + { + UGL.DrawLine(vh, openCenterPos, closeCenterPos, Mathf.Max(borderWidth, barWidth / 2), borderColor); + } + if (isRise) + { + UGL.DrawLine(vh, openCenterPos, lowPos, borderWidth, borderColor); + UGL.DrawLine(vh, closeCenterPos, heighPos, borderWidth, borderColor); + } + else + { + UGL.DrawLine(vh, closeCenterPos, lowPos, borderWidth, borderColor); + UGL.DrawLine(vh, openCenterPos, heighPos, borderWidth, borderColor); + } + } + if (!serie.animation.IsFinish()) + { + serie.animation.CheckProgress(); + } + if (dataChanging) + { + chart.RefreshPainter(serie); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/CandlestickHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/CandlestickHandler.cs.meta new file mode 100644 index 0000000..d9bbb9d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/CandlestickHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6d530c536c5784f2593e9a7c5a57df16 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/SimplifiedCandlestick.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/SimplifiedCandlestick.cs new file mode 100644 index 0000000..820b00a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/SimplifiedCandlestick.cs @@ -0,0 +1,39 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + [System.Serializable] + [SerieHandler(typeof(SimplifiedCandlestickHandler), true)] + [DefaultAnimation(AnimationType.LeftToRight)] + [SerieExtraComponent()] + [SerieDataExtraComponent()] + [SerieDataExtraField()] + public class SimplifiedCandlestick : Serie, INeedSerieContainer, ISimplifiedSerie + { + public int containerIndex { get; internal set; } + public int containterInstanceId { get; internal set; } + + public static Serie AddDefaultSerie(BaseChart chart, string serieName) + { + var serie = chart.AddSerie<SimplifiedCandlestick>(serieName); + + var lastValue = 50d; + for (int i = 0; i < 50; i++) + { + lastValue += UnityEngine.Random.Range(-10, 20); + var open = lastValue + Random.Range(-10, 5); + var close = lastValue + Random.Range(-5, 10); + var lowest = lastValue + Random.Range(-15, -10); + var heighest = lastValue + Random.Range(10, 20); + chart.AddData(serie.index, open, close, lowest, heighest); + } + return serie; + } + + public static SimplifiedCandlestick CovertSerie(Serie serie) + { + var newSerie = serie.Clone<SimplifiedCandlestick>(); + return newSerie; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/SimplifiedCandlestick.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/SimplifiedCandlestick.cs.meta new file mode 100644 index 0000000..682a2ba --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/SimplifiedCandlestick.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1202f0da64c484488bb69b8382af9918 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/SimplifiedCandlestickHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/SimplifiedCandlestickHandler.cs new file mode 100644 index 0000000..455f600 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/SimplifiedCandlestickHandler.cs @@ -0,0 +1,214 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class SimplifiedCandlestickHandler : SerieHandler<SimplifiedCandlestick> + { + public override void DrawSerie(VertexHelper vh) + { + DrawCandlestickSerie(vh, serie); + } + + public override void UpdateTooltipSerieParams(int dataIndex, bool showCategory, string category, + string marker, string itemFormatter, string numericFormatter, + ref List<SerieParams> paramList, ref string title) + { + if (dataIndex < 0) + dataIndex = serie.context.pointerItemDataIndex; + + if (dataIndex < 0) + return; + + var serieData = serie.GetSerieData(dataIndex); + if (serieData == null) + return; + + title = category; + + var color = SerieHelper.GetItemColor(serie, serieData, chart.theme, serie.context.colorIndex, false); + var newMarker = SerieHelper.GetItemMarker(serie, serieData, marker); + var newItemFormatter = SerieHelper.GetItemFormatter(serie, serieData, itemFormatter); + var newNumericFormatter = SerieHelper.GetNumericFormatter(serie, serieData, numericFormatter); + + var param = serie.context.param; + param.serieName = serie.serieName; + param.serieIndex = serie.index; + param.category = category; + param.dimension = 1; + param.serieData = serieData; + param.dataCount = serie.dataCount; + param.value = 0; + param.total = 0; + param.color = color; + param.marker = newMarker; + param.itemFormatter = newItemFormatter; + param.numericFormatter = newNumericFormatter; + param.columns.Clear(); + + param.columns.Add(param.marker); + param.columns.Add(serie.serieName); + param.columns.Add(string.Empty); + + paramList.Add(param); + for (int i = 0; i < 4; i++) + { + param = new SerieParams(); + param.serieName = serie.serieName; + param.serieIndex = serie.index; + param.dimension = i; + param.serieData = serieData; + param.dataCount = serie.dataCount; + param.value = serieData.GetData(i); + param.total = SerieHelper.GetMaxData(serie, i); + param.color = color; + param.marker = newMarker; + param.itemFormatter = newItemFormatter; + param.numericFormatter = newNumericFormatter; + param.columns.Clear(); + + param.columns.Add(param.marker); + param.columns.Add(XCSettings.lang.GetCandlestickDimensionName(i)); + param.columns.Add(ChartCached.NumberToStr(param.value, param.numericFormatter)); + + paramList.Add(param); + } + } + + private void DrawCandlestickSerie(VertexHelper vh, SimplifiedCandlestick serie) + { + if (!serie.show) return; + if (serie.animation.HasFadeOut()) return; + XAxis xAxis; + YAxis yAxis; + GridCoord grid; + if (!chart.TryGetChartComponent<XAxis>(out xAxis, serie.xAxisIndex)) return; + if (!chart.TryGetChartComponent<YAxis>(out yAxis, serie.yAxisIndex)) return; + if (!chart.TryGetChartComponent<GridCoord>(out grid, xAxis.gridIndex)) return; + var theme = chart.theme; + var dataZoom = chart.GetDataZoomOfAxis(xAxis); + var showData = serie.GetDataList(dataZoom); + float categoryWidth = AxisHelper.GetDataWidth(xAxis, grid.context.width, showData.Count, dataZoom); + float barWidth = serie.GetBarWidth(categoryWidth); + float gap = (categoryWidth - barWidth) / 2; + int maxCount = serie.maxShow > 0 ? + (serie.maxShow > showData.Count ? showData.Count : serie.maxShow) : + showData.Count; + + bool dataChanging = false; + float dataChangeDuration = serie.animation.GetUpdateAnimationDuration(); + double yMinValue = yAxis.context.minValue; + double yMaxValue = yAxis.context.maxValue; + var isYAxis = false; + var itemStyle = serie.itemStyle; + serie.containerIndex = grid.index; + serie.containterInstanceId = grid.instanceId; + + for (int i = serie.minShow; i < maxCount; i++) + { + var serieData = showData[i]; + if (serie.IsIgnoreValue(serieData)) + { + serie.context.dataPoints.Add(Vector3.zero); + continue; + } + var open = serieData.GetCurrData(0, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue); + var close = serieData.GetCurrData(1, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue); + var lowest = serieData.GetCurrData(2, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue); + var heighest = serieData.GetCurrData(3, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue); + var isRise = yAxis.inverse ? close<open : close> open; + var borderWidth = open == 0 ? 0f : + (itemStyle.runtimeBorderWidth == 0 ? theme.serie.candlestickBorderWidth : + itemStyle.runtimeBorderWidth); + if (serieData.IsDataChanged()) dataChanging = true; + float pX = grid.context.x + i * categoryWidth; + float zeroY = grid.context.y + yAxis.context.offset; + if (!xAxis.boundaryGap) pX -= categoryWidth / 2; + float pY = zeroY; + var barHig = 0f; + double valueTotal = yMaxValue - yMinValue; + var minCut = (yMinValue > 0 ? yMinValue : 0); + if (valueTotal != 0) + { + barHig = (float) ((close - open) / valueTotal * grid.context.height); + pY += (float) ((open - minCut) / valueTotal * grid.context.height); + } + serieData.context.stackHeight = barHig; + float currHig = AnimationStyleHelper.CheckDataAnimation(chart, serie, i, barHig); + Vector3 plb, plt, prt, prb, top; + + plb = new Vector3(pX + gap + borderWidth, pY + borderWidth); + plt = new Vector3(pX + gap + borderWidth, pY + currHig - borderWidth); + prt = new Vector3(pX + gap + barWidth - borderWidth, pY + currHig - borderWidth); + prb = new Vector3(pX + gap + barWidth - borderWidth, pY + borderWidth); + top = new Vector3(pX + gap + barWidth / 2, pY + currHig - borderWidth); + // if (serie.clip) + // { + // plb = chart.ClampInGrid(grid, plb); + // plt = chart.ClampInGrid(grid, plt); + // prt = chart.ClampInGrid(grid, prt); + // prb = chart.ClampInGrid(grid, prb); + // top = chart.ClampInGrid(grid, top); + // } + serie.context.dataPoints.Add(top); + var areaColor = isRise ? + itemStyle.GetColor(theme.serie.candlestickColor) : + itemStyle.GetColor0(theme.serie.candlestickColor0); + var borderColor = isRise ? + itemStyle.GetBorderColor(theme.serie.candlestickBorderColor) : + itemStyle.GetBorderColor0(theme.serie.candlestickBorderColor0); + var itemWidth = Mathf.Abs(prt.x - plb.x); + var itemHeight = Mathf.Abs(plt.y - prb.y); + var center = new Vector3((plb.x + prt.x) / 2, (plt.y + prb.y) / 2); + var lowPos = new Vector3(center.x, zeroY + (float) ((lowest - minCut) / valueTotal * grid.context.height)); + var heighPos = new Vector3(center.x, zeroY + (float) ((heighest - minCut) / valueTotal * grid.context.height)); + var openCenterPos = new Vector3(center.x, prb.y); + var closeCenterPos = new Vector3(center.x, prt.y); + if (barWidth > 2f * borderWidth) + { + if (itemWidth > 0 && itemHeight > 0) + { + if (itemStyle.IsNeedCorner()) + { + UGL.DrawRoundRectangle(vh, center, itemWidth, itemHeight, areaColor, areaColor, 0, + itemStyle.cornerRadius, isYAxis, 0.5f); + } + else + { + chart.DrawClipPolygon(vh, ref prb, ref plb, ref plt, ref prt, areaColor, areaColor, + serie.clip, grid); + } + UGL.DrawBorder(vh, center, itemWidth, itemHeight, 2 * borderWidth, borderColor, 0, + itemStyle.cornerRadius, isYAxis, 0.5f); + } + if (isRise) + { + UGL.DrawLine(vh, openCenterPos, lowPos, borderWidth, borderColor); + UGL.DrawLine(vh, closeCenterPos, heighPos, borderWidth, borderColor); + } + else + { + UGL.DrawLine(vh, closeCenterPos, lowPos, borderWidth, borderColor); + UGL.DrawLine(vh, openCenterPos, heighPos, borderWidth, borderColor); + } + } + else + { + UGL.DrawLine(vh, openCenterPos, closeCenterPos, Mathf.Max(borderWidth, barWidth / 2), borderColor); + } + + } + if (!serie.animation.IsFinish()) + { + serie.animation.CheckProgress(); + } + if (dataChanging) + { + chart.RefreshPainter(serie); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/SimplifiedCandlestickHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/SimplifiedCandlestickHandler.cs.meta new file mode 100644 index 0000000..998419c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Candlestick/SimplifiedCandlestickHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 42727a035319b4eab92ddf0742630115 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Heatmap.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Heatmap.meta new file mode 100644 index 0000000..ccda235 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Heatmap.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 70535a50c140c47cc8cac1820dc03170 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Heatmap/Heatmap.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Heatmap/Heatmap.cs new file mode 100644 index 0000000..9d71356 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Heatmap/Heatmap.cs @@ -0,0 +1,30 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + [System.Serializable] + [SerieHandler(typeof(HeatmapHandler), true)] + [DefaultAnimation(AnimationType.LeftToRight)] + [RequireChartComponent(typeof(VisualMap))] + [SerieExtraComponent(typeof(LabelStyle), typeof(EmphasisItemStyle), typeof(EmphasisLabelStyle))] + [SerieDataExtraComponent(typeof(ItemStyle), typeof(LabelStyle), typeof(EmphasisItemStyle), typeof(EmphasisLabelStyle))] + [SerieDataExtraField()] + public class Heatmap : Serie, INeedSerieContainer + { + public int containerIndex { get; internal set; } + public int containterInstanceId { get; internal set; } + public static Serie AddDefaultSerie(BaseChart chart, string serieName) + { + var serie = chart.AddSerie<Heatmap>(serieName); + serie.itemStyle.show = true; + serie.itemStyle.borderWidth = 1; + serie.itemStyle.borderColor = Color.clear; + + var emphasis = serie.AddExtraComponent<EmphasisItemStyle>(); + emphasis.show = true; + emphasis.borderWidth = 1; + emphasis.borderColor = Color.black; + return serie; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Heatmap/Heatmap.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Heatmap/Heatmap.cs.meta new file mode 100644 index 0000000..1c06a6d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Heatmap/Heatmap.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2a9984972d3c74a01945c4064739a826 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Heatmap/HeatmapHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Heatmap/HeatmapHandler.cs new file mode 100644 index 0000000..517033f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Heatmap/HeatmapHandler.cs @@ -0,0 +1,236 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class HeatmapHandler : SerieHandler<Heatmap> + { + private GridCoord m_SerieGrid; + + public override int defaultDimension { get { return 2; } } + + public override void Update() + { + base.Update(); + UpdateSerieContext(); + } + + public override void DrawSerie(VertexHelper vh) + { + DrawHeatmapSerie(vh, serie); + } + + public override void UpdateTooltipSerieParams(int dataIndex, bool showCategory, string category, + string marker, string itemFormatter, string numericFormatter, + ref List<SerieParams> paramList, ref string title) + { + dataIndex = serie.context.pointerItemDataIndex; + if (dataIndex < 0) + return; + + var serieData = serie.GetSerieData(dataIndex); + if (serieData == null) + return; + + if (string.IsNullOrEmpty(category)) + { + var xAxis = chart.GetChartComponent<XAxis>(serie.xAxisIndex); + if (xAxis != null) + category = xAxis.GetData((int) serieData.GetData(0)); + } + + title = serie.serieName; + + var param = serie.context.param; + param.serieName = serie.serieName; + param.serieIndex = serie.index; + param.dimension = defaultDimension; + param.dataCount = serie.dataCount; + param.serieData = serieData; + param.color = serieData.context.color; + param.marker = SerieHelper.GetItemMarker(serie, serieData, marker); + param.itemFormatter = SerieHelper.GetItemFormatter(serie, serieData, itemFormatter); + param.numericFormatter = SerieHelper.GetNumericFormatter(serie, serieData, numericFormatter); + param.columns.Clear(); + + param.columns.Add(param.marker); + param.columns.Add(category); + param.columns.Add(ChartCached.NumberToStr(serieData.GetData(defaultDimension), param.numericFormatter)); + + paramList.Add(param); + } + + private void UpdateSerieContext() + { + if (m_SerieGrid == null) + return; + + var needCheck = (chart.isPointerInChart && m_SerieGrid.IsPointerEnter()) || m_LegendEnter; + var needInteract = false; + if (!needCheck) + { + if (m_LastCheckContextFlag != needCheck) + { + m_LastCheckContextFlag = needCheck; + serie.context.pointerItemDataIndex = -1; + serie.context.pointerEnter = false; + foreach (var serieData in serie.data) + { + serieData.context.highlight = false; + } + chart.RefreshPainter(serie); + } + return; + } + m_LastCheckContextFlag = needCheck; + if (m_LegendEnter) + { + serie.context.pointerEnter = true; + foreach (var serieData in serie.data) + { + serieData.context.highlight = true; + } + } + else + { + serie.context.pointerItemDataIndex = -1; + serie.context.pointerEnter = false; + foreach (var serieData in serie.data) + { + if (!needInteract && serieData.context.rect.Contains(chart.pointerPos)) + { + serie.context.pointerItemDataIndex = serieData.index; + serie.context.pointerEnter = true; + serieData.context.highlight = true; + needInteract = true; + } + else + { + serieData.context.highlight = false; + } + } + } + if (needInteract) + { + chart.RefreshPainter(serie); + } + } + + private void DrawHeatmapSerie(VertexHelper vh, Heatmap serie) + { + if (serie.animation.HasFadeOut()) return; + XAxis xAxis; + YAxis yAxis; + if (!chart.TryGetChartComponent<XAxis>(out xAxis, serie.xAxisIndex)) return; + if (!chart.TryGetChartComponent<YAxis>(out yAxis, serie.yAxisIndex)) return; + m_SerieGrid = chart.GetChartComponent<GridCoord>(xAxis.gridIndex); + xAxis.boundaryGap = true; + yAxis.boundaryGap = true; + var visualMap = chart.GetVisualMapOfSerie(serie); + var emphasisItemStyle = serie.emphasisItemStyle; + var xCount = xAxis.data.Count; + var yCount = yAxis.data.Count; + var xWidth = m_SerieGrid.context.width / xCount; + var yWidth = m_SerieGrid.context.height / yCount; + + var zeroX = m_SerieGrid.context.x; + var zeroY = m_SerieGrid.context.y; + var rangeMin = visualMap.rangeMin; + var rangeMax = visualMap.rangeMax; + var color = chart.theme.GetColor(serie.index); + var borderWidth = serie.itemStyle.show ? serie.itemStyle.borderWidth : 0; + var rectWid = xWidth - 2 * borderWidth; + var rectHig = yWidth - 2 * borderWidth; + + var borderColor = serie.itemStyle.opacity > 0 ? + serie.itemStyle.borderColor : + ChartConst.clearColor32; + borderColor.a = (byte) (borderColor.a * serie.itemStyle.opacity); + + var borderToColor = serie.itemStyle.opacity > 0 ? + serie.itemStyle.borderToColor : + ChartConst.clearColor32; + borderToColor.a = (byte) (borderToColor.a * serie.itemStyle.opacity); + + serie.context.dataPoints.Clear(); + serie.animation.InitProgress(0, xCount); + var animationIndex = serie.animation.GetCurrIndex(); + var dataChangeDuration = serie.animation.GetUpdateAnimationDuration(); + var dataChanging = false; + serie.containerIndex = m_SerieGrid.index; + serie.containterInstanceId = m_SerieGrid.instanceId; + for (int n = 0; n < serie.dataCount; n++) + { + var serieData = serie.data[n]; + serieData.index = n; + var i = (int) serieData.GetData(0); + var j = (int) serieData.GetData(1); + var dimension = VisualMapHelper.GetDimension(visualMap, serieData.data.Count); + if (serie.IsIgnoreValue(serieData, dimension)) + { + serie.context.dataPoints.Add(Vector3.zero); + continue; + } + var value = serieData.GetCurrData(dimension, dataChangeDuration, yAxis.inverse, + yAxis.context.minValue, yAxis.context.maxValue); + if (serieData.IsDataChanged()) dataChanging = true; + var pos = new Vector3(zeroX + (i + (xAxis.boundaryGap ? 0.5f : 0)) * xWidth, + zeroY + (j + (yAxis.boundaryGap ? 0.5f : 0)) * yWidth); + serie.context.dataPoints.Add(pos); + serieData.context.position = pos; + + serieData.context.canShowLabel = false; + serieData.context.rect = new Rect(pos.x - rectWid / 2, pos.y - rectHig / 2, rectWid, rectHig); + if (value == 0) continue; + if ((value < rangeMin && rangeMin != visualMap.min) || + (value > rangeMax && rangeMax != visualMap.max)) + { + continue; + } + if (!visualMap.IsInSelectedValue(value)) continue; + if (animationIndex >= 0 && i > animationIndex) continue; + color = visualMap.GetColor(value); + if (serieData.context.highlight) + color = ChartHelper.GetHighlightColor(color); + + serieData.context.canShowLabel = true; + serieData.context.color = color; + + var highlight = (serieData.context.highlight) || + visualMap.context.pointerIndex > 0; + + //UGL.DrawRectangle(vh, pos, rectWid / 2, rectHig / 2, color); + UGL.DrawRectangle(vh, serieData.context.rect, color); + + if (borderWidth > 0 && !ChartHelper.IsClearColor(borderColor)) + { + UGL.DrawBorder(vh, pos, rectWid, rectHig, borderWidth, borderColor, borderToColor); + } + if (visualMap.hoverLink && highlight && emphasisItemStyle != null && + emphasisItemStyle.borderWidth > 0) + { + var emphasisBorderWidth = emphasisItemStyle.borderWidth; + var emphasisBorderColor = emphasisItemStyle.opacity > 0 ? + emphasisItemStyle.borderColor : ChartConst.clearColor32; + var emphasisBorderToColor = emphasisItemStyle.opacity > 0 ? + emphasisItemStyle.borderToColor : ChartConst.clearColor32; + UGL.DrawBorder(vh, pos, rectWid, rectHig, emphasisBorderWidth, emphasisBorderColor, + emphasisBorderToColor); + } + + } + if (!serie.animation.IsFinish()) + { + serie.animation.CheckProgress(xCount); + chart.RefreshPainter(serie); + } + if (dataChanging) + { + chart.RefreshPainter(serie); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Heatmap/HeatmapHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Heatmap/HeatmapHandler.cs.meta new file mode 100644 index 0000000..2a731f5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Heatmap/HeatmapHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3a5cd70274da44d50b48fc04d8b52e21 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line.meta new file mode 100644 index 0000000..2f308b9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 61f1a04d9920849e7861bebdfd070384 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/Line.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/Line.cs new file mode 100644 index 0000000..d504f13 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/Line.cs @@ -0,0 +1,45 @@ +using System; + +namespace XCharts.Runtime +{ + [Serializable] + [SerieHandler(typeof(LineHandler), true)] + [SerieConvert(typeof(Bar), typeof(Pie))] + [CoordOptions(typeof(GridCoord), typeof(PolarCoord))] + [DefaultAnimation(AnimationType.LeftToRight)] + [SerieExtraComponent( + typeof(LabelStyle), + typeof(EndLabelStyle), + typeof(LineArrow), + typeof(AreaStyle), + typeof(EmphasisItemStyle), + typeof(EmphasisLabelStyle))] + [SerieDataExtraComponent( + typeof(ItemStyle), + typeof(LabelStyle), + typeof(SerieSymbol), + typeof(EmphasisItemStyle), + typeof(EmphasisLabelStyle))] + [SerieDataExtraField("m_Ignore")] + public class Line : Serie, INeedSerieContainer + { + public int containerIndex { get; internal set; } + public int containterInstanceId { get; internal set; } + public static Serie AddDefaultSerie(BaseChart chart, string serieName) + { + var serie = chart.AddSerie<Line>(serieName); + serie.symbol.show = true; + for (int i = 0; i < 5; i++) + { + chart.AddData(serie.index, UnityEngine.Random.Range(10, 90)); + } + return serie; + } + + public static Line CovertSerie(Serie serie) + { + var newSerie = serie.Clone<Line>(); + return newSerie; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/Line.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/Line.cs.meta new file mode 100644 index 0000000..b88d15c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/Line.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 883eff3dc77e0439a80d257577790cbc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHandler.GridCoord.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHandler.GridCoord.cs new file mode 100644 index 0000000..ff00839 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHandler.GridCoord.cs @@ -0,0 +1,436 @@ +using System.Collections.Generic; +using System.Text; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + /// <summary> + /// For grid coord + /// </summary> + internal sealed partial class LineHandler : SerieHandler<Line> + { + List<List<SerieData>> m_StackSerieData = new List<List<SerieData>>(); + private GridCoord m_SerieGrid; + + public override Vector3 GetSerieDataLabelOffset(SerieData serieData, LabelStyle label) + { + var invert = label.autoOffset && + SerieHelper.IsDownPoint(serie, serieData.index) && + (serie.areaStyle == null || !serie.areaStyle.show); + if (invert) + { + var offset = label.GetOffset(serie.context.insideRadius); + return new Vector3(offset.x, -offset.y, offset.z); + } + else + { + return label.GetOffset(serie.context.insideRadius); + } + } + + private void UpdateSerieGridContext() + { + if (m_SerieGrid == null) + return; + var lineWidth = serie.lineStyle.GetWidth(chart.theme.serie.lineWidth); + var needCheck = (chart.isPointerInChart && m_SerieGrid.IsPointerEnter()) || m_LegendEnter; + if (!needCheck) + { + if (m_LastCheckContextFlag != needCheck) + { + m_LastCheckContextFlag = needCheck; + serie.context.pointerItemDataIndex = -1; + serie.context.pointerEnter = false; + serie.highlight = false; + serie.ResetInteract(); + foreach (var serieData in serie.data) + serieData.context.highlight = false; + if (SeriesHelper.IsStack(chart.series)) + chart.RefreshTopPainter(); + else + chart.RefreshPainter(serie); + } + return; + } + m_LastCheckContextFlag = needCheck; + var themeSymbolSize = chart.theme.serie.lineSymbolSize; + var themeSymbolSelectedSize = chart.theme.serie.lineSymbolSelectedSize; + var needInteract = false; + if (m_LegendEnter) + { + serie.interact.SetValue(ref needInteract, lineWidth, true, chart.theme.serie.selectedRate); + for (int i = 0; i < serie.dataCount; i++) + { + var serieData = serie.data[i]; + var symbol = SerieHelper.GetSerieSymbol(serie, serieData); + var symbolSelectedSize = symbol.GetSelectedSize(serieData.data, themeSymbolSelectedSize); + + serieData.context.highlight = true; + serieData.interact.SetValue(ref needInteract, symbolSelectedSize); + } + } + else if (serie.context.isTriggerByAxis) + { + serie.context.pointerEnter = true; + serie.interact.SetValue(ref needInteract, lineWidth, true, chart.theme.serie.selectedRate); + for (int i = 0; i < serie.dataCount; i++) + { + var serieData = serie.data[i]; + var symbol = SerieHelper.GetSerieSymbol(serie, serieData); + var symbolSize = symbol.GetSize(serieData.data, themeSymbolSize); + var symbolSelectedSize = symbol.GetSelectedSize(serieData.data, themeSymbolSelectedSize); + + if (i == serie.context.pointerItemDataIndex) + { + serieData.context.highlight = true; + serieData.interact.SetValue(ref needInteract, symbolSelectedSize); + } + else + { + serieData.context.highlight = false; + serieData.interact.SetValue(ref needInteract, symbolSize); + } + } + } + else + { + serie.context.pointerItemDataIndex = -1; + serie.context.pointerEnter = false; + for (int i = 0; i < serie.dataCount; i++) + { + var serieData = serie.data[i]; + serieData.index = i; + var dist = Vector3.Distance(chart.pointerPos, serieData.context.position); + var symbol = SerieHelper.GetSerieSymbol(serie, serieData); + var symbolSize = symbol.GetSize(serieData.data, themeSymbolSize); + var symbolSelectedSize = symbol.GetSelectedSize(serieData.data, themeSymbolSelectedSize); + if (dist <= symbolSelectedSize) + { + serie.context.pointerItemDataIndex = serieData.index; + serie.context.pointerEnter = true; + serie.interact.SetValue(ref needInteract, lineWidth, true); + serieData.context.highlight = true; + serieData.interact.SetValue(ref needInteract, symbolSelectedSize); + } + else + { + serieData.context.highlight = false; + serieData.interact.SetValue(ref needInteract, symbolSize); + } + } + } + if (needInteract) + { + if (SeriesHelper.IsStack(chart.series)) + chart.RefreshTopPainter(); + else + chart.RefreshPainter(serie); + } + } + + private void DrawLinePoint(VertexHelper vh, Serie serie) + { + if (!serie.show || serie.IsPerformanceMode()) + return; + + if (m_SerieGrid == null) + return; + + var count = serie.context.dataPoints.Count; + var clip = SeriesHelper.IsAnyClipSerie(chart.series); + var theme = chart.theme; + var interacting = false; + var lineArrow = serie.lineArrow; + var visualMap = chart.GetVisualMapOfSerie(serie); + var isVisualMapGradient = VisualMapHelper.IsNeedLineGradient(visualMap); + var isY = ComponentHelper.IsAnyCategoryOfYAxis(chart.components); + + Axis axis; + Axis relativedAxis; + + if (isY) + { + axis = chart.GetChartComponent<YAxis>(serie.yAxisIndex); + relativedAxis = chart.GetChartComponent<XAxis>(serie.xAxisIndex); + } + else + { + axis = chart.GetChartComponent<XAxis>(serie.xAxisIndex); + relativedAxis = chart.GetChartComponent<YAxis>(serie.yAxisIndex); + } + for (int i = 0; i < count; i++) + { + var serieData = serie.GetSerieData(i); + if (serieData == null) + continue; + if (serieData.context.isClip) + continue; + + var symbol = SerieHelper.GetSerieSymbol(serie, serieData); + + if (!symbol.show || !symbol.ShowSymbol(i, count)) + continue; + + var pos = serie.context.dataPoints[i]; + if (lineArrow != null && lineArrow.show) + { + if (lineArrow.position == LineArrow.Position.Start && i == 0) + continue; + if (lineArrow.position == LineArrow.Position.End && i == count - 1) + continue; + } + + if (ChartHelper.IsIngore(pos)) + continue; + + var highlight = serie.data[i].context.highlight || serie.highlight; + var symbolSize = highlight ? + theme.serie.lineSymbolSelectedSize : + theme.serie.lineSymbolSize; + if (!serieData.interact.TryGetValue(ref symbolSize, ref interacting)) + { + symbolSize = highlight ? + symbol.GetSelectedSize(serieData.data, symbolSize) : + symbol.GetSize(serieData.data, symbolSize); + serieData.interact.SetValue(ref interacting, symbolSize); + symbolSize = serie.animation.GetSysmbolSize(symbolSize); + } + var symbolColor = SerieHelper.GetItemColor(serie, serieData, theme, serie.index, highlight); + var symbolToColor = SerieHelper.GetItemToColor(serie, serieData, theme, serie.index, highlight); + var symbolEmptyColor = SerieHelper.GetItemBackgroundColor(serie, serieData, theme, serie.index, highlight, false); + + if (isVisualMapGradient) + { + symbolColor = VisualMapHelper.GetLineGradientColor(visualMap, pos, m_SerieGrid, axis, relativedAxis, symbolColor); + symbolToColor = symbolColor; + } + var symbolBorder = SerieHelper.GetSymbolBorder(serie, serieData, theme, highlight); + var borderColor = SerieHelper.GetSymbolBorderColor(serie, serieData, theme, highlight); + var cornerRadius = SerieHelper.GetSymbolCornerRadius(serie, serieData, highlight); + chart.DrawClipSymbol(vh, symbol.type, symbolSize, symbolBorder, pos, + symbolColor, symbolToColor, symbolEmptyColor, borderColor, symbol.gap, clip, cornerRadius, m_SerieGrid, + i > 0 ? serie.context.dataPoints[i - 1] : m_SerieGrid.context.position); + } + if (interacting) + { + if (SeriesHelper.IsStack(chart.series)) + chart.RefreshTopPainter(); + else + chart.RefreshPainter(serie); + } + } + + private void DrawLineArrow(VertexHelper vh, Serie serie) + { + if (!serie.show || serie.lineArrow == null || !serie.lineArrow.show) + return; + + if (serie.context.dataPoints.Count < 2) + return; + + var lineColor = SerieHelper.GetLineColor(serie, null, chart.theme, serie.index, false); + var startPos = Vector3.zero; + var arrowPos = Vector3.zero; + var lineArrow = serie.lineArrow.arrow; + var dataPoints = serie.context.drawPoints; + switch (serie.lineArrow.position) + { + case LineArrow.Position.End: + if (dataPoints.Count < 3) + { + startPos = dataPoints[dataPoints.Count - 2].position; + arrowPos = dataPoints[dataPoints.Count - 1].position; + } + else + { + startPos = dataPoints[dataPoints.Count - 3].position; + arrowPos = dataPoints[dataPoints.Count - 2].position; + } + UGL.DrawArrow(vh, startPos, arrowPos, lineArrow.width, lineArrow.height, + lineArrow.offset, lineArrow.dent, lineArrow.GetColor(lineColor)); + + break; + + case LineArrow.Position.Start: + startPos = dataPoints[1].position; + arrowPos = dataPoints[0].position; + UGL.DrawArrow(vh, startPos, arrowPos, lineArrow.width, lineArrow.height, + lineArrow.offset, lineArrow.dent, lineArrow.GetColor(lineColor)); + + break; + } + } + + private void DrawLineSerie(VertexHelper vh, Line serie) + { + if (!serie.show) + return; + if (serie.animation.HasFadeOut()) + return; + + var isY = ComponentHelper.IsAnyCategoryOfYAxis(chart.components); + + Axis axis; + Axis relativedAxis; + + if (isY) + { + axis = chart.GetChartComponent<YAxis>(serie.yAxisIndex); + relativedAxis = chart.GetChartComponent<XAxis>(serie.xAxisIndex); + } + else + { + axis = chart.GetChartComponent<XAxis>(serie.xAxisIndex); + relativedAxis = chart.GetChartComponent<YAxis>(serie.yAxisIndex); + } + + if (axis == null) + return; + if (relativedAxis == null) + return; + + m_SerieGrid = chart.GetChartComponent<GridCoord>(axis.gridIndex); + if (m_SerieGrid == null) + return; + if (m_EndLabel != null && !m_SerieGrid.context.endLabelList.Contains(m_EndLabel)) + { + m_SerieGrid.context.endLabelList.Add(m_EndLabel); + } + + var visualMap = chart.GetVisualMapOfSerie(serie); + var dataZoom = chart.GetDataZoomOfAxis(axis); + var showData = serie.GetDataList(dataZoom); + + if (showData.Count <= 0) + return; + + var axisLength = isY ? m_SerieGrid.context.height : m_SerieGrid.context.width; + var scaleWid = AxisHelper.GetDataWidth(axis, axisLength, showData.Count, dataZoom); + + int maxCount = serie.maxShow > 0 ? + (serie.maxShow > showData.Count ? showData.Count : serie.maxShow) : + showData.Count; + int rate = LineHelper.GetDataAverageRate(serie, m_SerieGrid, maxCount, false); + var totalAverage = serie.sampleAverage > 0 ? + serie.sampleAverage : + DataHelper.DataAverage(ref showData, serie.sampleType, serie.minShow, maxCount, rate); + var dataChanging = false; + var dataChangeDuration = serie.animation.GetUpdateAnimationDuration(); + + var interacting = false; + var lineWidth = LineHelper.GetLineWidth(ref interacting, serie, chart.theme.serie.lineWidth); + + axis.context.scaleWidth = scaleWid; + serie.containerIndex = m_SerieGrid.index; + serie.containterInstanceId = m_SerieGrid.instanceId; + + Serie lastSerie = null; + var isStack = SeriesHelper.IsStack<Line>(chart.series, serie.stack); + if (isStack) + { + lastSerie = SeriesHelper.GetLastStackSerie(chart.series, serie); + SeriesHelper.UpdateStackDataList(chart.series, serie, dataZoom, m_StackSerieData); + } + var lp = Vector3.zero; + for (int i = serie.minShow; i < maxCount; i += rate) + { + var serieData = showData[i]; + var isIgnore = serie.IsIgnoreValue(serieData); + if (isIgnore) + { + serieData.context.stackHeight = 0; + serieData.context.position = Vector3.zero; + if (serie.ignoreLineBreak && serie.context.dataIgnores.Count > 0) + { + serie.context.dataIgnores[serie.context.dataIgnores.Count - 1] = true; + } + } + else + { + var np = Vector3.zero; + var xValue = axis.IsCategory() ? i : serieData.GetData(0, axis.inverse); + var relativedValue = DataHelper.SampleValue(ref showData, serie.sampleType, rate, serie.minShow, + maxCount, totalAverage, i, dataChangeDuration, ref dataChanging, relativedAxis); + + serieData.context.stackHeight = GetDataPoint(isY, axis, relativedAxis, m_SerieGrid, xValue, relativedValue, + i, scaleWid, isStack, ref np); + serieData.context.isClip = false; + if (serie.clip && !m_SerieGrid.Contains(np)) + { + if (m_SerieGrid.BoundaryPoint(lp, np, ref np)) + { + serieData.context.isClip = true; + } + } + serie.context.dataIgnores.Add(false); + serieData.context.position = np; + serie.context.dataPoints.Add(np); + lp = np; + } + } + + if (dataChanging || interacting) + chart.RefreshPainter(serie); + + if (serie.context.dataPoints.Count <= 0) + return; + + serie.animation.InitProgress(serie.context.dataPoints, isY); + + VisualMapHelper.AutoSetLineMinMax(visualMap, serie, isY, axis, relativedAxis); + LineHelper.UpdateSerieDrawPoints(serie, chart.settings, chart.theme, visualMap, lineWidth, isY); + LineHelper.DrawSerieLineArea(vh, serie, lastSerie, chart.theme, visualMap, isY, axis, relativedAxis, m_SerieGrid); + LineHelper.DrawSerieLine(vh, chart.theme, serie, visualMap, m_SerieGrid, axis, relativedAxis, lineWidth); + + serie.context.vertCount = vh.currentVertCount; + + if (!serie.animation.IsFinish()) + { + serie.animation.CheckProgress(); + serie.animation.CheckSymbol(serie.symbol.GetSize(null, chart.theme.serie.lineSymbolSize)); + chart.RefreshPainter(serie); + } + } + + private float GetDataPoint(bool isY, Axis axis, Axis relativedAxis, GridCoord grid, double xValue, + double yValue, int i, float scaleWid, bool isStack, ref Vector3 np) + { + float xPos, yPos; + var gridXY = isY ? grid.context.x : grid.context.y; + var valueHig = 0f; + if (isY) + { + valueHig = AxisHelper.GetAxisValueDistance(grid, relativedAxis, scaleWid, yValue); + valueHig = AnimationStyleHelper.CheckDataAnimation(chart, serie, i, valueHig); + + xPos = gridXY + valueHig; + yPos = AxisHelper.GetAxisValuePosition(grid, axis, scaleWid, xValue); + + if (isStack) + { + for (int n = 0; n < m_StackSerieData.Count - 1; n++) + xPos += m_StackSerieData[n][i].context.stackHeight; + } + } + else + { + + valueHig = AxisHelper.GetAxisValueDistance(grid, relativedAxis, scaleWid, yValue); + valueHig = AnimationStyleHelper.CheckDataAnimation(chart, serie, i, valueHig); + + yPos = gridXY + valueHig; + xPos = AxisHelper.GetAxisValuePosition(grid, axis, scaleWid, xValue); + + if (isStack) + { + for (int n = 0; n < m_StackSerieData.Count - 1; n++) + yPos += m_StackSerieData[n][i].context.stackHeight; + } + } + np = new Vector3(xPos, yPos); + return valueHig; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHandler.GridCoord.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHandler.GridCoord.cs.meta new file mode 100644 index 0000000..b6f3a32 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHandler.GridCoord.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 34168c2605d4546c291adeb8e857fd62 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHandler.PolarCoord.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHandler.PolarCoord.cs new file mode 100644 index 0000000..ea5b569 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHandler.PolarCoord.cs @@ -0,0 +1,262 @@ +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + /// <summary> + /// For polar coord + /// </summary> + internal sealed partial class LineHandler + { + private PolarCoord m_SeriePolar; + + private void UpdateSeriePolarContext() + { + if (m_SeriePolar == null) + return; + + var needCheck = (chart.isPointerInChart && m_SeriePolar.IsPointerEnter()) || m_LegendEnter; + var lineWidth = 0f; + if (!needCheck) + { + if (m_LastCheckContextFlag != needCheck) + { + var needAnimation1 = false; + lineWidth = serie.lineStyle.GetWidth(chart.theme.serie.lineWidth); + m_LastCheckContextFlag = needCheck; + serie.context.pointerItemDataIndex = -1; + serie.context.pointerEnter = false; + serie.interact.SetValue(ref needAnimation1, lineWidth, false); + foreach (var serieData in serie.data) + { + var symbol = SerieHelper.GetSerieSymbol(serie, serieData); + var symbolSize = symbol.GetSize(serieData.data, chart.theme.serie.lineSymbolSize); + serieData.context.highlight = false; + serieData.interact.SetValue(ref needAnimation1, symbolSize); + } + if (needAnimation1) + { + if (SeriesHelper.IsStack(chart.series)) + chart.RefreshTopPainter(); + else + chart.RefreshPainter(serie); + } + } + return; + } + m_LastCheckContextFlag = needCheck; + var themeSymbolSize = chart.theme.serie.lineSymbolSize; + var themeSymbolSelectedSize = chart.theme.serie.lineSymbolSelectedSize; + lineWidth = serie.lineStyle.GetWidth(chart.theme.serie.lineWidth); + + var needInteract = false; + if (m_LegendEnter) + { + serie.interact.SetValue(ref needInteract, lineWidth, true, chart.theme.serie.selectedRate); + for (int i = 0; i < serie.dataCount; i++) + { + var serieData = serie.data[i]; + var symbol = SerieHelper.GetSerieSymbol(serie, serieData); + var symbolSelectedSize = symbol.GetSelectedSize(serieData.data, themeSymbolSelectedSize); + + serieData.context.highlight = true; + serieData.interact.SetValue(ref needInteract, symbolSelectedSize); + } + } + else + { + serie.context.pointerItemDataIndex = -1; + serie.context.pointerEnter = false; + var dir = chart.pointerPos - new Vector2(m_SeriePolar.context.center.x, m_SeriePolar.context.center.y); + var pointerAngle = ChartHelper.GetAngle360(Vector2.up, dir); + for (int i = 0; i < serie.dataCount; i++) + { + var serieData = serie.data[i]; + var angle0 = serieData.context.angle; + var angle1 = i >= serie.dataCount - 1 ? angle0 : serie.data[i + 1].context.angle; + + if (pointerAngle >= angle0 && pointerAngle < angle1) + { + serie.context.pointerItemDataIndex = i; + serie.context.pointerEnter = true; + serieData.context.highlight = true; + } + else + { + serieData.context.highlight = false; + } + } + } + if (needInteract) + { + if (SeriesHelper.IsStack(chart.series)) + chart.RefreshTopPainter(); + else + chart.RefreshPainter(serie); + } + } + + private void DrawPolarLine(VertexHelper vh, Serie serie) + { + var datas = serie.data; + if (datas.Count <= 0) + return; + + m_SeriePolar = chart.GetChartComponent<PolarCoord>(serie.polarIndex); + if (m_SeriePolar == null) + return; + + var m_AngleAxis = ComponentHelper.GetAngleAxis(chart.components, m_SeriePolar.index); + var m_RadiusAxis = ComponentHelper.GetRadiusAxis(chart.components, m_SeriePolar.index); + if (m_AngleAxis == null || m_RadiusAxis == null) + return; + + var startAngle = m_AngleAxis.startAngle; + var radius = m_SeriePolar.context.radius; + + var min = m_RadiusAxis.context.minValue; + var max = m_RadiusAxis.context.maxValue; + var firstSerieData = datas[0]; + var lp = GetPolarPos(m_SeriePolar, m_AngleAxis, firstSerieData, min, max, radius); + var cp = Vector3.zero; + var lineColor = SerieHelper.GetLineColor(serie, null, chart.theme, serie.index, serie.highlight); + var lineWidth = serie.lineStyle.GetWidth(chart.theme.serie.lineWidth); + var currDetailProgress = 0f; + var totalDetailProgress = datas.Count; + + serie.animation.InitProgress(currDetailProgress, totalDetailProgress); + + var ltp = Vector3.zero; + var lbp = Vector3.zero; + var ntp = Vector3.zero; + var nbp = Vector3.zero; + var itp = Vector3.zero; + var ibp = Vector3.zero; + var clp = Vector3.zero; + var crp = Vector3.zero; + bool bitp = true, bibp = true; + for (int i = 1; i < datas.Count; i++) + { + if (serie.animation.CheckDetailBreak(i)) + break; + + var serieData = datas[i]; + + cp = GetPolarPos(m_SeriePolar, m_AngleAxis, datas[i], min, max, radius); + var np = i == datas.Count - 1 ? cp : + GetPolarPos(m_SeriePolar, m_AngleAxis, datas[i + 1], min, max, radius); + + UGLHelper.GetLinePoints(lp, cp, np, lineWidth, + ref ltp, ref lbp, + ref ntp, ref nbp, + ref itp, ref ibp, + ref clp, ref crp, + ref bitp, ref bibp, i); + + if (i == 1) + { + UGL.AddVertToVertexHelper(vh, ltp, lbp, lineColor, false); + } + + if (bitp == bibp) + { + if (bitp) + UGL.AddVertToVertexHelper(vh, itp, ibp, lineColor, true); + else + { + UGL.AddVertToVertexHelper(vh, ltp, clp, lineColor, true); + UGL.AddVertToVertexHelper(vh, ltp, crp, lineColor, true); + } + } + else + { + if (bitp) + { + UGL.AddVertToVertexHelper(vh, itp, clp, lineColor, true); + UGL.AddVertToVertexHelper(vh, itp, crp, lineColor, true); + } + else if (bibp) + { + UGL.AddVertToVertexHelper(vh, clp, ibp, lineColor, true); + UGL.AddVertToVertexHelper(vh, crp, ibp, lineColor, true); + } + } + lp = cp; + } + + if (!serie.animation.IsFinish()) + { + serie.animation.CheckProgress(totalDetailProgress); + serie.animation.CheckSymbol(serie.symbol.GetSize(null, chart.theme.serie.lineSymbolSize)); + chart.RefreshChart(); + } + } + + private void DrawPolarLineSymbol(VertexHelper vh) + { + for (int n = 0; n < chart.series.Count; n++) + { + var serie = chart.series[n]; + + if (!serie.show) + continue; + if (!(serie is Line)) + continue; + + var count = serie.dataCount; + for (int i = 0; i < count; i++) + { + var serieData = serie.GetSerieData(i); + var symbol = SerieHelper.GetSerieSymbol(serie, serieData); + if (ChartHelper.IsIngore(serieData.context.position)) + continue; + + bool highlight = serieData.context.highlight || serie.highlight; + if ((!symbol.show || !symbol.ShowSymbol(i, count) || serie.IsPerformanceMode()) && + !serieData.context.highlight) + continue; + + var symbolSize = highlight ? + symbol.GetSelectedSize(serieData.data, chart.theme.serie.lineSymbolSize) : + symbol.GetSize(serieData.data, chart.theme.serie.lineSymbolSize); + + var symbolColor = SerieHelper.GetItemColor(serie, serieData, chart.theme, n, highlight); + var symbolToColor = SerieHelper.GetItemToColor(serie, serieData, chart.theme, n, highlight); + var symbolEmptyColor = SerieHelper.GetItemBackgroundColor(serie, serieData, chart.theme, n, highlight, false); + var symbolBorder = SerieHelper.GetSymbolBorder(serie, serieData, chart.theme, highlight); + var borderColor = SerieHelper.GetSymbolBorderColor(serie, serieData, chart.theme, highlight); + var cornerRadius = SerieHelper.GetSymbolCornerRadius(serie, serieData, highlight); + + symbolSize = serie.animation.GetSysmbolSize(symbolSize); + chart.DrawSymbol(vh, symbol.type, symbolSize, symbolBorder, serieData.context.position, + symbolColor, symbolToColor, symbolEmptyColor, borderColor, symbol.gap, cornerRadius); + } + } + } + + private Vector3 GetPolarPos(PolarCoord m_Polar, AngleAxis m_AngleAxis, SerieData serieData, double min, + double max, float polarRadius) + { + var angle = 0f; + + if (!m_AngleAxis.clockwise) + { + angle = m_AngleAxis.GetValueAngle((float) serieData.GetData(1)); + } + else + { + angle = m_AngleAxis.GetValueAngle((float) serieData.GetData(1)); + } + + var value = serieData.GetData(0); + var radius = (float) ((value - min) / (max - min) * polarRadius); + + angle = (angle + 360) % 360; + serieData.context.angle = angle; + serieData.context.position = ChartHelper.GetPos(m_Polar.context.center, radius, angle, true); + + return serieData.context.position; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHandler.PolarCoord.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHandler.PolarCoord.cs.meta new file mode 100644 index 0000000..fd0e63a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHandler.PolarCoord.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8655c97b8c7e44e44852f8b81a7372b8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHandler.cs new file mode 100644 index 0000000..f15ba49 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHandler.cs @@ -0,0 +1,99 @@ +using System.Collections.Generic; +using System.Text; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + /// <summary> + /// For grid coord + /// </summary> + [UnityEngine.Scripting.Preserve] + internal sealed partial class LineHandler : SerieHandler<Line> + { + public override void Update() + { + base.Update(); + if (serie.IsUseCoord<GridCoord>()) + UpdateSerieGridContext(); + else if (serie.IsUseCoord<PolarCoord>()) + UpdateSeriePolarContext(); + } + + public override void UpdateTooltipSerieParams(int dataIndex, bool showCategory, string category, + string marker, string itemFormatter, string numericFormatter, + ref List<SerieParams> paramList, ref string title) + { + UpdateCoordSerieParams(ref paramList, ref title, dataIndex, showCategory, category, + marker, itemFormatter, numericFormatter); + } + + public override void DrawSerie(VertexHelper vh) + { + if (serie.IsUseCoord<PolarCoord>()) + { + DrawPolarLine(vh, serie); + DrawPolarLineSymbol(vh); + } + else if (serie.IsUseCoord<GridCoord>()) + { + DrawLineSerie(vh, serie); + + if (!SeriesHelper.IsStack(chart.series)) + { + DrawLinePoint(vh, serie); + DrawLineArrow(vh, serie); + } + } + } + + public override void DrawTop(VertexHelper vh) + { + if (serie.IsUseCoord<GridCoord>()) + { + if (SeriesHelper.IsStack(chart.series)) + { + DrawLinePoint(vh, serie); + DrawLineArrow(vh, serie); + } + } + } + + public override void RefreshEndLabelInternal() + { + base.RefreshEndLabelInternal(); + if (m_SerieGrid == null) return; + if (!serie.animation.IsFinish()) return; + var endLabelList = m_SerieGrid.context.endLabelList; + if (endLabelList.Count <= 1) return; + + endLabelList.Sort(delegate(ChartLabel a, ChartLabel b) + { + if (a == null || b == null) return 1; + return b.transform.position.y.CompareTo(a.transform.position.y); + }); + var lastY = float.NaN; + for (int i = 0; i < endLabelList.Count; i++) + { + var label = endLabelList[i]; + if (label == null) continue; + if (!label.isAnimationEnd) continue; + var labelPosition = label.transform.localPosition; + if (float.IsNaN(lastY)) + { + lastY = labelPosition.y; + } + else + { + var labelHeight = label.GetTextHeight(); + if (labelPosition.y + labelHeight > lastY) + { + label.SetPosition(new Vector3(labelPosition.x, lastY - labelHeight, labelPosition.z)); + } + lastY = label.transform.localPosition.y; + } + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHandler.cs.meta new file mode 100644 index 0000000..51dec59 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6e3a076ca3ee241c3b8b1088d4519dfa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHelper.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHelper.cs new file mode 100644 index 0000000..27d06ae --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHelper.cs @@ -0,0 +1,551 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + internal static class LineHelper + { + private static List<Vector3> s_CurvesPosList = new List<Vector3>(); + + public static int GetDataAverageRate(Serie serie, GridCoord grid, int maxCount, bool isYAxis) + { + var sampleDist = serie.sampleDist; + var rate = 0; + var width = isYAxis ? grid.context.height : grid.context.width; + if (sampleDist > 0) + rate = (int) ((maxCount - serie.minShow) / (width / sampleDist)); + if (rate < 1) + rate = 1; + return rate; + } + + public static void DrawSerieLineArea(VertexHelper vh, Serie serie, Serie lastStackSerie, + ThemeStyle theme, VisualMap visualMap, bool isY, Axis axis, Axis relativedAxis, GridCoord grid) + { + if (serie.areaStyle == null || !serie.areaStyle.show) + return; + + var srcAreaColor = SerieHelper.GetAreaColor(serie, null, theme, serie.context.colorIndex, false); + var srcAreaToColor = SerieHelper.GetAreaToColor(serie, null, theme, serie.context.colorIndex, false); + var gridXY = (isY ? grid.context.x : grid.context.y); + if (lastStackSerie == null) + { + DrawSerieLineNormalArea(vh, serie, isY, + gridXY + relativedAxis.context.offset, + gridXY, + gridXY + (isY ? grid.context.width : grid.context.height), + srcAreaColor, + srcAreaToColor, + visualMap, + axis, + relativedAxis, + grid); + } + else + { + DrawSerieLineStackArea(vh, serie, lastStackSerie, isY, + gridXY + relativedAxis.context.offset, + gridXY, + gridXY + (isY ? grid.context.width : grid.context.height), + srcAreaColor, + srcAreaToColor, + visualMap); + } + } + + private static void DrawSerieLineNormalArea(VertexHelper vh, Serie serie, bool isY, + float zero, float min, float max, Color32 areaColor, Color32 areaToColor, + VisualMap visualMap, Axis axis, Axis relativedAxis, GridCoord grid) + { + var points = serie.context.drawPoints; + var count = points.Count; + if (count < 2) + return; + + var isBreak = false; + var lp = Vector3.zero; + var isVisualMapGradient = VisualMapHelper.IsNeedAreaGradient(visualMap); + var areaLerp = !ChartHelper.IsValueEqualsColor(areaColor, areaToColor); + var zsp = isY ? + new Vector3(zero, points[0].position.y) : + new Vector3(points[0].position.x, zero); + var zep = isY ? + new Vector3(zero, points[count - 1].position.y) : + new Vector3(points[count - 1].position.x, zero); + + var lastDataIsIgnore = false; + for (int i = 0; i < points.Count; i++) + { + var tp = points[i].position; + var isIgnore = points[i].isIgnoreBreak; + var color = areaColor; + var toColor = areaToColor; + var lerp = areaLerp; + + if (serie.animation.CheckDetailBreak(tp, isY)) + { + isBreak = true; + + var progress = serie.animation.GetCurrDetail(); + var ip = Vector3.zero; + var axisStartPos = isY ? new Vector3(-10000, progress) : new Vector3(progress, -10000); + var axisEndPos = isY ? new Vector3(10000, progress) : new Vector3(progress, 10000); + + if (UGLHelper.GetIntersection(lp, tp, axisStartPos, axisEndPos, ref ip)) + tp = ip; + } + var zp = isY ? new Vector3(zero, tp.y) : new Vector3(tp.x, zero); + if (isVisualMapGradient) + { + color = VisualMapHelper.GetLineGradientColor(visualMap, zp, grid, axis, relativedAxis, areaColor); + toColor = VisualMapHelper.GetLineGradientColor(visualMap, tp, grid, axis, relativedAxis, areaToColor); + lerp = true; + } + if (i > 0) + { + if ((lp.y - zero > 0 && tp.y - zero < 0) || (lp.y - zero < 0 && tp.y - zero > 0)) + { + var ip = Vector3.zero; + if (UGLHelper.GetIntersection(lp, tp, zsp, zep, ref ip)) + { + if (lerp) + AddVertToVertexHelperWithLerpColor(vh, ip, ip, color, toColor, isY, min, max, i > 0); + else + { + if (lastDataIsIgnore) + UGL.AddVertToVertexHelper(vh, ip, ip, ColorUtil.clearColor32, true); + + UGL.AddVertToVertexHelper(vh, ip, ip, toColor, color, i > 0); + + if (isIgnore) + UGL.AddVertToVertexHelper(vh, ip, ip, ColorUtil.clearColor32, true); + } + } + } + } + + if (lerp) + AddVertToVertexHelperWithLerpColor(vh, tp, zp, color, toColor, isY, min, max, i > 0); + else + { + if (lastDataIsIgnore) + UGL.AddVertToVertexHelper(vh, tp, zp, ColorUtil.clearColor32, true); + + UGL.AddVertToVertexHelper(vh, tp, zp, toColor, color, i > 0); + + if (isIgnore) + UGL.AddVertToVertexHelper(vh, tp, zp, ColorUtil.clearColor32, true); + } + lp = tp; + lastDataIsIgnore = isIgnore; + if (isBreak) + break; + } + } + + private static void DrawSerieLineStackArea(VertexHelper vh, Serie serie, Serie lastStackSerie, bool isY, + float zero, float min, float max, Color32 color, Color32 toColor, VisualMap visualMap) + { + if (lastStackSerie == null) + return; + + var upPoints = serie.context.drawPoints; + var downPoints = lastStackSerie.context.drawPoints; + var upCount = upPoints.Count; + var downCount = downPoints.Count; + + if (upCount <= 0 || downCount <= 0) + return; + + var lerp = !ChartHelper.IsValueEqualsColor(color, toColor); + var ltp = upPoints[0].position; + var lbp = downPoints[0].position; + + if (lerp) + AddVertToVertexHelperWithLerpColor(vh, ltp, lbp, color, toColor, isY, min, max, false); + else + UGL.AddVertToVertexHelper(vh, ltp, lbp, color, false); + + int u = 1, d = 1; + var isBreakTop = false; + var isBreakBottom = false; + + while ((u < upCount || d < downCount)) + { + var tp = u < upCount ? upPoints[u].position : upPoints[upCount - 1].position; + var bp = d < downCount ? downPoints[d].position : downPoints[downCount - 1].position; + + var tnp = (u + 1) < upCount ? upPoints[u + 1].position : upPoints[upCount - 1].position; + var bnp = (d + 1) < downCount ? downPoints[d + 1].position : downPoints[downCount - 1].position; + + if (serie.animation.CheckDetailBreak(tp, isY)) + { + isBreakTop = true; + + var progress = serie.animation.GetCurrDetail(); + var ip = Vector3.zero; + + if (UGLHelper.GetIntersection(ltp, tp, + new Vector3(progress, -10000), + new Vector3(progress, 10000), ref ip)) + tp = ip; + else + tp = new Vector3(progress, tp.y); + } + if (serie.animation.CheckDetailBreak(bp, isY)) + { + isBreakBottom = true; + + var progress = serie.animation.GetCurrDetail(); + var ip = Vector3.zero; + + if (UGLHelper.GetIntersection(lbp, bp, + new Vector3(progress, -10000), + new Vector3(progress, 10000), ref ip)) + bp = ip; + else + bp = new Vector3(progress, bp.y); + } + + if (lerp) + AddVertToVertexHelperWithLerpColor(vh, tp, bp, color, toColor, isY, min, max, true); + else + UGL.AddVertToVertexHelper(vh, tp, bp, color, true); + u++; + d++; + if (bp.x < tp.x && bnp.x < tp.x) + u--; + if (tp.x < bp.x && tnp.x < bp.x) + d--; + + ltp = tp; + lbp = bp; + if (isBreakTop && isBreakBottom) + break; + } + } + + private static void AddVertToVertexHelperWithLerpColor(VertexHelper vh, Vector3 tp, Vector3 bp, + Color32 color, Color32 toColor, bool isY, float min, float max, bool needTriangle) + { + var range = max - min; + var color1 = Color32.Lerp(color, toColor, ((isY ? tp.x : tp.y) - min) / range); + var color2 = Color32.Lerp(color, toColor, ((isY ? bp.x : bp.y) - min) / range); + UGL.AddVertToVertexHelper(vh, tp, bp, color1, color2, needTriangle); + } + + internal static void DrawSerieLine(VertexHelper vh, ThemeStyle theme, Serie serie, VisualMap visualMap, + GridCoord grid, Axis axis, Axis relativedAxis, float lineWidth) + { + if (!serie.lineStyle.show || serie.lineStyle.type == LineStyle.Type.None) + return; + + var datas = serie.context.drawPoints; + + var dataCount = datas.Count; + if (dataCount < 2) + return; + + var ltp = Vector3.zero; + var lbp = Vector3.zero; + var ntp = Vector3.zero; + var nbp = Vector3.zero; + var itp = Vector3.zero; + var ibp = Vector3.zero; + var clp = Vector3.zero; + var crp = Vector3.zero; + + var isBreak = false; + var isY = axis is YAxis; + var isVisualMapGradient = VisualMapHelper.IsNeedLineGradient(visualMap); + var isLineStyleGradient = serie.lineStyle.IsNeedGradient(); + + //var highlight = serie.highlight || serie.context.pointerEnter; + var lineColor = SerieHelper.GetLineColor(serie, null, theme, serie.context.colorIndex, false); + + var lastDataIsIgnore = datas[0].isIgnoreBreak; + var smooth = serie.lineType == LineType.Smooth; + for (int i = 1; i < dataCount; i++) + { + var cdata = datas[i]; + var isIgnore = cdata.isIgnoreBreak; + + var cp = cdata.position; + var lp = datas[i - 1].position; + + var np = i == dataCount - 1 ? cp : datas[i + 1].position; + if (serie.animation.CheckDetailBreak(cp, isY)) + { + isBreak = true; + var ip = Vector3.zero; + var progress = serie.animation.GetCurrDetail(); + if (AnimationStyleHelper.GetAnimationPosition(serie.animation, isY, lp, cp, progress, ref ip)) + cp = np = ip; + } + serie.context.lineEndPostion = cp; + serie.context.lineEndValue = AxisHelper.GetAxisPositionValue(grid, relativedAxis, cp); + lastDataIsIgnore = isIgnore; + var handled = false; + if (!smooth) + { + switch (serie.lineStyle.type) + { + case LineStyle.Type.Dashed: + UGL.DrawDashLine(vh, lp, cp, lineWidth, lineColor, lineColor, 0, 0); + handled = true; + break; + case LineStyle.Type.Dotted: + UGL.DrawDotLine(vh, lp, cp, lineWidth, lineColor, lineColor, 0, 0); + handled = true; + break; + case LineStyle.Type.DashDot: + UGL.DrawDashDotLine(vh, lp, cp, lineWidth, lineColor, 0, 0, 0); + handled = true; + break; + case LineStyle.Type.DashDotDot: + UGL.DrawDashDotDotLine(vh, lp, cp, lineWidth, lineColor, 0, 0, 0); + handled = true; + break; + case LineStyle.Type.None: + handled = true; + break; + } + } + if (handled) + { + if (isBreak) + break; + else + continue; + } + bool bitp = true, bibp = true; + UGLHelper.GetLinePoints(lp, cp, np, lineWidth, + ref ltp, ref lbp, + ref ntp, ref nbp, + ref itp, ref ibp, + ref clp, ref crp, + ref bitp, ref bibp, i); + if (i == 1) + { + AddLineVertToVertexHelper(vh, ltp, lbp, lineColor, isVisualMapGradient, isLineStyleGradient, + visualMap, serie.lineStyle, grid, axis, relativedAxis, false, lastDataIsIgnore, isIgnore); + if (dataCount == 2 || isBreak) + { + AddLineVertToVertexHelper(vh, clp, crp, lineColor, isVisualMapGradient, isLineStyleGradient, + visualMap, serie.lineStyle, grid, axis, relativedAxis, true, lastDataIsIgnore, isIgnore); + serie.context.lineEndPostion = cp; + serie.context.lineEndValue = AxisHelper.GetAxisPositionValue(grid, relativedAxis, cp); + break; + } + } + + if (bitp == bibp) + { + if (bitp) + AddLineVertToVertexHelper(vh, itp, ibp, lineColor, isVisualMapGradient, isLineStyleGradient, + visualMap, serie.lineStyle, grid, axis, relativedAxis, true, lastDataIsIgnore, isIgnore); + else + { + AddLineVertToVertexHelper(vh, ltp, clp, lineColor, isVisualMapGradient, isLineStyleGradient, + visualMap, serie.lineStyle, grid, axis, relativedAxis, true, lastDataIsIgnore, isIgnore); + AddLineVertToVertexHelper(vh, ltp, crp, lineColor, isVisualMapGradient, isLineStyleGradient, + visualMap, serie.lineStyle, grid, axis, relativedAxis, true, lastDataIsIgnore, isIgnore); + } + } + else + { + if (bitp) + { + AddLineVertToVertexHelper(vh, itp, clp, lineColor, isVisualMapGradient, isLineStyleGradient, + visualMap, serie.lineStyle, grid, axis, relativedAxis, true, lastDataIsIgnore, isIgnore); + AddLineVertToVertexHelper(vh, itp, crp, lineColor, isVisualMapGradient, isLineStyleGradient, + visualMap, serie.lineStyle, grid, axis, relativedAxis, true, lastDataIsIgnore, isIgnore); + } + else if (bibp) + { + AddLineVertToVertexHelper(vh, clp, ibp, lineColor, isVisualMapGradient, isLineStyleGradient, + visualMap, serie.lineStyle, grid, axis, relativedAxis, true, lastDataIsIgnore, isIgnore); + AddLineVertToVertexHelper(vh, crp, ibp, lineColor, isVisualMapGradient, isLineStyleGradient, + visualMap, serie.lineStyle, grid, axis, relativedAxis, true, lastDataIsIgnore, isIgnore); + } + } + + if (isBreak) + break; + } + } + + public static float GetLineWidth(ref bool interacting, Serie serie, float defaultWidth) + { + var lineWidth = 0f; + if (!serie.interact.TryGetValue(ref lineWidth, ref interacting)) + { + lineWidth = serie.lineStyle.GetWidth(defaultWidth); + serie.interact.SetValue(ref interacting, lineWidth); + } + return lineWidth; + } + + private static void AddLineVertToVertexHelper(VertexHelper vh, Vector3 tp, Vector3 bp, + Color32 lineColor, bool visualMapGradient, bool lineStyleGradient, VisualMap visualMap, + LineStyle lineStyle, GridCoord grid, Axis axis, Axis relativedAxis, bool needTriangle, + bool lastIgnore, bool ignore) + { + if (lastIgnore && needTriangle) + UGL.AddVertToVertexHelper(vh, tp, bp, ColorUtil.clearColor32, true); + + if (visualMapGradient) + { + var color1 = VisualMapHelper.GetLineGradientColor(visualMap, tp, grid, axis, relativedAxis, lineColor); + var color2 = VisualMapHelper.GetLineGradientColor(visualMap, bp, grid, axis, relativedAxis, lineColor); + UGL.AddVertToVertexHelper(vh, tp, bp, color1, color2, needTriangle); + } + else if (lineStyleGradient) + { + var color1 = VisualMapHelper.GetLineStyleGradientColor(lineStyle, tp, grid, axis, lineColor); + var color2 = VisualMapHelper.GetLineStyleGradientColor(lineStyle, bp, grid, axis, lineColor); + UGL.AddVertToVertexHelper(vh, tp, bp, color1, color2, needTriangle); + } + else + { + UGL.AddVertToVertexHelper(vh, tp, bp, lineColor, needTriangle); + } + if (lastIgnore && !needTriangle) + UGL.AddVertToVertexHelper(vh, tp, bp, ColorUtil.clearColor32, false); + if (ignore && needTriangle) + UGL.AddVertToVertexHelper(vh, tp, bp, ColorUtil.clearColor32, false); + } + + internal static void UpdateSerieDrawPoints(Serie serie, Settings setting, ThemeStyle theme, VisualMap visualMap, + float lineWidth, bool isY = false) + { + serie.context.drawPoints.Clear(); + var last = Vector3.zero; + switch (serie.lineType) + { + case LineType.Smooth: + UpdateSmoothLineDrawPoints(serie, setting, isY); + break; + case LineType.StepStart: + case LineType.StepMiddle: + case LineType.StepEnd: + UpdateStepLineDrawPoints(serie, setting, theme, isY, lineWidth); + break; + default: + UpdateNormalLineDrawPoints(serie, setting, visualMap); + break; + } + } + + private static void UpdateNormalLineDrawPoints(Serie serie, Settings setting, VisualMap visualMap) + { + var isVisualMapGradient = VisualMapHelper.IsNeedGradient(visualMap); + if (isVisualMapGradient) + { + var dataPoints = serie.context.dataPoints; + if (dataPoints.Count > 1) + { + var sp = dataPoints[0]; + for (int i = 1; i < dataPoints.Count; i++) + { + var ep = dataPoints[i]; + var ignore = serie.context.dataIgnores[i]; + var dir = (ep - sp).normalized; + var dist = Vector3.Distance(sp, ep); + var segment = (int) (dist / setting.lineSegmentDistance); + serie.context.drawPoints.Add(new PointInfo(sp, ignore)); + for (int j = 1; j < segment; j++) + { + var np = sp + dir * dist * j / segment; + serie.context.drawPoints.Add(new PointInfo(np, ignore)); + } + sp = ep; + if (i == dataPoints.Count - 1) + { + serie.context.drawPoints.Add(new PointInfo(ep, ignore)); + } + } + } + else + { + serie.context.drawPoints.Add(new PointInfo(dataPoints[0], serie.context.dataIgnores[0])); + } + } + else + { + for (int i = 0; i < serie.context.dataPoints.Count; i++) + { + serie.context.drawPoints.Add(new PointInfo(serie.context.dataPoints[i], serie.context.dataIgnores[i])); + } + } + } + + private static void UpdateSmoothLineDrawPoints(Serie serie, Settings setting, bool isY) + { + var points = serie.context.dataPoints; + float smoothness = setting.lineSmoothness; + for (int i = 0; i < points.Count - 1; i++) + { + var sp = points[i]; + var ep = points[i + 1]; + var lsp = i > 0 ? points[i - 1] : sp; + var nep = i < points.Count - 2 ? points[i + 2] : ep; + var ignore = serie.context.dataIgnores[i]; + if (isY) + UGLHelper.GetBezierListVertical(ref s_CurvesPosList, sp, ep, smoothness, setting.lineSmoothStyle); + else + UGLHelper.GetBezierList(ref s_CurvesPosList, sp, ep, lsp, nep, smoothness, setting.lineSmoothStyle); + + for (int j = 1; j < s_CurvesPosList.Count; j++) + { + serie.context.drawPoints.Add(new PointInfo(s_CurvesPosList[j], ignore)); + } + } + } + + private static void UpdateStepLineDrawPoints(Serie serie, Settings setting, ThemeStyle theme, bool isY, float lineWidth) + { + var points = serie.context.dataPoints; + var lp = points[0]; + serie.context.drawPoints.Clear(); + serie.context.drawPoints.Add(new PointInfo(lp, serie.context.dataIgnores[0])); + for (int i = 1; i < points.Count; i++) + { + var cp = points[i]; + var ignore = serie.context.dataIgnores[i]; + if ((isY && Mathf.Abs(lp.x - cp.x) <= lineWidth) || + (!isY && Mathf.Abs(lp.y - cp.y) <= lineWidth)) + { + serie.context.drawPoints.Add(new PointInfo(cp, ignore)); + lp = cp; + continue; + } + switch (serie.lineType) + { + case LineType.StepStart: + serie.context.drawPoints.Add(new PointInfo(isY ? + new Vector3(cp.x, lp.y) : + new Vector3(lp.x, cp.y), ignore)); + break; + case LineType.StepMiddle: + serie.context.drawPoints.Add(new PointInfo(isY ? + new Vector3(lp.x, (lp.y + cp.y) / 2) : + new Vector3((lp.x + cp.x) / 2, lp.y), ignore)); + serie.context.drawPoints.Add(new PointInfo(isY ? + new Vector3(cp.x, (lp.y + cp.y) / 2) : + new Vector3((lp.x + cp.x) / 2, cp.y), ignore)); + break; + case LineType.StepEnd: + serie.context.drawPoints.Add(new PointInfo(isY ? + new Vector3(lp.x, cp.y) : + new Vector3(cp.x, lp.y), ignore)); + break; + } + serie.context.drawPoints.Add(new PointInfo(cp, ignore)); + lp = cp; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHelper.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHelper.cs.meta new file mode 100644 index 0000000..ae015c8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/LineHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7292748fb01ef44709a94d08f4907dd5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/SimplifiedLine.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/SimplifiedLine.cs new file mode 100644 index 0000000..94470d9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/SimplifiedLine.cs @@ -0,0 +1,41 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + [Serializable] + [SerieHandler(typeof(SimplifiedLineHandler), true)] + [SerieConvert(typeof(SimplifiedBar), typeof(Line))] + [CoordOptions(typeof(GridCoord))] + [DefaultAnimation(AnimationType.LeftToRight)] + [SerieExtraComponent(typeof(AreaStyle))] + [SerieDataExtraComponent()] + [SerieDataExtraField()] + public class SimplifiedLine : Serie, INeedSerieContainer, ISimplifiedSerie + { + public int containerIndex { get; internal set; } + public int containterInstanceId { get; internal set; } + + public static Serie AddDefaultSerie(BaseChart chart, string serieName) + { + var serie = chart.AddSerie<SimplifiedLine>(serieName); + serie.symbol.show = false; + var lastValue = 0d; + for (int i = 0; i < 50; i++) + { + if (i < 20) + lastValue += UnityEngine.Random.Range(0, 5); + else + lastValue += UnityEngine.Random.Range(-3, 5); + chart.AddData(serie.index, lastValue); + } + return serie; + } + + public static SimplifiedLine CovertSerie(Serie serie) + { + var newSerie = serie.Clone<SimplifiedLine>(); + return newSerie; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/SimplifiedLine.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/SimplifiedLine.cs.meta new file mode 100644 index 0000000..486e64b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/SimplifiedLine.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a5740626e12a84a0ca3a984935f61720 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/SimplifiedLineHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/SimplifiedLineHandler.cs new file mode 100644 index 0000000..8b2b0e0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/SimplifiedLineHandler.cs @@ -0,0 +1,280 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + /// <summary> + /// For grid coord + /// </summary> + [UnityEngine.Scripting.Preserve] + internal sealed class SimplifiedLineHandler : SerieHandler<SimplifiedLine> + { + private GridCoord m_SerieGrid; + + public override void Update() + { + base.Update(); + UpdateSerieContext(); + } + + public override void UpdateTooltipSerieParams(int dataIndex, bool showCategory, string category, + string marker, string itemFormatter, string numericFormatter, + ref List<SerieParams> paramList, ref string title) + { + UpdateCoordSerieParams(ref paramList, ref title, dataIndex, showCategory, category, + marker, itemFormatter, numericFormatter); + } + + public override void DrawSerie(VertexHelper vh) + { + DrawLineSerie(vh, serie); + } + + private void UpdateSerieContext() + { + if (m_SerieGrid == null) + return; + + var needCheck = (chart.isPointerInChart && m_SerieGrid.IsPointerEnter()) || m_LegendEnter; + var lineWidth = 0f; + if (!needCheck) + { + if (m_LastCheckContextFlag != needCheck) + { + var needAnimation1 = false; + lineWidth = serie.lineStyle.GetWidth(chart.theme.serie.lineWidth); + m_LastCheckContextFlag = needCheck; + serie.context.pointerItemDataIndex = -1; + serie.context.pointerEnter = false; + serie.interact.SetValue(ref needAnimation1, lineWidth, false); + foreach (var serieData in serie.data) + { + var symbol = SerieHelper.GetSerieSymbol(serie, serieData); + var symbolSize = symbol.GetSize(serieData.data, chart.theme.serie.lineSymbolSize); + serieData.context.highlight = false; + serieData.interact.SetValue(ref needAnimation1, symbolSize); + } + if (needAnimation1) + { + if (SeriesHelper.IsStack(chart.series)) + chart.RefreshTopPainter(); + else + chart.RefreshPainter(serie); + } + } + return; + } + m_LastCheckContextFlag = needCheck; + var themeSymbolSize = chart.theme.serie.lineSymbolSize; + var themeSymbolSelectedSize = chart.theme.serie.lineSymbolSelectedSize; + lineWidth = serie.lineStyle.GetWidth(chart.theme.serie.lineWidth); + + var needInteract = false; + if (m_LegendEnter) + { + serie.interact.SetValue(ref needInteract, lineWidth, true, chart.theme.serie.selectedRate); + for (int i = 0; i < serie.dataCount; i++) + { + var serieData = serie.data[i]; + var symbol = SerieHelper.GetSerieSymbol(serie, serieData); + var symbolSelectedSize = symbol.GetSelectedSize(serieData.data, themeSymbolSelectedSize); + + serieData.context.highlight = true; + serieData.interact.SetValue(ref needInteract, symbolSelectedSize); + } + } + else if (serie.context.isTriggerByAxis) + { + serie.context.pointerEnter = true; + serie.interact.SetValue(ref needInteract, lineWidth, true, chart.theme.serie.selectedRate); + for (int i = 0; i < serie.dataCount; i++) + { + var serieData = serie.data[i]; + var symbol = SerieHelper.GetSerieSymbol(serie, serieData); + var symbolSize = symbol.GetSize(serieData.data, themeSymbolSize); + var symbolSelectedSize = symbol.GetSelectedSize(serieData.data, themeSymbolSelectedSize); + + if (i == serie.context.pointerItemDataIndex) + { + serieData.context.highlight = true; + serieData.interact.SetValue(ref needInteract, symbolSelectedSize); + } + else + { + serieData.context.highlight = false; + serieData.interact.SetValue(ref needInteract, symbolSize); + } + } + } + else + { + serie.context.pointerItemDataIndex = -1; + serie.context.pointerEnter = false; + foreach (var serieData in serie.data) + { + var dist = Vector3.Distance(chart.pointerPos, serieData.context.position); + var symbol = SerieHelper.GetSerieSymbol(serie, serieData); + var symbolSize = symbol.GetSize(serieData.data, themeSymbolSize); + var symbolSelectedSize = symbol.GetSelectedSize(serieData.data, themeSymbolSelectedSize); + + if (dist <= symbolSelectedSize) + { + serie.context.pointerItemDataIndex = serieData.index; + serie.context.pointerEnter = true; + serie.interact.SetValue(ref needInteract, lineWidth, true); + serieData.context.highlight = true; + serieData.interact.SetValue(ref needInteract, symbolSelectedSize); + } + else + { + serieData.context.highlight = false; + serieData.interact.SetValue(ref needInteract, symbolSize); + } + } + } + if (needInteract) + { + if (SeriesHelper.IsStack(chart.series)) + chart.RefreshTopPainter(); + else + chart.RefreshPainter(serie); + } + } + + private void DrawLineSerie(VertexHelper vh, SimplifiedLine serie) + { + if (!serie.show) + return; + if (serie.animation.HasFadeOut()) + return; + + var isY = ComponentHelper.IsAnyCategoryOfYAxis(chart.components); + + Axis axis; + Axis relativedAxis; + + if (isY) + { + axis = chart.GetChartComponent<YAxis>(serie.yAxisIndex); + relativedAxis = chart.GetChartComponent<XAxis>(serie.xAxisIndex); + } + else + { + axis = chart.GetChartComponent<XAxis>(serie.xAxisIndex); + relativedAxis = chart.GetChartComponent<YAxis>(serie.yAxisIndex); + } + m_SerieGrid = chart.GetChartComponent<GridCoord>(axis.gridIndex); + + if (axis == null) + return; + if (relativedAxis == null) + return; + if (m_SerieGrid == null) + return; + + var dataZoom = chart.GetDataZoomOfAxis(axis); + var showData = serie.GetDataList(dataZoom); + + if (showData.Count <= 0) + return; + + var axisLength = isY ? m_SerieGrid.context.height : m_SerieGrid.context.width; + var scaleWid = AxisHelper.GetDataWidth(axis, axisLength, showData.Count, dataZoom); + + int maxCount = serie.maxShow > 0 ? + (serie.maxShow > showData.Count ? showData.Count : serie.maxShow) : + showData.Count; + int rate = LineHelper.GetDataAverageRate(serie, m_SerieGrid, maxCount, false); + var totalAverage = serie.sampleAverage > 0 ? + serie.sampleAverage : + DataHelper.DataAverage(ref showData, serie.sampleType, serie.minShow, maxCount, rate); + var dataChanging = false; + var dataChangeDuration = serie.animation.GetUpdateAnimationDuration(); + + var interacting = false; + var lineWidth = LineHelper.GetLineWidth(ref interacting, serie, chart.theme.serie.lineWidth); + + axis.context.scaleWidth = scaleWid; + serie.containerIndex = m_SerieGrid.index; + serie.containterInstanceId = m_SerieGrid.instanceId; + + for (int i = serie.minShow; i < maxCount; i += rate) + { + var serieData = showData[i]; + var isIgnore = serie.IsIgnoreValue(serieData); + if (isIgnore) + { + serieData.context.stackHeight = 0; + serieData.context.position = Vector3.zero; + if (serie.ignoreLineBreak && serie.context.dataIgnores.Count > 0) + { + serie.context.dataIgnores[serie.context.dataIgnores.Count - 1] = true; + } + } + else + { + var np = Vector3.zero; + var xValue = axis.IsCategory() ? i : serieData.GetData(0, axis.inverse); + var relativedValue = DataHelper.SampleValue(ref showData, serie.sampleType, rate, serie.minShow, + maxCount, totalAverage, i, dataChangeDuration, ref dataChanging, relativedAxis); + + serieData.context.stackHeight = GetDataPoint(isY, axis, relativedAxis, m_SerieGrid, xValue, relativedValue, + i, scaleWid, false, ref np); + + serieData.context.position = np; + + serie.context.dataPoints.Add(np); + serie.context.dataIgnores.Add(false); + } + } + + if (dataChanging || interacting) + chart.RefreshPainter(serie); + + if (serie.context.dataPoints.Count <= 0) + return; + + serie.animation.InitProgress(serie.context.dataPoints, isY); + + LineHelper.UpdateSerieDrawPoints(serie, chart.settings, chart.theme, null, lineWidth, isY); + LineHelper.DrawSerieLineArea(vh, serie, null, chart.theme, null, isY, axis, relativedAxis, m_SerieGrid); + LineHelper.DrawSerieLine(vh, chart.theme, serie, null, m_SerieGrid, axis, relativedAxis, lineWidth); + + serie.context.vertCount = vh.currentVertCount; + + if (!serie.animation.IsFinish()) + { + serie.animation.CheckProgress(); + chart.RefreshPainter(serie); + } + } + + private float GetDataPoint(bool isY, Axis axis, Axis relativedAxis, GridCoord grid, double xValue, + double yValue, int i, float scaleWid, bool isStack, ref Vector3 np) + { + float xPos, yPos; + var gridXY = isY ? grid.context.x : grid.context.y; + + if (isY) + { + var valueHig = AxisHelper.GetAxisValueDistance(grid, relativedAxis, scaleWid, yValue); + valueHig = AnimationStyleHelper.CheckDataAnimation(chart, serie, i, valueHig); + + xPos = gridXY + valueHig; + yPos = AxisHelper.GetAxisValuePosition(grid, axis, scaleWid, xValue); + } + else + { + + var valueHig = AxisHelper.GetAxisValueDistance(grid, relativedAxis, scaleWid, yValue); + valueHig = AnimationStyleHelper.CheckDataAnimation(chart, serie, i, valueHig); + + yPos = gridXY + valueHig; + xPos = AxisHelper.GetAxisValuePosition(grid, axis, scaleWid, xValue); + } + np = new Vector3(xPos, yPos); + return yPos; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/SimplifiedLineHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/SimplifiedLineHandler.cs.meta new file mode 100644 index 0000000..6a41fe3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Line/SimplifiedLineHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3c4714bd08de34548ac7be3ec6523ee1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Parallel.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Parallel.meta new file mode 100644 index 0000000..60bd75e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Parallel.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c2ba7099a74f54617b446aeaf3d95672 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Parallel/Parallel.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Parallel/Parallel.cs new file mode 100644 index 0000000..9d6b752 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Parallel/Parallel.cs @@ -0,0 +1,36 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + [System.Serializable] + [SerieHandler(typeof(ParallelHandler), true)] + [RequireChartComponent(typeof(ParallelCoord))] + [SerieDataExtraComponent(typeof(ItemStyle), typeof(LabelStyle), typeof(EmphasisItemStyle), typeof(EmphasisLabelStyle))] + [SerieDataExtraField()] + public class Parallel : Serie, INeedSerieContainer + { + public int containerIndex { get; internal set; } + public int containterInstanceId { get; internal set; } + public static Serie AddDefaultSerie(BaseChart chart, string serieName) + { + var serie = chart.AddSerie<Parallel>(serieName); + serie.lineStyle.width = 0.8f; + serie.lineStyle.opacity = 0.6f; + + for (int i = 0; i < 100; i++) + { + var data = new List<double>() + { + Random.Range(0f, 50f), + Random.Range(0f, 100f), + Random.Range(0f, 1000f), + Random.Range(0, 5), + }; + serie.AddData(data, "data" + i); + } + chart.RefreshChart(); + return serie; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Parallel/Parallel.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Parallel/Parallel.cs.meta new file mode 100644 index 0000000..3663842 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Parallel/Parallel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 283df79138f274a6ba975ff8f30c6d30 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Parallel/ParallelHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Parallel/ParallelHandler.cs new file mode 100644 index 0000000..38a6453 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Parallel/ParallelHandler.cs @@ -0,0 +1,150 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class ParallelHandler : SerieHandler<Parallel> + { + private List<Vector3> m_Points = new List<Vector3>(); + + public override void Update() + { + base.Update(); + UpdateSerieContext(); + } + + public override void DrawSerie(VertexHelper vh) + { + DrawParallelSerie(vh, serie); + } + + private void UpdateSerieContext() + { } + + private void DrawParallelSerie(VertexHelper vh, Parallel serie) + { + if (!serie.show) return; + if (serie.animation.HasFadeOut()) return; + + var parallel = chart.GetChartComponent<ParallelCoord>(serie.parallelIndex); + if (parallel == null) + return; + + var axisCount = parallel.context.parallelAxes.Count; + if (axisCount <= 0) + return; + + var animationIndex = serie.animation.GetCurrIndex(); + var isHorizonal = parallel.orient == Orient.Horizonal; + var lineColor = SerieHelper.GetLineColor(serie, null, chart.theme, serie.context.colorIndex, false); + var lineWidth = serie.lineStyle.GetWidth(chart.theme.serie.lineWidth); + + float currDetailProgress = !isHorizonal ? + parallel.context.x : + parallel.context.y; + + float totalDetailProgress = !isHorizonal ? + parallel.context.x + parallel.context.width : + parallel.context.y + parallel.context.height; + + serie.animation.InitProgress(currDetailProgress, totalDetailProgress); + + serie.context.dataPoints.Clear(); + serie.containerIndex = parallel.index; + serie.containterInstanceId = parallel.instanceId; + + var currProgress = serie.animation.GetCurrDetail(); + var isSmooth = serie.lineType == LineType.Smooth; + foreach (var serieData in serie.data) + { + m_Points.Clear(); + var count = Mathf.Min(axisCount, serieData.data.Count); + var lp = Vector3.zero; + for (int i = 0; i < count; i++) + { + if (animationIndex >= 0 && i > animationIndex) continue; + var pos = GetPos(parallel, i, serieData.data[i], isHorizonal); + if (!isHorizonal) + { + if (isSmooth) + { + m_Points.Add(pos); + } + else if (pos.x <= currProgress) + { + m_Points.Add(pos); + } + else + { + var currProgressStart = new Vector3(currProgress, parallel.context.y - 50); + var currProgressEnd = new Vector3(currProgress, parallel.context.y + parallel.context.height + 50); + var intersectionPos = Vector3.zero; + + if (UGLHelper.GetIntersection(lp, pos, currProgressStart, currProgressEnd, ref intersectionPos)) + m_Points.Add(intersectionPos); + else + m_Points.Add(pos); + break; + } + } + else + { + if (isSmooth) + { + m_Points.Add(pos); + } + else if (pos.y <= currProgress) + { + m_Points.Add(pos); + } + else + { + var currProgressStart = new Vector3(parallel.context.x - 50, currProgress); + var currProgressEnd = new Vector3(parallel.context.x + parallel.context.width + 50, currProgress); + var intersectionPos = Vector3.zero; + + if (UGLHelper.GetIntersection(lp, pos, currProgressStart, currProgressEnd, ref intersectionPos)) + m_Points.Add(intersectionPos); + else + m_Points.Add(pos); + break; + } + } + lp = pos; + } + if (isSmooth) + UGL.DrawCurves(vh, m_Points, lineWidth, lineColor, chart.settings.lineSmoothness, currProgress, isHorizonal); + else + UGL.DrawLine(vh, m_Points, lineWidth, lineColor, isSmooth); + } + if (!serie.animation.IsFinish()) + { + serie.animation.CheckProgress(totalDetailProgress - currDetailProgress); + chart.RefreshPainter(serie); + } + } + + private static ParallelAxis GetAxis(ParallelCoord parallel, int index) + { + if (index >= 0 && index < parallel.context.parallelAxes.Count) + return parallel.context.parallelAxes[index]; + else + return null; + } + + private static Vector3 GetPos(ParallelCoord parallel, int axisIndex, double dataValue, bool isHorizonal) + { + var axis = GetAxis(parallel, axisIndex); + if (axis == null) + return Vector3.zero; + + var sValueDist = axis.GetDistance(dataValue, axis.context.width); + return new Vector3( + isHorizonal ? axis.context.x + sValueDist : axis.context.x, + isHorizonal ? axis.context.y : axis.context.y + sValueDist); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Parallel/ParallelHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Parallel/ParallelHandler.cs.meta new file mode 100644 index 0000000..e190cca --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Parallel/ParallelHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 482b461d91f8c4013bf291153d5810e6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Pie.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Pie.meta new file mode 100644 index 0000000..cd666fa --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Pie.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a5dfd0cb375a24f659bf56e113aa6fc8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Pie/Pie.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Pie/Pie.cs new file mode 100644 index 0000000..3927879 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Pie/Pie.cs @@ -0,0 +1,30 @@ +namespace XCharts.Runtime +{ + [System.Serializable] + [SerieConvert(typeof(Line), typeof(Bar))] + [SerieHandler(typeof(PieHandler), true)] + [DefaultAnimation(AnimationType.Clockwise)] + [SerieExtraComponent(typeof(LabelStyle), typeof(LabelLine), typeof(TitleStyle), typeof(EmphasisItemStyle), typeof(EmphasisLabelStyle), typeof(EmphasisLabelLine))] + [SerieDataExtraComponent(typeof(ItemStyle), typeof(LabelStyle), typeof(LabelLine), typeof(EmphasisItemStyle), typeof(EmphasisLabelStyle), typeof(EmphasisLabelLine))] + [SerieDataExtraField("m_Ignore", "m_Selected", "m_Radius")] + public class Pie : Serie + { + public override bool useDataNameForColor { get { return true; } } + public override bool titleJustForSerie { get { return true; } } + + public static Serie AddDefaultSerie(BaseChart chart, string serieName) + { + var serie = chart.AddSerie<Pie>(serieName); + chart.AddData(serie.index, 70, "pie1"); + chart.AddData(serie.index, 20, "pie2"); + chart.AddData(serie.index, 10, "pie3"); + return serie; + } + + public static Pie CovertSerie(Serie serie) + { + var newSerie = SerieHelper.CloneSerie<Pie>(serie); + return newSerie; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Pie/Pie.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Pie/Pie.cs.meta new file mode 100644 index 0000000..41dba77 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Pie/Pie.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 53f0d225949a3450e9e90687759f1714 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Pie/PieHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Pie/PieHandler.cs new file mode 100644 index 0000000..d8ee94a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Pie/PieHandler.cs @@ -0,0 +1,564 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class PieHandler : SerieHandler<Pie> + { + public override void Update() + { + base.Update(); + UpdateSerieContext(); + } + + public override void DrawSerie(VertexHelper vh) + { + UpdateRuntimeData(serie); + DrawPieLabelLine(vh, serie); + DrawPie(vh, serie); + } + + public override void UpdateTooltipSerieParams(int dataIndex, bool showCategory, string category, + string marker, string itemFormatter, string numericFormatter, + ref List<SerieParams> paramList, ref string title) + { + UpdateItemSerieParams(ref paramList, ref title, dataIndex, category, + marker, itemFormatter, numericFormatter); + } + + public override Vector3 GetSerieDataLabelPosition(SerieData serieData, LabelStyle label) + { + var labelLine = SerieHelper.GetSerieLabelLine(serie, serieData); + return SerieLabelHelper.GetRealLabelPosition(serie, serieData, label, labelLine); + } + + public override Vector3 GetSerieDataTitlePosition(SerieData serieData, TitleStyle titleStyle) + { + return serie.context.center; + } + + public override void OnLegendButtonClick(int index, string legendName, bool show) + { + if (!serie.IsLegendName(legendName)) + return; + LegendHelper.CheckDataShow(serie, legendName, show); + chart.UpdateLegendColor(legendName, show); + chart.RefreshPainter(serie); + } + + public override void OnLegendButtonEnter(int index, string legendName) + { + if (!serie.IsLegendName(legendName)) + return; + LegendHelper.CheckDataHighlighted(serie, legendName, true); + chart.RefreshPainter(serie); + } + + public override void OnLegendButtonExit(int index, string legendName) + { + if (!serie.IsLegendName(legendName)) + return; + LegendHelper.CheckDataHighlighted(serie, legendName, false); + chart.RefreshPainter(serie); + } + + public override void OnPointerDown(PointerEventData eventData) + { + if (!chart.HasSerie<Pie>()) return; + if (chart.pointerPos == Vector2.zero) return; + var refresh = false; + for (int i = 0; i < chart.series.Count; i++) + { + var serie = chart.GetSerie(i); + if (!(serie is Pie)) continue; + var index = GetPiePosIndex(serie, chart.pointerPos); + if (index >= 0) + { + refresh = true; + for (int j = 0; j < serie.data.Count; j++) + { + if (j == index) serie.data[j].context.selected = !serie.data[j].context.selected; + else serie.data[j].context.selected = false; + } + if (chart.onPointerClickPie != null) + { + chart.onPointerClickPie(eventData, i, index); + } + } + } + if (refresh) chart.RefreshChart(); + } + + private void UpdateSerieContext() + { + var needCheck = m_LegendEnter || (chart.isPointerInChart && PointerIsInPieSerie(serie, chart.pointerPos)); + var needInteract = false; + if (!needCheck) + { + if (m_LastCheckContextFlag != needCheck) + { + m_LastCheckContextFlag = needCheck; + serie.context.pointerItemDataIndex = -1; + serie.context.pointerEnter = false; + foreach (var serieData in serie.data) + { + var colorIndex = chart.GetLegendRealShowNameIndex(serieData.legendName); + var color = SerieHelper.GetItemColor(serie, serieData, chart.theme, colorIndex, false); + var toColor = SerieHelper.GetItemToColor(serie, serieData, chart.theme, colorIndex, false); + serieData.context.highlight = false; + serieData.interact.SetValueAndColor(ref needInteract, serieData.context.outsideRadius, color, toColor); + } + if (needInteract) + { + chart.RefreshPainter(serie); + } + } + return; + } + m_LastCheckContextFlag = needCheck; + serie.context.pointerItemDataIndex = -1; + var dataIndex = GetPiePosIndex(serie, chart.pointerPos); + for (int i = 0; i < serie.dataCount; i++) + { + var serieData = serie.data[i]; + if (dataIndex == i || (m_LegendEnter && m_LegendEnterIndex == i)) + { + serie.context.pointerItemDataIndex = i; + serieData.context.highlight = true; + + var colorIndex = chart.GetLegendRealShowNameIndex(serieData.legendName); + var color = SerieHelper.GetItemColor(serie, serieData, chart.theme, colorIndex, true); + var toColor = SerieHelper.GetItemToColor(serie, serieData, chart.theme, colorIndex, true); + var value = serieData.context.outsideRadius + chart.theme.serie.pieTooltipExtraRadius; + serieData.interact.SetValueAndColor(ref needInteract, value, color, toColor); + } + else + { + serieData.context.highlight = false; + var colorIndex = chart.GetLegendRealShowNameIndex(serieData.legendName); + var color = SerieHelper.GetItemColor(serie, serieData, chart.theme, colorIndex, false); + var toColor = SerieHelper.GetItemToColor(serie, serieData, chart.theme, colorIndex, false); + serieData.interact.SetValueAndColor(ref needInteract, serieData.context.outsideRadius, color, toColor); + } + } + if (needInteract) + { + chart.RefreshPainter(serie); + } + } + + private void UpdateRuntimeData(Serie serie) + { + var data = serie.data; + serie.context.dataMax = serie.yMax; + serie.context.startAngle = GetStartAngle(serie); + var runtimePieDataTotal = serie.yTotal; + + SerieHelper.UpdateCenter(serie, chart.chartPosition, chart.chartWidth, chart.chartHeight); + float startDegree = serie.context.startAngle; + float totalDegree = 0; + float zeroReplaceValue = 0; + int showdataCount = 0; + foreach (var sd in serie.data) + { + if (sd.show && serie.pieRoseType == RoseType.Area) showdataCount++; + sd.context.canShowLabel = false; + } + float dataChangeDuration = serie.animation.GetUpdateAnimationDuration(); + bool isAllZeroValue = SerieHelper.IsAllZeroValue(serie, 1); + var dataTotalFilterMinAngle = runtimePieDataTotal; + if (isAllZeroValue) + { + totalDegree = 360; + zeroReplaceValue = totalDegree / data.Count; + serie.context.dataMax = zeroReplaceValue; + runtimePieDataTotal = 360; + dataTotalFilterMinAngle = 360; + } + else + { + dataTotalFilterMinAngle = GetTotalAngle(serie, runtimePieDataTotal, ref totalDegree); + } + for (int n = 0; n < data.Count; n++) + { + var serieData = data[n]; + serieData.index = n; + var value = isAllZeroValue ? zeroReplaceValue : serieData.GetCurrData(1, dataChangeDuration); + serieData.context.startAngle = startDegree; + serieData.context.toAngle = startDegree; + serieData.context.halfAngle = startDegree; + serieData.context.currentAngle = startDegree; + if (!serieData.show) + { + continue; + } + float degree = serie.pieRoseType == RoseType.Area ? + (totalDegree / showdataCount) : + (float) (totalDegree * value / dataTotalFilterMinAngle); + if (serie.minAngle > 0 && degree < serie.minAngle) degree = serie.minAngle; + serieData.context.toAngle = startDegree + degree; + if (serieData.radius > 0) + serieData.context.outsideRadius = ChartHelper.GetActualValue(serieData.radius, Mathf.Min(chart.chartWidth, chart.chartHeight)); + else + serieData.context.outsideRadius = serie.pieRoseType > 0 ? + serie.context.insideRadius + (float) ((serie.context.outsideRadius - serie.context.insideRadius) * value / serie.context.dataMax) : + serie.context.outsideRadius; + if (serieData.context.highlight) + { + serieData.context.outsideRadius += chart.theme.serie.pieTooltipExtraRadius; + } + var offset = 0f; + if (serie.pieClickOffset && serieData.selected) + { + offset += chart.theme.serie.pieSelectedOffset; + } + if (serie.animation.CheckDetailBreak(serieData.context.toAngle)) + { + serieData.context.currentAngle = serie.animation.GetCurrDetail(); + } + else + { + serieData.context.currentAngle = serieData.context.toAngle; + } + var halfDegree = (serieData.context.toAngle - startDegree) / 2; + serieData.context.halfAngle = startDegree + halfDegree; + serieData.context.offsetCenter = serie.context.center; + serieData.context.insideRadius = serie.context.insideRadius; + if (offset > 0) + { + var currRad = serieData.context.halfAngle * Mathf.Deg2Rad; + var currSin = Mathf.Sin(currRad); + var currCos = Mathf.Cos(currRad); + serieData.context.offsetRadius = 0; + serieData.context.insideRadius -= serieData.context.offsetRadius; + serieData.context.outsideRadius -= serieData.context.offsetRadius; + if (serie.pieClickOffset && serieData.selected) + { + serieData.context.offsetRadius += chart.theme.serie.pieSelectedOffset; + if (serieData.context.insideRadius > 0) + { + serieData.context.insideRadius += chart.theme.serie.pieSelectedOffset; + } + serieData.context.outsideRadius += chart.theme.serie.pieSelectedOffset; + } + serieData.context.offsetCenter = new Vector3( + serie.context.center.x + serieData.context.offsetRadius * currSin, + serie.context.center.y + serieData.context.offsetRadius * currCos); + } + serieData.context.canShowLabel = serieData.context.currentAngle >= serieData.context.halfAngle; + startDegree = serieData.context.toAngle; + SerieLabelHelper.UpdatePieLabelPosition(serie, serieData); + } + SerieLabelHelper.AvoidLabelOverlap(serie, chart.theme.common); + } + + private double GetTotalAngle(Serie serie, double dataTotal, ref float totalAngle) + { + totalAngle = serie.context.startAngle + 360f; + if (serie.minAngle > 0) + { + var rate = serie.minAngle / 360; + var minAngleValue = dataTotal * rate; + foreach (var serieData in serie.data) + { + var value = serieData.GetData(1); + if (value < minAngleValue) + { + totalAngle -= serie.minAngle; + dataTotal -= value; + } + } + return dataTotal; + } + else + { + return dataTotal; + } + } + + private void DrawPieCenter(VertexHelper vh, Serie serie, ItemStyle itemStyle, float insideRadius) + { + if (!ChartHelper.IsClearColor(itemStyle.centerColor)) + { + var radius = insideRadius - itemStyle.centerGap; + UGL.DrawCricle(vh, serie.context.center, radius, itemStyle.centerColor, chart.settings.cicleSmoothness); + } + } + + private void DrawPie(VertexHelper vh, Serie serie) + { + if (!serie.show || serie.animation.HasFadeOut()) + { + return; + } + var dataChanging = false; + var interacting = false; + var color = ColorUtil.clearColor32; + var toColor = ColorUtil.clearColor32; + var data = serie.data; + serie.animation.InitProgress(0, 360); + for (int n = 0; n < data.Count; n++) + { + var serieData = data[n]; + if (!serieData.show) + { + continue; + } + if (serieData.IsDataChanged()) + dataChanging = true; + + var itemStyle = SerieHelper.GetItemStyle(serie, serieData, serieData.context.highlight); + var colorIndex = chart.GetLegendRealShowNameIndex(serieData.legendName); + var outsideRadius = 0f; + + var borderWidth = itemStyle.borderWidth; + var borderColor = itemStyle.borderColor; + + var progress = AnimationStyleHelper.CheckDataAnimation(chart, serie, n, 1); + var insideRadius = serieData.context.insideRadius * progress; + + //if (!serieData.interact.TryGetValueAndColor(ref outsideRadius, ref color, ref toColor, ref interacting)) + { + color = SerieHelper.GetItemColor(serie, serieData, chart.theme, colorIndex, serieData.context.highlight); + toColor = SerieHelper.GetItemToColor(serie, serieData, chart.theme, colorIndex, serieData.context.highlight); + outsideRadius = serieData.context.outsideRadius * progress; + serieData.interact.SetValueAndColor(ref interacting, outsideRadius, color, toColor); + } + + if (serie.pieClickOffset && serieData.selected) + { + var drawEndDegree = serieData.context.currentAngle; + var needRoundCap = serie.roundCap && insideRadius > 0; + UGL.DrawDoughnut(vh, serieData.context.offsetCenter, insideRadius, + outsideRadius, color, toColor, Color.clear, serieData.context.startAngle, + drawEndDegree, borderWidth, borderColor, serie.gap / 2, chart.settings.cicleSmoothness, + needRoundCap, true); + } + else + { + var drawEndDegree = serieData.context.currentAngle; + var needRoundCap = serie.roundCap && insideRadius > 0; + UGL.DrawDoughnut(vh, serie.context.center, insideRadius, + outsideRadius, color, toColor, Color.clear, serieData.context.startAngle, + drawEndDegree, borderWidth, borderColor, serie.gap / 2, chart.settings.cicleSmoothness, + needRoundCap, true); + DrawPieCenter(vh, serie, itemStyle, insideRadius); + } + + if (serie.animation.CheckDetailBreak(serieData.context.toAngle)) + break; + } + if (!serie.animation.IsFinish()) + { + serie.animation.CheckProgress(); + serie.animation.CheckSymbol(serie.symbol.GetSize(null, chart.theme.serie.lineSymbolSize)); + chart.RefreshPainter(serie); + } + if (dataChanging) + { + chart.RefreshPainter(serie); + } + } + + private bool IsAnyPieClickOffset() + { + foreach (var serie in chart.series) + { + if (serie is Pie && serie.pieClickOffset) + return true; + } + return false; + } + + private bool IsAnyPieDataHighlight() + { + foreach (var serie in chart.series) + { + if (serie is Pie) + { + foreach (var serieData in serie.data) + { + if (serieData.context.highlight) + return true; + } + } + } + return false; + } + + private void DrawPieLabelLine(VertexHelper vh, Serie serie) + { + foreach (var serieData in serie.data) + { + var serieLabel = SerieHelper.GetSerieLabel(serie, serieData); + if (SerieLabelHelper.CanShowLabel(serie, serieData, serieLabel, 1)) + { + int colorIndex = chart.m_LegendRealShowName.IndexOf(serieData.name); + Color color = chart.theme.GetColor(colorIndex); + DrawPieLabelLine(vh, serie, serieData, color); + } + } + } + + private void DrawPieLabelLine(VertexHelper vh, Serie serie, SerieData serieData, Color color) + { + var serieLabel = SerieHelper.GetSerieLabel(serie, serieData); + var labelLine = SerieHelper.GetSerieLabelLine(serie, serieData); + if (serieLabel != null && serieLabel.show && + labelLine != null && labelLine.show && + (serieLabel.IsDefaultPosition(LabelStyle.Position.Outside))) + { + var insideRadius = serieData.context.insideRadius; + var outSideRadius = serieData.context.outsideRadius; + var center = serie.context.center; + var currAngle = serieData.context.halfAngle; + + if (!ChartHelper.IsClearColor(labelLine.lineColor)) + color = labelLine.lineColor; + else if (labelLine.lineType == LabelLine.LineType.HorizontalLine) + color *= color; + + float currSin = Mathf.Sin(currAngle * Mathf.Deg2Rad); + float currCos = Mathf.Cos(currAngle * Mathf.Deg2Rad); + var radius1 = labelLine.lineType == LabelLine.LineType.HorizontalLine ? + serie.context.outsideRadius : outSideRadius; + var radius2 = serie.context.outsideRadius + labelLine.lineLength1; + var radius3 = insideRadius + (outSideRadius - insideRadius) / 2; + if (radius1 < serie.context.insideRadius) radius1 = serie.context.insideRadius; + radius1 -= 0.1f; + var pos0 = new Vector3(center.x + radius3 * currSin, center.y + radius3 * currCos); + var pos1 = new Vector3(center.x + radius1 * currSin, center.y + radius1 * currCos); + var pos2 = serieData.context.labelPosition; + if (pos2.x == 0) + { + pos2 = new Vector3(center.x + radius2 * currSin, center.y + radius2 * currCos); + } + Vector3 pos4, pos6; + var horizontalLineCircleRadius = labelLine.lineWidth * 4f; + var lineCircleDiff = horizontalLineCircleRadius - 0.3f; + var startAngle = serie.context.startAngle; + if (currAngle < 90) + { + var r4 = Mathf.Sqrt(radius1 * radius1 - Mathf.Pow(currCos * radius3, 2)) - currSin * radius3; + r4 += labelLine.lineLength1 - lineCircleDiff; + pos6 = pos0 + Vector3.right * lineCircleDiff; + pos4 = pos6 + Vector3.right * r4; + } + else if (currAngle < 180) + { + var r4 = Mathf.Sqrt(radius1 * radius1 - Mathf.Pow(currCos * radius3, 2)) - currSin * radius3; + r4 += labelLine.lineLength1 - lineCircleDiff; + pos6 = pos0 + Vector3.right * lineCircleDiff; + pos4 = pos6 + Vector3.right * r4; + } + else if (currAngle < 270) + { + var currSin1 = Mathf.Sin((360 - currAngle) * Mathf.Deg2Rad); + var currCos1 = Mathf.Cos((360 - currAngle) * Mathf.Deg2Rad); + var r4 = Mathf.Sqrt(radius1 * radius1 - Mathf.Pow(currCos1 * radius3, 2)) - currSin1 * radius3; + r4 += labelLine.lineLength1 - lineCircleDiff; + pos6 = pos0 + Vector3.left * lineCircleDiff; + pos4 = pos6 + Vector3.left * r4; + } + else + { + var currSin1 = Mathf.Sin((360 - currAngle) * Mathf.Deg2Rad); + var currCos1 = Mathf.Cos((360 - currAngle) * Mathf.Deg2Rad); + var r4 = Mathf.Sqrt(radius1 * radius1 - Mathf.Pow(currCos1 * radius3, 2)) - currSin1 * radius3; + r4 += labelLine.lineLength1 - lineCircleDiff; + pos6 = pos0 + Vector3.left * lineCircleDiff; + pos4 = pos6 + Vector3.left * r4; + } + var pos5X = (currAngle - startAngle) % 360 > 180 ? + pos2.x - labelLine.lineLength2 : pos2.x + labelLine.lineLength2; + var pos5 = new Vector3(pos5X, pos2.y); + switch (labelLine.lineType) + { + case LabelLine.LineType.BrokenLine: + UGL.DrawLine(vh, pos1, pos2, pos5, labelLine.lineWidth, color); + break; + case LabelLine.LineType.Curves: + UGL.DrawCurves(vh, pos1, pos5, pos1, pos2, labelLine.lineWidth, color, + chart.settings.lineSmoothness); + break; + case LabelLine.LineType.HorizontalLine: + UGL.DrawCricle(vh, pos0, horizontalLineCircleRadius, color); + UGL.DrawLine(vh, pos6, pos4, labelLine.lineWidth, color); + break; + } + } + } + + private int GetPiePosIndex(Serie serie, Vector2 local) + { + if (!(serie is Pie)) + return -1; + + var dist = Vector2.Distance(local, serie.context.center); + var maxRadius = serie.context.outsideRadius + 3 * chart.theme.serie.pieSelectedOffset; + if (dist < serie.context.insideRadius || dist > maxRadius) + return -1; + + var dir = local - new Vector2(serie.context.center.x, serie.context.center.y); + var angle = ChartHelper.GetAngle360(Vector2.up, dir); + for (int i = 0; i < serie.data.Count; i++) + { + var serieData = serie.data[i]; + if (angle >= serieData.context.startAngle && angle <= serieData.context.toAngle) + { + var ndist = serieData.selected ? + Vector2.Distance(local, serieData.context.offsetCenter) : + dist; + if (ndist >= serieData.context.insideRadius && ndist <= serieData.context.outsideRadius) + { + return i; + } + } + } + return -1; + } + + private bool PointerIsInPieSerie(Serie serie, Vector2 local) + { + if (!(serie is Pie)) + return false; + + var dist = Vector2.Distance(local, serie.context.center); + if (dist >= serie.context.insideRadius && dist <= serie.context.outsideRadius) + return true; + + return false; + } + + private float GetStartAngle(Serie serie) + { + return serie.clockwise ? (serie.startAngle + 360) % 360 : 360 - serie.startAngle; + } + + private float GetToAngle(Serie serie, float angle) + { + var toAngle = angle + serie.startAngle; + if (!serie.clockwise) + { + toAngle = 360 - angle - serie.startAngle; + } + if (!serie.animation.IsFinish()) + { + var currAngle = serie.animation.GetCurrDetail(); + if (serie.clockwise) + { + toAngle = toAngle > currAngle ? currAngle : toAngle; + } + else + { + toAngle = toAngle < 360 - currAngle ? 360 - currAngle : toAngle; + } + } + return toAngle; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Pie/PieHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Pie/PieHandler.cs.meta new file mode 100644 index 0000000..3c1fddb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Pie/PieHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 13b8c981e5910447fbe769d539b77f96 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Radar.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Radar.meta new file mode 100644 index 0000000..15c0c0c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Radar.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 375cebcd4f8c54025ab608f35b1fa8c6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Radar/Radar.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Radar/Radar.cs new file mode 100644 index 0000000..8af45a9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Radar/Radar.cs @@ -0,0 +1,35 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + [System.Serializable] + [SerieHandler(typeof(RadarHandler), true)] + [RequireChartComponent(typeof(RadarCoord))] + [SerieExtraComponent(typeof(LabelStyle), typeof(AreaStyle), typeof(EmphasisItemStyle), typeof(EmphasisLabelStyle))] + [SerieDataExtraComponent(typeof(ItemStyle), typeof(LabelStyle), typeof(AreaStyle), typeof(EmphasisItemStyle), typeof(EmphasisLabelStyle))] + [SerieDataExtraField()] + public class Radar : Serie, INeedSerieContainer + { + public int containerIndex { get; internal set; } + public int containterInstanceId { get; internal set; } + public override bool useDataNameForColor { get { return true; } } + public override bool multiDimensionLabel { get { return radarType == RadarType.Multiple; } } + + public static Serie AddDefaultSerie(BaseChart chart, string serieName) + { + chart.AddChartComponentWhenNoExist<RadarCoord>(); + var serie = chart.AddSerie<Radar>(serieName); + serie.symbol.show = true; + serie.symbol.type = SymbolType.Circle; + serie.showDataName = true; + List<double> data = new List<double>(); + for (int i = 0; i < 5; i++) + { + data.Add(Random.Range(20, 90)); + } + chart.AddData(serie.index, data, "legendName"); + return serie; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Radar/Radar.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Radar/Radar.cs.meta new file mode 100644 index 0000000..1e2b8e5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Radar/Radar.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0bda9968e18724e389ff1cbde57baeee +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Radar/RadarHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Radar/RadarHandler.cs new file mode 100644 index 0000000..374455d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Radar/RadarHandler.cs @@ -0,0 +1,504 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class RadarHandler : SerieHandler<Radar> + { + private RadarCoord m_RadarCoord; + public override void Update() + { + base.Update(); + UpdateSerieContext(); + } + + public override void DrawSerie(VertexHelper vh) + { + if (!serie.show) return; + switch (serie.radarType) + { + case RadarType.Multiple: + DrawMutipleRadar(vh); + break; + case RadarType.Single: + DrawSingleRadar(vh); + break; + } + } + + public override void UpdateTooltipSerieParams(int dataIndex, bool showCategory, string category, + string marker, string itemFormatter, string numericFormatter, + ref List<SerieParams> paramList, ref string title) + { + if (!serie.context.pointerEnter) + return; + dataIndex = serie.context.pointerItemDataIndex; + if (dataIndex < 0) + return; + + if (serie.radarType == RadarType.Single) + { + UpdateItemSerieParams(ref paramList, ref title, dataIndex, category, + marker, itemFormatter, numericFormatter); + return; + } + + var radar = chart.GetChartComponent<RadarCoord>(serie.radarIndex); + if (radar == null) + return; + + var serieData = serie.GetSerieData(dataIndex); + if (serieData == null) + return; + + var color = SerieHelper.GetItemColor(serie, serieData, chart.theme, dataIndex, false);; + title = serieData.name; + for (int i = 0; i < serieData.data.Count; i++) + { + var indicator = radar.GetIndicator(i); + if (indicator == null) continue; + + var param = new SerieParams(); + param.serieName = serie.serieName; + param.serieIndex = serie.index; + param.dimension = i; + param.serieData = serieData; + param.dataCount = serie.dataCount; + param.value = serieData.GetData(i); + param.total = indicator.max; + param.color = color; + param.marker = SerieHelper.GetItemMarker(serie, serieData, marker); + param.itemFormatter = SerieHelper.GetItemFormatter(serie, serieData, itemFormatter); + param.numericFormatter = SerieHelper.GetNumericFormatter(serie, serieData, numericFormatter); + param.columns.Clear(); + + param.columns.Add(param.marker); + param.columns.Add(indicator.name); + param.columns.Add(ChartCached.NumberToStr(serieData.GetData(i), param.numericFormatter)); + + paramList.Add(param); + } + } + + private void UpdateSerieContext() + { + var needCheck = m_LegendEnter || + (chart.isPointerInChart && (m_RadarCoord != null && m_RadarCoord.IsPointerEnter())); + var needInteract = false; + var needHideAll = false; + if (!needCheck) + { + if (m_LastCheckContextFlag == needCheck) + return; + needHideAll = true; + } + m_LastCheckContextFlag = needCheck; + serie.context.pointerEnter = false; + serie.context.pointerItemDataIndex = -1; + var areaStyle = serie.areaStyle; + switch (serie.radarType) + { + case RadarType.Multiple: + for (int i = 0; i < serie.data.Count; i++) + { + var serieData = serie.data[i]; + serieData.index = i; + var symbol = SerieHelper.GetSerieSymbol(serie, serieData); + var symbolSize = symbol.GetSize(serieData.data, chart.theme.serie.lineSymbolSize); + if (needHideAll || m_LegendEnter) + { + serieData.context.highlight = needHideAll ? false : true; + serieData.interact.SetValue(ref needInteract, symbolSize, serieData.context.highlight); + } + else + { + serieData.context.highlight = false; + foreach (var pos in serieData.context.dataPoints) + { + if (Vector3.Distance(chart.pointerPos, pos) < symbolSize * 2) + { + serie.context.pointerEnter = true; + serie.context.pointerItemDataIndex = i; + serieData.context.highlight = true; + break; + } + } + if (!serieData.context.highlight && areaStyle != null) + { + var center = m_RadarCoord.context.center; + var dataPoints = serieData.context.dataPoints; + for (int n = 0; n < dataPoints.Count; n++) + { + var p1 = dataPoints[n]; + var p2 = n >= dataPoints.Count - 1 ? dataPoints[0] : dataPoints[n + 1]; + if (UGLHelper.IsPointInTriangle(p1, center, p2, chart.pointerPos)) + { + serie.context.pointerEnter = true; + serie.context.pointerItemDataIndex = i; + serieData.context.highlight = true; + break; + } + } + } + serieData.interact.SetValue(ref needInteract, symbolSize, serieData.context.highlight); + } + } + break; + case RadarType.Single: + for (int i = 0; i < serie.data.Count; i++) + { + var serieData = serie.data[i]; + serieData.index = i; + if (Vector3.Distance(chart.pointerPos, serieData.context.position) < serie.symbol.size * 2) + { + serie.context.pointerEnter = true; + serie.context.pointerItemDataIndex = i; + return; + } + } + if (!serie.context.pointerEnter && areaStyle != null) + { + var center = m_RadarCoord.context.center; + var dataPoints = serie.data; + for (int n = 0; n < dataPoints.Count; n++) + { + var p1 = dataPoints[n]; + var p2 = n >= dataPoints.Count - 1 ? dataPoints[0] : dataPoints[n + 1]; + if (UGLHelper.IsPointInTriangle(p1.context.position, center, p2.context.position, chart.pointerPos)) + { + serie.context.pointerEnter = true; + serie.context.pointerItemDataIndex = n; + p1.context.highlight = true; + break; + } + } + } + break; + } + if (needInteract) + { + chart.RefreshPainter(serie); + } + } + + private void DrawMutipleRadar(VertexHelper vh) + { + if (!serie.show) return; + m_RadarCoord = chart.GetChartComponent<RadarCoord>(serie.radarIndex); + if (m_RadarCoord == null) return; + + serie.containerIndex = m_RadarCoord.index; + serie.containterInstanceId = m_RadarCoord.instanceId; + + var startPoint = Vector3.zero; + var toPoint = Vector3.zero; + var firstPoint = Vector3.zero; + var indicatorNum = m_RadarCoord.indicatorList.Count; + var angle = 2 * Mathf.PI / indicatorNum; + var centerPos = m_RadarCoord.context.center; + serie.animation.InitProgress(0, 1); + if (!serie.show || serie.animation.HasFadeOut()) + { + return; + } + var rate = serie.animation.GetCurrRate(); + var dataChanging = false; + var interacting = false; + var dataChangeDuration = serie.animation.GetUpdateAnimationDuration(); + SerieHelper.GetAllMinMaxData(serie, m_RadarCoord.ceilRate); + for (int j = 0; j < serie.data.Count; j++) + { + var serieData = serie.data[j]; + string dataName = serieData.name; + if (!serieData.show) + { + continue; + } + var lineStyle = SerieHelper.GetLineStyle(serie, serieData); + var areaStyle = SerieHelper.GetAreaStyle(serie, serieData); + var symbol = SerieHelper.GetSerieSymbol(serie, serieData); + var isHighlight = serieData.context.highlight; + var colorIndex = chart.GetLegendRealShowNameIndex(serieData.legendName); + var areaColor = SerieHelper.GetAreaColor(serie, serieData, chart.theme, colorIndex, isHighlight); + var areaToColor = SerieHelper.GetAreaToColor(serie, serieData, chart.theme, colorIndex, isHighlight); + var lineColor = SerieHelper.GetLineColor(serie, serieData, chart.theme, colorIndex, isHighlight); + var lineWidth = lineStyle.GetWidth(chart.theme.serie.lineWidth); + int dataCount = m_RadarCoord.indicatorList.Count; + serieData.context.dataPoints.Clear(); + for (int n = 0; n < dataCount; n++) + { + if (n >= serieData.data.Count) break; + var min = m_RadarCoord.GetIndicatorMin(n); + var max = m_RadarCoord.GetIndicatorMax(n); + var value = serieData.GetCurrData(n, dataChangeDuration); + if (serieData.IsDataChanged()) dataChanging = true; + if (max == 0) + { + if (serie.data.Count > 1) + { + SerieHelper.GetMinMaxData(serie, n, out min, out max); + min = ChartHelper.GetMinDivisibleValue(min, 0); + max = ChartHelper.GetMaxDivisibleValue(max, 0); + if (min > 0) min = 0; + } + else + { + max = serie.context.dataMax; + } + } + var radius = (float) (m_RadarCoord.context.dataRadius * (value - min) / (max - min)); + var currAngle = (n + (m_RadarCoord.positionType == RadarCoord.PositionType.Between ? 0.5f : 0)) * angle; + radius *= rate; + if (n == 0) + { + startPoint = new Vector3(centerPos.x + radius * Mathf.Sin(currAngle), + centerPos.y + radius * Mathf.Cos(currAngle)); + firstPoint = startPoint; + } + else + { + toPoint = new Vector3(centerPos.x + radius * Mathf.Sin(currAngle), + centerPos.y + radius * Mathf.Cos(currAngle)); + if (areaStyle != null && areaStyle.show) + { + UGL.DrawTriangle(vh, startPoint, toPoint, centerPos, areaColor, areaColor, areaToColor); + } + if (lineStyle.show) + { + ChartDrawer.DrawLineStyle(vh, lineStyle.type, lineWidth, startPoint, toPoint, lineColor); + } + startPoint = toPoint; + } + serieData.context.dataPoints.Add(startPoint); + } + if (areaStyle != null && areaStyle.show) + { + UGL.DrawTriangle(vh, startPoint, firstPoint, centerPos, areaColor, areaColor, areaToColor); + } + if (lineStyle.show) + { + ChartDrawer.DrawLineStyle(vh, lineStyle.type, lineWidth, startPoint, firstPoint, lineColor); + } + if (symbol.show && symbol.type != SymbolType.None) + { + for (int m = 0; m < serieData.context.dataPoints.Count; m++) + { + var point = serieData.context.dataPoints[m]; + var symbolSize = isHighlight ? + symbol.GetSelectedSize(null, chart.theme.serie.lineSymbolSelectedSize) : + symbol.GetSize(null, chart.theme.serie.lineSymbolSize); + if (!serieData.interact.TryGetValue(ref symbolSize, ref interacting)) + { + symbolSize = isHighlight ? + symbol.GetSelectedSize(serieData.data, symbolSize) : + symbol.GetSize(serieData.data, symbolSize); + serieData.interact.SetValue(ref interacting, symbolSize); + symbolSize = serie.animation.GetSysmbolSize(symbolSize); + } + var symbolColor = SerieHelper.GetItemColor(serie, serieData, chart.theme, j, isHighlight); + var symbolToColor = SerieHelper.GetItemToColor(serie, serieData, chart.theme, j, isHighlight); + var symbolEmptyColor = SerieHelper.GetItemBackgroundColor(serie, serieData, chart.theme, j, isHighlight, false); + var symbolBorder = SerieHelper.GetSymbolBorder(serie, serieData, chart.theme, isHighlight); + var borderColor = SerieHelper.GetSymbolBorderColor(serie, serieData, chart.theme, isHighlight); + var cornerRadius = SerieHelper.GetSymbolCornerRadius(serie, serieData, isHighlight); + chart.DrawSymbol(vh, symbol.type, symbolSize, symbolBorder, point, symbolColor, + symbolToColor, symbolEmptyColor, borderColor, symbol.gap, cornerRadius); + } + } + } + if (!serie.animation.IsFinish()) + { + serie.animation.CheckProgress(1); + chart.RefreshPainter(serie); + } + if (dataChanging || interacting) + { + chart.RefreshPainter(serie); + } + } + + private void DrawSingleRadar(VertexHelper vh) + { + var radar = chart.GetChartComponent<RadarCoord>(serie.radarIndex); + if (radar == null) + return; + + var indicatorNum = radar.indicatorList.Count; + var angle = 2 * Mathf.PI / indicatorNum; + var centerPos = radar.context.center; + serie.animation.InitProgress(0, 1); + serie.context.dataPoints.Clear(); + if (!serie.show || serie.animation.HasFadeOut()) + { + return; + } + var startPoint = Vector3.zero; + var toPoint = Vector3.zero; + var firstPoint = Vector3.zero; + var lastColor = ColorUtil.clearColor32; + var firstColor = ColorUtil.clearColor32; + + var rate = serie.animation.GetCurrRate(); + var dataChanging = false; + var dataChangeDuration = serie.animation.GetUpdateAnimationDuration(); + var startIndex = GetStartShowIndex(serie); + var endIndex = GetEndShowIndex(serie); + SerieHelper.UpdateMinMaxData(serie, 1, radar.ceilRate); + for (int j = 0; j < serie.data.Count; j++) + { + var serieData = serie.data[j]; + serieData.index = j; + string dataName = serieData.name; + + if (!serieData.show) + { + serieData.context.labelPosition = Vector3.zero; + continue; + } + var lineStyle = SerieHelper.GetLineStyle(serie, serieData); + var areaStyle = SerieHelper.GetAreaStyle(serie, serieData); + var isHighlight = serie.context.pointerEnter; + var areaColor = SerieHelper.GetAreaColor(serie, serieData, chart.theme, j, isHighlight); + var areaToColor = SerieHelper.GetAreaToColor(serie, serieData, chart.theme, j, isHighlight); + var lineColor = SerieHelper.GetLineColor(serie, serieData, chart.theme, j, isHighlight); + int dataCount = radar.indicatorList.Count; + var index = serieData.index; + var p = radar.context.center; + var max = radar.GetIndicatorMax(index); + var value = serieData.GetCurrData(1, dataChangeDuration); + if (serieData.IsDataChanged()) dataChanging = true; + if (max == 0) + { + max = serie.context.dataMax; + } + if (!radar.IsInIndicatorRange(j, serieData.GetData(1))) + { + lineColor = radar.outRangeColor; + } + var radius = (float) (max < 0 ? radar.context.dataRadius - radar.context.dataRadius * value / max : + radar.context.dataRadius * value / max); + var currAngle = (index + (radar.positionType == RadarCoord.PositionType.Between ? 0.5f : 0)) * angle; + radius *= rate; + if (index == startIndex) + { + startPoint = new Vector3(p.x + radius * Mathf.Sin(currAngle), + p.y + radius * Mathf.Cos(currAngle)); + firstPoint = startPoint; + lastColor = lineColor; + firstColor = lineColor; + } + else + { + toPoint = new Vector3(p.x + radius * Mathf.Sin(currAngle), + p.y + radius * Mathf.Cos(currAngle)); + if (areaStyle != null && areaStyle.show) + { + UGL.DrawTriangle(vh, startPoint, toPoint, p, areaColor, areaColor, areaToColor); + } + if (lineStyle.show) + { + if (radar.connectCenter) + ChartDrawer.DrawLineStyle(vh, lineStyle, startPoint, centerPos, + chart.theme.serie.lineWidth, LineStyle.Type.Solid, lastColor, lastColor); + ChartDrawer.DrawLineStyle(vh, lineStyle, startPoint, toPoint, chart.theme.serie.lineWidth, + LineStyle.Type.Solid, radar.lineGradient ? lastColor : lineColor, lineColor); + } + startPoint = toPoint; + lastColor = lineColor; + } + serieData.context.position = startPoint; + serieData.context.labelPosition = startPoint; + + if (areaStyle != null && areaStyle.show && j == endIndex) + { + UGL.DrawTriangle(vh, startPoint, firstPoint, centerPos, areaColor, areaColor, areaToColor); + } + if (lineStyle.show && j == endIndex) + { + if (radar.connectCenter) + ChartDrawer.DrawLineStyle(vh, lineStyle, startPoint, centerPos, + chart.theme.serie.lineWidth, LineStyle.Type.Solid, lastColor, lastColor); + ChartDrawer.DrawLineStyle(vh, lineStyle, startPoint, firstPoint, chart.theme.serie.lineWidth, + LineStyle.Type.Solid, lineColor, radar.lineGradient ? firstColor : lineColor); + } + } + if (serie.symbol.show && serie.symbol.type != SymbolType.None) + { + for (int j = 0; j < serie.data.Count; j++) + { + var serieData = serie.data[j]; + if (!serieData.show) continue; + var isHighlight = serie.highlight || serieData.context.highlight || serie.context.pointerEnter; + var serieIndex = serieData.index; + var symbolSize = isHighlight ? + serie.symbol.GetSelectedSize(serieData.data, chart.theme.serie.lineSymbolSelectedSize) : + serie.symbol.GetSize(serieData.data, chart.theme.serie.lineSymbolSize); + var symbolColor = SerieHelper.GetItemColor(serie, serieData, chart.theme, serieIndex, isHighlight); + var symbolToColor = SerieHelper.GetItemToColor(serie, serieData, chart.theme, serieIndex, isHighlight); + var symbolEmptyColor = SerieHelper.GetItemBackgroundColor(serie, serieData, chart.theme, serieIndex, isHighlight, false); + var symbolBorder = SerieHelper.GetSymbolBorder(serie, serieData, chart.theme, isHighlight); + var borderColor = SerieHelper.GetSymbolBorderColor(serie, serieData, chart.theme, isHighlight); + var cornerRadius = SerieHelper.GetSymbolCornerRadius(serie, serieData, isHighlight); + if (!radar.IsInIndicatorRange(j, serieData.GetData(1))) + { + symbolColor = radar.outRangeColor; + symbolToColor = radar.outRangeColor; + } + chart.DrawSymbol(vh, serie.symbol.type, symbolSize, symbolBorder, serieData.context.labelPosition, symbolColor, + symbolToColor, symbolEmptyColor, borderColor, serie.symbol.gap, cornerRadius); + } + } + if (!serie.animation.IsFinish()) + { + serie.animation.CheckProgress(1); + chart.RefreshPainter(serie); + } + if (dataChanging) + { + chart.RefreshPainter(serie); + } + } + + private int GetStartShowIndex(Serie serie) + { + for (int i = 0; i < serie.dataCount; i++) + { + if (serie.data[i].show) return i; + } + return 0; + } + private int GetEndShowIndex(Serie serie) + { + for (int i = serie.dataCount - 1; i >= 0; i--) + { + if (serie.data[i].show) return i; + } + return 0; + } + + private void DrawRadarSymbol(VertexHelper vh, Serie serie, SerieData serieData, int serieIndex, bool isHighlight, + List<Vector3> pointList) + { + if (serie.symbol.show && serie.symbol.type != SymbolType.None) + { + var symbolSize = isHighlight ? + serie.symbol.GetSelectedSize(serieData.data, chart.theme.serie.lineSymbolSelectedSize) : + serie.symbol.GetSize(serieData.data, chart.theme.serie.lineSymbolSize); + var symbolColor = SerieHelper.GetItemColor(serie, serieData, chart.theme, serieIndex, isHighlight); + var symbolToColor = SerieHelper.GetItemToColor(serie, serieData, chart.theme, serieIndex, isHighlight); + var symbolEmptyColor = SerieHelper.GetItemBackgroundColor(serie, serieData, chart.theme, serieIndex, isHighlight, false); + var symbolBorder = SerieHelper.GetSymbolBorder(serie, serieData, chart.theme, isHighlight); + var borderColor = SerieHelper.GetSymbolBorderColor(serie, serieData, chart.theme, isHighlight); + var cornerRadius = SerieHelper.GetSymbolCornerRadius(serie, serieData, isHighlight); + foreach (var point in pointList) + { + chart.DrawSymbol(vh, serie.symbol.type, symbolSize, symbolBorder, point, symbolColor, + symbolToColor, symbolEmptyColor, borderColor, serie.symbol.gap, cornerRadius); + } + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Radar/RadarHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Radar/RadarHandler.cs.meta new file mode 100644 index 0000000..5a455a2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Radar/RadarHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c8dd73709db7a4451b2fe6f03476cb7f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Ring.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Ring.meta new file mode 100644 index 0000000..98724f6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Ring.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c15a1b60f1d3c4daca1fcd88d96ae7e7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Ring/Ring.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Ring/Ring.cs new file mode 100644 index 0000000..d97cdb4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Ring/Ring.cs @@ -0,0 +1,44 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + [System.Serializable] + [SerieHandler(typeof(RingHandler), true)] + [SerieExtraComponent(typeof(LabelStyle), typeof(TitleStyle), typeof(EmphasisItemStyle), typeof(EmphasisLabelStyle))] + [SerieDataExtraComponent(typeof(ItemStyle), typeof(LabelStyle), typeof(TitleStyle), typeof(EmphasisItemStyle), typeof(EmphasisLabelStyle))] + [SerieDataExtraField()] + public class Ring : Serie + { + public override bool useDataNameForColor { get { return true; } } + public static Serie AddDefaultSerie(BaseChart chart, string serieName) + { + var serie = chart.AddSerie<Ring>(serieName); + serie.roundCap = true; + serie.gap = 10; + serie.radius = new float[] { 0.3f, 0.35f }; + + var label = serie.AddExtraComponent<LabelStyle>(); + label.show = true; + label.position = LabelStyle.Position.Center; + label.formatter = "{d:f0}%"; + label.textStyle.autoColor = true; + label.textStyle.fontSize = 28; + + var titleStyle = serie.AddExtraComponent<TitleStyle>(); + titleStyle.show = false; + titleStyle.offset = new Vector2(0, 30); + + var value = Random.Range(30, 90); + var max = 100; + chart.AddData(serie.index, value, max, "data1"); + return serie; + } + + public override double GetDataTotal(int dimension, SerieData serieData = null) + { + if (serieData == null || serieData.data.Count <= 1) + return base.GetDataTotal(dimension, serieData); + return serieData.GetData(1); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Ring/Ring.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Ring/Ring.cs.meta new file mode 100644 index 0000000..c069450 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Ring/Ring.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0c7fe8316f26241d8a9f4b3ce94d61bc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Ring/RingHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Ring/RingHandler.cs new file mode 100644 index 0000000..70c5f40 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Ring/RingHandler.cs @@ -0,0 +1,323 @@ +using System.Collections.Generic; +using System.Text; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class RingHandler : SerieHandler<Ring> + { + + public override int defaultDimension { get { return 0; } } + + public override void Update() + { + base.Update(); + UpdateSerieContext(); + } + + private void UpdateSerieContext() + { + var needCheck = chart.isPointerInChart || m_LegendEnter; + var needInteract = false; + if (!needCheck) + { + if (m_LastCheckContextFlag != needCheck) + { + m_LastCheckContextFlag = needCheck; + serie.context.pointerItemDataIndex = -1; + serie.context.pointerEnter = false; + foreach (var serieData in serie.data) + { + serieData.context.highlight = false; + } + chart.RefreshPainter(serie); + } + return; + } + m_LastCheckContextFlag = needCheck; + if (m_LegendEnter) + { + serie.context.pointerEnter = true; + foreach (var serieData in serie.data) + { + serieData.context.highlight = true; + } + } + else + { + serie.context.pointerEnter = false; + serie.context.pointerItemDataIndex = -1; + var ringIndex = GetRingIndex(chart.pointerPos); + foreach (var serieData in serie.data) + { + if (!needInteract && ringIndex == serieData.index) + { + serie.context.pointerEnter = true; + serie.context.pointerItemDataIndex = ringIndex; + serieData.context.highlight = true; + needInteract = true; + } + else + { + serieData.context.highlight = false; + } + } + } + if (needInteract) + { + chart.RefreshPainter(serie); + } + } + + public override void UpdateTooltipSerieParams(int dataIndex, bool showCategory, string category, + string marker, string itemFormatter, string numericFormatter, + ref List<SerieParams> paramList, ref string title) + { + if (dataIndex < 0) + dataIndex = serie.context.pointerItemDataIndex; + + if (dataIndex < 0) + return; + + var serieData = serie.GetSerieData(dataIndex); + if (serieData == null) + return; + + var param = serie.context.param; + param.serieName = serie.serieName; + param.serieIndex = serie.index; + param.category = category; + param.dimension = defaultDimension; + param.serieData = serieData; + param.dataCount = serie.dataCount; + param.value = serieData.GetData(0); + param.total = serieData.GetData(1); + param.color = SerieHelper.GetItemColor(serie, serieData, chart.theme, dataIndex, false); + param.marker = SerieHelper.GetItemMarker(serie, serieData, marker); + param.itemFormatter = SerieHelper.GetItemFormatter(serie, serieData, itemFormatter); + param.numericFormatter = SerieHelper.GetNumericFormatter(serie, serieData, numericFormatter);; + param.columns.Clear(); + + param.columns.Add(param.marker); + param.columns.Add(serieData.name); + param.columns.Add(ChartCached.NumberToStr(param.value, param.numericFormatter)); + + paramList.Add(param); + } + + public override Vector3 GetSerieDataLabelPosition(SerieData serieData, LabelStyle label) + { + var centerRadius = (serieData.context.outsideRadius + serieData.context.insideRadius) / 2; + var startAngle = serieData.context.startAngle; + var toAngle = serieData.context.toAngle; + switch (label.position) + { + case LabelStyle.Position.Bottom: + case LabelStyle.Position.Start: + var px1 = Mathf.Sin(startAngle * Mathf.Deg2Rad) * centerRadius; + var py1 = Mathf.Cos(startAngle * Mathf.Deg2Rad) * centerRadius; + var xDiff = serie.clockwise ? -label.distance : label.distance; + serieData.context.labelPosition = serie.context.center + new Vector3(px1 + xDiff, py1); + break; + case LabelStyle.Position.Top: + case LabelStyle.Position.End: + startAngle += serie.clockwise ? -label.distance : label.distance; + toAngle += serie.clockwise ? label.distance : -label.distance; + var px2 = Mathf.Sin(toAngle * Mathf.Deg2Rad) * centerRadius; + var py2 = Mathf.Cos(toAngle * Mathf.Deg2Rad) * centerRadius; + serieData.context.labelPosition = serie.context.center + new Vector3(px2, py2); + break; + default: //LabelStyle.Position.Center + serieData.context.labelPosition = serie.context.center + label.offset; + break; + } + return serieData.context.labelPosition; + } + + public override void DrawSerie(VertexHelper vh) + { + if (!serie.show || serie.animation.HasFadeOut()) return; + var data = serie.data; + serie.animation.InitProgress(serie.startAngle, serie.startAngle + 360); + SerieHelper.UpdateCenter(serie, chart.chartPosition, chart.chartWidth, chart.chartHeight); + var dataChangeDuration = serie.animation.GetUpdateAnimationDuration(); + var ringWidth = serie.context.outsideRadius - serie.context.insideRadius; + var dataChanging = false; + for (int j = 0; j < data.Count; j++) + { + var serieData = data[j]; + serieData.index = j; + if (!serieData.show) continue; + if (serieData.IsDataChanged()) dataChanging = true; + var value = serieData.GetFirstData(dataChangeDuration); + var max = serieData.GetLastData(); + var degree = (float) (360 * value / max); + var startDegree = GetStartAngle(serie); + var toDegree = GetToAngle(serie, degree); + var itemStyle = SerieHelper.GetItemStyle(serie, serieData, serieData.context.highlight); + var colorIndex = chart.GetLegendRealShowNameIndex(serieData.legendName); + var itemColor = SerieHelper.GetItemColor(serie, serieData, chart.theme, colorIndex, serieData.context.highlight); + var itemToColor = SerieHelper.GetItemToColor(serie, serieData, chart.theme, colorIndex, serieData.context.highlight); + var outsideRadius = serie.context.outsideRadius - j * (ringWidth + serie.gap); + var insideRadius = outsideRadius - ringWidth; + var borderWidth = itemStyle.borderWidth; + var borderColor = itemStyle.borderColor; + var roundCap = serie.roundCap && insideRadius > 0; + + serieData.context.startAngle = serie.clockwise ? startDegree : toDegree; + serieData.context.toAngle = serie.clockwise ? toDegree : startDegree; + serieData.context.insideRadius = insideRadius; + serieData.context.outsideRadius = serieData.radius > 0 ? serieData.radius : outsideRadius; + DrawBackground(vh, serie, serieData, j, insideRadius, outsideRadius); + UGL.DrawDoughnut(vh, serie.context.center, insideRadius, outsideRadius, itemColor, itemToColor, + Color.clear, startDegree, toDegree, borderWidth, borderColor, 0, chart.settings.cicleSmoothness, + roundCap, serie.clockwise); + DrawCenter(vh, serie, serieData, insideRadius, j == data.Count - 1); + } + if (!serie.animation.IsFinish()) + { + serie.animation.CheckProgress(360); + chart.RefreshChart(); + } + if (dataChanging) + { + chart.RefreshChart(); + } + } + + public override void OnLegendButtonClick(int index, string legendName, bool show) + { + if (!serie.IsLegendName(legendName)) + return; + LegendHelper.CheckDataShow(serie, legendName, show); + chart.UpdateLegendColor(legendName, show); + chart.RefreshPainter(serie); + } + + public override void OnLegendButtonEnter(int index, string legendName) + { + if (!serie.IsLegendName(legendName)) + return; + LegendHelper.CheckDataHighlighted(serie, legendName, true); + chart.RefreshPainter(serie); + } + + public override void OnLegendButtonExit(int index, string legendName) + { + if (!serie.IsLegendName(legendName)) + return; + LegendHelper.CheckDataHighlighted(serie, legendName, false); + chart.RefreshPainter(serie); + } + + public override void OnPointerDown(PointerEventData eventData) + { } + + private float GetStartAngle(Serie serie) + { + return serie.clockwise ? serie.startAngle : 360 - serie.startAngle; + } + + private float GetToAngle(Serie serie, float angle) + { + var toAngle = angle + serie.startAngle; + if (!serie.clockwise) + { + toAngle = 360 - angle - serie.startAngle; + } + if (!serie.animation.IsFinish()) + { + var currAngle = serie.animation.GetCurrDetail(); + if (serie.clockwise) + { + toAngle = toAngle > currAngle ? currAngle : toAngle; + } + else + { + toAngle = toAngle < 360 - currAngle ? 360 - currAngle : toAngle; + } + } + return toAngle; + } + + private void DrawCenter(VertexHelper vh, Serie serie, SerieData serieData, float insideRadius, bool last) + { + var itemStyle = SerieHelper.GetItemStyle(serie, serieData); + if (!ChartHelper.IsClearColor(itemStyle.centerColor) && last) + { + var radius = insideRadius - itemStyle.centerGap; + var smoothness = chart.settings.cicleSmoothness; + UGL.DrawCricle(vh, serie.context.center, radius, itemStyle.centerColor, smoothness); + } + } + + private void DrawBackground(VertexHelper vh, Serie serie, SerieData serieData, int index, float insideRadius, float outsideRadius) + { + var itemStyle = SerieHelper.GetItemStyle(serie, serieData); + var backgroundColor = SerieHelper.GetItemBackgroundColor(serie, serieData, chart.theme, index, false); + if (itemStyle.backgroundWidth != 0) + { + var centerRadius = (outsideRadius + insideRadius) / 2; + var inradius = centerRadius - itemStyle.backgroundWidth / 2; + var outradius = centerRadius + itemStyle.backgroundWidth / 2; + UGL.DrawDoughnut(vh, serie.context.center, inradius, + outradius, backgroundColor, Color.clear, chart.settings.cicleSmoothness); + } + else + { + UGL.DrawDoughnut(vh, serie.context.center, insideRadius, + outsideRadius, backgroundColor, Color.clear, chart.settings.cicleSmoothness); + } + } + + private void DrawBorder(VertexHelper vh, Serie serie, SerieData serieData, float insideRadius, float outsideRadius) + { + var itemStyle = SerieHelper.GetItemStyle(serie, serieData); + if (itemStyle.show && itemStyle.borderWidth > 0 && !ChartHelper.IsClearColor(itemStyle.borderColor)) + { + UGL.DrawDoughnut(vh, serie.context.center, outsideRadius, + outsideRadius + itemStyle.borderWidth, itemStyle.borderColor, + Color.clear, chart.settings.cicleSmoothness); + UGL.DrawDoughnut(vh, serie.context.center, insideRadius, + insideRadius + itemStyle.borderWidth, itemStyle.borderColor, + Color.clear, chart.settings.cicleSmoothness); + } + } + + private int GetRingIndex(Vector2 local) + { + var dist = Vector2.Distance(local, serie.context.center); + if (dist > serie.context.outsideRadius) return -1; + Vector2 dir = local - new Vector2(serie.context.center.x, serie.context.center.y); + float angle = VectorAngle(Vector2.up, dir); + for (int i = 0; i < serie.data.Count; i++) + { + var serieData = serie.data[i]; + serieData.index = i; + if (dist >= serieData.context.insideRadius && + dist <= serieData.context.outsideRadius && + angle >= serieData.context.startAngle && + angle <= serieData.context.toAngle) + { + return i; + } + } + return -1; + } + + private float VectorAngle(Vector2 from, Vector2 to) + { + float angle; + + Vector3 cross = Vector3.Cross(from, to); + angle = Vector2.Angle(from, to); + angle = cross.z > 0 ? -angle : angle; + angle = (angle + 360) % 360; + return angle; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Ring/RingHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Ring/RingHandler.cs.meta new file mode 100644 index 0000000..293edfb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Ring/RingHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8c3c486efd6d8464a88d8f4b572b7bc4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter.meta new file mode 100644 index 0000000..916354d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 97fc5bddab1db4321aa7377ab8b8b8bc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/BaseScatter.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/BaseScatter.cs new file mode 100644 index 0000000..bb0cbb5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/BaseScatter.cs @@ -0,0 +1,9 @@ +namespace XCharts.Runtime +{ + [System.Serializable] + public class BaseScatter : Serie, INeedSerieContainer + { + public int containerIndex { get; internal set; } + public int containterInstanceId { get; internal set; } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/BaseScatter.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/BaseScatter.cs.meta new file mode 100644 index 0000000..8b9933e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/BaseScatter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dba0ca827ad4d4b9989def35aba66665 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/BaseScatterHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/BaseScatterHandler.cs new file mode 100644 index 0000000..f8a3aa7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/BaseScatterHandler.cs @@ -0,0 +1,350 @@ +using System.Collections.Generic; +using System.Text; +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal class BaseScatterHandler<T> : SerieHandler<T> where T : BaseScatter + { + private GridCoord m_Grid; + + public override void Update() + { + UpdateSerieContext(); + } + + public override void UpdateTooltipSerieParams(int dataIndex, bool showCategory, string category, + string marker, string itemFormatter, string numericFormatter, + ref List<SerieParams> paramList, ref string title) + { + dataIndex = serie.context.pointerItemDataIndex; + if (dataIndex < 0) + return; + + var serieData = serie.GetSerieData(dataIndex); + if (serieData == null) + return; + + title = serie.serieName; + + var param = serie.context.param; + param.serieName = serie.serieName; + param.serieIndex = serie.index; + param.category = category; + param.dimension = 1; + param.dataCount = serie.dataCount; + param.serieData = serieData; + param.color = SerieHelper.GetItemColor(serie, serieData, chart.theme, serie.context.colorIndex, false); + param.marker = SerieHelper.GetItemMarker(serie, serieData, marker); + param.itemFormatter = SerieHelper.GetItemFormatter(serie, serieData, itemFormatter); + param.numericFormatter = SerieHelper.GetNumericFormatter(serie, serieData, numericFormatter); + param.columns.Clear(); + + param.columns.Add(param.marker); + if (!string.IsNullOrEmpty(serieData.name)) + param.columns.Add(serieData.name); + param.columns.Add(ChartCached.NumberToStr(serieData.GetData(1), param.numericFormatter)); + + paramList.Add(param); + } + + public override void DrawSerie(VertexHelper vh) + { + if (serie.IsUseCoord<SingleAxisCoord>()) + { + DrawSingAxisScatterSerie(vh, serie); + } + else if (serie.IsUseCoord<GridCoord>()) + { + DrawScatterSerie(vh, serie); + } + } + + private void UpdateSerieContext() + { + var needCheck = m_LegendEnter || (chart.isPointerInChart && (m_Grid == null || m_Grid.IsPointerEnter())); + + var needHideAll = false; + if (!needCheck) + { + if (m_LastCheckContextFlag == needCheck) + return; + needHideAll = true; + } + m_LastCheckContextFlag = needCheck; + serie.context.pointerItemDataIndex = -1; + serie.context.pointerEnter = false; + var themeSymbolSize = chart.theme.serie.scatterSymbolSize; + var themeSymbolSelectedSize = chart.theme.serie.scatterSymbolSelectedSize; + var needInteract = false; + for (int i = serie.dataCount - 1; i >= 0; i--) + { + var serieData = serie.data[i]; + var symbol = SerieHelper.GetSerieSymbol(serie, serieData); + var symbolSize = symbol.GetSize(serieData.data, themeSymbolSize); + var symbolSelectedSize = symbol.GetSelectedSize(serieData.data, themeSymbolSelectedSize); + if (m_LegendEnter || + (!needHideAll && Vector3.Distance(serieData.context.position, chart.pointerPos) <= symbolSize)) + { + serie.context.pointerItemDataIndex = i; + serie.context.pointerEnter = true; + serieData.context.highlight = true; + serieData.interact.SetValue(ref needInteract, symbolSelectedSize); + } + else + { + serieData.context.highlight = false; + serieData.interact.SetValue(ref needInteract, symbolSize); + } + } + if (needInteract) + { + chart.RefreshPainter(serie); + } + } + + protected virtual void DrawScatterSerie(VertexHelper vh, BaseScatter serie) + { + if (serie.animation.HasFadeOut()) + return; + + if (!serie.show) + return; + + XAxis xAxis; + if (!chart.TryGetChartComponent<XAxis>(out xAxis, serie.xAxisIndex)) + return; + + YAxis yAxis; + if (!chart.TryGetChartComponent<YAxis>(out yAxis, serie.yAxisIndex)) + return; + + if (!chart.TryGetChartComponent<GridCoord>(out m_Grid, xAxis.gridIndex)) + return; + + DataZoom xDataZoom; + DataZoom yDataZoom; + chart.GetDataZoomOfSerie(serie, out xDataZoom, out yDataZoom); + + var theme = chart.theme; + int maxCount = serie.maxShow > 0 ? + (serie.maxShow > serie.dataCount ? serie.dataCount : serie.maxShow) : + serie.dataCount; + serie.animation.InitProgress(0, 1); + var rate = serie.animation.GetCurrRate(); + var dataChangeDuration = serie.animation.GetUpdateAnimationDuration(); + var dataChanging = false; + var interacting = false; + var dataList = serie.GetDataList(xDataZoom); + var isEffectScatter = serie is EffectScatter; + var colorIndex = serie.context.colorIndex; + + serie.containerIndex = m_Grid.index; + serie.containterInstanceId = m_Grid.instanceId; + + foreach (var serieData in dataList) + { + var symbol = SerieHelper.GetSerieSymbol(serie, serieData); + if (!symbol.ShowSymbol(serieData.index, maxCount)) + continue; + + var highlight = serie.highlight || serieData.context.highlight; + var color = SerieHelper.GetItemColor(serie, serieData, theme, colorIndex, highlight); + var toColor = SerieHelper.GetItemToColor(serie, serieData, theme, colorIndex, highlight); + var emptyColor = SerieHelper.GetItemBackgroundColor(serie, serieData, theme, colorIndex, highlight, false); + var symbolBorder = SerieHelper.GetSymbolBorder(serie, serieData, theme, highlight); + var borderColor = SerieHelper.GetSymbolBorderColor(serie, serieData, theme, highlight); + var cornerRadius = SerieHelper.GetSymbolCornerRadius(serie, serieData, highlight); + double xValue = serieData.GetCurrData(0, dataChangeDuration, xAxis.inverse); + double yValue = serieData.GetCurrData(1, dataChangeDuration, yAxis.inverse); + + if (serieData.IsDataChanged()) + dataChanging = true; + + float pX = m_Grid.context.x + xAxis.axisLine.GetWidth(theme.axis.lineWidth); + float pY = m_Grid.context.y + yAxis.axisLine.GetWidth(theme.axis.lineWidth); + float xDataHig = GetDataHig(xAxis, xValue, m_Grid.context.width); + float yDataHig = GetDataHig(yAxis, yValue, m_Grid.context.height); + var pos = new Vector3(pX + xDataHig, pY + yDataHig); + + if (!m_Grid.Contains(pos)) + continue; + + serie.context.dataPoints.Add(pos); + serieData.context.position = pos; + var datas = serieData.data; + var symbolSize = serie.highlight || serieData.context.highlight ? + theme.serie.scatterSymbolSelectedSize : + theme.serie.scatterSymbolSize; + if (!serieData.interact.TryGetValue(ref symbolSize, ref interacting)) + { + symbolSize = highlight ? + symbol.GetSelectedSize(serieData.data, symbolSize) : + symbol.GetSize(serieData.data, symbolSize); + serieData.interact.SetValue(ref interacting, symbolSize); + } + + symbolSize *= rate; + + if (isEffectScatter) + { + for (int count = 0; count < symbol.animationSize.Count; count++) + { + var nowSize = symbol.animationSize[count]; + color.a = (byte) (255 * (symbolSize - nowSize) / symbolSize); + chart.DrawSymbol(vh, symbol.type, nowSize, symbolBorder, pos, + color, toColor, emptyColor, borderColor, symbol.gap, cornerRadius); + } + chart.RefreshPainter(serie); + } + else + { + if (symbolSize > 100) symbolSize = 100; + chart.DrawSymbol(vh, symbol.type, symbolSize, symbolBorder, pos, + color, toColor, emptyColor, borderColor, symbol.gap, cornerRadius); + } + } + if (!serie.animation.IsFinish()) + { + serie.animation.CheckProgress(1); + chart.RefreshPainter(serie); + } + if (dataChanging || interacting) + { + chart.RefreshPainter(serie); + } + } + + protected virtual void DrawSingAxisScatterSerie(VertexHelper vh, BaseScatter serie) + { + if (serie.animation.HasFadeOut()) + return; + + if (!serie.show) + return; + + var axis = chart.GetChartComponent<SingleAxis>(serie.singleAxisIndex); + if (axis == null) + return; + + DataZoom xDataZoom; + DataZoom yDataZoom; + chart.GetDataZoomOfSerie(serie, out xDataZoom, out yDataZoom); + + var theme = chart.theme; + int maxCount = serie.maxShow > 0 ? + (serie.maxShow > serie.dataCount ? serie.dataCount : serie.maxShow) : + serie.dataCount; + serie.animation.InitProgress(0, 1); + + var rate = serie.animation.GetCurrRate(); + var dataChangeDuration = serie.animation.GetUpdateAnimationDuration(); + var dataChanging = false; + var dataList = serie.GetDataList(xDataZoom); + var isEffectScatter = serie is EffectScatter; + var colorIndex = serie.context.colorIndex; + + serie.containerIndex = axis.index; + serie.containterInstanceId = axis.instanceId; + + foreach (var serieData in dataList) + { + var symbol = SerieHelper.GetSerieSymbol(serie, serieData); + if (!symbol.ShowSymbol(serieData.index, maxCount)) + continue; + + var highlight = serie.highlight || serieData.context.highlight; + var color = SerieHelper.GetItemColor(serie, serieData, theme, colorIndex, highlight); + var toColor = SerieHelper.GetItemToColor(serie, serieData, theme, colorIndex, highlight); + var emptyColor = SerieHelper.GetItemBackgroundColor(serie, serieData, theme, colorIndex, highlight, false); + var symbolBorder = SerieHelper.GetSymbolBorder(serie, serieData, theme, highlight); + var borderColor = SerieHelper.GetSymbolBorderColor(serie, serieData, theme, highlight); + var cornerRadius = SerieHelper.GetSymbolCornerRadius(serie, serieData, highlight); + var xValue = serieData.GetCurrData(0, dataChangeDuration, axis.inverse); + + if (serieData.IsDataChanged()) + dataChanging = true; + + var pos = Vector3.zero; + if (axis.orient == Orient.Horizonal) + { + var xDataHig = GetDataHig(axis, xValue, axis.context.width); + var yDataHig = axis.context.height / 2; + pos = new Vector3(axis.context.x + xDataHig, axis.context.y + yDataHig); + } + else + { + var yDataHig = GetDataHig(axis, xValue, axis.context.width); + var xDataHig = axis.context.height / 2; + pos = new Vector3(axis.context.x + xDataHig, axis.context.y + yDataHig); + } + serie.context.dataPoints.Add(pos); + serieData.context.position = pos; + + var datas = serieData.data; + var symbolSize = 0f; + if (serie.highlight || serieData.context.highlight) + symbolSize = symbol.GetSelectedSize(datas, theme.serie.scatterSymbolSelectedSize); + else + symbolSize = symbol.GetSize(datas, theme.serie.scatterSymbolSize); + symbolSize *= rate; + + if (isEffectScatter) + { + if (symbolSize > 100) symbolSize = 100; + for (int count = 0; count < symbol.animationSize.Count; count++) + { + var nowSize = symbol.animationSize[count]; + color.a = (byte) (255 * (symbolSize - nowSize) / symbolSize); + chart.DrawSymbol(vh, symbol.type, nowSize, symbolBorder, pos, + color, toColor, emptyColor, borderColor, symbol.gap, cornerRadius); + } + chart.RefreshPainter(serie); + } + else + { + if (symbolSize > 100) symbolSize = 100; + chart.DrawSymbol(vh, symbol.type, symbolSize, symbolBorder, pos, + color, toColor, emptyColor, borderColor, symbol.gap, cornerRadius); + } + } + if (!serie.animation.IsFinish()) + { + serie.animation.CheckProgress(1); + chart.RefreshPainter(serie); + } + if (dataChanging) + { + chart.RefreshPainter(serie); + } + } + + private static float GetDataHig(Axis axis, double value, float totalWidth) + { + if (axis.IsLog()) + { + int minIndex = axis.GetLogMinIndex(); + float nowIndex = axis.GetLogValue(value); + return (nowIndex - minIndex) / axis.splitNumber * totalWidth; + } + else if (axis.IsCategory()) + { + if (axis.boundaryGap) + { + float tick = (float) (totalWidth / (axis.context.minMaxRange + 1)); + return tick / 2 + (float) (value - axis.context.minValue) * tick; + } + else + { + return (float) ((value - axis.context.minValue) / axis.context.minMaxRange * totalWidth); + } + } + else + { + return (float) ((value - axis.context.minValue) / axis.context.minMaxRange * totalWidth); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/BaseScatterHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/BaseScatterHandler.cs.meta new file mode 100644 index 0000000..f665940 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/BaseScatterHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 31373c1595ff249188e33330f2eff1ed +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/EffectScatter.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/EffectScatter.cs new file mode 100644 index 0000000..f221917 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/EffectScatter.cs @@ -0,0 +1,27 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + [System.Serializable] + [SerieHandler(typeof(EffectScatterHandler), true)] + [CoordOptions(typeof(GridCoord), typeof(SingleAxisCoord))] + [SerieExtraComponent(typeof(LabelStyle), typeof(EmphasisItemStyle), typeof(EmphasisLabelStyle))] + [SerieDataExtraComponent(typeof(ItemStyle), typeof(LabelStyle), typeof(EmphasisItemStyle), typeof(EmphasisLabelStyle))] + [SerieDataExtraField("m_Radius")] + public class EffectScatter : BaseScatter + { + public static Serie AddDefaultSerie(BaseChart chart, string serieName) + { + var serie = chart.AddSerie<EffectScatter>(serieName); + serie.symbol.show = true; + serie.symbol.type = SymbolType.Circle; + serie.itemStyle.opacity = 0.8f; + serie.clip = false; + for (int i = 0; i < 10; i++) + { + chart.AddData(serie.index, Random.Range(10, 100), Random.Range(10, 100)); + } + return serie; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/EffectScatter.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/EffectScatter.cs.meta new file mode 100644 index 0000000..d452884 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/EffectScatter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c34d4976ef53c48a4b091d52694d8a7f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/EffectScatterHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/EffectScatterHandler.cs new file mode 100644 index 0000000..0ace159 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/EffectScatterHandler.cs @@ -0,0 +1,25 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class EffectScatterHandler : BaseScatterHandler<EffectScatter> + { + private float m_EffectScatterSpeed = 15; + + public override void Update() + { + base.Update(); + var symbolSize = serie.symbol.GetSize(null, chart.theme.serie.scatterSymbolSize); + for (int i = 0; i < serie.symbol.animationSize.Count; ++i) + { + serie.symbol.animationSize[i] += m_EffectScatterSpeed * Time.deltaTime; + if (serie.symbol.animationSize[i] > symbolSize) + { + serie.symbol.animationSize[i] = i * 5; + } + chart.RefreshPainter(serie); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/EffectScatterHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/EffectScatterHandler.cs.meta new file mode 100644 index 0000000..5b7d2b7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/EffectScatterHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bb7c24770dff64d7b857f459de7b2333 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/Scatter.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/Scatter.cs new file mode 100644 index 0000000..f633d74 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/Scatter.cs @@ -0,0 +1,27 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + [System.Serializable] + [SerieHandler(typeof(ScatterHandler), true)] + [CoordOptions(typeof(GridCoord), typeof(SingleAxisCoord))] + [SerieExtraComponent(typeof(LabelStyle), typeof(EmphasisItemStyle), typeof(EmphasisLabelStyle))] + [SerieDataExtraComponent(typeof(ItemStyle), typeof(LabelStyle), typeof(EmphasisItemStyle), typeof(EmphasisLabelStyle))] + [SerieDataExtraField("m_Radius")] + public class Scatter : BaseScatter + { + public static Serie AddDefaultSerie(BaseChart chart, string serieName) + { + var serie = chart.AddSerie<Scatter>(serieName); + serie.symbol.show = true; + serie.symbol.type = SymbolType.Circle; + serie.itemStyle.opacity = 0.8f; + serie.clip = false; + for (int i = 0; i < 10; i++) + { + chart.AddData(serie.index, Random.Range(10, 100), Random.Range(10, 100)); + } + return serie; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/Scatter.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/Scatter.cs.meta new file mode 100644 index 0000000..e7e72d0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/Scatter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 75a031f5547984317b5659a03d7f5e32 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/ScatterHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/ScatterHandler.cs new file mode 100644 index 0000000..9174cd3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/ScatterHandler.cs @@ -0,0 +1,6 @@ +namespace XCharts.Runtime +{ + [UnityEngine.Scripting.Preserve] + internal sealed class ScatterHandler : BaseScatterHandler<Scatter> + { } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/ScatterHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/ScatterHandler.cs.meta new file mode 100644 index 0000000..51d8f55 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Scatter/ScatterHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7ee7d7a8f04034cd38fd9d43f1a41825 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Serie.ExtraComponent.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Serie.ExtraComponent.cs new file mode 100644 index 0000000..01f21b9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Serie.ExtraComponent.cs @@ -0,0 +1,150 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +using UnityEngine; + +namespace XCharts.Runtime +{ + public partial class Serie + { + public static Dictionary<Type, string> extraComponentMap = new Dictionary<Type, string> + { { typeof(LabelStyle), "m_Labels" }, + { typeof(LabelLine), "m_LabelLines" }, + { typeof(EndLabelStyle), "m_EndLabels" }, + { typeof(LineArrow), "m_LineArrows" }, + { typeof(AreaStyle), "m_AreaStyles" }, + { typeof(TitleStyle), "m_TitleStyles" }, + { typeof(EmphasisItemStyle), "m_EmphasisItemStyles" }, + { typeof(EmphasisLabelStyle), "m_EmphasisLabels" }, + { typeof(EmphasisLabelLine), "m_EmphasisLabelLines" }, + }; + + [SerializeField][IgnoreDoc] private List<LabelStyle> m_Labels = new List<LabelStyle>(); + [SerializeField][IgnoreDoc] private List<LabelLine> m_LabelLines = new List<LabelLine>(); + [SerializeField][IgnoreDoc] private List<EndLabelStyle> m_EndLabels = new List<EndLabelStyle>(); + [SerializeField][IgnoreDoc] private List<LineArrow> m_LineArrows = new List<LineArrow>(); + [SerializeField][IgnoreDoc] private List<AreaStyle> m_AreaStyles = new List<AreaStyle>(); + [SerializeField][IgnoreDoc] private List<TitleStyle> m_TitleStyles = new List<TitleStyle>(); + [SerializeField][IgnoreDoc] private List<EmphasisItemStyle> m_EmphasisItemStyles = new List<EmphasisItemStyle>(); + [SerializeField][IgnoreDoc] private List<EmphasisLabelStyle> m_EmphasisLabels = new List<EmphasisLabelStyle>(); + [SerializeField][IgnoreDoc] private List<EmphasisLabelLine> m_EmphasisLabelLines = new List<EmphasisLabelLine>(); + + /// <summary> + /// The style of area. + /// |区域填充样式。 + /// </summary> + public AreaStyle areaStyle { get { return m_AreaStyles.Count > 0 ? m_AreaStyles[0] : null; } } + /// <summary> + /// Text label of graphic element,to explain some data information about graphic item like value, name and so on. + /// |图形上的文本标签,可用于说明图形的一些数据信息,比如值,名称等。 + /// </summary> + public LabelStyle label { get { return m_Labels.Count > 0 ? m_Labels[0] : null; } } + public LabelStyle endLabel { get { return m_EndLabels.Count > 0 ? m_EndLabels[0] : null; } } + /// <summary> + /// The line of label. + /// |标签上的视觉引导线。 + /// </summary> + public LabelLine labelLine { get { return m_LabelLines.Count > 0 ? m_LabelLines[0] : null; } } + /// <summary> + /// The arrow of line. + /// |折线图的箭头。 + /// </summary> + public LineArrow lineArrow { get { return m_LineArrows.Count > 0 ? m_LineArrows[0] : null; } } + /// <summary> + /// 高亮的图形样式 + /// </summary> + public EmphasisItemStyle emphasisItemStyle { get { return m_EmphasisItemStyles.Count > 0 ? m_EmphasisItemStyles[0] : null; } } + /// <summary> + /// 高亮时的标签样式 + /// </summary> + public EmphasisLabelStyle emphasisLabel { get { return m_EmphasisLabels.Count > 0 ? m_EmphasisLabels[0] : null; } } + /// <summary> + /// 高亮时的标签引导线样式 + /// </summary> + public EmphasisLabelLine emphasisLabelLine { get { return m_EmphasisLabelLines.Count > 0 ? m_EmphasisLabelLines[0] : null; } } + /// <summary> + /// the icon of data. + /// |数据项标题样式。 + /// </summary> + public TitleStyle titleStyle { get { return m_TitleStyles.Count > 0 ? m_TitleStyles[0] : null; } } + + public void RemoveAllExtraComponent() + { + var serieType = GetType(); + foreach (var kv in extraComponentMap) + { + ReflectionUtil.InvokeListClear(this, serieType.GetField(kv.Value)); + } + SetAllDirty(); + } + + public T AddExtraComponent<T>() where T : ChildComponent, ISerieExtraComponent + { + return AddExtraComponent(typeof(T)) as T; + } + + public ISerieExtraComponent AddExtraComponent(Type type) + { + if (GetType().IsDefined(typeof(SerieExtraComponentAttribute), false)) + { + var attr = GetType().GetAttribute<SerieExtraComponentAttribute>(); + if (attr.Contains(type)) + { + var fieldName = string.Empty; + if (extraComponentMap.TryGetValue(type, out fieldName)) + { + var field = typeof(Serie).GetField(fieldName, BindingFlags.Instance | BindingFlags.NonPublic); + if (ReflectionUtil.InvokeListCount(this, field) <= 0) + { + var extraComponent = Activator.CreateInstance(type) as ISerieExtraComponent; + ReflectionUtil.InvokeListAdd(this, field, extraComponent); + SetAllDirty(); + return extraComponent; + } + else + { + return ReflectionUtil.InvokeListGet<ISerieExtraComponent>(this, field, 0); + } + } + } + } + throw new System.Exception(string.Format("Serie {0} not support extra component: {1}", + GetType().Name, type.Name)); + } + + public void RemoveExtraComponent<T>() where T : ISerieExtraComponent + { + RemoveExtraComponent(typeof(T)); + } + + public void RemoveExtraComponent(Type type) + { + if (GetType().IsDefined(typeof(SerieExtraComponentAttribute), false)) + { + var attr = GetType().GetAttribute<SerieExtraComponentAttribute>(); + if (attr.Contains(type)) + { + var fieldName = string.Empty; + if (extraComponentMap.TryGetValue(type, out fieldName)) + { + var field = typeof(Serie).GetField(fieldName, BindingFlags.Instance | BindingFlags.NonPublic); + ReflectionUtil.InvokeListClear(this, field); + SetAllDirty(); + return; + } + } + } + throw new System.Exception(string.Format("Serie {0} not support extra component: {1}", + GetType().Name, type.Name)); + } + + private void RemoveExtraComponentList<T>(List<T> list) where T : ISerieExtraComponent + { + if (list.Count > 0) + { + list.Clear(); + SetAllDirty(); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Serie.ExtraComponent.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Serie.ExtraComponent.cs.meta new file mode 100644 index 0000000..97d8db3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Serie.ExtraComponent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9c4f3a01039fd4e7fbf771a65ede0069 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Serie.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Serie.cs new file mode 100644 index 0000000..96895ea --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Serie.cs @@ -0,0 +1,1765 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + /// <summary> + /// Whether to show as Nightingale chart, which distinguishs data through radius. + /// 是否展示成南丁格尔图,通过半径区分数据大小。 + /// </summary> + public enum RoseType + { + /// <summary> + /// Don't show as Nightingale chart. + /// |不展示成南丁格尔玫瑰图。 + /// </summary> + None, + /// <summary> + /// Use central angle to show the percentage of data, radius to show data size. + /// |扇区圆心角展现数据的百分比,半径展现数据的大小。 + /// </summary> + Radius, + /// <summary> + /// All the sectors will share the same central angle, the data size is shown only through radiuses. + /// |所有扇区圆心角相同,仅通过半径展现数据大小。 + /// </summary> + Area + } + + /// <summary> + /// the type of line chart. + /// |折线图样式类型 + /// </summary> + public enum LineType + { + /// <summary> + /// the normal line chart, + /// |普通折线图。 + /// </summary> + Normal, + /// <summary> + /// the smooth line chart, + /// |平滑曲线。 + /// </summary> + Smooth, + /// <summary> + /// step line. + /// |阶梯线图:当前点。 + /// </summary> + StepStart, + /// <summary> + /// step line. + /// |阶梯线图:当前点和下一个点的中间。 + /// </summary> + StepMiddle, + /// <summary> + /// step line. + /// |阶梯线图:下一个拐点。 + /// </summary> + StepEnd + } + + /// <summary> + /// the type of bar. |柱状图类型。 + /// </summary> + public enum BarType + { + /// <summary> + /// normal bar. + /// |普通柱形图。 + /// </summary> + Normal, + /// <summary> + /// zebra bar. + /// |斑马柱形图。 + /// </summary> + Zebra, + /// <summary> + /// capsule bar. + /// |胶囊柱形图。 + /// </summary> + Capsule + } + + /// <summary> + /// the type of radar. |雷达图类型。 + /// </summary> + public enum RadarType + { + /// <summary> + /// multiple radar. + /// |多圈雷达图。此时可一个雷达里绘制多个圈,一个serieData就可组成一个圈(多维数据)。 + /// </summary> + Multiple, + /// <summary> + /// single radar. + /// |单圈雷达图。此时一个雷达只能绘制一个圈,多个serieData组成一个圈,数据取自`data[1]`。 + /// </summary> + Single + } + + /// <summary> + /// 采样类型 + /// </summary> + public enum SampleType + { + /// <summary> + /// Take a peak. When the average value of the filter point is greater than or equal to 'sampleAverage', + /// take the maximum value; If you do it the other way around, you get the minimum. + /// |取峰值。 + /// </summary> + Peak, + /// <summary> + /// Take the average of the filter points. + /// |取过滤点的平均值。 + /// </summary> + Average, + /// <summary> + /// Take the maximum value of the filter point. + /// |取过滤点的最大值。 + /// </summary> + Max, + /// <summary> + /// Take the minimum value of the filter point. + /// |取过滤点的最小值。 + /// </summary> + Min, + /// <summary> + /// Take the sum of the filter points. + /// |取过滤点的和。 + /// </summary> + Sum + } + + /// <summary> + /// 数据排序方式 + /// </summary> + public enum SerieDataSortType + { + /// <summary> + /// 按 data 的顺序 + /// </summary> + None, + /// <summary> + /// 升序 + /// </summary> + Ascending, + /// <summary> + /// 降序 + /// </summary> + Descending, + } + + /// <summary> + /// 对齐方式 + /// </summary> + public enum Align + { + Center, + Left, + Right + } + + /// <summary> + /// 系列。 + /// </summary> + [System.Serializable] + public partial class Serie : BaseSerie, IComparable + { + [SerializeField] private int m_Index; + [SerializeField] private bool m_Show = true; + [SerializeField] private string m_CoordSystem = "GridCoord"; + [SerializeField] private string m_SerieType = ""; + [SerializeField] private string m_SerieName; + [SerializeField] private string m_Stack; + [SerializeField] private int m_XAxisIndex = 0; + [SerializeField] private int m_YAxisIndex = 0; + [SerializeField] private int m_RadarIndex = 0; + [SerializeField] private int m_VesselIndex = 0; + [SerializeField] private int m_PolarIndex = 0; + [SerializeField] private int m_SingleAxisIndex = 0; + [SerializeField] private int m_ParallelIndex = 0; + [SerializeField] protected int m_MinShow; + [SerializeField] protected int m_MaxShow; + [SerializeField] protected int m_MaxCache; + + [SerializeField] private float m_SampleDist = 0; + [SerializeField] private SampleType m_SampleType = SampleType.Average; + [SerializeField] private float m_SampleAverage = 0; + + [SerializeField] private LineType m_LineType = LineType.Normal; + [SerializeField] private BarType m_BarType = BarType.Normal; + [SerializeField] private bool m_BarPercentStack = false; + [SerializeField] private float m_BarWidth = 0; + [SerializeField] private float m_BarGap = 0.1f; + [SerializeField] private float m_BarZebraWidth = 4f; + [SerializeField] private float m_BarZebraGap = 2f; + + [SerializeField] private float m_Min; + [SerializeField] private float m_Max; + [SerializeField] private float m_MinSize = 0f; + [SerializeField] private float m_MaxSize = 1f; + [SerializeField] private float m_StartAngle; + [SerializeField] private float m_EndAngle; + [SerializeField] private float m_MinAngle; + [SerializeField] private bool m_Clockwise = true; + [SerializeField] private bool m_RoundCap; + [SerializeField] private int m_SplitNumber; + [SerializeField] private bool m_ClickOffset = true; + [SerializeField] private RoseType m_RoseType = RoseType.None; + [SerializeField] private float m_Gap; + [SerializeField] private float[] m_Center = new float[2] { 0.5f, 0.48f }; + [SerializeField] private float[] m_Radius = new float[2] { 0, 0.28f }; + + [SerializeField][Range(1, 10)] private int m_ShowDataDimension; + [SerializeField] private bool m_ShowDataName; + [SerializeField] private bool m_Clip = false; + [SerializeField] private bool m_Ignore = false; + [SerializeField] private double m_IgnoreValue = 0; + [SerializeField] private bool m_IgnoreLineBreak = false; + [SerializeField] private bool m_ShowAsPositiveNumber = false; + [SerializeField] private bool m_Large = true; + [SerializeField] private int m_LargeThreshold = 200; + [SerializeField] private bool m_AvoidLabelOverlap = false; + [SerializeField] private RadarType m_RadarType = RadarType.Multiple; + [SerializeField] private bool m_PlaceHolder = false; + + [SerializeField] private SerieDataSortType m_DataSortType = SerieDataSortType.Descending; + [SerializeField] private Orient m_Orient = Orient.Vertical; + [SerializeField] private Align m_Align = Align.Center; + [SerializeField] private float m_Left; + [SerializeField] private float m_Right; + [SerializeField] private float m_Top; + [SerializeField] private float m_Bottom; + [SerializeField] private bool m_InsertDataToHead; + + [SerializeField] private LineStyle m_LineStyle = new LineStyle(); + [SerializeField] private SerieSymbol m_Symbol = new SerieSymbol(); + [SerializeField] private AnimationStyle m_Animation = new AnimationStyle(); + [SerializeField] private ItemStyle m_ItemStyle = new ItemStyle(); + [SerializeField] private List<SerieData> m_Data = new List<SerieData>(); + + [NonSerialized] internal int m_FilterStart; + [NonSerialized] internal int m_FilterEnd; + [NonSerialized] internal double m_FilterStartValue; + [NonSerialized] internal double m_FilterEndValue; + [NonSerialized] internal int m_FilterMinShow; + [NonSerialized] internal bool m_NeedUpdateFilterData; + [NonSerialized] public List<SerieData> m_FilterData = new List<SerieData>(); + [NonSerialized] private bool m_NameDirty; + + /// <summary> + /// The index of serie. + /// |系列索引。 + /// </summary> + public int index { get { return m_Index; } internal set { m_Index = value; } } + /// <summary> + /// Whether to show serie in chart. + /// |系列是否显示在图表上。 + /// </summary> + public bool show + { + get { return m_Show; } + set { if (PropertyUtil.SetStruct(ref m_Show, value)) { SetVerticesDirty(); SetSerieNameDirty(); } } + } + /// <summary> + /// the chart coord system of serie. + /// |使用的坐标系。 + /// </summary> + public string coordSystem + { + get { return m_CoordSystem; } + set { if (PropertyUtil.SetClass(ref m_CoordSystem, value, true)) SetVerticesDirty(); } + } + /// <summary> + /// the type of serie. + /// |系列类型。 + /// </summary> + public string serieType + { + get { return m_SerieType; } + set { if (PropertyUtil.SetClass(ref m_SerieType, value, true)) SetVerticesDirty(); } + } + /// <summary> + /// Series name used for displaying in tooltip and filtering with legend. + /// |系列名称,用于 tooltip 的显示,legend 的图例筛选。 + /// </summary> + public string serieName + { + get { return m_SerieName; } + set { if (PropertyUtil.SetClass(ref m_SerieName, value)) { SetVerticesDirty(); SetSerieNameDirty(); } } + } + /// <summary> + /// Legend name. When the serie name is not empty, the legend name is the series name; Otherwise, it is index. + /// |图例名称。当系列名称不为空时,图例名称即为系列名称;反之则为索引index。 + /// </summary> + public string legendName { get { return string.IsNullOrEmpty(serieName) ? ChartCached.IntToStr(index) : serieName; } } + /// <summary> + /// If stack the value. On the same category axis, the series with the same stack name would be put on top of each other. + /// |数据堆叠,同个类目轴上系列配置相同的stack值后,后一个系列的值会在前一个系列的值上相加。 + /// </summary> + public string stack + { + get { return m_Stack; } + set { if (PropertyUtil.SetClass(ref m_Stack, value)) SetVerticesDirty(); } + } + /// <summary> + /// the index of XAxis. + /// |使用X轴的index。 + /// </summary> + public int xAxisIndex + { + get { return m_XAxisIndex; } + set { if (PropertyUtil.SetStruct(ref m_XAxisIndex, value)) SetVerticesDirty(); } + } + /// <summary> + /// the index of YAxis. + /// |使用Y轴的index。 + /// </summary> + public int yAxisIndex + { + get { return m_YAxisIndex; } + set { if (PropertyUtil.SetStruct(ref m_YAxisIndex, value)) SetVerticesDirty(); } + } + /// <summary> + /// Index of radar component that radar chart uses. + /// |雷达图所使用的 radar 组件的 index。 + /// </summary> + public int radarIndex + { + get { return m_RadarIndex; } + set { if (PropertyUtil.SetStruct(ref m_RadarIndex, value)) SetVerticesDirty(); } + } + /// <summary> + /// Index of vesel component that liquid chart uses. + /// |水位图所使用的 vessel 组件的 index。 + /// </summary> + public int vesselIndex + { + get { return m_VesselIndex; } + set { if (PropertyUtil.SetStruct(ref m_VesselIndex, value)) SetVerticesDirty(); } + } + /// <summary> + /// Index of polar component that serie uses. + /// |所使用的 polar 组件的 index。 + /// </summary> + public int polarIndex + { + get { return m_PolarIndex; } + set { if (PropertyUtil.SetStruct(ref m_PolarIndex, value)) SetVerticesDirty(); } + } + /// <summary>s + /// Index of single axis component that serie uses. + /// |所使用的 singleAxis 组件的 index。 + /// </summary> + public int singleAxisIndex + { + get { return m_SingleAxisIndex; } + set { if (PropertyUtil.SetStruct(ref m_SingleAxisIndex, value)) SetAllDirty(); } + } + /// <summary>s + /// Index of parallel coord component that serie uses. + /// |所使用的 parallel coord 组件的 index。 + /// </summary> + public int parallelIndex + { + get { return m_ParallelIndex; } + set { if (PropertyUtil.SetStruct(ref m_ParallelIndex, value)) SetAllDirty(); } + } + /// <summary> + /// The min number of data to show in chart. + /// |系列所显示数据的最小索引 + /// </summary> + public int minShow + { + get { return m_MinShow; } + set { if (PropertyUtil.SetStruct(ref m_MinShow, value < 0 ? 0 : value)) { SetVerticesDirty(); } } + } + /// <summary> + /// The max number of data to show in chart. + /// |系列所显示数据的最大索引 + /// </summary> + public int maxShow + { + get { return m_MaxShow; } + set { if (PropertyUtil.SetStruct(ref m_MaxShow, value < 0 ? 0 : value)) { SetVerticesDirty(); } } + } + /// <summary> + /// The max number of serie data cache. + /// The first data will be remove when the size of serie data is larger then maxCache. + /// |系列中可缓存的最大数据量。默认为0没有限制,大于0时超过指定值会移除旧数据再插入新数据。 + /// </summary> + public int maxCache + { + get { return m_MaxCache; } + set { if (PropertyUtil.SetStruct(ref m_MaxCache, value < 0 ? 0 : value)) { SetVerticesDirty(); } } + } + + /// <summary> + /// the symbol of serie data item. + /// |标记的图形。 + /// </summary> + public SerieSymbol symbol + { + get { return m_Symbol; } + set { if (PropertyUtil.SetClass(ref m_Symbol, value, true)) SetVerticesDirty(); } + } + /// <summary> + /// The type of line chart. + /// |折线图样式类型。 + /// </summary> + public LineType lineType + { + get { return m_LineType; } + set { if (PropertyUtil.SetStruct(ref m_LineType, value)) SetVerticesDirty(); } + } + /// <summary> + /// the min pixel dist of sample. + /// |采样的最小像素距离,默认为0时不采样。当两个数据点间的水平距离小于改值时,开启采样,保证两点间的水平距离不小于改值。 + /// </summary> + public float sampleDist + { + get { return m_SampleDist; } + set { if (PropertyUtil.SetStruct(ref m_SampleDist, value < 0 ? 0 : value)) SetVerticesDirty(); } + } + /// <summary> + /// the type of sample. + /// |采样类型。当sampleDist大于0时有效。 + /// </summary> + public SampleType sampleType + { + get { return m_SampleType; } + set { if (PropertyUtil.SetStruct(ref m_SampleType, value)) SetVerticesDirty(); } + } + /// <summary> + /// 设定的采样平均值。当sampleType 为 Peak 时,用于和过滤数据的平均值做对比是取最大值还是最小值。默认为0时会实时计算所有数据的平均值。 + /// </summary> + public float sampleAverage + { + get { return m_SampleAverage; } + set { if (PropertyUtil.SetStruct(ref m_SampleAverage, value)) SetVerticesDirty(); } + } + /// <summary> + /// The style of line. + /// |线条样式。 + /// </summary> + public LineStyle lineStyle + { + get { return m_LineStyle; } + set { if (PropertyUtil.SetClass(ref m_LineStyle, value, true)) SetVerticesDirty(); } + } + /// <summary> + /// 柱形图类型。 + /// </summary> + public BarType barType + { + get { return m_BarType; } + set { if (PropertyUtil.SetStruct(ref m_BarType, value)) SetVerticesDirty(); } + } + /// <summary> + /// 柱形图是否为百分比堆积。相同stack的serie只要有一个barPercentStack为true,则就显示成百分比堆叠柱状图。 + /// </summary> + public bool barPercentStack + { + get { return m_BarPercentStack; } + set { if (PropertyUtil.SetStruct(ref m_BarPercentStack, value)) SetVerticesDirty(); } + } + /// <summary> + /// The width of the bar. Adaptive when default 0. + /// |柱条的宽度,不设时自适应。支持设置成相对于类目宽度的百分比。 + /// </summary> + public float barWidth + { + get { return m_BarWidth; } + set { if (PropertyUtil.SetStruct(ref m_BarWidth, value)) SetVerticesDirty(); } + } + /// <summary> + /// The gap between bars between different series, is a percent value like '0.3f' , which means 30% of the bar width, can be set as a fixed value. + /// Set barGap as '-1' can overlap bars that belong to different series, which is useful when making a series of bar be background. + /// In a single coodinate system, this attribute is shared by multiple 'bar' series. + /// This attribute should be set on the last 'bar' series in the coodinate system, + /// then it will be adopted by all 'bar' series in the coordinate system. + /// |不同系列的柱间距离。为百分比(如 '0.3f',表示柱子宽度的 30%) + /// 如果想要两个系列的柱子重叠,可以设置 barGap 为 '-1f'。这在用柱子做背景的时候有用。 + /// 在同一坐标系上,此属性会被多个 'bar' 系列共享。此属性应设置于此坐标系中最后一个 'bar' 系列上才会生效,并且是对此坐标系中所有 'bar' 系列生效。 + /// </summary> + public float barGap + { + get { return m_BarGap; } + set { if (PropertyUtil.SetStruct(ref m_BarGap, value)) SetVerticesDirty(); } + } + /// <summary> + /// 斑马线的粗细。 + /// </summary> + public float barZebraWidth + { + get { return m_BarZebraWidth; } + set { if (PropertyUtil.SetStruct(ref m_BarZebraWidth, value < 0 ? 0 : value)) SetVerticesDirty(); } + } + /// <summary> + /// 斑马线的间距。 + /// </summary> + public float barZebraGap + { + get { return m_BarZebraGap; } + set { if (PropertyUtil.SetStruct(ref m_BarZebraGap, value < 0 ? 0 : value)) SetVerticesDirty(); } + } + + /// <summary> + /// Whether offset when mouse click pie chart item. + /// |鼠标点击时是否开启偏移,一般用在PieChart图表中。 + /// </summary> + public bool pieClickOffset + { + get { return m_ClickOffset; } + set { if (PropertyUtil.SetStruct(ref m_ClickOffset, value)) SetVerticesDirty(); } + } + /// <summary> + /// Whether to show as Nightingale chart. + /// |是否展示成南丁格尔图,通过半径区分数据大小。 + /// </summary> + public RoseType pieRoseType + { + get { return m_RoseType; } + set { if (PropertyUtil.SetStruct(ref m_RoseType, value)) SetVerticesDirty(); } + } + /// <summary> + /// gap of item. + /// |间距。 + /// </summary> + public float gap + { + get { return m_Gap; } + set { if (PropertyUtil.SetStruct(ref m_Gap, value)) SetVerticesDirty(); } + } + /// <summary> + /// the center of chart. + /// |中心点。 + /// </summary> + public float[] center + { + get { return m_Center; } + set { if (value != null && value.Length == 2) { m_Center = value; SetVerticesDirty(); } } + } + /// <summary> + /// the radius of chart. + /// |半径。radius[0]表示内径,radius[1]表示外径。 + /// </summary> + public float[] radius + { + get { return m_Radius; } + set { if (value != null && value.Length == 2) { m_Radius = value; SetVerticesDirty(); } } + } + /// <summary> + /// 最小值。 + /// </summary> + public float min + { + get { return m_Min; } + set { if (PropertyUtil.SetStruct(ref m_Min, value)) SetVerticesDirty(); } + } + /// <summary> + /// 最大值。 + /// </summary> + public float max + { + get { return m_Max; } + set { if (PropertyUtil.SetStruct(ref m_Max, value)) SetVerticesDirty(); } + } + /// <summary> + /// 数据最小值 min 映射的宽度。 + /// </summary> + public float minSize + { + get { return m_MinSize; } + set { if (PropertyUtil.SetStruct(ref m_MinSize, value)) SetVerticesDirty(); } + } + /// <summary> + /// 数据最大值 max 映射的宽度。 + /// </summary> + public float maxSize + { + get { return m_MaxSize; } + set { if (PropertyUtil.SetStruct(ref m_MaxSize, value)) SetVerticesDirty(); } + } + /// <summary> + /// 起始角度。和时钟一样,12点钟位置是0度,顺时针到360度。 + /// </summary> + public float startAngle + { + get { return m_StartAngle; } + set { if (PropertyUtil.SetStruct(ref m_StartAngle, value)) SetVerticesDirty(); } + } + /// <summary> + /// 结束角度。和时钟一样,12点钟位置是0度,顺时针到360度。 + /// </summary> + public float endAngle + { + get { return m_EndAngle; } + set { if (PropertyUtil.SetStruct(ref m_EndAngle, value)) SetVerticesDirty(); } + } + /// <summary> + /// The minimum angle of sector(0-360). It prevents some sector from being too small when value is small. + /// |最小的扇区角度(0-360)。用于防止某个值过小导致扇区太小影响交互。 + /// </summary> + public float minAngle + { + get { return m_MinAngle; } + set { if (PropertyUtil.SetStruct(ref m_MinAngle, value)) SetVerticesDirty(); } + } + /// <summary> + /// 是否顺时针。 + /// </summary> + public bool clockwise + { + get { return m_Clockwise; } + set { if (PropertyUtil.SetStruct(ref m_Clockwise, value)) SetVerticesDirty(); } + } + /// <summary> + /// 刻度分割段数。最大可设置36。 + /// </summary> + public int splitNumber + { + get { return m_SplitNumber; } + set { if (PropertyUtil.SetStruct(ref m_SplitNumber, value > 36 ? 36 : value)) SetVerticesDirty(); } + } + /// <summary> + /// 是否开启圆弧效果。 + /// </summary> + public bool roundCap + { + get { return m_RoundCap; } + set { if (PropertyUtil.SetStruct(ref m_RoundCap, value)) SetVerticesDirty(); } + } + /// <summary> + /// 是否开启忽略数据。当为 true 时,数据值为 ignoreValue 时不进行绘制。 + /// </summary> + public bool ignore + { + get { return m_Ignore; } + set { if (PropertyUtil.SetStruct(ref m_Ignore, value)) SetVerticesDirty(); } + } + /// <summary> + /// 忽略数据的默认值。当ignore为true才有效。 + /// </summary> + public double ignoreValue + { + get { return m_IgnoreValue; } + set { if (PropertyUtil.SetStruct(ref m_IgnoreValue, value)) SetVerticesDirty(); } + } + /// <summary> + /// 忽略数据时折线是断开还是连接。默认false为连接。 + /// </summary> + /// <value></value> + public bool ignoreLineBreak + { + get { return m_IgnoreLineBreak; } + set { if (PropertyUtil.SetStruct(ref m_IgnoreLineBreak, value)) SetVerticesDirty(); } + } + /// <summary> + /// 雷达图类型。 + /// </summary> + public RadarType radarType + { + get { return m_RadarType; } + set { if (PropertyUtil.SetStruct(ref m_RadarType, value)) SetVerticesDirty(); } + } + /// <summary> + /// The start animation. + /// |起始动画。 + /// </summary> + public AnimationStyle animation + { + get { return m_Animation; } + set { if (PropertyUtil.SetClass(ref m_Animation, value, true)) SetVerticesDirty(); } + } + /// <summary> + /// The style of data item. + /// |图形样式。 + /// </summary> + public ItemStyle itemStyle + { + get { return m_ItemStyle; } + set { if (PropertyUtil.SetClass(ref m_ItemStyle, value, true)) SetVerticesDirty(); } + } + /// <summary> + /// 数据项里的数据维数。 + /// </summary> + public int showDataDimension { get { return m_ShowDataDimension; } set { m_ShowDataDimension = value; } } + /// <summary> + /// 在Editor的inpsector上是否显示name参数 + /// </summary> + public bool showDataName { get { return m_ShowDataName; } set { m_ShowDataName = value; } } + /// <summary> + /// If clip the overflow on the coordinate system. + /// |是否裁剪超出坐标系部分的图形。 + /// </summary> + public bool clip + { + get { return m_Clip; } + set { if (PropertyUtil.SetStruct(ref m_Clip, value)) SetVerticesDirty(); } + } + /// <summary> + /// Show negative number as positive number. + /// |将负数数值显示为正数。一般和`AxisLabel`的`showAsPositiveNumber`配合使用。仅在折线图和柱状图中有效。 + /// </summary> + public bool showAsPositiveNumber + { + get { return m_ShowAsPositiveNumber; } + set { if (PropertyUtil.SetStruct(ref m_ShowAsPositiveNumber, value)) SetComponentDirty(); } + } + /// <summary> + /// 是否开启大数据量优化,在数据图形特别多而出现卡顿时候可以开启。 + /// 开启后配合 largeThreshold 在数据量大于指定阈值的时候对绘制进行优化。 + /// 缺点:优化后不能自定义设置单个数据项的样式,不能显示Label。 + /// </summary> + public bool large + { + get { return m_Large; } + set { if (PropertyUtil.SetStruct(ref m_Large, value)) SetAllDirty(); } + } + /// <summary> + /// 开启大数量优化的阈值。只有当开启了large并且数据量大于该阀值时才进入性能模式。 + /// </summary> + public int largeThreshold + { + get { return m_LargeThreshold; } + set { if (PropertyUtil.SetStruct(ref m_LargeThreshold, value)) SetAllDirty(); } + } + /// <summary> + /// 在饼图且标签外部显示的情况下,是否启用防止标签重叠策略,默认关闭,在标签拥挤重叠的情况下会挪动各个标签的位置,防止标签间的重叠。 + /// </summary> + public bool avoidLabelOverlap + { + get { return m_AvoidLabelOverlap; } + set { if (PropertyUtil.SetStruct(ref m_AvoidLabelOverlap, value)) SetVerticesDirty(); } + } + + /// <summary> + /// Distance between component and the left side of the container. + /// |组件离容器左侧的距离。 + /// </summary> + public float left + { + get { return m_Left; } + set { if (PropertyUtil.SetStruct(ref m_Left, value)) SetAllDirty(); } + } + /// <summary> + /// Distance between component and the right side of the container. + /// |组件离容器右侧的距离。 + /// </summary> + public float right + { + get { return m_Right; } + set { if (PropertyUtil.SetStruct(ref m_Right, value)) SetAllDirty(); } + } + /// <summary> + /// Distance between component and the top side of the container. + /// |组件离容器上侧的距离。 + /// </summary> + public float top + { + get { return m_Top; } + set { if (PropertyUtil.SetStruct(ref m_Top, value)) SetAllDirty(); } + } + /// <summary> + /// Distance between component and the bottom side of the container. + /// |组件离容器下侧的距离。 + /// </summary> + public float bottom + { + get { return m_Bottom; } + set { if (PropertyUtil.SetStruct(ref m_Bottom, value)) SetAllDirty(); } + } + /// <summary> + /// Whether to add new data at the head or at the end of the list. + /// |添加新数据时是在列表的头部还是尾部加入。 + /// </summary> + public bool insertDataToHead + { + get { return m_InsertDataToHead; } + set { if (PropertyUtil.SetStruct(ref m_InsertDataToHead, value)) SetAllDirty(); } + } + /// <summary> + /// 组件的数据排序。 + /// </summary> + public SerieDataSortType dataSortType + { + get { return m_DataSortType; } + set { if (PropertyUtil.SetStruct(ref m_DataSortType, value)) SetVerticesDirty(); } + } + /// <summary> + /// 组件的朝向。 + /// </summary> + public Orient orient + { + get { return m_Orient; } + set { if (PropertyUtil.SetStruct(ref m_Orient, value)) SetVerticesDirty(); } + } + /// <summary> + /// 组件水平方向对齐方式。 + /// </summary> + public Align align + { + get { return m_Align; } + set { if (PropertyUtil.SetStruct(ref m_Align, value)) SetVerticesDirty(); } + } + /// <summary> + /// 占位模式。占位模式时,数据有效但不参与渲染和显示。 + /// </summary> + public bool placeHolder + { + get { return m_PlaceHolder; } + set { if (PropertyUtil.SetStruct(ref m_PlaceHolder, value)) SetAllDirty(); } + } + /// <summary> + /// 系列中的数据内容数组。SerieData可以设置1到n维数据。 + /// </summary> + public List<SerieData> data { get { return m_Data; } } + + public override bool vertsDirty + { + get + { + return m_VertsDirty || + symbol.vertsDirty || + lineStyle.vertsDirty || + itemStyle.vertsDirty || + (lineArrow != null && lineArrow.vertsDirty) || + (areaStyle != null && areaStyle.vertsDirty) || + (label != null && label.vertsDirty) || + (labelLine != null && labelLine.vertsDirty) || + (emphasisItemStyle != null && emphasisItemStyle.vertsDirty) || + (titleStyle != null && titleStyle.vertsDirty) || + AnySerieDataVerticesDirty(); + } + } + + public override bool componentDirty + { + get + { + return m_ComponentDirty || + symbol.componentDirty || + (titleStyle != null && titleStyle.componentDirty) || + (label != null && label.componentDirty) || + (labelLine != null && labelLine.componentDirty) || + (emphasisLabel != null && emphasisLabel.componentDirty) || + (emphasisLabelLine != null && emphasisLabelLine.componentDirty); + } + } + public override void ClearVerticesDirty() + { + base.ClearVerticesDirty(); + foreach (var serieData in m_Data) + serieData.ClearVerticesDirty(); + symbol.ClearVerticesDirty(); + lineStyle.ClearVerticesDirty(); + itemStyle.ClearVerticesDirty(); + if (areaStyle != null) + areaStyle.ClearVerticesDirty(); + if (label != null) + label.ClearVerticesDirty(); + if (emphasisItemStyle != null) + emphasisItemStyle.ClearVerticesDirty(); + if (lineArrow != null) + lineArrow.ClearVerticesDirty(); + if (titleStyle != null) + titleStyle.ClearVerticesDirty(); + } + + public override void ClearComponentDirty() + { + base.ClearComponentDirty(); + foreach (var serieData in m_Data) + serieData.ClearComponentDirty(); + symbol.ClearComponentDirty(); + lineStyle.ClearComponentDirty(); + itemStyle.ClearComponentDirty(); + if (areaStyle != null) + areaStyle.ClearComponentDirty(); + if (label != null) + label.ClearComponentDirty(); + if (emphasisLabel != null) + emphasisLabel.ClearComponentDirty(); + if (emphasisLabelLine != null) + emphasisLabelLine.ClearComponentDirty(); + if (lineArrow != null) + lineArrow.ClearComponentDirty(); + if (titleStyle != null) + titleStyle.ClearComponentDirty(); + } + + public override void SetAllDirty() + { + base.SetAllDirty(); + labelDirty = true; + titleDirty = true; + } + + private bool AnySerieDataVerticesDirty() + { + if (this is ISimplifiedSerie) + return false; + foreach (var serieData in m_Data) + if (serieData.vertsDirty) return true; + return false; + } + + private bool AnySerieDataComponentDirty() + { + if (this is ISimplifiedSerie) + return false; + foreach (var serieData in m_Data) + if (serieData.componentDirty) return true; + return false; + } + /// <summary> + /// Whether the serie is highlighted. + /// |该系列是否高亮,一般由图例悬停触发。 + /// </summary> + public bool highlight { get; internal set; } + /// <summary> + /// the count of data list. + /// |数据项个数。 + /// </summary> + public int dataCount { get { return m_Data.Count; } } + public bool nameDirty { get { return m_NameDirty; } } + public bool labelDirty { get; set; } + public bool titleDirty { get; set; } + public bool dataDirty { get; set; } + + private void SetSerieNameDirty() + { + m_NameDirty = true; + } + + public void ClearSerieNameDirty() + { + m_NameDirty = false; + } + + public override void ClearDirty() + { + base.ClearDirty(); + } + + /// <summary> + /// 维度Y对应数据中最大值。 + /// </summary> + public double yMax + { + get + { + var max = double.MinValue; + foreach (var sdata in data) + { + if (sdata.show && !IsIgnoreValue(sdata.data[1]) && sdata.data[1] > max) + { + max = sdata.data[1]; + } + } + return max; + } + } + + /// <summary> + /// 维度X对应数据中的最大值。 + /// </summary> + public double xMax + { + get + { + var max = double.MinValue; + foreach (var sdata in data) + { + if (sdata.show && !IsIgnoreValue(sdata.data[0]) && sdata.data[0] > max) + { + max = sdata.data[0]; + } + } + return max; + } + } + + /// <summary> + /// 维度Y对应数据的最小值。 + /// </summary> + public double yMin + { + get + { + var min = double.MaxValue; + foreach (var sdata in data) + { + if (sdata.show && !IsIgnoreValue(sdata.data[1]) && sdata.data[1] < min) + { + min = sdata.data[1]; + } + } + return min; + } + } + + /// <summary> + /// 维度X对应数据的最小值。 + /// </summary> + public double xMin + { + get + { + var min = double.MaxValue; + foreach (var sdata in data) + { + if (sdata.show && !IsIgnoreValue(sdata.data[0]) && sdata.data[0] < min) + { + min = sdata.data[0]; + } + } + return min; + } + } + + /// <summary> + /// 维度Y数据的总和。 + /// </summary> + public double yTotal + { + get + { + double total = 0; + if (IsPerformanceMode()) + { + foreach (var sdata in data) + { + if (sdata.show && !IsIgnoreValue(sdata.data[1])) + total += sdata.data[1]; + } + } + else + { + var duration = animation.GetUpdateAnimationDuration(); + foreach (var sdata in data) + { + if (sdata.show && !IsIgnoreValue(sdata.data[1])) + total += sdata.GetCurrData(1, duration); + } + } + return total; + } + } + + /// <summary> + /// 维度X数据的总和。 + /// </summary> + public double xTotal + { + get + { + double total = 0; + foreach (var sdata in data) + { + if (sdata.show && !IsIgnoreValue(sdata.data[1])) + total += sdata.data[0]; + } + return total; + } + } + + public void ResetInteract() + { + interact.Reset(); + foreach (var serieData in m_Data) + serieData.interact.Reset(); + } + + /// <summary> + /// 清空所有数据 + /// </summary> + public override void ClearData() + { + while (m_Data.Count > 0) + { + RemoveData(0); + } + m_Data.Clear(); + m_NeedUpdateFilterData = true; + dataDirty = true; + SetVerticesDirty(); + } + + /// <summary> + /// 移除指定索引的数据 + /// </summary> + /// <param name="index"></param> + public void RemoveData(int index) + { + if (index >= 0 && index < m_Data.Count) + { + if (!string.IsNullOrEmpty(m_Data[index].name)) + { + SetSerieNameDirty(); + } + SetVerticesDirty(); + var serieData = m_Data[index]; + SerieDataPool.Release(serieData); + if (serieData.labelObject != null) + { + SerieLabelPool.Release(serieData.labelObject.gameObject); + } + m_Data.RemoveAt(index); + m_NeedUpdateFilterData = true; + labelDirty = true; + dataDirty = true; + } + } + + /// <summary> + /// 添加一个数据到维度Y(此时维度X对应的数据是索引) + /// </summary> + /// <param name="value"></param> + /// <param name="dataName"></param> + /// <param name="dataId">the unique id of data</param> + public SerieData AddYData(double value, string dataName = null, string dataId = null) + { + CheckMaxCache(); + int xValue = m_Data.Count; + var serieData = SerieDataPool.Get(); + serieData.data.Add(xValue); + serieData.data.Add(value); + serieData.name = dataName; + serieData.index = xValue; + serieData.id = dataId; + AddSerieData(serieData); + m_ShowDataDimension = 1; + SetVerticesDirty(); + CheckDataName(dataName); + labelDirty = true; + dataDirty = true; + return serieData; + } + + public void AddSerieData(SerieData serieData) + { + if (m_InsertDataToHead) + m_Data.Insert(0, serieData); + else + m_Data.Add(serieData); + SetVerticesDirty(); + dataDirty = true; + m_NeedUpdateFilterData = true; + } + + private void CheckDataName(string dataName) + { + if (string.IsNullOrEmpty(dataName)) + SetSerieNameDirty(); + else + m_ShowDataName = true; + } + + /// <summary> + /// 添加(x,y)数据到维度X和维度Y + /// </summary> + /// <param name="xValue"></param> + /// <param name="yValue"></param> + /// <param name="dataName"></param> + /// <param name="dataId">the unique id of data</param> + public SerieData AddXYData(double xValue, double yValue, string dataName = null, string dataId = null) + { + CheckMaxCache(); + var serieData = SerieDataPool.Get(); + serieData.data.Clear(); + serieData.data.Add(xValue); + serieData.data.Add(yValue); + serieData.name = dataName; + serieData.index = m_Data.Count; + serieData.id = dataId; + AddSerieData(serieData); + m_ShowDataDimension = 2; + SetVerticesDirty(); + CheckDataName(dataName); + labelDirty = true; + return serieData; + } + + /// <summary> + /// 添加 (open, close, lowest, heighest) 数据 + /// </summary> + /// <param name="open"></param> + /// <param name="close"></param> + /// <param name="lowest"></param> + /// <param name="heighest"></param> + /// <param name="dataName"></param> + /// <param name="dataId">the unique id of data</param> + /// <returns></returns> + public SerieData AddData(double open, double close, double lowest, double heighest, string dataName = null, string dataId = null) + { + CheckMaxCache(); + var serieData = SerieDataPool.Get(); + serieData.data.Clear(); + serieData.data.Add(open); + serieData.data.Add(close); + serieData.data.Add(lowest); + serieData.data.Add(heighest); + serieData.name = dataName; + serieData.index = m_Data.Count; + serieData.id = dataId; + AddSerieData(serieData); + m_ShowDataDimension = 4; + SetVerticesDirty(); + CheckDataName(dataName); + labelDirty = true; + return serieData; + } + + /// <summary> + /// 将一组数据添加到系列中。 + /// 如果数据只有一个,默认添加到维度Y中。 + /// </summary> + /// <param name="valueList"></param> + /// <param name="dataName"></param> + /// <param name="dataId">the unique id of data</param> + public SerieData AddData(List<double> valueList, string dataName = null, string dataId = null) + { + if (valueList == null || valueList.Count == 0) return null; + if (valueList.Count == 1) + return AddYData(valueList[0], dataName, dataId); + else if (valueList.Count == 2) + return AddXYData(valueList[0], valueList[1], dataName, dataId); + else + { + CheckMaxCache(); + m_ShowDataDimension = valueList.Count; + var serieData = SerieDataPool.Get(); + serieData.name = dataName; + serieData.index = m_Data.Count; + serieData.id = dataId; + for (int i = 0; i < valueList.Count; i++) + { + serieData.data.Add(valueList[i]); + } + AddSerieData(serieData); + SetVerticesDirty(); + CheckDataName(dataName); + labelDirty = true; + return serieData; + } + } + + public SerieData AddChildData(SerieData parent, double value, string name, string id) + { + var serieData = new SerieData(); + serieData.name = name; + serieData.index = m_Data.Count; + serieData.id = id; + serieData.data = new List<double>() { m_Data.Count, value }; + AddChildData(parent, serieData); + return serieData; + } + + public SerieData AddChildData(SerieData parent, List<double> value, string name, string id) + { + var serieData = new SerieData(); + serieData.name = name; + serieData.index = m_Data.Count; + serieData.id = id; + serieData.data = new List<double>(value); + AddChildData(parent, serieData); + return serieData; + } + + public void AddChildData(SerieData parent, SerieData serieData) + { + serieData.parentId = parent.id; + serieData.context.parent = parent; + + if (!m_Data.Contains(serieData)) + AddSerieData(serieData); + + if (!parent.context.children.Contains(serieData)) + { + parent.context.children.Add(serieData); + } + } + + private void CheckMaxCache() + { + if (m_MaxCache <= 0) return; + while (m_Data.Count >= m_MaxCache) + { + m_NeedUpdateFilterData = true; + if (m_InsertDataToHead) RemoveData(m_Data.Count - 1); + else RemoveData(0); + } + } + + /// <summary> + /// 获得指定index指定维数的数据 + /// </summary> + /// <param name="index"></param> + /// <param name="dimension"></param> + /// <param name="dataZoom"></param> + /// <returns></returns> + public double GetData(int index, int dimension, DataZoom dataZoom = null) + { + if (index < 0 || dimension < 0) return 0; + var serieData = GetSerieData(index, dataZoom); + if (serieData != null && dimension < serieData.data.Count) + { + var value = serieData.GetData(dimension); + if (showAsPositiveNumber) + value = Math.Abs(value); + return value; + } + else + { + return 0; + } + } + + /// <summary> + /// 获得维度Y索引对应的数据 + /// </summary> + /// <param name="index"></param> + /// <param name="dataZoom"></param> + /// <returns></returns> + public double GetYData(int index, DataZoom dataZoom = null) + { + if (index < 0) return 0; + var serieData = GetDataList(dataZoom); + if (index < serieData.Count) + { + var value = serieData[index].data[1]; + if (showAsPositiveNumber) + value = Math.Abs(value); + return value; + } + return 0; + } + + public double GetYCurrData(int index, DataZoom dataZoom = null) + { + if (index < 0) return 0; + var serieData = GetDataList(dataZoom); + if (index < serieData.Count) + { + var value = serieData[index].GetCurrData(1, animation.GetUpdateAnimationDuration()); + if (showAsPositiveNumber) + value = Math.Abs(value); + return value; + } + return 0; + } + + /// <summary> + /// 获得维度Y索引对应的数据和数据名 + /// </summary> + /// <param name="index">索引</param> + /// <param name="yData">对应的数据值</param> + /// <param name="dataName">对应的数据名</param> + /// <param name="dataZoom">区域缩放</param> + public void GetYData(int index, out double yData, out string dataName, DataZoom dataZoom = null) + { + yData = 0; + dataName = null; + if (index < 0) return; + var serieData = GetDataList(dataZoom); + if (index < serieData.Count) + { + yData = serieData[index].data[1]; + if (showAsPositiveNumber) + yData = Math.Abs(yData); + dataName = serieData[index].name; + } + } + + /// <summary> + /// 获得指定索引的数据项 + /// </summary> + /// <param name="index"></param> + /// <param name="dataZoom"></param> + /// <returns></returns> + public SerieData GetSerieData(int index, DataZoom dataZoom = null) + { + var data = GetDataList(dataZoom); + if (index >= 0 && index <= data.Count - 1) + return data[index]; + return null; + } + + public SerieData GetSerieData(string id, DataZoom dataZoom = null) + { + var data = GetDataList(dataZoom); + foreach (var serieData in data) + { + var target = GetSerieData(serieData, id); + if (target != null) return target; + } + return null; + } + + public SerieData GetSerieData(SerieData parent, string id) + { + if (id.Equals(parent.id)) return parent; + foreach (var child in parent.context.children) + { + var data = GetSerieData(child, id); + if (data != null) + { + return data; + } + } + return null; + } + + /// <summary> + /// 获得指定索引的维度X和维度Y的数据 + /// </summary> + /// <param name="index"></param> + /// <param name="dataZoom"></param> + /// <param name="xValue"></param> + /// <param name="yVlaue"></param> + public void GetXYData(int index, DataZoom dataZoom, out double xValue, out double yVlaue) + { + xValue = 0; + yVlaue = 0; + if (index < 0) return; + var showData = GetDataList(dataZoom); + if (index < showData.Count) + { + var serieData = showData[index]; + xValue = serieData.data[0]; + yVlaue = serieData.data[1]; + if (showAsPositiveNumber) + { + xValue = Math.Abs(xValue); + yVlaue = Math.Abs(yVlaue); + } + } + } + + public virtual double GetDataTotal(int dimension, SerieData serieData = null) + { + if (m_Max > 0) return m_Max; + + double total = 0; + foreach (var sdata in data) + { + if (sdata.show) + total += sdata.GetData(dimension); + } + return total; + } + + /// <summary> + /// 获得系列的数据列表 + /// </summary> + /// <param name="dataZoom"></param> + /// <returns></returns> + public List<SerieData> GetDataList(DataZoom dataZoom = null) + { + if (dataZoom != null && dataZoom.enable && + (dataZoom.IsContainsXAxis(xAxisIndex) || dataZoom.IsContainsYAxis(yAxisIndex))) + { + SerieHelper.UpdateFilterData(this, dataZoom); + return m_FilterData; + } + else + { + return useSortData && context.sortedData.Count > 0 ? context.sortedData : m_Data; + } + } + + /// <summary> + /// 更新指定索引的维度Y数据 + /// </summary> + /// <param name="index"></param> + /// <param name="value"></param> + public bool UpdateYData(int index, double value) + { + UpdateData(index, 1, value); + return true; + } + + /// <summary> + /// 更新指定索引的维度X和维度Y的数据 + /// </summary> + /// <param name="index"></param> + /// <param name="xValue"></param> + /// <param name="yValue"></param> + public bool UpdateXYData(int index, float xValue, float yValue) + { + var flag1 = UpdateData(index, 0, xValue); + var flag2 = UpdateData(index, 1, yValue); + return flag1 || flag2; + } + + /// <summary> + /// 更新指定索引指定维数的数据 + /// </summary> + /// <param name="index">要更新数据的索引</param> + /// <param name="dimension">要更新数据的维数</param> + /// <param name="value">新的数据值</param> + public bool UpdateData(int index, int dimension, double value) + { + if (index >= 0 && index < m_Data.Count) + { + var animationOpen = animation.enable; + var animationDuration = animation.GetUpdateAnimationDuration(); + var flag = m_Data[index].UpdateData(dimension, value, animationOpen, animationDuration); + if (flag) + { + SetVerticesDirty(); + dataDirty = true; + } + return flag; + } + else + { + return false; + } + } + + /// <summary> + /// 更新指定索引的数据项数据列表 + /// </summary> + /// <param name="index"></param> + /// <param name="values"></param> + public bool UpdateData(int index, List<double> values) + { + if (index >= 0 && index < m_Data.Count && values != null) + { + var serieData = m_Data[index]; + var animationOpen = animation.enable; + var animationDuration = animation.GetUpdateAnimationDuration(); + for (int i = 0; i < values.Count; i++) + serieData.UpdateData(i, values[i], animationOpen, animationDuration); + SetVerticesDirty(); + dataDirty = true; + return true; + } + return false; + } + + public bool UpdateDataName(int index, string name) + { + if (index >= 0 && index < m_Data.Count) + { + var serieData = m_Data[index]; + serieData.name = name; + SetSerieNameDirty(); + if (serieData.labelObject != null) + { + serieData.labelObject.SetText(name == null ? "" : name); + } + return true; + } + return false; + } + + /// <summary> + /// 清除所有数据的高亮标志 + /// </summary> + public void ClearHighlight() + { + highlight = false; + foreach (var serieData in m_Data) + serieData.context.highlight = false; + } + + /// <summary> + /// 设置指定索引的数据为高亮状态 + /// </summary> + public void SetHighlight(int index, bool flag) + { + var serieData = GetSerieData(index); + if (serieData != null) + serieData.context.highlight = flag; + } + + public float GetBarWidth(float categoryWidth, int barCount = 0) + { + if (m_BarWidth == 0) + { + var width = ChartHelper.GetActualValue(0.6f, categoryWidth); + if (barCount == 0) + return width < 1 ? categoryWidth : width; + else + return width / barCount; + } + else + return ChartHelper.GetActualValue(m_BarWidth, categoryWidth); + } + + public bool IsIgnoreIndex(int index, int dimension = 1) + { + var serieData = GetSerieData(index); + if (serieData != null) + return IsIgnoreValue(serieData, dimension); + return false; + } + + public bool IsIgnoreValue(SerieData serieData, int dimension = 1) + { + return serieData.ignore || IsIgnoreValue(serieData.GetData(dimension)); + } + + public bool IsIgnoreValue(double value) + { + return m_Ignore && MathUtil.Approximately(value, m_IgnoreValue); + } + + public bool IsIgnorePoint(int index) + { + if (index >= 0 && index < dataCount) + { + return ChartHelper.IsIngore(data[index].context.position); + } + return false; + } + + public bool IsSerie<T>() where T : Serie + { + return this is T; + } + + public bool IsUseCoord<T>() where T : CoordSystem + { + return ChartCached.GetTypeName<T>().Equals(m_CoordSystem); + } + + public bool SetCoord<T>() where T : CoordSystem + { + if (GetType().IsDefined(typeof(CoordOptionsAttribute), false)) + { + var attribute = GetType().GetAttribute<CoordOptionsAttribute>(); + if (attribute.Contains<T>()) + { + m_CoordSystem = typeof(T).Name; + return true; + } + } + Debug.LogError("not support coord system:" + typeof(T)); + return false; + } + + /// <summary> + /// 是否为性能模式。性能模式下不绘制Symbol,不刷新Label,不单独设置数据项配置。 + /// </summary> + public bool IsPerformanceMode() + { + return m_Large && m_Data.Count > m_LargeThreshold; + } + + public bool IsLegendName(string legendName) + { + if (useDataNameForColor) + { + return IsSerieDataLegendName(legendName) || IsSerieLegendName(legendName); + } + else + { + return IsSerieLegendName(legendName); + } + } + + public bool IsSerieLegendName(string legendName) + { + return legendName.Equals(this.legendName); + } + + public bool IsSerieDataLegendName(string legendName) + { + foreach (var serieData in m_Data) + { + if (legendName.Equals(serieData.legendName)) + return true; + } + return false; + } + + /// <summary> + /// 启用或取消初始动画 + /// </summary> + public void AnimationEnable(bool flag) + { + if (animation.enable) animation.enable = flag; + SetVerticesDirty(); + } + + /// <summary> + /// 渐入动画 + /// </summary> + public void AnimationFadeIn() + { + if (animation.enable) animation.FadeIn(); + SetVerticesDirty(); + } + + /// <summary> + /// 渐出动画 + /// </summary> + public void AnimationFadeOut() + { + if (animation.enable) animation.FadeOut(); + SetVerticesDirty(); + } + + /// <summary> + /// 暂停动画 + /// </summary> + public void AnimationPause() + { + if (animation.enable) animation.Pause(); + SetVerticesDirty(); + } + + /// <summary> + /// 继续动画 + /// </summary> + public void AnimationResume() + { + if (animation.enable) animation.Resume(); + SetVerticesDirty(); + } + + /// <summary> + /// 重置动画 + /// </summary> + public void AnimationReset() + { + if (animation.enable) animation.Reset(); + SetVerticesDirty(); + } + + /// <summary> + /// 重置动画 + /// </summary> + public void AnimationRestart() + { + if (animation.enable) animation.Restart(); + SetVerticesDirty(); + } + + public int CompareTo(object obj) + { + return index.CompareTo((obj as Serie).index); + } + + public T Clone<T>() where T : Serie + { + var newSerie = Activator.CreateInstance<T>(); + SerieHelper.CopySerie(this, newSerie); + return newSerie; + } + + public Serie Clone() + { + var newSerie = Activator.CreateInstance(GetType()) as Serie; + SerieHelper.CopySerie(this, newSerie); + return newSerie; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Serie.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Serie.cs.meta new file mode 100644 index 0000000..5a02397 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/Serie.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: aa9c09045961a4ea9a34a098f099f2a1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieContext.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieContext.cs new file mode 100644 index 0000000..931513f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieContext.cs @@ -0,0 +1,109 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + public struct PointInfo + { + public Vector3 position; + public bool isIgnoreBreak; + + public PointInfo(Vector3 pos, bool ignore) + { + this.position = pos; + this.isIgnoreBreak = ignore; + } + } + + public class SerieContext + { + /// <summary> + /// 鼠标是否进入serie + /// </summary> + public bool pointerEnter; + /// <summary> + /// 鼠标当前指示的数据项索引(单个) + /// </summary> + public int pointerItemDataIndex = -1; + /// <summary> + /// 鼠标所在轴线上的数据项索引(可能有多个) + /// </summary> + public List<int> pointerAxisDataIndexs = new List<int>(); + public bool isTriggerByAxis = false; + + /// <summary> + /// 中心点 + /// </summary> + public Vector3 center; + /// <summary> + /// 线段终点 + /// </summary> + public Vector3 lineEndPostion; + public double lineEndValue; + /// <summary> + /// 内半径 + /// </summary> + public float insideRadius; + /// <summary> + /// 外半径 + /// </summary> + public float outsideRadius; + public float startAngle; + /// <summary> + /// 最大值 + /// </summary> + public double dataMax; + /// <summary> + /// 最小值 + /// </summary> + public double dataMin; + public double checkValue; + /// <summary> + /// 左下角坐标X + /// </summary> + public float x; + /// <summary> + /// 左下角坐标Y + /// </summary> + public float y; + /// <summary> + /// 宽 + /// </summary> + public float width; + /// <summary> + /// 高 + /// </summary> + public float height; + /// <summary> + /// 矩形区域 + /// </summary> + public Rect rect; + /// <summary> + /// 绘制顶点数 + /// </summary> + public int vertCount; + /// <summary> + /// 数据对应的位置坐标。 + /// </summary> + public List<Vector3> dataPoints = new List<Vector3>(); + /// <summary> + /// 数据对应的位置坐标是否忽略(忽略时连线是透明的),dataIgnore 和 dataPoints 一一对应。 + /// </summary> + public List<bool> dataIgnores = new List<bool>(); + /// <summary> + /// 排序后的数据 + /// </summary> + public List<SerieData> sortedData = new List<SerieData>(); + public List<SerieData> rootData = new List<SerieData>(); + /// <summary> + /// theme的颜色索引 + /// </summary> + public int colorIndex; + /// <summary> + /// 绘制点 + /// </summary> + public List<PointInfo> drawPoints = new List<PointInfo>(); + public SerieParams param = new SerieParams(); + public ChartLabel titleObject { get; set; } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieContext.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieContext.cs.meta new file mode 100644 index 0000000..0966877 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 87f333572a32a4cb39aa0a05ed97983a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieData.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieData.cs new file mode 100644 index 0000000..bfa99c1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieData.cs @@ -0,0 +1,565 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +using XUGL; + +namespace XCharts.Runtime +{ + /// <summary> + /// A data item of serie. + /// |系列中的一个数据项。可存储数据名和1-n维个数据。 + /// </summary> + [System.Serializable] + public class SerieData : ChildComponent + { + public static List<string> extraFieldList = new List<string>() + { + "m_Id", + "m_ParentId", + "m_Ignore", + "m_Selected", + "m_Radius" + }; + public static Dictionary<Type, string> extraComponentMap = new Dictionary<Type, string> + { { typeof(ItemStyle), "m_ItemStyles" }, + { typeof(LabelStyle), "m_Labels" }, + { typeof(LabelLine), "m_LabelLines" }, + { typeof(SerieSymbol), "m_Symbols" }, + { typeof(LineStyle), "m_LineStyles" }, + { typeof(AreaStyle), "m_AreaStyles" }, + { typeof(TitleStyle), "m_TitleStyles" }, + { typeof(EmphasisItemStyle), "m_EmphasisItemStyles" }, + { typeof(EmphasisLabelStyle), "m_EmphasisLabels" }, + { typeof(EmphasisLabelLine), "m_EmphasisLabelLines" }, + }; + + [SerializeField] private int m_Index; + [SerializeField] private string m_Name; + [SerializeField] private string m_Id; + [SerializeField] private string m_ParentId; + [SerializeField] private bool m_Ignore; + [SerializeField] private bool m_Selected; + [SerializeField] private float m_Radius; + [SerializeField][IgnoreDoc] private List<ItemStyle> m_ItemStyles = new List<ItemStyle>(); + [SerializeField][IgnoreDoc] private List<LabelStyle> m_Labels = new List<LabelStyle>(); + [SerializeField][IgnoreDoc] private List<LabelLine> m_LabelLines = new List<LabelLine>(); + [SerializeField][IgnoreDoc] private List<SerieSymbol> m_Symbols = new List<SerieSymbol>(); + [SerializeField][IgnoreDoc] private List<LineStyle> m_LineStyles = new List<LineStyle>(); + [SerializeField][IgnoreDoc] private List<AreaStyle> m_AreaStyles = new List<AreaStyle>(); + [SerializeField][IgnoreDoc] private List<TitleStyle> m_TitleStyles = new List<TitleStyle>(); + [SerializeField][IgnoreDoc] private List<EmphasisItemStyle> m_EmphasisItemStyles = new List<EmphasisItemStyle>(); + [SerializeField][IgnoreDoc] private List<EmphasisLabelStyle> m_EmphasisLabels = new List<EmphasisLabelStyle>(); + [SerializeField][IgnoreDoc] private List<EmphasisLabelLine> m_EmphasisLabelLines = new List<EmphasisLabelLine>(); + [SerializeField] private List<double> m_Data = new List<double>(); + + [NonSerialized] public SerieDataContext context = new SerieDataContext(); + [NonSerialized] public InteractData interact = new InteractData(); + + public ChartLabel labelObject { get; set; } + public ChartLabel titleObject { get; set; } + + private bool m_Show = true; + /// <summary> + /// the index of SerieData. + /// |数据项索引。 + /// </summary> + public override int index { get { return m_Index; } set { m_Index = value; } } + /// <summary> + /// the name of data item. + /// |数据项名称。 + /// </summary> + public string name { get { return m_Name; } set { m_Name = value; } } + /// <summary> + /// the id of data. + /// |数据项的唯一id。唯一id不是必须设置的。 + /// </summary> + public string id { get { return m_Id; } set { m_Id = value; } } + /// <summary> + /// the id of parent SerieData. + /// |父节点id。父节点id不是必须设置的。 + /// </summary> + public string parentId { get { return m_ParentId; } set { m_ParentId = value; } } + /// <summary> + /// 是否忽略数据。当为 true 时,数据不进行绘制。 + /// </summary> + public bool ignore + { + get { return m_Ignore; } + set { if (PropertyUtil.SetStruct(ref m_Ignore, value)) SetVerticesDirty(); } + } + /// <summary> + /// 自定义半径。可用在饼图中自定义某个数据项的半径。 + /// </summary> + public float radius { get { return m_Radius; } set { m_Radius = value; } } + /// <summary> + /// Whether the data item is selected. + /// |该数据项是否被选中。 + /// </summary> + public bool selected { get { return m_Selected; } set { m_Selected = value; } } + /// <summary> + /// 数据项图例名称。当数据项名称不为空时,图例名称即为系列名称;反之则为索引index。 + /// </summary> + /// <value></value> + public string legendName { get { return string.IsNullOrEmpty(name) ? ChartCached.IntToStr(index) : name; } } + + /// <summary> + /// 单个数据项的标签设置。 + /// </summary> + public LabelStyle labelStyle { get { return m_Labels.Count > 0 ? m_Labels[0] : null; } } + public LabelLine labelLine { get { return m_LabelLines.Count > 0 ? m_LabelLines[0] : null; } } + /// <summary> + /// 单个数据项的样式设置。 + /// </summary> + public ItemStyle itemStyle { get { return m_ItemStyles.Count > 0 ? m_ItemStyles[0] : null; } } + /// <summary> + /// 单个数据项的标记设置。 + /// </summary> + public SerieSymbol symbol { get { return m_Symbols.Count > 0 ? m_Symbols[0] : null; } } + public LineStyle lineStyle { get { return m_LineStyles.Count > 0 ? m_LineStyles[0] : null; } } + public AreaStyle areaStyle { get { return m_AreaStyles.Count > 0 ? m_AreaStyles[0] : null; } } + public TitleStyle titleStyle { get { return m_TitleStyles.Count > 0 ? m_TitleStyles[0] : null; } } + /// <summary> + /// 高亮的图形样式 + /// </summary> + public EmphasisItemStyle emphasisItemStyle { get { return m_EmphasisItemStyles.Count > 0 ? m_EmphasisItemStyles[0] : null; } } + /// <summary> + /// 高亮时的标签样式 + /// </summary> + public EmphasisLabelStyle emphasisLabel { get { return m_EmphasisLabels.Count > 0 ? m_EmphasisLabels[0] : null; } } + /// <summary> + /// 高亮时的标签引导线样式 + /// </summary> + public EmphasisLabelLine emphasisLabelLine { get { return m_EmphasisLabelLines.Count > 0 ? m_EmphasisLabelLines[0] : null; } } + + /// <summary> + /// An arbitrary dimension data list of data item. + /// |可指定任意维数的数值列表。 + /// </summary> + public List<double> data { get { return m_Data; } set { m_Data = value; } } + /// <summary> + /// [default:true] Whether the data item is showed. + /// |该数据项是否要显示。 + /// </summary> + public bool show { get { return m_Show; } set { m_Show = value; } } + + private List<double> m_PreviousData = new List<double>(); + private List<float> m_DataUpdateTime = new List<float>(); + private List<bool> m_DataUpdateFlag = new List<bool>(); + private List<Vector2> m_PolygonPoints = new List<Vector2>(); + + public override bool vertsDirty + { + get + { + return m_VertsDirty || + (labelLine != null && labelLine.vertsDirty) || + (itemStyle != null && itemStyle.vertsDirty) || + (symbol != null && symbol.vertsDirty) || + (lineStyle != null && lineStyle.vertsDirty) || + (areaStyle != null && areaStyle.vertsDirty) || + (emphasisItemStyle != null && emphasisItemStyle.vertsDirty); + } + } + public override bool componentDirty + { + get + { + return m_ComponentDirty || + (labelStyle != null && labelStyle.componentDirty) || + (labelLine != null && labelLine.componentDirty) || + (titleStyle != null && titleStyle.componentDirty) || + (emphasisLabel != null && emphasisLabel.componentDirty) || + (emphasisLabelLine != null && emphasisLabelLine.componentDirty); + } + } + + public override void ClearVerticesDirty() + { + base.ClearVerticesDirty(); + if (labelLine != null) labelLine.ClearVerticesDirty(); + if (itemStyle != null) itemStyle.ClearVerticesDirty(); + if (lineStyle != null) lineStyle.ClearVerticesDirty(); + if (areaStyle != null) areaStyle.ClearVerticesDirty(); + if (symbol != null) symbol.ClearVerticesDirty(); + if (emphasisItemStyle != null) emphasisItemStyle.ClearVerticesDirty(); + } + + public override void ClearComponentDirty() + { + base.ClearComponentDirty(); + if (labelLine != null) labelLine.ClearComponentDirty(); + if (itemStyle != null) itemStyle.ClearComponentDirty(); + if (lineStyle != null) lineStyle.ClearComponentDirty(); + if (areaStyle != null) areaStyle.ClearComponentDirty(); + if (symbol != null) symbol.ClearComponentDirty(); + if (emphasisLabel != null) emphasisLabel.ClearComponentDirty(); + if (emphasisLabelLine != null) emphasisLabelLine.ClearComponentDirty(); + } + + public void Reset() + { + index = 0; + m_Id = null; + m_ParentId = null; + labelObject = null; + m_Name = string.Empty; + m_Show = true; + context.Reset(); + interact.Reset(); + m_Data.Clear(); + m_PreviousData.Clear(); + m_DataUpdateTime.Clear(); + m_DataUpdateFlag.Clear(); + m_Labels.Clear(); + m_LabelLines.Clear(); + m_ItemStyles.Clear(); + m_Symbols.Clear(); + m_LineStyles.Clear(); + m_AreaStyles.Clear(); + m_TitleStyles.Clear(); + m_EmphasisItemStyles.Clear(); + m_EmphasisLabels.Clear(); + m_EmphasisLabelLines.Clear(); + } + + public T GetOrAddComponent<T>() where T : ChildComponent, ISerieDataComponent + { + return GetOrAddComponent(typeof(T)) as T; + } + + public ISerieDataComponent GetOrAddComponent(Type type) + { + if (type == typeof(ItemStyle)) + { + if (m_ItemStyles.Count == 0) + m_ItemStyles.Add(new ItemStyle() { show = true }); + return m_ItemStyles[0]; + } + else if (type == typeof(LabelStyle)) + { + if (m_Labels.Count == 0) + m_Labels.Add(new LabelStyle() { show = true }); + return m_Labels[0]; + } + else if (type == typeof(LabelLine)) + { + if (m_LabelLines.Count == 0) + m_LabelLines.Add(new LabelLine() { show = true }); + return m_LabelLines[0]; + } + else if (type == typeof(EmphasisItemStyle)) + { + if (m_EmphasisItemStyles.Count == 0) + m_EmphasisItemStyles.Add(new EmphasisItemStyle() { show = true }); + return m_EmphasisItemStyles[0]; + } + else if (type == typeof(EmphasisLabelStyle)) + { + if (m_EmphasisLabels.Count == 0) + m_EmphasisLabels.Add(new EmphasisLabelStyle() { show = true }); + return m_EmphasisLabels[0]; + } + else if (type == typeof(EmphasisLabelLine)) + { + if (m_EmphasisLabelLines.Count == 0) + m_EmphasisLabelLines.Add(new EmphasisLabelLine() { show = true }); + return m_EmphasisLabelLines[0]; + } + else if (type == typeof(SerieSymbol)) + { + if (m_Symbols.Count == 0) + m_Symbols.Add(new SerieSymbol() { show = true }); + return m_Symbols[0]; + } + else if (type == typeof(LineStyle)) + { + if (m_LineStyles.Count == 0) + m_LineStyles.Add(new LineStyle() { show = true }); + return m_LineStyles[0]; + } + else if (type == typeof(AreaStyle)) + { + if (m_AreaStyles.Count == 0) + m_AreaStyles.Add(new AreaStyle() { show = true }); + return m_AreaStyles[0]; + } + else if (type == typeof(TitleStyle)) + { + if (m_TitleStyles.Count == 0) + m_TitleStyles.Add(new TitleStyle() { show = true }); + return m_TitleStyles[0]; + } + else + { + throw new System.Exception("SerieData not support component:" + type); + } + } + + public void RemoveAllComponent() + { + m_ItemStyles.Clear(); + m_Labels.Clear(); + m_LabelLines.Clear(); + m_Symbols.Clear(); + m_EmphasisItemStyles.Clear(); + m_EmphasisLabels.Clear(); + m_EmphasisLabelLines.Clear(); + m_LineStyles.Clear(); + m_AreaStyles.Clear(); + m_TitleStyles.Clear(); + } + + public void RemoveComponent<T>() where T : ISerieDataComponent + { + RemoveComponent(typeof(T)); + } + + public void RemoveComponent(Type type) + { + if (type == typeof(ItemStyle)) + m_ItemStyles.Clear(); + else if (type == typeof(LabelStyle)) + m_Labels.Clear(); + else if (type == typeof(LabelLine)) + m_LabelLines.Clear(); + else if (type == typeof(EmphasisItemStyle)) + m_EmphasisItemStyles.Clear(); + else if (type == typeof(EmphasisLabelStyle)) + m_EmphasisLabels.Clear(); + else if (type == typeof(EmphasisLabelLine)) + m_EmphasisLabelLines.Clear(); + else if (type == typeof(SerieSymbol)) + m_Symbols.Clear(); + else if (type == typeof(LineStyle)) + m_LineStyles.Clear(); + else if (type == typeof(AreaStyle)) + m_AreaStyles.Clear(); + else if (type == typeof(TitleStyle)) + m_TitleStyles.Clear(); + else + throw new System.Exception("SerieData not support component:" + type); + } + public double GetData(int index, bool inverse = false) + { + if (index >= 0 && index < m_Data.Count) + { + return inverse ? -m_Data[index] : m_Data[index]; + } + else return 0; + } + + public double GetData(int index, double min, double max) + { + if (index >= 0 && index < m_Data.Count) + { + var value = m_Data[index]; + if (value < min) return min; + else if (value > max) return max; + else return value; + } + else return 0; + } + + public double GetPreviousData(int index, bool inverse = false) + { + if (index >= 0 && index < m_PreviousData.Count) + { + return inverse ? -m_PreviousData[index] : m_PreviousData[index]; + } + else return 0; + } + + public double GetFirstData(float animationDuration = 500f) + { + if (m_Data.Count > 0) return GetCurrData(0, animationDuration); + return 0; + } + + public double GetLastData() + { + if (m_Data.Count > 0) return m_Data[m_Data.Count - 1]; + return 0; + } + + public double GetCurrData(int index, float animationDuration = 500f, bool inverse = false) + { + return GetCurrData(index, animationDuration, inverse, 0, 0); + } + + public double GetCurrData(int index, float animationDuration, bool inverse, double min, double max) + { + if (index < m_DataUpdateFlag.Count && m_DataUpdateFlag[index] && animationDuration > 0) + { + var time = Time.time - m_DataUpdateTime[index]; + var total = animationDuration / 1000; + + var rate = time / total; + if (rate > 1) rate = 1; + if (rate < 1) + { + CheckLastData(); + var curr = MathUtil.Lerp(GetPreviousData(index), GetData(index), rate); + if (min != 0 || max != 0) + { + if (inverse) + { + var temp = min; + min = -max; + max = -temp; + } + var pre = m_PreviousData[index]; + if (pre < min) + { + m_PreviousData[index] = min; + curr = min; + } + else if (pre > max) + { + m_PreviousData[index] = max; + curr = max; + } + } + curr = inverse ? -curr : curr; + return curr; + } + else + { + m_DataUpdateFlag[index] = false; + return GetData(index, inverse); + } + } + else + { + return GetData(index, inverse); + } + } + + /// <summary> + /// the maxinum value. + /// |最大值。 + /// </summary> + public double GetMaxData(bool inverse = false) + { + if (m_Data.Count == 0) return 0; + var temp = double.MinValue; + for (int i = 0; i < m_Data.Count; i++) + { + var value = GetData(i, inverse); + if (value > temp) temp = value; + } + return temp; + } + + /// <summary> + /// the mininum value. + /// |最小值。 + /// </summary> + public double GetMinData(bool inverse = false) + { + if (m_Data.Count == 0) return 0; + var temp = double.MaxValue; + for (int i = 0; i < m_Data.Count; i++) + { + var value = GetData(i, inverse); + if (value < temp) temp = value; + } + return temp; + } + + public double GetTotalData() + { + var total = 0d; + foreach (var value in m_Data) + total += value; + return total; + } + + public bool UpdateData(int dimension, double value, bool updateAnimation, float animationDuration = 500f) + { + if (dimension >= 0 && dimension < data.Count) + { + CheckLastData(); + m_PreviousData[dimension] = GetCurrData(dimension, animationDuration); + //m_PreviousData[dimension] = data[dimension];; + m_DataUpdateTime[dimension] = Time.time; + m_DataUpdateFlag[dimension] = updateAnimation; + data[dimension] = value; + return true; + } + return false; + } + + public bool UpdateData(int dimension, double value) + { + if (dimension >= 0 && dimension < data.Count) + { + data[dimension] = value; + return true; + } + return false; + } + + private void CheckLastData() + { + if (m_PreviousData.Count != m_Data.Count) + { + m_PreviousData.Clear(); + m_DataUpdateTime.Clear(); + m_DataUpdateFlag.Clear(); + for (int i = 0; i < m_Data.Count; i++) + { + m_PreviousData.Add(m_Data[i]); + m_DataUpdateTime.Add(Time.time); + m_DataUpdateFlag.Add(false); + } + } + } + + public bool IsDataChanged() + { + for (int i = 0; i < m_DataUpdateFlag.Count; i++) + if (m_DataUpdateFlag[i]) return true; + return false; + } + + public float GetLabelWidth() + { + if (labelObject != null) return labelObject.GetTextWidth(); + else return 0; + } + + public float GetLabelHeight() + { + if (labelObject != null) return labelObject.GetTextHeight(); + return 0; + } + + public void SetLabelActive(bool flag) + { + if (labelObject != null) labelObject.SetActive(flag); + } + public void SetIconActive(bool flag) + { + if (labelObject != null) labelObject.SetActive(flag); + } + + public void SetPolygon(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4) + { + m_PolygonPoints.Clear(); + m_PolygonPoints.Add(p1); + m_PolygonPoints.Add(p2); + m_PolygonPoints.Add(p3); + m_PolygonPoints.Add(p4); + } + public void SetPolygon(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, Vector2 p5) + { + SetPolygon(p1, p2, p3, p4); + m_PolygonPoints.Add(p5); + } + + public bool IsInPolygon(Vector2 p) + { + return UGLHelper.IsPointInPolygon(p, m_PolygonPoints); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieData.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieData.cs.meta new file mode 100644 index 0000000..93cfdac --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dbf44007311214228976678a623479b9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieDataContext.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieDataContext.cs new file mode 100644 index 0000000..d2bdf49 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieDataContext.cs @@ -0,0 +1,84 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + public class SerieDataContext + { + public Vector3 labelPosition; + /// <summary> + /// 开始角度 + /// </summary> + public float startAngle; + /// <summary> + /// 结束角度 + /// </summary> + public float toAngle; + /// <summary> + /// 一半时的角度 + /// </summary> + public float halfAngle; + /// <summary> + /// 当前角度 + /// </summary> + public float currentAngle; + /// <summary> + /// 饼图数据项的内半径 + /// </summary> + public float insideRadius; + /// <summary> + /// 饼图数据项的偏移半径 + /// </summary> + public float offsetRadius; + public float outsideRadius; + public Vector3 position; + public List<Vector3> dataPoints = new List<Vector3>(); + public List<ChartLabel> dataLabels = new List<ChartLabel>(); + public List<SerieData> children = new List<SerieData>(); + /// <summary> + /// 绘制区域。 + /// </summary> + public Rect rect; + public Rect backgroundRect; + public Rect subRect; + public int level; + public SerieData parent; + public Color32 color; + public double area; + public float angle; + public Vector3 offsetCenter; + public Vector3 areaCenter; + public float stackHeight; + public bool isClip; + public bool canShowLabel = true; + public Image symbol; + /// <summary> + /// Whether the data item is highlighted. + /// |该数据项是否被高亮,一般由鼠标悬停或图例悬停触发高亮。 + /// </summary> + public bool highlight + { + get { return m_Highligth; } + set + { + m_Highligth = value; + } + } + private bool m_Highligth; + public bool selected; + + public void Reset() + { + canShowLabel = true; + highlight = false; + parent = null; + symbol = null; + rect = Rect.zero; + subRect = Rect.zero; + children.Clear(); + dataPoints.Clear(); + dataLabels.Clear(); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieDataContext.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieDataContext.cs.meta new file mode 100644 index 0000000..a202cbb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieDataContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6fa67a86e80b4456cbe76ef4b330f3fb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieHandler.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieHandler.cs new file mode 100644 index 0000000..8a2594b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieHandler.cs @@ -0,0 +1,579 @@ +using System.Collections.Generic; +using System.Text; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace XCharts.Runtime +{ + public abstract class SerieHandler + { + public BaseChart chart { get; internal set; } + public SerieHandlerAttribute attribute { get; internal set; } + public virtual int defaultDimension { get; internal set; } + + public virtual void InitComponent() { } + public virtual void RemoveComponent() { } + public virtual void CheckComponent(StringBuilder sb) { } + public virtual void Update() { } + public virtual void DrawBase(VertexHelper vh) { } + public virtual void DrawSerie(VertexHelper vh) { } + public virtual void DrawTop(VertexHelper vh) { } + public virtual void OnPointerClick(PointerEventData eventData) { } + public virtual void OnPointerDown(PointerEventData eventData) { } + public virtual void OnPointerUp(PointerEventData eventData) { } + public virtual void OnPointerEnter(PointerEventData eventData) { } + public virtual void OnPointerExit(PointerEventData eventData) { } + public virtual void OnDrag(PointerEventData eventData) { } + public virtual void OnBeginDrag(PointerEventData eventData) { } + public virtual void OnEndDrag(PointerEventData eventData) { } + public virtual void OnScroll(PointerEventData eventData) { } + public virtual void RefreshLabelNextFrame() { } + public virtual void RefreshLabelInternal() { } + public virtual void UpdateTooltipSerieParams(int dataIndex, bool showCategory, + string category, string marker, + string itemFormatter, string numericFormatter, + ref List<SerieParams> paramList, ref string title) { } + public virtual void OnLegendButtonClick(int index, string legendName, bool show) { } + public virtual void OnLegendButtonEnter(int index, string legendName) { } + public virtual void OnLegendButtonExit(int index, string legendName) { } + internal abstract void SetSerie(Serie serie); + } + + public abstract class SerieHandler<T> : SerieHandler where T : Serie + { + private static readonly string s_SerieLabelObjectName = "label"; + private static readonly string s_SerieTitleObjectName = "title"; + private static readonly string s_SerieRootObjectName = "serie"; + private static readonly string s_SerieEndLabelObjectName = "end_label"; + protected GameObject m_SerieRoot; + protected GameObject m_SerieLabelRoot; + protected bool m_InitedLabel; + protected bool m_NeedInitComponent; + protected bool m_RefreshLabel; + protected bool m_LastCheckContextFlag = false; + protected bool m_LegendEnter = false; + protected int m_LegendEnterIndex; + protected ChartLabel m_EndLabel; + + public T serie { get; internal set; } + public GameObject labelObject { get { return m_SerieLabelRoot; } } + + internal override void SetSerie(Serie serie) + { + this.serie = (T) serie; + this.serie.context.param.serieType = typeof(T); + m_NeedInitComponent = true; + AnimationStyleHelper.UpdateSerieAnimation(serie); + } + + public override void Update() + { + if (m_NeedInitComponent) + { + m_NeedInitComponent = false; + InitComponent(); + } + if (m_RefreshLabel) + { + m_RefreshLabel = false; + RefreshLabelInternal(); + RefreshEndLabelInternal(); + } + if (serie.dataDirty) + { + SeriesHelper.UpdateSerieNameList(chart, ref chart.m_LegendRealShowName); + serie.OnDataUpdate(); + serie.dataDirty = false; + } + if (serie.label != null && (serie.labelDirty || serie.label.componentDirty)) + { + serie.labelDirty = false; + serie.label.ClearComponentDirty(); + InitSerieLabel(); + InitSerieEndLabel(); + } + if (serie.endLabel != null && serie.endLabel.componentDirty) + { + serie.endLabel.ClearComponentDirty(); + InitSerieEndLabel(); + } + if (serie.titleStyle != null && (serie.titleDirty || serie.titleStyle.componentDirty)) + { + serie.titleDirty = false; + serie.titleStyle.ClearComponentDirty(); + InitSerieTitle(); + } + if (serie.nameDirty) + { + foreach (var component in chart.components) + { + if (component is Legend) + component.SetAllDirty(); + } + chart.RefreshChart(); + serie.ClearSerieNameDirty(); + } + if (serie.vertsDirty) + { + chart.RefreshPainter(serie); + serie.ResetInteract(); + serie.ClearVerticesDirty(); + } + } + + public override void RefreshLabelNextFrame() + { + m_RefreshLabel = true; + } + + public override void InitComponent() + { + m_InitedLabel = false; + InitRoot(); + InitSerieLabel(); + InitSerieTitle(); + InitSerieEndLabel(); + } + + public override void RemoveComponent() + { + ChartHelper.SetActive(m_SerieRoot, false); + } + + public override void OnLegendButtonClick(int index, string legendName, bool show) + { + if (serie.useDataNameForColor && serie.IsSerieDataLegendName(legendName)) + { + LegendHelper.CheckDataShow(serie, legendName, show); + chart.UpdateLegendColor(legendName, show); + chart.RefreshPainter(serie); + } + else if (serie.IsLegendName(legendName)) + { + chart.SetSerieActive(serie, show); + chart.RefreshPainter(serie); + } + } + + public override void OnLegendButtonEnter(int index, string legendName) + { + if (serie.useDataNameForColor && serie.IsSerieDataLegendName(legendName)) + { + LegendHelper.CheckDataHighlighted(serie, legendName, true); + chart.RefreshPainter(serie); + } + else if (serie.IsLegendName(legendName)) + { + m_LegendEnter = true; + chart.RefreshPainter(serie); + } + } + + public override void OnLegendButtonExit(int index, string legendName) + { + if (serie.useDataNameForColor && serie.IsSerieDataLegendName(legendName)) + { + LegendHelper.CheckDataHighlighted(serie, legendName, false); + chart.RefreshPainter(serie); + } + else if (serie.IsLegendName(legendName)) + { + m_LegendEnter = false; + chart.RefreshPainter(serie); + } + } + + private void InitRoot() + { + if (m_SerieRoot != null) + { + var rect = ChartHelper.GetOrAddComponent<RectTransform>(m_SerieRoot); + rect.localPosition = Vector3.zero; + rect.sizeDelta = chart.chartSizeDelta; + rect.anchorMin = chart.chartMinAnchor; + rect.anchorMax = chart.chartMaxAnchor; + rect.pivot = chart.chartPivot; + return; + } + var objName = s_SerieRootObjectName + "_" + serie.index; + m_SerieRoot = ChartHelper.AddObject(objName, chart.transform, chart.chartMinAnchor, + chart.chartMaxAnchor, chart.chartPivot, chart.chartSizeDelta); + m_SerieRoot.hideFlags = chart.chartHideFlags; + ChartHelper.SetActive(m_SerieRoot, true); + ChartHelper.HideAllObject(m_SerieRoot); + } + + private void InitSerieLabel() + { + InitRoot(); + m_SerieLabelRoot = ChartHelper.AddObject(s_SerieLabelObjectName, m_SerieRoot.transform, + chart.chartMinAnchor, chart.chartMaxAnchor, chart.chartPivot, chart.chartSizeDelta); + m_SerieLabelRoot.hideFlags = chart.chartHideFlags; + SerieLabelPool.ReleaseAll(m_SerieLabelRoot.transform); + //ChartHelper.DestroyAllChildren(m_SerieLabelRoot.transform); + int count = 0; + SerieHelper.UpdateCenter(serie, chart.chartPosition, chart.chartWidth, chart.chartHeight); + for (int j = 0; j < serie.data.Count; j++) + { + var serieData = serie.data[j]; + serieData.index = count; + serieData.labelObject = null; + if (AddSerieLabel(m_SerieLabelRoot, serieData, ref count)) + { + m_InitedLabel = true; + count++; + } + } + RefreshLabelInternal(); + } + + protected bool AddSerieLabel(GameObject serieLabelRoot, SerieData serieData, ref int count) + { + if (serieData == null) + return false; + if (serieLabelRoot == null) + return false; + if (serie.IsPerformanceMode()) + return false; + + if (count == -1) count = serie.dataCount; + var serieLabel = SerieHelper.GetSerieLabel(serie, serieData); + if (serieLabel == null) + { + serieLabel = SerieHelper.GetSerieEmphasisLabel(serie, serieData); + if (serieLabel == null || !serieLabel.show) + return false; + } + + var dataAutoColor = GetSerieDataAutoColor(serieData); + serieData.context.dataLabels.Clear(); + if (serie.multiDimensionLabel) + { + for (int i = 0; i < serieData.data.Count; i++) + { + var textName = string.Format("{0}_{1}_{2}_{3}", s_SerieLabelObjectName, serie.index, serieData.index, i); + var label = ChartHelper.AddChartLabel(textName, serieLabelRoot.transform, serieLabel, chart.theme.common, + "", dataAutoColor, TextAnchor.MiddleCenter); + label.SetActive(serieLabel.show); + serieData.context.dataLabels.Add(label); + } + } + else + { + var textName = ChartCached.GetSerieLabelName(s_SerieLabelObjectName, serie.index, serieData.index); + var label = ChartHelper.AddChartLabel(textName, serieLabelRoot.transform, serieLabel, chart.theme.common, + "", dataAutoColor, TextAnchor.MiddleCenter); + label.SetActive(serieLabel.show); + serieData.labelObject = label; + } + + if (serieData.context.children.Count > 0) + { + foreach (var childSerieData in serieData.context.children) + { + AddSerieLabel(serieLabelRoot, childSerieData, ref count); + count++; + } + } + return true; + } + + private void InitSerieEndLabel() + { + if (serie.endLabel == null) + { + if (m_EndLabel != null) + { + m_EndLabel.SetActive(false); + m_EndLabel = null; + } + return; + } + InitRoot(); + var dataAutoColor = (Color) chart.GetLegendRealShowNameColor(serie.legendName); + m_EndLabel = ChartHelper.AddChartLabel(s_SerieEndLabelObjectName, m_SerieRoot.transform, serie.endLabel, + chart.theme.common, "", dataAutoColor, TextAnchor.MiddleLeft); + m_EndLabel.SetActive(serie.endLabel.show); + RefreshEndLabelInternal(); + } + + private void InitSerieTitle() + { + InitRoot(); + var serieTitleRoot = ChartHelper.AddObject(s_SerieTitleObjectName, m_SerieRoot.transform, + chart.chartMinAnchor, chart.chartMaxAnchor, chart.chartPivot, chart.chartSizeDelta); + serieTitleRoot.hideFlags = chart.chartHideFlags; + SerieLabelPool.ReleaseAll(serieTitleRoot.transform); + ChartHelper.RemoveComponent<Text>(serieTitleRoot); + + SerieHelper.UpdateCenter(serie, chart.chartPosition, chart.chartWidth, chart.chartHeight); + + if (serie.titleJustForSerie) + { + var titleStyle = SerieHelper.GetTitleStyle(serie, null); + if (titleStyle != null) + { + var color = chart.GetItemColor(serie, null); + var content = string.Empty; + if (string.IsNullOrEmpty(titleStyle.formatter)) + { + content = serie.serieName; + } + else + { + content = titleStyle.formatter; + FormatterHelper.ReplaceContent(ref content, 0, titleStyle.numericFormatter, serie, chart); + } + var label = ChartHelper.AddChartLabel("title_" + 0, serieTitleRoot.transform, titleStyle, chart.theme.common, + content, color, TextAnchor.MiddleCenter); + serie.context.titleObject = label; + label.SetActive(titleStyle.show); + var labelPosition = GetSerieDataTitlePosition(null, titleStyle); + var offset = titleStyle.GetOffset(serie.context.insideRadius); + label.SetPosition(labelPosition + offset); + } + } + else + { + for (int i = 0; i < serie.dataCount; i++) + { + var serieData = serie.data[i]; + var titleStyle = SerieHelper.GetTitleStyle(serie, serieData); + if (titleStyle == null) continue; + var color = chart.GetItemColor(serie, serieData); + var content = string.Empty; + if (string.IsNullOrEmpty(titleStyle.formatter)) + { + content = serieData.name; + } + else + { + content = titleStyle.formatter; + FormatterHelper.ReplaceContent(ref content, 0, titleStyle.numericFormatter, serie, chart); + } + FormatterHelper.ReplaceContent(ref content, i, titleStyle.numericFormatter, serie, chart); + var label = ChartHelper.AddChartLabel("title_" + i, serieTitleRoot.transform, titleStyle, chart.theme.common, + content, color, TextAnchor.MiddleCenter); + serieData.titleObject = label; + label.SetActive(titleStyle.show); + var labelPosition = GetSerieDataTitlePosition(serieData, titleStyle); + var offset = titleStyle.GetOffset(serie.context.insideRadius); + label.SetPosition(labelPosition + offset); + } + } + } + + public override void RefreshLabelInternal() + { + if (!m_InitedLabel) + return; + + var dataChangeDuration = serie.animation.GetUpdateAnimationDuration(); + foreach (var serieData in serie.data) + { + if (serieData.labelObject == null && serieData.context.dataLabels.Count <= 0) + continue; + var serieLabel = SerieHelper.GetSerieLabel(serie, serieData); + var emphasisLabel = SerieHelper.GetSerieEmphasisLabel(serie, serieData); + var isHighlight = (serieData.context.highlight && emphasisLabel != null && emphasisLabel.show); + var isIgnore = serie.IsIgnoreIndex(serieData.index, defaultDimension); + var currLabel = isHighlight && emphasisLabel != null ? emphasisLabel : serieLabel; + if (serie.show && + currLabel != null && + (currLabel.show || isHighlight) && + serieData.context.canShowLabel && + !isIgnore) + { + if (serie.multiDimensionLabel) + { + var total = serieData.GetTotalData(); + var color = chart.GetItemColor(serie, serieData); + for (int i = 0; i < serieData.context.dataLabels.Count; i++) + { + if (i >= serieData.context.dataPoints.Count) continue; + var labelObject = serieData.context.dataLabels[i]; + var value = serieData.GetCurrData(i, dataChangeDuration); + var content = string.IsNullOrEmpty(currLabel.formatter) ? + ChartCached.NumberToStr(value, serieLabel.numericFormatter) : + SerieLabelHelper.GetFormatterContent(serie, serieData, value, total, + currLabel, color); + var offset = GetSerieDataLabelOffset(serieData, currLabel); + labelObject.SetActive(!isIgnore); + labelObject.SetText(content); + labelObject.SetPosition(serieData.context.dataPoints[i] + offset); + labelObject.UpdateIcon(currLabel.icon); + if (currLabel.textStyle.autoColor) + { + var dataAutoColor = GetSerieDataAutoColor(serieData); + if (!ChartHelper.IsClearColor(dataAutoColor)) + labelObject.SetTextColor(dataAutoColor); + } + } + } + else + { + var value = serieData.GetCurrData(defaultDimension, dataChangeDuration); + var total = serie.GetDataTotal(defaultDimension, serieData); + var color = chart.GetItemColor(serie, serieData); + var content = string.IsNullOrEmpty(currLabel.formatter) ? + ChartCached.NumberToStr(value, serieLabel.numericFormatter) : + SerieLabelHelper.GetFormatterContent(serie, serieData, value, total, + currLabel, color); + serieData.SetLabelActive(!isIgnore); + serieData.labelObject.UpdateIcon(currLabel.icon); + serieData.labelObject.SetText(content); + UpdateLabelPosition(serieData, currLabel); + if (currLabel.textStyle.autoColor) + { + var dataAutoColor = GetSerieDataAutoColor(serieData); + if (!ChartHelper.IsClearColor(dataAutoColor)) + serieData.labelObject.SetTextColor(dataAutoColor); + } + } + } + else + { + serieData.SetLabelActive(false); + foreach (var labelObject in serieData.context.dataLabels) + { + labelObject.SetActive(false); + } + } + } + } + + public virtual void RefreshEndLabelInternal() + { + if (m_EndLabel == null) + return; + var endLabelStyle = serie.endLabel; + if (endLabelStyle == null) + return; + var dataCount = serie.context.drawPoints.Count; + var active = endLabelStyle.show && dataCount > 0; + m_EndLabel.SetActive(active); + if (active) + { + var value = serie.context.lineEndValue; + var content = SerieLabelHelper.GetFormatterContent(serie, null, value, 0, + endLabelStyle, Color.clear); + m_EndLabel.SetText(content); + m_EndLabel.SetPosition(serie.context.lineEndPostion + endLabelStyle.offset); + } + m_EndLabel.isAnimationEnd = serie.animation.IsFinish(); + } + + private void UpdateLabelPosition(SerieData serieData, LabelStyle currLabel) + { + var labelPosition = GetSerieDataLabelPosition(serieData, currLabel); + var offset = GetSerieDataLabelOffset(serieData, currLabel); + serieData.labelObject.SetPosition(labelPosition + offset); + } + + public virtual Vector3 GetSerieDataLabelPosition(SerieData serieData, LabelStyle label) + { + return ChartHelper.IsZeroVector(serieData.context.labelPosition) ? + serieData.context.position : + serieData.context.labelPosition; + } + + public virtual Vector3 GetSerieDataLabelOffset(SerieData serieData, LabelStyle label) + { + return label.GetOffset(serie.context.insideRadius); + } + + public virtual Vector3 GetSerieDataTitlePosition(SerieData serieData, TitleStyle titleStyle) + { + return serieData.context.position; + } + + public virtual Color GetSerieDataAutoColor(SerieData serieData) + { + var colorIndex = serie.useDataNameForColor ? serieData.index : serie.index; + return (Color) SerieHelper.GetItemColor(serie, serieData, chart.theme, colorIndex, false, false); + } + + protected void UpdateCoordSerieParams(ref List<SerieParams> paramList, ref string title, + int dataIndex, bool showCategory, string category, string marker, + string itemFormatter, string numericFormatter) + { + if (dataIndex < 0) + dataIndex = serie.context.pointerItemDataIndex; + + if (dataIndex < 0) + return; + + var serieData = serie.GetSerieData(dataIndex); + if (serieData == null) + return; + + itemFormatter = SerieHelper.GetItemFormatter(serie, serieData, itemFormatter); + if (TooltipHelper.IsIgnoreItemFormatter(itemFormatter)) + return; + + var param = serie.context.param; + param.serieName = serie.serieName; + param.serieIndex = serie.index; + param.category = category; + param.dimension = 1; + param.serieData = serieData; + param.dataCount = serie.dataCount; + param.value = serieData.GetData(1); + param.total = serie.yTotal; + param.color = SerieHelper.GetItemColor(serie, serieData, chart.theme, serie.context.colorIndex, false); + param.marker = SerieHelper.GetItemMarker(serie, serieData, marker); + param.itemFormatter = itemFormatter; + param.numericFormatter = SerieHelper.GetNumericFormatter(serie, serieData, numericFormatter); + param.columns.Clear(); + + param.columns.Add(param.marker); + param.columns.Add(showCategory ? category : serie.serieName); + param.columns.Add(ChartCached.NumberToStr(param.value, param.numericFormatter)); + + paramList.Add(param); + } + + protected void UpdateItemSerieParams(ref List<SerieParams> paramList, ref string title, + int dataIndex, string category, string marker, + string itemFormatter, string numericFormatter, int dimension = 1) + { + if (dataIndex < 0) + dataIndex = serie.context.pointerItemDataIndex; + + if (dataIndex < 0) + return; + + var serieData = serie.GetSerieData(dataIndex); + if (serieData == null) + return; + + itemFormatter = SerieHelper.GetItemFormatter(serie, serieData, itemFormatter); + if (TooltipHelper.IsIgnoreItemFormatter(itemFormatter)) + return; + + var colorIndex = chart.GetLegendRealShowNameIndex(serieData.name); + + var param = serie.context.param; + param.serieName = serie.serieName; + param.serieIndex = serie.index; + param.category = category; + param.dimension = dimension; + param.serieData = serieData; + param.dataCount = serie.dataCount; + param.value = serieData.GetData(param.dimension); + param.total = SerieHelper.GetMaxData(serie, dimension); + param.color = SerieHelper.GetItemColor(serie, serieData, chart.theme, colorIndex, false); + param.marker = SerieHelper.GetItemMarker(serie, serieData, marker); + param.itemFormatter = itemFormatter; + param.numericFormatter = SerieHelper.GetNumericFormatter(serie, serieData, numericFormatter); + param.columns.Clear(); + + param.columns.Add(param.marker); + param.columns.Add(serieData.name); + param.columns.Add(ChartCached.NumberToStr(param.value, param.numericFormatter)); + + paramList.Add(param); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieHandler.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieHandler.cs.meta new file mode 100644 index 0000000..87f9fd8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7f2bc0a6a80a84eae9c87842c954bc32 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieParams.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieParams.cs new file mode 100644 index 0000000..d2948a8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieParams.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + public class SerieParams + { + public Type serieType; + public int serieIndex; + public string serieName; + public string marker = "●"; + public string category; + public int dimension; + public SerieData serieData; + public int dataCount; + public double value; + public double total; + public Color32 color; + public string itemFormatter; + public string numericFormatter; + public List<string> columns = new List<string>(); + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieParams.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieParams.cs.meta new file mode 100644 index 0000000..f8f138f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Serie/SerieParams.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c46808eb5842743c5b02d03c4c503228 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme.meta new file mode 100644 index 0000000..6987280 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b421f1dec4b2943d19640698c2504c6b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/AxisTheme.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/AxisTheme.cs new file mode 100644 index 0000000..be4496b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/AxisTheme.cs @@ -0,0 +1,247 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +#if dUI_TextMeshPro +using TMPro; +#endif + +namespace XCharts.Runtime +{ + [Serializable] + public class BaseAxisTheme : ComponentTheme + { + [SerializeField] protected LineStyle.Type m_LineType = LineStyle.Type.Solid; + [SerializeField] protected float m_LineWidth = 1f; + [SerializeField] protected float m_LineLength = 0f; + [SerializeField] protected Color32 m_LineColor; + [SerializeField] protected LineStyle.Type m_SplitLineType = LineStyle.Type.Dashed; + [SerializeField] protected float m_SplitLineWidth = 1f; + [SerializeField] protected float m_SplitLineLength = 0f; + [SerializeField] protected Color32 m_SplitLineColor; + [SerializeField] protected float m_TickWidth = 1f; + [SerializeField] protected float m_TickLength = 5f; + [SerializeField] protected Color32 m_TickColor; + [SerializeField] protected List<Color32> m_SplitAreaColors = new List<Color32>(); + + /// <summary> + /// the type of line. + /// |坐标轴线类型。 + /// </summary> + public LineStyle.Type lineType + { + get { return m_LineType; } + set { if (PropertyUtil.SetStruct(ref m_LineType, value)) SetVerticesDirty(); } + } + /// <summary> + /// the width of line. + /// |坐标轴线宽。 + /// </summary> + public float lineWidth + { + get { return m_LineWidth; } + set { if (PropertyUtil.SetStruct(ref m_LineWidth, value)) SetVerticesDirty(); } + } + /// <summary> + /// the length of line. + /// |坐标轴线长。 + /// </summary> + public float lineLength + { + get { return m_LineLength; } + set { if (PropertyUtil.SetStruct(ref m_LineLength, value)) SetVerticesDirty(); } + } + /// <summary> + /// the color of line. + /// |坐标轴线颜色。 + /// </summary> + public Color32 lineColor + { + get { return m_LineColor; } + set { if (PropertyUtil.SetColor(ref m_LineColor, value)) SetVerticesDirty(); } + } + /// <summary> + /// the type of split line. + /// |分割线线类型。 + /// </summary> + public LineStyle.Type splitLineType + { + get { return m_SplitLineType; } + set { if (PropertyUtil.SetStruct(ref m_SplitLineType, value)) SetVerticesDirty(); } + } + /// <summary> + /// the width of split line. + /// |分割线线宽。 + /// </summary> + public float splitLineWidth + { + get { return m_SplitLineWidth; } + set { if (PropertyUtil.SetStruct(ref m_SplitLineWidth, value)) SetVerticesDirty(); } + } + /// <summary> + /// the length of split line. + /// |分割线线长。 + /// </summary> + public float splitLineLength + { + get { return m_SplitLineLength; } + set { if (PropertyUtil.SetStruct(ref m_SplitLineLength, value)) SetVerticesDirty(); } + } + /// <summary> + /// the color of line. + /// |分割线线颜色。 + /// </summary> + public Color32 splitLineColor + { + get { return m_SplitLineColor; } + set { if (PropertyUtil.SetColor(ref m_SplitLineColor, value)) SetVerticesDirty(); } + } + /// <summary> + /// the length of tick. + /// |刻度线线长。 + /// </summary> + public float tickLength + { + get { return m_TickLength; } + set { if (PropertyUtil.SetStruct(ref m_TickLength, value)) SetVerticesDirty(); } + } + /// <summary> + /// the width of tick. + /// |刻度线线宽。 + /// </summary> + public float tickWidth + { + get { return m_TickWidth; } + set { if (PropertyUtil.SetStruct(ref m_TickWidth, value)) SetVerticesDirty(); } + } + /// <summary> + /// the color of tick. + /// |坐标轴线颜色。 + /// </summary> + public Color32 tickColor + { + get { return m_TickColor; } + set { if (PropertyUtil.SetColor(ref m_TickColor, value)) SetVerticesDirty(); } + } + + public List<Color32> splitAreaColors + { + get { return m_SplitAreaColors; } + set { if (value != null) { m_SplitAreaColors = value; SetVerticesDirty(); } } + } + + public BaseAxisTheme(ThemeType theme) : base(theme) + { + m_FontSize = XCSettings.fontSizeLv4; + m_LineType = XCSettings.axisLineType; + m_LineWidth = XCSettings.axisLineWidth; + m_LineLength = 0; + m_SplitLineType = XCSettings.axisSplitLineType; + m_SplitLineWidth = XCSettings.axisSplitLineWidth; + m_SplitLineLength = 0; + m_TickWidth = XCSettings.axisTickWidth; + m_TickLength = XCSettings.axisTickLength; + switch (theme) + { + case ThemeType.Default: + m_LineColor = ColorUtil.GetColor("#514D4D"); + m_TickColor = ColorUtil.GetColor("#514D4D"); + m_SplitLineColor = ColorUtil.GetColor("#51515120"); + m_SplitAreaColors = new List<Color32> + { + new Color32(250, 250, 250, 77), + new Color32(200, 200, 200, 77) + }; + break; + case ThemeType.Light: + m_LineColor = ColorUtil.GetColor("#514D4D"); + m_TickColor = ColorUtil.GetColor("#514D4D"); + m_SplitLineColor = ColorUtil.GetColor("#51515120"); + m_SplitAreaColors = new List<Color32> + { + new Color32(250, 250, 250, 77), + new Color32(200, 200, 200, 77) + }; + break; + case ThemeType.Dark: + m_LineColor = ColorUtil.GetColor("#B9B8CE"); + m_TickColor = ColorUtil.GetColor("#B9B8CE"); + m_SplitLineColor = ColorUtil.GetColor("#484753"); + m_SplitAreaColors = new List<Color32> + { + new Color32(255, 255, 255, (byte) (0.02f * 255)), + new Color32(255, 255, 255, (byte) (0.05f * 255)) + }; + break; + } + } + + public void Copy(BaseAxisTheme theme) + { + base.Copy(theme); + m_LineType = theme.lineType; + m_LineWidth = theme.lineWidth; + m_LineLength = theme.lineLength; + m_LineColor = theme.lineColor; + m_SplitLineType = theme.splitLineType; + m_SplitLineWidth = theme.splitLineWidth; + m_SplitLineLength = theme.splitLineLength; + m_SplitLineColor = theme.splitLineColor; + m_TickWidth = theme.tickWidth; + m_TickLength = theme.tickLength; + m_TickColor = theme.tickColor; + ChartHelper.CopyList(m_SplitAreaColors, theme.splitAreaColors); + } + } + + [Serializable] + public class AxisTheme : BaseAxisTheme + { + public AxisTheme(ThemeType theme) : base(theme) + { } + } + + [Serializable] + public class RadiusAxisTheme : BaseAxisTheme + { + public RadiusAxisTheme(ThemeType theme) : base(theme) + { } + } + + [Serializable] + public class AngleAxisTheme : BaseAxisTheme + { + public AngleAxisTheme(ThemeType theme) : base(theme) + { } + } + + [Serializable] + public class PolarAxisTheme : BaseAxisTheme + { + public PolarAxisTheme(ThemeType theme) : base(theme) + { } + } + + [Serializable] + public class RadarAxisTheme : BaseAxisTheme + { + public RadarAxisTheme(ThemeType theme) : base(theme) + { + m_SplitAreaColors.Clear(); + switch (theme) + { + case ThemeType.Dark: + m_SplitAreaColors.Add(ThemeStyle.GetColor("#6f6f6f")); + m_SplitAreaColors.Add(ThemeStyle.GetColor("#606060")); + break; + case ThemeType.Default: + m_SplitAreaColors.Add(ThemeStyle.GetColor("#f6f6f6")); + m_SplitAreaColors.Add(ThemeStyle.GetColor("#e7e7e7")); + break; + case ThemeType.Light: + m_SplitAreaColors.Add(ThemeStyle.GetColor("#f6f6f6")); + m_SplitAreaColors.Add(ThemeStyle.GetColor("#e7e7e7")); + break; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/AxisTheme.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/AxisTheme.cs.meta new file mode 100644 index 0000000..cc88ab9 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/AxisTheme.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: aefd22e76a6f642c9985b1a29e389858 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/ComponentTheme.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/ComponentTheme.cs new file mode 100644 index 0000000..91141cf --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/ComponentTheme.cs @@ -0,0 +1,102 @@ +using System; +using UnityEngine; +#if dUI_TextMeshPro +using TMPro; +#endif + +namespace XCharts.Runtime +{ + [Serializable] + public class ComponentTheme : ChildComponent + { + [SerializeField] protected Font m_Font; + [SerializeField] protected Color m_TextColor; + [SerializeField] protected Color m_TextBackgroundColor; + [SerializeField] protected int m_FontSize = 18; +#if dUI_TextMeshPro + [SerializeField] protected TMP_FontAsset m_TMPFont; +#endif + + /// <summary> + /// the font of text. + /// |字体。 + /// </summary> + public Font font + { + get { return m_Font; } + set { m_Font = value; SetComponentDirty(); } + } + /// <summary> + /// the color of text. + /// |文本颜色。 + /// </summary> + public Color textColor + { + get { return m_TextColor; } + set { if (PropertyUtil.SetColor(ref m_TextColor, value)) SetComponentDirty(); } + } + /// <summary> + /// the color of text. + /// |文本颜色。 + /// </summary> + public Color textBackgroundColor + { + get { return m_TextBackgroundColor; } + set { if (PropertyUtil.SetColor(ref m_TextBackgroundColor, value)) SetComponentDirty(); } + } + /// <summary> + /// the font size of text. + /// |文本字体大小。 + /// </summary> + public int fontSize + { + get { return m_FontSize; } + set { if (PropertyUtil.SetStruct(ref m_FontSize, value)) SetComponentDirty(); } + } + +#if dUI_TextMeshPro + /// <summary> + /// the font of chart text。 + /// |字体。 + /// </summary> + public TMP_FontAsset tmpFont + { + get { return m_TMPFont; } + set { m_TMPFont = value; SetComponentDirty(); } + } +#endif + + public ComponentTheme(ThemeType theme) + { + m_FontSize = XCSettings.fontSizeLv3; + switch (theme) + { + case ThemeType.Default: + m_TextColor = ColorUtil.GetColor("#514D4D"); + break; + case ThemeType.Light: + m_TextColor = ColorUtil.GetColor("#514D4D"); + break; + case ThemeType.Dark: + m_TextColor = ColorUtil.GetColor("#B9B8CE"); + break; + } + } + + public virtual void Copy(ComponentTheme theme) + { + m_Font = theme.font; + m_FontSize = theme.fontSize; + m_TextColor = theme.textColor; + m_TextBackgroundColor = theme.textBackgroundColor; +#if dUI_TextMeshPro + m_TMPFont = theme.tmpFont; +#endif + } + + public virtual void Reset(ComponentTheme defaultTheme) + { + Copy(defaultTheme); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/ComponentTheme.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/ComponentTheme.cs.meta new file mode 100644 index 0000000..e401a88 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/ComponentTheme.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e78d1c80572324fc0b5cc5c935a2e34c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/DataZoomTheme.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/DataZoomTheme.cs new file mode 100644 index 0000000..0c4a886 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/DataZoomTheme.cs @@ -0,0 +1,125 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + [Serializable] + public class DataZoomTheme : ComponentTheme + { + [SerializeField] protected float m_BorderWidth; + [SerializeField] protected float m_DataLineWidth; + [SerializeField] protected Color32 m_FillerColor; + [SerializeField] protected Color32 m_BorderColor; + [SerializeField] protected Color32 m_DataLineColor; + [SerializeField] protected Color32 m_DataAreaColor; + [SerializeField] protected Color32 m_BackgroundColor; + + /// <summary> + /// the width of border line. + /// |边框线宽。 + /// </summary> + public float borderWidth + { + get { return m_BorderWidth; } + set { if (PropertyUtil.SetStruct(ref m_BorderWidth, value)) SetVerticesDirty(); } + } + /// <summary> + /// the width of data line. + /// |数据阴影线宽。 + /// </summary> + public float dataLineWidth + { + get { return m_DataLineWidth; } + set { if (PropertyUtil.SetStruct(ref m_DataLineWidth, value)) SetVerticesDirty(); } + } + /// <summary> + /// the color of dataZoom data area. + /// |数据区域颜色。 + /// </summary> + public Color32 fillerColor + { + get { return m_FillerColor; } + set { if (PropertyUtil.SetColor(ref m_FillerColor, value)) SetVerticesDirty(); } + } + + /// <summary> + /// the color of dataZoom border. + /// |边框颜色。 + /// </summary> + public Color32 borderColor + { + get { return m_BorderColor; } + set { if (PropertyUtil.SetColor(ref m_BorderColor, value)) SetComponentDirty(); } + } + /// <summary> + /// the color of data area line. + /// |数据阴影的线条颜色。 + /// </summary> + public Color32 dataLineColor + { + get { return m_DataLineColor; } + set { if (PropertyUtil.SetColor(ref m_DataLineColor, value)) SetComponentDirty(); } + } + /// <summary> + /// the color of data area line. + /// |数据阴影的填充颜色。 + /// </summary> + public Color32 dataAreaColor + { + get { return m_DataAreaColor; } + set { if (PropertyUtil.SetColor(ref m_DataAreaColor, value)) SetComponentDirty(); } + } + /// <summary> + /// the background color of datazoom. + /// |背景颜色。 + /// </summary> + public Color32 backgroundColor + { + get { return m_BackgroundColor; } + set { if (PropertyUtil.SetColor(ref m_BackgroundColor, value)) SetComponentDirty(); } + } + + public DataZoomTheme(ThemeType theme) : base(theme) + { + m_BorderWidth = XCSettings.dataZoomBorderWidth; + m_DataLineWidth = XCSettings.dataZoomDataLineWidth; + m_BackgroundColor = Color.clear; + switch (theme) + { + case ThemeType.Default: + m_TextColor = ColorUtil.GetColor("#333"); + m_FillerColor = new Color32(167, 183, 204, 110); + m_BorderColor = ColorUtil.GetColor("#ddd"); + m_DataLineColor = ColorUtil.GetColor("#2f4554"); + m_DataAreaColor = new Color32(47, 69, 84, 85); + break; + case ThemeType.Light: + m_TextColor = ColorUtil.GetColor("#333"); + m_FillerColor = new Color32(167, 183, 204, 110); + m_BorderColor = ColorUtil.GetColor("#ddd"); + m_DataLineColor = ColorUtil.GetColor("#2f4554"); + m_DataAreaColor = new Color32(47, 69, 84, 85); + break; + case ThemeType.Dark: + m_TextColor = ColorUtil.GetColor("#B9B8CE"); + m_FillerColor = new Color32(135, 163, 206, (byte) (0.2f * 255)); + m_BorderColor = ColorUtil.GetColor("#71708A"); + m_DataLineColor = ColorUtil.GetColor("#71708A"); + m_DataAreaColor = ColorUtil.GetColor("#71708A"); + break; + } + } + + public void Copy(DataZoomTheme theme) + { + base.Copy(theme); + m_BorderWidth = theme.borderWidth; + m_DataLineWidth = theme.dataLineWidth; + m_FillerColor = theme.fillerColor; + m_BorderColor = theme.borderColor; + m_DataLineColor = theme.dataLineColor; + m_DataAreaColor = theme.dataAreaColor; + m_BackgroundColor = theme.backgroundColor; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/DataZoomTheme.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/DataZoomTheme.cs.meta new file mode 100644 index 0000000..9545b7f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/DataZoomTheme.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ba535ef75742b4825b3cc2be4df6716f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/LegendTheme.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/LegendTheme.cs new file mode 100644 index 0000000..259abd4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/LegendTheme.cs @@ -0,0 +1,36 @@ +using System; +using UnityEngine; +#if dUI_TextMeshPro +using TMPro; +#endif + +namespace XCharts.Runtime +{ + [Serializable] + public class LegendTheme : ComponentTheme + { + [SerializeField] protected Color m_UnableColor; + + /// <summary> + /// the color of text. + /// |文本颜色。 + /// </summary> + public Color unableColor + { + get { return m_UnableColor; } + set { if (PropertyUtil.SetColor(ref m_UnableColor, value)) SetComponentDirty(); } + } + + public void Copy(LegendTheme theme) + { + base.Copy(theme); + m_UnableColor = theme.unableColor; + } + + public LegendTheme(ThemeType theme) : base(theme) + { + m_UnableColor = ColorUtil.GetColor("#cccccc"); + + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/LegendTheme.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/LegendTheme.cs.meta new file mode 100644 index 0000000..d544c65 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/LegendTheme.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a86fb06a6b71c4735b87769ee0708293 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/SerieTheme.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/SerieTheme.cs new file mode 100644 index 0000000..f22e0c6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/SerieTheme.cs @@ -0,0 +1,152 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + [Serializable] + public class SerieTheme : ChildComponent + { + [SerializeField] protected float m_LineWidth; + [SerializeField] protected float m_LineSymbolSize; + [SerializeField] protected float m_ScatterSymbolSize; + [SerializeField] protected float m_PieTooltipExtraRadius; + [SerializeField] protected float m_SelectedRate = 1.3f; + [SerializeField] protected float m_PieSelectedOffset; + [SerializeField] protected Color32 m_CandlestickColor = new Color32(235, 84, 84, 255); + [SerializeField] protected Color32 m_CandlestickColor0 = new Color32(71, 178, 98, 255); + [SerializeField] protected float m_CandlestickBorderWidth = 1; + [SerializeField] protected Color32 m_CandlestickBorderColor = new Color32(235, 84, 84, 255); + [SerializeField] protected Color32 m_CandlestickBorderColor0 = new Color32(71, 178, 98, 255); + + /// <summary> + /// the color of text. + /// |文本颜色。 + /// </summary> + public float lineWidth + { + get { return m_LineWidth; } + set { if (PropertyUtil.SetStruct(ref m_LineWidth, value)) SetVerticesDirty(); } + } + public float lineSymbolSize + { + get { return m_LineSymbolSize; } + set { if (PropertyUtil.SetStruct(ref m_LineSymbolSize, value)) SetVerticesDirty(); } + } + public float lineSymbolSelectedSize { get { return lineSymbolSize * selectedRate; } } + public float scatterSymbolSize + { + get { return m_ScatterSymbolSize; } + set { if (PropertyUtil.SetStruct(ref m_ScatterSymbolSize, value)) SetVerticesDirty(); } + } + public float scatterSymbolSelectedSize { get { return scatterSymbolSize * selectedRate; } } + public float selectedRate + { + get { return m_SelectedRate; } + set { if (PropertyUtil.SetStruct(ref m_SelectedRate, value)) SetVerticesDirty(); } + } + + /// <summary> + /// 饼图鼠标移到高亮时的额外半径 + /// </summary> + public float pieTooltipExtraRadius + { + get { return m_PieTooltipExtraRadius; } + set { if (PropertyUtil.SetStruct(ref m_PieTooltipExtraRadius, value < 0 ? 0f : value)) SetVerticesDirty(); } + } + /// <summary> + /// 饼图选中时的中心点偏移 + /// </summary> + public float pieSelectedOffset + { + get { return m_PieSelectedOffset; } + set { if (PropertyUtil.SetStruct(ref m_PieSelectedOffset, value < 0 ? 0f : value)) SetVerticesDirty(); } + } + /// <summary> + /// K线图阳线(涨)填充色 + /// </summary> + public Color32 candlestickColor + { + get { return m_CandlestickColor; } + set { if (PropertyUtil.SetColor(ref m_CandlestickColor, value)) SetVerticesDirty(); } + } + /// <summary> + /// K线图阴线(跌)填充色 + /// </summary> + public Color32 candlestickColor0 + { + get { return m_CandlestickColor0; } + set { if (PropertyUtil.SetColor(ref m_CandlestickColor0, value)) SetVerticesDirty(); } + } + /// <summary> + /// K线图阳线(跌)边框色 + /// </summary> + public Color32 candlestickBorderColor + { + get { return m_CandlestickBorderColor; } + set { if (PropertyUtil.SetColor(ref m_CandlestickBorderColor, value)) SetVerticesDirty(); } + } + /// <summary> + /// K线图阴线(跌)边框色 + /// </summary> + public Color32 candlestickBorderColor0 + { + get { return m_CandlestickBorderColor0; } + set { if (PropertyUtil.SetColor(ref m_CandlestickBorderColor0, value)) SetVerticesDirty(); } + } + + /// <summary> + /// K线图边框宽度 + /// </summary> + public float candlestickBorderWidth + { + get { return m_CandlestickBorderWidth; } + set { if (PropertyUtil.SetStruct(ref m_CandlestickBorderWidth, value < 0 ? 0f : value)) SetVerticesDirty(); } + } + + public void Copy(SerieTheme theme) + { + m_LineWidth = theme.lineWidth; + m_LineSymbolSize = theme.lineSymbolSize; + m_ScatterSymbolSize = theme.scatterSymbolSize; + selectedRate = theme.selectedRate; + m_PieTooltipExtraRadius = theme.pieTooltipExtraRadius; + m_PieSelectedOffset = theme.pieSelectedOffset; + m_CandlestickColor = theme.candlestickColor; + m_CandlestickColor0 = theme.candlestickColor0; + m_CandlestickBorderColor = theme.candlestickBorderColor; + m_CandlestickBorderColor0 = theme.candlestickBorderColor0; + m_CandlestickBorderWidth = theme.candlestickBorderWidth; + } + + public SerieTheme(ThemeType theme) + { + m_LineWidth = XCSettings.serieLineWidth; + m_LineSymbolSize = XCSettings.serieLineSymbolSize; + m_ScatterSymbolSize = XCSettings.serieScatterSymbolSize; + m_PieTooltipExtraRadius = XCSettings.pieTooltipExtraRadius; + m_PieSelectedOffset = XCSettings.pieSelectedOffset; + m_CandlestickBorderWidth = XCSettings.serieCandlestickBorderWidth; + switch (theme) + { + case ThemeType.Default: + m_CandlestickColor = ColorUtil.GetColor("#eb5454"); + m_CandlestickColor0 = ColorUtil.GetColor("#47b262"); + m_CandlestickBorderColor = ColorUtil.GetColor("#eb5454"); + m_CandlestickBorderColor0 = ColorUtil.GetColor("#47b262"); + break; + case ThemeType.Light: + m_CandlestickColor = ColorUtil.GetColor("#eb5454"); + m_CandlestickColor0 = ColorUtil.GetColor("#47b262"); + m_CandlestickBorderColor = ColorUtil.GetColor("#eb5454"); + m_CandlestickBorderColor0 = ColorUtil.GetColor("#47b262"); + break; + case ThemeType.Dark: + m_CandlestickColor = ColorUtil.GetColor("#f64e56"); + m_CandlestickColor0 = ColorUtil.GetColor("#54ea92"); + m_CandlestickBorderColor = ColorUtil.GetColor("#f64e56"); + m_CandlestickBorderColor0 = ColorUtil.GetColor("#54ea92"); + break; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/SerieTheme.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/SerieTheme.cs.meta new file mode 100644 index 0000000..6649238 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/SerieTheme.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9030b0e4afb164967b4991247947b195 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/SubTitleTheme.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/SubTitleTheme.cs new file mode 100644 index 0000000..7e0ae93 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/SubTitleTheme.cs @@ -0,0 +1,25 @@ +using System; + +namespace XCharts.Runtime +{ + [Serializable] + public class SubTitleTheme : ComponentTheme + { + public SubTitleTheme(ThemeType theme) : base(theme) + { + m_FontSize = XCSettings.fontSizeLv2; + switch (theme) + { + case ThemeType.Default: + m_TextColor = ColorUtil.GetColor("#969696"); + break; + case ThemeType.Light: + m_TextColor = ColorUtil.GetColor("#969696"); + break; + case ThemeType.Dark: + m_TextColor = ColorUtil.GetColor("#B9B8CE"); + break; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/SubTitleTheme.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/SubTitleTheme.cs.meta new file mode 100644 index 0000000..c296a35 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/SubTitleTheme.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c642293f2d6674cbb85d1f081b9d89e8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/Theme.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/Theme.cs new file mode 100644 index 0000000..bd6e4bc --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/Theme.cs @@ -0,0 +1,407 @@ +using System; +using System.Collections.Generic; +using System.Text; +using UnityEngine; +#if dUI_TextMeshPro +using TMPro; +#endif + +namespace XCharts.Runtime +{ + /// <summary> + /// Theme. + /// |主题相关配置。 + /// </summary> + [Serializable] + public class Theme : ScriptableObject + { + [SerializeField] private ThemeType m_ThemeType = ThemeType.Default; + [SerializeField] private string m_ThemeName = ThemeType.Default.ToString(); + [SerializeField] private Font m_Font; +#if dUI_TextMeshPro + [SerializeField] private TMP_FontAsset m_TMPFont; +#endif + + [SerializeField] private Color32 m_ContrastColor; + [SerializeField] private Color32 m_BackgroundColor; + +#if UNITY_2020_2 + [NonReorderable] +#endif + [SerializeField] private List<Color32> m_ColorPalette = new List<Color32>(13); + + [SerializeField] private ComponentTheme m_Common; + [SerializeField] private TitleTheme m_Title; + [SerializeField] private SubTitleTheme m_SubTitle; + [SerializeField] private LegendTheme m_Legend; + [SerializeField] private AxisTheme m_Axis; + [SerializeField] private TooltipTheme m_Tooltip; + [SerializeField] private DataZoomTheme m_DataZoom; + [SerializeField] private VisualMapTheme m_VisualMap; + [SerializeField] private SerieTheme m_Serie; + + /// <summary> + /// the theme of chart. + /// |主题类型。 + /// </summary> + public ThemeType themeType + { + get { return m_ThemeType; } + set { PropertyUtil.SetStruct(ref m_ThemeType, value); } + } + /// <summary> + /// the name of theme. + /// |主题名称。 + /// </summary> + public string themeName + { + get { return m_ThemeName; } + set { PropertyUtil.SetClass(ref m_ThemeName, value); } + } + + /// <summary> + /// the contrast color of chart. + /// |对比色。 + /// </summary> + public Color32 contrastColor + { + get { return m_ContrastColor; } + set { PropertyUtil.SetColor(ref m_ContrastColor, value); } + } + /// <summary> + /// the background color of chart. + /// |背景颜色。 + /// </summary> + public Color32 backgroundColor + { + get { return m_BackgroundColor; } + set { PropertyUtil.SetColor(ref m_BackgroundColor, value); } + } + + /// <summary> + /// The color list of palette. If no color is set in series, the colors would be adopted sequentially and circularly from this list as the colors of series. + /// |调色盘颜色列表。如果系列没有设置颜色,则会依次循环从该列表中取颜色作为系列颜色。 + /// </summary> + public List<Color32> colorPalette { get { return m_ColorPalette; } set { m_ColorPalette = value; } } + public ComponentTheme common { get { return m_Common; } set { m_Common = value; } } + public TitleTheme title { get { return m_Title; } set { m_Title = value; } } + public SubTitleTheme subTitle { get { return m_SubTitle; } set { m_SubTitle = value; } } + public LegendTheme legend { get { return m_Legend; } set { m_Legend = value; } } + public AxisTheme axis { get { return m_Axis; } set { m_Axis = value; } } + public TooltipTheme tooltip { get { return m_Tooltip; } set { m_Tooltip = value; } } + public DataZoomTheme dataZoom { get { return m_DataZoom; } set { m_DataZoom = value; } } + public VisualMapTheme visualMap { get { return m_VisualMap; } set { m_VisualMap = value; } } + public SerieTheme serie { get { return m_Serie; } set { m_Serie = value; } } +#if dUI_TextMeshPro + /// <summary> + /// the font of chart text。 + /// |主题字体。 + /// </summary> + public TMP_FontAsset tmpFont + { + get { return m_TMPFont; } + set + { + m_TMPFont = value; + SyncTMPFontToSubComponent(); + } + } +#endif + /// <summary> + /// the font of chart text。 + /// |主题字体。 + /// </summary> + public Font font + { + get { return m_Font; } + set + { + m_Font = value; + SyncFontToSubComponent(); + } + } + + // void OnEnable() + // { + // } + + // void OnDisable() + // { + // } + + public void SetDefaultFont() + { +#if dUI_TextMeshPro + tmpFont = XCSettings.tmpFont; + SyncTMPFontToSubComponent(); +#else + font = XCSettings.font; + SyncFontToSubComponent(); +#endif + } + + /// <summary> + /// Gets the color of the specified index from the palette. + /// |获得调色盘对应系列索引的颜色值。 + /// </summary> + /// <param name="index">编号索引</param> + /// <returns>the color,or Color.clear when failed.颜色值,失败时返回Color.clear</returns> + public Color32 GetColor(int index) + { + if (index < 0) index = 0; + var newIndex = index < m_ColorPalette.Count ? index : index % m_ColorPalette.Count; + if (newIndex < m_ColorPalette.Count) + return m_ColorPalette[newIndex]; + else return Color.clear; + } + + public void CheckWarning(StringBuilder sb) + { +#if dUI_TextMeshPro + if (m_TMPFont == null) + { + sb.AppendFormat("warning:theme->tmpFont is null\n"); + } +#else + if (m_Font == null) + { + sb.AppendFormat("warning:theme->font is null\n"); + } +#endif + if (m_ColorPalette.Count == 0) + { + sb.AppendFormat("warning:theme->colorPalette is empty\n"); + } + for (int i = 0; i < m_ColorPalette.Count; i++) + { + if (!ChartHelper.IsClearColor(m_ColorPalette[i]) && m_ColorPalette[i].a == 0) + sb.AppendFormat("warning:theme->colorPalette[{0}] alpha = 0\n", i); + } + } + + Dictionary<int, string> _colorDic = new Dictionary<int, string>(); + /// <summary> + /// Gets the hexadecimal color string of the specified index from the palette. + /// |获得指定索引的十六进制颜色值字符串。 + /// </summary> + /// <param name="index"></param> + /// <returns></returns> + public string GetColorStr(int index) + { + if (index < 0) + { + index = 0; + } + index = index % m_ColorPalette.Count; + if (_colorDic.ContainsKey(index)) return _colorDic[index]; + else + { + _colorDic[index] = ColorUtility.ToHtmlStringRGBA(GetColor(index)); + return _colorDic[index]; + } + } + + public bool CopyTheme(ThemeType theme) + { + switch (theme) + { + case ThemeType.Dark: + ResetToDarkTheme(this); + return true; + case ThemeType.Default: + ResetToDefaultTheme(this); + return true; + } + return false; + } + + /// <summary> + /// copy all configurations from theme. + /// |复制主题的所有配置。 + /// </summary> + /// <param name="theme"></param> + public void CopyTheme(Theme theme) + { + m_ThemeType = theme.themeType; + m_ThemeName = theme.themeName; +#if dUI_TextMeshPro + tmpFont = theme.tmpFont; +#endif + font = theme.font; + m_BackgroundColor = theme.backgroundColor; + m_Common.Copy(theme.common); + m_Legend.Copy(theme.legend); + m_Title.Copy(theme.title); + m_SubTitle.Copy(theme.subTitle); + m_Axis.Copy(theme.axis); + m_Tooltip.Copy(theme.tooltip); + m_DataZoom.Copy(theme.dataZoom); + m_VisualMap.Copy(theme.visualMap); + m_Serie.Copy(theme.serie); + ChartHelper.CopyList(m_ColorPalette, theme.colorPalette); + } + + /// <summary> + /// Clear all custom configurations. + /// |重置,清除所有自定义配置。 + /// </summary> + public bool ResetTheme() + { + switch (m_ThemeType) + { + case ThemeType.Default: + ResetToDefaultTheme(this); + return true; + case ThemeType.Dark: + ResetToDarkTheme(this); + return true; + case ThemeType.Custom: + return false; + } + return false; + } + + /// <summary> + /// 克隆主题。 + /// </summary> + /// <returns></returns> + public Theme CloneTheme() + { + var theme = ScriptableObject.CreateInstance<Theme>(); + InitChartComponentTheme(theme); + theme.CopyTheme(this); + return theme; + } + + /// <summary> + /// default theme. + /// |默认主题。 + /// </summary> + /// <value></value> + public static void ResetToDefaultTheme(Theme theme) + { + theme.themeType = ThemeType.Default; + theme.themeName = ThemeType.Default.ToString(); + theme.backgroundColor = new Color32(255, 255, 255, 255); + theme.colorPalette = new List<Color32> + { + ColorUtil.GetColor("#5470c6"), + ColorUtil.GetColor("#91cc75"), + ColorUtil.GetColor("#fac858"), + ColorUtil.GetColor("#ee6666"), + ColorUtil.GetColor("#73c0de"), + ColorUtil.GetColor("#3ba272"), + ColorUtil.GetColor("#fc8452"), + ColorUtil.GetColor("#9a60b4"), + ColorUtil.GetColor("#ea7ccc"), + + }; + InitChartComponentTheme(theme); + } + + /// <summary> + /// dark theme. + /// |暗主题。 + /// </summary> + /// <value></value> + public static void ResetToDarkTheme(Theme theme) + { + theme.themeType = ThemeType.Dark; + theme.themeName = ThemeType.Dark.ToString(); + theme.backgroundColor = ColorUtil.GetColor("#100C2A"); + theme.colorPalette = new List<Color32> + { + ColorUtil.GetColor("#4992ff"), + ColorUtil.GetColor("#7cffb2"), + ColorUtil.GetColor("#fddd60"), + ColorUtil.GetColor("#ff6e76"), + ColorUtil.GetColor("#58d9f9"), + ColorUtil.GetColor("#05c091"), + ColorUtil.GetColor("#ff8a45"), + ColorUtil.GetColor("#8d48e3"), + ColorUtil.GetColor("#dd79ff"), + }; + InitChartComponentTheme(theme); + } + + public static Theme EmptyTheme + { + get + { + var theme = ScriptableObject.CreateInstance<Theme>(); + theme.themeType = ThemeType.Custom; + theme.themeName = ThemeType.Custom.ToString(); + theme.backgroundColor = Color.clear; + theme.colorPalette = new List<Color32>(); + InitChartComponentTheme(theme); + return theme; + } + } + + public void SyncFontToSubComponent() + { + common.font = font; + title.font = font; + subTitle.font = font; + legend.font = font; + axis.font = font; + tooltip.font = font; + dataZoom.font = font; + visualMap.font = font; + } + +#if dUI_TextMeshPro + public void SyncTMPFontToSubComponent() + { + common.tmpFont = tmpFont; + title.tmpFont = tmpFont; + subTitle.tmpFont = tmpFont; + legend.tmpFont = tmpFont; + axis.tmpFont = tmpFont; + tooltip.tmpFont = tmpFont; + dataZoom.tmpFont = tmpFont; + visualMap.tmpFont = tmpFont; + } +#endif + + private static void InitChartComponentTheme(Theme theme) + { + theme.common = new ComponentTheme(theme.themeType); + theme.title = new TitleTheme(theme.themeType); + theme.subTitle = new SubTitleTheme(theme.themeType); + theme.legend = new LegendTheme(theme.themeType); + theme.axis = new AxisTheme(theme.themeType); + theme.tooltip = new TooltipTheme(theme.themeType); + theme.dataZoom = new DataZoomTheme(theme.themeType); + theme.visualMap = new VisualMapTheme(theme.themeType); + theme.serie = new SerieTheme(theme.themeType); + theme.SetDefaultFont(); + } + + /// <summary> + /// Convert the html string to color. + /// |将字符串颜色值转成Color。 + /// </summary> + /// <param name="hexColorStr"></param> + /// <returns></returns> + public static Color32 GetColor(string hexColorStr) + { + Color color; + ColorUtility.TryParseHtmlString(hexColorStr, out color); + return (Color32) color; + } + + public void SetColorPalette(List<string> hexColorStringList) + { + m_ColorPalette.Clear(); + foreach (var hexColor in hexColorStringList) + m_ColorPalette.Add(ColorUtil.GetColor(hexColor)); + + } + + public override int GetHashCode() + { + return base.GetHashCode(); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/Theme.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/Theme.cs.meta new file mode 100644 index 0000000..15f4828 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/Theme.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6c59330ca0f4443b69f06b890a44f32e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/ThemeStyle.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/ThemeStyle.cs new file mode 100644 index 0000000..aaa616e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/ThemeStyle.cs @@ -0,0 +1,236 @@ +using System; +using System.Collections.Generic; +using System.Text; +using UnityEngine; +#if dUI_TextMeshPro +using TMPro; +#endif + +namespace XCharts.Runtime +{ + /// <summary> + /// 主题 + /// </summary> + public enum ThemeType + { + /// <summary> + /// 默认主题。 + /// </summary> + Default, + /// <summary> + /// 亮主题。 + /// </summary> + Light, + /// <summary> + /// 暗主题。 + /// </summary> + Dark, + /// <summary> + /// 自定义主题。 + /// </summary> + Custom, + } + + [Serializable] + /// <summary> + /// Theme. + /// |主题相关配置。 + /// </summary> + public class ThemeStyle : ChildComponent + { + [SerializeField] private bool m_Show = true; + [SerializeField] private Theme m_SharedTheme; + [SerializeField] private bool m_TransparentBackground = false; + [SerializeField] private bool m_EnableCustomTheme = false; + [SerializeField] private Font m_CustomFont; + [SerializeField] private Color32 m_CustomBackgroundColor; +#if UNITY_2020_2 + [NonReorderable] +#endif + [SerializeField] private List<Color32> m_CustomColorPalette = new List<Color32>(13); + + public bool show { get { return m_Show; } } + /// <summary> + /// the theme of chart. + /// |主题类型。 + /// </summary> + public ThemeType themeType + { + get { return sharedTheme.themeType; } + } + public string themeName + { + get { return sharedTheme.themeName; } + } + + public Theme sharedTheme + { + get { return m_SharedTheme; } + set { m_SharedTheme = value; SetAllDirty(); } + } + + /// <summary> + /// the contrast color of chart. + /// |对比色。 + /// </summary> + public Color32 contrastColor + { + get { return sharedTheme.contrastColor; } + } + /// <summary> + /// the background color of chart. + /// |背景颜色。 + /// </summary> + public Color32 backgroundColor + { + get + { + if (m_TransparentBackground) return ColorUtil.clearColor32; + else return m_EnableCustomTheme ? m_CustomBackgroundColor : sharedTheme.backgroundColor; + } + } + /// <summary> + /// Whether the background color is transparent. When true, the background color is not drawn. + /// |是否透明背景颜色。当设置为true时,不绘制背景颜色。 + /// </summary> + public bool transparentBackground + { + get { return m_TransparentBackground; } + set { m_TransparentBackground = value; SetAllDirty(); } + } + /// <summary> + /// Whether to customize theme colors. When set to true, + /// you can use 'sync color to custom' to synchronize the theme color to the custom color. It can also be set manually. + /// |是否自定义主题颜色。当设置为true时,可以用‘sync color to custom’同步主题的颜色到自定义颜色。也可以手动设置。 + /// </summary> + /// <value></value> + public bool enableCustomTheme + { + get { return m_EnableCustomTheme; } + set { m_EnableCustomTheme = value; _colorDic.Clear(); SetAllDirty(); } + } + /// <summary> + /// the custom background color of chart. + /// |自定义的背景颜色。 + /// </summary> + public Color32 customBackgroundColor + { + get { return m_CustomBackgroundColor; } + set { m_CustomBackgroundColor = value; SetAllDirty(); } + } + + /// <summary> + /// The color list of palette. If no color is set in series, the colors would be adopted sequentially and circularly from this list as the colors of series. + /// |调色盘颜色列表。如果系列没有设置颜色,则会依次循环从该列表中取颜色作为系列颜色。 + /// </summary> + public List<Color32> colorPalette + { + get { return m_EnableCustomTheme ? m_CustomColorPalette : sharedTheme.colorPalette; } + } + public List<Color32> customColorPalette { get { return m_CustomColorPalette; } set { m_CustomColorPalette = value; SetVerticesDirty(); } } + public ComponentTheme common { get { return sharedTheme.common; } } + public TitleTheme title { get { return sharedTheme.title; } } + public SubTitleTheme subTitle { get { return sharedTheme.subTitle; } } + public LegendTheme legend { get { return sharedTheme.legend; } } + public AxisTheme axis { get { return sharedTheme.axis; } } + public TooltipTheme tooltip { get { return sharedTheme.tooltip; } } + public DataZoomTheme dataZoom { get { return sharedTheme.dataZoom; } } + public VisualMapTheme visualMap { get { return sharedTheme.visualMap; } } + public SerieTheme serie { get { return sharedTheme.serie; } } + + /// <summary> + /// Gets the color of the specified index from the palette. + /// |获得调色盘对应系列索引的颜色值。 + /// </summary> + /// <param name="index">编号索引</param> + /// <returns>the color,or Color.clear when failed.颜色值,失败时返回Color.clear</returns> + public Color32 GetColor(int index) + { + if (colorPalette.Count <= 0) return Color.clear; + if (index < 0) index = 0; + var newIndex = index < colorPalette.Count ? index : index % colorPalette.Count; + if (newIndex < colorPalette.Count) + return colorPalette[newIndex]; + else return Color.clear; + } + + public Color32 GetBackgroundColor(Background background) + { + if (background != null && background.show && !background.autoColor) + return background.imageColor; + else + return backgroundColor; + } + + public void SyncSharedThemeColorToCustom() + { + m_CustomBackgroundColor = sharedTheme.backgroundColor; + m_CustomColorPalette.Clear(); + foreach (var color in sharedTheme.colorPalette) + { + m_CustomColorPalette.Add(color); + } + SetAllDirty(); + } + + public void CheckWarning(StringBuilder sb) + { +#if dUI_TextMeshPro + if (sharedTheme.tmpFont == null) + { + sb.AppendFormat("warning:theme->tmpFont is null\n"); + } +#else + if (sharedTheme.font == null) + { + sb.AppendFormat("warning:theme->font is null\n"); + } +#endif + if (sharedTheme.colorPalette.Count == 0) + { + sb.AppendFormat("warning:theme->colorPalette is empty\n"); + } + for (int i = 0; i < sharedTheme.colorPalette.Count; i++) + { + if (!ChartHelper.IsClearColor(sharedTheme.colorPalette[i]) && sharedTheme.colorPalette[i].a == 0) + sb.AppendFormat("warning:theme->colorPalette[{0}] alpha = 0\n", i); + } + } + + Dictionary<int, string> _colorDic = new Dictionary<int, string>(); + /// <summary> + /// Gets the hexadecimal color string of the specified index from the palette. + /// |获得指定索引的十六进制颜色值字符串。 + /// </summary> + /// <param name="index"></param> + /// <returns></returns> + public string GetColorStr(int index) + { + if (index < 0) + { + index = 0; + } + index = index % colorPalette.Count; + if (_colorDic.ContainsKey(index)) return _colorDic[index]; + else + { + _colorDic[index] = ColorUtility.ToHtmlStringRGBA(GetColor(index)); + return _colorDic[index]; + } + } + + /// <summary> + /// Convert the html string to color. + /// |将字符串颜色值转成Color。 + /// </summary> + /// <param name="hexColorStr"></param> + /// <returns></returns> + public static Color32 GetColor(string hexColorStr) + { + Color color; + ColorUtility.TryParseHtmlString(hexColorStr, out color); + return (Color32) color; + } + + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/ThemeStyle.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/ThemeStyle.cs.meta new file mode 100644 index 0000000..ba89424 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/ThemeStyle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bd363d1f78f9d47dab079b1376cf0680 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/TitleTheme.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/TitleTheme.cs new file mode 100644 index 0000000..e675cf5 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/TitleTheme.cs @@ -0,0 +1,24 @@ +using System; + +namespace XCharts.Runtime +{ + [Serializable] + public class TitleTheme : ComponentTheme + { + public TitleTheme(ThemeType theme) : base(theme) + { + m_FontSize = XCSettings.fontSizeLv1; + switch (theme) + { + case ThemeType.Default: + m_TextColor = ColorUtil.GetColor("#514D4D"); + break; + case ThemeType.Light: + break; + case ThemeType.Dark: + m_TextColor = ColorUtil.GetColor("#EEF1FA"); + break; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/TitleTheme.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/TitleTheme.cs.meta new file mode 100644 index 0000000..a409e26 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/TitleTheme.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6649bc33964624c14a13ce34dd7eae77 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/TooltipTheme.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/TooltipTheme.cs new file mode 100644 index 0000000..a0d0dab --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/TooltipTheme.cs @@ -0,0 +1,118 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + [Serializable] + public class TooltipTheme : ComponentTheme + { + + [SerializeField] protected LineStyle.Type m_LineType = LineStyle.Type.Solid; + [SerializeField] protected float m_LineWidth = 1f; + [SerializeField] protected Color32 m_LineColor; + [SerializeField] protected Color32 m_AreaColor; + [SerializeField] protected Color32 m_LabelTextColor; + [SerializeField] protected Color32 m_LabelBackgroundColor; + + /// <summary> + /// the type of line. + /// |坐标轴线类型。 + /// </summary> + public LineStyle.Type lineType + { + get { return m_LineType; } + set { if (PropertyUtil.SetStruct(ref m_LineType, value)) SetVerticesDirty(); } + } + /// <summary> + /// the width of line. + /// |指示线线宽。 + /// </summary> + public float lineWidth + { + get { return m_LineWidth; } + set { if (PropertyUtil.SetStruct(ref m_LineWidth, value)) SetVerticesDirty(); } + } + /// <summary> + /// the color of line. + /// |指示线颜色。 + /// </summary> + public Color32 lineColor + { + get { return m_LineColor; } + set { if (PropertyUtil.SetColor(ref m_LineColor, value)) SetVerticesDirty(); } + } + + /// <summary> + /// the color of line. + /// |区域指示的颜色。 + /// </summary> + public Color32 areaColor + { + get { return m_AreaColor; } + set { if (PropertyUtil.SetColor(ref m_AreaColor, value)) SetVerticesDirty(); } + } + /// <summary> + /// the text color of tooltip cross indicator's axis label. + /// |十字指示器坐标轴标签的文本颜色。 + /// </summary> + public Color32 labelTextColor + { + get { return m_LabelTextColor; } + set { if (PropertyUtil.SetColor(ref m_LabelTextColor, value)) SetComponentDirty(); } + } + + /// <summary> + /// the background color of tooltip cross indicator's axis label. + /// |十字指示器坐标轴标签的背景颜色。 + /// </summary> + public Color32 labelBackgroundColor + { + get { return m_LabelBackgroundColor; } + set { if (PropertyUtil.SetColor(ref m_LabelBackgroundColor, value)) SetComponentDirty(); } + } + + public TooltipTheme(ThemeType theme) : base(theme) + { + m_LineType = LineStyle.Type.Solid; + m_LineWidth = XCSettings.tootipLineWidth; + switch (theme) + { + case ThemeType.Default: + m_TextBackgroundColor = ColorUtil.GetColor("#FFFFFFFF"); + m_TextColor = ColorUtil.GetColor("#000000FF"); + m_AreaColor = ColorUtil.GetColor("#51515120"); + m_LabelTextColor = ColorUtil.GetColor("#FFFFFFFF"); + m_LabelBackgroundColor = ColorUtil.GetColor("#292929FF"); + m_LineColor = ColorUtil.GetColor("#29292964"); + break; + case ThemeType.Light: + m_TextBackgroundColor = ColorUtil.GetColor("#FFFFFFFF"); + m_TextColor = ColorUtil.GetColor("#000000FF"); + m_AreaColor = ColorUtil.GetColor("#51515120"); + m_LabelTextColor = ColorUtil.GetColor("#FFFFFFFF"); + m_LabelBackgroundColor = ColorUtil.GetColor("#292929FF"); + m_LineColor = ColorUtil.GetColor("#29292964"); + break; + case ThemeType.Dark: + m_TextBackgroundColor = ColorUtil.GetColor("#FFFFFFFF"); + m_TextColor = ColorUtil.GetColor("#000000FF"); + m_AreaColor = ColorUtil.GetColor("#51515120"); + m_LabelTextColor = ColorUtil.GetColor("#FFFFFFFF"); + m_LabelBackgroundColor = ColorUtil.GetColor("#292929FF"); + m_LineColor = ColorUtil.GetColor("#29292964"); + break; + } + } + + public void Copy(TooltipTheme theme) + { + base.Copy(theme); + m_LineType = theme.lineType; + m_LineWidth = theme.lineWidth; + m_LineColor = theme.lineColor; + m_AreaColor = theme.areaColor; + m_LabelTextColor = theme.labelTextColor; + m_LabelBackgroundColor = theme.labelBackgroundColor; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/TooltipTheme.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/TooltipTheme.cs.meta new file mode 100644 index 0000000..534835c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/TooltipTheme.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f38f041e827e042a88338628b2b2c0db +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/VisualMapTheme.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/VisualMapTheme.cs new file mode 100644 index 0000000..3810838 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/VisualMapTheme.cs @@ -0,0 +1,86 @@ +using System; +using UnityEngine; + +namespace XCharts.Runtime +{ + [Serializable] + public class VisualMapTheme : ComponentTheme + { + [SerializeField] protected float m_BorderWidth; + [SerializeField] protected Color32 m_BorderColor; + [SerializeField] protected Color32 m_BackgroundColor; + [SerializeField][Range(10, 50)] protected float m_TriangeLen = 20f; + + /// <summary> + /// the width of border. + /// |边框线宽。 + /// </summary> + public float borderWidth + { + get { return m_BorderWidth; } + set { if (PropertyUtil.SetStruct(ref m_BorderWidth, value)) SetVerticesDirty(); } + } + /// <summary> + /// the color of dataZoom border. + /// |边框颜色。 + /// </summary> + public Color32 borderColor + { + get { return m_BorderColor; } + set { if (PropertyUtil.SetColor(ref m_BorderColor, value)) SetComponentDirty(); } + } + + /// <summary> + /// the background color of visualmap. + /// |背景颜色。 + /// </summary> + public Color32 backgroundColor + { + get { return m_BackgroundColor; } + set { if (PropertyUtil.SetColor(ref m_BackgroundColor, value)) SetComponentDirty(); } + } + /// <summary> + /// 可视化组件的调节三角形边长。 + /// </summary> + /// <value></value> + public float triangeLen + { + get { return m_TriangeLen; } + set { if (PropertyUtil.SetStruct(ref m_TriangeLen, value < 0 ? 1f : value)) SetVerticesDirty(); } + } + + public VisualMapTheme(ThemeType theme) : base(theme) + { + m_BorderWidth = XCSettings.visualMapBorderWidth; + m_TriangeLen = XCSettings.visualMapTriangeLen; + m_FontSize = XCSettings.fontSizeLv4; + switch (theme) + { + case ThemeType.Default: + m_TextColor = ColorUtil.GetColor("#333"); + m_BorderColor = ColorUtil.GetColor("#ccc"); + m_BackgroundColor = ColorUtil.clearColor32; + break; + case ThemeType.Light: + m_TextColor = ColorUtil.GetColor("#333"); + m_BorderColor = ColorUtil.GetColor("#ccc"); + m_BackgroundColor = ColorUtil.clearColor32; + break; + case ThemeType.Dark: + m_TextColor = ColorUtil.GetColor("#B9B8CE"); + m_BorderColor = ColorUtil.GetColor("#ccc"); + m_BackgroundColor = ColorUtil.clearColor32; + break; + } + } + + public void Copy(VisualMapTheme theme) + { + base.Copy(theme); + m_TriangeLen = theme.triangeLen; + m_BorderWidth = theme.borderWidth; + m_BorderColor = theme.borderColor; + m_BackgroundColor = theme.backgroundColor; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/VisualMapTheme.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/VisualMapTheme.cs.meta new file mode 100644 index 0000000..e737722 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Theme/VisualMapTheme.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 35e5797039b994b23850aaa7ca827766 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities.meta new file mode 100644 index 0000000..8665a90 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c3e4cdd9c66b14907bd1934dd8037eee +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/ColorUtil.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/ColorUtil.cs new file mode 100644 index 0000000..ab650e4 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/ColorUtil.cs @@ -0,0 +1,22 @@ +using UnityEngine; + +namespace XCharts.Runtime +{ + public static class ColorUtil + { + public static readonly Color32 clearColor32 = new Color32(0, 0, 0, 0); + public static readonly Vector2 zeroVector2 = Vector2.zero; + /// <summary> + /// Convert the html string to color. + /// |将字符串颜色值转成Color。 + /// </summary> + /// <param name="hexColorStr"></param> + /// <returns></returns> + public static Color32 GetColor(string hexColorStr) + { + Color color; + ColorUtility.TryParseHtmlString(hexColorStr, out color); + return (Color32) color; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/ColorUtil.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/ColorUtil.cs.meta new file mode 100644 index 0000000..a53ccbb --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/ColorUtil.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4260c3b8fdaff435a8bc10375b812bd8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/DateTimeUtil.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/DateTimeUtil.cs new file mode 100644 index 0000000..361218f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/DateTimeUtil.cs @@ -0,0 +1,166 @@ +using System; +using System.Collections.Generic; + +namespace XCharts.Runtime +{ + public static class DateTimeUtil + { + //private static readonly DateTime k_DateTime1970 = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1), TimeZoneInfo.Local); + private static readonly DateTime k_DateTime1970 = new DateTime(1970, 1, 1); + public static readonly int ONE_SECOND = 1; + public static readonly int ONE_MINUTE = ONE_SECOND * 60; + public static readonly int ONE_HOUR = ONE_MINUTE * 60; + public static readonly int ONE_DAY = ONE_HOUR * 24; + public static readonly int ONE_MONTH = ONE_DAY * 30; + public static readonly int ONE_YEAR = ONE_DAY * 365; + public static readonly int MIN_TIME_SPLIT_NUMBER = 4; + + private static string s_YearDateFormatter = "yyyy"; + //private static string s_MonthDateFormatter = "MM"; + //private static string s_DayDateFormatter = "dd"; + private static string s_HourDateFormatter = "HH:mm"; + private static string s_MinuteDateFormatter = "HH:mm"; + private static string s_SecondDateFormatter = "HH:mm:ss"; + //private static string s_DateFormatter = "yyyy-MM-dd HH:mm:ss"; + + public static int GetTimestamp() + { + return (int) (DateTime.Now - k_DateTime1970).TotalSeconds; + } + + public static int GetTimestamp(DateTime time) + { + return (int) (time - k_DateTime1970).TotalSeconds; + } + + public static DateTime GetDateTime(int timestamp) + { + long span = ((long) timestamp) * 10000000; + return k_DateTime1970.Add(new TimeSpan(span)); + } + + internal static string GetDateTimeFormatString(DateTime dateTime, double range) + { + var dateString = String.Empty; + if (range >= DateTimeUtil.ONE_YEAR * DateTimeUtil.MIN_TIME_SPLIT_NUMBER) + { + dateString = dateTime.ToString(s_YearDateFormatter); + } + else if (range >= DateTimeUtil.ONE_MONTH * DateTimeUtil.MIN_TIME_SPLIT_NUMBER) + { + dateString = dateTime.Month == 1 ? + dateTime.ToString(s_YearDateFormatter) : + XCSettings.lang.GetMonthAbbr(dateTime.Month); + } + else if (range >= DateTimeUtil.ONE_DAY * DateTimeUtil.MIN_TIME_SPLIT_NUMBER) + { + dateString = dateTime.Day == 1 ? + XCSettings.lang.GetMonthAbbr(dateTime.Month) : + XCSettings.lang.GetDay(dateTime.Day); + } + else if (range >= DateTimeUtil.ONE_HOUR * DateTimeUtil.MIN_TIME_SPLIT_NUMBER) + { + dateString = dateTime.ToString(s_HourDateFormatter); + } + else if (range >= DateTimeUtil.ONE_MINUTE * DateTimeUtil.MIN_TIME_SPLIT_NUMBER) + { + dateString = dateTime.ToString(s_MinuteDateFormatter); + } + else + { + dateString = dateTime.ToString(s_SecondDateFormatter); + } + return dateString; + } + + /// <summary> + /// 根据给定的最大最小时间戳范围,计算合适的Tick值 + /// </summary> + /// <param name="list"></param> + /// <param name="minTimestamp"></param> + /// <param name="maxTimestamp"></param> + /// <param name="splitNumber"></param> + internal static void UpdateTimeAxisDateTimeList(List<double> list, int minTimestamp, int maxTimestamp, int splitNumber) + { + list.Clear(); + var range = maxTimestamp - minTimestamp; + if (range <= 0) return; + if (splitNumber <= 0) splitNumber = 1; + var dtMin = DateTimeUtil.GetDateTime(minTimestamp); + var dtMax = DateTimeUtil.GetDateTime(maxTimestamp); + if (range >= ONE_YEAR * MIN_TIME_SPLIT_NUMBER) + { + var num = Math.Max(range / (splitNumber * ONE_YEAR), 1); + var dtStart = new DateTime(dtMin.Year + 1, 1, 1); + while (dtStart.Ticks < dtMax.Ticks) + { + list.Add(DateTimeUtil.GetTimestamp(dtStart)); + dtStart = dtStart.AddYears(num); + } + } + else if (range >= ONE_MONTH * MIN_TIME_SPLIT_NUMBER) + { + var num = Math.Max(range / (splitNumber * ONE_MONTH), 1); + var dtStart = new DateTime(dtMin.Year, dtMin.Month, 1).AddMonths(1); + while (dtStart.Ticks < dtMax.Ticks) + { + list.Add(DateTimeUtil.GetTimestamp(dtStart)); + dtStart = dtStart.AddMonths(num); + } + } + else if (range >= ONE_DAY * MIN_TIME_SPLIT_NUMBER) + { + var tick = GetTickSecond(range, splitNumber, ONE_DAY); + var startTimestamp = (minTimestamp - minTimestamp % tick) + tick; + AddTickTimestamp(list, startTimestamp, maxTimestamp, tick); + } + else if (range >= ONE_HOUR * MIN_TIME_SPLIT_NUMBER) + { + var tick = GetTickSecond(range, splitNumber, ONE_HOUR); + var startTimestamp = (minTimestamp - minTimestamp % tick) + tick; + AddTickTimestamp(list, startTimestamp, maxTimestamp, tick); + } + else if (range >= ONE_MINUTE * MIN_TIME_SPLIT_NUMBER) + { + var tick = GetTickSecond(range, splitNumber, ONE_MINUTE); + var startTimestamp = (minTimestamp - minTimestamp % tick) + tick; + AddTickTimestamp(list, startTimestamp, maxTimestamp, tick); + } + else + { + var tick = GetTickSecond(range, splitNumber, ONE_SECOND); + var startTimestamp = (minTimestamp - minTimestamp % tick) + tick; + AddTickTimestamp(list, startTimestamp, maxTimestamp, tick); + } + } + + private static int GetTickSecond(int range, int splitNumber, int tickSecond) + { + var num = 0; + if (splitNumber > 0) + { + num = Math.Max(range / (splitNumber * tickSecond), 1); + } + else + { + num = 1; + var tick = tickSecond; + while (range / tick > 8) + { + num++; + tick = num * tickSecond; + } + } + return num * tickSecond; + } + + private static void AddTickTimestamp(List<double> list, int startTimestamp, int maxTimestamp, int tickSecond) + { + while (startTimestamp < maxTimestamp) + { + list.Add(startTimestamp); + startTimestamp += tickSecond; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/DateTimeUtil.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/DateTimeUtil.cs.meta new file mode 100644 index 0000000..ac2244b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/DateTimeUtil.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0f0ac80f189a04b5c826f40c8bc8af64 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/DefineSymbolsUtil.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/DefineSymbolsUtil.cs new file mode 100644 index 0000000..12a24c8 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/DefineSymbolsUtil.cs @@ -0,0 +1,89 @@ +#if UNITY_EDITOR + +using System; +using System.Reflection; +using System.Text; +using UnityEditor; +using UnityEngine; + +namespace XCharts.Runtime +{ + public static class DefineSymbolsUtil + { + private static readonly StringBuilder s_StringBuilder = new StringBuilder(); + + public static void AddGlobalDefine(string symbol) + { + var flag = false; + var num = 0; + foreach (var buildTargetGroup in (BuildTargetGroup[]) Enum.GetValues(typeof(BuildTargetGroup))) + { + if (IsValidBuildTargetGroup(buildTargetGroup)) + { + var symbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(buildTargetGroup); + symbols = symbols.Replace(" ", ""); + if (Array.IndexOf(symbols.Split(';'), symbol) != -1) continue; + flag = true; + num++; + var defines = symbols + (symbols.Length > 0 ? ";" + symbol : symbol); + PlayerSettings.SetScriptingDefineSymbolsForGroup(buildTargetGroup, defines); + } + } + if (flag) + { + Debug.LogFormat("Added global define symbol \"{0}\" to {1} BuildTargetGroups.", symbol, num); + } + } + + public static void RemoveGlobalDefine(string symbol) + { + var flag = false; + var num = 0; + foreach (var buildTargetGroup in (BuildTargetGroup[]) Enum.GetValues(typeof(BuildTargetGroup))) + { + if (IsValidBuildTargetGroup(buildTargetGroup)) + { + var symbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(buildTargetGroup).Split(';'); + if (Array.IndexOf(symbols, symbol) == -1) continue; + flag = true; + num++; + s_StringBuilder.Length = 0; + foreach (var str in symbols) + { + if (!str.Equals(symbol)) + { + if (s_StringBuilder.Length > 0) s_StringBuilder.Append(";"); + s_StringBuilder.Append(str); + } + } + PlayerSettings.SetScriptingDefineSymbolsForGroup(buildTargetGroup, s_StringBuilder.ToString()); + } + } + if (flag) + { + Debug.LogFormat("Removed global define symbol \"{0}\" to {1} BuildTargetGroups.", symbol, num); + } + } + + private static bool IsValidBuildTargetGroup(BuildTargetGroup group) + { + if (group == BuildTargetGroup.Unknown) return false; + var type = Type.GetType("UnityEditor.Modules.ModuleManager, UnityEditor.dll"); + if (type == null) return true; + var method1 = type.GetMethod("GetTargetStringFromBuildTargetGroup", BindingFlags.Static | BindingFlags.NonPublic); + var method2 = typeof(PlayerSettings).GetMethod("GetPlatformName", BindingFlags.Static | BindingFlags.NonPublic); + if (method1 == null || method2 == null) return true; + var str1 = (string) method1.Invoke(null, new object[] { group }); + var str2 = (string) method2.Invoke(null, new object[] { group }); + if (string.IsNullOrEmpty(str1)) + { + return !string.IsNullOrEmpty(str2); + } + else + { + return true; + } + } + } +} +#endif \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/DefineSymbolsUtil.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/DefineSymbolsUtil.cs.meta new file mode 100644 index 0000000..eae3d81 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/DefineSymbolsUtil.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 91545951242fa441eb1a9bba3a6ad5a7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/PropertyUtil.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/PropertyUtil.cs new file mode 100644 index 0000000..313ac3d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/PropertyUtil.cs @@ -0,0 +1,52 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XCharts.Runtime +{ + public static class PropertyUtil + { + public static bool SetColor(ref Color currentValue, Color newValue) + { + if (currentValue.r == newValue.r && currentValue.g == newValue.g && currentValue.b == newValue.b && currentValue.a == newValue.a) + return false; + + currentValue = newValue; + return true; + } + + public static bool SetColor(ref Color32 currentValue, Color32 newValue) + { + if (currentValue.r == newValue.r && currentValue.g == newValue.g && currentValue.b == newValue.b && currentValue.a == newValue.a) + return false; + + currentValue = newValue; + return true; + } + + public static bool SetStruct<T>(ref T currentValue, T newValue) where T : struct + { + if (EqualityComparer<T>.Default.Equals(currentValue, newValue)) + return false; + + currentValue = newValue; + return true; + } + + public static bool SetClass<T>(ref T currentValue, T newValue, bool notNull = false) where T : class + { + if (notNull) + { + if (newValue == null) + { + Debug.LogError("can not be null."); + return false; + } + } + if ((currentValue == null && newValue == null) || (currentValue != null && currentValue.Equals(newValue))) + return false; + + currentValue = newValue; + return true; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/PropertyUtil.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/PropertyUtil.cs.meta new file mode 100644 index 0000000..9292ef0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/PropertyUtil.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b1f52eadd805d43aea47947fb81e761f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/ReflectionUtil.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/ReflectionUtil.cs new file mode 100644 index 0000000..5af73af --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/ReflectionUtil.cs @@ -0,0 +1,133 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Reflection; +using UnityEngine; + +namespace XCharts.Runtime +{ + public static class ReflectionUtil + { + private static Dictionary<object, MethodInfo> listClearMethodInfoCaches = new Dictionary<object, MethodInfo>(); + private static Dictionary<object, MethodInfo> listAddMethodInfoCaches = new Dictionary<object, MethodInfo>(); + + public static void InvokeListClear(object obj, FieldInfo field) + { + var list = field.GetValue(obj); + MethodInfo method; + if (!listClearMethodInfoCaches.TryGetValue(list, out method)) + { + method = list.GetType().GetMethod("Clear"); + listClearMethodInfoCaches[list] = method; + } + method.Invoke(list, new object[] { }); + } + public static int InvokeListCount(object obj, FieldInfo field) + { + var list = field.GetValue(obj); + return (int) list.GetType().GetProperty("Count").GetValue(list, null); + } + + public static void InvokeListAdd(object obj, FieldInfo field, object item) + { + var list = field.GetValue(obj); + MethodInfo method; + if (!listAddMethodInfoCaches.TryGetValue(list, out method)) + { + method = list.GetType().GetMethod("Add"); + listAddMethodInfoCaches[list] = method; + } + method.Invoke(list, new object[] { item }); + } + + public static T InvokeListGet<T>(object obj, FieldInfo field, int i) + { + var list = field.GetValue(obj); + var item = list.GetType().GetProperty("Item").GetValue(list, new object[] { i }); + return (T) item; + } + + public static void InvokeListAddTo<T>(object obj, FieldInfo field, Action<T> callback) + { + var list = field.GetValue(obj); + var listType = list.GetType(); + var count = Convert.ToInt32(listType.GetProperty("Count").GetValue(list, null)); + for (int i = 0; i < count; i++) + { + var item = listType.GetProperty("Item").GetValue(list, new object[] { i }); + callback((T) item); + } + } + + public static object DeepCloneSerializeField(object obj) + { + if (obj == null) + return null; + + var type = obj.GetType(); + if (type.IsValueType || type == typeof(string)) + { + return obj; + } + else if (type.IsArray) + { + var elementType = Type.GetType(type.FullName.Replace("[]", string.Empty)); + var array = obj as Array; + var copied = Array.CreateInstance(elementType, array.Length); + for (int i = 0; i < array.Length; i++) + copied.SetValue(DeepCloneSerializeField(array.GetValue(i)), i); + return Convert.ChangeType(copied, obj.GetType()); + } + else if (type.IsClass) + { + object returnObj; + var listObj = obj as IList; + if (listObj != null) + { + var properties = type.GetProperties(); + var customList = typeof(List<>).MakeGenericType((properties[properties.Length - 1]).PropertyType); + returnObj = (IList) Activator.CreateInstance(customList); + var list = (IList) returnObj; + foreach (var item in ((IList) obj)) + { + if (item == null) + continue; + list.Add(DeepCloneSerializeField(item)); + } + } + else + { + try + { + returnObj = Activator.CreateInstance(type); + } + catch + { + return null; + } + var fileds = type.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); + for (int i = 0; i < fileds.Length; i++) + { + var field = fileds[i]; + if (!field.IsDefined(typeof(SerializeField), false)) + continue; + var filedValue = field.GetValue(obj); + if (filedValue == null) + { + field.SetValue(returnObj, filedValue); + } + else + { + field.SetValue(returnObj, DeepCloneSerializeField(filedValue)); + } + } + } + return returnObj; + } + else + { + throw new ArgumentException("DeepCloneSerializeField: Unknown type:" + type + "," + obj); + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/ReflectionUtil.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/ReflectionUtil.cs.meta new file mode 100644 index 0000000..77dc154 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/ReflectionUtil.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 03acc4ee710ff4bad9a1740391c86cb9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/RuntimeUtil.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/RuntimeUtil.cs new file mode 100644 index 0000000..8bd0fe0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/RuntimeUtil.cs @@ -0,0 +1,87 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using UnityEngine; +using UnityEngine.Assertions; + +namespace XCharts.Runtime +{ + public static class RuntimeUtil + { + public static bool HasSubclass(Type type) + { + var typeMap = GetAllTypesDerivedFrom(type); + foreach (var t in typeMap) + { + return true; + } + return false; + } + + public static IEnumerable<Type> GetAllTypesDerivedFrom<T>() + { +#if UNITY_EDITOR && UNITY_2019_2_OR_NEWER + return UnityEditor.TypeCache.GetTypesDerivedFrom<T>(); +#else + return GetAllAssemblyTypes().Where(t => t.IsSubclassOf(typeof(T))); +#endif + } + public static IEnumerable<Type> GetAllTypesDerivedFrom(Type type) + { +#if UNITY_EDITOR && UNITY_2019_2_OR_NEWER + return UnityEditor.TypeCache.GetTypesDerivedFrom(type); +#else + return GetAllAssemblyTypes().Where(t => t.IsSubclassOf(type)); +#endif + } + + static IEnumerable<Type> m_AssemblyTypes; + + public static IEnumerable<Type> GetAllAssemblyTypes() + { + if (m_AssemblyTypes == null) + { + m_AssemblyTypes = AppDomain.CurrentDomain.GetAssemblies() + .SelectMany(t => + { + var innerTypes = new Type[0]; + try + { + innerTypes = t.GetTypes(); + } + catch { } + return innerTypes; + }); + } + return m_AssemblyTypes; + } + + public static T GetAttribute<T>(this Type type, bool check = true) where T : Attribute + { + if (type.IsDefined(typeof(T), false)) + return (T) type.GetCustomAttributes(typeof(T), false) [0]; + else + { + if (check) + Assert.IsTrue(false, "Attribute not found:" + type.Name); + return null; + } + } + public static T GetAttribute<T>(this MemberInfo type, bool check = true) where T : Attribute + { + if (type.IsDefined(typeof(T), false)) + return (T) type.GetCustomAttributes(typeof(T), false) [0]; + else + { + if (check) + Assert.IsTrue(false, "Attribute not found:" + type.Name); + return null; + } + } + + + + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/RuntimeUtil.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/RuntimeUtil.cs.meta new file mode 100644 index 0000000..448e24e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Utilities/RuntimeUtil.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 44becf1664ae64397b44adcf65e6d8d2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Widgets.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Widgets.meta new file mode 100644 index 0000000..acbde32 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Widgets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5e8b7c21c2d5a45f09bfd4028bbe5f63 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Widgets/ProgressBar.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Widgets/ProgressBar.cs new file mode 100644 index 0000000..8efac8a --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Widgets/ProgressBar.cs @@ -0,0 +1,51 @@ +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [ExecuteInEditMode] + [RequireComponent(typeof(RectTransform))] + [DisallowMultipleComponent] + public class ProgressBar : BaseChart + { + [SerializeField][Range(0f, 1f)] private float m_Value = 0.5f; + [SerializeField] private Color m_BackgroundColor = new Color32(255, 233, 233, 255); + [SerializeField] private Color m_StartColor = Color.blue; + [SerializeField] private Color m_EndColor = Color.red; + [SerializeField] private float[] m_CornerRadius = new float[] { 0, 0, 0, 0 }; + + public float value { get { return m_Value; } set { m_Value = value; SetVerticesDirty(); } } + public Color32 backgroundColor { get { return m_BackgroundColor; } set { m_BackgroundColor = value; SetVerticesDirty(); } } + public Color32 startColor { get { return m_StartColor; } set { m_StartColor = value; SetVerticesDirty(); } } + public Color32 endColor { get { return m_EndColor; } set { m_EndColor = value; SetVerticesDirty(); } } + public float[] cornerRadius { get { return m_CornerRadius; } set { m_CornerRadius = value; SetVerticesDirty(); } } + +#if UNITY_EDITOR + protected override void Reset() + { + base.Reset(); + var title = GetOrAddChartComponent<Title>(); + title.text = "ProgressBar"; + title.show = false; + SetSize(580, 4); + RemoveData(); + } +#endif + + protected override void OnDrawPainterBase(VertexHelper vh, Painter painter) + { + vh.Clear(); + var centerPos = new Vector3(chartPosition.x + m_ChartWidth / 2, chartPosition.y + m_ChartHeight / 2); + UGL.DrawRoundRectangle(vh, centerPos, m_ChartWidth, m_ChartHeight, m_BackgroundColor, m_BackgroundColor, + 0, m_CornerRadius, true); + + var valueWidth = m_Value * m_ChartWidth; + var valuePos = new Vector3(chartPosition.x + valueWidth / 2, centerPos.y); + var endColor = Color.Lerp(m_StartColor, m_EndColor, m_Value); + UGL.DrawRoundRectangle(vh, valuePos, valueWidth, m_ChartHeight, m_StartColor, endColor, 0, + m_CornerRadius, true); + } + + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Widgets/ProgressBar.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Widgets/ProgressBar.cs.meta new file mode 100644 index 0000000..1b34a70 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Widgets/ProgressBar.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cd18af5634e604a3c97fb1ff0fc5d682 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Widgets/SVGImage.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Widgets/SVGImage.cs new file mode 100644 index 0000000..1e12c97 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Widgets/SVGImage.cs @@ -0,0 +1,33 @@ +using UnityEngine; +using UnityEngine.UI; +using XUGL; + +namespace XCharts.Runtime +{ + [ExecuteInEditMode] + public class SVGImage : MaskableGraphic + { + [SerializeField] private bool m_MirrorY; + [SerializeField] private string m_SVGPath; + + private SVGPath m_Path; + + public string svgPath { set { m_SVGPath = value; } get { return m_SVGPath; } } + public bool mirrorY { set { m_MirrorY = value; } get { return m_MirrorY; } } + + protected override void Awake() + { + base.Awake(); + m_Path = SVGPath.Parse(m_SVGPath); + m_Path.mirrorY = m_MirrorY; + } + + protected override void OnPopulateMesh(VertexHelper vh) + { + vh.Clear(); + if (m_Path != null) + m_Path.Draw(vh); + } + + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Widgets/SVGImage.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Widgets/SVGImage.cs.meta new file mode 100644 index 0000000..cf55b08 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/Widgets/SVGImage.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fe10ee35a038646b6aedfffb30f84024 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XCharts.Runtime.asmdef b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XCharts.Runtime.asmdef new file mode 100644 index 0000000..aa9babc --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XCharts.Runtime.asmdef @@ -0,0 +1,13 @@ +{ + "name": "XCharts.Runtime", + "references": [ + ], + "optionalUnityReferences": [], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [] +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XCharts.Runtime.asmdef.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XCharts.Runtime.asmdef.meta new file mode 100644 index 0000000..2b08206 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XCharts.Runtime.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: dd8043639e4014317a7246f064330196 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL.meta new file mode 100644 index 0000000..53b2bee --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c4fe06f67e9674b808b44154ab0e5fc3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG.meta new file mode 100644 index 0000000..bd6001d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6e78d1d27fb8f42948af1c6050eb6a46 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVG.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVG.cs new file mode 100644 index 0000000..791620d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVG.cs @@ -0,0 +1,39 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace XUGL +{ + public static class SVG + { + public static bool yMirror = false; + public static void Test(VertexHelper vh) + { + //UGL.DrawSvgPath(vh, "path://M600,800 C625,700 725,700 750,800 S875,900 900,800"); + //UGL.DrawSvgPath(vh, "path://M67.335,33.596L67.335,33.596c-0.002-1.39-1.153-3.183-3.328-4.218h-9.096v-2.07h5.371 c-4.939-2.07-11.199-4.141-14.89-4.141H19.72v12.421v5.176h38.373c4.033,0,8.457-1.035,9.142-5.176h-0.027 c0.076-0.367,0.129-0.751,0.129-1.165L67.335,33.596L67.335,33.596z M27.999,30.413h-3.105v-4.141h3.105V30.413z M35.245,30.413 h-3.104v-4.141h3.104V30.413z M42.491,30.413h-3.104v-4.141h3.104V30.413z M49.736,30.413h-3.104v-4.141h3.104V30.413z M14.544,40.764c1.143,0,2.07-0.927,2.07-2.07V35.59V25.237c0-1.145-0.928-2.07-2.07-2.07H-9.265c-1.143,0-2.068,0.926-2.068,2.07 v10.351v3.105c0,1.144,0.926,2.07,2.068,2.07H14.544L14.544,40.764z M8.333,26.272h3.105v4.141H8.333V26.272z M1.087,26.272h3.105 v4.141H1.087V26.272z M-6.159,26.272h3.105v4.141h-3.105V26.272z M-9.265,41.798h69.352v1.035H-9.265V41.798z"); + //UGL.DrawSvgPath(vh, "path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z"); + + //人体 + UGL.DrawSvgPath(vh, "path://M36.7,102.84c-1.17,2.54-2.99,4.98-3.39,7.63c-1.51,9.89-3.31,19.58-1.93,29.95 c0.95,7.15-2.91,14.82-3.57,22.35c-0.64,7.36-0.2,14.86,0.35,22.25c0.12,1.68,2.66,3.17,4.67,5.4c-0.6,0.82-1.5,2.22-2.58,3.48 c-0.96,1.12-1.96,2.35-3.21,3.04c-1.71,0.95-3.71,2.03-5.51,1.9c-1.18-0.08-3.04-2.13-3.16-3.43c-0.44-4.72,0-9.52-0.41-14.25 c-0.94-10.88-2.32-21.72-3.24-32.61c-0.49-5.84-1.63-12.01-0.35-17.54c3.39-14.56,2.8-28.84,0.36-43.4 c-2.71-16.16-1.06-32.4,0.54-48.59c0.91-9.22,4.62-17.36,8.53-25.57c1.32-2.77,1.88-6.84,0.87-9.62C21.89-3.77,18.09-11,14.7-18.38 c-0.56,0.1-1.13,0.21-1.69,0.31C10.17-11.52,6.29-5.2,4.71,1.65C2.05,13.21-4.42,22.3-11.43,31.28c-1.32,1.69-2.51,3.5-3.98,5.04 c-4.85,5.08-3.25,10.98-2.32,16.82c0.25,1.53,0.52,3.06,0.77,4.59c-0.53,0.22-1.07,0.43-1.6,0.65c-1.07-2.09-2.14-4.19-3.28-6.44 c-6.39,2.91-2.67,9.6-5.23,15.16c-1.61-3.31-2.77-5.68-3.93-8.06c0-0.33,0-0.67,0-1c6.96-16.08,14.63-31.9,20.68-48.31 C-5.24-4.07-2.03-18.55,2-32.73c0.36-1.27,0.75-2.53,0.98-3.82c1.36-7.75,4.19-10.23,11.88-10.38c1.76-0.04,3.52-0.21,5.76-0.35 c-0.55-3.95-1.21-7.3-1.45-10.68c-0.61-8.67,0.77-16.69,7.39-23.19c2.18-2.14,4.27-4.82,5.25-7.65c2.39-6.88,11.66-9,16.94-8.12 c5.92,0.99,12.15,7.93,12.16,14.12c0.01,9.89-5.19,17.26-12.24,23.68c-2.17,1.97-5.35,4.77-5.17,6.94c0.31,3.78,4.15,5.66,8.08,6.04 c1.82,0.18,3.7,0.37,5.49,0.1c5.62-0.85,8.8,2.17,10.85,6.73C73.38-27.19,78.46-14.9,84.2-2.91c1.52,3.17,4.52,5.91,7.41,8.09 c7.64,5.77,15.57,11.16,23.45,16.61c2.28,1.58,4.64,3.23,7.21,4.14c5.18,1.84,8.09,5.63,9.82,10.46c0.45,1.24,0.19,3.71-0.6,4.18 c-1.06,0.63-3.15,0.27-4.44-0.38c-7.05-3.54-12.84-8.88-19.14-13.5c-3.5-2.57-7.9-4-12.03-5.6c-9.44-3.66-17.73-8.42-22.5-18.09 c-2.43-4.94-6.09-9.27-9.69-14.61c-1.2,10.98-4.46,20.65,1.14,31.19c6.62,12.47,5.89,26.25,1.21,39.49 c-2.52,7.11-6.5,13.74-8.67,20.94c-1.91,6.33-2.2,13.15-3.23,19.75c-0.72,4.63-0.84,9.48-2.36,13.84 c-2.49,7.16-6.67,13.83-5.84,21.82c0.42,4.02,1.29,7.99,2.1,12.8c-3.74-0.49-7.47-0.4-10.67-1.66c-1.33-0.53-2.43-4.11-2.07-6.01 c1.86-9.94,3.89-19.69,0.07-29.74C34.55,108.63,36.19,105.52,36.7,102.84c1.25-8.45,2.51-16.89,3.71-24.9 c-0.83-0.58-0.85-0.59-0.87-0.61c-0.03,0.16-0.07,0.32-0.09,0.48C38.53,86.15,37.62,94.5,36.7,102.84z"); + + //UGL.DrawSvgPath(vh, "path://M29.902,23.275c1.86,0,3.368-1.506,3.368-3.365c0-1.859-1.508-3.365-3.368-3.365 c-1.857,0-3.365,1.506-3.365,3.365C26.537,21.769,28.045,23.275,29.902,23.275z M36.867,30.74c-1.666-0.467-3.799-1.6-4.732-4.199 c-0.932-2.6-3.131-2.998-4.797-2.998s-7.098,3.894-7.098,3.894c-1.133,1.001-2.1,6.502-0.967,6.769 c1.133,0.269,1.266-1.533,1.934-3.599c0.666-2.065,3.797-3.466,3.797-3.466s0.201,2.467-0.398,3.866 c-0.599,1.399-1.133,2.866-1.467,6.198s-1.6,3.665-3.799,6.266c-2.199,2.598-0.6,3.797,0.398,3.664 c1.002-0.133,5.865-5.598,6.398-6.998c0.533-1.397,0.668-3.732,0.668-3.732s0,0,2.199,1.867c2.199,1.865,2.332,4.6,2.998,7.73 s2.332,0.934,2.332-0.467c0-1.401,0.269-5.465-1-7.064c-1.265-1.6-3.73-3.465-3.73-5.265s1.199-3.732,1.199-3.732 c0.332,1.667,3.335,3.065,5.599,3.399C38.668,33.206,38.533,31.207,36.867,30.74z"); + + //钟表指针 + //UGL.DrawSvgPath(vh, "path://M2090.36389,615.30999 L2090.36389,615.30999 C2091.48372,615.30999 2092.40383,616.194028 2092.44859,617.312956 L2096.90698,728.755929 C2097.05155,732.369577 2094.2393,735.416212 2090.62566,735.56078 C2090.53845,735.564269 2090.45117,735.566014 2090.36389,735.566014 L2090.36389,735.566014 C2086.74736,735.566014 2083.81557,732.63423 2083.81557,729.017692 C2083.81557,728.930412 2083.81732,728.84314 2083.82081,728.755929 L2088.2792,617.312956 C2088.32396,616.194028 2089.24407,615.30999 2090.36389,615.30999 Z"); + + //钟表指针 + //UGL.DrawSvgPath(vh, "path://M2.9,0.7L2.9,0.7c1.4,0,2.6,1.2,2.6,2.6v115c0,1.4-1.2,2.6-2.6,2.6l0,0c-1.4,0-2.6-1.2-2.6-2.6V3.3C0.3,1.9,1.4,0.7,2.9,0.7z"); + } + + public static void DrawPath(VertexHelper vh, string path) + { + var svgPath = SVGPath.Parse(path); + DrawPath(vh, svgPath); + } + + public static void DrawPath(VertexHelper vh, SVGPath path) + { + path.Draw(vh); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVG.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVG.cs.meta new file mode 100644 index 0000000..133f0d2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVG.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cbe2b3aa282ad4cd9b469792fde7e092 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVGPath.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVGPath.cs new file mode 100644 index 0000000..9239ee1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVGPath.cs @@ -0,0 +1,202 @@ +using System.Collections.Generic; +using System.Text.RegularExpressions; +using UnityEngine; +using UnityEngine.UI; + +namespace XUGL +{ + public class SVGPath + { + private static Regex s_PathRegex = new Regex(@"(([a-z]|[A-Z])(\d|\.|,|-)*)"); + private static Regex s_PathValueRegex = new Regex(@"(^[a-z]|[A-Z])\s*(-?\d+\.*\d*)*[\s|,|-]*(\d+\.*\d*)*"); + private static Regex s_PathValueRegex2 = new Regex(@"(-?\d+\.?\d*)"); + public bool mirrorY = true; + public List<SVGPathSeg> segs = new List<SVGPathSeg>(); + + public void AddSegment(SVGPathSeg seg) + { + segs.Add(seg); + } + + public static SVGPath Parse(string path) + { + if (string.IsNullOrEmpty(path)) + return new SVGPath(); + if (path.StartsWith("path://")) + { + path = path.Substring(7); + } + path = path.Replace(' ', ','); + var mc = s_PathRegex.Matches(path); + var svgPath = new SVGPath(); + + foreach (var m in mc) + { + var key = m.ToString(); + if (key.Equals("Z") || key.Equals("z")) + { + var seg = new SVGPathSeg(SVGPathSegType.Z); + seg.raw = key; + seg.relative = key.Equals("z"); + svgPath.AddSegment(seg); + } + else + { + var type = s_PathValueRegex.Match(key).Groups[1].ToString().ToCharArray() [0]; + var mc3 = s_PathValueRegex2.Matches(key); + SVGPathSeg seg = null; + switch (type) + { + case 'M': + case 'm': + seg = new SVGPathSeg(SVGPathSegType.M); + seg.relative = type == 'm'; + break; + case 'L': + case 'l': + seg = new SVGPathSeg(SVGPathSegType.L); + seg.relative = type == 'l'; + break; + case 'H': + case 'h': + seg = new SVGPathSeg(SVGPathSegType.H); + seg.relative = type == 'h'; + break; + case 'V': + case 'v': + seg = new SVGPathSeg(SVGPathSegType.V); + seg.relative = type == 'v'; + break; + case 'C': + case 'c': + seg = new SVGPathSeg(SVGPathSegType.C); + seg.relative = type == 'c'; + break; + case 'S': + case 's': + seg = new SVGPathSeg(SVGPathSegType.S); + seg.relative = type == 's'; + break; + case 'Q': + case 'q': + seg = new SVGPathSeg(SVGPathSegType.Q); + seg.relative = type == 'q'; + break; + case 'T': + case 't': + seg = new SVGPathSeg(SVGPathSegType.T); + seg.relative = type == 't'; + break; + case 'A': + case 'a': + seg = new SVGPathSeg(SVGPathSegType.A); + seg.relative = type == 'a'; + break; + } + if (seg != null) + { + seg.raw = key; + foreach (var m3 in mc3) + { + // if (type == 'c' || type == 'C') + //Debug.LogError("\tmc3:" + type + "," + m3.ToString()); + float p; + if (float.TryParse(m3.ToString(), out p)) + seg.parameters.Add(p); + } + svgPath.AddSegment(seg); + } + } + } + // Debug.LogError(path); + // foreach (var cmd in svgPath.commands) + // { + // Debug.LogError(cmd.raw); + // } + return svgPath; + } + + public void Draw(VertexHelper vh) + { + var sp = Vector2.zero; + var np = Vector2.zero; + var posList = new List<Vector3>(); + var bezierList = new List<Vector3>(); + var cp2 = Vector2.zero; + foreach (var seg in segs) + { + switch (seg.type) + { + case SVGPathSegType.M: + sp = np = seg.relative ? np + seg.p1 : seg.p1; + if (posList.Count > 0) + { + DrawPosList(vh, posList); + } + posList.Add(np); + break; + case SVGPathSegType.L: + np = seg.relative ? np + seg.p1 : seg.p1; + posList.Add(np); + break; + case SVGPathSegType.H: + np = seg.relative ? np + new Vector2(seg.value, 0) : new Vector2(seg.value, np.y); + posList.Add(np); + break; + case SVGPathSegType.V: + np = seg.relative ? np + new Vector2(0, seg.value) : new Vector2(np.x, seg.value); + posList.Add(np); + break; + case SVGPathSegType.C: + var cp1 = seg.relative ? np + seg.p1 : seg.p1; + cp2 = seg.relative ? np + seg.p2 : seg.p2; + var ep = seg.relative ? np + seg.p3 : seg.p3; + var dist = (int) Vector2.Distance(np, ep) * 2; + if (dist < 2) dist = 2; + UGLHelper.GetBezierList2(ref bezierList, np, ep, dist, cp1, cp2); + for (int n = 1; n < bezierList.Count; n++) + posList.Add(bezierList[n]); + np = ep; + break; + case SVGPathSegType.S: + cp1 = np + (np - cp2).normalized * Vector2.Distance(np, cp2); + var scp2 = seg.relative ? np + seg.p1 : seg.p1; + ep = seg.relative ? np + seg.p2 : seg.p2; + dist = (int) Vector2.Distance(np, ep) * 2; + if (dist < 2) dist = 2; + UGLHelper.GetBezierList2(ref bezierList, np, ep, dist, cp1, scp2); + for (int n = 1; n < bezierList.Count; n++) + posList.Add(bezierList[n]); + break; + case SVGPathSegType.Z: + posList.Add(sp); + DrawPosList(vh, posList); + break; + case SVGPathSegType.Q: + case SVGPathSegType.T: + case SVGPathSegType.A: + default: + Debug.LogError("unknow seg:" + seg.type); + break; + } + } + if (posList.Count > 0) + DrawPosList(vh, posList); + //UGL.DrawCricle(vh, sp, 1, Color.black); + } + + private void DrawPosList(VertexHelper vh, List<Vector3> posList) + { + if (mirrorY) + { + for (int i = posList.Count - 1; i >= 0; i--) + { + var pos = posList[i]; + posList[i] = new Vector3(pos.x, -pos.y); + } + } + UGL.DrawLine(vh, posList, 1f, Color.red, false); + posList.Clear(); + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVGPath.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVGPath.cs.meta new file mode 100644 index 0000000..20f5c8d --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVGPath.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c4119dc5490ec4f8bbcc67aa6eee024a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVGPathSeg.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVGPathSeg.cs new file mode 100644 index 0000000..acce361 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVGPathSeg.cs @@ -0,0 +1,36 @@ +using System.Collections.Generic; +using System.Text.RegularExpressions; +using UnityEngine; +using UnityEngine.UI; + +namespace XUGL +{ + public class SVGPathSeg + { + public SVGPathSegType type; + public bool relative; + public List<float> parameters = new List<float>(); + public string raw; + + public SVGPathSeg(SVGPathSegType type) + { + this.type = type; + } + + public float value + { + get + { + if (type == SVGPathSegType.H) + return SVG.yMirror ? -parameters[0] : parameters[0]; + else + return parameters[0]; + } + } + public float x { get { return parameters[0]; } } + public float y { get { return SVG.yMirror ? -parameters[1] : parameters[1]; } } + public Vector2 p1 { get { return new Vector2(parameters[0], (SVG.yMirror ? -parameters[1] : parameters[1])); } } + public Vector2 p2 { get { return new Vector2(parameters[2], (SVG.yMirror ? -parameters[3] : parameters[3])); } } + public Vector2 p3 { get { return new Vector2(parameters[4], (SVG.yMirror ? -parameters[5] : parameters[5])); } } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVGPathSeg.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVGPathSeg.cs.meta new file mode 100644 index 0000000..8127559 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVGPathSeg.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2c97d44ceb28a471aa3d657f3984e6b1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVGPathSegType.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVGPathSegType.cs new file mode 100644 index 0000000..174dc1c --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVGPathSegType.cs @@ -0,0 +1,51 @@ +using System.Collections.Generic; +using System.Text.RegularExpressions; +using UnityEngine; +using UnityEngine.UI; + +namespace XUGL +{ + public enum SVGPathSegType + { + /// <summary> + /// move to + /// </summary> + M, + /// <summary> + /// line to + /// </summary> + L, + /// <summary> + /// horizontal line to + /// </summary> + H, + /// <summary> + /// vertial line to + /// </summary> + V, + /// <summary> + /// curve to + /// </summary> + C, + /// <summary> + /// smooth curve to + /// </summary> + S, + /// <summary> + /// quadratic bezier curve + /// </summary> + Q, + /// <summary> + /// smooth quadratic bezier curve to + /// </summary> + T, + /// <summary> + /// elliptical Arc + /// </summary> + A, + /// <summary> + /// close path + /// </summary> + Z + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVGPathSegType.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVGPathSegType.cs.meta new file mode 100644 index 0000000..217d4b6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/SVG/SVGPathSegType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ebd7fe1a38c81433697bbe21c2e962ba +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/UGL.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/UGL.cs new file mode 100644 index 0000000..b260a52 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/UGL.cs @@ -0,0 +1,1901 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace XUGL +{ + /// <summary> + /// UGUI Graphics Library. + /// |UGUI 图形库 + /// </summary> + public static class UGL + { + private static readonly Color32 s_ClearColor32 = new Color32(0, 0, 0, 0); + private static readonly Vector2 s_ZeroVector2 = Vector2.zero; + private static UIVertex[] s_Vertex = new UIVertex[4]; + private static List<Vector3> s_CurvesPosList = new List<Vector3>(); + + /// <summary> + /// Draw a arrow. 画箭头 + /// </summary> + /// <param name="vh"></param> + /// <param name="startPoint">起始位置</param> + /// <param name="arrowPoint">箭头位置</param> + /// <param name="width">箭头宽</param> + /// <param name="height">箭头长</param> + /// <param name="offset">相对箭头位置的偏移</param> + /// <param name="dent">箭头凹度</param> + /// <param name="color">颜色</param> + public static void DrawArrow(VertexHelper vh, Vector3 startPoint, Vector3 arrowPoint, float width, + float height, float offset, float dent, Color32 color) + { + var dir = (arrowPoint - startPoint).normalized; + var sharpPos = arrowPoint + (offset + height / 4) * dir; + var middle = sharpPos + (dent - height) * dir; + var diff = Vector3.Cross(dir, Vector3.forward).normalized * width / 2; + var left = sharpPos - height * dir + diff; + var right = sharpPos - height * dir - diff; + DrawTriangle(vh, middle, sharpPos, left, color); + DrawTriangle(vh, middle, sharpPos, right, color); + } + + /// <summary> + /// Draw a line. 画直线 + /// </summary> + /// <param name="vh"></param> + /// <param name="startPoint">起点</param> + /// <param name="endPoint">终点</param> + /// <param name="width">线宽</param> + /// <param name="color">颜色</param> + public static void DrawLine(VertexHelper vh, Vector3 startPoint, Vector3 endPoint, float width, Color32 color) + { + DrawLine(vh, startPoint, endPoint, width, color, color); + } + + /// <summary> + /// Draw a line. 画直线 + /// </summary> + /// <param name="vh"></param> + /// <param name="startPoint">起点</param> + /// <param name="endPoint">终点</param> + /// <param name="width">线宽</param> + /// <param name="color">颜色</param> + /// <param name="toColor">渐变颜色</param> + public static void DrawLine(VertexHelper vh, Vector3 startPoint, Vector3 endPoint, float width, Color32 color, Color32 toColor) + { + if (startPoint == endPoint) return; + Vector3 v = Vector3.Cross(endPoint - startPoint, Vector3.forward).normalized * width; + s_Vertex[0].position = startPoint - v; + s_Vertex[1].position = endPoint - v; + s_Vertex[2].position = endPoint + v; + s_Vertex[3].position = startPoint + v; + + for (int j = 0; j < 4; j++) + { + s_Vertex[j].color = j == 0 || j == 3 ? color : toColor; + s_Vertex[j].uv0 = s_ZeroVector2; + } + vh.AddUIVertexQuad(s_Vertex); + } + + /// <summary> + /// Draw a line defined by three points. 画一条由3个点确定的折线 + /// </summary> + /// <param name="vh"></param> + /// <param name="startPoint">起始点</param> + /// <param name="middlePoint">中间转折点</param> + /// <param name="endPoint">终点</param> + /// <param name="width">线宽</param> + /// <param name="color">颜色</param> + public static void DrawLine(VertexHelper vh, Vector3 startPoint, Vector3 middlePoint, Vector3 endPoint, + float width, Color32 color) + { + var dir1 = (middlePoint - startPoint).normalized; + var dir2 = (endPoint - middlePoint).normalized; + var dir1v = Vector3.Cross(dir1, Vector3.forward).normalized; + var dir2v = Vector3.Cross(dir2, Vector3.forward).normalized; + var dir3 = (dir1 + dir2).normalized; + var isDown = Vector3.Cross(dir1, dir2).z <= 0; + var angle = (180 - Vector3.Angle(dir1, dir2)) * Mathf.Deg2Rad / 2; + var diff = width / Mathf.Sin(angle); + var dirDp = Vector3.Cross(dir3, Vector3.forward).normalized; + var dnPos = middlePoint + (isDown ? dirDp : -dirDp) * diff; + var upPos1 = middlePoint + (isDown ? -dir1v : dir1v) * width; + var upPos2 = middlePoint + (isDown ? -dir2v : dir2v) * width; + var startUp = startPoint - dir1v * width; + var startDn = startPoint + dir1v * width; + var endUp = endPoint - dir2v * width; + var endDn = endPoint + dir2v * width; + if (isDown) + { + DrawQuadrilateral(vh, startDn, startUp, upPos1, dnPos, color); + DrawQuadrilateral(vh, dnPos, upPos2, endUp, endDn, color); + DrawTriangle(vh, dnPos, upPos1, upPos2, color); + } + else + { + DrawQuadrilateral(vh, startDn, startUp, dnPos, upPos1, color); + DrawQuadrilateral(vh, upPos2, dnPos, endUp, endDn, color); + DrawTriangle(vh, dnPos, upPos1, upPos2, color); + } + } + + public static void DrawLine(VertexHelper vh, List<Vector3> points, float width, Color32 color, bool smooth, bool closepath = false) + { + for (int i = points.Count - 1; i >= 1; i--) + { + if (UGLHelper.IsValueEqualsVector3(points[i], points[i - 1])) + points.RemoveAt(i); + } + if (points.Count < 2) return; + else if (points.Count <= 2) + { + DrawLine(vh, points[0], points[1], width, color); + } + else if (smooth) + { + DrawCurves(vh, points, width, color, 2); + } + else + { + var ltp = Vector3.zero; + var lbp = Vector3.zero; + var ntp = Vector3.zero; + var nbp = Vector3.zero; + var itp = Vector3.zero; + var ibp = Vector3.zero; + var ctp = Vector3.zero; + var cbp = Vector3.zero; + if (closepath && !UGLHelper.IsValueEqualsVector3(points[points.Count - 1], points[0])) + { + points.Add(points[0]); + } + for (int i = 1; i < points.Count - 1; i++) + { + bool bitp = true, bibp = true; + UGLHelper.GetLinePoints(points[i - 1], points[i], points[i + 1], width, + ref ltp, ref lbp, + ref ntp, ref nbp, + ref itp, ref ibp, + ref ctp, ref cbp, + ref bitp, ref bibp); + if (i == 1) + { + vh.AddVert(ltp, color, Vector2.zero); + vh.AddVert(lbp, color, Vector2.zero); + } + if (bitp == bibp) + { + AddVertToVertexHelper(vh, itp, ibp, color); + } + else + { + if (bitp) + { + AddVertToVertexHelper(vh, itp, ctp, color); + AddVertToVertexHelper(vh, itp, cbp, color); + } + else + { + AddVertToVertexHelper(vh, ctp, ibp, color); + AddVertToVertexHelper(vh, cbp, ibp, color); + } + } + } + AddVertToVertexHelper(vh, ntp, nbp, color); + } + } + + public static void AddVertToVertexHelper(VertexHelper vh, Vector3 top, + Vector3 bottom, Color32 color, bool needTriangle = true) + { + AddVertToVertexHelper(vh, top, bottom, color, color, needTriangle); + } + + public static void AddVertToVertexHelper(VertexHelper vh, Vector3 top, + Vector3 bottom, Color32 topColor, Color32 bottomColor, bool needTriangle = true) + { + var lastVertCount = vh.currentVertCount; + vh.AddVert(top, topColor, Vector2.zero); + vh.AddVert(bottom, bottomColor, Vector2.zero); + if (needTriangle) + { + var indexRt = lastVertCount; + var indexRb = indexRt + 1; + var indexLt = indexRt - 2; + var indexLb = indexLt + 1; + vh.AddTriangle(indexLt, indexRb, indexLb); + vh.AddTriangle(indexLt, indexRt, indexRb); + } + } + + /// <summary> + /// Draw a dash line. 画虚线 + /// </summary> + /// <param name="vh"></param> + /// <param name="startPoint">起始点</param> + /// <param name="endPoint">结束点</param> + /// <param name="width">线宽</param> + /// <param name="color">起始颜色</param> + /// <param name="toColor">结束颜色</param> + /// <param name="lineLength">实线部分长度,默认为线宽的12倍</param> + /// <param name="gapLength">间隙部分长度,默认为线宽的3倍</param> + /// <param name="posList">可选,输出的关键点</param> + public static void DrawDashLine(VertexHelper vh, Vector3 startPoint, Vector3 endPoint, float width, + Color32 color, Color32 toColor, float lineLength = 0f, float gapLength = 0f, List<Vector3> posList = null) + { + float dist = Vector3.Distance(startPoint, endPoint); + if (dist < 0.1f) return; + if (lineLength == 0) lineLength = 12 * width; + if (gapLength == 0) gapLength = 3 * width; + int segment = Mathf.CeilToInt(dist / (lineLength + gapLength)); + Vector3 dir = (endPoint - startPoint).normalized; + Vector3 sp = startPoint, np; + var isGradient = !color.Equals(toColor); + if (posList != null) posList.Clear(); + for (int i = 1; i <= segment; i++) + { + if (posList != null) posList.Add(sp); + np = startPoint + dir * dist * i / segment; + var dashep = np - dir * gapLength; + DrawLine(vh, sp, dashep, width, isGradient ? Color32.Lerp(color, toColor, i * 1.0f / segment) : color); + sp = np; + } + if (posList != null) posList.Add(endPoint); + DrawLine(vh, sp, endPoint, width, toColor); + } + + /// <summary> + /// Draw a dot line. 画点线 + /// </summary> + /// <param name="vh"></param> + /// <param name="startPoint">起始点</param> + /// <param name="endPoint">结束点</param> + /// <param name="width">线宽</param> + /// <param name="color">起始颜色</param> + /// <param name="toColor">结束颜色</param> + /// <param name="lineLength">实线部分长度,默认为线宽的3倍</param> + /// <param name="gapLength">间隙部分长度,默认为线宽的3倍</param> + /// <param name="posList">可选,输出的关键点</param> + public static void DrawDotLine(VertexHelper vh, Vector3 startPoint, Vector3 endPoint, float width, + Color32 color, Color32 toColor, float lineLength = 0f, float gapLength = 0f, List<Vector3> posList = null) + { + var dist = Vector3.Distance(startPoint, endPoint); + if (dist < 0.1f) return; + if (lineLength == 0) lineLength = 3 * width; + if (gapLength == 0) gapLength = 3 * width; + var segment = Mathf.CeilToInt(dist / (lineLength + gapLength)); + var dir = (endPoint - startPoint).normalized; + var sp = startPoint; + var np = Vector3.zero; + var isGradient = !color.Equals(toColor); + if (posList != null) posList.Clear(); + for (int i = 1; i <= segment; i++) + { + if (posList != null) posList.Add(sp); + np = startPoint + dir * dist * i / segment; + var dashep = np - dir * gapLength; + DrawLine(vh, sp, dashep, width, isGradient ? Color32.Lerp(color, toColor, i * 1.0f / segment) : color); + sp = np; + } + if (posList != null) posList.Add(endPoint); + DrawLine(vh, sp, endPoint, width, toColor); + } + + /// <summary> + /// Draw a dash-dot line. 画点划线 + /// </summary> + /// <param name="vh"></param> + /// <param name="startPoint">起始点</param> + /// <param name="endPoint">结束点</param> + /// <param name="width">线宽</param> + /// <param name="color">颜色</param> + /// <param name="dashLength">划线长,默认15倍线宽</param> + /// <param name="dotLength">点线长,默认3倍线宽</param> + /// <param name="gapLength">间隙长,默认5倍线宽</param> + /// <param name="posList">可选,输出的关键点</param> + public static void DrawDashDotLine(VertexHelper vh, Vector3 startPoint, Vector3 endPoint, float width, + Color32 color, float dashLength = 0f, float dotLength = 0, float gapLength = 0f, + List<Vector3> posList = null) + { + float dist = Vector3.Distance(startPoint, endPoint); + if (dist < 0.1f) return; + if (dashLength == 0) dashLength = 15 * width; + if (dotLength == 0) dotLength = 3 * width; + if (gapLength == 0) gapLength = 5 * width; + int segment = Mathf.CeilToInt(dist / (dashLength + 2 * gapLength + dotLength)); + Vector3 dir = (endPoint - startPoint).normalized; + Vector3 sp = startPoint, np; + if (posList != null) posList.Clear(); + for (int i = 1; i <= segment; i++) + { + if (posList != null) posList.Add(sp); + np = startPoint + dir * dist * i / segment; + var dashep = np - dir * (2 * gapLength + dotLength); + DrawLine(vh, sp, dashep, width, color); + if (posList != null) posList.Add(dashep); + var dotsp = dashep + gapLength * dir; + var dotep = dotsp + dotLength * dir; + DrawLine(vh, dotsp, dotep, width, color); + if (posList != null) posList.Add(dotsp); + sp = np; + } + if (posList != null) posList.Add(endPoint); + DrawLine(vh, sp, endPoint, width, color); + } + + /// <summary> + /// Draw a dash-dot-dot line. 画双点划线 + /// </summary> + /// <param name="vh"></param> + /// <param name="startPoint">起始点</param> + /// <param name="endPoint">结束点</param> + /// <param name="width">线宽</param> + /// <param name="color">颜色</param> + /// <param name="dashLength">折线长,默认15倍线宽</param> + /// <param name="dotLength">点线长,默认3倍线宽</param> + /// <param name="gapLength">间隙长,默认5倍线宽</param> + /// <param name="posList">可选,输出的关键点</param> + public static void DrawDashDotDotLine(VertexHelper vh, Vector3 startPoint, Vector3 endPoint, float width, + Color32 color, float dashLength = 0f, float dotLength = 0f, float gapLength = 0f, + List<Vector3> posList = null) + { + float dist = Vector3.Distance(startPoint, endPoint); + if (dist < 0.1f) return; + if (dashLength == 0) dashLength = 15 * width; + if (dotLength == 0) dotLength = 3 * width; + if (gapLength == 0) gapLength = 5 * width; + int segment = Mathf.CeilToInt(dist / (dashLength + 3 * gapLength + 2 * dotLength)); + Vector3 dir = (endPoint - startPoint).normalized; + Vector3 sp = startPoint, np; + if (posList != null) posList.Clear(); + for (int i = 1; i <= segment; i++) + { + if (posList != null) posList.Add(sp); + np = startPoint + dir * dist * i / segment; + var dashep = np - dir * (3 * gapLength + 2 * dotLength); + DrawLine(vh, sp, dashep, width, color); + if (posList != null) posList.Add(dashep); + var dotsp = dashep + gapLength * dir; + var dotep = dotsp + dotLength * dir; + DrawLine(vh, dotsp, dotep, width, color); + if (posList != null) posList.Add(dotep); + var dotsp2 = dotep + gapLength * dir; + var dotep2 = dotsp2 + dotLength * dir; + DrawLine(vh, dotsp2, dotep2, width, color); + if (posList != null) posList.Add(dotep2); + sp = np; + } + if (posList != null) posList.Add(endPoint); + DrawLine(vh, sp, endPoint, width, color); + } + + /// <summary> + /// Draw a zebar-line. 画斑马线 + /// </summary> + /// <param name="vh"></param> + /// <param name="startPoint">起始点</param> + /// <param name="endPoint">结束点</param> + /// <param name="width">线宽</param> + /// <param name="zebraWidth">斑马条纹宽</param> + /// <param name="zebraGap">间隙宽</param> + /// <param name="color">起始颜色</param> + /// <param name="toColor">结束颜色</param> + public static void DrawZebraLine(VertexHelper vh, Vector3 startPoint, Vector3 endPoint, float width, + float zebraWidth, float zebraGap, Color32 color, Color32 toColor, float maxDistance) + { + var dist = Vector3.Distance(startPoint, endPoint); + if (dist < 0.1f) return; + if (zebraWidth == 0) zebraWidth = 3 * width; + if (zebraGap == 0) zebraGap = 3 * width; + var allSegment = Mathf.CeilToInt(maxDistance / (zebraWidth + zebraGap)); + var segment = Mathf.CeilToInt(dist / maxDistance * allSegment); + var dir = (endPoint - startPoint).normalized; + var sp = startPoint; + var np = Vector3.zero; + var isGradient = !color.Equals(toColor); + zebraWidth = (maxDistance - zebraGap * (allSegment - 1)) / allSegment; + for (int i = 1; i <= segment; i++) + { + np = sp + dir * zebraWidth; + DrawLine(vh, sp, np, width, isGradient ? Color32.Lerp(color, toColor, i * 1.0f / allSegment) : color); + sp = np + dir * zebraGap; + } + } + + /// <summary> + /// Draw a diamond. 画菱形(钻石形状) + /// </summary> + /// <param name="vh"></param> + /// <param name="center">中心点</param> + /// <param name="size">尺寸</param> + /// <param name="color">颜色</param> + public static void DrawDiamond(VertexHelper vh, Vector3 center, float size, Color32 color) + { + DrawDiamond(vh, center, size, color, color); + } + + /// <summary> + /// Draw a diamond. 画菱形(钻石形状) + /// </summary> + /// <param name="vh"></param> + /// <param name="center">中心点</param> + /// <param name="size">尺寸</param> + /// <param name="color">渐变色1</param> + /// <param name="toColor">渐变色2</param> + public static void DrawDiamond(VertexHelper vh, Vector3 center, float size, Color32 color, Color32 toColor) + { + var p1 = new Vector2(center.x - size, center.y); + var p2 = new Vector2(center.x, center.y + size); + var p3 = new Vector2(center.x + size, center.y); + var p4 = new Vector2(center.x, center.y - size); + DrawTriangle(vh, p4, p1, p2, color, color, toColor); + DrawTriangle(vh, p3, p4, p2, color, color, toColor); + } + + /// <summary> + /// Draw a square. 画正方形 + /// </summary> + /// <param name="center">中心点</param> + /// <param name="radius">半径</param> + /// <param name="color">颜色</param> + public static void DrawSquare(VertexHelper vh, Vector3 center, float radius, Color32 color) + { + DrawSquare(vh, center, radius, color, color, true); + } + + /// <summary> + /// Draw a square. 画带渐变的正方形 + /// </summary> + /// <param name="vh"></param> + /// <param name="center">中心点</param> + /// <param name="radius">半径</param> + /// <param name="color">渐变色1</param> + /// <param name="toColor">渐变色2</param> + /// <param name="vertical">渐变是否为垂直方向</param> + public static void DrawSquare(VertexHelper vh, Vector3 center, float radius, Color32 color, + Color32 toColor, bool vertical = true) + { + Vector3 p1, p2, p3, p4; + if (vertical) + { + p1 = new Vector3(center.x + radius, center.y - radius); + p2 = new Vector3(center.x - radius, center.y - radius); + p3 = new Vector3(center.x - radius, center.y + radius); + p4 = new Vector3(center.x + radius, center.y + radius); + } + else + { + p1 = new Vector3(center.x - radius, center.y - radius); + p2 = new Vector3(center.x - radius, center.y + radius); + p3 = new Vector3(center.x + radius, center.y + radius); + p4 = new Vector3(center.x + radius, center.y - radius); + } + DrawQuadrilateral(vh, p1, p2, p3, p4, color, toColor); + } + + /// <summary> + /// Draw a rectangle. 画带长方形 + /// </summary> + /// <param name="p1">起始点</param> + /// <param name="p2">结束点</param> + /// <param name="radius">半径</param> + /// <param name="color">颜色</param> + public static void DrawRectangle(VertexHelper vh, Vector3 p1, Vector3 p2, float radius, Color32 color) + { + DrawRectangle(vh, p1, p2, radius, color, color); + } + + /// <summary> + /// Draw a rectangle. 画带渐变的长方形 + /// </summary> + /// <param name="vh"></param> + /// <param name="p1">起始点</param> + /// <param name="p2">结束点</param> + /// <param name="radius">半径</param> + /// <param name="color">渐变色1</param> + /// <param name="toColor">渐变色2</param> + public static void DrawRectangle(VertexHelper vh, Vector3 p1, Vector3 p2, float radius, Color32 color, + Color32 toColor) + { + var dir = (p2 - p1).normalized; + var dirv = Vector3.Cross(dir, Vector3.forward).normalized; + + var p3 = p1 + dirv * radius; + var p4 = p1 - dirv * radius; + var p5 = p2 - dirv * radius; + var p6 = p2 + dirv * radius; + DrawQuadrilateral(vh, p3, p4, p5, p6, color, toColor); + } + + /// <summary> + /// Draw a rectangle. 画长方形 + /// </summary> + /// <param name="vh"></param> + /// <param name="p">中心点</param> + /// <param name="xRadius">x宽</param> + /// <param name="yRadius">y宽</param> + /// <param name="color">颜色</param> + /// <param name="vertical">是否垂直方向</param> + public static void DrawRectangle(VertexHelper vh, Vector3 p, float xRadius, float yRadius, + Color32 color, bool vertical = true) + { + DrawRectangle(vh, p, xRadius, yRadius, color, color, vertical); + } + + /// <summary> + /// Draw a rectangle. 画带渐变的长方形 + /// </summary> + /// <param name="vh"></param> + /// <param name="p">中心点</param> + /// <param name="xRadius">x宽</param> + /// <param name="yRadius">y宽</param> + /// <param name="color">渐变色1</param> + /// <param name="toColor">渐变色2</param> + /// <param name="vertical">是否垂直方向</param> + public static void DrawRectangle(VertexHelper vh, Vector3 p, float xRadius, float yRadius, + Color32 color, Color32 toColor, bool vertical = true) + { + Vector3 p1, p2, p3, p4; + if (vertical) + { + p1 = new Vector3(p.x + xRadius, p.y - yRadius); + p2 = new Vector3(p.x - xRadius, p.y - yRadius); + p3 = new Vector3(p.x - xRadius, p.y + yRadius); + p4 = new Vector3(p.x + xRadius, p.y + yRadius); + } + else + { + p1 = new Vector3(p.x - xRadius, p.y - yRadius); + p2 = new Vector3(p.x - xRadius, p.y + yRadius); + p3 = new Vector3(p.x + xRadius, p.y + yRadius); + p4 = new Vector3(p.x + xRadius, p.y - yRadius); + } + + DrawQuadrilateral(vh, p1, p2, p3, p4, color, toColor); + } + + public static void DrawRectangle(VertexHelper vh, Rect rect, Color32 color) + { + DrawRectangle(vh, rect.center, rect.width / 2, rect.height / 2, color, color, true); + } + + public static void DrawRectangle(VertexHelper vh, Rect rect, Color32 color, Color32 toColor) + { + DrawRectangle(vh, rect.center, rect.width / 2, rect.height / 2, color, toColor, true); + } + + public static void DrawRectangle(VertexHelper vh, Rect rect, float border, Color32 color) + { + DrawRectangle(vh, rect, border, color, color); + } + + public static void DrawRectangle(VertexHelper vh, Rect rect, float border, Color32 color, Color32 toColor) + { + DrawRectangle(vh, rect.center, rect.width / 2 - border, rect.height / 2 - border, color, toColor, true); + } + + /// <summary> + /// Draw a quadrilateral. 画任意的四边形 + /// </summary> + /// <param name="vh"></param> + /// <param name="p1"></param> + /// <param name="p2"></param> + /// <param name="p3"></param> + /// <param name="p4"></param> + /// <param name="color"></param> + public static void DrawQuadrilateral(VertexHelper vh, Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4, + Color32 color) + { + DrawQuadrilateral(vh, p1, p2, p3, p4, color, color); + } + + /// <summary> + /// Draw a quadrilateral. 画任意带渐变的四边形 + /// </summary> + /// <param name="vh"></param> + /// <param name="p1"></param> + /// <param name="p2"></param> + /// <param name="p3"></param> + /// <param name="p4"></param> + /// <param name="startColor"></param> + /// <param name="toColor"></param> + public static void DrawQuadrilateral(VertexHelper vh, Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4, + Color32 startColor, Color32 toColor) + { + DrawQuadrilateral(vh, p1, p2, p3, p4, startColor, startColor, toColor, toColor); + } + + public static void DrawQuadrilateral(VertexHelper vh, Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4, + Color32 color1, Color32 color2, Color32 color3, Color32 color4) + { + s_Vertex[0].position = p1; + s_Vertex[1].position = p2; + s_Vertex[2].position = p3; + s_Vertex[3].position = p4; + s_Vertex[0].color = color1; + s_Vertex[1].color = color2; + s_Vertex[2].color = color3; + s_Vertex[3].color = color4; + for (int j = 0; j < 4; j++) + { + s_Vertex[j].uv0 = s_ZeroVector2; + } + vh.AddUIVertexQuad(s_Vertex); + } + + public static void InitCornerRadius(float[] cornerRadius, float width, float height, bool horizontal, + bool invert, ref float brLt, ref float brRt, ref float brRb, ref float brLb, ref bool needRound) + { + if (cornerRadius == null || cornerRadius.Length == 0) return; + if (invert) + { + if (horizontal) + { + brLt = cornerRadius.Length > 0 ? cornerRadius[1] : 0; + brRt = cornerRadius.Length > 1 ? cornerRadius[0] : 0; + brRb = cornerRadius.Length > 2 ? cornerRadius[3] : 0; + brLb = cornerRadius.Length > 3 ? cornerRadius[2] : 0; + } + else + { + brLt = cornerRadius.Length > 0 ? cornerRadius[3] : 0; + brRt = cornerRadius.Length > 1 ? cornerRadius[2] : 0; + brRb = cornerRadius.Length > 2 ? cornerRadius[1] : 0; + brLb = cornerRadius.Length > 3 ? cornerRadius[0] : 0; + } + } + else + { + brLt = cornerRadius.Length > 0 ? cornerRadius[0] : 0; + brRt = cornerRadius.Length > 1 ? cornerRadius[1] : 0; + brRb = cornerRadius.Length > 2 ? cornerRadius[2] : 0; + brLb = cornerRadius.Length > 3 ? cornerRadius[3] : 0; + } + + needRound = brLb != 0 || brRt != 0 || brRb != 0 || brLb != 0; + if (needRound) + { + var min = Mathf.Min(width, height); + if (brLt == 1 && brRt == 1 && brRb == 1 && brLb == 1) + { + brLt = brRt = brRb = brLb = min / 2; + return; + } + if (brLt > 0 && brLt <= 1) brLt = brLt * min; + if (brRt > 0 && brRt <= 1) brRt = brRt * min; + if (brRb > 0 && brRb <= 1) brRb = brRb * min; + if (brLb > 0 && brLb <= 1) brLb = brLb * min; + if (horizontal) + { + if (brLb + brLt >= height) + { + var total = brLb + brLt; + brLb = height * (brLb / total); + brLt = height * (brLt / total); + } + if (brRt + brRb >= height) + { + var total = brRt + brRb; + brRt = height * (brRt / total); + brRb = height * (brRb / total); + } + if (brLt + brRt >= width) + { + var total = brLt + brRt; + brLt = width * (brLt / total); + brRt = width * (brRt / total); + } + if (brRb + brLb >= width) + { + var total = brRb + brLb; + brRb = width * (brRb / total); + brLb = width * (brLb / total); + } + } + else + { + if (brLt + brRt >= width) + { + var total = brLt + brRt; + brLt = width * (brLt / total); + brRt = width * (brRt / total); + } + if (brRb + brLb >= width) + { + var total = brRb + brLb; + brRb = width * (brRb / total); + brLb = width * (brLb / total); + } + if (brLb + brLt >= height) + { + var total = brLb + brLt; + brLb = height * (brLb / total); + brLt = height * (brLt / total); + } + if (brRt + brRb >= height) + { + var total = brRt + brRb; + brRt = height * (brRt / total); + brRb = height * (brRb / total); + } + } + } + } + + public static void DrawRoundRectangle(VertexHelper vh, Rect rect, + Color32 color, Color32 toColor, float rotate = 0, float[] cornerRadius = null, bool isYAxis = false, + float smoothness = 2, bool invert = false) + { + DrawRoundRectangle(vh, rect.center, rect.width, rect.height, color, toColor, rotate, cornerRadius, + isYAxis, smoothness, invert); + } + + /// <summary> + /// 绘制圆角矩形 + /// </summary> + /// <param name="vh"></param> + /// <param name="center"></param> + /// <param name="rectWidth"></param> + /// <param name="rectHeight"></param> + /// <param name="color"></param> + /// <param name="toColor"></param> + /// <param name="rotate"></param> + /// <param name="cornerRadius"></param> + /// <param name="horizontal"></param> + /// <param name="smoothness"></param> + /// <param name="invert"></param> + public static void DrawRoundRectangle(VertexHelper vh, Vector3 center, float rectWidth, float rectHeight, + Color32 color, Color32 toColor, float rotate = 0, float[] cornerRadius = null, bool horizontal = false, + float smoothness = 2, bool invert = false) + { + if (invert) + { + var temp = toColor; + toColor = color; + color = temp; + } + var isGradient = !UGLHelper.IsValueEqualsColor(color, toColor); + var halfWid = rectWidth / 2; + var halfHig = rectHeight / 2; + float brLt = 0, brRt = 0, brRb = 0, brLb = 0; + bool needRound = false; + InitCornerRadius(cornerRadius, rectWidth, rectHeight, horizontal, invert, ref brLt, ref brRt, ref brRb, + ref brLb, ref needRound); + var tempCenter = Vector3.zero; + var lbIn = new Vector3(center.x - halfWid, center.y - halfHig); + var ltIn = new Vector3(center.x - halfWid, center.y + halfHig); + var rtIn = new Vector3(center.x + halfWid, center.y + halfHig); + var rbIn = new Vector3(center.x + halfWid, center.y - halfHig); + if (needRound) + { + var lbIn2 = lbIn; + var ltIn2 = ltIn; + var rtIn2 = rtIn; + var rbIn2 = rbIn; + var roundLb = lbIn; + var roundLt = ltIn; + var roundRt = rtIn; + var roundRb = rbIn; + if (brLt > 0) + { + roundLt = new Vector3(center.x - halfWid + brLt, center.y + halfHig - brLt); + ltIn = roundLt + brLt * Vector3.left; + ltIn2 = roundLt + brLt * Vector3.up; + } + if (brRt > 0) + { + roundRt = new Vector3(center.x + halfWid - brRt, center.y + halfHig - brRt); + rtIn = roundRt + brRt * Vector3.up; + rtIn2 = roundRt + brRt * Vector3.right; + } + if (brRb > 0) + { + roundRb = new Vector3(center.x + halfWid - brRb, center.y - halfHig + brRb); + rbIn = roundRb + brRb * Vector3.right; + rbIn2 = roundRb + brRb * Vector3.down; + } + if (brLb > 0) + { + roundLb = new Vector3(center.x - halfWid + brLb, center.y - halfHig + brLb); + lbIn = roundLb + brLb * Vector3.left; + lbIn2 = roundLb + brLb * Vector3.down; + } + + if (horizontal) + { + var maxLeft = Mathf.Max(brLt, brLb); + var maxRight = Mathf.Max(brRt, brRb); + var ltInRight = ltIn + maxLeft * Vector3.right; + var lbInRight = lbIn + maxLeft * Vector3.right; + var rtIn2Left = rtIn2 + maxRight * Vector3.left; + var rbInLeft = rbIn + maxRight * Vector3.left; + + var roundLbRight = roundLb + (maxLeft - brLb) * Vector3.right; + var lbIn2Right = lbIn2 + (maxLeft - brLb) * Vector3.right; + if (roundLbRight.x > roundRb.x) roundLbRight.x = roundRb.x; + if (lbIn2Right.x > roundRb.x) lbIn2Right.x = roundRb.x; + + var ltIn2Right = ltIn2 + (maxLeft - brLt) * Vector3.right; + var roundLtRight = roundLt + (maxLeft - brLt) * Vector3.right; + if (ltIn2Right.x > roundRt.x) ltIn2Right.x = roundRt.x; + if (roundLtRight.x > roundRt.x) roundLtRight.x = roundRt.x; + + var roundRtLeft = roundRt + (maxRight - brRt) * Vector3.left; + var rtInLeft = rtIn + (maxRight - brRt) * Vector3.left; + if (roundRtLeft.x < roundLt.x) roundRtLeft.x = roundLt.x; + if (rtInLeft.x < roundLt.x) rtInLeft.x = roundLt.x; + + var rbIn2Left = rbIn2 + (maxRight - brRb) * Vector3.left; + var roundRbLeft = roundRb + (maxRight - brRb) * Vector3.left; + if (rbIn2Left.x < roundLb.x) rbIn2Left.x = roundLb.x; + if (roundRbLeft.x < roundLb.x) roundRbLeft.x = roundLb.x; + if (!isGradient) + { + DrawSector(vh, roundLt, brLt, color, color, 270, 360, 1, horizontal, smoothness); + DrawSector(vh, roundRt, brRt, toColor, toColor, 0, 90, 1, horizontal, smoothness); + DrawSector(vh, roundRb, brRb, toColor, toColor, 90, 180, 1, horizontal, smoothness); + DrawSector(vh, roundLb, brLb, color, color, 180, 270, 1, horizontal, smoothness); + + DrawQuadrilateral(vh, ltIn, ltInRight, lbInRight, lbIn, color, color); + DrawQuadrilateral(vh, lbIn2, roundLb, roundLbRight, lbIn2Right, color, color); + DrawQuadrilateral(vh, roundLt, ltIn2, ltIn2Right, roundLtRight, color, color); + + DrawQuadrilateral(vh, rbInLeft, rtIn2Left, rtIn2, rbIn, toColor, toColor); + DrawQuadrilateral(vh, roundRtLeft, rtInLeft, rtIn, roundRt, toColor, toColor); + DrawQuadrilateral(vh, rbIn2Left, roundRbLeft, roundRb, rbIn2, toColor, toColor); + + var clt = new Vector3(center.x - halfWid + maxLeft, center.y + halfHig); + var crt = new Vector3(center.x + halfWid - maxRight, center.y + halfHig); + var crb = new Vector3(center.x + halfWid - maxRight, center.y - halfHig); + var clb = new Vector3(center.x - halfWid + maxLeft, center.y - halfHig); + if (crt.x > clt.x) + { + DrawQuadrilateral(vh, clb, clt, crt, crb, color, toColor); + } + } + else + { + var tempLeftColor = Color32.Lerp(color, toColor, maxLeft / rectWidth); + var upLeftColor = Color32.Lerp(color, tempLeftColor, brLt / maxLeft); + var downLeftColor = Color32.Lerp(color, tempLeftColor, brLb / maxLeft); + + var tempRightColor = Color32.Lerp(color, toColor, (rectWidth - maxRight) / rectWidth); + var upRightColor = Color32.Lerp(tempRightColor, toColor, (maxRight - brRt) / maxRight); + var downRightColor = Color32.Lerp(tempRightColor, toColor, (maxRight - brRb) / maxRight); + + DrawSector(vh, roundLt, brLt, color, upLeftColor, 270, 360, 1, horizontal, smoothness); + DrawSector(vh, roundRt, brRt, upRightColor, toColor, 0, 90, 1, horizontal, smoothness); + DrawSector(vh, roundRb, brRb, downRightColor, toColor, 90, 180, 1, horizontal, smoothness); + DrawSector(vh, roundLb, brLb, color, downLeftColor, 180, 270, 1, horizontal, smoothness); + + DrawQuadrilateral(vh, lbIn, ltIn, ltInRight, lbInRight, color, tempLeftColor); + DrawQuadrilateral(vh, lbIn2, roundLb, roundLbRight, lbIn2Right, downLeftColor, + roundLbRight.x == roundRb.x ? downRightColor : tempLeftColor); + DrawQuadrilateral(vh, roundLt, ltIn2, ltIn2Right, roundLtRight, upLeftColor, + ltIn2Right.x == roundRt.x ? upRightColor : tempLeftColor); + + DrawQuadrilateral(vh, rbInLeft, rtIn2Left, rtIn2, rbIn, tempRightColor, toColor); + DrawQuadrilateral(vh, roundRtLeft, rtInLeft, rtIn, roundRt, + roundRtLeft.x == roundLt.x ? upLeftColor : tempRightColor, upRightColor); + DrawQuadrilateral(vh, rbIn2Left, roundRbLeft, roundRb, rbIn2, + rbIn2Left.x == roundLb.x ? downLeftColor : tempRightColor, downRightColor); + + var clt = new Vector3(center.x - halfWid + maxLeft, center.y + halfHig); + var crt = new Vector3(center.x + halfWid - maxRight, center.y + halfHig); + var crb = new Vector3(center.x + halfWid - maxRight, center.y - halfHig); + var clb = new Vector3(center.x - halfWid + maxLeft, center.y - halfHig); + if (crt.x > clt.x) + { + DrawQuadrilateral(vh, clb, clt, crt, crb, tempLeftColor, tempRightColor); + } + } + } + else + { + var maxup = Mathf.Max(brLt, brRt); + var maxdown = Mathf.Max(brLb, brRb); + var clt = new Vector3(center.x - halfWid, center.y + halfHig - maxup); + var crt = new Vector3(center.x + halfWid, center.y + halfHig - maxup); + var crb = new Vector3(center.x + halfWid, center.y - halfHig + maxdown); + var clb = new Vector3(center.x - halfWid, center.y - halfHig + maxdown); + var lbIn2Up = lbIn2 + maxdown * Vector3.up; + var rbIn2Up = rbIn2 + maxdown * Vector3.up; + var rtInDown = rtIn + maxup * Vector3.down; + var ltIn2Down = ltIn2 + maxup * Vector3.down; + + var roundLtDown = roundLt + (maxup - brLt) * Vector3.down; + var ltInDown = ltIn + (maxup - brLt) * Vector3.down; + if (roundLtDown.y < roundLb.y) roundLtDown.y = roundLb.y; + if (ltInDown.y < roundLb.y) ltInDown.y = roundLb.y; + + var rtIn2Down = rtIn2 + (maxup - brRt) * Vector3.down; + var roundRtDown = roundRt + (maxup - brRt) * Vector3.down; + if (rtIn2Down.y < roundRb.y) rtIn2Down.y = roundRb.y; + if (roundRtDown.y < roundRb.y) roundRtDown.y = roundRb.y; + + var lbInUp = lbIn + (maxdown - brLb) * Vector3.up; + var roundLbUp = roundLb + (maxdown - brLb) * Vector3.up; + if (lbInUp.y > roundLt.y) lbInUp.y = roundLt.y; + if (roundLbUp.y > roundLt.y) roundLbUp.y = roundLt.y; + + var roundRbUp = roundRb + (maxdown - brRb) * Vector3.up; + var rbInUp = rbIn + (maxdown - brRb) * Vector3.up; + if (roundRbUp.y > roundRt.y) roundRbUp.y = roundRt.y; + if (rbInUp.y > roundRt.y) rbInUp.y = roundRt.y; + + if (!isGradient) + { + DrawSector(vh, roundLt, brLt, toColor, toColor, 270, 360, 1, horizontal, smoothness); + DrawSector(vh, roundRt, brRt, toColor, toColor, 0, 90, 1, horizontal, smoothness); + DrawSector(vh, roundRb, brRb, color, color, 90, 180, 1, horizontal, smoothness); + DrawSector(vh, roundLb, brLb, color, color, 180, 270, 1, horizontal, smoothness); + + DrawQuadrilateral(vh, ltIn2, rtIn, rtInDown, ltIn2Down, toColor, toColor); + DrawQuadrilateral(vh, ltIn, roundLt, roundLtDown, ltInDown, toColor, toColor); + DrawQuadrilateral(vh, roundRt, rtIn2, rtIn2Down, roundRtDown, toColor, toColor); + + DrawQuadrilateral(vh, lbIn2, lbIn2Up, rbIn2Up, rbIn2, color, color); + DrawQuadrilateral(vh, lbIn, lbInUp, roundLbUp, roundLb, color, color); + DrawQuadrilateral(vh, roundRb, roundRbUp, rbInUp, rbIn, color, color); + if (clt.y > clb.y) + { + DrawQuadrilateral(vh, clt, crt, crb, clb, toColor, color); + } + } + else + { + var tempUpColor = Color32.Lerp(color, toColor, (rectHeight - maxup) / rectHeight); + var leftUpColor = Color32.Lerp(tempUpColor, toColor, (maxup - brLt) / maxup); + var rightUpColor = Color32.Lerp(tempUpColor, toColor, (maxup - brRt) / maxup); + var tempDownColor = Color32.Lerp(color, toColor, maxdown / rectHeight); + var leftDownColor = Color32.Lerp(color, tempDownColor, brLb / maxdown); + var rightDownColor = Color32.Lerp(color, tempDownColor, brRb / maxdown); + + DrawSector(vh, roundLt, brLt, leftUpColor, toColor, 270, 360, 1, horizontal, smoothness); + DrawSector(vh, roundRt, brRt, rightUpColor, toColor, 0, 90, 1, horizontal, smoothness); + DrawSector(vh, roundRb, brRb, rightDownColor, color, 90, 180, 1, horizontal, smoothness); + DrawSector(vh, roundLb, brLb, leftDownColor, color, 180, 270, 1, horizontal, smoothness); + + DrawQuadrilateral(vh, ltIn2, rtIn, rtInDown, ltIn2Down, toColor, tempUpColor); + DrawQuadrilateral(vh, ltIn, roundLt, roundLtDown, ltInDown, leftUpColor, + roundLtDown.y == roundLb.y ? leftDownColor : tempUpColor); + DrawQuadrilateral(vh, roundRt, rtIn2, rtIn2Down, roundRtDown, rightUpColor, + rtIn2Down.y == roundRb.y ? rightDownColor : tempUpColor); + + DrawQuadrilateral(vh, rbIn2, lbIn2, lbIn2Up, rbIn2Up, color, tempDownColor); + DrawQuadrilateral(vh, roundLb, lbIn, lbInUp, roundLbUp, leftDownColor, + lbInUp.y == roundLt.y ? leftUpColor : tempDownColor); + DrawQuadrilateral(vh, rbIn, roundRb, roundRbUp, rbInUp, rightDownColor, + roundRbUp.y == roundRt.y ? rightUpColor : tempDownColor); + if (clt.y > clb.y) + { + DrawQuadrilateral(vh, clt, crt, crb, clb, tempUpColor, tempDownColor); + } + } + } + } + else + { + if (horizontal) + DrawQuadrilateral(vh, lbIn, ltIn, rtIn, rbIn, color, toColor); + else + DrawQuadrilateral(vh, rbIn, lbIn, ltIn, rtIn, color, toColor); + } + } + + /// <summary> + /// 绘制(圆角)边框 + /// </summary> + /// <param name="vh"></param> + /// <param name="center"></param> + /// <param name="rectWidth"></param> + /// <param name="rectHeight"></param> + /// <param name="borderWidth"></param> + /// <param name="color"></param> + /// <param name="rotate"></param> + /// <param name="cornerRadius"></param> + /// <param name="invertCorner"></param> + /// <param name="extWidth"></param> + public static void DrawBorder(VertexHelper vh, Vector3 center, float rectWidth, float rectHeight, + float borderWidth, Color32 color, float rotate = 0, float[] cornerRadius = null, + bool horizontal = false, float smoothness = 1f, bool invertCorner = false, float extWidth = 0) + { + DrawBorder(vh, center, rectWidth, rectHeight, borderWidth, color, s_ClearColor32, rotate, + cornerRadius, horizontal, smoothness, invertCorner, extWidth); + } + + /// <summary> + /// 绘制(圆角)边框 + /// </summary> + /// <param name="vh"></param> + /// <param name="rect"></param> + /// <param name="borderWidth"></param> + /// <param name="color"></param> + /// <param name="rotate"></param> + /// <param name="cornerRadius"></param> + /// <param name="horizontal"></param> + /// <param name="smoothness"></param> + /// <param name="invertCorner"></param> + /// <param name="extWidth"></param> + public static void DrawBorder(VertexHelper vh, Rect rect, + float borderWidth, Color32 color, float rotate = 0, float[] cornerRadius = null, + bool horizontal = false, float smoothness = 1f, bool invertCorner = false, float extWidth = 0) + { + DrawBorder(vh, rect.center, rect.width, rect.height, borderWidth, color, s_ClearColor32, rotate, + cornerRadius, horizontal, smoothness, invertCorner, extWidth); + } + + /// <summary> + /// 绘制(圆角)边框 + /// </summary> + /// <param name="vh"></param> + /// <param name="center"></param> + /// <param name="rectWidth"></param> + /// <param name="rectHeight"></param> + /// <param name="borderWidth"></param> + /// <param name="color"></param> + /// <param name="toColor"></param> + /// <param name="rotate"></param> + /// <param name="cornerRadius"></param> + /// <param name="horizontal"></param> + /// <param name="smoothness"></param> + /// <param name="invertCorner"></param> + /// <param name="extWidth"></param> + public static void DrawBorder(VertexHelper vh, Vector3 center, float rectWidth, float rectHeight, + float borderWidth, Color32 color, Color32 toColor, float rotate = 0, float[] cornerRadius = null, + bool horizontal = false, float smoothness = 1f, bool invertCorner = false, float extWidth = 0) + { + if (borderWidth == 0 || UGLHelper.IsClearColor(color)) return; + var halfWid = rectWidth / 2; + var halfHig = rectHeight / 2; + var lbIn = new Vector3(center.x - halfWid - extWidth, center.y - halfHig - extWidth); + var lbOt = new Vector3(center.x - halfWid - borderWidth - extWidth, center.y - halfHig - borderWidth - extWidth); + var ltIn = new Vector3(center.x - halfWid - extWidth, center.y + halfHig + extWidth); + var ltOt = new Vector3(center.x - halfWid - borderWidth - extWidth, center.y + halfHig + borderWidth + extWidth); + var rtIn = new Vector3(center.x + halfWid + extWidth, center.y + halfHig + extWidth); + var rtOt = new Vector3(center.x + halfWid + borderWidth + extWidth, center.y + halfHig + borderWidth + extWidth); + var rbIn = new Vector3(center.x + halfWid + extWidth, center.y - halfHig - extWidth); + var rbOt = new Vector3(center.x + halfWid + borderWidth + extWidth, center.y - halfHig - borderWidth - extWidth); + float brLt = 0, brRt = 0, brRb = 0, brLb = 0; + bool needRound = false; + InitCornerRadius(cornerRadius, rectWidth, rectHeight, horizontal, invertCorner, ref brLt, ref brRt, ref brRb, + ref brLb, ref needRound); + var tempCenter = Vector3.zero; + if (UGLHelper.IsClearColor(toColor)) + { + toColor = color; + } + if (needRound) + { + var lbIn2 = lbIn; + var lbOt2 = lbOt; + var ltIn2 = ltIn; + var ltOt2 = ltOt; + var rtIn2 = rtIn; + var rtOt2 = rtOt; + var rbIn2 = rbIn; + var rbOt2 = rbOt; + //if (brLt > 0) + { + tempCenter = new Vector3(center.x - halfWid + brLt, center.y + halfHig - brLt); + brLt += extWidth; + DrawDoughnut(vh, tempCenter, brLt, brLt + borderWidth, horizontal ? color : toColor, s_ClearColor32, + 270, 360, smoothness); + ltIn = tempCenter + brLt * Vector3.left; + ltOt = tempCenter + (brLt + borderWidth) * Vector3.left; + ltIn2 = tempCenter + brLt * Vector3.up; + ltOt2 = tempCenter + (brLt + borderWidth) * Vector3.up; + } + //if (brRt > 0) + { + tempCenter = new Vector3(center.x + halfWid - brRt, center.y + halfHig - brRt); + brRt += extWidth; + DrawDoughnut(vh, tempCenter, brRt, brRt + borderWidth, toColor, s_ClearColor32, 0, 90, smoothness); + rtIn = tempCenter + brRt * Vector3.up; + rtOt = tempCenter + (brRt + borderWidth) * Vector3.up; + rtIn2 = tempCenter + brRt * Vector3.right; + rtOt2 = tempCenter + (brRt + borderWidth) * Vector3.right; + } + //if (brRb > 0) + { + tempCenter = new Vector3(center.x + halfWid - brRb, center.y - halfHig + brRb); + brRb += extWidth; + DrawDoughnut(vh, tempCenter, brRb, brRb + borderWidth, horizontal ? toColor : color, s_ClearColor32, + 90, 180, smoothness); + rbIn = tempCenter + brRb * Vector3.right; + rbOt = tempCenter + (brRb + borderWidth) * Vector3.right; + rbIn2 = tempCenter + brRb * Vector3.down; + rbOt2 = tempCenter + (brRb + borderWidth) * Vector3.down; + } + //if (brLb > 0) + { + tempCenter = new Vector3(center.x - halfWid + brLb, center.y - halfHig + brLb); + brLb += extWidth; + DrawDoughnut(vh, tempCenter, brLb, brLb + borderWidth, color, s_ClearColor32, 180, 270, smoothness); + lbIn = tempCenter + brLb * Vector3.left; + lbOt = tempCenter + (brLb + borderWidth) * Vector3.left; + lbIn2 = tempCenter + brLb * Vector3.down; + lbOt2 = tempCenter + (brLb + borderWidth) * Vector3.down; + } + if (horizontal) + { + DrawQuadrilateral(vh, lbIn, lbOt, ltOt, ltIn, color, color); + DrawQuadrilateral(vh, ltIn2, ltOt2, rtOt, rtIn, color, toColor); + DrawQuadrilateral(vh, rtIn2, rtOt2, rbOt, rbIn, toColor, toColor); + DrawQuadrilateral(vh, rbIn2, rbOt2, lbOt2, lbIn2, toColor, color); + } + else + { + DrawQuadrilateral(vh, lbIn, lbOt, ltOt, ltIn, color, toColor); + DrawQuadrilateral(vh, ltIn2, ltOt2, rtOt, rtIn, toColor, toColor); + DrawQuadrilateral(vh, rtIn2, rtOt2, rbOt, rbIn, toColor, color); + DrawQuadrilateral(vh, rbIn2, rbOt2, lbOt2, lbIn2, color, color); + } + } + else + { + if (rotate > 0) + { + lbIn = UGLHelper.RotateRound(lbIn, center, Vector3.forward, rotate); + lbOt = UGLHelper.RotateRound(lbOt, center, Vector3.forward, rotate); + ltIn = UGLHelper.RotateRound(ltIn, center, Vector3.forward, rotate); + ltOt = UGLHelper.RotateRound(ltOt, center, Vector3.forward, rotate); + rtIn = UGLHelper.RotateRound(rtIn, center, Vector3.forward, rotate); + rtOt = UGLHelper.RotateRound(rtOt, center, Vector3.forward, rotate); + rbIn = UGLHelper.RotateRound(rbIn, center, Vector3.forward, rotate); + rbOt = UGLHelper.RotateRound(rbOt, center, Vector3.forward, rotate); + } + if (horizontal) + { + DrawQuadrilateral(vh, lbIn, lbOt, ltOt, ltIn, color, color); + DrawQuadrilateral(vh, ltIn, ltOt, rtOt, rtIn, color, toColor); + DrawQuadrilateral(vh, rtIn, rtOt, rbOt, rbIn, toColor, toColor); + DrawQuadrilateral(vh, rbIn, rbOt, lbOt, lbIn, toColor, color); + } + else + { + DrawQuadrilateral(vh, lbIn, lbOt, ltOt, ltIn, color, toColor); + DrawQuadrilateral(vh, ltIn, ltOt, rtOt, rtIn, toColor, toColor); + DrawQuadrilateral(vh, rtIn, rtOt, rbOt, rbIn, toColor, color); + DrawQuadrilateral(vh, rbIn, rbOt, lbOt, lbIn, color, color); + } + } + } + + public static void DrawTriangle(VertexHelper vh, Vector3 p1, + Vector3 p2, Vector3 p3, Color32 color) + { + DrawTriangle(vh, p1, p2, p3, color, color, color); + } + + public static void DrawTriangle(VertexHelper vh, Vector3 pos, float size, Color32 color) + { + DrawTriangle(vh, pos, size, color, color); + } + + public static void DrawTriangle(VertexHelper vh, Vector3 pos, float size, Color32 color, Color32 toColor) + { + var x = size * Mathf.Cos(30 * Mathf.PI / 180); + var y = size * Mathf.Sin(30 * Mathf.PI / 180); + var p1 = new Vector2(pos.x - x, pos.y - y); + var p2 = new Vector2(pos.x, pos.y + size); + var p3 = new Vector2(pos.x + x, pos.y - y); + DrawTriangle(vh, p1, p2, p3, color, toColor, color); + } + + public static void DrawTriangle(VertexHelper vh, Vector3 p1, + Vector3 p2, Vector3 p3, Color32 color, Color32 color2, Color32 color3) + { + UIVertex v1 = new UIVertex(); + v1.position = p1; + v1.color = color; + v1.uv0 = s_ZeroVector2; + UIVertex v2 = new UIVertex(); + v2.position = p2; + v2.color = color2; + v2.uv0 = s_ZeroVector2; + UIVertex v3 = new UIVertex(); + v3.position = p3; + v3.color = color3; + v3.uv0 = s_ZeroVector2; + int startIndex = vh.currentVertCount; + vh.AddVert(v1); + vh.AddVert(v2); + vh.AddVert(v3); + vh.AddTriangle(startIndex, startIndex + 1, startIndex + 2); + } + + public static void DrawCricle(VertexHelper vh, Vector3 center, float radius, Color32 color, + float smoothness = 2f) + { + DrawCricle(vh, center, radius, color, color, 0, s_ClearColor32, smoothness); + } + + public static void DrawCricle(VertexHelper vh, Vector3 center, float radius, Color32 color, + Color32 toColor, float smoothness = 2f) + { + DrawSector(vh, center, radius, color, toColor, 0, 360, 0, s_ClearColor32, smoothness); + } + + public static void DrawCricle(VertexHelper vh, Vector3 center, float radius, Color32 color, + Color32 toColor, float borderWidth, Color32 borderColor, float smoothness = 2f) + { + DrawSector(vh, center, radius, color, toColor, 0, 360, borderWidth, borderColor, smoothness); + } + + public static void DrawCricle(VertexHelper vh, Vector3 center, float radius, Color32 color, + float borderWidth, Color32 borderColor, float smoothness = 2f) + { + DrawCricle(vh, center, radius, color, color, borderWidth, borderColor, smoothness); + } + + public static void DrawEmptyCricle(VertexHelper vh, Vector3 center, float radius, float tickness, + Color32 color, Color32 emptyColor, float smoothness = 2f) + { + DrawDoughnut(vh, center, radius - tickness, radius, color, color, emptyColor, 0, 360, 0, s_ClearColor32, + 0, smoothness); + } + + public static void DrawEmptyCricle(VertexHelper vh, Vector3 center, float radius, float tickness, + Color32 color, Color32 emptyColor, float borderWidth, Color32 borderColor, float smoothness = 2f) + { + DrawDoughnut(vh, center, radius - tickness, radius, color, color, emptyColor, 0, 360, borderWidth, + borderColor, 0, smoothness); + } + + public static void DrawEmptyCricle(VertexHelper vh, Vector3 center, float radius, float tickness, + Color32 color, Color32 toColor, Color32 emptyColor, float smoothness = 2f) + { + DrawDoughnut(vh, center, radius - tickness, radius, color, toColor, emptyColor, 0, 360, 0, + s_ClearColor32, 0, smoothness); + } + + public static void DrawEmptyCricle(VertexHelper vh, Vector3 center, float radius, float tickness, + Color32 color, Color32 toColor, Color32 emptyColor, float borderWidth, Color32 borderColor, + float smoothness = 2f) + { + DrawDoughnut(vh, center, radius - tickness, radius, color, toColor, emptyColor, 0, 360, borderWidth, + borderColor, 0, smoothness); + } + + public static void DrawSector(VertexHelper vh, Vector3 center, float radius, Color32 color, + float startDegree, float toDegree, float smoothness = 2f) + { + DrawSector(vh, center, radius, color, color, startDegree, toDegree, 0, s_ClearColor32, smoothness); + } + + public static void DrawSector(VertexHelper vh, Vector3 center, float radius, Color32 color, Color32 toColor, + float startDegree, float toDegree, int gradientType = 0, bool isYAxis = false, float smoothness = 2f) + { + DrawSector(vh, center, radius, color, toColor, startDegree, toDegree, 0, s_ClearColor32, 0, smoothness, + gradientType, isYAxis); + } + + public static void DrawSector(VertexHelper vh, Vector3 center, float radius, Color32 color, + float startDegree, float toDegree, float borderWidth, Color32 borderColor, float smoothness = 2f) + { + DrawSector(vh, center, radius, color, color, startDegree, toDegree, borderWidth, borderColor, smoothness); + } + + public static void DrawSector(VertexHelper vh, Vector3 center, float radius, Color32 color, Color32 toColor, + float startDegree, float toDegree, float borderWidth, Color32 borderColor, float smoothness = 2f) + { + DrawSector(vh, center, radius, color, toColor, startDegree, toDegree, borderWidth, borderColor, 0, smoothness); + } + + /// <summary> + /// 绘制扇形(可带边框、有空白边距、3种类型渐变) + /// </summary> + /// <param name="vh"></param> + /// <param name="center">中心点</param> + /// <param name="radius">半径</param> + /// <param name="color">颜色</param> + /// <param name="toColor">渐变颜色</param> + /// <param name="startDegree">开始角度</param> + /// <param name="toDegree">结束角度</param> + /// <param name="borderWidth">边框宽度</param> + /// <param name="borderColor">边框颜色</param> + /// <param name="gap">边距</param> + /// <param name="smoothness">光滑度</param> + /// <param name="gradientType">渐变类型,0:向圆形渐变,1:水平或垂直渐变,2:开始角度向结束角度渐变</param> + /// <param name="isYAxis">水平渐变还是垂直渐变,gradientType为1时生效</param> + public static void DrawSector(VertexHelper vh, Vector3 center, float radius, Color32 color, Color32 toColor, + float startDegree, float toDegree, float borderWidth, Color32 borderColor, float gap, + float smoothness, int gradientType = 0, bool isYAxis = false) + { + if (radius == 0) return; + if (gap > 0 && Mathf.Abs(toDegree - startDegree) >= 360) gap = 0; + radius -= borderWidth; + smoothness = (smoothness < 0 ? 2f : smoothness); + int segments = (int) ((2 * Mathf.PI * radius) * (Mathf.Abs(toDegree - startDegree) / 360) / smoothness); + if (segments < 1) segments = 1; + float startAngle = startDegree * Mathf.Deg2Rad; + float toAngle = toDegree * Mathf.Deg2Rad; + float realStartAngle = startAngle; + float realToAngle = toAngle; + float halfAngle = (toAngle - startAngle) / 2; + float borderAngle = 0; + float spaceAngle = 0; + + var p2 = center + radius * UGLHelper.GetDire(startAngle); + var p3 = Vector3.zero; + var p4 = Vector3.zero; + var spaceCenter = center; + var realCenter = center; + var lastP4 = center; + var lastColor = color; + var needBorder = borderWidth != 0; + var needSpace = gap != 0; + var borderLineWidth = needSpace ? borderWidth : borderWidth / 2; + var lastPos = Vector3.zero; + var middleDire = UGLHelper.GetDire(startAngle + halfAngle); + if (needBorder || needSpace) + { + float spaceDiff = 0f; + float borderDiff = 0f; + if (needSpace) + { + spaceDiff = gap / Mathf.Sin(halfAngle); + spaceCenter = center + spaceDiff * middleDire; + realCenter = spaceCenter; + spaceAngle = 2 * Mathf.Asin(gap / (2 * radius)); + realStartAngle = startAngle + spaceAngle; + realToAngle = toAngle - spaceAngle; + if (realToAngle < realStartAngle) realToAngle = realStartAngle; + p2 = UGLHelper.GetPos(center, radius, realStartAngle); + } + if (needBorder) + { + borderDiff = borderLineWidth / Mathf.Sin(halfAngle); + realCenter += borderDiff * middleDire; + borderAngle = 2 * Mathf.Asin(borderLineWidth / (2 * radius)); + realStartAngle = realStartAngle + borderAngle; + realToAngle = realToAngle - borderAngle; + if (realToAngle < realStartAngle) + { + realToAngle = realStartAngle; + p2 = UGLHelper.GetPos(center, radius, realStartAngle); + } + else + { + var borderX1 = UGLHelper.GetPos(center, radius, realStartAngle); + DrawQuadrilateral(vh, realCenter, spaceCenter, p2, borderX1, borderColor); + p2 = borderX1; + + var borderX2 = UGLHelper.GetPos(center, radius, realToAngle); + var pEnd = UGLHelper.GetPos(center, radius, toAngle - spaceAngle); + DrawQuadrilateral(vh, realCenter, borderX2, pEnd, spaceCenter, borderColor); + } + } + } + float segmentAngle = (realToAngle - realStartAngle) / segments; + bool isLeft = startDegree >= 180; + for (int i = 0; i <= segments; i++) + { + float currAngle = realStartAngle + i * segmentAngle; + p3 = center + radius * UGLHelper.GetDire(currAngle); + if (gradientType == 1) + { + if (isYAxis) + { + p4 = new Vector3(p3.x, realCenter.y); + var dist = p4.x - realCenter.x; + var tcolor = Color32.Lerp(color, toColor, dist >= 0 ? + dist / radius : + Mathf.Min(radius + dist, radius) / radius); + if (isLeft && (i == segments || i == 0)) tcolor = toColor; + DrawQuadrilateral(vh, lastP4, p2, p3, p4, lastColor, tcolor); + lastP4 = p4; + lastColor = tcolor; + } + else + { + p4 = new Vector3(realCenter.x, p3.y); + var tcolor = Color32.Lerp(color, toColor, Mathf.Abs(p4.y - realCenter.y) / radius); + DrawQuadrilateral(vh, lastP4, p2, p3, p4, lastColor, tcolor); + lastP4 = p4; + lastColor = tcolor; + } + } + else if (gradientType == 2) + { + var tcolor = Color32.Lerp(color, toColor, i / segments); + DrawQuadrilateral(vh, realCenter, p2, p3, realCenter, lastColor, tcolor); + lastColor = tcolor; + } + else + { + AddVertToVertexHelper(vh, p3, realCenter, color, toColor, i > 0); + } + p2 = p3; + + } + if (needBorder || needSpace) + { + if (realToAngle > realStartAngle) + { + var borderX2 = center + radius * UGLHelper.GetDire(realToAngle); + DrawTriangle(vh, realCenter, p2, borderX2, toColor, color, color); + if (needBorder) + { + var realStartDegree = (realStartAngle - borderAngle) * Mathf.Rad2Deg; + var realToDegree = (realToAngle + borderAngle) * Mathf.Rad2Deg; + DrawDoughnut(vh, center, radius, radius + borderWidth, borderColor, s_ClearColor32, + realStartDegree, realToDegree, smoothness); + } + } + } + } + + public static void DrawRoundCap(VertexHelper vh, Vector3 center, float width, float radius, float angle, + bool clockwise, Color32 color, bool end) + { + var px = Mathf.Sin(angle * Mathf.Deg2Rad) * radius; + var py = Mathf.Cos(angle * Mathf.Deg2Rad) * radius; + var pos = new Vector3(px, py) + center; + if (end) + { + if (clockwise) + DrawSector(vh, pos, width, color, angle, angle + 180, 0, s_ClearColor32); + else + DrawSector(vh, pos, width, color, angle, angle - 180, 0, s_ClearColor32); + } + else + { + if (clockwise) + DrawSector(vh, pos, width, color, angle + 180, angle + 360, 0, s_ClearColor32); + else + DrawSector(vh, pos, width, color, angle - 180, angle - 360, 0, s_ClearColor32); + } + } + + public static void DrawDoughnut(VertexHelper vh, Vector3 center, float insideRadius, float outsideRadius, + Color32 color, Color32 emptyColor, float smoothness = 2f) + { + DrawDoughnut(vh, center, insideRadius, outsideRadius, color, color, emptyColor, 0, 360, 0, + s_ClearColor32, 0, smoothness); + } + + public static void DrawDoughnut(VertexHelper vh, Vector3 center, float insideRadius, float outsideRadius, + Color32 color, Color32 emptyColor, float startDegree, + float toDegree, float smoothness = 1f) + { + DrawDoughnut(vh, center, insideRadius, outsideRadius, color, color, emptyColor, startDegree, toDegree, + 0, s_ClearColor32, 0, smoothness); + } + + public static void DrawDoughnut(VertexHelper vh, Vector3 center, float insideRadius, float outsideRadius, + Color32 color, Color32 emptyColor, float startDegree, + float toDegree, float borderWidth, Color32 borderColor, float smoothness = 2f) + { + DrawDoughnut(vh, center, insideRadius, outsideRadius, color, color, emptyColor, startDegree, toDegree, + borderWidth, borderColor, 0, smoothness); + } + + public static void DrawDoughnut(VertexHelper vh, Vector3 center, float insideRadius, float outsideRadius, + Color32 color, Color32 toColor, Color32 emptyColor, float smoothness = 2f) + { + DrawDoughnut(vh, center, insideRadius, outsideRadius, color, toColor, emptyColor, 0, 360, 0, + s_ClearColor32, 0, smoothness); + } + + public static void DrawDoughnut(VertexHelper vh, Vector3 center, float insideRadius, float outsideRadius, + Color32 color, Color32 toColor, Color32 emptyColor, float startDegree, float toDegree, float borderWidth, + Color32 borderColor, float gap, float smoothness, bool roundCap = false, bool clockwise = true) + { + if (toDegree - startDegree == 0) return; + if (gap > 0 && Mathf.Abs(toDegree - startDegree) >= 360) gap = 0; + if (insideRadius <= 0) + { + DrawSector(vh, center, outsideRadius, color, toColor, startDegree, toDegree, borderWidth, borderColor, + gap, smoothness); + return; + } + outsideRadius -= borderWidth; + insideRadius += borderWidth; + smoothness = smoothness < 0 ? 2f : smoothness; + Vector3 p1, p2, p3, p4, e1, e2; + var needBorder = borderWidth != 0; + var needSpace = gap != 0; + var diffAngle = Mathf.Abs(toDegree - startDegree) * Mathf.Deg2Rad; + + int segments = (int) ((2 * Mathf.PI * outsideRadius) * (diffAngle * Mathf.Rad2Deg / 360) / smoothness); + if (segments < 1) segments = 1; + float startAngle = startDegree * Mathf.Deg2Rad; + float toAngle = toDegree * Mathf.Deg2Rad; + + float realStartOutAngle = startAngle; + float realToOutAngle = toAngle; + float realStartInAngle = startAngle; + float realToInAngle = toAngle; + float halfAngle = (toAngle - startAngle) / 2; + float borderAngle = 0, borderInAngle = 0, borderHalfAngle = 0; + float spaceAngle = 0, spaceInAngle = 0, spaceHalfAngle = 0; + + var spaceCenter = center; + var realCenter = center; + var startDire = new Vector3(Mathf.Sin(startAngle), Mathf.Cos(startAngle)).normalized; + var toDire = new Vector3(Mathf.Sin(toAngle), Mathf.Cos(toAngle)).normalized; + var middleDire = new Vector3(Mathf.Sin(startAngle + halfAngle), Mathf.Cos(startAngle + halfAngle)).normalized; + p1 = center + insideRadius * startDire; + p2 = center + outsideRadius * startDire; + e1 = center + insideRadius * toDire; + e2 = center + outsideRadius * toDire; + if (roundCap) + { + var roundRadius = (outsideRadius - insideRadius) / 2; + var roundAngleRadius = insideRadius + roundRadius; + var roundAngle = Mathf.Atan(roundRadius / roundAngleRadius); + if (diffAngle < 2 * roundAngle) + { + roundCap = false; + } + } + if (needBorder || needSpace) + { + if (needSpace) + { + var spaceDiff = gap / Mathf.Sin(halfAngle); + spaceCenter = center + Mathf.Abs(spaceDiff) * middleDire; + realCenter = spaceCenter; + spaceAngle = 2 * Mathf.Asin(gap / (2 * outsideRadius)); + spaceInAngle = 2 * Mathf.Asin(gap / (2 * insideRadius)); + spaceHalfAngle = 2 * Mathf.Asin(gap / (2 * (insideRadius + (outsideRadius - insideRadius) / 2))); + if (clockwise) + { + p1 = UGLHelper.GetPos(center, insideRadius, startAngle + spaceInAngle, false); + e1 = UGLHelper.GetPos(center, insideRadius, toAngle - spaceInAngle, false); + realStartOutAngle = startAngle + spaceAngle; + realToOutAngle = toAngle - spaceAngle; + realStartInAngle = startAngle + spaceInAngle; + realToInAngle = toAngle - spaceInAngle; + } + else + { + p1 = UGLHelper.GetPos(center, insideRadius, startAngle - spaceInAngle, false); + e1 = UGLHelper.GetPos(center, insideRadius, toAngle + spaceInAngle, false); + realStartOutAngle = startAngle - spaceAngle; + realToOutAngle = toAngle + spaceAngle; + realStartInAngle = startAngle - spaceInAngle; + realToOutAngle = toAngle + spaceInAngle; + } + p2 = UGLHelper.GetPos(center, outsideRadius, realStartOutAngle, false); + e2 = UGLHelper.GetPos(center, outsideRadius, realToOutAngle, false); + } + if (needBorder) + { + var borderDiff = borderWidth / Mathf.Sin(halfAngle); + realCenter += Mathf.Abs(borderDiff) * middleDire; + borderAngle = 2 * Mathf.Asin(borderWidth / (2 * outsideRadius)); + borderInAngle = 2 * Mathf.Asin(borderWidth / (2 * insideRadius)); + borderHalfAngle = 2 * Mathf.Asin(borderWidth / (2 * (insideRadius + (outsideRadius - insideRadius) / 2))); + if (clockwise) + { + realStartOutAngle = realStartOutAngle + borderAngle; + realToOutAngle = realToOutAngle - borderAngle; + realStartInAngle = startAngle + spaceInAngle + borderInAngle; + realToInAngle = toAngle - spaceInAngle - borderInAngle; + var newp1 = UGLHelper.GetPos(center, insideRadius, startAngle + spaceInAngle + borderInAngle, false); + var newp2 = UGLHelper.GetPos(center, outsideRadius, realStartOutAngle, false); + if (!roundCap) DrawQuadrilateral(vh, newp2, newp1, p1, p2, borderColor); + p1 = newp1; + p2 = newp2; + if (toAngle - spaceInAngle - 2 * borderInAngle > realStartOutAngle) + { + var newe1 = UGLHelper.GetPos(center, insideRadius, toAngle - spaceInAngle - borderInAngle, false); + var newe2 = UGLHelper.GetPos(center, outsideRadius, realToOutAngle, false); + if (!roundCap) DrawQuadrilateral(vh, newe2, e2, e1, newe1, borderColor); + e1 = newe1; + e2 = newe2; + } + } + else + { + realStartOutAngle = realStartOutAngle - borderAngle; + realToOutAngle = realToOutAngle + borderAngle; + realStartInAngle = startAngle - spaceInAngle - borderInAngle; + realToInAngle = toAngle + spaceInAngle + borderInAngle; + var newp1 = UGLHelper.GetPos(center, insideRadius, startAngle - spaceInAngle - borderInAngle, false); + var newp2 = UGLHelper.GetPos(center, outsideRadius, realStartOutAngle, false); + if (!roundCap) DrawQuadrilateral(vh, newp2, newp1, p1, p2, borderColor); + p1 = newp1; + p2 = newp2; + if (toAngle + spaceInAngle + 2 * borderInAngle < realStartOutAngle) + { + var newe1 = UGLHelper.GetPos(center, insideRadius, toAngle + spaceInAngle + borderInAngle, false); + var newe2 = UGLHelper.GetPos(center, outsideRadius, realToOutAngle, false); + if (!roundCap) DrawQuadrilateral(vh, newe2, e2, e1, newe1, borderColor); + e1 = newe1; + e2 = newe2; + } + } + } + } + if (roundCap) + { + var roundRadius = (outsideRadius - insideRadius) / 2; + var roundAngleRadius = insideRadius + roundRadius; + var roundAngle = Mathf.Atan(roundRadius / roundAngleRadius); + if (clockwise) + { + realStartOutAngle = startAngle + 2 * spaceHalfAngle + borderHalfAngle + roundAngle; + realStartInAngle = startAngle + 2 * spaceHalfAngle + borderHalfAngle + roundAngle; + } + else + { + realStartOutAngle = startAngle - 2 * spaceHalfAngle - borderHalfAngle - roundAngle; + realStartInAngle = startAngle - 2 * spaceHalfAngle - borderHalfAngle - roundAngle; + } + var roundTotalDegree = realStartOutAngle * Mathf.Rad2Deg; + var roundCenter = center + roundAngleRadius * UGLHelper.GetDire(realStartOutAngle); + var sectorStartDegree = clockwise ? roundTotalDegree + 180 : roundTotalDegree; + var sectorToDegree = clockwise ? roundTotalDegree + 360 : roundTotalDegree + 180; + DrawSector(vh, roundCenter, roundRadius, color, sectorStartDegree, sectorToDegree, smoothness / 2); + if (needBorder) + { + DrawDoughnut(vh, roundCenter, roundRadius, roundRadius + borderWidth, borderColor, + s_ClearColor32, sectorStartDegree, sectorToDegree, smoothness / 2); + } + p1 = UGLHelper.GetPos(center, insideRadius, realStartOutAngle); + p2 = UGLHelper.GetPos(center, outsideRadius, realStartOutAngle); + + if (clockwise) + { + realToOutAngle = toAngle - 2 * spaceHalfAngle - borderHalfAngle - roundAngle; + realToInAngle = toAngle - 2 * spaceHalfAngle - borderHalfAngle - roundAngle; + if (realToOutAngle < realStartOutAngle) realToOutAngle = realStartOutAngle; + } + else + { + realToOutAngle = toAngle + 2 * spaceHalfAngle + borderHalfAngle + roundAngle; + realToInAngle = toAngle + 2 * spaceHalfAngle + borderHalfAngle + roundAngle; + if (realToOutAngle > realStartOutAngle) realToOutAngle = realStartOutAngle; + } + roundTotalDegree = realToOutAngle * Mathf.Rad2Deg; + roundCenter = center + roundAngleRadius * UGLHelper.GetDire(realToOutAngle); + sectorStartDegree = clockwise ? roundTotalDegree : roundTotalDegree + 180; + sectorToDegree = clockwise ? roundTotalDegree + 180 : roundTotalDegree + 360; + DrawSector(vh, roundCenter, roundRadius, toColor, sectorStartDegree, sectorToDegree, smoothness / 2); + if (needBorder) + { + DrawDoughnut(vh, roundCenter, roundRadius, roundRadius + borderWidth, borderColor, + s_ClearColor32, sectorStartDegree, sectorToDegree, smoothness / 2); + } + e1 = UGLHelper.GetPos(center, insideRadius, realToOutAngle); + e2 = UGLHelper.GetPos(center, outsideRadius, realToOutAngle); + } + var segmentAngle = (realToInAngle - realStartInAngle) / segments; + var isGradient = !UGLHelper.IsValueEqualsColor(color, toColor); + for (int i = 0; i <= segments; i++) + { + float currAngle = realStartInAngle + i * segmentAngle; + p3 = new Vector3(center.x + outsideRadius * Mathf.Sin(currAngle), + center.y + outsideRadius * Mathf.Cos(currAngle)); + p4 = new Vector3(center.x + insideRadius * Mathf.Sin(currAngle), + center.y + insideRadius * Mathf.Cos(currAngle)); + if (isGradient) + { + var tcolor = Color32.Lerp(color, toColor, i * 1.0f / segments); + AddVertToVertexHelper(vh, p3, p4, tcolor, tcolor, i > 0); + } + else + { + AddVertToVertexHelper(vh, p3, p4, color, color, i > 0); + } + p1 = p4; + p2 = p3; + } + if (!UGLHelper.IsClearColor(emptyColor)) + { + for (int i = 0; i <= segments; i++) + { + float currAngle = realStartInAngle + i * segmentAngle; + p4 = new Vector3(center.x + insideRadius * Mathf.Sin(currAngle), + center.y + insideRadius * Mathf.Cos(currAngle)); + AddVertToVertexHelper(vh, center, p4, emptyColor, emptyColor, i > 0); + } + } + if (needBorder || needSpace || roundCap) + { + if (clockwise) + { + var isInAngleFixed = toAngle - spaceInAngle - 2 * borderInAngle > realStartOutAngle; + if (isInAngleFixed) DrawQuadrilateral(vh, p2, e2, e1, p1, color, toColor); + else DrawTriangle(vh, p2, e2, p1, color, color, toColor); + if (needBorder) + { + var realStartDegree = (realStartOutAngle - (roundCap ? 0 : borderAngle)) * Mathf.Rad2Deg; + var realToDegree = (realToOutAngle + (roundCap ? 0 : borderAngle)) * Mathf.Rad2Deg; + if (realToDegree < realStartOutAngle) realToDegree = realStartOutAngle; + var inStartDegree = roundCap ? realStartDegree : (startAngle + spaceInAngle) * Mathf.Rad2Deg; + var inToDegree = roundCap ? realToDegree : (toAngle - spaceInAngle) * Mathf.Rad2Deg; + if (inToDegree < inStartDegree) inToDegree = inStartDegree; + if (isInAngleFixed) DrawDoughnut(vh, center, insideRadius - borderWidth, insideRadius, borderColor, + s_ClearColor32, inStartDegree, inToDegree, smoothness); + DrawDoughnut(vh, center, outsideRadius, outsideRadius + borderWidth, borderColor, s_ClearColor32, + realStartDegree, realToDegree, smoothness); + } + } + else + { + var isInAngleFixed = toAngle + spaceInAngle + 2 * borderInAngle < realStartOutAngle; + if (isInAngleFixed) DrawQuadrilateral(vh, p2, e2, e1, p1, color, toColor); + else DrawTriangle(vh, p2, e2, p1, color, color, toColor); + if (needBorder) + { + var realStartDegree = (realStartOutAngle + (roundCap ? 0 : borderAngle)) * Mathf.Rad2Deg; + var realToDegree = (realToOutAngle - (roundCap ? 0 : borderAngle)) * Mathf.Rad2Deg; + var inStartDegree = roundCap ? realStartDegree : (startAngle - spaceInAngle) * Mathf.Rad2Deg; + var inToDegree = roundCap ? realToDegree : (toAngle + spaceInAngle) * Mathf.Rad2Deg; + if (inToDegree > inStartDegree) inToDegree = inStartDegree; + if (isInAngleFixed) + { + DrawDoughnut(vh, center, insideRadius - borderWidth, insideRadius, borderColor, + s_ClearColor32, inStartDegree, inToDegree, smoothness); + } + DrawDoughnut(vh, center, outsideRadius, outsideRadius + borderWidth, borderColor, + s_ClearColor32, realStartDegree, realToDegree, smoothness); + } + } + } + } + + /// <summary> + /// 画贝塞尔曲线 + /// </summary> + /// <param name="vh"></param> + /// <param name="sp">起始点</param> + /// <param name="ep">结束点</param> + /// <param name="cp1">控制点1</param> + /// <param name="cp2">控制点2</param> + /// <param name="lineWidth">曲线宽</param> + /// <param name="lineColor">曲线颜色</param> + public static void DrawCurves(VertexHelper vh, Vector3 sp, Vector3 ep, Vector3 cp1, Vector3 cp2, + float lineWidth, Color32 lineColor, float smoothness) + { + var dist = Vector3.Distance(sp, ep); + var segment = (int) (dist / (smoothness <= 0 ? 2f : smoothness)); + UGLHelper.GetBezierList2(ref s_CurvesPosList, sp, ep, segment, cp1, cp2); + DrawCurvesInternal(vh, s_CurvesPosList, lineWidth, lineColor); + } + + public static void DrawCurves(VertexHelper vh, List<Vector3> points, float width, Color32 color, + float smoothness, float currProgress = float.PositiveInfinity, bool isYAxis = false) + { + for (int i = 0; i < points.Count - 1; i++) + { + var sp = points[i]; + var ep = points[i + 1]; + var lsp = i > 0 ? points[i - 1] : sp; + var nep = i < points.Count - 2 ? points[i + 2] : ep; + var smoothness2 = smoothness; + if (currProgress != float.PositiveInfinity) + { + if (isYAxis) + smoothness2 = ep.y <= currProgress ? smoothness : smoothness * 0.5f; + else + smoothness2 = ep.x <= currProgress ? smoothness : smoothness * 0.5f; + } + if (isYAxis) + UGLHelper.GetBezierListVertical(ref s_CurvesPosList, sp, ep, smoothness2); + else + UGLHelper.GetBezierList(ref s_CurvesPosList, sp, ep, lsp, nep, smoothness2); + + DrawCurvesInternal(vh, s_CurvesPosList, width, color, currProgress, isYAxis); + } + } + + private static void DrawCurvesInternal(VertexHelper vh, List<Vector3> curvesPosList, float lineWidth, + Color32 lineColor, float currProgress = float.PositiveInfinity, bool isYAxis = false) + { + if (curvesPosList.Count > 1) + { + var start = curvesPosList[0]; + var to = Vector3.zero; + var dir = curvesPosList[1] - start; + var diff = Vector3.Cross(dir, Vector3.forward).normalized * lineWidth; + var startUp = start - diff; + var startDn = start + diff; + var toUp = Vector3.zero; + var toDn = Vector3.zero; + + var lastVertCount = vh.currentVertCount; + AddVertToVertexHelper(vh, startUp, startDn, lineColor, false); + for (int i = 1; i < curvesPosList.Count; i++) + { + to = curvesPosList[i]; + if (currProgress != float.PositiveInfinity) + { + if (isYAxis && to.y > currProgress) + break; + if (!isYAxis && to.x > currProgress) + break; + } + + diff = Vector3.Cross(to - start, Vector3.forward).normalized * lineWidth; + toUp = to - diff; + toDn = to + diff; + + AddVertToVertexHelper(vh, toUp, toDn, lineColor); + + startUp = toUp; + startDn = toDn; + start = to; + } + AddVertToVertexHelper(vh, toUp, toDn, lineColor); + } + } + + public static void DrawSvgPath(VertexHelper vh, string path) + { + SVG.DrawPath(vh, path); + } + + public static void DrawEllipse(VertexHelper vh, Vector3 center, float w, float h, Color32 color, float smoothness = 1) + { + DrawEllipse(vh, center, w, h, color, smoothness, 0, s_ClearColor32, 0, 360); + } + + public static void DrawEllipse(VertexHelper vh, Vector3 center, float w, float h, Color32 color, float smoothness, + float borderWidth, Color32 borderColor, + float startAngle, float endAngle) + { + startAngle = (startAngle + 360) % 360; + endAngle = (endAngle + 360) % 360; + if (endAngle < startAngle) + endAngle += 360; + if (endAngle <= startAngle) + return; + + var angle = startAngle; + var lp = Vector2.zero; + var fill = color.a != 0; + var border = borderWidth != 0 && borderColor.a != 0; + if (!fill && !border) + return; + + var startTriangleIndex = vh.currentVertCount; + if (fill) + { + vh.AddVert(center, color, Vector2.zero); + } + if (smoothness < 0.5f) + smoothness = 0.5f; + + var i = 0; + while (angle <= endAngle) + { + var rad = angle * Mathf.Deg2Rad; + var x = center.x + w * Mathf.Cos(rad); + var y = center.y + h * Mathf.Sin(rad); + var p1 = new Vector3(x, y); + vh.AddVert(p1, color, Vector2.zero); + if (border) + { + var dire = (p1 - center).normalized; + var diff = dire * borderWidth; + var p2 = p1 + diff; + vh.AddVert(p1, borderColor, Vector2.zero); + vh.AddVert(p2, borderColor, Vector2.zero); + + if (i > 0) + { + var index = startTriangleIndex + i * 3 + 2; + vh.AddTriangle(index - 3, index + 1, index - 2); + vh.AddTriangle(index - 3, index, index + 1); + if (fill) + vh.AddTriangle(startTriangleIndex, index - 1, index - 4); + } + } + else if (i > 0 && fill) + { + var index = startTriangleIndex + i; + vh.AddTriangle(startTriangleIndex, index + 1, index); + } + i++; + angle += smoothness; + } + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/UGL.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/UGL.cs.meta new file mode 100644 index 0000000..0ca349f --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/UGL.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 463dc57c2fc1849379941a7facf8dc84 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/UGLExample.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/UGLExample.cs new file mode 100644 index 0000000..a245ec7 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/UGLExample.cs @@ -0,0 +1,55 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace XUGL +{ + [ExecuteInEditMode] + public class UGLExample : MaskableGraphic + { + private float m_Width = 800; + private float m_Height = 800; + private Vector3 m_Center = Vector3.zero; + private Vector3 m_LeftTopPos = Vector3.zero; + private Color32 m_BackgroundColor = new Color32(224, 224, 224, 255); + private Color32 m_DrawColor = new Color32(255, 132, 142, 255); + private float[] m_BorderRadius = new float[] { 5, 5, 10, 10 }; + + protected override void Awake() + { + base.Awake(); + var rectTransform = GetComponent<RectTransform>(); + rectTransform.sizeDelta = new Vector2(500, 500); + rectTransform.anchorMin = new Vector2(0.5f, 0.5f); + rectTransform.anchorMax = new Vector2(0.5f, 0.5f); + rectTransform.pivot = new Vector2(0.5f, 0.5f); + m_Center = Vector3.zero; + m_LeftTopPos = new Vector3(-m_Width / 2, m_Height / 2); + } + + protected override void OnPopulateMesh(VertexHelper vh) + { + Vector3 sp, cp, ep; + vh.Clear(); + + //背景边框 + UGL.DrawSquare(vh, m_Center, m_Width / 2, m_BackgroundColor); + UGL.DrawBorder(vh, m_Center, m_Width, m_Height, 40, Color.green, Color.red, 0, m_BorderRadius, false, 1); + + //点 + UGL.DrawCricle(vh, m_LeftTopPos + new Vector3(20, -20), 10, m_DrawColor); + + //直线 + sp = new Vector3(m_LeftTopPos.x + 50, m_LeftTopPos.y - 20); + ep = new Vector3(m_LeftTopPos.x + 250, m_LeftTopPos.y - 20); + UGL.DrawLine(vh, sp, ep, 3, m_DrawColor); + + //3点确定的折线 + sp = new Vector3(m_LeftTopPos.x + 20, m_LeftTopPos.y - 100); + cp = new Vector3(m_LeftTopPos.x + 200, m_LeftTopPos.y - 40); + ep = new Vector3(m_LeftTopPos.x + 250, m_LeftTopPos.y - 80); + UGL.DrawLine(vh, sp, cp, ep, 5, m_DrawColor); + + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/UGLExample.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/UGLExample.cs.meta new file mode 100644 index 0000000..e216aea --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/UGLExample.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e8a87ea5df031473da3eb5fb8f57e20a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/UGLHelper.cs b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/UGLHelper.cs new file mode 100644 index 0000000..9d17934 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/UGLHelper.cs @@ -0,0 +1,389 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace XUGL +{ + public static class UGLHelper + { + public static bool IsValueEqualsColor(Color32 color1, Color32 color2) + { + return color1.a == color2.a && + color1.b == color2.b && + color1.g == color2.g && + color1.r == color2.r; + } + + public static bool IsValueEqualsColor(Color color1, Color color2) + { + return color1.a == color2.a && + color1.b == color2.b && + color1.g == color2.g && + color1.r == color2.r; + } + + public static bool IsValueEqualsString(string str1, string str2) + { + if (str1 == null && str2 == null) + return true; + else if (str1 != null && str2 != null) + return str1.Equals(str2); + else return false; + } + + public static bool IsValueEqualsVector2(Vector2 v1, Vector2 v2) + { + return v1.x == v2.x && + v1.y == v2.y; + } + + public static bool IsValueEqualsVector3(Vector3 v1, Vector3 v2) + { + return v1.x == v2.x && + v1.y == v2.y && + v1.z == v2.z; + } + + public static bool IsValueEqualsVector3(Vector3 v1, Vector2 v2) + { + return v1.x == v2.x && + v1.y == v2.y; + } + + public static bool IsValueEqualsList<T>(List<T> list1, List<T> list2) + { + if (list1 == null || list2 == null) + return false; + + if (list1.Count != list2.Count) + return false; + + for (int i = 0; i < list1.Count; i++) + { + if (list1[i] == null && list2[i] == null) + { } + else + { + if (list1[i] != null) + { + if (!list1[i].Equals(list2[i])) + return false; + } + else + { + if (!list2[i].Equals(list1[i])) + return false; + } + } + } + return true; + } + + public static bool IsClearColor(Color32 color) + { + return color.a == 0 && + color.b == 0 && + color.g == 0 && + color.r == 0; + } + + public static bool IsClearColor(Color color) + { + return color.a == 0 && + color.b == 0 && + color.g == 0 && + color.r == 0; + } + + public static bool IsZeroVector(Vector3 pos) + { + return pos.x == 0 && + pos.y == 0 && + pos.z == 0; + } + + public static Vector3 RotateRound(Vector3 position, Vector3 center, Vector3 axis, float angle) + { + Vector3 point = Quaternion.AngleAxis(angle, axis) * (position - center); + Vector3 resultVec3 = center + point; + return resultVec3; + } + + public static void GetBezierList(ref List<Vector3> posList, Vector3 sp, Vector3 ep, + Vector3 lsp, Vector3 nep, float smoothness = 2f, float k = 2.0f) + { + float dist = Mathf.Abs(sp.x - ep.x); + Vector3 cp1, cp2; + var dir = (ep - sp).normalized; + var diff = dist / k; + if (lsp == sp) + { + cp1 = sp + dist / k * dir * 1; + cp1.y = sp.y; + cp1 = sp; + } + else + { + cp1 = sp + (ep - lsp).normalized * diff; + } + if (nep == ep) cp2 = ep; + else cp2 = ep - (nep - sp).normalized * diff; + dist = Vector3.Distance(sp, ep); + int segment = (int) (dist / (smoothness <= 0 ? 2f : smoothness)); + if (segment < 1) segment = (int) (dist / 0.5f); + if (segment < 4) segment = 4; + GetBezierList2(ref posList, sp, ep, segment, cp1, cp2); + if (posList.Count < 2) + { + posList.Clear(); + posList.Add(sp); + posList.Add(ep); + } + } + + public static void GetBezierListVertical(ref List<Vector3> posList, Vector3 sp, Vector3 ep, + float smoothness = 2f, float k = 2.0f) + { + Vector3 dir = (ep - sp).normalized; + float dist = Vector3.Distance(sp, ep); + Vector3 cp1 = sp + dist / k * dir * 1; + Vector3 cp2 = sp + dist / k * dir * (k - 1); + cp1.x = sp.x; + cp2.x = ep.x; + int segment = (int) (dist / (smoothness <= 0 ? 2f : smoothness)); + GetBezierList2(ref posList, sp, ep, segment, cp1, cp2); + if (posList.Count < 2) + { + posList.Clear(); + posList.Add(sp); + posList.Add(ep); + } + } + + public static List<Vector3> GetBezierList(Vector3 sp, Vector3 ep, int segment, Vector3 cp) + { + List<Vector3> list = new List<Vector3>(); + for (int i = 0; i < segment; i++) + { + list.Add(GetBezier(i / (float) segment, sp, cp, ep)); + } + list.Add(ep); + return list; + } + + public static void GetBezierList2(ref List<Vector3> posList, Vector3 sp, Vector3 ep, + int segment, Vector3 cp, Vector3 cp2) + { + posList.Clear(); + if (posList.Capacity < segment + 1) + { + posList.Capacity = segment + 1; + } + for (int i = 0; i < segment; i++) + { + posList.Add((GetBezier2(i / (float) segment, sp, cp, cp2, ep))); + } + posList.Add(ep); + } + + public static Vector3 GetBezier(float t, Vector3 sp, Vector3 cp, Vector3 ep) + { + Vector3 aa = sp + (cp - sp) * t; + Vector3 bb = cp + (ep - cp) * t; + return aa + (bb - aa) * t; + } + + public static Vector3 GetBezier2(float t, Vector3 sp, Vector3 p1, Vector3 p2, Vector3 ep) + { + t = Mathf.Clamp01(t); + var oneMinusT = 1f - t; + return oneMinusT * oneMinusT * oneMinusT * sp + + 3f * oneMinusT * oneMinusT * t * p1 + + 3f * oneMinusT * t * t * p2 + + t * t * t * ep; + } + + public static Vector3 GetDire(float angle, bool isDegree = false) + { + angle = isDegree ? angle * Mathf.Deg2Rad : angle; + return new Vector3(Mathf.Sin(angle), Mathf.Cos(angle)); + } + + public static Vector3 GetVertialDire(Vector3 dire) + { + if (dire.x == 0) + return new Vector3(-1, 0, 0); + + if (dire.y == 0) + return new Vector3(0, -1, 0); + else + return new Vector3(-dire.y / dire.x, 1, 0).normalized; + } + + /// <summary> + /// 获得0-360的角度(12点钟方向为0度) + /// </summary> + /// <param name="from"></param> + /// <param name="to"></param> + /// <returns></returns> + public static float GetAngle360(Vector2 from, Vector2 to) + { + float angle; + + Vector3 cross = Vector3.Cross(from, to); + angle = Vector2.Angle(from, to); + angle = cross.z > 0 ? -angle : angle; + angle = (angle + 360) % 360; + return angle; + } + + public static Vector3 GetPos(Vector3 center, float radius, float angle, bool isDegree = false) + { + angle = isDegree ? angle * Mathf.Deg2Rad : angle; + return new Vector3(center.x + radius * Mathf.Sin(angle), + center.y + radius * Mathf.Cos(angle)); + } + + /// <summary> + /// 获得两直线的交点 + /// </summary> + /// <param name="p1">线段1起点</param> + /// <param name="p2">线段1终点</param> + /// <param name="p3">线段2起点</param> + /// <param name="p4">线段2终点</param> + /// <param name="intersection">相交点。当不想交时默认为 Vector3.zero </param> + /// <returns>相交则返回 true, 否则返回 false</returns> + public static bool GetIntersection(Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4, ref Vector3 intersection) + { + intersection = Vector3.zero; + + var d = (p2.x - p1.x) * (p4.y - p3.y) - (p2.y - p1.y) * (p4.x - p3.x); + if (d == 0) + return false; + + var u = ((p3.x - p1.x) * (p4.y - p3.y) - (p3.y - p1.y) * (p4.x - p3.x)) / d; + var v = ((p3.x - p1.x) * (p2.y - p1.y) - (p3.y - p1.y) * (p2.x - p1.x)) / d; + if (u < 0 || u > 1 || v < 0 || v > 1) + return false; + + intersection.x = p1.x + u * (p2.x - p1.x); + intersection.y = p1.y + u * (p2.y - p1.y); + return true; + } + + /// <summary> + /// 三个点画线段所需要的六个关键点 + /// </summary> + /// <param name="lp">上一个点</param> + /// <param name="cp">当前点</param> + /// <param name="np">下一个点</param> + /// <param name="width">线段宽度</param> + /// <param name="ltp">上一个点的上角点</param> + /// <param name="lbp">上一个点的下角点</param> + /// <param name="ntp">下一个点的上角点</param> + /// <param name="nbp">下一个点的下角点</param> + /// <param name="itp">交汇点的上角点</param> + /// <param name="ibp">交汇点的下角点</param> + internal static void GetLinePoints(Vector3 lp, Vector3 cp, Vector3 np, float width, + ref Vector3 ltp, ref Vector3 lbp, + ref Vector3 ntp, ref Vector3 nbp, + ref Vector3 itp, ref Vector3 ibp, + ref Vector3 clp, ref Vector3 crp, + ref bool bitp, ref bool bibp, int debugIndex = 0) + { + var dir1 = (cp - lp).normalized; + var dir1v = Vector3.Cross(dir1, Vector3.forward).normalized * width; + ltp = lp - dir1v; + lbp = lp + dir1v; + if (debugIndex == 1 && cp == np) + { + ntp = np - dir1v; + nbp = np + dir1v; + clp = cp - dir1v; + crp = cp + dir1v; + return; + } + + var dir2 = (cp - np).normalized; + var dir2v = Vector3.Cross(dir2, Vector3.back).normalized * width; + ntp = np - dir2v; + nbp = np + dir2v; + clp = cp - dir2v; + crp = cp + dir2v; + + if (Vector3.Cross(dir1, dir2) == Vector3.zero && np != cp) + { + itp = ntp; + ibp = nbp; + return; + } + + var ldist = (Vector3.Distance(cp, lp) + 1) * dir1; + var rdist = (Vector3.Distance(cp, np) + 1) * dir2; + + bitp = true; + if (!UGLHelper.GetIntersection(ltp, ltp + ldist, ntp, ntp + rdist, ref itp)) + { + itp = cp - dir1v; + clp = cp - dir1v; + crp = cp - dir2v; + bitp = false; + } + bibp = true; + if (!UGLHelper.GetIntersection(lbp, lbp + ldist, nbp, nbp + rdist, ref ibp)) + { + ibp = cp + dir1v; + clp = cp + dir1v; + crp = cp + dir2v; + bibp = false; + } + if (bitp == false && bibp == false && cp == np) + { + ltp = cp - dir1v; + clp = cp + dir1v; + crp = cp + dir1v; + } + } + + public static bool IsPointInTriangle(Vector3 p1, Vector3 p2, Vector3 p3, Vector3 check) + { + var dire1 = check - p1; + var dire2 = check - p2; + var dire3 = check - p3; + var c1 = dire1.x * dire2.y - dire1.y * dire2.x; + var c2 = dire2.x * dire3.y - dire2.y * dire3.x; + var c3 = dire3.x * dire1.y - dire3.y * dire1.x; + return c1 * c2 >= 0 && c1 * c3 >= 0; + } + + public static bool IsPointInPolygon(Vector3 p, List<Vector3> polyons) + { + if (polyons.Count == 0) return false; + var inside = false; + var j = polyons.Count - 1; + for (int i = 0; i < polyons.Count; j = i++) + { + var pi = polyons[i]; + var pj = polyons[j]; + if (((pi.y <= p.y && p.y < pj.y) || (pj.y <= p.y && p.y < pi.y)) && + (p.x < (pj.x - pi.x) * (p.y - pi.y) / (pj.y - pi.y) + pi.x)) + inside = !inside; + } + return inside; + } + public static bool IsPointInPolygon(Vector3 p, List<Vector2> polyons) + { + if (polyons.Count == 0) return false; + var inside = false; + var j = polyons.Count - 1; + for (int i = 0; i < polyons.Count; j = i++) + { + var pi = polyons[i]; + var pj = polyons[j]; + if (((pi.y <= p.y && p.y < pj.y) || (pj.y <= p.y && p.y < pi.y)) && + (p.x < (pj.x - pi.x) * (p.y - pi.y) / (pj.y - pi.y) + pi.x)) + inside = !inside; + } + return inside; + } + } +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/UGLHelper.cs.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/UGLHelper.cs.meta new file mode 100644 index 0000000..2165db1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/Runtime/XUGL/UGLHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cc77f59a050d547caa3de82f4a9abd99 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/package.json b/Aimbot-PPO-MultiScene/Assets/XCharts/package.json new file mode 100644 index 0000000..5e21cef --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/package.json @@ -0,0 +1,27 @@ +{ + "name": "com.monitor1394.xcharts", + "displayName": "XCharts", + "version": "3.0.1", + "date": "20220616", + "checkdate": "20220616", + "desc": "如果 XCharts 对您有帮助,希望您能在 Github 上点 Star 支持,非常感谢!", + "unity": "2018.3", + "description": "A charting and data visualization library for Unity.", + "keywords": [ + "chart", + "charts", + "graph", + "data-visualization" + ], + "category": "chart", + "repository": { + "type": "git", + "url": "git+https://github.com/XCharts-Team/XCharts.git" + }, + "author": "monitor1394", + "license": "MIT", + "bugs": { + "url": "https://github.com/XCharts-Team/XCharts/issues" + }, + "homepage": "https://github.com/XCharts-Team/XCharts" +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/Assets/XCharts/package.json.meta b/Aimbot-PPO-MultiScene/Assets/XCharts/package.json.meta new file mode 100644 index 0000000..9bc810b --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/XCharts/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c4d5abd20b2304597ae3d0d57fd8986e +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Assets/prototype_512x512_white.png b/Aimbot-PPO-MultiScene/Assets/prototype_512x512_white.png new file mode 100644 index 0000000..2c3ad6b Binary files /dev/null and b/Aimbot-PPO-MultiScene/Assets/prototype_512x512_white.png differ diff --git a/Aimbot-PPO-MultiScene/Assets/prototype_512x512_white.png.meta b/Aimbot-PPO-MultiScene/Assets/prototype_512x512_white.png.meta new file mode 100644 index 0000000..335438e --- /dev/null +++ b/Aimbot-PPO-MultiScene/Assets/prototype_512x512_white.png.meta @@ -0,0 +1,96 @@ +fileFormatVersion: 2 +guid: 279ff8449cb84c043bdf3af5d5589ea3 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Aimbot-PPO-MultiScene/Packages/manifest.json b/Aimbot-PPO-MultiScene/Packages/manifest.json new file mode 100644 index 0000000..5634edf --- /dev/null +++ b/Aimbot-PPO-MultiScene/Packages/manifest.json @@ -0,0 +1,44 @@ +{ + "dependencies": { + "com.unity.collab-proxy": "1.9.0", + "com.unity.ide.rider": "2.0.7", + "com.unity.ide.visualstudio": "2.0.16", + "com.unity.ide.vscode": "1.2.5", + "com.unity.ml-agents": "2.0.0", + "com.unity.test-framework": "1.1.29", + "com.unity.textmeshpro": "3.0.6", + "com.unity.timeline": "1.4.8", + "com.unity.ugui": "1.0.0", + "com.unity.modules.ai": "1.0.0", + "com.unity.modules.androidjni": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.cloth": "1.0.0", + "com.unity.modules.director": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.physics2d": "1.0.0", + "com.unity.modules.screencapture": "1.0.0", + "com.unity.modules.terrain": "1.0.0", + "com.unity.modules.terrainphysics": "1.0.0", + "com.unity.modules.tilemap": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.umbra": "1.0.0", + "com.unity.modules.unityanalytics": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.unitywebrequesttexture": "1.0.0", + "com.unity.modules.unitywebrequestwww": "1.0.0", + "com.unity.modules.vehicles": "1.0.0", + "com.unity.modules.video": "1.0.0", + "com.unity.modules.vr": "1.0.0", + "com.unity.modules.wind": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } +} diff --git a/Aimbot-PPO-MultiScene/Packages/packages-lock.json b/Aimbot-PPO-MultiScene/Packages/packages-lock.json new file mode 100644 index 0000000..125ac36 --- /dev/null +++ b/Aimbot-PPO-MultiScene/Packages/packages-lock.json @@ -0,0 +1,376 @@ +{ + "dependencies": { + "com.unity.barracuda": { + "version": "2.0.0", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.burst": "1.6.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.burst": { + "version": "1.6.0", + "depth": 2, + "source": "registry", + "dependencies": { + "com.unity.mathematics": "1.2.1" + }, + "url": "https://packages.unity.com" + }, + "com.unity.collab-proxy": { + "version": "1.9.0", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.ext.nunit": { + "version": "1.0.6", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.ide.rider": { + "version": "2.0.7", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.1" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ide.visualstudio": { + "version": "2.0.16", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.9" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ide.vscode": { + "version": "1.2.5", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.mathematics": { + "version": "1.2.1", + "depth": 3, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.ml-agents": { + "version": "2.0.0", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.barracuda": "2.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.test-framework": { + "version": "1.1.29", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "1.0.6", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.textmeshpro": { + "version": "3.0.6", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.timeline": { + "version": "1.4.8", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.modules.director": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ugui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0" + } + }, + "com.unity.modules.ai": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.androidjni": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.animation": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.assetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.audio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.cloth": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.director": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.animation": "1.0.0" + } + }, + "com.unity.modules.imageconversion": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.particlesystem": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics2d": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.screencapture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.subsystems": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.terrain": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.terrainphysics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.terrain": "1.0.0" + } + }, + "com.unity.modules.tilemap": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics2d": "1.0.0" + } + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.uielements": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.uielementsnative": "1.0.0" + } + }, + "com.unity.modules.uielementsnative": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.umbra": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unityanalytics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.unitywebrequest": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unitywebrequestassetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestaudio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.audio": "1.0.0" + } + }, + "com.unity.modules.unitywebrequesttexture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestwww": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.vehicles": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.video": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.vr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } + }, + "com.unity.modules.wind": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.xr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.subsystems": "1.0.0" + } + } + } +} diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/AudioManager.asset b/Aimbot-PPO-MultiScene/ProjectSettings/AudioManager.asset new file mode 100644 index 0000000..07ebfb0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/AudioManager.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!11 &1 +AudioManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Volume: 1 + Rolloff Scale: 1 + Doppler Factor: 1 + Default Speaker Mode: 2 + m_SampleRate: 0 + m_DSPBufferSize: 1024 + m_VirtualVoiceCount: 512 + m_RealVoiceCount: 32 + m_SpatializerPlugin: + m_AmbisonicDecoderPlugin: + m_DisableAudio: 0 + m_VirtualizeEffects: 1 + m_RequestedDSPBufferSize: 1024 diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/BurstAotSettings_StandaloneWindows.json b/Aimbot-PPO-MultiScene/ProjectSettings/BurstAotSettings_StandaloneWindows.json new file mode 100644 index 0000000..e02ae33 --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/BurstAotSettings_StandaloneWindows.json @@ -0,0 +1,17 @@ +{ + "MonoBehaviour": { + "Version": 4, + "EnableBurstCompilation": true, + "EnableOptimisations": true, + "EnableSafetyChecks": false, + "EnableDebugInAllBuilds": false, + "UsePlatformSDKLinker": false, + "CpuMinTargetX32": 0, + "CpuMaxTargetX32": 0, + "CpuMinTargetX64": 0, + "CpuMaxTargetX64": 0, + "CpuTargetsX32": 6, + "CpuTargetsX64": 72, + "OptimizeFor": 0 + } +} diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/ClusterInputManager.asset b/Aimbot-PPO-MultiScene/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 0000000..e7886b2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/CommonBurstAotSettings.json b/Aimbot-PPO-MultiScene/ProjectSettings/CommonBurstAotSettings.json new file mode 100644 index 0000000..0293daf --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/CommonBurstAotSettings.json @@ -0,0 +1,6 @@ +{ + "MonoBehaviour": { + "Version": 4, + "DisabledWarnings": "" + } +} diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/DynamicsManager.asset b/Aimbot-PPO-MultiScene/ProjectSettings/DynamicsManager.asset new file mode 100644 index 0000000..cdc1f3e --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/DynamicsManager.asset @@ -0,0 +1,34 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!55 &1 +PhysicsManager: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_Gravity: {x: 0, y: -9.81, z: 0} + m_DefaultMaterial: {fileID: 0} + m_BounceThreshold: 2 + m_SleepThreshold: 0.005 + m_DefaultContactOffset: 0.01 + m_DefaultSolverIterations: 6 + m_DefaultSolverVelocityIterations: 1 + m_QueriesHitBackfaces: 0 + m_QueriesHitTriggers: 1 + m_EnableAdaptiveForce: 0 + m_ClothInterCollisionDistance: 0 + m_ClothInterCollisionStiffness: 0 + m_ContactsGeneration: 1 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_AutoSimulation: 1 + m_AutoSyncTransforms: 0 + m_ReuseCollisionCallbacks: 1 + m_ClothInterCollisionSettingsToggle: 0 + m_ContactPairsMode: 0 + m_BroadphaseType: 0 + m_WorldBounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 250, y: 250, z: 250} + m_WorldSubdivisions: 8 + m_FrictionType: 0 + m_EnableEnhancedDeterminism: 0 + m_EnableUnifiedHeightmaps: 1 + m_DefaultMaxAngluarSpeed: 7 diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/EditorBuildSettings.asset b/Aimbot-PPO-MultiScene/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 0000000..af1c33b --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/EditorBuildSettings.asset @@ -0,0 +1,14 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1045 &1 +EditorBuildSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Scenes: + - enabled: 1 + path: Assets/Scenes/Start.unity + guid: fc168544586b83f47a73568842170c14 + - enabled: 1 + path: Assets/Scenes/InGame.unity + guid: 9fc0d4010bbf28b4594072e72b8655ab + m_configObjects: {} diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/EditorSettings.asset b/Aimbot-PPO-MultiScene/ProjectSettings/EditorSettings.asset new file mode 100644 index 0000000..de5d0b2 --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/EditorSettings.asset @@ -0,0 +1,30 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_ExternalVersionControlSupport: Visible Meta Files + m_SerializationMode: 2 + m_LineEndingsForNewScripts: 0 + m_DefaultBehaviorMode: 0 + m_PrefabRegularEnvironment: {fileID: 0} + m_PrefabUIEnvironment: {fileID: 0} + m_SpritePackerMode: 0 + m_SpritePackerPaddingPower: 1 + m_EtcTextureCompressorBehavior: 1 + m_EtcTextureFastCompressor: 1 + m_EtcTextureNormalCompressor: 2 + m_EtcTextureBestCompressor: 4 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref + m_ProjectGenerationRootNamespace: + m_CollabEditorSettings: + inProgressEnabled: 1 + m_EnableTextureStreamingInEditMode: 1 + m_EnableTextureStreamingInPlayMode: 1 + m_AsyncShaderCompilation: 1 + m_EnterPlayModeOptionsEnabled: 0 + m_EnterPlayModeOptions: 3 + m_ShowLightmapResolutionOverlay: 1 + m_UseLegacyProbeSampleCount: 0 + m_SerializeInlineMappingsOnOneLine: 1 \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/GraphicsSettings.asset b/Aimbot-PPO-MultiScene/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 0000000..43369e3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,63 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_ScreenSpaceShadows: + m_Mode: 1 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} + m_LegacyDeferred: + m_Mode: 1 + m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} + m_DepthNormals: + m_Mode: 1 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_MotionVectors: + m_Mode: 1 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_LightHalo: + m_Mode: 1 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_LensFlare: + m_Mode: 1 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, + type: 0} + m_CustomRenderPipeline: {fileID: 0} + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 0, z: 1} + m_DefaultRenderingPath: 1 + m_DefaultMobileRenderingPath: 1 + m_TierSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_InstancingStripping: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepShadowMask: 1 + m_LightmapKeepSubtractive: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 + m_AlbedoSwatchInfos: [] + m_LightsUseLinearIntensity: 0 + m_LightsUseColorTemperature: 0 + m_LogWhenShaderIsCompiled: 0 + m_AllowEnlightenSupportForUpgradedProject: 0 diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/InputManager.asset b/Aimbot-PPO-MultiScene/ProjectSettings/InputManager.asset new file mode 100644 index 0000000..17c8f53 --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/InputManager.asset @@ -0,0 +1,295 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!13 &1 +InputManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Axes: + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: a + altPositiveButton: d + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: s + altPositiveButton: w + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: mouse 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: mouse 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: mouse 2 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: space + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse X + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse Y + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse ScrollWheel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 2 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: enter + altNegativeButton: + altPositiveButton: space + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Cancel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: escape + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/NavMeshAreas.asset b/Aimbot-PPO-MultiScene/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 0000000..3b0b7c3 --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/NavMeshAreas.asset @@ -0,0 +1,91 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshProjectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + areas: + - name: Walkable + cost: 1 + - name: Not Walkable + cost: 1 + - name: Jump + cost: 2 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + m_LastAgentTypeID: -887442657 + m_Settings: + - serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.75 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_SettingNames: + - Humanoid diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/PackageManagerSettings.asset b/Aimbot-PPO-MultiScene/ProjectSettings/PackageManagerSettings.asset new file mode 100644 index 0000000..568fee6 --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/PackageManagerSettings.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_EnablePreviewPackages: 1 + m_EnablePackageDependencies: 0 + m_AdvancedSettingsExpanded: 1 + m_ScopedRegistriesSettingsExpanded: 1 + oneTimeWarningShown: 1 + m_Registries: + - m_Id: main + m_Name: + m_Url: https://packages.unity.com + m_Scopes: [] + m_IsDefault: 1 + m_Capabilities: 7 + m_UserSelectedRegistryName: + m_UserAddingNewScopedRegistry: 0 + m_RegistryInfoDraft: + m_ErrorMessage: + m_Original: + m_Id: + m_Name: + m_Url: + m_Scopes: [] + m_IsDefault: 0 + m_Capabilities: 0 + m_Modified: 0 + m_Name: + m_Url: + m_Scopes: + - + m_SelectedScopeIndex: 0 diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/Physics2DSettings.asset b/Aimbot-PPO-MultiScene/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 0000000..47880b1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/Physics2DSettings.asset @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!19 &1 +Physics2DSettings: + m_ObjectHideFlags: 0 + serializedVersion: 4 + m_Gravity: {x: 0, y: -9.81} + m_DefaultMaterial: {fileID: 0} + m_VelocityIterations: 8 + m_PositionIterations: 3 + m_VelocityThreshold: 1 + m_MaxLinearCorrection: 0.2 + m_MaxAngularCorrection: 8 + m_MaxTranslationSpeed: 100 + m_MaxRotationSpeed: 360 + m_BaumgarteScale: 0.2 + m_BaumgarteTimeOfImpactScale: 0.75 + m_TimeToSleep: 0.5 + m_LinearSleepTolerance: 0.01 + m_AngularSleepTolerance: 2 + m_DefaultContactOffset: 0.01 + m_JobOptions: + serializedVersion: 2 + useMultithreading: 0 + useConsistencySorting: 0 + m_InterpolationPosesPerJob: 100 + m_NewContactsPerJob: 30 + m_CollideContactsPerJob: 100 + m_ClearFlagsPerJob: 200 + m_ClearBodyForcesPerJob: 200 + m_SyncDiscreteFixturesPerJob: 50 + m_SyncContinuousFixturesPerJob: 50 + m_FindNearestContactsPerJob: 100 + m_UpdateTriggerContactsPerJob: 100 + m_IslandSolverCostThreshold: 100 + m_IslandSolverBodyCostScale: 1 + m_IslandSolverContactCostScale: 10 + m_IslandSolverJointCostScale: 10 + m_IslandSolverBodiesPerJob: 50 + m_IslandSolverContactsPerJob: 50 + m_AutoSimulation: 1 + m_QueriesHitTriggers: 1 + m_QueriesStartInColliders: 1 + m_CallbacksOnDisable: 1 + m_ReuseCollisionCallbacks: 1 + m_AutoSyncTransforms: 0 + m_AlwaysShowColliders: 0 + m_ShowColliderSleep: 1 + m_ShowColliderContacts: 0 + m_ShowColliderAABB: 0 + m_ContactArrowScale: 0.2 + m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} + m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} + m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} + m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/PresetManager.asset b/Aimbot-PPO-MultiScene/ProjectSettings/PresetManager.asset new file mode 100644 index 0000000..67a94da --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/PresetManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1386491679 &1 +PresetManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_DefaultPresets: {} diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/ProjectSettings.asset b/Aimbot-PPO-MultiScene/ProjectSettings/ProjectSettings.asset new file mode 100644 index 0000000..00c70a1 --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,693 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 22 + productGUID: da055cf7b95f62546acc987d86a74c8f + AndroidProfiler: 0 + AndroidFilterTouchesWhenObscured: 0 + AndroidEnableSustainedPerformanceMode: 0 + defaultScreenOrientation: 4 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: DefaultCompany + productName: Aimbot-PPO + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_VirtualRealitySplashScreen: {fileID: 0} + m_HolographicTrackingLossScreen: {fileID: 0} + defaultScreenWidth: 1920 + defaultScreenHeight: 1080 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 0 + m_MTRendering: 1 + mipStripping: 0 + numberOfMipsStripped: 0 + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + iosUseCustomAppBackgroundBehavior: 0 + iosAllowHTTPDownload: 1 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + preserveFramebufferAlpha: 0 + disableDepthAndStencilBuffers: 0 + androidStartInFullscreen: 1 + androidRenderOutsideSafeArea: 1 + androidUseSwappy: 1 + androidBlitType: 0 + androidResizableWindow: 0 + androidDefaultWindowWidth: 1920 + androidDefaultWindowHeight: 1080 + androidMinimumWindowWidth: 400 + androidMinimumWindowHeight: 300 + androidFullscreenMode: 1 + defaultIsNativeResolution: 1 + macRetinaSupport: 1 + runInBackground: 1 + captureSingleScreen: 0 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + Force IOS Speakers When Recording: 0 + deferSystemGesturesMode: 0 + hideHomeButton: 0 + submitAnalytics: 1 + usePlayerLog: 1 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + useFlipModelSwapchain: 1 + resizableWindow: 1 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 1 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 1 + allowFullscreenSwitch: 1 + fullscreenMode: 3 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + metalFramebufferOnly: 0 + xboxOneResolution: 0 + xboxOneSResolution: 0 + xboxOneXResolution: 3 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + xboxOneDisableEsram: 0 + xboxOneEnableTypeOptimization: 0 + xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 0 + switchQueueControlMemory: 16384 + switchQueueComputeMemory: 262144 + switchNVNShaderPoolsGranularity: 33554432 + switchNVNDefaultPoolsGranularity: 16777216 + switchNVNOtherPoolsGranularity: 16777216 + switchNVNMaxPublicTextureIDCount: 0 + switchNVNMaxPublicSamplerIDCount: 0 + stadiaPresentMode: 0 + stadiaTargetFramerate: 0 + vulkanNumSwapchainBuffers: 3 + vulkanEnableSetSRGBWrite: 0 + vulkanEnablePreTransform: 0 + vulkanEnableLateAcquireNextImage: 0 + vulkanEnableCommandBufferRecycling: 1 + m_SupportedAspectRatios: + 4:3: 1 + 5:4: 1 + 16:10: 1 + 16:9: 1 + Others: 1 + bundleVersion: 0.1 + preloadedAssets: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + metroInputSource: 0 + wsaTransparentSwapchain: 0 + m_HolographicPauseOnTrackingLoss: 1 + xboxOneDisableKinectGpuReservation: 1 + xboxOneEnable7thCore: 1 + vrSettings: + enable360StereoCapture: 0 + isWsaHolographicRemotingEnabled: 0 + enableFrameTimingStats: 0 + useHDRDisplay: 0 + D3DHDRBitDepth: 0 + m_ColorGamuts: 00000000 + targetPixelDensity: 30 + resolutionScalingMode: 0 + androidSupportedAspectRatio: 1 + androidMaxAspectRatio: 2.1 + applicationIdentifier: {} + buildNumber: + Standalone: 0 + iPhone: 0 + tvOS: 0 + overrideDefaultApplicationIdentifier: 0 + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 19 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + APKExpansionFiles: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 1 + VertexChannelCompressionMask: 4054 + iPhoneSdkVersion: 988 + iOSTargetOSVersionString: 11.0 + tvOSSdkVersion: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 11.0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + appleTVSplashScreen: {fileID: 0} + appleTVSplashScreen2x: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSSmallIconLayers2x: [] + tvOSLargeIconLayers: [] + tvOSLargeIconLayers2x: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageLayers2x: [] + tvOSTopShelfImageWideLayers: [] + tvOSTopShelfImageWideLayers2x: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreenCustomXibPath: + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreeniPadCustomXibPath: + iOSLaunchScreenCustomStoryboardPath: + iOSLaunchScreeniPadCustomStoryboardPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 1 + metalAPIValidation: 1 + iOSRenderExtraFrameOnPause: 0 + iosCopyPluginsCodeInsteadOfSymlink: 0 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 + appleEnableAutomaticSigning: 0 + iOSRequireARKit: 0 + iOSAutomaticallyDetectAndAddCapabilities: 1 + appleEnableProMotion: 0 + shaderPrecisionModel: 0 + clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea + templatePackageId: com.unity.template.3d@5.0.4 + templateDefaultScene: Assets/Scenes/SampleScene.unity + useCustomMainManifest: 0 + useCustomLauncherManifest: 0 + useCustomMainGradleTemplate: 0 + useCustomLauncherGradleManifest: 0 + useCustomBaseGradleTemplate: 0 + useCustomGradlePropertiesTemplate: 0 + useCustomProguardFile: 0 + AndroidTargetArchitectures: 1 + AndroidTargetDevices: 0 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidBuildApkPerCpuArchitecture: 0 + AndroidTVCompatibility: 0 + AndroidIsGame: 1 + AndroidEnableTango: 0 + androidEnableBanner: 1 + androidUseLowAccuracyLocation: 0 + androidUseCustomKeystore: 0 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + chromeosInputEmulation: 1 + AndroidMinifyWithR8: 0 + AndroidMinifyRelease: 0 + AndroidMinifyDebug: 0 + AndroidValidateAppBundleSize: 1 + AndroidAppBundleSizeToValidate: 150 + m_BuildTargetIcons: [] + m_BuildTargetPlatformIcons: [] + m_BuildTargetBatching: + - m_BuildTarget: Standalone + m_StaticBatching: 1 + m_DynamicBatching: 0 + - m_BuildTarget: tvOS + m_StaticBatching: 1 + m_DynamicBatching: 0 + - m_BuildTarget: Android + m_StaticBatching: 1 + m_DynamicBatching: 0 + - m_BuildTarget: iPhone + m_StaticBatching: 1 + m_DynamicBatching: 0 + - m_BuildTarget: WebGL + m_StaticBatching: 0 + m_DynamicBatching: 0 + m_BuildTargetGraphicsJobs: + - m_BuildTarget: MacStandaloneSupport + m_GraphicsJobs: 0 + - m_BuildTarget: Switch + m_GraphicsJobs: 1 + - m_BuildTarget: MetroSupport + m_GraphicsJobs: 1 + - m_BuildTarget: AppleTVSupport + m_GraphicsJobs: 0 + - m_BuildTarget: BJMSupport + m_GraphicsJobs: 1 + - m_BuildTarget: LinuxStandaloneSupport + m_GraphicsJobs: 1 + - m_BuildTarget: PS4Player + m_GraphicsJobs: 1 + - m_BuildTarget: iOSSupport + m_GraphicsJobs: 0 + - m_BuildTarget: WindowsStandaloneSupport + m_GraphicsJobs: 1 + - m_BuildTarget: XboxOnePlayer + m_GraphicsJobs: 1 + - m_BuildTarget: LuminSupport + m_GraphicsJobs: 0 + - m_BuildTarget: AndroidPlayer + m_GraphicsJobs: 0 + - m_BuildTarget: WebGLSupport + m_GraphicsJobs: 0 + m_BuildTargetGraphicsJobMode: + - m_BuildTarget: PS4Player + m_GraphicsJobMode: 0 + - m_BuildTarget: XboxOnePlayer + m_GraphicsJobMode: 0 + m_BuildTargetGraphicsAPIs: + - m_BuildTarget: AndroidPlayer + m_APIs: 150000000b000000 + m_Automatic: 0 + - m_BuildTarget: iOSSupport + m_APIs: 10000000 + m_Automatic: 1 + - m_BuildTarget: AppleTVSupport + m_APIs: 10000000 + m_Automatic: 1 + - m_BuildTarget: WebGLSupport + m_APIs: 0b000000 + m_Automatic: 1 + m_BuildTargetVRSettings: + - m_BuildTarget: Standalone + m_Enabled: 0 + m_Devices: + - Oculus + - OpenVR + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + openGLRequireES32: 0 + m_TemplateCustomTags: {} + mobileMTRendering: + Android: 1 + iPhone: 1 + tvOS: 1 + m_BuildTargetGroupLightmapEncodingQuality: [] + m_BuildTargetGroupLightmapSettings: [] + m_BuildTargetNormalMapEncoding: [] + playModeTestRunnerEnabled: 0 + runPlayModeTestAsEditModeTest: 0 + actionOnDotNetUnhandledException: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + bluetoothUsageDescription: + switchNMETAOverride: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchUseGOLDLinker: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchTitleNames_12: + switchTitleNames_13: + switchTitleNames_14: + switchTitleNames_15: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchPublisherNames_12: + switchPublisherNames_13: + switchPublisherNames_14: + switchPublisherNames_15: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchIcons_12: {fileID: 0} + switchIcons_13: {fileID: 0} + switchIcons_14: {fileID: 0} + switchIcons_15: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchSmallIcons_12: {fileID: 0} + switchSmallIcons_13: {fileID: 0} + switchSmallIcons_14: {fileID: 0} + switchSmallIcons_15: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchTouchScreenUsage: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchRatingsInt_12: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchAllowsVideoCapturing: 1 + switchAllowsRuntimeAddOnContentInstall: 0 + switchDataLossConfirmation: 0 + switchUserAccountLockEnabled: 0 + switchSystemResourceMemory: 16777216 + switchSupportedNpadStyles: 22 + switchNativeFsCacheSize: 32 + switchIsHoldTypeHorizontal: 0 + switchSupportedNpadCount: 8 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchPlayerConnectionEnabled: 1 + switchUseNewStyleFilepaths: 0 + switchUseMicroSleepForYield: 1 + switchMicroSleepForYieldTime: 25 + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 11 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 60 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4ExtraSceSysFile: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 1 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + playerPrefsMaxSize: 32768 + ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + enableApplicationExit: 0 + resetTempFolder: 1 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4UseLowGarlicFragmentationMode: 1 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 0 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4CompatibilityPS5: 0 + ps4AllowPS5Detection: 0 + ps4GPU800MHz: 1 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + ps4attribVROutputEnabled: 0 + monoEnv: + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + blurSplashScreenBackground: 1 + spritePackerPolicy: + webGLMemorySize: 16 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLDataCaching: 1 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLCompressionFormat: 1 + webGLWasmArithmeticExceptions: 0 + webGLLinkerTarget: 1 + webGLThreadsSupport: 0 + webGLDecompressionFallback: 0 + scriptingDefineSymbols: {} + additionalCompilerArguments: {} + platformArchitecture: {} + scriptingBackend: {} + il2cppCompilerConfiguration: {} + managedStrippingLevel: {} + incrementalIl2cppBuild: {} + suppressCommonWarnings: 1 + allowUnsafeCode: 0 + useDeterministicCompilation: 1 + useReferenceAssemblies: 1 + enableRoslynAnalyzers: 1 + additionalIl2CppArgs: + scriptingRuntimeVersion: 1 + gcIncremental: 1 + assemblyVersionValidation: 1 + gcWBarrierValidation: 0 + apiCompatibilityLevelPerPlatform: {} + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: Template_3D + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: Template_3D + wsaImages: {} + metroTileShortName: + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroSupportStreamingInstall: 0 + metroLastRequiredScene: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 2 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} + metroSplashScreenUseBackgroundColor: 0 + platformCapabilities: {} + metroTargetDeviceFamilies: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOneVersion: 1.0.0.0 + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnhancedXboxCompatibilityMode: 0 + XboxOneEnableGPUVariability: 1 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 + XboxOneOverrideIdentityName: + XboxOneOverrideIdentityPublisher: + vrEditorSettings: {} + cloudServicesEnabled: + UNet: 1 + luminIcon: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: + luminCert: + m_CertPath: + m_SignPackage: 1 + luminIsChannelApp: 0 + luminVersion: + m_VersionCode: 1 + m_VersionName: + apiCompatibilityLevel: 6 + activeInputHandler: 0 + cloudProjectId: + framebufferDepthMemorylessMode: 0 + qualitySettingsNames: [] + projectName: + organizationId: + cloudEnabled: 0 + legacyClampBlendShapeWeights: 0 + virtualTexturingSupportEnabled: 0 diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/ProjectVersion.txt b/Aimbot-PPO-MultiScene/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..39e9125 --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/ProjectVersion.txt @@ -0,0 +1,2 @@ +m_EditorVersion: 2020.3.19f1 +m_EditorVersionWithRevision: 2020.3.19f1 (68f137dc9bbe) diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/QualitySettings.asset b/Aimbot-PPO-MultiScene/ProjectSettings/QualitySettings.asset new file mode 100644 index 0000000..7b7658d --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/QualitySettings.asset @@ -0,0 +1,232 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 5 + m_QualitySettings: + - serializedVersion: 2 + name: Very Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 15 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + blendWeights: 1 + textureQuality: 1 + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 0 + lodBias: 0.3 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + blendWeights: 2 + textureQuality: 0 + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 0 + lodBias: 0.4 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 16 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Medium + pixelLightCount: 1 + shadows: 1 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + blendWeights: 2 + textureQuality: 0 + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 1 + lodBias: 0.7 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 64 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: High + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + blendWeights: 2 + textureQuality: 0 + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 1 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Very High + pixelLightCount: 3 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 70 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + blendWeights: 4 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 1.5 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 1024 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Ultra + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + blendWeights: 4 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 2 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4096 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + m_PerPlatformDefaultQuality: + Android: 2 + Lumin: 5 + Nintendo 3DS: 5 + Nintendo Switch: 5 + PS4: 5 + PSP2: 2 + Stadia: 5 + Standalone: 5 + WebGL: 3 + Windows Store Apps: 5 + XboxOne: 5 + iPhone: 2 + tvOS: 2 diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/SceneTemplateSettings.json b/Aimbot-PPO-MultiScene/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 0000000..6f3e60f --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,167 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": false + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicMaterial", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": false + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "<default_scene_template_dependencies>", + "ignore": false, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/TagManager.asset b/Aimbot-PPO-MultiScene/ProjectSettings/TagManager.asset new file mode 100644 index 0000000..1c92a78 --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/TagManager.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!78 &1 +TagManager: + serializedVersion: 2 + tags: [] + layers: + - Default + - TransparentFX + - Ignore Raycast + - + - Water + - UI + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + m_SortingLayers: + - name: Default + uniqueID: 0 + locked: 0 diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/TimeManager.asset b/Aimbot-PPO-MultiScene/ProjectSettings/TimeManager.asset new file mode 100644 index 0000000..558a017 --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/TimeManager.asset @@ -0,0 +1,9 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + Fixed Timestep: 0.02 + Maximum Allowed Timestep: 0.33333334 + m_TimeScale: 1 + Maximum Particle Timestep: 0.03 diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/TimelineSettings.asset b/Aimbot-PPO-MultiScene/ProjectSettings/TimelineSettings.asset new file mode 100644 index 0000000..b4fbdb0 --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/TimelineSettings.asset @@ -0,0 +1,15 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a287be6c49135cd4f9b2b8666c39d999, type: 3} + m_Name: + m_EditorClassIdentifier: + assetDefaultFramerate: 60 diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/UnityConnectSettings.asset b/Aimbot-PPO-MultiScene/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 0000000..6125b30 --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/UnityConnectSettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!310 &1 +UnityConnectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 1 + m_Enabled: 0 + m_TestMode: 0 + m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events + m_EventUrl: https://cdp.cloud.unity3d.com/v1/events + m_ConfigUrl: https://config.uca.cloud.unity3d.com + m_DashboardUrl: https://dashboard.unity3d.com + m_TestInitMode: 0 + CrashReportingSettings: + m_EventUrl: https://perf-events.cloud.unity3d.com + m_Enabled: 0 + m_LogBufferSize: 10 + m_CaptureEditorExceptions: 1 + UnityPurchasingSettings: + m_Enabled: 0 + m_TestMode: 0 + UnityAnalyticsSettings: + m_Enabled: 0 + m_TestMode: 0 + m_InitializeOnStartup: 1 + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_IosGameId: + m_AndroidGameId: + m_GameIds: {} + m_GameId: + PerformanceReportingSettings: + m_Enabled: 0 diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/VFXManager.asset b/Aimbot-PPO-MultiScene/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..3a95c98 --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/VFXManager.asset @@ -0,0 +1,12 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_StripUpdateShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/VersionControlSettings.asset b/Aimbot-PPO-MultiScene/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 0000000..dca2881 --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_CollabEditorSettings: + inProgressEnabled: 1 diff --git a/Aimbot-PPO-MultiScene/ProjectSettings/XRSettings.asset b/Aimbot-PPO-MultiScene/ProjectSettings/XRSettings.asset new file mode 100644 index 0000000..482590c --- /dev/null +++ b/Aimbot-PPO-MultiScene/ProjectSettings/XRSettings.asset @@ -0,0 +1,10 @@ +{ + "m_SettingKeys": [ + "VR Device Disabled", + "VR Device User Alert" + ], + "m_SettingValues": [ + "False", + "False" + ] +} \ No newline at end of file diff --git a/Aimbot-PPO-MultiScene/README.md b/Aimbot-PPO-MultiScene/README.md new file mode 100644 index 0000000..e95085b --- /dev/null +++ b/Aimbot-PPO-MultiScene/README.md @@ -0,0 +1 @@ +# Aimbot-PPO-MultiScene diff --git a/Aimbot-PPO-Python/PPO.py b/Aimbot-PPO-Python/PPO.py new file mode 100644 index 0000000..48ace0f --- /dev/null +++ b/Aimbot-PPO-Python/PPO.py @@ -0,0 +1,462 @@ +import tensorflow as tf +import tensorflow_probability as tfp +import numpy as np +import math +import copy +import datetime +import os + +from tensorflow import keras +from tensorflow.keras import layers +from tensorflow.keras import optimizers +from keras_radam import RAdam + + +class PPO(object): + """Create PPO Agent + """ + + def __init__(self, stateSize, disActShape, conActSize, conActRange, criticLR, actorLR, gamma, epsilon, entropyWeight, saveDir, loadModelDir): + + # check disActShape is correct(greater than 1) + try: + if np.any(np.array(disActShape)<=1): + raise ValueError("disActShape error,disActShape should greater than 1 but get",disActShape) + except ValueError as e: + raise + + self.stateSize = stateSize + # self.actionSize = actionSize + self.disActShape = disActShape # shape of discrete action output. like [3,3,2] + self.disActSize = len(disActShape) + self.conActSize = conActSize + self.conActRange = conActRange + self.criticLR = criticLR + self.actorLR = actorLR + self.GAMMA = gamma + self.EPSILON = epsilon + self.saveDir = saveDir + self.entropyWeight = entropyWeight + + self.disOutputSize = sum(disActShape) + self.conOutputSize = conActSize * 2 + + if loadModelDir == None: + # critc NN + self.critic = self.buildCriticNet(self.stateSize, 1, compileModel = True) + # actor NN + self.actor = self.buildActorNet(self.stateSize, self.conActRange, compileModel = True) + else: + # critc NN + self.critic = self.buildCriticNet(self.stateSize, 1, compileModel=True) + # actor NN + self.actor = self.buildActorNet(self.stateSize, self.conActRange, compileModel=True) + # load weight to Critic&Actor NN + self.loadWeightToModels(loadModelDir) + + + # Build Net + def buildActorNet(self, inputSize, continuousActionRange,compileModel): + """build Actor Nueral Net and compile.Output:[disAct1,disAct2,disAct3,mu,sigma] + + Args: + inputSize (int): InputLayer Nueral size. + continuousActionRange (foat): continuous Action's max Range. + + Returns: + keras.Model: return Actor NN + """ + stateInput = layers.Input(shape=(inputSize,), name='stateInput') + dense0 = layers.Dense(500, activation='relu',name='dense0',)(stateInput) + dense1 = layers.Dense(200, activation='relu',name='dense1',)(dense0) + dense2 = layers.Dense(100, activation='relu', name='dense2')(dense1) + + disAct1 = layers.Dense(3, activation='softmax',name='WSAction')(dense2) # WS + disAct2 = layers.Dense(3, activation='softmax',name='ADAction')(dense2) # AD + disAct3 = layers.Dense(2, activation='softmax',name='ShootAction')(dense2) # Mouse shoot + mu = continuousActionRange * layers.Dense(1, activation='tanh', name='muOut')(dense2) # mu,既正态分布mean + sigma = 1e-8 + layers.Dense(1, activation='softplus',name='sigmaOut')(dense2) # sigma,既正态分布 + # musig = layers.concatenate([mu,sigma],name = 'musig') + totalOut = layers.concatenate( + [disAct1, disAct2, disAct3, mu, sigma], name='totalOut') # package + + model = keras.Model(inputs=stateInput, outputs=totalOut) + #actorOPT = optimizers.Adam(learning_rate = self.actorLR) + if compileModel: + actorOPT = RAdam(self.actorLR) + model.compile(optimizer=actorOPT, loss=self.aLoss()) + return model + + def buildCriticNet(self, inputSize, outputSize,compileModel): + """build Critic Nueral Net and compile.Output:[Q] + + Args: + inputSize (int): InputLayer Neural Size + outputSize (float): Q size + + Returns: + keras.Model: return Critic NN + """ + stateInput = keras.Input(shape=(inputSize,)) + dense0 = layers.Dense(500, activation='relu', + name='dense0',)(stateInput) + dense1 = layers.Dense(200, activation='relu')(dense0) + dense2 = layers.Dense(100, activation='relu')(dense1) + output = layers.Dense(outputSize)(dense2) + model = keras.Model(inputs=stateInput, outputs=output) + if compileModel: + criticOPT = optimizers.Adam(learning_rate=self.criticLR) + model.compile(optimizer=criticOPT, loss=self.cLoss()) + return model + + # loss Function + def cLoss(self): + """Critic Loss function + """ + def loss(y_true, y_pred): + # y_true: discountedR + # y_pred: critcV = model.predict(states) + + advantage = y_true - y_pred # TD error + loss = tf.reduce_mean(tf.square(advantage)) + return loss + return loss + + def aLoss(self): + def getDiscreteALoss(nowProbs,oldProbs,advantage): + """get Discrete Action Loss + + Args: + nowProbs (tf.constant): (length,actionSize) + oldProbs (tf.constant): (length,actionSize) + advantage (tf.constant): (length,) + + Returns: + tf.constant: (length,) + """ + entropy = tf.reduce_mean(tf.math.multiply(nowProbs,tf.math.log(nowProbs+1e-6))) + ratio = tf.math.divide(nowProbs,oldProbs+1e-6) + value = tf.math.multiply(ratio,tf.expand_dims(advantage,axis = 1)) + clipRatio = tf.clip_by_value(ratio,1. - self.EPSILON,1.+self.EPSILON) + clipValue = tf.math.multiply(clipRatio,tf.expand_dims(advantage,axis = 1)) + loss = -tf.reduce_mean(tf.math.minimum(value,clipValue)) + self.entropyWeight * entropy + return loss + + def getContinuousALoss(musig,actions,oldProbs,advantage): + """get Continuous Action Loss + + Args: + musig (tf.constant): (length,2) + actions (tf.constant): (length,) + oldProbs (tf.constant): (length,) + advantage (tf.constant): (length,) + + Returns: + tf.constant: (length,) + """ + mu = musig[:,0] + sigma = musig[:,1] + dist = tfp.distributions.Normal(mu,sigma) + + nowProbs = dist.prob(actions) + ratio = tf.math.divide(nowProbs,oldProbs+1e-6) + entropy = tf.reduce_mean(dist.entropy()) + + value = tf.math.multiply(ratio,tf.expand_dims(advantage,axis = 1)) + clipValue = tf.clip_by_value(ratio,1. - self.EPSILON,1.+self.EPSILON) * advantage + loss = -tf.reduce_mean(tf.math.minimum(value,clipValue)) + self.entropyWeight * entropy + return loss + + def loss(y_true, y_pred): + # y_true: [[disAct1, disAct2, disAct3, mu, sigma]] + # y_pred: muSigma = self.actor(state) = + # [[disAct1, disAct2, disAct3, mu, sigma]] + oldDisProbs = y_true[:,0:self.disOutputSize] + oldConMusigs = y_true[:,self.disOutputSize:self.disOutputSize+self.conActSize] + conActions = y_true[:,self.disOutputSize+self.conActSize:self.disOutputSize+(self.conActSize*2)] + advantage = y_true[:,-1] + + nowDisProbs = y_pred[:,0:self.disOutputSize] # [disAct1, disAct2, disAct3] + nowConMusigs = y_pred[:,self.disOutputSize:] #[musig1,musig2] + + totalALoss = tf.constant([0.]) + totalActionNum = 0 + + # for nowProb,oldProb in zip(tf.transpose(nowDisProbs,perm=[1,0,2]),tf.transpose(oldDisProbs,perm=[1,0,2])): + lastDisActShape = 0 + for shape in self.disActShape: + thisNowDisProbs = nowDisProbs[:,lastDisActShape:lastDisActShape+shape] + thisOldDisProbs = oldDisProbs[:,lastDisActShape:lastDisActShape+shape] + discreteALoss = getDiscreteALoss(thisNowDisProbs,thisOldDisProbs,advantage) + lastDisActShape += shape + totalALoss += discreteALoss + totalActionNum += 1 + # for nowConMusig,conAction,oldPiProb in zip(tf.transpose(nowConMusigs,perm=[1,0,2]),conActions,oldPiProbs): + lastConAct = 0 + for act in range(self.conActSize): + thisNowConMusig = nowConMusigs[:,lastConAct:lastConAct+((act+1)*2)] + thisOldConMusig = oldConMusigs[:,lastConAct:lastConAct+((act+1)*2)] + thisConAction = conActions[:,act] + continuousAloss = getContinuousALoss(thisNowConMusig,thisConAction,thisOldConMusig,advantage) + totalALoss += continuousAloss + totalActionNum += 1 + + loss = tf.divide(totalALoss,totalActionNum) + return loss + return loss + + # get Action&V + def chooseAction(self, state): + """Agent choose action to take + + Args: + state (np.array): enviroment state + + Returns: + np.array: + disAct1, + discreteAction1 + disAct2, + discreteAction2 + disAct3, + discreteAction3 + conAction, + continuousAction + predictResult, + actor NN predict Result output + """ + # let actor choose action,use the normal distribution + # state = np.expand_dims(state,0) + + # check state dimension is [1,statesize] + if state.ndim!=2: + state = state.reshape([1,self.stateSize]) + + predictResult = self.actor(state) # get predict result [[disAct1, disAct2, disAct3, musig]] + predictResult = predictResult.numpy() + disAct1Prob = predictResult[0][0:3] + disAct2Prob = predictResult[0][3:6] + disAct3Prob = predictResult[0][6:8] + mu = predictResult[0][8] + sigma = predictResult[0][9] + if math.isnan(mu) or math.isnan(sigma): + # check mu or sigma is nan + print("mu or sigma is nan") + + disAct1 = np.argmax(disAct1Prob) # WS 0 or 1 or 2 + disAct2 = np.argmax(disAct2Prob) # AD 0 or 1 or 2 + disAct3 = np.argmax(disAct3Prob) # mouse shoot 0 or 1 + normDist = np.random.normal(loc=mu, scale=sigma) # normalDistribution + conAction = np.clip(normDist, -self.conActRange, + self.conActRange) # 在正态分布中随机get一个action + return disAct1, disAct2, disAct3, conAction, predictResult + + def getCriticV(self, state): + """get Critic predict V value + + Args: + state (np.array): Env state + + Returns: + tensor: retrun Critic predict result + """ + # if state.ndim < 2: + # state = np.expand_dims(state,0) + if state.ndim!=2: + state = state.reshape([1,self.stateSize]) + return self.critic.predict(state) + + def discountReward(self, nextState, rewards): + """Discount future rewards + + Args: + nextState (np.array): next Env state + rewards (np.array): reward list of this episode + + Returns: + np.array: discounted rewards list,same shape as rewards that input + """ + # 降低未来的rewards + nextV = self.getCriticV(nextState) + discountedRewards = [] + for r in rewards[::-1]: + nextV = r + self.GAMMA*nextV + discountedRewards.append(nextV) + discountedRewards.reverse() # \ESREVER/ + discountedRewards = np.squeeze(discountedRewards) + discountedRewards = np.expand_dims(discountedRewards, axis=1) + #discountedRewards = np.array(discountedRewards)[:, np.newaxis] + return discountedRewards + + def conProb(self, mu, sig, x): + """calculate probability when x in Normal distribution(mu,sigma) + + Args: + mu (np,array): mu + sig (np.array): sigma + x (np.array): x + + Returns: + np.array: probabilities + """ + # 获取在正态分布mu,sig下当取x值时的概率 + # return shape : (length,1) + mu = np.reshape(mu, (np.size(mu),)) + sig = np.reshape(sig, (np.size(sig),)) + x = np.reshape(x, (np.size(x),)) + + dist = tfp.distributions.Normal(mu, sig) + prob = dist.prob(x) + + prob = np.reshape(prob, (np.size(x), 1)) + #dist = 1./(tf.sqrt(2.*np.pi)*sig) + #prob = dist*tf.exp(-tf.square(x-mu)/(2.*tf.square(sig))) + return prob + + def trainCritcActor(self, states, actions, rewards, nextState, criticEpochs, actorEpochs): + # Train ActorNN and CriticNN + # states: Buffer States + # actions: Buffer Actions + # rewards: Buffer Rewards,没有Discount处理 + # nextState: 下一个单独state + # criticEpochs: just criticNN'Epochs + # acotrEpochs: just acotrNN'Epochs + discountedR = self.discountReward(nextState, rewards) + + criticMeanLoss = self.trainCritic(states, discountedR, criticEpochs) + actorMeanLoss = self.trainActor( + states, actions, discountedR, actorEpochs) + print("A_Loss:", actorMeanLoss, "C_Loss:", criticMeanLoss) + return actorMeanLoss, criticMeanLoss + + def trainCritic(self, states, discountedR, epochs): + # Trian Critic + # states: Buffer States + # discountedR: Discounted Rewards + # Epochs: just Epochs + + # IDK why this should be list...It just work... + # If discountR in np.array type it will throw 'Failed to find data adapter that can handle' + # discountedR = discountedR.tolist() + his = self.critic.fit(x=states, y=discountedR, + epochs=epochs, verbose=0) + return np.mean(his.history['loss']) + + def trainActor(self, states, actions, discountedR, epochs): + """Actor NN trainning function + + Args: + states (np.array): Env states + actions (np.array): action history + discountedR (np.array): discountedR + epochs (int): epochs,how many time NN learning + + Returns: + Average actor loss: this learning round's average actor loss + """ + # Trian Actor + # states: Buffer States + # actions: Buffer Actions + # discountedR: Discounted Rewards + # Epochs: just Epochs + + states = np.asarray(states) + actions = np.asarray(actions, dtype=np.float32) + # predict with old Actor NN + oldActorResult = self.actor.predict(states) + + # assembly Actions history + disActions = actions[:,0:self.disActSize] + conActions = actions[:,self.disActSize:] + # assembly predictResult as old Actor's Result + oldDisProbs = oldActorResult[:,0:self.disOutputSize] # [disAct1, disAct2, disAct3] + oldConMusigs = oldActorResult[:,self.disOutputSize:] # [musig1,musig2] + oldPiProbs = self.conProb(oldConMusigs[:, 0], oldConMusigs[:, 1], conActions) + + criticV = self.critic.predict(states) + advantage = copy.deepcopy(discountedR - criticV) + + # pack [oldDisProbs,oldPiProbs,conActions,advantage] as y_true + y_true = np.hstack((oldDisProbs,oldPiProbs,conActions,advantage)) + + # train start + if np.any(tf.math.is_nan(y_true)): + print("y_true got nan") + print("oldConMusigs",oldConMusigs) + print("oldPiProbs",oldPiProbs) + print("conActions",conActions) + print("oldConMusigs",oldConMusigs) + his = self.actor.fit(x=states, y=y_true, epochs=epochs, verbose=0) + if np.any(tf.math.is_nan(his.history['loss'])): + print("his.history['loss'] is nan!") + print(his.history['loss']) + return np.mean(his.history['loss']) + + def saveWeights(self,score): + """save now NN's Weight. Use "models.save_weights" method. + Save as "tf" format "ckpt" file. + + Args: + score (int): now score + """ + actor_save_dir = self.saveDir+datetime.datetime.now().strftime("%H%M%S") + "/actor/" + "actor.ckpt" + critic_save_dir = self.saveDir+datetime.datetime.now().strftime("%H%M%S") + "/critic/" + "critic.ckpt" + score_dir = self.saveDir+datetime.datetime.now().strftime("%H%M%S") + "/" + str(round(score)) + self.actor.save_weights(actor_save_dir, save_format="tf") + self.critic.save_weights(critic_save_dir, save_format="tf") + # create an empty file named as score to recored score + scorefile = open(score_dir,'w') + scorefile.close() + print("Model's Weights Saved") + + def loadWeightToModels(self,loadDir): + """load NN Model. Use "models.load_weights()" method. + Load "tf" format "ckpt" file. + + Args: + loadDir (string): Model dir + """ + actorDir = loadDir + "/actor/" + "actor.ckpt" + criticDir = loadDir + "/critic/" + "critic.ckpt" + self.actor.load_weights(actorDir) + self.critic.load_weights(criticDir) + + print("++++++++++++++++++++++++++++++++++++") + print("++++++++++++Model Loaded++++++++++++") + print(loadDir) + print("++++++++++++++++++++++++++++++++++++") + + def saveModel(self, score): + """save now NN Model. Use "model.save()" method. + + Args: + score (int): now score + """ + score = "_" + str(round(score)) + actor_save_dir = self.saveDir+datetime.datetime.now().strftime("%H%M%S") + \ + score+"/actor.h5" + critic_save_dir = self.saveDir+datetime.datetime.now().strftime("%H%M%S") + \ + score+"/critic.h5" + self.actor.save(actor_save_dir) + self.critic.save(critic_save_dir) + print("Model Saved") + + def loadModel(self, loadDir): + """load NN Model. Use "models.load_model()" method. + + Args: + loadDir (string): Model dir + + Returns: + tf.keras.models: retuen compiled models. + """ + actorDir = loadDir+"/actor.h5" + criticDir = loadDir+"/critic.h5" + actor_net_loaded = tf.keras.models.load_model(actorDir) + critic_net_loaded = tf.keras.models.load_model(criticDir) + + print("++++++++++++++++++++++++++++++++++++") + print("++++++++++++Model Loaded++++++++++++") + print(loadDir) + print("++++++++++++++++++++++++++++++++++++") + return actor_net_loaded, critic_net_loaded diff --git a/Aimbot-PPO-Python/aimBotEnv.py b/Aimbot-PPO-Python/aimBotEnv.py new file mode 100644 index 0000000..78ad997 --- /dev/null +++ b/Aimbot-PPO-Python/aimBotEnv.py @@ -0,0 +1,96 @@ +import mlagents_envs +from mlagents_envs.base_env import ActionTuple +from mlagents_envs.environment import UnityEnvironment + +import numpy as np + +class makeEnv(object): + def __init__(self,envPath,workerID,basePort): + self.env = UnityEnvironment(file_name=envPath,seed = 1,side_channels=[],worker_id = workerID,base_port=basePort) + self.env.reset() + + # get enviroment specs + self.LOAD_DIR_SIZE_IN_STATE = 2 + self.TRACKED_AGENT = -1 + self.BEHA_SPECS = self.env.behavior_specs + self.BEHA_NAME = list(self.BEHA_SPECS)[0] + self.SPEC = self.BEHA_SPECS[self.BEHA_NAME] + self.OBSERVATION_SPECS = self.SPEC.observation_specs[0] # observation spec + self.ACTION_SPEC = self.SPEC.action_spec # action specs + + self.DISCRETE_SIZE = self.ACTION_SPEC.discrete_size# 連続的な動作のSize + self.CONTINUOUS_SIZE = self.ACTION_SPEC.continuous_size# 離散的な動作のSize + self.STATE_SIZE = self.OBSERVATION_SPECS.shape[0] - self.LOAD_DIR_SIZE_IN_STATE# 環境観測データ数 + print("√√√√√Enviroment Initialized Success√√√√√") + + def step(self,discreteActions = None,continuousActions = None,behaviorName = None,trackedAgent = None): + # take action to enviroment + # return mextState,reward,done + + # check if arg is include None or IS None + try: + isDisNone = discreteActions.any() == None + if discreteActions.all() == None: + print("step() Error!:discreteActions include None") + except: + isDisNone = True + try: + isConNone = continuousActions.any() == None + if continuousActions.all() == None: + print("step() Error!:continuousActions include None") + except: + isConNone = True + + if isDisNone: + # if discreteActions is enpty just give nothing[[0]] to Enviroment + discreteActions = np.array([[0]], dtype=np.int) + if isConNone: + # if continuousActions is enpty just give nothing[[0]] to Enviroment + continuousActions = np.array([[0]], dtype=np.float) + if behaviorName == None: + behaviorName = self.BEHA_NAME + if trackedAgent == None: + trackedAgent = self.TRACKED_AGENT + + #create actionTuple + thisActionTuple = ActionTuple(continuous=continuousActions,discrete=discreteActions) + # take action to env + self.env.set_actions(behavior_name=behaviorName,action=thisActionTuple) + self.env.step() + # get nextState & reward & done after this action + nextState,reward,done,loadDir = self.getSteps(behaviorName,trackedAgent) + return nextState,reward,done,loadDir + + def getSteps(self,behaviorName = None,trackedAgent = None): + # get nextState & reward & done + if behaviorName == None: + behaviorName = self.BEHA_NAME + decisionSteps,terminalSteps = self.env.get_steps(behaviorName) + if self.TRACKED_AGENT == -1 and len(decisionSteps) >= 1: + self.TRACKED_AGENT = decisionSteps.agent_id[0] + if trackedAgent == None: + trackedAgent = self.TRACKED_AGENT + + if trackedAgent in decisionSteps: # ゲーム終了していない場合、環境状態がdecision_stepsに保存される + nextState = decisionSteps[trackedAgent].obs[0] + nextState = np.reshape(nextState,[1,self.STATE_SIZE+self.LOAD_DIR_SIZE_IN_STATE]) + loadDir = nextState[0][-2:] + nextState = nextState[0][:-2] + reward = decisionSteps[trackedAgent].reward + done = False + if trackedAgent in terminalSteps: # ゲーム終了した場合、環境状態がterminal_stepsに保存される + nextState = terminalSteps[trackedAgent].obs[0] + nextState = np.reshape(nextState,[1,self.STATE_SIZE+self.LOAD_DIR_SIZE_IN_STATE]) + loadDir = nextState[0][-2:] + nextState = nextState[0][:-2] + reward = terminalSteps[trackedAgent].reward + done = True + return nextState, reward, done, loadDir + + def reset(self): + self.env.reset() + nextState,reward,done,loadDir = self.getSteps() + return nextState,reward,done,loadDir + + def render(self): + self.env.render() \ No newline at end of file diff --git a/Aimbot-PPO-Python/buffer.py b/Aimbot-PPO-Python/buffer.py new file mode 100644 index 0000000..202cd75 --- /dev/null +++ b/Aimbot-PPO-Python/buffer.py @@ -0,0 +1,29 @@ +import numpy as np + +class buffer(object): + def __init__(self): + self.states = [] + self.actions = [] + self.rewards = [] + print("√√√√√Buffer Initialized Success√√√√√") + def clearBuffer(self): + self.states = [] + self.actions = [] + self.rewards = [] + def getStates(self): + return np.asarray(self.states) + def getActions(self): + return np.asarray(self.actions) + def getRewards(self): + return np.asarray(self.rewards) + + def saveState(self,state): + self.states.append(state) + def saveAction(self,action): + self.actions.append(action) + def saveReward(self,reward): + self.rewards.append(reward) + def saveBuffers(self,state,action,reward): + self.states.append(state) + self.actions.append(action) + self.rewards.append(reward) \ No newline at end of file diff --git a/Aimbot-PPO-Python/env.ipynb b/Aimbot-PPO-Python/env.ipynb new file mode 100644 index 0000000..fd224cf --- /dev/null +++ b/Aimbot-PPO-Python/env.ipynb @@ -0,0 +1,158 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import env" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "31\n", + "5\n", + "3\n" + ] + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "包含None!\n", + "[123 None]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "\n", + "def qa(aa = None):\n", + " try:\n", + " isaanone = aa.any() == None\n", + " if aa.all() == None:\n", + " print(\"包含None!\")\n", + " except:\n", + " isaanone =True\n", + " if isaanone:\n", + " print('none')\n", + " else:\n", + " print(aa)\n", + "\n", + "qa(np.array([123,None]))" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[[1 1 1 1 1]\n", + " [1 2 1 1 1]]\n", + "\n", + " [[2 1 3 4 5]\n", + " [2 2 3 4 5]]\n", + "\n", + " [[3 1 3 4 5]\n", + " [3 2 3 4 5]]]\n", + "-\n", + "tf.Tensor(\n", + "[[1 1 1 1 1]\n", + " [2 1 3 4 5]\n", + " [3 1 3 4 5]], shape=(3, 5), dtype=int32)\n", + "-\n", + "tf.Tensor(\n", + "[[1 2 1 1 1]\n", + " [2 2 3 4 5]\n", + " [3 2 3 4 5]], shape=(3, 5), dtype=int32)\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import tensorflow as tf\n", + "\n", + "aa = np.array([[[1,1,1,1,1],[1,2,1,1,1],[1,3,1,1,1]],\n", + " [[2,1,3,4,5],[2,2,3,4,5],[2,3,3,4,5]],\n", + " [[3,1,3,4,5],[3,2,3,4,5],[3,3,3,4,5]]])\n", + "tt = tf.constant(aa)\n", + "bb = np.array([6,3,6,3,2,3])\n", + "\n", + "print(aa[:,0:2])\n", + "aa[:,2:]\n", + "\n", + "for asd in tf.transpose(aa[:,0:2],perm=[1,0,2]):\n", + " print('-')\n", + " print(asd)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<tf.Tensor: shape=(), dtype=int32, numpy=1>" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import tensorflow as tf\n", + "aa = tf.constant(0)\n", + "bb = aa+1\n", + "bb\n" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "86e2db13b09bd6be22cb599ea60c1572b9ef36ebeaa27a4c8e961d6df315ac32" + }, + "kernelspec": { + "display_name": "Python 3.9.7 64-bit", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Aimbot-PPO-Python/main.ipynb b/Aimbot-PPO-Python/main.ipynb new file mode 100644 index 0000000..0cd8412 --- /dev/null +++ b/Aimbot-PPO-Python/main.ipynb @@ -0,0 +1,659 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import aimBotEnv\n", + "import PPO\n", + "import buffer\n", + "import numpy as np\n", + "\n", + "import tensorflow as tf\n", + "import time\n", + "import datetime" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Attempts to allocate only the GPU memory needed for allocation\n", + "physical_devices = tf.config.list_physical_devices('GPU')\n", + "tf.config.experimental.set_memory_growth(physical_devices[0], True)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "ENV_PATH = './Build-MultiScene-WithLoad/Aimbot-PPO'\n", + "WORKER_ID = 1\n", + "BASE_PORT = 200\n", + "\n", + "MAX_EP = 1000\n", + "EP_LENGTH = 100000\n", + "GAMMA = 0.99 # discount future reward (UP?)\n", + "EPSILON = 0.2 # clip Ratio range[1-EPSILON,1+EPSILON]\n", + "ACTOR_LR = 1e-5 # LR\n", + "CRITIC_LR = 2e-5 # LR\n", + "BATCH = 512 # learning step\n", + "ACTOR_EPOCH = 15 # epoch\n", + "CRITIC_EPOCH = 15 # epoch\n", + "ENTROPY_WHEIGHT = 0.01 # sigma's entropy in Actor loss\n", + "ACTION_INTERVAL = 1 # take action every ACTION_INTERVAL steps\n", + "\n", + "\n", + "TRAIN = True\n", + "SAVE_DIR = \"PPO-Model/\"+datetime.datetime.now().strftime(\"%m%d%H%M\")+\"/\"\n", + "LOAD_DIR = None\n", + "\n", + "CTN_ACTION_RANGE = 10" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "√√√√√Enviroment Initialized Success√√√√√\n", + "√√√√√Buffer Initialized Success√√√√√\n", + "Load Model:\n", + "PPO-Model/09051833/183540\n", + "CONTINUOUS_SIZE 1\n", + "DISCRETE_SIZE 5\n", + "STATE_SIZE 29\n" + ] + } + ], + "source": [ + "# initialize enviroment & buffer class\n", + "env = aimBotEnv.makeEnv(envPath = ENV_PATH,\n", + " workerID = WORKER_ID,\n", + " basePort = BASE_PORT)\n", + "epBuffer = buffer.buffer()\n", + "\n", + "STATE_SIZE = env.STATE_SIZE\n", + "CONTINUOUS_SIZE = env.CONTINUOUS_SIZE\n", + "DISCRETE_SIZE = env.DISCRETE_SIZE\n", + "s,reward,done,loadDir = env.getSteps()\n", + "\n", + "# check load model or not\n", + "if(np.any(loadDir == 0)):\n", + " # create a new model\n", + " print(\"No loadDir specified,Create a New Model\")\n", + " LOAD_DIR = None\n", + "else:\n", + " # load model\n", + " loadDirDateSTR = str(int(loadDir[0]))\n", + " loadDirTimeSTR = str(int(loadDir[1]))\n", + " if len(loadDirDateSTR)!=8:\n", + " # fill lost 0 while converse float to string\n", + " for _ in range(8 - len(loadDirDateSTR)):\n", + " loadDirDateSTR = \"0\" + loadDirDateSTR\n", + " if len(loadDirTimeSTR)!=6:\n", + " # fill lost 0 while converse float to string\n", + " for _ in range(6 - len(loadDirTimeSTR)):\n", + " loadDirTimeSTR = \"0\" + loadDirTimeSTR\n", + " LOAD_DIR = \"PPO-Model/\"+loadDirDateSTR+\"/\"+loadDirTimeSTR\n", + " print(\"Load Model:\")\n", + " print(LOAD_DIR)\n", + "\n", + "print(\"CONTINUOUS_SIZE\",CONTINUOUS_SIZE)\n", + "print(\"DISCRETE_SIZE\",DISCRETE_SIZE)\n", + "print(\"STATE_SIZE\",STATE_SIZE)\n", + "\n", + "disActShape = [3,3,2]" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def actToKey(disAct1,disAct2,disAct3,conAct):\n", + " kW = 0\n", + " kS = 0\n", + " kA = 0\n", + " kD = 0\n", + " mouseShoot = 0\n", + " if disAct1 == 0:\n", + " kW = 0\n", + " kS = 1\n", + " elif disAct1 == 1:\n", + " kW = 0\n", + " kS = 0\n", + " elif disAct1 == 2:\n", + " kW = 1\n", + " kS = 0\n", + " if disAct2 == 0:\n", + " kA = 0\n", + " kD = 1\n", + " elif disAct2 == 1:\n", + " kA = 0\n", + " kD = 0\n", + " elif disAct2 == 2:\n", + " kA = 1\n", + " kD = 0\n", + " mouseShoot = disAct3\n", + " return kW,kS,kA,kD,mouseShoot,conAct" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "EP 0 START\n", + "√√√√√Buffer Initialized Success√√√√√\n", + "++++++++++++++++++++++++++++++++++++\n", + "++++++++++++Model Loaded++++++++++++\n", + "PPO-Model/09051833/183540\n", + "++++++++++++++++++++++++++++++++++++\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\UCUNI\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\numpy\\core\\fromnumeric.py:3474: RuntimeWarning: Mean of empty slice.\n", + " return _methods._mean(a, axis=axis, dtype=dtype,\n", + "c:\\Users\\UCUNI\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\numpy\\core\\_methods.py:189: RuntimeWarning: invalid value encountered in double_scalars\n", + " ret = ret.dtype.type(ret / rcount)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A_Loss: -43.132581075032554 C_Loss: 4025.360986328125\n", + "EP OVER!\n", + "A_Loss: 1184751.5479166666 C_Loss: 1939213379930.6667\n", + "Model's Weights Saved\n", + "New Record! Save NN -37.67000053450465\n", + "EP 1 START\n", + "A_Loss: 14251923.066666666 C_Loss: 40720630.7288086\n", + "EP OVER!\n", + "A_Loss: 1857006.7333333334 C_Loss: 245.15654500325522\n", + "Model's Weights Saved\n", + "New Record! Save NN -13.100000601261854\n", + "EP 2 START\n", + "A_Loss: -1.0014899969100952 C_Loss: 71.29023424784343\n", + "EP OVER!\n", + "A_Loss: -0.31318608721097313 C_Loss: 8.897234630584716\n", + "EP 3 START\n", + "A_Loss: 566053.9979166667 C_Loss: 1986013.3489705403\n", + "EP OVER!\n", + "A_Loss: 0.6021817366282145 C_Loss: 6.035458342234294\n", + "EP 4 START\n", + "A_Loss: 169656457.6 C_Loss: 4317.756831359863\n", + "EP OVER!\n", + "A_Loss: 22155934.0 C_Loss: 63.52870483398438\n", + "EP 5 START\n", + "A_Loss: 0.2413090835014979 C_Loss: 10.40585823059082\n", + "EP OVER!\n", + "A_Loss: 0.12157159547011058 C_Loss: 14.347647285461425\n", + "EP 6 START\n", + "A_Loss: 215977770.66666666 C_Loss: 190435277.5966268\n", + "EP OVER!\n", + "A_Loss: 213349568.0 C_Loss: 1620.733740234375\n", + "EP 7 START\n", + "A_Loss: 100149825.6 C_Loss: 1569803.3794799806\n", + "EP OVER!\n", + "A_Loss: 171062395.73333332 C_Loss: 34872400594.933334\n", + "Model's Weights Saved\n", + "New Record! Save NN 4.119999349117279\n", + "EP 8 START\n", + "A_Loss: 0.7038820425669352 C_Loss: 31.980174128214518\n", + "EP OVER!\n", + "A_Loss: 0.2687960028648376 C_Loss: 6.94128991762797\n", + "EP 9 START\n", + "A_Loss: 0.1451285809278488 C_Loss: 3.5754743576049806\n", + "EP OVER!\n", + "A_Loss: 0.18081151247024535 C_Loss: 3.902424764633179\n", + "EP 10 START\n", + "A_Loss: 29139865.6 C_Loss: 174927458.90618488\n", + "EP OVER!\n", + "A_Loss: 16942552.4 C_Loss: 134.21190592447917\n", + "EP 11 START\n", + "A_Loss: 53790223.46666667 C_Loss: 647.0605305989583\n", + "EP OVER!\n", + "A_Loss: 27695839.866666667 C_Loss: 343.9340047200521\n", + "EP 12 START\n", + "A_Loss: 65695720.8 C_Loss: 61225647615.0198\n", + "EP OVER!\n", + "A_Loss: 0.07575627962748209 C_Loss: 10.41986296971639\n", + "EP 13 START\n", + "A_Loss: 51573392.266666666 C_Loss: 212022811.82775268\n", + "EP OVER!\n", + "A_Loss: 22073133.866666667 C_Loss: 61.18818028767904\n", + "EP 14 START\n", + "A_Loss: 0.13529965033133826 C_Loss: 0.966444210211436\n", + "EP OVER!\n", + "A_Loss: 0.1176165262858073 C_Loss: 0.5141626675923665\n", + "EP 15 START\n", + "A_Loss: 0.5104357699553171 C_Loss: 25.79277165730794\n", + "EP OVER!\n", + "A_Loss: 15181718.0 C_Loss: 9111658759031.467\n", + "EP 16 START\n", + "A_Loss: 30694314.533333335 C_Loss: 62842582.26665497\n", + "EP OVER!\n", + "A_Loss: 17702280.066666666 C_Loss: 50.18375091552734\n", + "EP 17 START\n", + "A_Loss: 0.08570613314708074 C_Loss: 1.7101642807324728\n", + "EP OVER!\n", + "A_Loss: 14154208.066666666 C_Loss: 248.65523885091145\n", + "EP 18 START\n", + "A_Loss: 51043696.8 C_Loss: 39972927.18101196\n", + "EP OVER!\n", + "A_Loss: 24850118.0 C_Loss: 6779725.618615722\n", + "EP 19 START\n", + "A_Loss: 75697662.4 C_Loss: 505.26551717122396\n", + "EP OVER!\n", + "A_Loss: 64376180.266666666 C_Loss: 299.2391876220703\n", + "EP 20 START\n", + "A_Loss: 55954064.8 C_Loss: 234.9048828125\n", + "EP OVER!\n", + "A_Loss: 57271699.733333334 C_Loss: 59254958.60783488\n", + "EP 21 START\n", + "A_Loss: 124046376.53333333 C_Loss: 2737571204155.7334\n", + "EP OVER!\n", + "A_Loss: 31774753.866666667 C_Loss: 24325611279.066666\n", + "EP 22 START\n", + "A_Loss: 7490019498.666667 C_Loss: 245487346653.86667\n", + "EP OVER!\n", + "A_Loss: 186999600.0 C_Loss: 36627312369.066666\n", + "EP 23 START\n", + "A_Loss: 4297551769.6 C_Loss: 1184376194184.5334\n", + "EP OVER!\n", + "A_Loss: 122982910044842.67 C_Loss: 7331505971746.134\n", + "EP 24 START\n", + "A_Loss: 2682021.3583333334 C_Loss: 2341072196027.7334\n", + "EP OVER!\n", + "A_Loss: 1469103463901.8667 C_Loss: 113593101.86666666\n", + "EP 25 START\n", + "A_Loss: 76648460.0 C_Loss: 14498072.481510418\n", + "EP OVER!\n", + "A_Loss: 5800877.766666667 C_Loss: 22134.297265625\n", + "EP 26 START\n", + "A_Loss: 34429532.53333333 C_Loss: 46926.630208333336\n", + "EP OVER!\n", + "A_Loss: 212612493.86666667 C_Loss: 23176.368880208334\n", + "EP 27 START\n", + "A_Loss: 3207813239.4666667 C_Loss: 41575.61041666667\n", + "EP OVER!\n", + "A_Loss: 38858107.86666667 C_Loss: 15486.2171875\n", + "EP 28 START\n", + "A_Loss: -58850.48046875 C_Loss: 14550529378106.69\n", + "EP OVER!\n", + "A_Loss: 445133260.8 C_Loss: 1749447703.4604166\n", + "EP 29 START\n", + "A_Loss: 80796092.8 C_Loss: 8523564.864453126\n", + "EP OVER!\n", + "A_Loss: 34027046.266666666 C_Loss: 3319.6830078125\n", + "Model's Weights Saved\n", + "New Record! Save NN 4.589999713003635\n", + "EP 30 START\n", + "A_Loss: 118412868.26666667 C_Loss: 23715976.025211588\n", + "EP OVER!\n", + "A_Loss: 94927646.93333334 C_Loss: 1067.18818359375\n", + "EP 31 START\n", + "A_Loss: 338770097.06666666 C_Loss: 3585200.7686075848\n", + "EP OVER!\n", + "A_Loss: 1479514146.1333334 C_Loss: 10348.122916666667\n", + "Model's Weights Saved\n", + "New Record! Save NN 38.5099995136261\n", + "EP 32 START\n", + "A_Loss: 119593341.86666666 C_Loss: 784.9417297363282\n", + "EP OVER!\n", + "A_Loss: -3.2093143463134766 C_Loss: 180.5671844482422\n", + "EP 33 START\n", + "A_Loss: 149599549.86666667 C_Loss: 206.16288146972656\n", + "EP OVER!\n", + "A_Loss: 5682631.7 C_Loss: 17.62857920328776\n", + "EP 34 START\n", + "A_Loss: 231213670.4 C_Loss: 272.8009948730469\n", + "EP OVER!\n", + "A_Loss: 167307104.0 C_Loss: 188.52051798502603\n", + "EP 35 START\n", + "A_Loss: 204825578.66666666 C_Loss: 335.75029296875\n", + "EP OVER!\n", + "A_Loss: 83991501.33333333 C_Loss: 451.3644246419271\n", + "EP 36 START\n", + "A_Loss: 0.6501724402109782 C_Loss: 38.280514017740884\n", + "EP OVER!\n", + "A_Loss: 175042737.06666666 C_Loss: 256.6915344238281\n", + "EP 37 START\n", + "A_Loss: 461190880.0 C_Loss: 717.4720499674479\n", + "EP OVER!\n", + "A_Loss: 173152186.66666666 C_Loss: 701.6123962402344\n", + "EP 38 START\n", + "A_Loss: 188070140.8 C_Loss: 1611377609664.9072\n", + "EP OVER!\n", + "A_Loss: 512005579391093.7 C_Loss: 86553492717568.0\n", + "EP 39 START\n", + "A_Loss: 121553.57962239583 C_Loss: 53618558110.88125\n", + "EP OVER!\n", + "A_Loss: 10892.0080078125 C_Loss: 132429.940625\n", + "EP 40 START\n", + "A_Loss: 15404.601106770833 C_Loss: 107106.1421875\n", + "EP OVER!\n", + "A_Loss: 1822.5163004557292 C_Loss: 182031.73854166668\n", + "EP 41 START\n", + "A_Loss: 599.1890706380208 C_Loss: 76118.35729166666\n", + "EP OVER!\n", + "A_Loss: 1033.1336588541667 C_Loss: 54971.41354166667\n", + "EP 42 START\n", + "A_Loss: 2602.054020182292 C_Loss: 227568.73541666666\n", + "EP OVER!\n", + "A_Loss: -3.2474422613779703 C_Loss: 155.22516682942708\n", + "EP 43 START\n", + "A_Loss: 1994.366455078125 C_Loss: 149748.48125\n", + "EP OVER!\n", + "A_Loss: 7441.857747395833 C_Loss: 196344.43958333333\n", + "EP 44 START\n", + "A_Loss: 19441.808723958333 C_Loss: 197749.58020833333\n", + "EP OVER!\n", + "A_Loss: 1789.1592529296875 C_Loss: 25795.180598958334\n", + "EP 45 START\n", + "A_Loss: 6888.085221354167 C_Loss: 149084.575\n", + "EP OVER!\n", + "A_Loss: 1102350.757421875 C_Loss: 180759.19166666668\n", + "EP 46 START\n", + "A_Loss: 536.078184000651 C_Loss: 89909.24375\n", + "EP OVER!\n", + "A_Loss: 794341992174.4 C_Loss: 59005630871824.9\n", + "EP 47 START\n", + "A_Loss: 114184075127.46666 C_Loss: 74263479521553.06\n", + "EP OVER!\n", + "A_Loss: 1293861572.3333333 C_Loss: 1474176015837.8667\n", + "EP 48 START\n", + "A_Loss: 1143.1249674479166 C_Loss: 19221068817.411232\n", + "EP OVER!\n", + "A_Loss: 855.1484252929688 C_Loss: 28676.431770833333\n", + "EP 49 START\n", + "A_Loss: 1198.7060546875 C_Loss: 41875.48359375\n", + "EP OVER!\n", + "A_Loss: 1215.0390218098958 C_Loss: 7167.594791666666\n", + "EP 50 START\n", + "A_Loss: 1840.496435546875 C_Loss: 33346.76875\n", + "EP OVER!\n", + "A_Loss: 97.68925425211589 C_Loss: 2453.3792643229167\n", + "EP 51 START\n", + "A_Loss: 2179.5446614583334 C_Loss: 25573.869270833333\n", + "EP OVER!\n", + "A_Loss: 3547.454052734375 C_Loss: 15107.698307291666\n", + "EP 52 START\n", + "A_Loss: 513.1327128092448 C_Loss: 23233.316276041667\n", + "EP OVER!\n", + "A_Loss: 2024.9339111328125 C_Loss: 10457.81875\n", + "EP 53 START\n", + "A_Loss: 321.8419494628906 C_Loss: 10830.605924479167\n", + "EP OVER!\n", + "A_Loss: -8.38951981862386 C_Loss: 2241.023612467448\n", + "EP 54 START\n", + "A_Loss: 1454.901765950521 C_Loss: 16337.481966145833\n", + "EP OVER!\n", + "A_Loss: 3069.5313313802085 C_Loss: 4450.756380208333\n", + "EP 55 START\n", + "A_Loss: 444.8317138671875 C_Loss: 15201.106184895832\n", + "EP OVER!\n", + "A_Loss: 1159.2985107421875 C_Loss: 35525.82317708333\n", + "EP 56 START\n", + "A_Loss: 1397.7694742838542 C_Loss: 8600.898404947917\n", + "EP OVER!\n", + "A_Loss: 160.49285074869792 C_Loss: 3749.308203125\n", + "EP 57 START\n", + "A_Loss: -23.67707913716634 C_Loss: 8787.21162109375\n", + "EP OVER!\n", + "A_Loss: 446.2368998209635 C_Loss: 8949.849674479166\n", + "EP 58 START\n", + "A_Loss: 1443.8223063151042 C_Loss: 4806.931754557291\n", + "EP OVER!\n", + "A_Loss: 1028.3776000976563 C_Loss: 10080.125455729167\n", + "EP 59 START\n", + "A_Loss: 979.55380859375 C_Loss: 18168.035872395834\n", + "EP OVER!\n", + "A_Loss: 2799.885953776042 C_Loss: 14584.458203125\n", + "EP 60 START\n", + "A_Loss: 83247.30833333333 C_Loss: 61687910677571.76\n", + "EP OVER!\n", + "A_Loss: 81.43709259033203 C_Loss: 47630220.59791667\n", + "EP 61 START\n", + "A_Loss: 5032.870377604167 C_Loss: 43944.79453125\n", + "EP OVER!\n", + "A_Loss: 9.13815720876058 C_Loss: 2573.8714192708335\n", + "EP 62 START\n", + "A_Loss: 523.7818908691406 C_Loss: 8441.000618489583\n", + "EP OVER!\n", + "A_Loss: 1593.0845377604167 C_Loss: 17598.201953125\n", + "EP 63 START\n", + "A_Loss: 27.476329803466797 C_Loss: 5594.57646484375\n", + "EP OVER!\n", + "A_Loss: 25.40858777364095 C_Loss: 11878.195572916668\n", + "EP 64 START\n", + "A_Loss: 3347.620393880208 C_Loss: 15555.9111328125\n", + "EP OVER!\n", + "A_Loss: 25.35328992207845 C_Loss: 7923.337727864583\n", + "EP 65 START\n", + "A_Loss: 1800.478165690104 C_Loss: 36845.799479166664\n", + "EP OVER!\n", + "A_Loss: 544.9222574869792 C_Loss: 2949.7829752604166\n", + "EP 66 START\n", + "A_Loss: 238.4148183186849 C_Loss: 2108.7259195963543\n", + "EP OVER!\n", + "A_Loss: 10.808652464548747 C_Loss: 1069.8261800130208\n", + "EP 67 START\n", + "A_Loss: 7.2742944399515785 C_Loss: 1112.0956298828125\n", + "EP OVER!\n", + "A_Loss: 686.372725423177 C_Loss: 1421.539111328125\n", + "EP 68 START\n", + "A_Loss: 38.04718589782715 C_Loss: 2771.959724934896\n", + "EP OVER!\n", + "A_Loss: 1133.577986653646 C_Loss: 5758.061686197917\n", + "EP 69 START\n", + "A_Loss: 402.1093465169271 C_Loss: 3987.9388671875\n", + "EP OVER!\n", + "A_Loss: -1.7969589630762737 C_Loss: 2884.10732421875\n", + "EP 70 START\n", + "A_Loss: 1016.8031656901042 C_Loss: 6636.073665364584\n", + "EP OVER!\n", + "A_Loss: 939.9079630533854 C_Loss: 3692.443391927083\n", + "EP 71 START\n", + "A_Loss: -107.65687510172526 C_Loss: 21740540498583.367\n", + "EP OVER!\n", + "A_Loss: 5876.485221354166 C_Loss: 50534.828385416666\n", + "EP 72 START\n", + "A_Loss: 219.98338216145834 C_Loss: 2713.9967041015625\n", + "EP OVER!\n", + "A_Loss: 433.9121032714844 C_Loss: 950.6825520833333\n", + "EP 73 START\n", + "A_Loss: 933.4014811197917 C_Loss: 1297.3184733072917\n", + "EP OVER!\n", + "A_Loss: 2035.8281412760416 C_Loss: 3957.7666178385416\n", + "EP 74 START\n", + "A_Loss: 479.3147298177083 C_Loss: 1727.3513753255208\n", + "EP OVER!\n", + "A_Loss: 579.0808024088542 C_Loss: 635.3917744954427\n", + "EP 75 START\n", + "A_Loss: 1450.3585856119792 C_Loss: 2148.2808756510417\n", + "EP OVER!\n", + "A_Loss: 917.6628540039062 C_Loss: 1192.1792277018228\n", + "EP 76 START\n", + "A_Loss: 888.0876180013021 C_Loss: 1050.4912679036458\n", + "EP OVER!\n", + "A_Loss: 249.14984232584635 C_Loss: 9789.355598958333\n", + "EP 77 START\n", + "A_Loss: 346.7358866373698 C_Loss: 1828.4739990234375\n", + "EP OVER!\n", + "A_Loss: 15.01647071838379 C_Loss: 1649.2421305338542\n", + "EP 78 START\n", + "A_Loss: 2058.658439127604 C_Loss: 1996.608447265625\n", + "EP OVER!\n", + "A_Loss: 155.17740580240886 C_Loss: 575.6137990315755\n", + "EP 79 START\n", + "A_Loss: 1246.8288167317708 C_Loss: 1408.468212890625\n", + "EP OVER!\n", + "A_Loss: 175.76889241536458 C_Loss: 825.604911295573\n", + "EP 80 START\n", + "A_Loss: 10138501.666666666 C_Loss: 33048526138440.633\n" + ] + } + ], + "source": [ + "bestScore = 200.\n", + "stopTrainCounter = 0\n", + "\n", + "totalRewardHis = []\n", + "totalActorLossHis = []\n", + "totalCriticLossHis = []\n", + "epHis = []\n", + "maxTotalReward = -99999999999\n", + "\n", + "for ep in range(MAX_EP):\n", + " print(\"EP \",ep,\" START\")\n", + " # first time run game\n", + " s,_,_,_ = env.reset()\n", + " if (ep == 0):\n", + " epBuffer = buffer.buffer()\n", + " s = s.reshape([STATE_SIZE])\n", + " agent = PPO.PPO(stateSize=STATE_SIZE,\n", + " disActShape=disActShape,\n", + " conActSize=1,\n", + " conActRange=CTN_ACTION_RANGE,\n", + " criticLR=CRITIC_LR,\n", + " actorLR=ACTOR_LR,\n", + " gamma=GAMMA,\n", + " epsilon=EPSILON,\n", + " entropyWeight=ENTROPY_WHEIGHT,\n", + " saveDir=SAVE_DIR,\n", + " loadModelDir=LOAD_DIR)\n", + " step = 0\n", + " done = False\n", + " stopTrainCounter -= 1\n", + " epHis.append(ep)\n", + " \n", + " # reset total reward\n", + " epTotalReward = 0\n", + " \n", + " # Recorder list\n", + " epStepHis = []\n", + " epRewardHis = []\n", + " epActorLossHis = []\n", + " epCriticLossHis = []\n", + "\n", + " while not done:\n", + " step += 1\n", + " if step % ACTION_INTERVAL == 0: # take action every ACTION_INTERVAL steps\n", + " epStepHis.append(step)\n", + " disAct1,disAct2,disAct3,conAct,predictResult = agent.chooseAction(s)\n", + " kW, kS, kA, kD, mouseShoot, mouseMove = actToKey(disAct1,disAct2,disAct3,conAct)\n", + " \n", + " nextState,thisReward,done,_ = env.step(discreteActions=np.array([[kW, kS, kA, kD, mouseShoot]]),continuousActions=np.array([[mouseMove]]))\n", + "\n", + " epTotalReward += thisReward\n", + " epBuffer.saveBuffers(s,[disAct1,disAct2,disAct3,conAct],thisReward)\n", + " else:\n", + " disActs = np.array([[0,0,0,0,0]])\n", + " conActs = np.array([[0]])\n", + "\n", + " nextState,thisReward,done,_ = env.step(discreteActions=disActs,continuousActions=conActs)\n", + " epTotalReward += thisReward\n", + " nextState = nextState.reshape([STATE_SIZE])\n", + " s = nextState\n", + " \n", + " if done:\n", + " print(\"EP OVER!\")\n", + " # update PPO after Batch step or GameOver\n", + " if (step+1)%BATCH == 0 or done:\n", + " bs = epBuffer.getStates()\n", + " ba = epBuffer.getActions()\n", + " br = epBuffer.getRewards()\n", + " epBuffer.clearBuffer()\n", + " if TRAIN:\n", + " epActorLoss,epCriticLoss = agent.trainCritcActor(bs,ba,br,s,CRITIC_EPOCH,ACTOR_EPOCH)\n", + " epActorLossHis.append(epActorLoss)\n", + " epCriticLossHis.append(epCriticLoss)\n", + " # update History Recorder\n", + " totalActorLossHis.append(np.mean(epActorLossHis))\n", + " totalCriticLossHis.append(np.mean(epCriticLossHis))\n", + " totalRewardHis.append(epTotalReward)\n", + " \n", + " if (epTotalReward > maxTotalReward and epTotalReward != 0):\n", + " maxTotalReward = epTotalReward\n", + " agent.saveWeights(epTotalReward)\n", + " print(\"New Record! Save NN\",epTotalReward)\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "aaa = 0\n", + "aaa = 1\n", + "aaa = 2\n", + "aaa = 3\n", + "aaa = 4\n", + "aaa = 5\n", + "aaa = 6\n", + "aaa = 7\n", + "aaa = 8\n", + "aaa = 9\n" + ] + } + ], + "source": [ + "aaa = 0\n", + "while aaa<10:\n", + " print(\"aaa = \",aaa)\n", + " aaa+=1" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "86e2db13b09bd6be22cb599ea60c1572b9ef36ebeaa27a4c8e961d6df315ac32" + }, + "kernelspec": { + "display_name": "Python 3.9.7 64-bit", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Aimbot-PPO-Python/main.py b/Aimbot-PPO-Python/main.py new file mode 100644 index 0000000..fd5a5cb --- /dev/null +++ b/Aimbot-PPO-Python/main.py @@ -0,0 +1,25 @@ +import aimBotEnv +import PPO + +ENV_PATH = './Build/Aimbot-PPO' +WORKER_ID = 100 + +MAX_EP = 1000 +EP_LENGTH = 400 +GAMMA = 0.99 # discount future reward (UP?) +EPSILON = 0.2 # clip Ratio range[1-EPSILON,1+EPSILON] +ACTOR_LR = 1e-5 # LR +CRITIC_LR = 2e-5 # LR +BATCH = 32 # learning step +ACTOR_EPOCH = 10 # epoch +CRITIC_EPOCH = 10 # epoch +ENTROPY_WHEIGHT = 0.01 # sigma's entropy in Actor loss +ACTION_INTERVAL = 1 # take action every ACTION_INTERVAL steps +TRAIN = True + +env = aimBotEnv.makeEnv(envPath = ENV_PATH,workerID = WORKER_ID) +STATE_SIZE = env.STATE_SIZE +CONTINUOUS_SIZE = env.CONTINUOUS_SIZE +DISCRETE_SIZE = env.DISCRETE_SIZE + +CTN_ACTION_RANGE = 2 \ No newline at end of file diff --git a/Aimbot-PPO-Python/rewardAIClass.py b/Aimbot-PPO-Python/rewardAIClass.py new file mode 100644 index 0000000..1cfa564 --- /dev/null +++ b/Aimbot-PPO-Python/rewardAIClass.py @@ -0,0 +1,44 @@ +import numpy as np + +class rewardAI(object): + def __init__(self,nonReward, shootReward, shootWithoutReadyReward, hitReward, winReward, loseReward, killReward): + self.nonReward = nonReward + self.shootReward = shootReward + self.shootWithoutReadyReward = shootWithoutReadyReward + self.hitReward = hitReward + self.winReward = winReward + self.loseReward = loseReward + self.killReward = killReward + + def getRewards(self,remainTime): + nonR = self.getnonReward() + shootR = self.getshootReward() + shootWithoutReadyR = self.getshootWithoutReadyReward() + hitR = self.gethitReward() + winR = self.getwinReward(remainTime) + loseR = self.getloseReward() + killR = self.getkillReward(remainTime) + + rewards = np.array([[nonR, + shootR, + shootWithoutReadyR, + hitR, + winR, + loseR, + killR]], dtype=np.float) + return rewards + + def getnonReward (self): + return self.nonReward + def getshootReward(self): + return self.shootReward + def getshootWithoutReadyReward(self): + return self.shootWithoutReadyReward + def gethitReward(self): + return self.hitReward + def getwinReward(self,time): + return (self.winReward + time) + def getloseReward(self): + return self.loseReward + def getkillReward(self,time): + return (self.killReward + time) \ No newline at end of file diff --git a/Aimbot-PPO-Python/simple_test_env.ipynb b/Aimbot-PPO-Python/simple_test_env.ipynb new file mode 100644 index 0000000..509828a --- /dev/null +++ b/Aimbot-PPO-Python/simple_test_env.ipynb @@ -0,0 +1,84 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Connected to Unity environment with package version 2.0.0 and communication version 1.5.0\n", + "[INFO] Connected new brain: AKMAgent?team=0\n", + "[WARNING] uint8_visual was set to true, but visual observations are not in use. This setting will not have any effect.\n" + ] + }, + { + "ename": "UnityGymException", + "evalue": "The gym wrapper does not provide explicit support for both discrete and continuous actions.", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mUnityGymException\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m~\\AppData\\Local\\Temp/ipykernel_10504/1419431386.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 20\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 21\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0m__name__\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;34m'__main__'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 22\u001b[1;33m \u001b[0mmain\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;32m~\\AppData\\Local\\Temp/ipykernel_10504/1419431386.py\u001b[0m in \u001b[0;36mmain\u001b[1;34m()\u001b[0m\n\u001b[0;32m 8\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mmain\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 9\u001b[0m \u001b[0munity_env\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mUnityEnvironment\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfile_name\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mENV_PATH\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mseed\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mside_channels\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mworker_id\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mWORKER_ID\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mbase_port\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mBASE_PORT\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 10\u001b[1;33m \u001b[0menv\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mUnityToGymWrapper\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0munity_env\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0muint8_visual\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mallow_multiple_obs\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 11\u001b[0m \u001b[0menv\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreset\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 12\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0m_\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1000\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mc:\\Users\\UCUNI\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\gym_unity\\envs\\__init__.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, unity_env, uint8_visual, flatten_branched, allow_multiple_obs, action_space_seed)\u001b[0m\n\u001b[0;32m 128\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_action_space\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mspaces\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mBox\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m-\u001b[0m\u001b[0mhigh\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mhigh\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfloat32\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 129\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 130\u001b[1;33m raise UnityGymException(\n\u001b[0m\u001b[0;32m 131\u001b[0m \u001b[1;34m\"The gym wrapper does not provide explicit support for both discrete \"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 132\u001b[0m \u001b[1;34m\"and continuous actions.\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mUnityGymException\u001b[0m: The gym wrapper does not provide explicit support for both discrete and continuous actions." + ] + } + ], + "source": [ + "from mlagents_envs.environment import UnityEnvironment\n", + "from gym_unity.envs import UnityToGymWrapper\n", + "\n", + "ENV_PATH = './Build/Aimbot-PPO'\n", + "WORKER_ID = 2\n", + "BASE_PORT = 2002\n", + "\n", + "def main():\n", + " unity_env = UnityEnvironment(file_name=ENV_PATH,seed = 1,side_channels=[],worker_id = WORKER_ID,base_port=BASE_PORT)\n", + " env = UnityToGymWrapper(unity_env, uint8_visual=True,allow_multiple_obs=True)\n", + " env.reset()\n", + " for _ in range(1000):\n", + " env.render()\n", + " o,r,d,_ = env.step(env.action_space.sample()) #random action\n", + " if d:\n", + " env.reset()\n", + " env.close() \n", + " \n", + "\n", + "\n", + "if __name__ == '__main__':\n", + " main()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.9.7 64-bit", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "86e2db13b09bd6be22cb599ea60c1572b9ef36ebeaa27a4c8e961d6df315ac32" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Aimbot-PPO-Python/testarea.ipynb b/Aimbot-PPO-Python/testarea.ipynb new file mode 100644 index 0000000..3579df2 --- /dev/null +++ b/Aimbot-PPO-Python/testarea.ipynb @@ -0,0 +1,291 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 1, 2, 3, 7, 8, 9, 10]])" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "\n", + "state = np.array([[1,2,3],[1,2,3]])\n", + "aaa = np.array([[123]])\n", + "\n", + "state[:,-1]\n", + "\n", + "np.append([[1, 2, 3]], [[7, 8, 9, 10]], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import tensorflow as tf\n", + "import numpy as np\n", + "\n", + "aa = tf.constant([[1,2,3],[1,2,3],[1,2,3],[1,2,3]])\n", + "bb = tf.constant([1,2,3,4])\n", + "\n", + "print(tf.expand_dims(bb,axis=1))\n", + "\n", + "cc = tf.math.multiply(aa,tf.expand_dims(bb,axis = 1))\n", + "\n", + "print(cc)\n", + "print(tf.shape(aa))\n", + "\n", + "print(aa[:,2:3])\n", + "\n", + "aa = tf.constant([1.0,2.0,3.0,np.nan])\n", + "print(np.any(tf.math.is_nan(aa)))\n", + "if np.any(tf.math.is_nan(aa)):\n", + " print('true')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import tensorflow as tf\n", + "\n", + "prob = tf.constant([0.3,0.3,0.])\n", + "\n", + "entropy = tf.reduce_mean(tf.math.negative(tf.math.multiply(prob,tf.math.log(prob))))\n", + "\n", + "print(entropy)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "int 23\n", + "str twenty three\n", + "bool True\n", + "error\n" + ] + } + ], + "source": [ + "from functools import singledispatchmethod\n", + "class person:\n", + " @singledispatchmethod\n", + " def age(self,arg):\n", + " print(\"error\")\n", + " @age.register(int)\n", + " def _(self,arg:int):\n", + " print(\"int\",arg)\n", + " @age.register(str)\n", + " def _(self,arg:str):\n", + " print(\"str\",arg)\n", + " @age.register(bool)\n", + " def _(self,arg:bool):\n", + " print(\"bool\",arg)\n", + "\n", + "p = person()\n", + "p.age(23) # int\n", + "p.age('twenty three') # str\n", + "p.age(True) # bool\n", + "p.age(['23']) # list\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import tensorflow as tf\n", + "import tensorflow.keras.layers as layers\n", + "\n", + "def conv_bn_relu(inputs, chs, reps):\n", + " x = inputs\n", + " for i in range(reps):\n", + " x = layers.Conv2D(chs, 3, padding=\"same\")(x)\n", + " x = layers.BatchNormalization()(x)\n", + " x = layers.ReLU()(x)\n", + " return x\n", + "\n", + "def create_model():\n", + " inputs = layers.Input((32, 32, 3))\n", + " x = conv_bn_relu(inputs, 64, 3)\n", + " x = layers.AveragePooling2D(2)(x)\n", + " x = conv_bn_relu(x, 128, 3)\n", + " x = layers.AveragePooling2D(2)(x)\n", + " x = conv_bn_relu(x, 256, 3)\n", + " x = layers.GlobalAveragePooling2D()(x)\n", + " x = layers.Dense(10, activation=\"softmax\")(x)\n", + " return tf.keras.models.Model(inputs, x)\n", + "\n", + "def perprocess(img, label):\n", + " img = tf.cast(img, tf.float32) / 255.0\n", + " label = tf.cast(label, tf.float32)\n", + " return img, label\n", + "\n", + "def train():\n", + " (X_train, y_train), (X_test, y_test) = tf.keras.datasets.cifar10.load_data()\n", + " trainset = tf.data.Dataset.from_tensor_slices((X_train, y_train)\n", + " ).map(perprocess).shuffle(4096).batch(128).repeat().prefetch(50)\n", + "\n", + " model = create_model()\n", + " model.compile(\"adam\", \"sparse_categorical_crossentropy\", [\"acc\"])\n", + "\n", + " model.fit(trainset, steps_per_epoch=50000//128, epochs=1) \n", + " # 'Adam/conv2d/kernel/m:0' shape=(3, 3, 3, 64) \n", + " print(model.optimizer.weights[1][0, 0, 0,:10])\n", + " # <tf.Variable 'conv2d/kernel:0' shape=(3, 3, 3, 64)\n", + " print(model.weights[0][0, 0, 0,:10])\n", + "\n", + " model.save_weights(\"model_tf.ckpt\", save_format=\"tf\") # デフォルト\n", + " model.save_weights(\"model_h5.h5\", save_format=\"h5\") " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "390/390 [==============================] - 28s 59ms/step - loss: 1.2548 - acc: 0.5441\n", + "tf.Tensor(\n", + "[ 0.00190057 -0.00765918 0.00163367 0.00782851 0.02600338 0.00516749\n", + " -0.00424899 0.01562062 -0.0022073 -0.00355565], shape=(10,), dtype=float32)\n", + "tf.Tensor(\n", + "[ 0.07978954 -0.04595745 -0.03745254 -0.03701654 0.03296526 -0.11328737\n", + " -0.10719797 0.00874998 0.0226855 0.02288487], shape=(10,), dtype=float32)\n" + ] + } + ], + "source": [ + "train()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tf.Tensor(\n", + "[ 0.07978954 -0.04595745 -0.03745254 -0.03701654 0.03296526 -0.11328737\n", + " -0.10719797 0.00874998 0.0226855 0.02288487], shape=(10,), dtype=float32)\n", + "tf.Tensor(\n", + "[ 0.00190057 -0.00765918 0.00163367 0.00782851 0.02600338 0.00516749\n", + " -0.00424899 0.01562062 -0.0022073 -0.00355565], shape=(10,), dtype=float32)\n" + ] + } + ], + "source": [ + "def load_tf_w_zero_grad():\n", + " model = create_model()\n", + " model.compile(\"adam\", \"sparse_categorical_crossentropy\", [\"acc\"])\n", + "\n", + " zero_grad = [tf.zeros_like(x) for x in model.weights]\n", + " model.optimizer.apply_gradients(zip(zero_grad, model.weights))\n", + "\n", + " model.load_weights(\"model_tf.ckpt\")\n", + " # これでようやくオプティマイザーの値も同一になる\n", + " print(model.weights[0][0, 0, 0,:10])\n", + " print(model.optimizer.weights[1][0, 0, 0,:10])\n", + "load_tf_w_zero_grad()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "\n", + "a = np.array([10,20,30,0])\n", + "\n", + "np.any(a == 0)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "asd = \"adsf\"\n", + "len(asd)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.9.7 64-bit", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "86e2db13b09bd6be22cb599ea60c1572b9ef36ebeaa27a4c8e961d6df315ac32" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}